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

Author: Samuel Pitoiset <[email protected]>
Date:   Fri Sep  8 11:41:18 2023 +0200

radv: adjust next stage for VS prologs and merged shaders compiled separately

It should be the merged shader stage.

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

---

 src/amd/vulkan/radv_cmd_buffer.c | 8 +++++++-
 1 file changed, 7 insertions(+), 1 deletion(-)

diff --git a/src/amd/vulkan/radv_cmd_buffer.c b/src/amd/vulkan/radv_cmd_buffer.c
index 0de11824df5..a027ceb6497 100644
--- a/src/amd/vulkan/radv_cmd_buffer.c
+++ b/src/amd/vulkan/radv_cmd_buffer.c
@@ -3803,7 +3803,13 @@ lookup_vs_prolog(struct radv_cmd_buffer *cmd_buffer, 
const struct radv_shader *v
    key.as_ls = vs_shader->info.vs.as_ls && instance_rate_inputs;
    key.is_ngg = vs_shader->info.is_ngg;
    key.wave32 = vs_shader->info.wave_size == 32;
-   key.next_stage = vs_shader->info.stage;
+
+   if (vs_shader->info.merged_shader_compiled_separately) {
+      assert(vs_shader->info.next_stage == MESA_SHADER_TESS_CTRL || 
vs_shader->info.next_stage == MESA_SHADER_GEOMETRY);
+      key.next_stage = vs_shader->info.next_stage;
+   } else {
+      key.next_stage = vs_shader->info.stage;
+   }
 
    union vs_prolog_key_header header;
    header.v = 0;

Reply via email to