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>
This commit is contained in:
parent
6a976bbf84
commit
303fb5881c
|
@ -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);
|
||||
}
|
||||
|
|
|
@ -47,4 +47,7 @@ _mesa_MemoryBarrier(GLbitfield barriers);
|
|||
void GLAPIENTRY
|
||||
_mesa_MemoryBarrierByRegion(GLbitfield barriers);
|
||||
|
||||
void GLAPIENTRY
|
||||
_mesa_BlendBarrierMESA(void);
|
||||
|
||||
#endif /* BARRIER_H */
|
||||
|
|
|
@ -957,6 +957,18 @@ struct dd_function_table {
|
|||
void (*MemoryBarrier)(struct gl_context *ctx, GLbitfield barriers);
|
||||
/** @} */
|
||||
|
||||
/**
|
||||
* 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
|
||||
*/
|
||||
|
|
Loading…
Reference in New Issue