From 4de0033d73353f186eec8778074674da87090c5f Mon Sep 17 00:00:00 2001 From: Samuel Pitoiset Date: Wed, 19 Jul 2017 10:34:06 +0200 Subject: [PATCH] mesa: add memory_barrier_by_region() helper Signed-off-by: Samuel Pitoiset Reviewed-by: Timothy Arceri --- src/mesa/main/barrier.c | 16 +++++++++++----- 1 file changed, 11 insertions(+), 5 deletions(-) diff --git a/src/mesa/main/barrier.c b/src/mesa/main/barrier.c index e55d13cb6b3..0798d6efad2 100644 --- a/src/mesa/main/barrier.c +++ b/src/mesa/main/barrier.c @@ -67,11 +67,10 @@ _mesa_MemoryBarrier(GLbitfield barriers) ctx->Driver.MemoryBarrier(ctx, barriers); } -void GLAPIENTRY -_mesa_MemoryBarrierByRegion(GLbitfield barriers) +static ALWAYS_INLINE void +memory_barrier_by_region(struct gl_context *ctx, GLbitfield barriers, + bool no_error) { - GET_CURRENT_CONTEXT(ctx); - GLbitfield all_allowed_bits = GL_ATOMIC_COUNTER_BARRIER_BIT | GL_FRAMEBUFFER_BARRIER_BIT | GL_SHADER_IMAGE_ACCESS_BARRIER_BIT | @@ -100,7 +99,7 @@ _mesa_MemoryBarrierByRegion(GLbitfield barriers) * value ALL_BARRIER_BITS, and has any bits set other than those * described above." */ - if ((barriers & ~all_allowed_bits) != 0) { + if (!no_error && (barriers & ~all_allowed_bits) != 0) { _mesa_error(ctx, GL_INVALID_VALUE, "glMemoryBarrierByRegion(unsupported barrier bit"); } @@ -109,6 +108,13 @@ _mesa_MemoryBarrierByRegion(GLbitfield barriers) } } +void GLAPIENTRY +_mesa_MemoryBarrierByRegion(GLbitfield barriers) +{ + GET_CURRENT_CONTEXT(ctx); + memory_barrier_by_region(ctx, barriers, false); +} + void GLAPIENTRY _mesa_BlendBarrier(void) { -- 2.30.2