OpenGL.GL.INTEL.fragment_shader_ordering
OpenGL extension INTEL.fragment_shader_ordering
This module customises the behaviour of the
OpenGL.raw.GL.INTEL.fragment_shader_ordering to provide a more
Python-friendly API
Overview (from the spec)
Graphics devices may execute in parallel fragment shaders referring to the
same window xy coordinates. Framebuffer writes are guaranteed to be
processed in primitive rasterization order, but there is no order guarantee
for other instructions and image or buffer object accesses in
particular.
The extension introduces a new GLSL built-in function,
beginFragmentShaderOrderingINTEL(), which blocks execution of a fragment
shader invocation until invocations from previous primitives that map to
the same xy window coordinates (and same sample when per-sample shading
is active) complete their execution. All memory transactions from previous
fragment shader invocations are made visible to the fragment shader
invocation that called beginFragmentShaderOrderingINTEL() when the function
returns.
Including the following line in a shader can be used to control the
language features described in this extension:
#extension GL_INTEL_fragment_shader_ordering : <behavior>
where <behavior> is as specified in section 3.3.
New preprocessor #defines are added to the OpenGL Shading Language:
#define GL_INTEL_fragment_shader_ordering 1
The official definition of this extension is available here:
http://www.opengl.org/registry/specs/INTEL/fragment_shader_ordering.txt