Skip to content
  • Kevin Rogovin's avatar
    mesa: Add GL/GLSL plumbing for INTEL_fragment_shader_ordering · 119435c8
    Kevin Rogovin authored and Plamena Manolova's avatar Plamena Manolova committed
    
    
    This extension provides new GLSL built-in function
    beginFragmentShaderOrderingIntel() that guarantees
    (taking wording of GL_INTEL_fragment_shader_ordering
    extension) that any memory transactions issued by
    shader invocations from previous primitives mapped to
    same xy window coordinates (and same sample when
    per-sample shading is active), complete and are visible
    to the shader invocation that called
    beginFragmentShaderOrderingINTEL().
    
    One advantage of INTEL_fragment_shader_ordering over
    ARB_fragment_shader_interlock is that it provides a
    function that operates as a memory barrie (instead
    of a defining a critcial section) that can be called
    under arbitary control flow from any function (in
    contrast the begin/end of ARB_fragment_shader_interlock
    may only be called once, from main(), under no control
    flow.
    
    Signed-off-by: default avatarKevin Rogovin <kevin.rogovin@intel.com>
    Reviewed-by: default avatarPlamena Manolova <plamena.manolova@intel.com>
    119435c8