From fe03d6aef6338e43593f164b09ae993bcd0ecbdd Mon Sep 17 00:00:00 2001 From: marha Date: Fri, 4 Jul 2014 19:50:15 +0200 Subject: fontconfig mesa pixman xserver git update 4 July 2014 xserver commit a61ca6f006d70343c88fe45206fae0669d1e8971 pixman commit 6d2cf40166d81bfc63108504c8022dc4fec37ff5 fontconfig commit 5b22776999b6052afe0e829b1a0c0935bbe1e9f7 mesa commit 9a37eb8adb6558a4abf47774b583cb582a0ae116 --- mesalib/src/glsl/ast_type.cpp | 22 ++++++++++++++++------ 1 file changed, 16 insertions(+), 6 deletions(-) (limited to 'mesalib/src/glsl/ast_type.cpp') diff --git a/mesalib/src/glsl/ast_type.cpp b/mesalib/src/glsl/ast_type.cpp index 017f23d0e..de4c1a410 100644 --- a/mesalib/src/glsl/ast_type.cpp +++ b/mesalib/src/glsl/ast_type.cpp @@ -122,18 +122,28 @@ ast_type_qualifier::merge_qualifier(YYLTYPE *loc, ubo_binding_mask.flags.q.explicit_binding = 1; ubo_binding_mask.flags.q.explicit_offset = 1; + ast_type_qualifier stream_layout_mask; + stream_layout_mask.flags.i = 0; + stream_layout_mask.flags.q.stream = 1; + /* Uniform block layout qualifiers get to overwrite each * other (rightmost having priority), while all other * qualifiers currently don't allow duplicates. - * - * Geometry shaders can have several layout qualifiers + */ + ast_type_qualifier allowed_duplicates_mask; + allowed_duplicates_mask.flags.i = + ubo_mat_mask.flags.i | + ubo_layout_mask.flags.i | + ubo_binding_mask.flags.i; + + /* Geometry shaders can have several layout qualifiers * assigning different stream values. */ + if (state->stage == MESA_SHADER_GEOMETRY) + allowed_duplicates_mask.flags.i |= + stream_layout_mask.flags.i; - if ((state->stage != MESA_SHADER_GEOMETRY) && - (this->flags.i & q.flags.i & ~(ubo_mat_mask.flags.i | - ubo_layout_mask.flags.i | - ubo_binding_mask.flags.i)) != 0) { + if ((this->flags.i & q.flags.i & ~allowed_duplicates_mask.flags.i) != 0) { _mesa_glsl_error(loc, state, "duplicate layout qualifiers used"); return false; -- cgit v1.2.3