On Fri, Feb 3, 2017 at 7:25 AM, Marc Di Luzio <mdilu...@feralinteractive.com> wrote: > 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 > --- > src/compiler/glsl/builtin_functions.cpp | 18 ++++++++++++------ > 1 file changed, 12 insertions(+), 6 deletions(-) > > diff --git a/src/compiler/glsl/builtin_functions.cpp > b/src/compiler/glsl/builtin_functions.cpp > index 6d3b950..ac74636 100644 > --- a/src/compiler/glsl/builtin_functions.cpp > +++ b/src/compiler/glsl/builtin_functions.cpp > @@ -538,6 +538,12 @@ compute_shader(const _mesa_glsl_parse_state *state) > } > > 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) > { > return compute_shader(state) || shader_storage_buffer_object(state); > @@ -1098,15 +1104,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", > @@ -2958,15 +2964,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", > -- > 2.9.3 > > _______________________________________________ > mesa-dev mailing list > mesa-dev@lists.freedesktop.org > https://lists.freedesktop.org/mailman/listinfo/mesa-dev
Cross checked the GLSL 4.5 spec. Please add: Cc: 17.0 <mesa-sta...@lists.freedesktop.org> Reviewed-by: Anuj Phogat <anuj.pho...@gmail.com> _______________________________________________ mesa-dev mailing list mesa-dev@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/mesa-dev