From 6c3a6a9c0f07585bfe02ada590f73bcf360eb9ac Mon Sep 17 00:00:00 2001 From: Connor Abbott Date: Thu, 7 Dec 2023 07:27:12 -0500 Subject: [PATCH] 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: (cherry picked from commit 862df28f6b1c42ec4b716cdcdd427cd1eab43899) --- .pick_status.json | 2 +- src/freedreno/ci/freedreno-a660-fails.txt | 18 ------------------ src/freedreno/ir3/ir3_legalize.c | 1 + 3 files changed, 2 insertions(+), 19 deletions(-) diff --git a/.pick_status.json b/.pick_status.json index 6d91a8b..2393eb9c 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 af00611..dc061f8 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 604e5bf..e7db858 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; } -- 2.7.4