mirror of
https://gitlab.freedesktop.org/mesa/mesa.git
synced 2025-12-20 20:20:18 +01:00
glsl/nir: Use scoped_barrier for control barrier
Rather than control_barrier. This avoids the need to handle control_barrier at all for backends that set use_scoped_barrier. This effectively matches what spirv_to_nir emits, so Vulkan-capable compilers should be ok. Signed-off-by: Alyssa Rosenzweig <alyssa@collabora.com> Reviewed-by: Emma Anholt <emma@anholt.net> Reviewed-by: Caio Oliveira <caio.oliveira@intel.com> Reviewed-by: Kenneth Graunke <kenneth@whitecape.org> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/21634>
This commit is contained in:
parent
07de034791
commit
f47ea3f992
1 changed files with 6 additions and 6 deletions
|
|
@ -2767,20 +2767,20 @@ nir_visitor::visit(ir_barrier *)
|
||||||
{
|
{
|
||||||
if (shader->options->use_scoped_barrier) {
|
if (shader->options->use_scoped_barrier) {
|
||||||
if (shader->info.stage == MESA_SHADER_COMPUTE) {
|
if (shader->info.stage == MESA_SHADER_COMPUTE) {
|
||||||
nir_scoped_memory_barrier(&b, NIR_SCOPE_WORKGROUP, NIR_MEMORY_ACQ_REL,
|
nir_scoped_barrier(&b, NIR_SCOPE_WORKGROUP, NIR_SCOPE_WORKGROUP,
|
||||||
nir_var_mem_shared);
|
NIR_MEMORY_ACQ_REL, nir_var_mem_shared);
|
||||||
} else if (shader->info.stage == MESA_SHADER_TESS_CTRL) {
|
} else if (shader->info.stage == MESA_SHADER_TESS_CTRL) {
|
||||||
nir_scoped_memory_barrier(&b, NIR_SCOPE_WORKGROUP, NIR_MEMORY_ACQ_REL,
|
nir_scoped_barrier(&b, NIR_SCOPE_WORKGROUP, NIR_SCOPE_WORKGROUP,
|
||||||
nir_var_shader_out);
|
NIR_MEMORY_ACQ_REL, nir_var_shader_out);
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
if (shader->info.stage == MESA_SHADER_COMPUTE)
|
if (shader->info.stage == MESA_SHADER_COMPUTE)
|
||||||
nir_memory_barrier_shared(&b);
|
nir_memory_barrier_shared(&b);
|
||||||
else if (shader->info.stage == MESA_SHADER_TESS_CTRL)
|
else if (shader->info.stage == MESA_SHADER_TESS_CTRL)
|
||||||
nir_memory_barrier_tcs_patch(&b);
|
nir_memory_barrier_tcs_patch(&b);
|
||||||
}
|
|
||||||
|
|
||||||
nir_control_barrier(&b);
|
nir_control_barrier(&b);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
nir_shader *
|
nir_shader *
|
||||||
|
|
|
||||||
Loading…
Add table
Reference in a new issue