mirror of
https://gitlab.freedesktop.org/mesa/mesa.git
synced 2026-01-06 04:30:10 +01:00
aco: enable helper lanes if shader->info.fs.require_full_quads
This enables helper invocations also for lowered quad group operations. Reviewed-by: Georg Lehmann <dadschoorse@gmail.com> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26026>
This commit is contained in:
parent
f1110576d9
commit
3b10547e67
1 changed files with 4 additions and 4 deletions
|
|
@ -174,6 +174,7 @@ set_wqm(isel_context* ctx, bool enable_helpers = false)
|
|||
if (ctx->program->stage == fragment_fs) {
|
||||
ctx->wqm_block_idx = ctx->block->index;
|
||||
ctx->wqm_instruction_idx = ctx->block->instructions.size();
|
||||
enable_helpers |= ctx->shader->info.fs.require_full_quads;
|
||||
ctx->program->needs_wqm |= enable_helpers;
|
||||
}
|
||||
}
|
||||
|
|
@ -8447,7 +8448,7 @@ visit_intrinsic(isel_context* ctx, nir_intrinsic_instr* instr)
|
|||
Temp src = get_ssa_temp(ctx, instr->src[0].ssa);
|
||||
src = bld.sop2(Builder::s_and, bld.def(bld.lm), bld.def(s1, scc), src, Operand(exec, bld.lm));
|
||||
bld.sop1(Builder::s_wqm, Definition(get_ssa_temp(ctx, &instr->def)), bld.def(s1, scc), src);
|
||||
set_wqm(ctx, true);
|
||||
set_wqm(ctx);
|
||||
break;
|
||||
}
|
||||
case nir_intrinsic_quad_vote_all: {
|
||||
|
|
@ -8456,7 +8457,7 @@ visit_intrinsic(isel_context* ctx, nir_intrinsic_instr* instr)
|
|||
src = bld.sop2(Builder::s_and, bld.def(bld.lm), bld.def(s1, scc), src, Operand(exec, bld.lm));
|
||||
src = bld.sop1(Builder::s_wqm, bld.def(bld.lm), bld.def(s1, scc), src);
|
||||
bld.sop1(Builder::s_not, Definition(get_ssa_temp(ctx, &instr->def)), bld.def(s1, scc), src);
|
||||
set_wqm(ctx, true);
|
||||
set_wqm(ctx);
|
||||
break;
|
||||
}
|
||||
case nir_intrinsic_reduce:
|
||||
|
|
@ -8604,8 +8605,7 @@ visit_intrinsic(isel_context* ctx, nir_intrinsic_instr* instr)
|
|||
isel_err(&instr->instr, "Unimplemented NIR quad group instruction bit size.");
|
||||
}
|
||||
|
||||
/* Vulkan spec 9.25: Helper invocations must be active for quad group instructions. */
|
||||
set_wqm(ctx, true);
|
||||
set_wqm(ctx);
|
||||
break;
|
||||
}
|
||||
case nir_intrinsic_masked_swizzle_amd: {
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue