mesa: Add GL/GLSL plumbing for ARB_fragment_shader_interlock.

This extension provides new GLSL built-in functions
beginInvocationInterlockARB() and endInvocationInterlockARB()
that delimit a critical section of fragment shader code. For
pairs of shader invocations with "overlapping" coverage in a
given pixel, the OpenGL implementation will guarantee that the
critical section of the fragment shader will be executed for
only one fragment at a time.

Signed-off-by: Plamena Manolova <plamena.manolova@intel.com>
Reviewed-by: Francisco Jerez <currojerez@riseup.net>
This commit is contained in:
Plamena Manolova
2018-04-27 14:12:30 +01:00
parent 53719f818c
commit 60e843c4d5
14 changed files with 197 additions and 1 deletions

View File

@@ -179,6 +179,11 @@ typedef struct shader_info {
bool pixel_center_integer;
bool pixel_interlock_ordered;
bool pixel_interlock_unordered;
bool sample_interlock_ordered;
bool sample_interlock_unordered;
/** gl_FragDepth layout for ARB_conservative_depth. */
enum gl_frag_depth_layout depth_layout;
} fs;