aco: enable WQM if demote is used with maximal reconvergence
If otherwise no helper lanes are required by the shader, then demote behaves like discard and immediately terminates the invocations. With maximal reconvergence, however, we need to ensure that helper lanes are not terminated unless the entire quad was demoted. In order to fix this, generally enable helper lanes in this unlikely corner case and avoid a major refactor. Reviewed-by: Georg Lehmann <dadschoorse@gmail.com> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/27277>
This commit is contained in:
committed by
Marge Bot
parent
6588f5a123
commit
2649717a36
@@ -8913,6 +8913,11 @@ visit_intrinsic(isel_context* ctx, nir_intrinsic_instr* instr)
|
||||
|
||||
ctx->block->kind |= block_kind_uses_discard;
|
||||
ctx->program->needs_exact = true;
|
||||
|
||||
/* Enable WQM in order to prevent helper lanes from getting terminated. */
|
||||
if (ctx->shader->info.maximally_reconverges)
|
||||
ctx->program->needs_wqm = true;
|
||||
|
||||
break;
|
||||
}
|
||||
case nir_intrinsic_terminate:
|
||||
|
||||
Reference in New Issue
Block a user