ir3/legalize: Fix helper propagation with b.any/b.all/getone
authorConnor Abbott <cwabbott0@gmail.com>
Thu, 7 Dec 2023 12:27:12 +0000 (07:27 -0500)
committerEric Engestrom <eric@engestrom.ch>
Tue, 9 Jan 2024 19:37:45 +0000 (19:37 +0000)
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)

.pick_status.json
src/freedreno/ci/freedreno-a660-fails.txt
src/freedreno/ir3/ir3_legalize.c

index 6d91a8b..2393eb9 100644 (file)
         "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
index af00611..dc061f8 100644 (file)
@@ -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
index 604e5bf..e7db858 100644 (file)
@@ -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;
       }