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

Author: Rhys Perry <pendingchao...@gmail.com>
Date:   Wed Oct 11 14:46:20 2023 +0100

radv: skip radv_remove_varyings for mesh shaders

Fixes compilation of a Talos Principle 2 shader.

Signed-off-by: Rhys Perry <pendingchao...@gmail.com>
Reviewed-by: Timur Kristóf <timur.kris...@gmail.com>
Fixes: 9fa9782c1790 ("radv: stop compiling a noop FS when the application 
doesn't provide a FS")
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25659>

---

 src/amd/vulkan/radv_pipeline_graphics.c | 6 ++++++
 1 file changed, 6 insertions(+)

diff --git a/src/amd/vulkan/radv_pipeline_graphics.c 
b/src/amd/vulkan/radv_pipeline_graphics.c
index 9b648dbc7c2..72ed9697f13 100644
--- a/src/amd/vulkan/radv_pipeline_graphics.c
+++ b/src/amd/vulkan/radv_pipeline_graphics.c
@@ -1627,6 +1627,12 @@ radv_pipeline_needs_noop_fs(struct 
radv_graphics_pipeline *pipeline, const struc
 static void
 radv_remove_varyings(nir_shader *nir)
 {
+   /* We can't demote mesh outputs to nir_var_shader_temp yet, because
+    * they don't support array derefs of vectors.
+    */
+   if (nir->info.stage == MESA_SHADER_MESH)
+      return;
+
    bool fixup_derefs = false;
 
    nir_foreach_shader_out_variable (var, nir) {

Reply via email to