summaryrefslogtreecommitdiffstats
path: root/src/mesa/main/barrier.c
diff options
context:
space:
mode:
authorFrancisco Jerez <currojerez@riseup.net>2016-07-05 23:21:21 -0700
committerFrancisco Jerez <currojerez@riseup.net>2016-08-24 13:28:30 -0700
commit303fb5881c36b8c1270f3c8071705eea336c341b (patch)
tree92bf4b1472f95718ffb40b600b483a788484febb /src/mesa/main/barrier.c
parent6a976bbf84c9c8790fa61bbeb5eb24a2e646c76c (diff)
downloadexternal_mesa3d-303fb5881c36b8c1270f3c8071705eea336c341b.zip
external_mesa3d-303fb5881c36b8c1270f3c8071705eea336c341b.tar.gz
external_mesa3d-303fb5881c36b8c1270f3c8071705eea336c341b.tar.bz2
mesa: Add blend barrier entry point and driver hook.
Both MESA_shader_framebuffer_fetch_non_coherent and the non-coherent variant of KHR_blend_equation_advanced will use this driver hook to request coherency between framebuffer reads and writes. This intentionally doesn't hook up glBlendBarrierMESA to the dispatch layer since the extension isn't exposed to applications yet, see [1] for more details. [1] https://lists.freedesktop.org/archives/mesa-dev/2016-July/124028.html Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
Diffstat (limited to 'src/mesa/main/barrier.c')
-rw-r--r--src/mesa/main/barrier.c14
1 files changed, 14 insertions, 0 deletions
diff --git a/src/mesa/main/barrier.c b/src/mesa/main/barrier.c
index 7ae8fc6..42a5e0f 100644
--- a/src/mesa/main/barrier.c
+++ b/src/mesa/main/barrier.c
@@ -108,3 +108,17 @@ _mesa_MemoryBarrierByRegion(GLbitfield barriers)
ctx->Driver.MemoryBarrier(ctx, barriers);
}
}
+
+void GLAPIENTRY
+_mesa_BlendBarrierMESA(void)
+{
+ GET_CURRENT_CONTEXT(ctx);
+
+ if (!ctx->Extensions.MESA_shader_framebuffer_fetch_non_coherent) {
+ _mesa_error(ctx, GL_INVALID_OPERATION,
+ "glBlendBarrier(not supported)");
+ return;
+ }
+
+ ctx->Driver.BlendBarrier(ctx);
+}