mirror of
https://gitlab.freedesktop.org/mesa/mesa.git
synced 2026-01-04 20:00:11 +01:00
glsl: correct compute shader checks for memoryBarrier functions
As per the spec - "The functions memoryBarrierShared() and groupMemoryBarrier() are available only in compute shaders; the other functions are available in all shader types." Conform to this by adding another delegate to check for compute shader support instead of only whether the current stage is compute This allows some fragment shaders in Dirt Rally to compile Cc: "17.0" <mesa-stable@lists.freedesktop.org> Reviewed-by: Anuj Phogat <anuj.phogat@gmail.com> Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
This commit is contained in:
parent
83fb63d31d
commit
21efe2528c
1 changed files with 12 additions and 6 deletions
|
|
@ -557,6 +557,12 @@ compute_shader(const _mesa_glsl_parse_state *state)
|
|||
return state->stage == MESA_SHADER_COMPUTE;
|
||||
}
|
||||
|
||||
static bool
|
||||
compute_shader_supported(const _mesa_glsl_parse_state *state)
|
||||
{
|
||||
return state->has_compute_shader();
|
||||
}
|
||||
|
||||
static bool
|
||||
buffer_atomics_supported(const _mesa_glsl_parse_state *state)
|
||||
{
|
||||
|
|
@ -1133,15 +1139,15 @@ builtin_builder::create_intrinsics()
|
|||
ir_intrinsic_group_memory_barrier),
|
||||
NULL);
|
||||
add_function("__intrinsic_memory_barrier_atomic_counter",
|
||||
_memory_barrier_intrinsic(compute_shader,
|
||||
_memory_barrier_intrinsic(compute_shader_supported,
|
||||
ir_intrinsic_memory_barrier_atomic_counter),
|
||||
NULL);
|
||||
add_function("__intrinsic_memory_barrier_buffer",
|
||||
_memory_barrier_intrinsic(compute_shader,
|
||||
_memory_barrier_intrinsic(compute_shader_supported,
|
||||
ir_intrinsic_memory_barrier_buffer),
|
||||
NULL);
|
||||
add_function("__intrinsic_memory_barrier_image",
|
||||
_memory_barrier_intrinsic(compute_shader,
|
||||
_memory_barrier_intrinsic(compute_shader_supported,
|
||||
ir_intrinsic_memory_barrier_image),
|
||||
NULL);
|
||||
add_function("__intrinsic_memory_barrier_shared",
|
||||
|
|
@ -3070,15 +3076,15 @@ builtin_builder::create_builtins()
|
|||
NULL);
|
||||
add_function("memoryBarrierAtomicCounter",
|
||||
_memory_barrier("__intrinsic_memory_barrier_atomic_counter",
|
||||
compute_shader),
|
||||
compute_shader_supported),
|
||||
NULL);
|
||||
add_function("memoryBarrierBuffer",
|
||||
_memory_barrier("__intrinsic_memory_barrier_buffer",
|
||||
compute_shader),
|
||||
compute_shader_supported),
|
||||
NULL);
|
||||
add_function("memoryBarrierImage",
|
||||
_memory_barrier("__intrinsic_memory_barrier_image",
|
||||
compute_shader),
|
||||
compute_shader_supported),
|
||||
NULL);
|
||||
add_function("memoryBarrierShared",
|
||||
_memory_barrier("__intrinsic_memory_barrier_shared",
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue