Fix slight inconsistencies in which qualifiers are inherited into block members:

- don't inherit 'binding'
 - always set the member storage qualifier, not just when the shader explicitly set it
 - don't include in/out members as objects that are resized by geometry/primitive layout specifiers
As a side effect, this makes built-in redeclarations (like gl_ClipDistance) require in/out.


git-svn-id: https://cvs.khronos.org/svn/repos/ogl/trunk/ecosystem/public/sdk/tools/glslang@24674 e7fa87d3-cd2b-0410-9028-fcbf551c1848
This commit is contained in:
John Kessenich
2014-01-07 17:44:41 +00:00
parent 7cbfdf4394
commit 5053a39578
30 changed files with 343 additions and 339 deletions

View File

@@ -32,32 +32,32 @@ ERROR: node is still EOpNull!
0:46 add (highp 4X4 matrix of float)
0:46 add (highp 4X4 matrix of float)
0:46 add (highp 4X4 matrix of float)
0:46 M1: direct index for structure (layout(row_major std140 ) highp 4X4 matrix of float)
0:46 'tblock' (layout(row_major std140 ) uniform block{layout(row_major std140 ) highp 4X4 matrix of float M1, layout(column_major std140 ) highp 4X4 matrix of float M2, layout(row_major std140 ) highp 3X3 matrix of float N1, layout(row_major std140 ) centroid highp float badf, layout(row_major std140 ) in highp float badg, layout(row_major std140 ) highp float bad1, layout(row_major shared ) highp float bad2, layout(row_major packed ) highp float bad3})
0:46 M1: direct index for structure (layout(row_major std140 ) uniform highp 4X4 matrix of float)
0:46 'tblock' (layout(row_major std140 ) uniform block{layout(row_major std140 ) uniform highp 4X4 matrix of float M1, layout(column_major std140 ) uniform highp 4X4 matrix of float M2, layout(row_major std140 ) uniform highp 3X3 matrix of float N1, layout(row_major std140 ) centroid uniform highp float badf, layout(row_major std140 ) uniform highp float badg, layout(row_major std140 ) uniform highp float bad1, layout(row_major shared ) uniform highp float bad2, layout(row_major packed ) uniform highp float bad3})
0:46 Constant:
0:46 0 (const int)
0:46 M2: direct index for structure (layout(column_major std140 ) highp 4X4 matrix of float)
0:46 'tblock' (layout(row_major std140 ) uniform block{layout(row_major std140 ) highp 4X4 matrix of float M1, layout(column_major std140 ) highp 4X4 matrix of float M2, layout(row_major std140 ) highp 3X3 matrix of float N1, layout(row_major std140 ) centroid highp float badf, layout(row_major std140 ) in highp float badg, layout(row_major std140 ) highp float bad1, layout(row_major shared ) highp float bad2, layout(row_major packed ) highp float bad3})
0:46 M2: direct index for structure (layout(column_major std140 ) uniform highp 4X4 matrix of float)
0:46 'tblock' (layout(row_major std140 ) uniform block{layout(row_major std140 ) uniform highp 4X4 matrix of float M1, layout(column_major std140 ) uniform highp 4X4 matrix of float M2, layout(row_major std140 ) uniform highp 3X3 matrix of float N1, layout(row_major std140 ) centroid uniform highp float badf, layout(row_major std140 ) uniform highp float badg, layout(row_major std140 ) uniform highp float bad1, layout(row_major shared ) uniform highp float bad2, layout(row_major packed ) uniform highp float bad3})
0:46 Constant:
0:46 1 (const int)
0:46 M4: direct index for structure (layout(row_major shared ) highp 4X4 matrix of float)
0:46 '__anon__1' (layout(column_major shared ) uniform block{layout(column_major shared ) highp 4X4 matrix of float M3, layout(row_major shared ) highp 4X4 matrix of float M4, layout(column_major shared ) highp 3X3 matrix of float N2, layout(column_major shared ) highp int b})
0:46 M4: direct index for structure (layout(row_major shared ) uniform highp 4X4 matrix of float)
0:46 '__anon__1' (layout(column_major shared ) uniform block{layout(column_major shared ) uniform highp 4X4 matrix of float M3, layout(row_major shared ) uniform highp 4X4 matrix of float M4, layout(column_major shared ) uniform highp 3X3 matrix of float N2, layout(column_major shared ) uniform highp int b})
0:46 Constant:
0:46 1 (const uint)
0:46 M3: direct index for structure (layout(column_major shared ) highp 4X4 matrix of float)
0:46 '__anon__1' (layout(column_major shared ) uniform block{layout(column_major shared ) highp 4X4 matrix of float M3, layout(row_major shared ) highp 4X4 matrix of float M4, layout(column_major shared ) highp 3X3 matrix of float N2, layout(column_major shared ) highp int b})
0:46 M3: direct index for structure (layout(column_major shared ) uniform highp 4X4 matrix of float)
0:46 '__anon__1' (layout(column_major shared ) uniform block{layout(column_major shared ) uniform highp 4X4 matrix of float M3, layout(row_major shared ) uniform highp 4X4 matrix of float M4, layout(column_major shared ) uniform highp 3X3 matrix of float N2, layout(column_major shared ) uniform highp int b})
0:46 Constant:
0:46 0 (const uint)
0:46 t2m: direct index for structure (layout(row_major shared ) highp 4X4 matrix of float)
0:46 '__anon__0' (layout(row_major shared ) uniform block{layout(row_major shared ) bool b, layout(row_major shared ) highp 4X4 matrix of float t2m})
0:46 t2m: direct index for structure (layout(row_major shared ) uniform highp 4X4 matrix of float)
0:46 '__anon__0' (layout(row_major shared ) uniform block{layout(row_major shared ) uniform bool b, layout(row_major shared ) uniform highp 4X4 matrix of float t2m})
0:46 Constant:
0:46 1 (const uint)
0:47 move second child to first child (highp 3-component vector of float)
0:47 'color' (smooth out highp 3-component vector of float)
0:47 vector-times-matrix (highp 3-component vector of float)
0:47 'c' (layout(location=7 ) in highp 3-component vector of float)
0:47 N1: direct index for structure (layout(row_major std140 ) highp 3X3 matrix of float)
0:47 'tblock' (layout(row_major std140 ) uniform block{layout(row_major std140 ) highp 4X4 matrix of float M1, layout(column_major std140 ) highp 4X4 matrix of float M2, layout(row_major std140 ) highp 3X3 matrix of float N1, layout(row_major std140 ) centroid highp float badf, layout(row_major std140 ) in highp float badg, layout(row_major std140 ) highp float bad1, layout(row_major shared ) highp float bad2, layout(row_major packed ) highp float bad3})
0:47 N1: direct index for structure (layout(row_major std140 ) uniform highp 3X3 matrix of float)
0:47 'tblock' (layout(row_major std140 ) uniform block{layout(row_major std140 ) uniform highp 4X4 matrix of float M1, layout(column_major std140 ) uniform highp 4X4 matrix of float M2, layout(row_major std140 ) uniform highp 3X3 matrix of float N1, layout(row_major std140 ) centroid uniform highp float badf, layout(row_major std140 ) uniform highp float badg, layout(row_major std140 ) uniform highp float bad1, layout(row_major shared ) uniform highp float bad2, layout(row_major packed ) uniform highp float bad3})
0:47 Constant:
0:47 2 (const int)
0:? Linker Objects
@@ -68,9 +68,9 @@ ERROR: node is still EOpNull!
0:? 'pos' (smooth out highp 4-component vector of float)
0:? 'color' (smooth out highp 3-component vector of float)
0:? 'badm4' (layout(column_major shared ) uniform highp 4X4 matrix of float)
0:? 'tblock' (layout(row_major std140 ) uniform block{layout(row_major std140 ) highp 4X4 matrix of float M1, layout(column_major std140 ) highp 4X4 matrix of float M2, layout(row_major std140 ) highp 3X3 matrix of float N1, layout(row_major std140 ) centroid highp float badf, layout(row_major std140 ) in highp float badg, layout(row_major std140 ) highp float bad1, layout(row_major shared ) highp float bad2, layout(row_major packed ) highp float bad3})
0:? '__anon__0' (layout(row_major shared ) uniform block{layout(row_major shared ) bool b, layout(row_major shared ) highp 4X4 matrix of float t2m})
0:? '__anon__2' (out block{highp float f})
0:? 'tblock' (layout(row_major std140 ) uniform block{layout(row_major std140 ) uniform highp 4X4 matrix of float M1, layout(column_major std140 ) uniform highp 4X4 matrix of float M2, layout(row_major std140 ) uniform highp 3X3 matrix of float N1, layout(row_major std140 ) centroid uniform highp float badf, layout(row_major std140 ) uniform highp float badg, layout(row_major std140 ) uniform highp float bad1, layout(row_major shared ) uniform highp float bad2, layout(row_major packed ) uniform highp float bad3})
0:? '__anon__0' (layout(row_major shared ) uniform block{layout(row_major shared ) uniform bool b, layout(row_major shared ) uniform highp 4X4 matrix of float t2m})
0:? '__anon__2' (out block{out highp float f})
0:? 'badoutA' (layout(location=10 ) smooth out highp 4-component vector of float)
0:? 'compute_only' (shared highp 4-component vector of float)
0:? 'aoeuntaoeu' (layout(packed ) highp float)