On Wednesday, July 20, 2016 9:49:36 PM PDT Francisco Jerez wrote: > 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 > --- > src/mesa/main/barrier.c | 14 ++++++++++++++ > src/mesa/main/barrier.h | 3 +++ > src/mesa/main/dd.h | 12 ++++++++++++ > 3 files changed, 29 insertions(+) > > 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); > +} > diff --git a/src/mesa/main/barrier.h b/src/mesa/main/barrier.h > index 8eee583..21dce90 100644 > --- a/src/mesa/main/barrier.h > +++ b/src/mesa/main/barrier.h > @@ -47,4 +47,7 @@ _mesa_MemoryBarrier(GLbitfield barriers); > void GLAPIENTRY > _mesa_MemoryBarrierByRegion(GLbitfield barriers); > > +void GLAPIENTRY > +_mesa_BlendBarrierMESA(void); > + > #endif /* BARRIER_H */ > diff --git a/src/mesa/main/dd.h b/src/mesa/main/dd.h > index 114cbd2..807cb2a 100644 > --- a/src/mesa/main/dd.h > +++ b/src/mesa/main/dd.h > @@ -959,6 +959,18 @@ struct dd_function_table { > /** @} */ > > /** > + * GL_MESA_shader_framebuffer_fetch_non_coherent rendering barrier. > + * > + * On return from this function any framebuffer contents written by > + * previous draw commands are guaranteed to be visible from subsequent > + * fragment shader invocations using the > + * MESA_shader_framebuffer_fetch_non_coherent interface. > + */ > + /** @{ */ > + void (*BlendBarrier)(struct gl_context *ctx); > + /** @} */ > + > + /** > * \name GL_ARB_compute_shader interface > */ > /*@{*/ >
Don't you need to add this to the glapi XML? Otherwise, it probably won't actually be exposed.
signature.asc
Description: This is a digitally signed message part.
_______________________________________________ mesa-dev mailing list mesa-dev@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/mesa-dev