Module: Mesa Branch: staging/23.3 Commit: 151cd31e05170d5571778ba406cff708651d7687 URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=151cd31e05170d5571778ba406cff708651d7687
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> (cherry picked from commit 565ee4fafc9490a4ee7eec117123444843376d1c) --- .pick_status.json | 2 +- src/gallium/drivers/zink/zink_compiler.c | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/.pick_status.json b/.pick_status.json index a1d677d2073..feba6c3d211 100644 --- a/.pick_status.json +++ b/.pick_status.json @@ -564,7 +564,7 @@ "description": "zink: fix separate shader patch variable location adjustment", "nominated": true, "nomination_type": 1, - "resolution": 0, + "resolution": 1, "main_sha": null, "because_sha": "d9942442f200bea0ef5b906f288a5234994767b5", "notes": null diff --git a/src/gallium/drivers/zink/zink_compiler.c b/src/gallium/drivers/zink/zink_compiler.c index 4400d686a0c..6f0d465b2ea 100644 --- a/src/gallium/drivers/zink/zink_compiler.c +++ b/src/gallium/drivers/zink/zink_compiler.c @@ -4912,7 +4912,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; } @@ -4939,7 +4939,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;