From 565ee4fafc9490a4ee7eec117123444843376d1c Mon Sep 17 00:00:00 2001 From: Mike Blumenkrantz Date: Wed, 10 Jan 2024 12:22:56 -0500 Subject: [PATCH] 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: --- 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;