mirror of
https://gitlab.freedesktop.org/mesa/mesa.git
synced 2025-12-20 13:50:11 +01:00
glsl: allow barrier builtin functions for mesh shader
Reviewed-by: Ian Romanick <ian.d.romanick@intel.com> Acked-by: Marek Olšák <marek.olsak@amd.com> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/36405>
This commit is contained in:
parent
9ffbf9f96b
commit
d52452a486
1 changed files with 10 additions and 8 deletions
|
|
@ -853,9 +853,11 @@ ballot_khr_and_fp64(const _mesa_glsl_parse_state *state)
|
|||
}
|
||||
|
||||
static bool
|
||||
compute_shader(const _mesa_glsl_parse_state *state)
|
||||
compute_or_mesh_shader(const _mesa_glsl_parse_state *state)
|
||||
{
|
||||
return state->stage == MESA_SHADER_COMPUTE;
|
||||
return state->stage == MESA_SHADER_COMPUTE ||
|
||||
state->stage == MESA_SHADER_MESH ||
|
||||
state->stage == MESA_SHADER_TASK;
|
||||
}
|
||||
|
||||
static bool
|
||||
|
|
@ -867,7 +869,7 @@ compute_shader_supported(const _mesa_glsl_parse_state *state)
|
|||
static bool
|
||||
buffer_atomics_supported(const _mesa_glsl_parse_state *state)
|
||||
{
|
||||
return compute_shader(state) || shader_storage_buffer_object(state);
|
||||
return compute_or_mesh_shader(state) || shader_storage_buffer_object(state);
|
||||
}
|
||||
|
||||
static bool
|
||||
|
|
@ -880,7 +882,7 @@ buffer_int64_atomics_supported(const _mesa_glsl_parse_state *state)
|
|||
static bool
|
||||
barrier_supported(const _mesa_glsl_parse_state *state)
|
||||
{
|
||||
return compute_shader(state) ||
|
||||
return compute_or_mesh_shader(state) ||
|
||||
state->stage == MESA_SHADER_TESS_CTRL;
|
||||
}
|
||||
|
||||
|
|
@ -1928,7 +1930,7 @@ builtin_builder::create_intrinsics()
|
|||
ir_intrinsic_memory_barrier),
|
||||
NULL);
|
||||
add_function("__intrinsic_group_memory_barrier",
|
||||
_memory_barrier_intrinsic(compute_shader,
|
||||
_memory_barrier_intrinsic(compute_or_mesh_shader,
|
||||
ir_intrinsic_group_memory_barrier),
|
||||
NULL);
|
||||
add_function("__intrinsic_memory_barrier_atomic_counter",
|
||||
|
|
@ -1944,7 +1946,7 @@ builtin_builder::create_intrinsics()
|
|||
ir_intrinsic_memory_barrier_image),
|
||||
NULL);
|
||||
add_function("__intrinsic_memory_barrier_shared",
|
||||
_memory_barrier_intrinsic(compute_shader,
|
||||
_memory_barrier_intrinsic(compute_or_mesh_shader,
|
||||
ir_intrinsic_memory_barrier_shared),
|
||||
NULL);
|
||||
|
||||
|
|
@ -5620,7 +5622,7 @@ builtin_builder::create_builtins()
|
|||
NULL);
|
||||
add_function("groupMemoryBarrier",
|
||||
_memory_barrier("__intrinsic_group_memory_barrier",
|
||||
compute_shader),
|
||||
compute_or_mesh_shader),
|
||||
NULL);
|
||||
add_function("memoryBarrierAtomicCounter",
|
||||
_memory_barrier("__intrinsic_memory_barrier_atomic_counter",
|
||||
|
|
@ -5636,7 +5638,7 @@ builtin_builder::create_builtins()
|
|||
NULL);
|
||||
add_function("memoryBarrierShared",
|
||||
_memory_barrier("__intrinsic_memory_barrier_shared",
|
||||
compute_shader),
|
||||
compute_or_mesh_shader),
|
||||
NULL);
|
||||
|
||||
add_function("ballotARB", _ballot(&glsl_type_builtin_uint64_t, ballot_arb), NULL);
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue