summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorTimur Kristóf <timur.kristof@gmail.com>2020-04-01 12:14:59 +0200
committerMarge Bot <eric+marge@anholt.net>2020-04-07 11:29:35 +0000
commitd7b4bb3a88540cc04f3ac62d07cf1ab062b784cd (patch)
treee5bba40556ed9effb66021b97111d91a316460da /src
parentec72c504c623c12ea870e451f2d08a482d219469 (diff)
aco/ngg: Fix exports for NGG VS and TES.
The exports in NGG VS and TES work just like VS exports, so the assembler needs to fix these too in the same manner. Signed-off-by: Timur Kristóf <timur.kristof@gmail.com> Reviewed-by: Daniel Schürmann <daniel@schuermann.dev> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/3576>
Diffstat (limited to 'src')
-rw-r--r--src/amd/compiler/aco_assembler.cpp4
1 files changed, 2 insertions, 2 deletions
diff --git a/src/amd/compiler/aco_assembler.cpp b/src/amd/compiler/aco_assembler.cpp
index 8e89568a58b..aa6402c93b4 100644
--- a/src/amd/compiler/aco_assembler.cpp
+++ b/src/amd/compiler/aco_assembler.cpp
@@ -659,7 +659,7 @@ void fix_exports(asm_context& ctx, std::vector<uint32_t>& out, Program* program)
{
if ((*it)->format == Format::EXP) {
Export_instruction* exp = static_cast<Export_instruction*>((*it).get());
- if (program->stage & hw_vs) {
+ if (program->stage & (hw_vs | hw_ngg_gs)) {
if (exp->dest >= V_008DFC_SQ_EXP_POS && exp->dest <= (V_008DFC_SQ_EXP_POS + 3)) {
exp->done = true;
exported = true;
@@ -749,7 +749,7 @@ unsigned emit_program(Program* program,
{
asm_context ctx(program);
- if (program->stage & (hw_vs | hw_fs))
+ if (program->stage & (hw_vs | hw_fs | hw_ngg_gs))
fix_exports(ctx, code, program);
for (Block& block : program->blocks) {