Commit 3ea188e1 by John Kessenich

Nonuniform: Finish semantic checking.

parent ee572e38
......@@ -1508,12 +1508,15 @@ bool TGlslangToSpvTraverser::visitUnary(glslang::TVisit /* visit */, glslang::TI
if (node->getOp() == glslang::EOpArrayLength) {
// Quite special; won't want to evaluate the operand.
// Currently, the front-end does not allow .length() on an array until it is sized,
// except for the last block membeor of an SSBO.
// TODO: If this changes, link-time sized arrays might show up here, and need their
// size extracted.
// Normal .length() would have been constant folded by the front-end.
// So, this has to be block.lastMember.length(). ??
// So, this has to be block.lastMember.length().
// SPV wants "block" and member number as the operands, go get them.
//?? depends if size was determined while linking, and on what the rules allow applying .length() to
glslang::TIntermTyped* block = node->getOperand()->getAsBinaryNode()->getLeft();
block->traverse(this);
unsigned int member = node->getOperand()->getAsBinaryNode()->getRight()->getAsConstantUnion()->getConstArray()[0].getUConst();
......
......@@ -51,7 +51,7 @@ ERROR: 0:157: 'textureQueryLevels' : no matching overloaded function found
ERROR: 0:157: 'assign' : cannot convert from ' const float' to ' temp int'
ERROR: 0:158: 'textureQueryLevels' : no matching overloaded function found
ERROR: 0:158: 'assign' : cannot convert from ' const float' to ' temp int'
WARNING: 0:161: '[]' : assuming array size of one for compile-time checking of binding numbers for unsized array
WARNING: 0:161: '[]' : assuming binding count of one for compile-time checking of binding numbers for unsized array
ERROR: 51 compilation errors. No code generated.
......
nonuniform.frag
ERROR: 0:6: 'nonuniformEXT' : for non-parameter, can only apply to 'in' or no storage qualifier
ERROR: 0:7: 'nonuniformEXT' : for non-parameter, can only apply to 'in' or no storage qualifier
ERROR: 0:8: 'nonuniformEXT' : for non-parameter, can only apply to 'in' or no storage qualifier
ERROR: 0:18: 'nonuniformEXT' : for non-parameter, can only apply to 'in' or no storage qualifier
ERROR: 0:24: 'constructor' : too many arguments
ERROR: 0:24: 'assign' : cannot convert from ' const float' to ' nonuniform temp int'
ERROR: 0:25: 'constructor' : not enough data provided for construction
ERROR: 0:25: 'assign' : cannot convert from ' const float' to ' nonuniform temp int'
ERROR: 0:28: 'nonuniformEXT' : not allowed on block or structure members
ERROR: 0:29: 'nonuniformEXT' : not allowed on block or structure members
ERROR: 0:10: 'nonuniformEXT' : for non-parameter, can only apply to 'in' or no storage qualifier
ERROR: 0:11: 'nonuniformEXT' : for non-parameter, can only apply to 'in' or no storage qualifier
ERROR: 0:12: 'nonuniformEXT' : for non-parameter, can only apply to 'in' or no storage qualifier
ERROR: 0:22: 'nonuniformEXT' : for non-parameter, can only apply to 'in' or no storage qualifier
ERROR: 0:28: 'constructor' : too many arguments
ERROR: 0:28: 'assign' : cannot convert from ' const float' to ' nonuniform temp int'
ERROR: 0:29: 'constructor' : not enough data provided for construction
ERROR: 0:29: 'assign' : cannot convert from ' const float' to ' nonuniform temp int'
ERROR: 0:32: 'nonuniformEXT' : not allowed on block or structure members
ERROR: 0:33: 'nonuniformEXT' : not allowed on block or structure members
ERROR: 10 compilation errors. No code generated.
Shader version: 450
Requested GL_EXT_nonuniform_qualifier
ERROR: node is still EOpNull!
0:10 Function Definition: foo(i1;i1; ( nonuniform temp int)
0:10 Function Parameters:
0:10 'nupi' ( nonuniform in int)
0:10 'f' ( nonuniform out int)
0:12 Sequence
0:12 Branch: Return with expression
0:12 'nupi' ( nonuniform in int)
0:15 Function Definition: main( ( global void)
0:15 Function Parameters:
0:14 Function Definition: foo(i1;i1; ( nonuniform temp int)
0:14 Function Parameters:
0:14 'nupi' ( nonuniform in int)
0:14 'f' ( nonuniform out int)
0:16 Sequence
0:16 Branch: Return with expression
0:16 'nupi' ( nonuniform in int)
0:19 Function Definition: main( ( global void)
0:19 Function Parameters:
0:? Sequence
0:20 Function Call: foo(i1;i1; ( nonuniform temp int)
0:20 'nu_li' ( nonuniform temp int)
0:20 'nu_li' ( nonuniform temp int)
0:23 move second child to first child ( temp int)
0:23 'nu_li' ( nonuniform temp int)
0:23 add ( nonuniform temp int)
0:23 'a' ( nonuniform temp int)
0:23 component-wise multiply ( nonuniform temp int)
0:23 'a' ( temp int)
0:23 Constant:
0:23 2 (const int)
0:24 'nu_li' ( nonuniform temp int)
0:25 'nu_li' ( nonuniform temp int)
0:24 Function Call: foo(i1;i1; ( nonuniform temp int)
0:24 'nu_li' ( nonuniform temp int)
0:24 'nu_li' ( nonuniform temp int)
0:27 move second child to first child ( temp int)
0:27 'nu_li' ( nonuniform temp int)
0:27 add ( nonuniform temp int)
0:27 'a' ( nonuniform temp int)
0:27 component-wise multiply ( nonuniform temp int)
0:27 'a' ( temp int)
0:27 Constant:
0:27 2 (const int)
0:28 'nu_li' ( nonuniform temp int)
0:29 'nu_li' ( nonuniform temp int)
0:? Linker Objects
0:? 'nonuniformEXT' ( global int)
0:? 'nu_inv4' ( smooth nonuniform in 4-component vector of float)
0:? 'nu_gf' ( nonuniform temp float)
0:? 'nu_outv4' ( nonuniform out 4-component vector of float)
......@@ -52,31 +54,33 @@ Linked fragment stage:
Shader version: 450
Requested GL_EXT_nonuniform_qualifier
ERROR: node is still EOpNull!
0:10 Function Definition: foo(i1;i1; ( nonuniform temp int)
0:10 Function Parameters:
0:10 'nupi' ( nonuniform in int)
0:10 'f' ( nonuniform out int)
0:12 Sequence
0:12 Branch: Return with expression
0:12 'nupi' ( nonuniform in int)
0:15 Function Definition: main( ( global void)
0:15 Function Parameters:
0:14 Function Definition: foo(i1;i1; ( nonuniform temp int)
0:14 Function Parameters:
0:14 'nupi' ( nonuniform in int)
0:14 'f' ( nonuniform out int)
0:16 Sequence
0:16 Branch: Return with expression
0:16 'nupi' ( nonuniform in int)
0:19 Function Definition: main( ( global void)
0:19 Function Parameters:
0:? Sequence
0:20 Function Call: foo(i1;i1; ( nonuniform temp int)
0:20 'nu_li' ( nonuniform temp int)
0:20 'nu_li' ( nonuniform temp int)
0:23 move second child to first child ( temp int)
0:23 'nu_li' ( nonuniform temp int)
0:23 add ( nonuniform temp int)
0:23 'a' ( nonuniform temp int)
0:23 component-wise multiply ( nonuniform temp int)
0:23 'a' ( temp int)
0:23 Constant:
0:23 2 (const int)
0:24 'nu_li' ( nonuniform temp int)
0:25 'nu_li' ( nonuniform temp int)
0:24 Function Call: foo(i1;i1; ( nonuniform temp int)
0:24 'nu_li' ( nonuniform temp int)
0:24 'nu_li' ( nonuniform temp int)
0:27 move second child to first child ( temp int)
0:27 'nu_li' ( nonuniform temp int)
0:27 add ( nonuniform temp int)
0:27 'a' ( nonuniform temp int)
0:27 component-wise multiply ( nonuniform temp int)
0:27 'a' ( temp int)
0:27 Constant:
0:27 2 (const int)
0:28 'nu_li' ( nonuniform temp int)
0:29 'nu_li' ( nonuniform temp int)
0:? Linker Objects
0:? 'nonuniformEXT' ( global int)
0:? 'nu_inv4' ( smooth nonuniform in 4-component vector of float)
0:? 'nu_gf' ( nonuniform temp float)
0:? 'nu_outv4' ( nonuniform out 4-component vector of float)
......
runtimeArray.vert
ERROR: 0:52: 'variable index' : required extension not requested: GL_EXT_nonuniform_qualifier
ERROR: 0:53: 'variable index' : required extension not requested: GL_EXT_nonuniform_qualifier
ERROR: 0:54: 'variable index' : required extension not requested: GL_EXT_nonuniform_qualifier
ERROR: 0:57: 'length' : array must be declared with a size before using this method
ERROR: 0:58: 'length' : array must be declared with a size before using this method
ERROR: 0:59: 'length' : array must be declared with a size before using this method
ERROR: 0:62: 'variable index' : required extension not requested: GL_EXT_nonuniform_qualifier
ERROR: 0:63: 'variable index' : required extension not requested: GL_EXT_nonuniform_qualifier
ERROR: 0:64: 'variable index' : required extension not requested: GL_EXT_nonuniform_qualifier
WARNING: 0:33: '[]' : assuming binding count of one for compile-time checking of binding numbers for unsized array
WARNING: 0:34: '[]' : assuming binding count of one for compile-time checking of binding numbers for unsized array
WARNING: 0:37: '[]' : assuming binding count of one for compile-time checking of binding numbers for unsized array
WARNING: 0:38: '[]' : assuming binding count of one for compile-time checking of binding numbers for unsized array
WARNING: 0:39: '[]' : assuming binding count of one for compile-time checking of binding numbers for unsized array
WARNING: 0:40: '[]' : assuming binding count of one for compile-time checking of binding numbers for unsized array
ERROR: 0:61: '[' : array must be redeclared with a size before being indexed with a variable
ERROR: 0:62: '[' : array must be redeclared with a size before being indexed with a variable
ERROR: 0:63: '[' : array must be redeclared with a size before being indexed with a variable
ERROR: 0:66: 'length' : array must be declared with a size before using this method
ERROR: 0:67: 'length' : array must be declared with a size before using this method
ERROR: 0:68: 'length' : array must be declared with a size before using this method
ERROR: 0:69: 'length' : array must be declared with a size before using this method
ERROR: 0:72: 'variable index' : required extension not requested: GL_EXT_nonuniform_qualifier
ERROR: 0:73: 'variable index' : required extension not requested: GL_EXT_nonuniform_qualifier
ERROR: 0:74: 'variable index' : required extension not requested: GL_EXT_nonuniform_qualifier
ERROR: 0:71: '[' : array must be redeclared with a size before being indexed with a variable
ERROR: 0:72: '[' : array must be redeclared with a size before being indexed with a variable
ERROR: 0:73: '[' : array must be redeclared with a size before being indexed with a variable
ERROR: 0:76: 'length' : array must be declared with a size before using this method
ERROR: 0:77: 'length' : array must be declared with a size before using this method
ERROR: 0:78: 'length' : array must be declared with a size before using this method
ERROR: 0:79: 'length' : array must be declared with a size before using this method
ERROR: 18 compilation errors. No code generated.
ERROR: 0:81: '[' : array must be redeclared with a size before being indexed with a variable
ERROR: 0:82: '[' : array must be redeclared with a size before being indexed with a variable
ERROR: 0:83: '[' : array must be redeclared with a size before being indexed with a variable
ERROR: 0:86: 'length' : array must be declared with a size before using this method
ERROR: 0:87: 'length' : array must be declared with a size before using this method
ERROR: 0:88: 'length' : array must be declared with a size before using this method
ERROR: 0:100: 'variable index' : required extension not requested: GL_EXT_nonuniform_qualifier
ERROR: 0:101: 'variable index' : required extension not requested: GL_EXT_nonuniform_qualifier
ERROR: 0:102: 'variable index' : required extension not requested: GL_EXT_nonuniform_qualifier
ERROR: 0:103: 'variable index' : required extension not requested: GL_EXT_nonuniform_qualifier
ERROR: 0:104: 'variable index' : required extension not requested: GL_EXT_nonuniform_qualifier
ERROR: 0:105: 'variable index' : required extension not requested: GL_EXT_nonuniform_qualifier
ERROR: 0:106: 'variable index' : required extension not requested: GL_EXT_nonuniform_qualifier
ERROR: 0:107: 'variable index' : required extension not requested: GL_EXT_nonuniform_qualifier
ERROR: 26 compilation errors. No code generated.
Shader version: 450
ERROR: node is still EOpNull!
0:35 Function Definition: main( ( global void)
0:35 Function Parameters:
0:37 Sequence
0:37 direct index (layout( column_major shared) temp int)
0:37 a: direct index for structure (layout( column_major shared) uniform runtime-sized array of int)
0:37 'ubuf' (layout( column_major shared) uniform block{layout( column_major shared) uniform runtime-sized array of int a, layout( column_major shared) uniform runtime-sized array of float b})
0:37 Constant:
0:37 0 (const int)
0:37 Constant:
0:37 3 (const int)
0:38 direct index (layout( column_major shared) temp float)
0:38 b: direct index for structure (layout( column_major shared) uniform runtime-sized array of float)
0:38 'ubuf' (layout( column_major shared) uniform block{layout( column_major shared) uniform runtime-sized array of int a, layout( column_major shared) uniform runtime-sized array of float b})
0:38 Constant:
0:38 1 (const int)
0:38 Constant:
0:38 3 (const int)
0:39 direct index (layout( column_major shared) temp int)
0:39 a: direct index for structure (layout( column_major shared) buffer runtime-sized array of int)
0:39 'buf' (layout( column_major shared) buffer block{layout( column_major shared) buffer runtime-sized array of int a, layout( column_major shared) buffer runtime-sized array of float b})
0:39 Constant:
0:39 0 (const int)
0:39 Constant:
0:39 3 (const int)
0:40 direct index (layout( column_major shared) temp float)
0:40 b: direct index for structure (layout( column_major shared) buffer runtime-sized array of float)
0:40 'buf' (layout( column_major shared) buffer block{layout( column_major shared) buffer runtime-sized array of int a, layout( column_major shared) buffer runtime-sized array of float b})
0:40 Constant:
0:40 1 (const int)
0:40 Constant:
0:40 3 (const int)
0:42 direct index (layout( column_major shared) temp int)
0:42 a: direct index for structure (layout( column_major shared) uniform runtime-sized array of int)
0:42 direct index (layout( column_major shared) temp block{layout( column_major shared) uniform runtime-sized array of int a, layout( column_major shared) uniform runtime-sized array of float b})
0:42 'ubufa' (layout( column_major shared) uniform 4-element array of block{layout( column_major shared) uniform runtime-sized array of int a, layout( column_major shared) uniform runtime-sized array of float b})
0:42 Constant:
0:42 3 (const int)
0:42 Constant:
0:42 0 (const int)
0:42 Constant:
0:42 3 (const int)
0:43 direct index (layout( column_major shared) temp float)
0:43 b: direct index for structure (layout( column_major shared) uniform runtime-sized array of float)
0:43 direct index (layout( column_major shared) temp block{layout( column_major shared) uniform runtime-sized array of int a, layout( column_major shared) uniform runtime-sized array of float b})
0:43 'ubufa' (layout( column_major shared) uniform 4-element array of block{layout( column_major shared) uniform runtime-sized array of int a, layout( column_major shared) uniform runtime-sized array of float b})
0:43 Constant:
0:43 3 (const int)
0:43 Constant:
0:43 1 (const int)
0:43 Constant:
0:43 3 (const int)
0:44 direct index (layout( column_major shared) temp int)
0:44 a: direct index for structure (layout( column_major shared) buffer runtime-sized array of int)
0:44 direct index (layout( column_major shared) temp block{layout( column_major shared) buffer runtime-sized array of int a, layout( column_major shared) buffer runtime-sized array of float b})
0:44 'bufa' (layout( column_major shared) buffer 4-element array of block{layout( column_major shared) buffer runtime-sized array of int a, layout( column_major shared) buffer runtime-sized array of float b})
0:44 Constant:
0:44 3 (const int)
0:44 Constant:
0:44 0 (const int)
0:44 Constant:
0:44 3 (const int)
0:45 direct index (layout( column_major shared) temp float)
0:45 b: direct index for structure (layout( column_major shared) buffer runtime-sized array of float)
0:45 direct index (layout( column_major shared) temp block{layout( column_major shared) buffer runtime-sized array of int a, layout( column_major shared) buffer runtime-sized array of float b})
0:45 'bufa' (layout( column_major shared) buffer 4-element array of block{layout( column_major shared) buffer runtime-sized array of int a, layout( column_major shared) buffer runtime-sized array of float b})
0:45 Constant:
0:45 3 (const int)
0:45 Constant:
0:45 1 (const int)
0:45 Constant:
0:45 3 (const int)
0:47 direct index (layout( column_major shared) temp int)
0:47 aua: direct index for structure (layout( column_major shared) uniform runtime-sized array of int)
0:47 'anon@1' (layout( column_major shared) uniform block{layout( column_major shared) uniform runtime-sized array of int aua, layout( column_major shared) uniform runtime-sized array of float aub})
0:44 Function Definition: main( ( global void)
0:44 Function Parameters:
0:46 Sequence
0:46 direct index (layout( column_major shared) temp int)
0:46 a: direct index for structure (layout( column_major shared) uniform runtime-sized array of int)
0:46 'ubuf' (layout( column_major shared) uniform block{layout( column_major shared) uniform runtime-sized array of int a, layout( column_major shared) uniform runtime-sized array of float b})
0:46 Constant:
0:46 0 (const int)
0:46 Constant:
0:46 3 (const int)
0:47 direct index (layout( column_major shared) temp float)
0:47 b: direct index for structure (layout( column_major shared) uniform runtime-sized array of float)
0:47 'ubuf' (layout( column_major shared) uniform block{layout( column_major shared) uniform runtime-sized array of int a, layout( column_major shared) uniform runtime-sized array of float b})
0:47 Constant:
0:47 0 (const uint)
0:47 1 (const int)
0:47 Constant:
0:47 3 (const int)
0:48 direct index (layout( column_major shared) temp float)
0:48 aub: direct index for structure (layout( column_major shared) uniform runtime-sized array of float)
0:48 'anon@1' (layout( column_major shared) uniform block{layout( column_major shared) uniform runtime-sized array of int aua, layout( column_major shared) uniform runtime-sized array of float aub})
0:48 direct index (layout( column_major shared) temp int)
0:48 a: direct index for structure (layout( column_major shared) buffer runtime-sized array of int)
0:48 'buf' (layout( column_major shared) buffer block{layout( column_major shared) buffer runtime-sized array of int a, layout( column_major shared) buffer runtime-sized array of float b})
0:48 Constant:
0:48 1 (const uint)
0:48 0 (const int)
0:48 Constant:
0:48 3 (const int)
0:49 direct index (layout( column_major shared) temp int)
0:49 aba: direct index for structure (layout( column_major shared) buffer runtime-sized array of int)
0:49 'anon@0' (layout( column_major shared) buffer block{layout( column_major shared) buffer runtime-sized array of int aba, layout( column_major shared) buffer runtime-sized array of float abb})
0:49 direct index (layout( column_major shared) temp float)
0:49 b: direct index for structure (layout( column_major shared) buffer runtime-sized array of float)
0:49 'buf' (layout( column_major shared) buffer block{layout( column_major shared) buffer runtime-sized array of int a, layout( column_major shared) buffer runtime-sized array of float b})
0:49 Constant:
0:49 0 (const uint)
0:49 1 (const int)
0:49 Constant:
0:49 3 (const int)
0:50 direct index (layout( column_major shared) temp float)
0:50 abb: direct index for structure (layout( column_major shared) buffer runtime-sized array of float)
0:50 'anon@0' (layout( column_major shared) buffer block{layout( column_major shared) buffer runtime-sized array of int aba, layout( column_major shared) buffer runtime-sized array of float abb})
0:50 Constant:
0:50 1 (const uint)
0:50 Constant:
0:50 3 (const int)
0:52 indirect index (layout( column_major shared) temp int)
0:52 a: direct index for structure (layout( column_major shared) uniform runtime-sized array of int)
0:52 'ubuf' (layout( column_major shared) uniform block{layout( column_major shared) uniform runtime-sized array of int a, layout( column_major shared) uniform runtime-sized array of float b})
0:51 direct index (layout( column_major shared) temp int)
0:51 a: direct index for structure (layout( column_major shared) uniform runtime-sized array of int)
0:51 direct index (layout( column_major shared) temp block{layout( column_major shared) uniform runtime-sized array of int a, layout( column_major shared) uniform runtime-sized array of float b})
0:51 'ubufa' (layout( column_major shared) uniform 4-element array of block{layout( column_major shared) uniform runtime-sized array of int a, layout( column_major shared) uniform runtime-sized array of float b})
0:51 Constant:
0:51 3 (const int)
0:51 Constant:
0:51 0 (const int)
0:51 Constant:
0:51 3 (const int)
0:52 direct index (layout( column_major shared) temp float)
0:52 b: direct index for structure (layout( column_major shared) uniform runtime-sized array of float)
0:52 direct index (layout( column_major shared) temp block{layout( column_major shared) uniform runtime-sized array of int a, layout( column_major shared) uniform runtime-sized array of float b})
0:52 'ubufa' (layout( column_major shared) uniform 4-element array of block{layout( column_major shared) uniform runtime-sized array of int a, layout( column_major shared) uniform runtime-sized array of float b})
0:52 Constant:
0:52 3 (const int)
0:52 Constant:
0:52 0 (const int)
0:52 'i' ( global int)
0:53 indirect index (layout( column_major shared) temp float)
0:53 b: direct index for structure (layout( column_major shared) uniform runtime-sized array of float)
0:53 'ubuf' (layout( column_major shared) uniform block{layout( column_major shared) uniform runtime-sized array of int a, layout( column_major shared) uniform runtime-sized array of float b})
0:52 1 (const int)
0:52 Constant:
0:52 3 (const int)
0:53 direct index (layout( column_major shared) temp int)
0:53 a: direct index for structure (layout( column_major shared) buffer runtime-sized array of int)
0:53 direct index (layout( column_major shared) temp block{layout( column_major shared) buffer runtime-sized array of int a, layout( column_major shared) buffer runtime-sized array of float b})
0:53 'bufa' (layout( column_major shared) buffer 4-element array of block{layout( column_major shared) buffer runtime-sized array of int a, layout( column_major shared) buffer runtime-sized array of float b})
0:53 Constant:
0:53 3 (const int)
0:53 Constant:
0:53 1 (const int)
0:53 'i' ( global int)
0:54 indirect index (layout( column_major shared) temp int)
0:54 a: direct index for structure (layout( column_major shared) buffer runtime-sized array of int)
0:54 'buf' (layout( column_major shared) buffer block{layout( column_major shared) buffer runtime-sized array of int a, layout( column_major shared) buffer runtime-sized array of float b})
0:53 0 (const int)
0:53 Constant:
0:53 3 (const int)
0:54 direct index (layout( column_major shared) temp float)
0:54 b: direct index for structure (layout( column_major shared) buffer runtime-sized array of float)
0:54 direct index (layout( column_major shared) temp block{layout( column_major shared) buffer runtime-sized array of int a, layout( column_major shared) buffer runtime-sized array of float b})
0:54 'bufa' (layout( column_major shared) buffer 4-element array of block{layout( column_major shared) buffer runtime-sized array of int a, layout( column_major shared) buffer runtime-sized array of float b})
0:54 Constant:
0:54 3 (const int)
0:54 Constant:
0:54 0 (const int)
0:54 'i' ( global int)
0:55 indirect index (layout( column_major shared) temp float)
0:55 b: direct index for structure (layout( column_major shared) buffer runtime-sized array of float)
0:55 'buf' (layout( column_major shared) buffer block{layout( column_major shared) buffer runtime-sized array of int a, layout( column_major shared) buffer runtime-sized array of float b})
0:55 Constant:
0:55 1 (const int)
0:55 'i' ( global int)
0:57 Constant:
0:57 1 (const int)
0:58 Constant:
0:58 1 (const int)
0:59 Constant:
0:59 1 (const int)
0:60 array length ( temp int)
0:60 b: direct index for structure (layout( column_major shared) buffer runtime-sized array of float)
0:60 'buf' (layout( column_major shared) buffer block{layout( column_major shared) buffer runtime-sized array of int a, layout( column_major shared) buffer runtime-sized array of float b})
0:60 Constant:
0:60 1 (const int)
0:62 indirect index (layout( column_major shared) temp int)
0:62 a: direct index for structure (layout( column_major shared) uniform runtime-sized array of int)
0:62 direct index (layout( column_major shared) temp block{layout( column_major shared) uniform runtime-sized array of int a, layout( column_major shared) uniform runtime-sized array of float b})
0:62 'ubufa' (layout( column_major shared) uniform 4-element array of block{layout( column_major shared) uniform runtime-sized array of int a, layout( column_major shared) uniform runtime-sized array of float b})
0:62 Constant:
0:62 1 (const int)
0:54 1 (const int)
0:54 Constant:
0:54 3 (const int)
0:56 direct index (layout( column_major shared) temp int)
0:56 aua: direct index for structure (layout( column_major shared) uniform runtime-sized array of int)
0:56 'anon@1' (layout( column_major shared) uniform block{layout( column_major shared) uniform runtime-sized array of int aua, layout( column_major shared) uniform runtime-sized array of float aub})
0:56 Constant:
0:56 0 (const uint)
0:56 Constant:
0:56 3 (const int)
0:57 direct index (layout( column_major shared) temp float)
0:57 aub: direct index for structure (layout( column_major shared) uniform runtime-sized array of float)
0:57 'anon@1' (layout( column_major shared) uniform block{layout( column_major shared) uniform runtime-sized array of int aua, layout( column_major shared) uniform runtime-sized array of float aub})
0:57 Constant:
0:57 1 (const uint)
0:57 Constant:
0:57 3 (const int)
0:58 direct index (layout( column_major shared) temp int)
0:58 aba: direct index for structure (layout( column_major shared) buffer runtime-sized array of int)
0:58 'anon@0' (layout( column_major shared) buffer block{layout( column_major shared) buffer runtime-sized array of int aba, layout( column_major shared) buffer runtime-sized array of float abb})
0:58 Constant:
0:58 0 (const uint)
0:58 Constant:
0:58 3 (const int)
0:59 direct index (layout( column_major shared) temp float)
0:59 abb: direct index for structure (layout( column_major shared) buffer runtime-sized array of float)
0:59 'anon@0' (layout( column_major shared) buffer block{layout( column_major shared) buffer runtime-sized array of int aba, layout( column_major shared) buffer runtime-sized array of float abb})
0:59 Constant:
0:59 1 (const uint)
0:59 Constant:
0:59 3 (const int)
0:61 indirect index (layout( column_major shared) temp int)
0:61 a: direct index for structure (layout( column_major shared) uniform runtime-sized array of int)
0:61 'ubuf' (layout( column_major shared) uniform block{layout( column_major shared) uniform runtime-sized array of int a, layout( column_major shared) uniform runtime-sized array of float b})
0:61 Constant:
0:61 0 (const int)
0:61 'i' ( global int)
0:62 indirect index (layout( column_major shared) temp float)
0:62 b: direct index for structure (layout( column_major shared) uniform runtime-sized array of float)
0:62 'ubuf' (layout( column_major shared) uniform block{layout( column_major shared) uniform runtime-sized array of int a, layout( column_major shared) uniform runtime-sized array of float b})
0:62 Constant:
0:62 0 (const int)
0:62 1 (const int)
0:62 'i' ( global int)
0:63 indirect index (layout( column_major shared) temp float)
0:63 b: direct index for structure (layout( column_major shared) uniform runtime-sized array of float)
0:63 direct index (layout( column_major shared) temp block{layout( column_major shared) uniform runtime-sized array of int a, layout( column_major shared) uniform runtime-sized array of float b})
0:63 'ubufa' (layout( column_major shared) uniform 4-element array of block{layout( column_major shared) uniform runtime-sized array of int a, layout( column_major shared) uniform runtime-sized array of float b})
0:63 Constant:
0:63 1 (const int)
0:63 indirect index (layout( column_major shared) temp int)
0:63 a: direct index for structure (layout( column_major shared) buffer runtime-sized array of int)
0:63 'buf' (layout( column_major shared) buffer block{layout( column_major shared) buffer runtime-sized array of int a, layout( column_major shared) buffer runtime-sized array of float b})
0:63 Constant:
0:63 1 (const int)
0:63 0 (const int)
0:63 'i' ( global int)
0:64 indirect index (layout( column_major shared) temp int)
0:64 a: direct index for structure (layout( column_major shared) buffer runtime-sized array of int)
0:64 direct index (layout( column_major shared) temp block{layout( column_major shared) buffer runtime-sized array of int a, layout( column_major shared) buffer runtime-sized array of float b})
0:64 'bufa' (layout( column_major shared) buffer 4-element array of block{layout( column_major shared) buffer runtime-sized array of int a, layout( column_major shared) buffer runtime-sized array of float b})
0:64 Constant:
0:64 1 (const int)
0:64 indirect index (layout( column_major shared) temp float)
0:64 b: direct index for structure (layout( column_major shared) buffer runtime-sized array of float)
0:64 'buf' (layout( column_major shared) buffer block{layout( column_major shared) buffer runtime-sized array of int a, layout( column_major shared) buffer runtime-sized array of float b})
0:64 Constant:
0:64 0 (const int)
0:64 1 (const int)
0:64 'i' ( global int)
0:65 indirect index (layout( column_major shared) temp float)
0:65 b: direct index for structure (layout( column_major shared) buffer runtime-sized array of float)
0:65 direct index (layout( column_major shared) temp block{layout( column_major shared) buffer runtime-sized array of int a, layout( column_major shared) buffer runtime-sized array of float b})
0:65 'bufa' (layout( column_major shared) buffer 4-element array of block{layout( column_major shared) buffer runtime-sized array of int a, layout( column_major shared) buffer runtime-sized array of float b})
0:65 Constant:
0:65 1 (const int)
0:65 Constant:
0:65 1 (const int)
0:65 'i' ( global int)
0:66 Constant:
0:66 1 (const int)
0:67 Constant:
0:67 1 (const int)
0:68 Constant:
0:68 1 (const int)
0:69 Constant:
0:69 1 (const int)
0:70 array length ( temp int)
0:70 b: direct index for structure (layout( column_major shared) buffer runtime-sized array of float)
0:70 direct index (layout( column_major shared) temp block{layout( column_major shared) buffer runtime-sized array of int a, layout( column_major shared) buffer runtime-sized array of float b})
0:70 'bufa' (layout( column_major shared) buffer 4-element array of block{layout( column_major shared) buffer runtime-sized array of int a, layout( column_major shared) buffer runtime-sized array of float b})
0:70 Constant:
0:70 1 (const int)
0:70 Constant:
0:70 1 (const int)
0:72 indirect index (layout( column_major shared) temp int)
0:72 aua: direct index for structure (layout( column_major shared) uniform runtime-sized array of int)
0:72 'anon@1' (layout( column_major shared) uniform block{layout( column_major shared) uniform runtime-sized array of int aua, layout( column_major shared) uniform runtime-sized array of float aub})
0:69 array length ( temp int)
0:69 b: direct index for structure (layout( column_major shared) buffer runtime-sized array of float)
0:69 'buf' (layout( column_major shared) buffer block{layout( column_major shared) buffer runtime-sized array of int a, layout( column_major shared) buffer runtime-sized array of float b})
0:69 Constant:
0:69 1 (const int)
0:71 indirect index (layout( column_major shared) temp int)
0:71 a: direct index for structure (layout( column_major shared) uniform runtime-sized array of int)
0:71 direct index (layout( column_major shared) temp block{layout( column_major shared) uniform runtime-sized array of int a, layout( column_major shared) uniform runtime-sized array of float b})
0:71 'ubufa' (layout( column_major shared) uniform 4-element array of block{layout( column_major shared) uniform runtime-sized array of int a, layout( column_major shared) uniform runtime-sized array of float b})
0:71 Constant:
0:71 1 (const int)
0:71 Constant:
0:71 0 (const int)
0:71 'i' ( global int)
0:72 indirect index (layout( column_major shared) temp float)
0:72 b: direct index for structure (layout( column_major shared) uniform runtime-sized array of float)
0:72 direct index (layout( column_major shared) temp block{layout( column_major shared) uniform runtime-sized array of int a, layout( column_major shared) uniform runtime-sized array of float b})
0:72 'ubufa' (layout( column_major shared) uniform 4-element array of block{layout( column_major shared) uniform runtime-sized array of int a, layout( column_major shared) uniform runtime-sized array of float b})
0:72 Constant:
0:72 1 (const int)
0:72 Constant:
0:72 0 (const uint)
0:72 1 (const int)
0:72 'i' ( global int)
0:73 indirect index (layout( column_major shared) temp float)
0:73 aub: direct index for structure (layout( column_major shared) uniform runtime-sized array of float)
0:73 'anon@1' (layout( column_major shared) uniform block{layout( column_major shared) uniform runtime-sized array of int aua, layout( column_major shared) uniform runtime-sized array of float aub})
0:73 indirect index (layout( column_major shared) temp int)
0:73 a: direct index for structure (layout( column_major shared) buffer runtime-sized array of int)
0:73 direct index (layout( column_major shared) temp block{layout( column_major shared) buffer runtime-sized array of int a, layout( column_major shared) buffer runtime-sized array of float b})
0:73 'bufa' (layout( column_major shared) buffer 4-element array of block{layout( column_major shared) buffer runtime-sized array of int a, layout( column_major shared) buffer runtime-sized array of float b})
0:73 Constant:
0:73 1 (const int)
0:73 Constant:
0:73 1 (const uint)
0:73 0 (const int)
0:73 'i' ( global int)
0:74 indirect index (layout( column_major shared) temp int)
0:74 aba: direct index for structure (layout( column_major shared) buffer runtime-sized array of int)
0:74 'anon@0' (layout( column_major shared) buffer block{layout( column_major shared) buffer runtime-sized array of int aba, layout( column_major shared) buffer runtime-sized array of float abb})
0:74 indirect index (layout( column_major shared) temp float)
0:74 b: direct index for structure (layout( column_major shared) buffer runtime-sized array of float)
0:74 direct index (layout( column_major shared) temp block{layout( column_major shared) buffer runtime-sized array of int a, layout( column_major shared) buffer runtime-sized array of float b})
0:74 'bufa' (layout( column_major shared) buffer 4-element array of block{layout( column_major shared) buffer runtime-sized array of int a, layout( column_major shared) buffer runtime-sized array of float b})
0:74 Constant:
0:74 1 (const int)
0:74 Constant:
0:74 0 (const uint)
0:74 1 (const int)
0:74 'i' ( global int)
0:75 indirect index (layout( column_major shared) temp float)
0:75 abb: direct index for structure (layout( column_major shared) buffer runtime-sized array of float)
0:75 'anon@0' (layout( column_major shared) buffer block{layout( column_major shared) buffer runtime-sized array of int aba, layout( column_major shared) buffer runtime-sized array of float abb})
0:75 Constant:
0:75 1 (const uint)
0:75 'i' ( global int)
0:76 Constant:
0:76 1 (const int)
0:77 Constant:
0:77 1 (const int)
0:78 Constant:
0:78 1 (const int)
0:79 Constant:
0:79 1 (const int)
0:80 array length ( temp int)
0:80 abb: direct index for structure (layout( column_major shared) buffer runtime-sized array of float)
0:80 'anon@0' (layout( column_major shared) buffer block{layout( column_major shared) buffer runtime-sized array of int aba, layout( column_major shared) buffer runtime-sized array of float abb})
0:80 Constant:
0:80 1 (const uint)
0:79 array length ( temp int)
0:79 b: direct index for structure (layout( column_major shared) buffer runtime-sized array of float)
0:79 direct index (layout( column_major shared) temp block{layout( column_major shared) buffer runtime-sized array of int a, layout( column_major shared) buffer runtime-sized array of float b})
0:79 'bufa' (layout( column_major shared) buffer 4-element array of block{layout( column_major shared) buffer runtime-sized array of int a, layout( column_major shared) buffer runtime-sized array of float b})
0:79 Constant:
0:79 1 (const int)
0:79 Constant:
0:79 1 (const int)
0:81 indirect index (layout( column_major shared) temp int)
0:81 aua: direct index for structure (layout( column_major shared) uniform runtime-sized array of int)
0:81 'anon@1' (layout( column_major shared) uniform block{layout( column_major shared) uniform runtime-sized array of int aua, layout( column_major shared) uniform runtime-sized array of float aub})
0:81 Constant:
0:81 0 (const uint)
0:81 'i' ( global int)
0:82 indirect index (layout( column_major shared) temp float)
0:82 aub: direct index for structure (layout( column_major shared) uniform runtime-sized array of float)
0:82 'anon@1' (layout( column_major shared) uniform block{layout( column_major shared) uniform runtime-sized array of int aua, layout( column_major shared) uniform runtime-sized array of float aub})
0:82 Constant:
0:82 1 (const uint)
0:82 'i' ( global int)
0:83 indirect index (layout( column_major shared) temp int)
0:83 aba: direct index for structure (layout( column_major shared) buffer runtime-sized array of int)
0:83 'anon@0' (layout( column_major shared) buffer block{layout( column_major shared) buffer runtime-sized array of int aba, layout( column_major shared) buffer runtime-sized array of float abb})
0:83 Constant:
0:83 0 (const uint)
0:83 'i' ( global int)
0:84 indirect index (layout( column_major shared) temp float)
0:84 abb: direct index for structure (layout( column_major shared) buffer runtime-sized array of float)
0:84 'anon@0' (layout( column_major shared) buffer block{layout( column_major shared) buffer runtime-sized array of int aba, layout( column_major shared) buffer runtime-sized array of float abb})
0:84 Constant:
0:84 1 (const uint)
0:84 'i' ( global int)
0:86 Constant:
0:86 1 (const int)
0:87 Constant:
0:87 1 (const int)
0:88 Constant:
0:88 1 (const int)
0:89 array length ( temp int)
0:89 abb: direct index for structure (layout( column_major shared) buffer runtime-sized array of float)
0:89 'anon@0' (layout( column_major shared) buffer block{layout( column_major shared) buffer runtime-sized array of int aba, layout( column_major shared) buffer runtime-sized array of float abb})
0:89 Constant:
0:89 1 (const uint)
0:91 direct index (layout( binding=1) temp samplerBuffer)
0:91 'uniformTexelBufferDyn' (layout( binding=1) uniform runtime-sized array of samplerBuffer)
0:91 Constant:
0:91 1 (const int)
0:92 direct index (layout( binding=2 r32f) temp imageBuffer)
0:92 'storageTexelBufferDyn' (layout( binding=2 r32f) uniform runtime-sized array of imageBuffer)
0:92 Constant:
0:92 1 (const int)
0:93 direct index (layout( binding=3 column_major shared) temp block{layout( column_major shared) uniform float a})
0:93 'uniformBuffer' (layout( binding=3 column_major shared) uniform runtime-sized array of block{layout( column_major shared) uniform float a})
0:93 Constant:
0:93 1 (const int)
0:94 direct index (layout( binding=4 column_major shared) temp block{layout( column_major shared) buffer float b})
0:94 'storageBuffer' (layout( binding=4 column_major shared) buffer runtime-sized array of block{layout( column_major shared) buffer float b})
0:94 Constant:
0:94 1 (const int)
0:95 direct index (layout( binding=5) temp sampler2D)
0:95 'sampledImage' (layout( binding=5) uniform runtime-sized array of sampler2D)
0:95 Constant:
0:95 1 (const int)
0:96 direct index (layout( binding=6 r32f) temp image2D)
0:96 'storageImage' (layout( binding=6 r32f) uniform runtime-sized array of image2D)
0:96 Constant:
0:96 1 (const int)
0:97 direct index (layout( binding=8) temp samplerBuffer)
0:97 'uniformTexelBuffer' (layout( binding=8) uniform runtime-sized array of samplerBuffer)
0:97 Constant:
0:97 1 (const int)
0:98 direct index (layout( binding=9 r32f) temp imageBuffer)
0:98 'storageTexelBuffer' (layout( binding=9 r32f) uniform runtime-sized array of imageBuffer)
0:98 Constant:
0:98 1 (const int)
0:100 indirect index (layout( binding=1) temp samplerBuffer)
0:100 'uniformTexelBufferDyn' (layout( binding=1) uniform runtime-sized array of samplerBuffer)
0:100 'i' ( global int)
0:101 indirect index (layout( binding=2 r32f) temp imageBuffer)
0:101 'storageTexelBufferDyn' (layout( binding=2 r32f) uniform runtime-sized array of imageBuffer)
0:101 'i' ( global int)
0:102 indirect index (layout( binding=3 column_major shared) temp block{layout( column_major shared) uniform float a})
0:102 'uniformBuffer' (layout( binding=3 column_major shared) uniform runtime-sized array of block{layout( column_major shared) uniform float a})
0:102 'i' ( global int)
0:103 indirect index (layout( binding=4 column_major shared) temp block{layout( column_major shared) buffer float b})
0:103 'storageBuffer' (layout( binding=4 column_major shared) buffer runtime-sized array of block{layout( column_major shared) buffer float b})
0:103 'i' ( global int)
0:104 indirect index (layout( binding=5) temp sampler2D)
0:104 'sampledImage' (layout( binding=5) uniform runtime-sized array of sampler2D)
0:104 'i' ( global int)
0:105 indirect index (layout( binding=6 r32f) temp image2D)
0:105 'storageImage' (layout( binding=6 r32f) uniform runtime-sized array of image2D)
0:105 'i' ( global int)
0:106 indirect index (layout( binding=8) temp samplerBuffer)
0:106 'uniformTexelBuffer' (layout( binding=8) uniform runtime-sized array of samplerBuffer)
0:106 'i' ( global int)
0:107 indirect index (layout( binding=9 r32f) temp imageBuffer)
0:107 'storageTexelBuffer' (layout( binding=9 r32f) uniform runtime-sized array of imageBuffer)
0:107 'i' ( global int)
0:? Linker Objects
0:? 'buf' (layout( column_major shared) buffer block{layout( column_major shared) buffer runtime-sized array of int a, layout( column_major shared) buffer runtime-sized array of float b})
0:? 'ubuf' (layout( column_major shared) uniform block{layout( column_major shared) uniform runtime-sized array of int a, layout( column_major shared) uniform runtime-sized array of float b})
......@@ -248,6 +318,14 @@ ERROR: node is still EOpNull!
0:? 'ubufa' (layout( column_major shared) uniform 4-element array of block{layout( column_major shared) uniform runtime-sized array of int a, layout( column_major shared) uniform runtime-sized array of float b})
0:? 'anon@0' (layout( column_major shared) buffer block{layout( column_major shared) buffer runtime-sized array of int aba, layout( column_major shared) buffer runtime-sized array of float abb})
0:? 'anon@1' (layout( column_major shared) uniform block{layout( column_major shared) uniform runtime-sized array of int aua, layout( column_major shared) uniform runtime-sized array of float aub})
0:? 'uniformTexelBufferDyn' (layout( binding=1) uniform runtime-sized array of samplerBuffer)
0:? 'storageTexelBufferDyn' (layout( binding=2 r32f) uniform runtime-sized array of imageBuffer)
0:? 'uniformBuffer' (layout( binding=3 column_major shared) uniform runtime-sized array of block{layout( column_major shared) uniform float a})
0:? 'storageBuffer' (layout( binding=4 column_major shared) buffer runtime-sized array of block{layout( column_major shared) buffer float b})
0:? 'sampledImage' (layout( binding=5) uniform runtime-sized array of sampler2D)
0:? 'storageImage' (layout( binding=6 r32f) uniform runtime-sized array of image2D)
0:? 'uniformTexelBuffer' (layout( binding=8) uniform runtime-sized array of samplerBuffer)
0:? 'storageTexelBuffer' (layout( binding=9 r32f) uniform runtime-sized array of imageBuffer)
0:? 'i' ( global int)
0:? 'gl_VertexID' ( gl_VertexId int VertexId)
0:? 'gl_InstanceID' ( gl_InstanceId int InstanceId)
......@@ -258,225 +336,281 @@ Linked vertex stage:
Shader version: 450
ERROR: node is still EOpNull!
0:35 Function Definition: main( ( global void)
0:35 Function Parameters:
0:37 Sequence
0:37 direct index (layout( column_major shared) temp int)
0:37 a: direct index for structure (layout( column_major shared) uniform runtime-sized array of int)
0:37 'ubuf' (layout( column_major shared) uniform block{layout( column_major shared) uniform runtime-sized array of int a, layout( column_major shared) uniform runtime-sized array of float b})
0:37 Constant:
0:37 0 (const int)
0:37 Constant:
0:37 3 (const int)
0:38 direct index (layout( column_major shared) temp float)
0:38 b: direct index for structure (layout( column_major shared) uniform runtime-sized array of float)
0:38 'ubuf' (layout( column_major shared) uniform block{layout( column_major shared) uniform runtime-sized array of int a, layout( column_major shared) uniform runtime-sized array of float b})
0:38 Constant:
0:38 1 (const int)
0:38 Constant:
0:38 3 (const int)
0:39 direct index (layout( column_major shared) temp int)
0:39 a: direct index for structure (layout( column_major shared) buffer runtime-sized array of int)
0:39 'buf' (layout( column_major shared) buffer block{layout( column_major shared) buffer runtime-sized array of int a, layout( column_major shared) buffer runtime-sized array of float b})
0:39 Constant:
0:39 0 (const int)
0:39 Constant:
0:39 3 (const int)
0:40 direct index (layout( column_major shared) temp float)
0:40 b: direct index for structure (layout( column_major shared) buffer runtime-sized array of float)
0:40 'buf' (layout( column_major shared) buffer block{layout( column_major shared) buffer runtime-sized array of int a, layout( column_major shared) buffer runtime-sized array of float b})
0:40 Constant:
0:40 1 (const int)
0:40 Constant:
0:40 3 (const int)
0:42 direct index (layout( column_major shared) temp int)
0:42 a: direct index for structure (layout( column_major shared) uniform runtime-sized array of int)
0:42 direct index (layout( column_major shared) temp block{layout( column_major shared) uniform runtime-sized array of int a, layout( column_major shared) uniform runtime-sized array of float b})
0:42 'ubufa' (layout( column_major shared) uniform 4-element array of block{layout( column_major shared) uniform runtime-sized array of int a, layout( column_major shared) uniform runtime-sized array of float b})
0:42 Constant:
0:42 3 (const int)
0:42 Constant:
0:42 0 (const int)
0:42 Constant:
0:42 3 (const int)
0:43 direct index (layout( column_major shared) temp float)
0:43 b: direct index for structure (layout( column_major shared) uniform runtime-sized array of float)
0:43 direct index (layout( column_major shared) temp block{layout( column_major shared) uniform runtime-sized array of int a, layout( column_major shared) uniform runtime-sized array of float b})
0:43 'ubufa' (layout( column_major shared) uniform 4-element array of block{layout( column_major shared) uniform runtime-sized array of int a, layout( column_major shared) uniform runtime-sized array of float b})
0:43 Constant:
0:43 3 (const int)
0:43 Constant:
0:43 1 (const int)
0:43 Constant:
0:43 3 (const int)
0:44 direct index (layout( column_major shared) temp int)
0:44 a: direct index for structure (layout( column_major shared) buffer runtime-sized array of int)
0:44 direct index (layout( column_major shared) temp block{layout( column_major shared) buffer runtime-sized array of int a, layout( column_major shared) buffer runtime-sized array of float b})
0:44 'bufa' (layout( column_major shared) buffer 4-element array of block{layout( column_major shared) buffer runtime-sized array of int a, layout( column_major shared) buffer runtime-sized array of float b})
0:44 Constant:
0:44 3 (const int)
0:44 Constant:
0:44 0 (const int)
0:44 Constant:
0:44 3 (const int)
0:45 direct index (layout( column_major shared) temp float)
0:45 b: direct index for structure (layout( column_major shared) buffer runtime-sized array of float)
0:45 direct index (layout( column_major shared) temp block{layout( column_major shared) buffer runtime-sized array of int a, layout( column_major shared) buffer runtime-sized array of float b})
0:45 'bufa' (layout( column_major shared) buffer 4-element array of block{layout( column_major shared) buffer runtime-sized array of int a, layout( column_major shared) buffer runtime-sized array of float b})
0:45 Constant:
0:45 3 (const int)
0:45 Constant:
0:45 1 (const int)
0:45 Constant:
0:45 3 (const int)
0:47 direct index (layout( column_major shared) temp int)
0:47 aua: direct index for structure (layout( column_major shared) uniform runtime-sized array of int)
0:47 'anon@1' (layout( column_major shared) uniform block{layout( column_major shared) uniform runtime-sized array of int aua, layout( column_major shared) uniform runtime-sized array of float aub})
0:44 Function Definition: main( ( global void)
0:44 Function Parameters:
0:46 Sequence
0:46 direct index (layout( column_major shared) temp int)
0:46 a: direct index for structure (layout( column_major shared) uniform runtime-sized array of int)
0:46 'ubuf' (layout( column_major shared) uniform block{layout( column_major shared) uniform runtime-sized array of int a, layout( column_major shared) uniform runtime-sized array of float b})
0:46 Constant:
0:46 0 (const int)
0:46 Constant:
0:46 3 (const int)
0:47 direct index (layout( column_major shared) temp float)
0:47 b: direct index for structure (layout( column_major shared) uniform runtime-sized array of float)
0:47 'ubuf' (layout( column_major shared) uniform block{layout( column_major shared) uniform runtime-sized array of int a, layout( column_major shared) uniform runtime-sized array of float b})
0:47 Constant:
0:47 0 (const uint)
0:47 1 (const int)
0:47 Constant:
0:47 3 (const int)
0:48 direct index (layout( column_major shared) temp float)
0:48 aub: direct index for structure (layout( column_major shared) uniform runtime-sized array of float)
0:48 'anon@1' (layout( column_major shared) uniform block{layout( column_major shared) uniform runtime-sized array of int aua, layout( column_major shared) uniform runtime-sized array of float aub})
0:48 direct index (layout( column_major shared) temp int)
0:48 a: direct index for structure (layout( column_major shared) buffer runtime-sized array of int)
0:48 'buf' (layout( column_major shared) buffer block{layout( column_major shared) buffer runtime-sized array of int a, layout( column_major shared) buffer runtime-sized array of float b})
0:48 Constant:
0:48 1 (const uint)
0:48 0 (const int)
0:48 Constant:
0:48 3 (const int)
0:49 direct index (layout( column_major shared) temp int)
0:49 aba: direct index for structure (layout( column_major shared) buffer runtime-sized array of int)
0:49 'anon@0' (layout( column_major shared) buffer block{layout( column_major shared) buffer runtime-sized array of int aba, layout( column_major shared) buffer runtime-sized array of float abb})
0:49 direct index (layout( column_major shared) temp float)
0:49 b: direct index for structure (layout( column_major shared) buffer runtime-sized array of float)
0:49 'buf' (layout( column_major shared) buffer block{layout( column_major shared) buffer runtime-sized array of int a, layout( column_major shared) buffer runtime-sized array of float b})
0:49 Constant:
0:49 0 (const uint)
0:49 1 (const int)
0:49 Constant:
0:49 3 (const int)
0:50 direct index (layout( column_major shared) temp float)
0:50 abb: direct index for structure (layout( column_major shared) buffer runtime-sized array of float)
0:50 'anon@0' (layout( column_major shared) buffer block{layout( column_major shared) buffer runtime-sized array of int aba, layout( column_major shared) buffer runtime-sized array of float abb})
0:50 Constant:
0:50 1 (const uint)
0:50 Constant:
0:50 3 (const int)
0:52 indirect index (layout( column_major shared) temp int)
0:52 a: direct index for structure (layout( column_major shared) uniform runtime-sized array of int)
0:52 'ubuf' (layout( column_major shared) uniform block{layout( column_major shared) uniform runtime-sized array of int a, layout( column_major shared) uniform runtime-sized array of float b})
0:51 direct index (layout( column_major shared) temp int)
0:51 a: direct index for structure (layout( column_major shared) uniform runtime-sized array of int)
0:51 direct index (layout( column_major shared) temp block{layout( column_major shared) uniform runtime-sized array of int a, layout( column_major shared) uniform runtime-sized array of float b})
0:51 'ubufa' (layout( column_major shared) uniform 4-element array of block{layout( column_major shared) uniform runtime-sized array of int a, layout( column_major shared) uniform runtime-sized array of float b})
0:51 Constant:
0:51 3 (const int)
0:51 Constant:
0:51 0 (const int)
0:51 Constant:
0:51 3 (const int)
0:52 direct index (layout( column_major shared) temp float)
0:52 b: direct index for structure (layout( column_major shared) uniform runtime-sized array of float)
0:52 direct index (layout( column_major shared) temp block{layout( column_major shared) uniform runtime-sized array of int a, layout( column_major shared) uniform runtime-sized array of float b})
0:52 'ubufa' (layout( column_major shared) uniform 4-element array of block{layout( column_major shared) uniform runtime-sized array of int a, layout( column_major shared) uniform runtime-sized array of float b})
0:52 Constant:
0:52 3 (const int)
0:52 Constant:
0:52 0 (const int)
0:52 'i' ( global int)
0:53 indirect index (layout( column_major shared) temp float)
0:53 b: direct index for structure (layout( column_major shared) uniform runtime-sized array of float)
0:53 'ubuf' (layout( column_major shared) uniform block{layout( column_major shared) uniform runtime-sized array of int a, layout( column_major shared) uniform runtime-sized array of float b})
0:52 1 (const int)
0:52 Constant:
0:52 3 (const int)
0:53 direct index (layout( column_major shared) temp int)
0:53 a: direct index for structure (layout( column_major shared) buffer runtime-sized array of int)
0:53 direct index (layout( column_major shared) temp block{layout( column_major shared) buffer runtime-sized array of int a, layout( column_major shared) buffer runtime-sized array of float b})
0:53 'bufa' (layout( column_major shared) buffer 4-element array of block{layout( column_major shared) buffer runtime-sized array of int a, layout( column_major shared) buffer runtime-sized array of float b})
0:53 Constant:
0:53 3 (const int)
0:53 Constant:
0:53 1 (const int)
0:53 'i' ( global int)
0:54 indirect index (layout( column_major shared) temp int)
0:54 a: direct index for structure (layout( column_major shared) buffer runtime-sized array of int)
0:54 'buf' (layout( column_major shared) buffer block{layout( column_major shared) buffer runtime-sized array of int a, layout( column_major shared) buffer runtime-sized array of float b})
0:53 0 (const int)
0:53 Constant:
0:53 3 (const int)
0:54 direct index (layout( column_major shared) temp float)
0:54 b: direct index for structure (layout( column_major shared) buffer runtime-sized array of float)
0:54 direct index (layout( column_major shared) temp block{layout( column_major shared) buffer runtime-sized array of int a, layout( column_major shared) buffer runtime-sized array of float b})
0:54 'bufa' (layout( column_major shared) buffer 4-element array of block{layout( column_major shared) buffer runtime-sized array of int a, layout( column_major shared) buffer runtime-sized array of float b})
0:54 Constant:
0:54 3 (const int)
0:54 Constant:
0:54 0 (const int)
0:54 'i' ( global int)
0:55 indirect index (layout( column_major shared) temp float)
0:55 b: direct index for structure (layout( column_major shared) buffer runtime-sized array of float)
0:55 'buf' (layout( column_major shared) buffer block{layout( column_major shared) buffer runtime-sized array of int a, layout( column_major shared) buffer runtime-sized array of float b})
0:55 Constant:
0:55 1 (const int)
0:55 'i' ( global int)
0:57 Constant:
0:57 1 (const int)
0:58 Constant:
0:58 1 (const int)
0:59 Constant:
0:59 1 (const int)
0:60 array length ( temp int)
0:60 b: direct index for structure (layout( column_major shared) buffer runtime-sized array of float)
0:60 'buf' (layout( column_major shared) buffer block{layout( column_major shared) buffer runtime-sized array of int a, layout( column_major shared) buffer runtime-sized array of float b})
0:60 Constant:
0:60 1 (const int)
0:62 indirect index (layout( column_major shared) temp int)
0:62 a: direct index for structure (layout( column_major shared) uniform runtime-sized array of int)
0:62 direct index (layout( column_major shared) temp block{layout( column_major shared) uniform runtime-sized array of int a, layout( column_major shared) uniform runtime-sized array of float b})
0:62 'ubufa' (layout( column_major shared) uniform 4-element array of block{layout( column_major shared) uniform runtime-sized array of int a, layout( column_major shared) uniform runtime-sized array of float b})
0:62 Constant:
0:62 1 (const int)
0:54 1 (const int)
0:54 Constant:
0:54 3 (const int)
0:56 direct index (layout( column_major shared) temp int)
0:56 aua: direct index for structure (layout( column_major shared) uniform runtime-sized array of int)
0:56 'anon@1' (layout( column_major shared) uniform block{layout( column_major shared) uniform runtime-sized array of int aua, layout( column_major shared) uniform runtime-sized array of float aub})
0:56 Constant:
0:56 0 (const uint)
0:56 Constant:
0:56 3 (const int)
0:57 direct index (layout( column_major shared) temp float)
0:57 aub: direct index for structure (layout( column_major shared) uniform runtime-sized array of float)
0:57 'anon@1' (layout( column_major shared) uniform block{layout( column_major shared) uniform runtime-sized array of int aua, layout( column_major shared) uniform runtime-sized array of float aub})
0:57 Constant:
0:57 1 (const uint)
0:57 Constant:
0:57 3 (const int)
0:58 direct index (layout( column_major shared) temp int)
0:58 aba: direct index for structure (layout( column_major shared) buffer runtime-sized array of int)
0:58 'anon@0' (layout( column_major shared) buffer block{layout( column_major shared) buffer runtime-sized array of int aba, layout( column_major shared) buffer runtime-sized array of float abb})
0:58 Constant:
0:58 0 (const uint)
0:58 Constant:
0:58 3 (const int)
0:59 direct index (layout( column_major shared) temp float)
0:59 abb: direct index for structure (layout( column_major shared) buffer runtime-sized array of float)
0:59 'anon@0' (layout( column_major shared) buffer block{layout( column_major shared) buffer runtime-sized array of int aba, layout( column_major shared) buffer runtime-sized array of float abb})
0:59 Constant:
0:59 1 (const uint)
0:59 Constant:
0:59 3 (const int)
0:61 indirect index (layout( column_major shared) temp int)
0:61 a: direct index for structure (layout( column_major shared) uniform runtime-sized array of int)
0:61 'ubuf' (layout( column_major shared) uniform block{layout( column_major shared) uniform runtime-sized array of int a, layout( column_major shared) uniform runtime-sized array of float b})
0:61 Constant:
0:61 0 (const int)
0:61 'i' ( global int)
0:62 indirect index (layout( column_major shared) temp float)
0:62 b: direct index for structure (layout( column_major shared) uniform runtime-sized array of float)
0:62 'ubuf' (layout( column_major shared) uniform block{layout( column_major shared) uniform runtime-sized array of int a, layout( column_major shared) uniform runtime-sized array of float b})
0:62 Constant:
0:62 0 (const int)
0:62 1 (const int)
0:62 'i' ( global int)
0:63 indirect index (layout( column_major shared) temp float)
0:63 b: direct index for structure (layout( column_major shared) uniform runtime-sized array of float)
0:63 direct index (layout( column_major shared) temp block{layout( column_major shared) uniform runtime-sized array of int a, layout( column_major shared) uniform runtime-sized array of float b})
0:63 'ubufa' (layout( column_major shared) uniform 4-element array of block{layout( column_major shared) uniform runtime-sized array of int a, layout( column_major shared) uniform runtime-sized array of float b})
0:63 Constant:
0:63 1 (const int)
0:63 indirect index (layout( column_major shared) temp int)
0:63 a: direct index for structure (layout( column_major shared) buffer runtime-sized array of int)
0:63 'buf' (layout( column_major shared) buffer block{layout( column_major shared) buffer runtime-sized array of int a, layout( column_major shared) buffer runtime-sized array of float b})
0:63 Constant:
0:63 1 (const int)
0:63 0 (const int)
0:63 'i' ( global int)
0:64 indirect index (layout( column_major shared) temp int)
0:64 a: direct index for structure (layout( column_major shared) buffer runtime-sized array of int)
0:64 direct index (layout( column_major shared) temp block{layout( column_major shared) buffer runtime-sized array of int a, layout( column_major shared) buffer runtime-sized array of float b})
0:64 'bufa' (layout( column_major shared) buffer 4-element array of block{layout( column_major shared) buffer runtime-sized array of int a, layout( column_major shared) buffer runtime-sized array of float b})
0:64 Constant:
0:64 1 (const int)
0:64 indirect index (layout( column_major shared) temp float)
0:64 b: direct index for structure (layout( column_major shared) buffer runtime-sized array of float)
0:64 'buf' (layout( column_major shared) buffer block{layout( column_major shared) buffer runtime-sized array of int a, layout( column_major shared) buffer runtime-sized array of float b})
0:64 Constant:
0:64 0 (const int)
0:64 1 (const int)
0:64 'i' ( global int)
0:65 indirect index (layout( column_major shared) temp float)
0:65 b: direct index for structure (layout( column_major shared) buffer runtime-sized array of float)
0:65 direct index (layout( column_major shared) temp block{layout( column_major shared) buffer runtime-sized array of int a, layout( column_major shared) buffer runtime-sized array of float b})
0:65 'bufa' (layout( column_major shared) buffer 4-element array of block{layout( column_major shared) buffer runtime-sized array of int a, layout( column_major shared) buffer runtime-sized array of float b})
0:65 Constant:
0:65 1 (const int)
0:65 Constant:
0:65 1 (const int)
0:65 'i' ( global int)
0:66 Constant:
0:66 1 (const int)
0:67 Constant:
0:67 1 (const int)
0:68 Constant:
0:68 1 (const int)
0:69 Constant:
0:69 1 (const int)
0:70 array length ( temp int)
0:70 b: direct index for structure (layout( column_major shared) buffer runtime-sized array of float)
0:70 direct index (layout( column_major shared) temp block{layout( column_major shared) buffer runtime-sized array of int a, layout( column_major shared) buffer runtime-sized array of float b})
0:70 'bufa' (layout( column_major shared) buffer 4-element array of block{layout( column_major shared) buffer runtime-sized array of int a, layout( column_major shared) buffer runtime-sized array of float b})
0:70 Constant:
0:70 1 (const int)
0:70 Constant:
0:70 1 (const int)
0:72 indirect index (layout( column_major shared) temp int)
0:72 aua: direct index for structure (layout( column_major shared) uniform runtime-sized array of int)
0:72 'anon@1' (layout( column_major shared) uniform block{layout( column_major shared) uniform runtime-sized array of int aua, layout( column_major shared) uniform runtime-sized array of float aub})
0:69 array length ( temp int)
0:69 b: direct index for structure (layout( column_major shared) buffer runtime-sized array of float)
0:69 'buf' (layout( column_major shared) buffer block{layout( column_major shared) buffer runtime-sized array of int a, layout( column_major shared) buffer runtime-sized array of float b})
0:69 Constant:
0:69 1 (const int)
0:71 indirect index (layout( column_major shared) temp int)
0:71 a: direct index for structure (layout( column_major shared) uniform runtime-sized array of int)
0:71 direct index (layout( column_major shared) temp block{layout( column_major shared) uniform runtime-sized array of int a, layout( column_major shared) uniform runtime-sized array of float b})
0:71 'ubufa' (layout( column_major shared) uniform 4-element array of block{layout( column_major shared) uniform runtime-sized array of int a, layout( column_major shared) uniform runtime-sized array of float b})
0:71 Constant:
0:71 1 (const int)
0:71 Constant:
0:71 0 (const int)
0:71 'i' ( global int)
0:72 indirect index (layout( column_major shared) temp float)
0:72 b: direct index for structure (layout( column_major shared) uniform runtime-sized array of float)
0:72 direct index (layout( column_major shared) temp block{layout( column_major shared) uniform runtime-sized array of int a, layout( column_major shared) uniform runtime-sized array of float b})
0:72 'ubufa' (layout( column_major shared) uniform 4-element array of block{layout( column_major shared) uniform runtime-sized array of int a, layout( column_major shared) uniform runtime-sized array of float b})
0:72 Constant:
0:72 1 (const int)
0:72 Constant:
0:72 0 (const uint)
0:72 1 (const int)
0:72 'i' ( global int)
0:73 indirect index (layout( column_major shared) temp float)
0:73 aub: direct index for structure (layout( column_major shared) uniform runtime-sized array of float)
0:73 'anon@1' (layout( column_major shared) uniform block{layout( column_major shared) uniform runtime-sized array of int aua, layout( column_major shared) uniform runtime-sized array of float aub})
0:73 indirect index (layout( column_major shared) temp int)
0:73 a: direct index for structure (layout( column_major shared) buffer runtime-sized array of int)
0:73 direct index (layout( column_major shared) temp block{layout( column_major shared) buffer runtime-sized array of int a, layout( column_major shared) buffer runtime-sized array of float b})
0:73 'bufa' (layout( column_major shared) buffer 4-element array of block{layout( column_major shared) buffer runtime-sized array of int a, layout( column_major shared) buffer runtime-sized array of float b})
0:73 Constant:
0:73 1 (const int)
0:73 Constant:
0:73 1 (const uint)
0:73 0 (const int)
0:73 'i' ( global int)
0:74 indirect index (layout( column_major shared) temp int)
0:74 aba: direct index for structure (layout( column_major shared) buffer runtime-sized array of int)
0:74 'anon@0' (layout( column_major shared) buffer block{layout( column_major shared) buffer runtime-sized array of int aba, layout( column_major shared) buffer runtime-sized array of float abb})
0:74 indirect index (layout( column_major shared) temp float)
0:74 b: direct index for structure (layout( column_major shared) buffer runtime-sized array of float)
0:74 direct index (layout( column_major shared) temp block{layout( column_major shared) buffer runtime-sized array of int a, layout( column_major shared) buffer runtime-sized array of float b})
0:74 'bufa' (layout( column_major shared) buffer 4-element array of block{layout( column_major shared) buffer runtime-sized array of int a, layout( column_major shared) buffer runtime-sized array of float b})
0:74 Constant:
0:74 1 (const int)
0:74 Constant:
0:74 0 (const uint)
0:74 1 (const int)
0:74 'i' ( global int)
0:75 indirect index (layout( column_major shared) temp float)
0:75 abb: direct index for structure (layout( column_major shared) buffer runtime-sized array of float)
0:75 'anon@0' (layout( column_major shared) buffer block{layout( column_major shared) buffer runtime-sized array of int aba, layout( column_major shared) buffer runtime-sized array of float abb})
0:75 Constant:
0:75 1 (const uint)
0:75 'i' ( global int)
0:76 Constant:
0:76 1 (const int)
0:77 Constant:
0:77 1 (const int)
0:78 Constant:
0:78 1 (const int)
0:79 Constant:
0:79 1 (const int)
0:80 array length ( temp int)
0:80 abb: direct index for structure (layout( column_major shared) buffer runtime-sized array of float)
0:80 'anon@0' (layout( column_major shared) buffer block{layout( column_major shared) buffer runtime-sized array of int aba, layout( column_major shared) buffer runtime-sized array of float abb})
0:80 Constant:
0:80 1 (const uint)
0:79 array length ( temp int)
0:79 b: direct index for structure (layout( column_major shared) buffer runtime-sized array of float)
0:79 direct index (layout( column_major shared) temp block{layout( column_major shared) buffer runtime-sized array of int a, layout( column_major shared) buffer runtime-sized array of float b})
0:79 'bufa' (layout( column_major shared) buffer 4-element array of block{layout( column_major shared) buffer runtime-sized array of int a, layout( column_major shared) buffer runtime-sized array of float b})
0:79 Constant:
0:79 1 (const int)
0:79 Constant:
0:79 1 (const int)
0:81 indirect index (layout( column_major shared) temp int)
0:81 aua: direct index for structure (layout( column_major shared) uniform runtime-sized array of int)
0:81 'anon@1' (layout( column_major shared) uniform block{layout( column_major shared) uniform runtime-sized array of int aua, layout( column_major shared) uniform runtime-sized array of float aub})
0:81 Constant:
0:81 0 (const uint)
0:81 'i' ( global int)
0:82 indirect index (layout( column_major shared) temp float)
0:82 aub: direct index for structure (layout( column_major shared) uniform runtime-sized array of float)
0:82 'anon@1' (layout( column_major shared) uniform block{layout( column_major shared) uniform runtime-sized array of int aua, layout( column_major shared) uniform runtime-sized array of float aub})
0:82 Constant:
0:82 1 (const uint)
0:82 'i' ( global int)
0:83 indirect index (layout( column_major shared) temp int)
0:83 aba: direct index for structure (layout( column_major shared) buffer runtime-sized array of int)
0:83 'anon@0' (layout( column_major shared) buffer block{layout( column_major shared) buffer runtime-sized array of int aba, layout( column_major shared) buffer runtime-sized array of float abb})
0:83 Constant:
0:83 0 (const uint)
0:83 'i' ( global int)
0:84 indirect index (layout( column_major shared) temp float)
0:84 abb: direct index for structure (layout( column_major shared) buffer runtime-sized array of float)
0:84 'anon@0' (layout( column_major shared) buffer block{layout( column_major shared) buffer runtime-sized array of int aba, layout( column_major shared) buffer runtime-sized array of float abb})
0:84 Constant:
0:84 1 (const uint)
0:84 'i' ( global int)
0:86 Constant:
0:86 1 (const int)
0:87 Constant:
0:87 1 (const int)
0:88 Constant:
0:88 1 (const int)
0:89 array length ( temp int)
0:89 abb: direct index for structure (layout( column_major shared) buffer runtime-sized array of float)
0:89 'anon@0' (layout( column_major shared) buffer block{layout( column_major shared) buffer runtime-sized array of int aba, layout( column_major shared) buffer runtime-sized array of float abb})
0:89 Constant:
0:89 1 (const uint)
0:91 direct index (layout( binding=1) temp samplerBuffer)
0:91 'uniformTexelBufferDyn' (layout( binding=1) uniform runtime-sized array of samplerBuffer)
0:91 Constant:
0:91 1 (const int)
0:92 direct index (layout( binding=2 r32f) temp imageBuffer)
0:92 'storageTexelBufferDyn' (layout( binding=2 r32f) uniform runtime-sized array of imageBuffer)
0:92 Constant:
0:92 1 (const int)
0:93 direct index (layout( binding=3 column_major shared) temp block{layout( column_major shared) uniform float a})
0:93 'uniformBuffer' (layout( binding=3 column_major shared) uniform runtime-sized array of block{layout( column_major shared) uniform float a})
0:93 Constant:
0:93 1 (const int)
0:94 direct index (layout( binding=4 column_major shared) temp block{layout( column_major shared) buffer float b})
0:94 'storageBuffer' (layout( binding=4 column_major shared) buffer runtime-sized array of block{layout( column_major shared) buffer float b})
0:94 Constant:
0:94 1 (const int)
0:95 direct index (layout( binding=5) temp sampler2D)
0:95 'sampledImage' (layout( binding=5) uniform runtime-sized array of sampler2D)
0:95 Constant:
0:95 1 (const int)
0:96 direct index (layout( binding=6 r32f) temp image2D)
0:96 'storageImage' (layout( binding=6 r32f) uniform runtime-sized array of image2D)
0:96 Constant:
0:96 1 (const int)
0:97 direct index (layout( binding=8) temp samplerBuffer)
0:97 'uniformTexelBuffer' (layout( binding=8) uniform runtime-sized array of samplerBuffer)
0:97 Constant:
0:97 1 (const int)
0:98 direct index (layout( binding=9 r32f) temp imageBuffer)
0:98 'storageTexelBuffer' (layout( binding=9 r32f) uniform runtime-sized array of imageBuffer)
0:98 Constant:
0:98 1 (const int)
0:100 indirect index (layout( binding=1) temp samplerBuffer)
0:100 'uniformTexelBufferDyn' (layout( binding=1) uniform runtime-sized array of samplerBuffer)
0:100 'i' ( global int)
0:101 indirect index (layout( binding=2 r32f) temp imageBuffer)
0:101 'storageTexelBufferDyn' (layout( binding=2 r32f) uniform runtime-sized array of imageBuffer)
0:101 'i' ( global int)
0:102 indirect index (layout( binding=3 column_major shared) temp block{layout( column_major shared) uniform float a})
0:102 'uniformBuffer' (layout( binding=3 column_major shared) uniform runtime-sized array of block{layout( column_major shared) uniform float a})
0:102 'i' ( global int)
0:103 indirect index (layout( binding=4 column_major shared) temp block{layout( column_major shared) buffer float b})
0:103 'storageBuffer' (layout( binding=4 column_major shared) buffer runtime-sized array of block{layout( column_major shared) buffer float b})
0:103 'i' ( global int)
0:104 indirect index (layout( binding=5) temp sampler2D)
0:104 'sampledImage' (layout( binding=5) uniform runtime-sized array of sampler2D)
0:104 'i' ( global int)
0:105 indirect index (layout( binding=6 r32f) temp image2D)
0:105 'storageImage' (layout( binding=6 r32f) uniform runtime-sized array of image2D)
0:105 'i' ( global int)
0:106 indirect index (layout( binding=8) temp samplerBuffer)
0:106 'uniformTexelBuffer' (layout( binding=8) uniform runtime-sized array of samplerBuffer)
0:106 'i' ( global int)
0:107 indirect index (layout( binding=9 r32f) temp imageBuffer)
0:107 'storageTexelBuffer' (layout( binding=9 r32f) uniform runtime-sized array of imageBuffer)
0:107 'i' ( global int)
0:? Linker Objects
0:? 'buf' (layout( column_major shared) buffer block{layout( column_major shared) buffer runtime-sized array of int a, layout( column_major shared) buffer runtime-sized array of float b})
0:? 'ubuf' (layout( column_major shared) uniform block{layout( column_major shared) uniform runtime-sized array of int a, layout( column_major shared) uniform runtime-sized array of float b})
......@@ -484,6 +618,14 @@ ERROR: node is still EOpNull!
0:? 'ubufa' (layout( column_major shared) uniform 4-element array of block{layout( column_major shared) uniform runtime-sized array of int a, layout( column_major shared) uniform runtime-sized array of float b})
0:? 'anon@0' (layout( column_major shared) buffer block{layout( column_major shared) buffer runtime-sized array of int aba, layout( column_major shared) buffer runtime-sized array of float abb})
0:? 'anon@1' (layout( column_major shared) uniform block{layout( column_major shared) uniform runtime-sized array of int aua, layout( column_major shared) uniform runtime-sized array of float aub})
0:? 'uniformTexelBufferDyn' (layout( binding=1) uniform runtime-sized array of samplerBuffer)
0:? 'storageTexelBufferDyn' (layout( binding=2 r32f) uniform runtime-sized array of imageBuffer)
0:? 'uniformBuffer' (layout( binding=3 column_major shared) uniform runtime-sized array of block{layout( column_major shared) uniform float a})
0:? 'storageBuffer' (layout( binding=4 column_major shared) buffer runtime-sized array of block{layout( column_major shared) buffer float b})
0:? 'sampledImage' (layout( binding=5) uniform runtime-sized array of sampler2D)
0:? 'storageImage' (layout( binding=6 r32f) uniform runtime-sized array of image2D)
0:? 'uniformTexelBuffer' (layout( binding=8) uniform runtime-sized array of samplerBuffer)
0:? 'storageTexelBuffer' (layout( binding=9 r32f) uniform runtime-sized array of imageBuffer)
0:? 'i' ( global int)
0:? 'gl_VertexID' ( gl_VertexId int VertexId)
0:? 'gl_InstanceID' ( gl_InstanceId int InstanceId)
......
......@@ -48,7 +48,7 @@ spv.nonuniform.frag
Name 97 "bname"
MemberName 97(bname) 0 "b"
Name 100 "storageBuffer"
Name 111 "sampledImage"
Name 110 "sampledImage"
Name 125 "storageImage"
Name 137 "inputAttachment"
Name 147 "uniformTexelBuffer"
......@@ -93,10 +93,10 @@ spv.nonuniform.frag
Decorate 100(storageBuffer) Binding 4
Decorate 101 DecorationNonUniformEXT
Decorate 103 DecorationNonUniformEXT
Decorate 111(sampledImage) DescriptorSet 0
Decorate 111(sampledImage) Binding 5
Decorate 112 DecorationNonUniformEXT
Decorate 115 DecorationNonUniformEXT
Decorate 110(sampledImage) DescriptorSet 0
Decorate 110(sampledImage) Binding 5
Decorate 111 DecorationNonUniformEXT
Decorate 114 DecorationNonUniformEXT
Decorate 125(storageImage) DescriptorSet 0
Decorate 125(storageImage) Binding 6
Decorate 126 DecorationNonUniformEXT
......@@ -172,15 +172,15 @@ spv.nonuniform.frag
98: TypeRuntimeArray 97(bname)
99: TypePointer Uniform 98
100(storageBuffer): 99(ptr) Variable Uniform
107: TypeImage 28(float) 2D sampled format:Unknown
108: TypeSampledImage 107
109: TypeRuntimeArray 108
110: TypePointer UniformConstant 109
111(sampledImage): 110(ptr) Variable UniformConstant
113: TypePointer UniformConstant 108
116: TypeVector 28(float) 2
117: 28(float) Constant 1056964608
118: 116(fvec2) ConstantComposite 117 117
106: TypeImage 28(float) 2D sampled format:Unknown
107: TypeSampledImage 106
108: TypeRuntimeArray 107
109: TypePointer UniformConstant 108
110(sampledImage): 109(ptr) Variable UniformConstant
112: TypePointer UniformConstant 107
115: TypeVector 28(float) 2
116: 28(float) Constant 1056964608
117: 115(fvec2) ConstantComposite 116 116
122: TypeImage 28(float) 2D nonsampled format:R32f
123: TypeRuntimeArray 122
124: TypePointer UniformConstant 123
......@@ -270,13 +270,14 @@ spv.nonuniform.frag
104: 28(float) Load 30(b)
105: 28(float) FAdd 104 103
Store 30(b) 105
106: 28(float) Load 30(b)
112: 6(int) Load 90(nu_ii)
114: 113(ptr) AccessChain 111(sampledImage) 112
115: 108 Load 114
119: 31(fvec4) ImageSampleImplicitLod 115 118
120: 28(float) CompositeExtract 119 0
121: 28(float) FAdd 106 120
111: 6(int) Load 90(nu_ii)
113: 112(ptr) AccessChain 110(sampledImage) 111
114: 107 Load 113
118: 31(fvec4) ImageSampleImplicitLod 114 117
119: 28(float) CompositeExtract 118 0
120: 28(float) Load 30(b)
121: 28(float) FAdd 120 119
Store 30(b) 121
126: 6(int) Load 90(nu_ii)
128: 127(ptr) AccessChain 125(storageImage) 126
129: 122 Load 128
......
#version 450
int nonuniformEXT;
#extension GL_EXT_nonuniform_qualifier : enable
nonuniformEXT in vec4 nu_inv4;
nonuniformEXT float nu_gf;
......
......@@ -30,6 +30,15 @@ uniform aun {
float aub[];
};
layout(binding=1) uniform samplerBuffer uniformTexelBufferDyn[];
layout(binding=2, r32f) uniform imageBuffer storageTexelBufferDyn[];
layout(binding=3) uniform uname { float a; } uniformBuffer[];
layout(binding=4) buffer bname { float b; } storageBuffer[];
layout(binding=5) uniform sampler2D sampledImage[];
layout(binding=6, r32f) uniform image2D storageImage[];
layout(binding=8) uniform samplerBuffer uniformTexelBuffer[];
layout(binding=9, r32f) uniform imageBuffer storageTexelBuffer[];
int i;
void main()
......@@ -78,4 +87,22 @@ void main()
aub.length(); // ERROR
aba.length(); // ERROR
abb.length();
uniformTexelBufferDyn[1];
storageTexelBufferDyn[1];
uniformBuffer[1];
storageBuffer[1];
sampledImage[1];
storageImage[1];
uniformTexelBuffer[1];
storageTexelBuffer[1];
uniformTexelBufferDyn[i]; // ERROR, need extension
storageTexelBufferDyn[i]; // ERROR, need extension
uniformBuffer[i]; // ERROR, need extension
storageBuffer[i]; // ERROR, need extension
sampledImage[i]; // ERROR, need extension
storageImage[i]; // ERROR, need extension
uniformTexelBuffer[i]; // ERROR, need extension
storageTexelBuffer[i]; // ERROR, need extension
}
......@@ -10,7 +10,7 @@ layout(binding=0, input_attachment_index = 0) uniform subpassInput inputA
layout(binding=1) uniform samplerBuffer uniformTexelBufferDyn[];
layout(binding=2, r32f) uniform imageBuffer storageTexelBufferDyn[];
layout(binding=3) uniform uname { float a; } uniformBuffer[];
layout(binding=4) buffer bname { float b; } storageBuffer[];
layout(binding=4) buffer bname { float b; } storageBuffer[];
layout(binding=5) uniform sampler2D sampledImage[];
layout(binding=6, r32f) uniform image2D storageImage[];
layout(binding=7, input_attachment_index = 1) uniform subpassInput inputAttachment[];
......@@ -37,7 +37,7 @@ void main()
b += imageLoad(storageTexelBufferDyn[dyn_i], 1).x;
b += uniformBuffer[nu_ii].a;
b += storageBuffer[nu_ii].b;
b + texture(sampledImage[nu_ii], vec2(0.5)).x;
b += texture(sampledImage[nu_ii], vec2(0.5)).x;
b += imageLoad(storageImage[nu_ii], ivec2(1)).x;
b += subpassLoad(inputAttachment[nu_ii]).x;
b += texelFetch(uniformTexelBuffer[nu_ii], 1).x;
......
......@@ -392,15 +392,8 @@ TIntermTyped* TParseContext::handleBracketDereference(const TSourceLoc& loc, TIn
error(loc, "", "[", "array must be sized by a redeclaration or layout qualifier before being indexed with a variable");
else {
// it is okay for a run-time sized array
bool runtimeSized = isRuntimeSizable(*base);
if (!runtimeSized && /*?? base->getType().isOpaque() && */ base->getQualifier().isUniformOrBuffer()) {
requireExtensions(loc, 1, &E_GL_EXT_nonuniform_qualifier, "variable index");
runtimeSized = true;
}
if (!runtimeSized)
error(loc, "", "[", "array must be redeclared with a size before being indexed with a variable");
checkRuntimeSizable(loc, *base);
}
// ?? add correct run-time array semantics
base->getWritableType().setArrayVariablyIndexed();
}
if (base->getBasicType() == EbtBlock) {
......@@ -1252,7 +1245,6 @@ TIntermTyped* TParseContext::handleLengthMethod(const TSourceLoc& loc, TFunction
if (intermNode->getAsSymbolNode() && isIoResizeArray(type))
error(loc, "", function->getName().c_str(), "array must first be sized by a redeclaration or layout qualifier");
else if (isRuntimeLength(*intermNode->getAsTyped())) {
//?? possible run-time arary
// Create a unary op and let the back end handle it
return intermediate.addBuiltInFunctionCall(loc, EOpArrayLength, true, intermNode, TType(EbtInt));
} else
......@@ -3300,11 +3292,25 @@ void TParseContext::declareArray(const TSourceLoc& loc, const TString& identifie
checkIoArraysConsistency(loc);
}
// Policy decision for whether a node could potentially be sized at runtime.
bool TParseContext::isRuntimeSizable(const TIntermTyped& base) const
// Policy and error check for needing a runtime sized array.
void TParseContext::checkRuntimeSizable(const TSourceLoc& loc, const TIntermTyped& base)
{
// runtime length implies runtime sizeable, so no problem
if (isRuntimeLength(base))
return;
// check for additional things allowed by GL_EXT_nonuniform_qualifier
if (base.getBasicType() == EbtSampler ||
(base.getBasicType() == EbtBlock && base.getType().getQualifier().isUniformOrBuffer()))
requireExtensions(loc, 1, &E_GL_EXT_nonuniform_qualifier, "variable index");
else
error(loc, "", "[", "array must be redeclared with a size before being indexed with a variable");
}
// Policy decision for whether a run-time .length() is allowed.
bool TParseContext::isRuntimeLength(const TIntermTyped& base) const
{
const TType& type = base.getType();
if (type.getQualifier().storage == EvqBuffer) {
if (base.getType().getQualifier().storage == EvqBuffer) {
// in a buffer block
const TIntermBinary* binary = base.getAsBinaryNode();
if (binary != nullptr && binary->getOp() == EOpIndexDirectStruct) {
......@@ -3319,12 +3325,6 @@ bool TParseContext::isRuntimeSizable(const TIntermTyped& base) const
return false;
}
// Policy decision for whether a run-time .length() is allowed.
bool TParseContext::isRuntimeLength(const TIntermTyped& base) const
{
return isRuntimeSizable(base);
}
// Returns true if the first argument to the #line directive is the line number for the next line.
//
// Desktop, pre-version 3.30: "After processing this directive
......@@ -4721,7 +4721,8 @@ void TParseContext::layoutTypeCheck(const TSourceLoc& loc, const TType& type)
lastBinding += type.getCumulativeArraySize();
else {
lastBinding += 1;
warn(loc, "assuming array size of one for compile-time checking of binding numbers for unsized array", "[]", "");
if (spvVersion.vulkan == 0)
warn(loc, "assuming binding count of one for compile-time checking of binding numbers for unsized array", "[]", "");
}
}
}
......
......@@ -427,7 +427,7 @@ protected:
TVariable* makeInternalVariable(const char* name, const TType&) const;
TVariable* declareNonArray(const TSourceLoc&, const TString& identifier, const TType&);
void declareArray(const TSourceLoc&, const TString& identifier, const TType&, TSymbol*&);
bool isRuntimeSizable(const TIntermTyped&) const;
void checkRuntimeSizable(const TSourceLoc&, const TIntermTyped&);
bool isRuntimeLength(const TIntermTyped&) const;
TIntermNode* executeInitializer(const TSourceLoc&, TIntermTyped* initializer, TVariable* variable);
TIntermTyped* convertInitializerList(const TSourceLoc&, const TType&, TIntermTyped* initializer);
......
......@@ -858,7 +858,6 @@ int TScanContext::tokenizeIdentifier()
switch (keyword) {
case CONST:
case UNIFORM:
case NONUNIFORM: //?? check for extension
case IN:
case OUT:
case INOUT:
......@@ -875,6 +874,12 @@ int TScanContext::tokenizeIdentifier()
case CASE:
return keyword;
case NONUNIFORM:
if (parseContext.extensionTurnedOn(E_GL_EXT_nonuniform_qualifier))
return keyword;
else
return identifierOrType();
case SWITCH:
case DEFAULT:
if ((parseContext.profile == EEsProfile && parseContext.version < 300) ||
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment