summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorConnor Abbott <cwabbott0@gmail.com>2023-12-07 07:27:12 -0500
committerEric Engestrom <eric@engestrom.ch>2024-01-09 19:37:45 +0000
commit6c3a6a9c0f07585bfe02ada590f73bcf360eb9ac (patch)
tree79d2dee96c40a5727fc3d66cb0c4529e9281d14e
parent354363cc89185c215b121218f03f9e24bc61fa9d (diff)
downloadmesa-6c3a6a9c0f07585bfe02ada590f73bcf360eb9ac.tar.gz
mesa-6c3a6a9c0f07585bfe02ada590f73bcf360eb9ac.tar.bz2
mesa-6c3a6a9c0f07585bfe02ada590f73bcf360eb9ac.zip
ir3/legalize: Fix helper propagation with b.any/b.all/getone
We need to set uses_helpers_beginning in order to propagate it to predecessor blocks. Fixes: aa322a37fcb ("ir3: Implement helper invocation optimization") Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26564> (cherry picked from commit 862df28f6b1c42ec4b716cdcdd427cd1eab43899)
-rw-r--r--.pick_status.json2
-rw-r--r--src/freedreno/ci/freedreno-a660-fails.txt18
-rw-r--r--src/freedreno/ir3/ir3_legalize.c1
3 files changed, 2 insertions, 19 deletions
diff --git a/.pick_status.json b/.pick_status.json
index 6d91a8b0d1f..2393eb9c9bf 100644
--- a/.pick_status.json
+++ b/.pick_status.json
@@ -1304,7 +1304,7 @@
"description": "ir3/legalize: Fix helper propagation with b.any/b.all/getone",
"nominated": true,
"nomination_type": 1,
- "resolution": 0,
+ "resolution": 1,
"main_sha": null,
"because_sha": "aa322a37fcb6ab58c389b48186268af5f041a62c",
"notes": null
diff --git a/src/freedreno/ci/freedreno-a660-fails.txt b/src/freedreno/ci/freedreno-a660-fails.txt
index af006111325..dc061f802b3 100644
--- a/src/freedreno/ci/freedreno-a660-fails.txt
+++ b/src/freedreno/ci/freedreno-a660-fails.txt
@@ -11,24 +11,6 @@ gmem-dEQP-VK.spirv_assembly.instruction.graphics.variable_pointers.graphics.writ
dEQP-VK.binding_model.descriptor_buffer.basic.limits,Fail
gmem-dEQP-VK.binding_model.descriptor_buffer.basic.limits,Fail
-dEQP-VK.subgroups.vote.frag_helper.subgroupallequal_bvec2_fragment,Fail
-dEQP-VK.subgroups.vote.frag_helper.subgroupallequal_bvec3_fragment,Fail
-dEQP-VK.subgroups.vote.frag_helper.subgroupallequal_bvec4_fragment,Fail
-dEQP-VK.subgroups.vote.frag_helper.subgroupallequal_float_fragment,Fail
-dEQP-VK.subgroups.vote.frag_helper.subgroupallequal_ivec2_fragment,Fail
-dEQP-VK.subgroups.vote.frag_helper.subgroupallequal_ivec3_fragment,Fail
-dEQP-VK.subgroups.vote.frag_helper.subgroupallequal_ivec4_fragment,Fail
-dEQP-VK.subgroups.vote.frag_helper.subgroupallequal_uvec2_fragment,Fail
-dEQP-VK.subgroups.vote.frag_helper.subgroupallequal_uvec3_fragment,Fail
-dEQP-VK.subgroups.vote.frag_helper.subgroupallequal_uvec4_fragment,Fail
-dEQP-VK.subgroups.vote.frag_helper.subgroupallequal_vec2_fragment,Fail
-dEQP-VK.subgroups.vote.frag_helper.subgroupallequal_vec3_fragment,Fail
-dEQP-VK.subgroups.vote.frag_helper.subgroupallequal_vec4_fragment,Fail
-gmem-dEQP-VK.subgroups.vote.frag_helper.subgroupallequal_ivec4_fragment,Fail
-gmem-dEQP-VK.subgroups.vote.frag_helper.subgroupallequal_uvec2_fragment,Fail
-gmem-dEQP-VK.subgroups.vote.frag_helper.subgroupallequal_vec2_fragment,Fail
-gmem-dEQP-VK.subgroups.vote.frag_helper.subgroupallequal_vec4_fragment,Fail
-
# New CTS fails in 1.3.6.3
gmem-dEQP-VK.spirv_assembly.instruction.graphics.16bit_storage:struct_mixed_types.uniform_buffer_block_geom,Fail
gmem-dEQP-VK.spirv_assembly.instruction.graphics.16bit_storage.struct_mixed_types.uniform_buffer_block_geom,Fail
diff --git a/src/freedreno/ir3/ir3_legalize.c b/src/freedreno/ir3/ir3_legalize.c
index 604e5bf2962..e7db858ba28 100644
--- a/src/freedreno/ir3/ir3_legalize.c
+++ b/src/freedreno/ir3/ir3_legalize.c
@@ -998,6 +998,7 @@ helper_sched(struct ir3_legalize_ctx *ctx, struct ir3 *ir,
if (block->brtype == IR3_BRANCH_ALL ||
block->brtype == IR3_BRANCH_ANY ||
block->brtype == IR3_BRANCH_GETONE) {
+ bd->uses_helpers_beginning = true;
bd->uses_helpers_end = true;
}