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

Author: Mike Blumenkrantz <michael.blumenkra...@gmail.com>
Date:   Wed Jan 10 12:22:56 2024 -0500

zink: fix separate shader patch variable location adjustment

in spirv, these start at location 0, not location 32

fixes #10414

Fixes: d9942442f20 ("zink: handle patch variable locations for separate shaders 
better")
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26981>

---

 src/gallium/drivers/zink/zink_compiler.c | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/src/gallium/drivers/zink/zink_compiler.c 
b/src/gallium/drivers/zink/zink_compiler.c
index c13106f516a..a3b9c2ca9e5 100644
--- a/src/gallium/drivers/zink/zink_compiler.c
+++ b/src/gallium/drivers/zink/zink_compiler.c
@@ -4909,7 +4909,7 @@ fixup_io_locations(nir_shader *nir)
             if (var->data.location == VARYING_SLOT_VAR0)
                var->data.driver_location = 0;
             else if (var->data.patch)
-               var->data.driver_location = var->data.location - 
VARYING_SLOT_VAR0;
+               var->data.driver_location = var->data.location - 
VARYING_SLOT_PATCH0;
             else
                var->data.driver_location = var->data.location;
          }
@@ -4936,7 +4936,7 @@ fixup_io_locations(nir_shader *nir)
                   size += glsl_count_vec4_slots(var->type, false, false);
             }
             if (var->data.patch)
-               var->data.driver_location = var->data.location - 
VARYING_SLOT_VAR0;
+               var->data.driver_location = var->data.location - 
VARYING_SLOT_PATCH0;
             else
                var->data.driver_location = slot;
             found = true;

Reply via email to