Module: Mesa
Branch: main
Commit: ee8ba0f98fcdd5cd679df306402308a85285776f
URL:    
http://cgit.freedesktop.org/mesa/mesa/commit/?id=ee8ba0f98fcdd5cd679df306402308a85285776f

Author: Samuel Pitoiset <[email protected]>
Date:   Mon Aug 28 16:51:17 2023 +0200

aco: adjust fix_exports() for VS/TES as NGG and non-monolithic shaders

Signed-off-by: Samuel Pitoiset <[email protected]>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/24907>

---

 src/amd/compiler/aco_assembler.cpp | 7 +++++++
 1 file changed, 7 insertions(+)

diff --git a/src/amd/compiler/aco_assembler.cpp 
b/src/amd/compiler/aco_assembler.cpp
index a50d4b95e44..39533d65523 100644
--- a/src/amd/compiler/aco_assembler.cpp
+++ b/src/amd/compiler/aco_assembler.cpp
@@ -1017,6 +1017,13 @@ fix_exports(asm_context& ctx, std::vector<uint32_t>& 
out, Program* program)
              * exports MRTZ (if present) and the epilog exports colors.
              */
             exported |= program->stage.hw == AC_HW_PIXEL_SHADER && 
program->info.has_epilog;
+
+            /* Do not abort for VS/TES as NGG if they are non-monolithic 
shaders
+             * because a jump would be emitted.
+             */
+            exported |= (program->stage.sw == SWStage::VS || program->stage.sw 
== SWStage::TES) &&
+                        program->stage.hw == AC_HW_NEXT_GEN_GEOMETRY_SHADER &&
+                        !program->info.is_monolithic;
          }
          ++it;
       }

Reply via email to