diff --git a/.pick_status.json b/.pick_status.json index fe2e92996cc..f5781eacc38 100644 --- a/.pick_status.json +++ b/.pick_status.json @@ -1201,7 +1201,7 @@ "description": "zink: remove tcs patch slot map", "nominated": true, "nomination_type": 1, - "resolution": 0, + "resolution": 1, "main_sha": null, "because_sha": "f7ade1f1885b7133c68843d7bb31663256b8bb15" }, diff --git a/src/gallium/drivers/zink/ci/zink-lvp-fails.txt b/src/gallium/drivers/zink/ci/zink-lvp-fails.txt index 9b2540514ad..2eb71b557d8 100644 --- a/src/gallium/drivers/zink/ci/zink-lvp-fails.txt +++ b/src/gallium/drivers/zink/ci/zink-lvp-fails.txt @@ -1,3 +1,9 @@ +# #6115 +spec@arb_tessellation_shader@execution@variable-indexing@tes-both-input-array-float-index-rd,Crash +spec@arb_tessellation_shader@execution@variable-indexing@tes-both-input-array-vec2-index-rd,Crash +spec@arb_tessellation_shader@execution@variable-indexing@tes-both-input-array-vec3-index-rd,Crash +spec@arb_tessellation_shader@execution@variable-indexing@tes-both-input-array-vec4-index-rd,Crash + # #6270 spec@arb_shader_texture_lod@execution@arb_shader_texture_lod-texgradcube,Fail diff --git a/src/gallium/drivers/zink/zink_compiler.c b/src/gallium/drivers/zink/zink_compiler.c index 08a86d629c2..c4014fed9cb 100644 --- a/src/gallium/drivers/zink/zink_compiler.c +++ b/src/gallium/drivers/zink/zink_compiler.c @@ -1169,11 +1169,9 @@ rewrite_and_discard_read(nir_builder *b, nir_instr *instr, void *data) void zink_compiler_assign_io(nir_shader *producer, nir_shader *consumer) { - unsigned reserved = 0, patch_reserved = 0; + unsigned reserved = 0; unsigned char slot_map[VARYING_SLOT_MAX]; memset(slot_map, -1, sizeof(slot_map)); - unsigned char patch_slot_map[VARYING_SLOT_MAX]; - memset(patch_slot_map, -1, sizeof(patch_slot_map)); bool do_fixup = false; nir_shader *nir = producer->info.stage == MESA_SHADER_TESS_CTRL ? producer : consumer; if (consumer->info.stage != MESA_SHADER_FRAGMENT) { @@ -1189,13 +1187,9 @@ zink_compiler_assign_io(nir_shader *producer, nir_shader *consumer) if (producer->info.stage == MESA_SHADER_TESS_CTRL) { /* never assign from tcs -> tes, always invert */ nir_foreach_variable_with_modes(var, consumer, nir_var_shader_in) - assign_producer_var_io(consumer->info.stage, var, - var->data.patch ? &patch_reserved : &reserved, - var->data.patch ? patch_slot_map : slot_map); + assign_producer_var_io(consumer->info.stage, var, &reserved, slot_map); nir_foreach_variable_with_modes_safe(var, producer, nir_var_shader_out) { - if (!assign_consumer_var_io(producer->info.stage, var, - var->data.patch ? &patch_reserved : &reserved, - var->data.patch ? patch_slot_map : slot_map)) + if (!assign_consumer_var_io(producer->info.stage, var, &reserved, slot_map)) /* this is an output, nothing more needs to be done for it to be dropped */ do_fixup = true; }