summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorDave Airlie <[email protected]>2016-05-17 13:47:59 +1000
committerDave Airlie <[email protected]>2016-05-23 16:19:57 +1000
commit3b8b6be7bb35291827b758038e4c99b25aced30c (patch)
tree89117de646c691335fb4a7cafab067772b39acd5 /src
parent93b3b6af3cafa7d17c2253a91168955fd53dafe4 (diff)
glsl/ast: for geom shaders allow stream flags in input flags.
This fixes: GL45-CTS.shader_subroutine.subroutines_with_separate_shader_objects Since we set the stream flags earlier on all geom shaders, we shouldn't fall over later if we find one. Reviewed-by: Chris Forbes <[email protected]> Signed-off-by: Dave Airlie <[email protected]>
Diffstat (limited to 'src')
-rw-r--r--src/compiler/glsl/ast_type.cpp5
1 files changed, 4 insertions, 1 deletions
diff --git a/src/compiler/glsl/ast_type.cpp b/src/compiler/glsl/ast_type.cpp
index 4fb4ac0df61..c44dcc605ae 100644
--- a/src/compiler/glsl/ast_type.cpp
+++ b/src/compiler/glsl/ast_type.cpp
@@ -175,9 +175,12 @@ ast_type_qualifier::merge_qualifier(YYLTYPE *loc,
/* Geometry shaders can have several layout qualifiers
* assigning different stream values.
*/
- if (state->stage == MESA_SHADER_GEOMETRY)
+ if (state->stage == MESA_SHADER_GEOMETRY) {
allowed_duplicates_mask.flags.i |=
stream_layout_mask.flags.i;
+ input_layout_mask.flags.i |=
+ stream_layout_mask.flags.i;
+ }
if (is_single_layout_merge && !state->has_enhanced_layouts() &&
(this->flags.i & q.flags.i & ~allowed_duplicates_mask.flags.i) != 0) {