Implement barrier() control-flow rules: in flow control, non-main, and post-return.

git-svn-id: https://cvs.khronos.org/svn/repos/ogl/trunk/ecosystem/public/sdk/tools/glslang@29347 e7fa87d3-cd2b-0410-9028-fcbf551c1848
This commit is contained in:
John Kessenich
2015-01-07 06:14:06 +00:00
parent cbc7dd979a
commit 05a62bf528
8 changed files with 426 additions and 181 deletions

View File

@@ -219,14 +219,20 @@ ERROR: 0:6: 'quads' : unrecognized layout identifier, or qualifier requires assi
ERROR: 0:7: 'ccw' : unrecognized layout identifier, or qualifier requires assignment (e.g., binding = 4)
ERROR: 0:8: 'fractional_even_spacing' : unrecognized layout identifier, or qualifier requires assignment (e.g., binding = 4)
ERROR: 0:10: 'patch' : can only use on output in tessellation-control shader
ERROR: 0:39: 'vertices' : can only apply to 'out'
ERROR: 0:40: 'vertices' : cannot change previously set layout value
ERROR: 0:44: '[' : array index out of range '4'
ERROR: 0:47: 'in' : type must be an array: ina
ERROR: 0:49: '[]' : tessellation input array size must be gl_MaxPatchVertices or implicitly sized
ERROR: 0:56: 'location' : overlapping use of location 4
ERROR: 0:60: 'location' : overlapping use of location 4
ERROR: 11 compilation errors. No code generated.
ERROR: 0:39: '' : tessellation control barrier() cannot be placed within flow control
ERROR: 0:41: '' : tessellation control barrier() cannot be placed within flow control
ERROR: 0:46: '' : tessellation control barrier() cannot be placed within flow control
ERROR: 0:51: '' : tessellation control barrier() cannot be placed within flow control
ERROR: 0:61: '' : tessellation control barrier() cannot be placed after a return from main()
ERROR: 0:64: 'vertices' : can only apply to 'out'
ERROR: 0:65: 'vertices' : cannot change previously set layout value
ERROR: 0:69: '[' : array index out of range '4'
ERROR: 0:71: '' : tessellation control barrier() must be in main()
ERROR: 0:74: 'in' : type must be an array: ina
ERROR: 0:76: '[]' : tessellation input array size must be gl_MaxPatchVertices or implicitly sized
ERROR: 0:83: 'location' : overlapping use of location 4
ERROR: 0:87: 'location' : overlapping use of location 4
ERROR: 17 compilation errors. No code generated.
Shader version: 400
@@ -331,34 +337,68 @@ ERROR: node is still EOpNull!
0:36 1 (const int)
0:36 Constant:
0:36 1.300000
0:42 Function Definition: foo( (void)
0:42 Function Parameters:
0:44 Sequence
0:44 gl_PointSize: direct index for structure (out float)
0:44 direct index (block{out 4-component vector of float gl_Position, out float gl_PointSize, out implicitly-sized array of float gl_ClipDistance})
0:44 'gl_out' (out 4-element array of block{out 4-component vector of float gl_Position, out float gl_PointSize, out implicitly-sized array of float gl_ClipDistance})
0:44 Constant:
0:44 4 (const int)
0:44 Constant:
0:44 1 (const int)
0:64 Function Definition: foop( (void)
0:64 Function Parameters:
0:38 Test condition and select (void)
0:38 Condition
0:38 Compare Greater Than (bool)
0:38 'a' (int)
0:38 Constant:
0:38 10 (const int)
0:38 true case
0:39 Barrier (void)
0:38 false case
0:41 Barrier (void)
0:43 Barrier (void)
0:47 Loop with condition not tested first
0:47 Loop Condition
0:47 Compare Greater Than (bool)
0:47 'a' (int)
0:47 Constant:
0:47 10 (const int)
0:47 Loop Body
0:46 Sequence
0:46 Barrier (void)
0:49 switch
0:49 condition
0:49 'a' (int)
0:49 body
0:49 Sequence
0:50 default:
0:? Sequence
0:51 Barrier (void)
0:52 Branch: Break
0:56 Sequence
0:56 Barrier (void)
0:59 Branch: Return
0:61 Barrier (void)
0:67 Function Definition: foo( (void)
0:67 Function Parameters:
0:69 Sequence
0:69 gl_PointSize: direct index for structure (out float)
0:69 direct index (block{out 4-component vector of float gl_Position, out float gl_PointSize, out implicitly-sized array of float gl_ClipDistance})
0:69 'gl_out' (out 4-element array of block{out 4-component vector of float gl_Position, out float gl_PointSize, out implicitly-sized array of float gl_ClipDistance})
0:69 Constant:
0:69 4 (const int)
0:69 Constant:
0:69 1 (const int)
0:71 Barrier (void)
0:91 Function Definition: foop( (void)
0:91 Function Parameters:
0:? Sequence
0:68 multiply second child into first child (3-component vector of float)
0:68 'pv3' (3-component vector of float)
0:68 'pv3' (3-component vector of float)
0:69 move second child to first child (3-component vector of float)
0:69 'pv3' (3-component vector of float)
0:69 Function Call: fma(vf3;vf3;vf3; (3-component vector of float)
0:69 'pv3' (3-component vector of float)
0:69 'pv3' (3-component vector of float)
0:69 'pv3' (3-component vector of float)
0:70 move second child to first child (double)
0:70 'd' (double)
0:70 Function Call: fma(d1;d1;d1; (double)
0:70 'd' (double)
0:70 'd' (double)
0:70 'd' (double)
0:95 multiply second child into first child (3-component vector of float)
0:95 'pv3' (3-component vector of float)
0:95 'pv3' (3-component vector of float)
0:96 move second child to first child (3-component vector of float)
0:96 'pv3' (3-component vector of float)
0:96 Function Call: fma(vf3;vf3;vf3; (3-component vector of float)
0:96 'pv3' (3-component vector of float)
0:96 'pv3' (3-component vector of float)
0:96 'pv3' (3-component vector of float)
0:97 move second child to first child (double)
0:97 'd' (double)
0:97 Function Call: fma(d1;d1;d1; (double)
0:97 'd' (double)
0:97 'd' (double)
0:97 'd' (double)
0:? Linker Objects
0:? 'gl_out' (out 4-element array of block{out 4-component vector of float gl_Position, out float gl_PointSize, out implicitly-sized array of float gl_ClipDistance})
0:? 'outa' (4-element array of int)
@@ -1031,34 +1071,68 @@ vertices = 4
0:36 1 (const int)
0:36 Constant:
0:36 1.300000
0:42 Function Definition: foo( (void)
0:42 Function Parameters:
0:44 Sequence
0:44 gl_PointSize: direct index for structure (out float)
0:44 direct index (block{out 4-component vector of float gl_Position, out float gl_PointSize, out 1-element array of float gl_ClipDistance})
0:44 'gl_out' (out 4-element array of block{out 4-component vector of float gl_Position, out float gl_PointSize, out 1-element array of float gl_ClipDistance})
0:44 Constant:
0:44 4 (const int)
0:44 Constant:
0:44 1 (const int)
0:64 Function Definition: foop( (void)
0:64 Function Parameters:
0:38 Test condition and select (void)
0:38 Condition
0:38 Compare Greater Than (bool)
0:38 'a' (int)
0:38 Constant:
0:38 10 (const int)
0:38 true case
0:39 Barrier (void)
0:38 false case
0:41 Barrier (void)
0:43 Barrier (void)
0:47 Loop with condition not tested first
0:47 Loop Condition
0:47 Compare Greater Than (bool)
0:47 'a' (int)
0:47 Constant:
0:47 10 (const int)
0:47 Loop Body
0:46 Sequence
0:46 Barrier (void)
0:49 switch
0:49 condition
0:49 'a' (int)
0:49 body
0:49 Sequence
0:50 default:
0:? Sequence
0:51 Barrier (void)
0:52 Branch: Break
0:56 Sequence
0:56 Barrier (void)
0:59 Branch: Return
0:61 Barrier (void)
0:67 Function Definition: foo( (void)
0:67 Function Parameters:
0:69 Sequence
0:69 gl_PointSize: direct index for structure (out float)
0:69 direct index (block{out 4-component vector of float gl_Position, out float gl_PointSize, out 1-element array of float gl_ClipDistance})
0:69 'gl_out' (out 4-element array of block{out 4-component vector of float gl_Position, out float gl_PointSize, out 1-element array of float gl_ClipDistance})
0:69 Constant:
0:69 4 (const int)
0:69 Constant:
0:69 1 (const int)
0:71 Barrier (void)
0:91 Function Definition: foop( (void)
0:91 Function Parameters:
0:? Sequence
0:68 multiply second child into first child (3-component vector of float)
0:68 'pv3' (3-component vector of float)
0:68 'pv3' (3-component vector of float)
0:69 move second child to first child (3-component vector of float)
0:69 'pv3' (3-component vector of float)
0:69 Function Call: fma(vf3;vf3;vf3; (3-component vector of float)
0:69 'pv3' (3-component vector of float)
0:69 'pv3' (3-component vector of float)
0:69 'pv3' (3-component vector of float)
0:70 move second child to first child (double)
0:70 'd' (double)
0:70 Function Call: fma(d1;d1;d1; (double)
0:70 'd' (double)
0:70 'd' (double)
0:70 'd' (double)
0:95 multiply second child into first child (3-component vector of float)
0:95 'pv3' (3-component vector of float)
0:95 'pv3' (3-component vector of float)
0:96 move second child to first child (3-component vector of float)
0:96 'pv3' (3-component vector of float)
0:96 Function Call: fma(vf3;vf3;vf3; (3-component vector of float)
0:96 'pv3' (3-component vector of float)
0:96 'pv3' (3-component vector of float)
0:96 'pv3' (3-component vector of float)
0:97 move second child to first child (double)
0:97 'd' (double)
0:97 Function Call: fma(d1;d1;d1; (double)
0:97 'd' (double)
0:97 'd' (double)
0:97 'd' (double)
0:8 Function Definition: main( (void)
0:8 Function Parameters:
0:15 Function Definition: main( (void)

View File

@@ -4,14 +4,20 @@ ERROR: 0:6: 'quads' : unrecognized layout identifier, or qualifier requires assi
ERROR: 0:7: 'ccw' : unrecognized layout identifier, or qualifier requires assignment (e.g., binding = 4)
ERROR: 0:8: 'fractional_even_spacing' : unrecognized layout identifier, or qualifier requires assignment (e.g., binding = 4)
ERROR: 0:10: 'patch' : can only use on output in tessellation-control shader
ERROR: 0:39: 'vertices' : can only apply to 'out'
ERROR: 0:40: 'vertices' : cannot change previously set layout value
ERROR: 0:44: '[' : array index out of range '4'
ERROR: 0:47: 'in' : type must be an array: ina
ERROR: 0:49: '[]' : tessellation input array size must be gl_MaxPatchVertices or implicitly sized
ERROR: 0:56: 'location' : overlapping use of location 4
ERROR: 0:60: 'location' : overlapping use of location 4
ERROR: 11 compilation errors. No code generated.
ERROR: 0:39: '' : tessellation control barrier() cannot be placed within flow control
ERROR: 0:41: '' : tessellation control barrier() cannot be placed within flow control
ERROR: 0:46: '' : tessellation control barrier() cannot be placed within flow control
ERROR: 0:51: '' : tessellation control barrier() cannot be placed within flow control
ERROR: 0:61: '' : tessellation control barrier() cannot be placed after a return from main()
ERROR: 0:64: 'vertices' : can only apply to 'out'
ERROR: 0:65: 'vertices' : cannot change previously set layout value
ERROR: 0:69: '[' : array index out of range '4'
ERROR: 0:71: '' : tessellation control barrier() must be in main()
ERROR: 0:74: 'in' : type must be an array: ina
ERROR: 0:76: '[]' : tessellation input array size must be gl_MaxPatchVertices or implicitly sized
ERROR: 0:83: 'location' : overlapping use of location 4
ERROR: 0:87: 'location' : overlapping use of location 4
ERROR: 17 compilation errors. No code generated.
Shader version: 400
@@ -116,34 +122,68 @@ ERROR: node is still EOpNull!
0:36 1 (const int)
0:36 Constant:
0:36 1.300000
0:42 Function Definition: foo( (void)
0:42 Function Parameters:
0:44 Sequence
0:44 gl_PointSize: direct index for structure (out float)
0:44 direct index (block{out 4-component vector of float gl_Position, out float gl_PointSize, out implicitly-sized array of float gl_ClipDistance})
0:44 'gl_out' (out 4-element array of block{out 4-component vector of float gl_Position, out float gl_PointSize, out implicitly-sized array of float gl_ClipDistance})
0:44 Constant:
0:44 4 (const int)
0:44 Constant:
0:44 1 (const int)
0:64 Function Definition: foop( (void)
0:64 Function Parameters:
0:38 Test condition and select (void)
0:38 Condition
0:38 Compare Greater Than (bool)
0:38 'a' (int)
0:38 Constant:
0:38 10 (const int)
0:38 true case
0:39 Barrier (void)
0:38 false case
0:41 Barrier (void)
0:43 Barrier (void)
0:47 Loop with condition not tested first
0:47 Loop Condition
0:47 Compare Greater Than (bool)
0:47 'a' (int)
0:47 Constant:
0:47 10 (const int)
0:47 Loop Body
0:46 Sequence
0:46 Barrier (void)
0:49 switch
0:49 condition
0:49 'a' (int)
0:49 body
0:49 Sequence
0:50 default:
0:? Sequence
0:51 Barrier (void)
0:52 Branch: Break
0:56 Sequence
0:56 Barrier (void)
0:59 Branch: Return
0:61 Barrier (void)
0:67 Function Definition: foo( (void)
0:67 Function Parameters:
0:69 Sequence
0:69 gl_PointSize: direct index for structure (out float)
0:69 direct index (block{out 4-component vector of float gl_Position, out float gl_PointSize, out implicitly-sized array of float gl_ClipDistance})
0:69 'gl_out' (out 4-element array of block{out 4-component vector of float gl_Position, out float gl_PointSize, out implicitly-sized array of float gl_ClipDistance})
0:69 Constant:
0:69 4 (const int)
0:69 Constant:
0:69 1 (const int)
0:71 Barrier (void)
0:91 Function Definition: foop( (void)
0:91 Function Parameters:
0:? Sequence
0:68 multiply second child into first child (3-component vector of float)
0:68 'pv3' (3-component vector of float)
0:68 'pv3' (3-component vector of float)
0:69 move second child to first child (3-component vector of float)
0:69 'pv3' (3-component vector of float)
0:69 Function Call: fma(vf3;vf3;vf3; (3-component vector of float)
0:69 'pv3' (3-component vector of float)
0:69 'pv3' (3-component vector of float)
0:69 'pv3' (3-component vector of float)
0:70 move second child to first child (double)
0:70 'd' (double)
0:70 Function Call: fma(d1;d1;d1; (double)
0:70 'd' (double)
0:70 'd' (double)
0:70 'd' (double)
0:95 multiply second child into first child (3-component vector of float)
0:95 'pv3' (3-component vector of float)
0:95 'pv3' (3-component vector of float)
0:96 move second child to first child (3-component vector of float)
0:96 'pv3' (3-component vector of float)
0:96 Function Call: fma(vf3;vf3;vf3; (3-component vector of float)
0:96 'pv3' (3-component vector of float)
0:96 'pv3' (3-component vector of float)
0:96 'pv3' (3-component vector of float)
0:97 move second child to first child (double)
0:97 'd' (double)
0:97 Function Call: fma(d1;d1;d1; (double)
0:97 'd' (double)
0:97 'd' (double)
0:97 'd' (double)
0:? Linker Objects
0:? 'gl_out' (out 4-element array of block{out 4-component vector of float gl_Position, out float gl_PointSize, out implicitly-sized array of float gl_ClipDistance})
0:? 'outa' (4-element array of int)
@@ -268,34 +308,68 @@ ERROR: node is still EOpNull!
0:36 1 (const int)
0:36 Constant:
0:36 1.300000
0:42 Function Definition: foo( (void)
0:42 Function Parameters:
0:44 Sequence
0:44 gl_PointSize: direct index for structure (out float)
0:44 direct index (block{out 4-component vector of float gl_Position, out float gl_PointSize, out 1-element array of float gl_ClipDistance})
0:44 'gl_out' (out 4-element array of block{out 4-component vector of float gl_Position, out float gl_PointSize, out 1-element array of float gl_ClipDistance})
0:44 Constant:
0:44 4 (const int)
0:44 Constant:
0:44 1 (const int)
0:64 Function Definition: foop( (void)
0:64 Function Parameters:
0:38 Test condition and select (void)
0:38 Condition
0:38 Compare Greater Than (bool)
0:38 'a' (int)
0:38 Constant:
0:38 10 (const int)
0:38 true case
0:39 Barrier (void)
0:38 false case
0:41 Barrier (void)
0:43 Barrier (void)
0:47 Loop with condition not tested first
0:47 Loop Condition
0:47 Compare Greater Than (bool)
0:47 'a' (int)
0:47 Constant:
0:47 10 (const int)
0:47 Loop Body
0:46 Sequence
0:46 Barrier (void)
0:49 switch
0:49 condition
0:49 'a' (int)
0:49 body
0:49 Sequence
0:50 default:
0:? Sequence
0:51 Barrier (void)
0:52 Branch: Break
0:56 Sequence
0:56 Barrier (void)
0:59 Branch: Return
0:61 Barrier (void)
0:67 Function Definition: foo( (void)
0:67 Function Parameters:
0:69 Sequence
0:69 gl_PointSize: direct index for structure (out float)
0:69 direct index (block{out 4-component vector of float gl_Position, out float gl_PointSize, out 1-element array of float gl_ClipDistance})
0:69 'gl_out' (out 4-element array of block{out 4-component vector of float gl_Position, out float gl_PointSize, out 1-element array of float gl_ClipDistance})
0:69 Constant:
0:69 4 (const int)
0:69 Constant:
0:69 1 (const int)
0:71 Barrier (void)
0:91 Function Definition: foop( (void)
0:91 Function Parameters:
0:? Sequence
0:68 multiply second child into first child (3-component vector of float)
0:68 'pv3' (3-component vector of float)
0:68 'pv3' (3-component vector of float)
0:69 move second child to first child (3-component vector of float)
0:69 'pv3' (3-component vector of float)
0:69 Function Call: fma(vf3;vf3;vf3; (3-component vector of float)
0:69 'pv3' (3-component vector of float)
0:69 'pv3' (3-component vector of float)
0:69 'pv3' (3-component vector of float)
0:70 move second child to first child (double)
0:70 'd' (double)
0:70 Function Call: fma(d1;d1;d1; (double)
0:70 'd' (double)
0:70 'd' (double)
0:70 'd' (double)
0:95 multiply second child into first child (3-component vector of float)
0:95 'pv3' (3-component vector of float)
0:95 'pv3' (3-component vector of float)
0:96 move second child to first child (3-component vector of float)
0:96 'pv3' (3-component vector of float)
0:96 Function Call: fma(vf3;vf3;vf3; (3-component vector of float)
0:96 'pv3' (3-component vector of float)
0:96 'pv3' (3-component vector of float)
0:96 'pv3' (3-component vector of float)
0:97 move second child to first child (double)
0:97 'd' (double)
0:97 Function Call: fma(d1;d1;d1; (double)
0:97 'd' (double)
0:97 'd' (double)
0:97 'd' (double)
0:? Linker Objects
0:? 'gl_out' (out 4-element array of block{out 4-component vector of float gl_Position, out float gl_PointSize, out 1-element array of float gl_ClipDistance})
0:? 'outa' (4-element array of int)

View File

@@ -3,17 +3,17 @@ Warning, version 430 is not yet complete; most version-specific features are pre
ERROR: 0:4: 'local_size' : cannot change previously set size
ERROR: 0:5: 'local_size' : too large; see gl_MaxComputeWorkGroupSize
ERROR: 0:23: 'values' : only the last member of a buffer block can be run-time sized
ERROR: 0:39: 'in' : global storage input qualifier cannot be used in a compute shader
ERROR: 0:39: 'location qualifier on input' : not supported in this stage: compute
ERROR: 0:40: 'in' : global storage input qualifier cannot be used in a compute shader
ERROR: 0:41: 'out' : global storage output qualifier cannot be used in a compute shader
ERROR: 0:44: 'shared' : cannot apply layout qualifiers to a shared variable
ERROR: 0:44: 'location' : can only appy to uniform, buffer, in, or out storage qualifiers
ERROR: 0:45: 'shared' : cannot initialize this type of qualifier
ERROR: 0:47: 'local_size' : can only apply to 'in'
ERROR: 0:47: 'local_size' : can only apply to 'in'
ERROR: 0:47: 'local_size' : can only apply to 'in'
ERROR: 0:61: 'assign' : l-value required "ro" (can't modify a readonly buffer)
ERROR: 0:43: 'in' : global storage input qualifier cannot be used in a compute shader
ERROR: 0:43: 'location qualifier on input' : not supported in this stage: compute
ERROR: 0:44: 'in' : global storage input qualifier cannot be used in a compute shader
ERROR: 0:45: 'out' : global storage output qualifier cannot be used in a compute shader
ERROR: 0:48: 'shared' : cannot apply layout qualifiers to a shared variable
ERROR: 0:48: 'location' : can only appy to uniform, buffer, in, or out storage qualifiers
ERROR: 0:49: 'shared' : cannot initialize this type of qualifier
ERROR: 0:51: 'local_size' : can only apply to 'in'
ERROR: 0:51: 'local_size' : can only apply to 'in'
ERROR: 0:51: 'local_size' : can only apply to 'in'
ERROR: 0:65: 'assign' : l-value required "ro" (can't modify a readonly buffer)
ERROR: 14 compilation errors. No code generated.
@@ -42,24 +42,33 @@ ERROR: node is still EOpNull!
0:36 Constant:
0:36 1 (const uint)
0:36 'gl_LocalInvocationIndex' (in uint)
0:59 Function Definition: foo( (void)
0:59 Function Parameters:
0:61 Sequence
0:61 move second child to first child (float)
0:61 direct index (layout(column_major shared ) float)
0:61 values: direct index for structure (layout(column_major shared ) buffer implicitly-sized array of float)
0:61 'ro' (layout(column_major shared ) readonly buffer block{layout(column_major shared ) buffer int value, layout(column_major shared ) buffer implicitly-sized array of float values})
0:61 Constant:
0:61 1 (const int)
0:61 Constant:
0:61 2 (const int)
0:61 Constant:
0:61 4.700000
0:62 array length (int)
0:62 values: direct index for structure (layout(column_major shared ) buffer implicitly-sized array of float)
0:62 'ro' (layout(column_major shared ) readonly buffer block{layout(column_major shared ) buffer int value, layout(column_major shared ) buffer implicitly-sized array of float values})
0:62 Constant:
0:62 1 (const int)
0:39 Test condition and select (void)
0:39 Condition
0:39 Compare Greater Than (bool)
0:39 'a' (int)
0:39 Constant:
0:39 10 (const int)
0:39 true case
0:40 Barrier (void)
0:63 Function Definition: foo( (void)
0:63 Function Parameters:
0:65 Sequence
0:65 move second child to first child (float)
0:65 direct index (layout(column_major shared ) float)
0:65 values: direct index for structure (layout(column_major shared ) buffer implicitly-sized array of float)
0:65 'ro' (layout(column_major shared ) readonly buffer block{layout(column_major shared ) buffer int value, layout(column_major shared ) buffer implicitly-sized array of float values})
0:65 Constant:
0:65 1 (const int)
0:65 Constant:
0:65 2 (const int)
0:65 Constant:
0:65 4.700000
0:66 array length (int)
0:66 values: direct index for structure (layout(column_major shared ) buffer implicitly-sized array of float)
0:66 'ro' (layout(column_major shared ) readonly buffer block{layout(column_major shared ) buffer int value, layout(column_major shared ) buffer implicitly-sized array of float values})
0:66 Constant:
0:66 1 (const int)
0:67 Barrier (void)
0:? Linker Objects
0:? 'gl_WorkGroupSize' (const 3-component vector of uint)
0:? 2 (const uint)
@@ -109,24 +118,33 @@ ERROR: node is still EOpNull!
0:36 Constant:
0:36 1 (const uint)
0:36 'gl_LocalInvocationIndex' (in uint)
0:59 Function Definition: foo( (void)
0:59 Function Parameters:
0:61 Sequence
0:61 move second child to first child (float)
0:61 direct index (layout(column_major shared ) float)
0:61 values: direct index for structure (layout(column_major shared ) buffer implicitly-sized array of float)
0:61 'ro' (layout(column_major shared ) readonly buffer block{layout(column_major shared ) buffer int value, layout(column_major shared ) buffer implicitly-sized array of float values})
0:61 Constant:
0:61 1 (const int)
0:61 Constant:
0:61 2 (const int)
0:61 Constant:
0:61 4.700000
0:62 array length (int)
0:62 values: direct index for structure (layout(column_major shared ) buffer implicitly-sized array of float)
0:62 'ro' (layout(column_major shared ) readonly buffer block{layout(column_major shared ) buffer int value, layout(column_major shared ) buffer implicitly-sized array of float values})
0:62 Constant:
0:62 1 (const int)
0:39 Test condition and select (void)
0:39 Condition
0:39 Compare Greater Than (bool)
0:39 'a' (int)
0:39 Constant:
0:39 10 (const int)
0:39 true case
0:40 Barrier (void)
0:63 Function Definition: foo( (void)
0:63 Function Parameters:
0:65 Sequence
0:65 move second child to first child (float)
0:65 direct index (layout(column_major shared ) float)
0:65 values: direct index for structure (layout(column_major shared ) buffer implicitly-sized array of float)
0:65 'ro' (layout(column_major shared ) readonly buffer block{layout(column_major shared ) buffer int value, layout(column_major shared ) buffer implicitly-sized array of float values})
0:65 Constant:
0:65 1 (const int)
0:65 Constant:
0:65 2 (const int)
0:65 Constant:
0:65 4.700000
0:66 array length (int)
0:66 values: direct index for structure (layout(column_major shared ) buffer implicitly-sized array of float)
0:66 'ro' (layout(column_major shared ) readonly buffer block{layout(column_major shared ) buffer int value, layout(column_major shared ) buffer implicitly-sized array of float values})
0:66 Constant:
0:66 1 (const int)
0:67 Barrier (void)
0:? Linker Objects
0:? 'gl_WorkGroupSize' (const 3-component vector of uint)
0:? 2 (const uint)