summaryrefslogtreecommitdiffstats
path: root/src/compiler/glsl/glsl_parser.yy
diff options
context:
space:
mode:
authorFrancisco Jerez <[email protected]>2018-02-12 15:54:33 -0800
committerFrancisco Jerez <[email protected]>2018-02-24 15:28:36 -0800
commitef9e3f63ca369e3549b4f17b39934dc4b3cbbb05 (patch)
treef7419d5cecdaecbdc179a80452fdb890e26ec37f /src/compiler/glsl/glsl_parser.yy
parent0aeec504b484cb37b856dd574974d739f35e968b (diff)
glsl: Add support for the framebuffer fetch layout(noncoherent) qualifier.
This allows the application to request framebuffer fetch coherency with per-fragment output granularity. Coherent framebuffer fetch outputs (which is the default if no qualifier is present for compatibility with older versions of the EXT_shader_framebuffer_fetch extension) will have ir_variable_data::memory_coherent set to true. Reviewed-by: Plamena Manolova <[email protected]>
Diffstat (limited to 'src/compiler/glsl/glsl_parser.yy')
-rw-r--r--src/compiler/glsl/glsl_parser.yy6
1 files changed, 6 insertions, 0 deletions
diff --git a/src/compiler/glsl/glsl_parser.yy b/src/compiler/glsl/glsl_parser.yy
index 4faf9602a08..f1986ed0a8a 100644
--- a/src/compiler/glsl/glsl_parser.yy
+++ b/src/compiler/glsl/glsl_parser.yy
@@ -1587,6 +1587,12 @@ layout_qualifier_id:
}
}
+ if (!$$.flags.i &&
+ state->EXT_shader_framebuffer_fetch_non_coherent_enable) {
+ if (match_layout_qualifier($1, "noncoherent", state) == 0)
+ $$.flags.q.non_coherent = 1;
+ }
+
if (!$$.flags.i) {
_mesa_glsl_error(& @1, state, "unrecognized layout identifier "
"`%s'", $1);