diff options
author | Timur Kristóf <timur.kristof@gmail.com> | 2020-04-01 12:14:59 +0200 |
---|---|---|
committer | Marge Bot <eric+marge@anholt.net> | 2020-04-07 11:29:35 +0000 |
commit | d7b4bb3a88540cc04f3ac62d07cf1ab062b784cd (patch) | |
tree | e5bba40556ed9effb66021b97111d91a316460da /src | |
parent | ec72c504c623c12ea870e451f2d08a482d219469 (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.cpp | 4 |
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) { |