summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMike Blumenkrantz <michael.blumenkrantz@gmail.com>2022-04-15 11:18:07 -0400
committerDylan Baker <dylan.c.baker@intel.com>2022-04-20 21:44:50 -0700
commit247ecdcc0545c43fe3568c8c533f906e45fa9d23 (patch)
treed40b9de15001a22dedef3735a1dcbac2aed3158f
parent72cc88d205bf9883d26af93a7c7ee954ce58289b (diff)
zink: remove tcs patch slot map
this is illegal, and we'll just have to eat some piglit fails until indirects are handled Fixes: f7ade1f1885 ("zink: simplify shader i/o assignment") Reviewed-by: Dave Airlie <airlied@redhat.com> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/15976> (cherry picked from commit 12cf9a154446dfdc46a256fe88246baf5b1fe6e8) Conflicts: src/gallium/drivers/zink/ci/zink-lvp-fails.txt
-rw-r--r--.pick_status.json2
-rw-r--r--src/gallium/drivers/zink/ci/zink-lvp-fails.txt6
-rw-r--r--src/gallium/drivers/zink/zink_compiler.c12
3 files changed, 10 insertions, 10 deletions
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;
}