diff --git a/src/gallium/drivers/zink/zink_compiler.c b/src/gallium/drivers/zink/zink_compiler.c index 1e021b79564..cd6f061f891 100644 --- a/src/gallium/drivers/zink/zink_compiler.c +++ b/src/gallium/drivers/zink/zink_compiler.c @@ -4833,6 +4833,8 @@ fixup_io_locations(nir_shader *nir) continue; 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; else var->data.driver_location = var->data.location; } @@ -4858,7 +4860,10 @@ fixup_io_locations(nir_shader *nir) else size += glsl_count_vec4_slots(var->type, false, false); } - var->data.driver_location = slot; + if (var->data.patch) + var->data.driver_location = var->data.location - VARYING_SLOT_VAR0; + else + var->data.driver_location = slot; found = true; } slot += size;