Implement GL_EXT_vulkan_glsl_relaxed option

This commit is contained in:
will brown
2020-06-09 20:43:48 -04:00
committed by Malcolm Bechard
parent 159b057080
commit ecc9b9149f
43 changed files with 6707 additions and 111 deletions

View File

@@ -0,0 +1,787 @@
iomap.crossStage.2.vert
Shader version: 460
0:? Sequence
0:32 Function Definition: main( ( global void)
0:32 Function Parameters:
0:34 Sequence
0:34 move second child to first child ( temp 4-component vector of float)
0:34 'vgo1' ( smooth out 4-component vector of float)
0:34 Constant:
0:34 0.000000
0:34 0.000000
0:34 0.000000
0:34 0.000000
0:35 move second child to first child ( temp 2-component vector of float)
0:35 'vgo2' ( smooth out 2-component vector of float)
0:35 Constant:
0:35 0.000000
0:35 0.000000
0:36 move second child to first child ( temp 4-component vector of float)
0:36 o3: direct index for structure ( out 4-component vector of float)
0:36 'anon@0' (layout( location=5) out block{ out 4-component vector of float o3})
0:36 Constant:
0:36 0 (const uint)
0:36 Constant:
0:36 0.000000
0:36 0.000000
0:36 0.000000
0:36 0.000000
0:? Linker Objects
0:? 'vgo1' ( smooth out 4-component vector of float)
0:? 'vgo2' ( smooth out 2-component vector of float)
0:? 'anon@0' (layout( location=5) out block{ out 4-component vector of float o3})
0:? 'u1' ( uniform 2-component vector of float)
0:? 'u2' ( uniform 3-component vector of float)
0:? 0.000000
0:? 0.000000
0:? 0.000000
0:? 'u3' ( uniform 4-component vector of float)
0:? 0.000000
0:? 0.000000
0:? 0.000000
0:? 0.000000
0:? 'um2' ( uniform 2X2 matrix of float)
0:? 4.000000
0:? 0.000000
0:? 0.000000
0:? 4.000000
0:? 'glass' (layout( location=0 binding=0) uniform sampler2D)
0:? 'anon@1' (layout( column_major std140) uniform block{layout( column_major std140) uniform 4-component vector of float a, layout( column_major std140) uniform 4-component vector of float b})
0:? 'anon@2' (layout( column_major std430) buffer block{layout( column_major std430) buffer 2-component vector of float vb1})
0:? 'blockName1' (layout( column_major std140) uniform 2-element array of block{layout( column_major std140) uniform 4-component vector of float a, layout( column_major std140) uniform 2-component vector of float b})
0:? 'gl_VertexID' ( gl_VertexId int VertexId)
0:? 'gl_InstanceID' ( gl_InstanceId int InstanceId)
iomap.crossStage.2.geom
Shader version: 460
invocations = -1
max_vertices = 3
input primitive = points
output primitive = triangle_strip
0:? Sequence
0:29 Function Definition: main( ( global void)
0:29 Function Parameters:
0:31 Sequence
0:31 Sequence
0:31 Sequence
0:31 move second child to first child ( temp int)
0:31 'i' ( temp int)
0:31 Constant:
0:31 0 (const int)
0:31 Loop with condition tested first
0:31 Loop Condition
0:31 Compare Less Than ( temp bool)
0:31 'i' ( temp int)
0:31 Constant:
0:31 3 (const int)
0:31 Loop Body
0:32 Sequence
0:32 move second child to first child ( temp 4-component vector of float)
0:32 'gfo1' (layout( stream=0) out 4-component vector of float)
0:32 Constant:
0:32 0.000000
0:32 0.000000
0:32 0.000000
0:32 0.000000
0:33 move second child to first child ( temp 2-component vector of float)
0:33 'gfo2' (layout( stream=0) out 2-component vector of float)
0:33 Constant:
0:33 0.000000
0:33 0.000000
0:34 move second child to first child ( temp 4-component vector of float)
0:34 o3: direct index for structure (layout( stream=0) out 4-component vector of float)
0:34 'gf_out' (layout( location=5 stream=0) out block{layout( stream=0) out 4-component vector of float o3})
0:34 Constant:
0:34 0 (const int)
0:34 o3: direct index for structure ( in 4-component vector of float)
0:34 indirect index (layout( location=5) temp block{ in 4-component vector of float o3})
0:34 'inBlock' (layout( location=5) in 1-element array of block{ in 4-component vector of float o3})
0:34 'i' ( temp int)
0:34 Constant:
0:34 0 (const int)
0:35 EmitVertex ( global void)
0:31 Loop Terminal Expression
0:31 Post-Increment ( temp int)
0:31 'i' ( temp int)
0:37 EndPrimitive ( global void)
0:? Linker Objects
0:? 'vgo1' ( in 1-element array of 4-component vector of float)
0:? 'vgo2' ( in 1-element array of 2-component vector of float)
0:? 'inBlock' (layout( location=5) in 1-element array of block{ in 4-component vector of float o3})
0:? 'gfo1' (layout( stream=0) out 4-component vector of float)
0:? 'gfo2' (layout( stream=0) out 2-component vector of float)
0:? 'gf_out' (layout( location=5 stream=0) out block{layout( stream=0) out 4-component vector of float o3})
0:? 'u1' ( uniform 2-component vector of float)
0:? 'u2' ( uniform 3-component vector of float)
0:? 0.000000
0:? 0.000000
0:? 0.000000
0:? 'u3' ( uniform 4-component vector of float)
0:? 0.000000
0:? 0.000000
0:? 0.000000
0:? 0.000000
0:? 'blockName1' (layout( column_major std140) uniform 2-element array of block{layout( column_major std140) uniform 4-component vector of float a, layout( column_major std140) uniform 2-component vector of float b})
iomap.crossStage.2.frag
Shader version: 460
0:? Sequence
0:37 Function Definition: main( ( global void)
0:37 Function Parameters:
0:39 Sequence
0:39 Sequence
0:39 move second child to first child ( temp 4-component vector of float)
0:39 'color' ( temp 4-component vector of float)
0:39 component-wise multiply ( temp 4-component vector of float)
0:39 component-wise multiply ( temp 4-component vector of float)
0:39 component-wise multiply ( temp 4-component vector of float)
0:39 'gfo1' ( smooth in 4-component vector of float)
0:39 vector swizzle ( temp 4-component vector of float)
0:39 'u1' ( uniform 2-component vector of float)
0:39 Sequence
0:39 Constant:
0:39 0 (const int)
0:39 Constant:
0:39 1 (const int)
0:39 Constant:
0:39 0 (const int)
0:39 Constant:
0:39 1 (const int)
0:39 vector swizzle ( temp 4-component vector of float)
0:39 'u2' ( uniform 3-component vector of float)
0:39 Sequence
0:39 Constant:
0:39 0 (const int)
0:39 Constant:
0:39 1 (const int)
0:39 Constant:
0:39 2 (const int)
0:39 Constant:
0:39 0 (const int)
0:39 vector swizzle ( temp 4-component vector of float)
0:39 'u3' ( uniform 4-component vector of float)
0:39 0.000000
0:39 0.000000
0:39 0.000000
0:39 0.000000
0:39 Sequence
0:39 Constant:
0:39 0 (const int)
0:39 Constant:
0:39 1 (const int)
0:39 Constant:
0:39 2 (const int)
0:39 Constant:
0:39 3 (const int)
0:40 move second child to first child ( temp 4-component vector of float)
0:40 'outColor' ( out 4-component vector of float)
0:40 'color' ( temp 4-component vector of float)
0:? Linker Objects
0:? 'anon@0' (layout( location=5) in block{ in 4-component vector of float o3})
0:? 'gfo1' ( smooth in 4-component vector of float)
0:? 'gfo2' ( smooth in 2-component vector of float)
0:? 'outColor' ( out 4-component vector of float)
0:? 'u1' ( uniform 2-component vector of float)
0:? 'u2' ( uniform 3-component vector of float)
0:? 'u3' ( uniform 4-component vector of float)
0:? 0.000000
0:? 0.000000
0:? 0.000000
0:? 0.000000
0:? 'um2' ( uniform 2X2 matrix of float)
0:? 4.000000
0:? 0.000000
0:? 0.000000
0:? 4.000000
0:? 'glass' (layout( location=0 binding=0) uniform sampler2D)
0:? 'anon@1' (layout( column_major std140) uniform block{layout( column_major std140) uniform 4-component vector of float a, layout( column_major std140) uniform 4-component vector of float b})
0:? 'anon@2' (layout( column_major std430) buffer block{layout( column_major std430) buffer 2-component vector of float fb1})
0:? 'blockName2' (layout( column_major std140) uniform 2-element array of block{layout( column_major std140) uniform 4-component vector of float a, layout( column_major std140) uniform 2-component vector of float b})
Linked vertex stage:
Linked geometry stage:
Linked fragment stage:
WARNING: Linking unknown stage stage: Matched shader interfaces are using different instance names.
blockName1: "layout( column_major std140) uniform 2-element array of block{layout( column_major std140) uniform 4-component vector of float a, layout( column_major std140) uniform 2-component vector of float b}" versus blockName2: "layout( column_major std140) uniform 2-element array of block{layout( column_major std140) uniform 4-component vector of float a, layout( column_major std140) uniform 2-component vector of float b}"
Shader version: 460
0:? Sequence
0:32 Function Definition: main( ( global void)
0:32 Function Parameters:
0:34 Sequence
0:34 move second child to first child ( temp 4-component vector of float)
0:34 'vgo1' ( smooth out 4-component vector of float)
0:34 Constant:
0:34 0.000000
0:34 0.000000
0:34 0.000000
0:34 0.000000
0:35 move second child to first child ( temp 2-component vector of float)
0:35 'vgo2' ( smooth out 2-component vector of float)
0:35 Constant:
0:35 0.000000
0:35 0.000000
0:36 move second child to first child ( temp 4-component vector of float)
0:36 o3: direct index for structure ( out 4-component vector of float)
0:36 'anon@0' (layout( location=5) out block{ out 4-component vector of float o3})
0:36 Constant:
0:36 0 (const uint)
0:36 Constant:
0:36 0.000000
0:36 0.000000
0:36 0.000000
0:36 0.000000
0:? Linker Objects
0:? 'vgo1' ( smooth out 4-component vector of float)
0:? 'vgo2' ( smooth out 2-component vector of float)
0:? 'anon@0' (layout( location=5) out block{ out 4-component vector of float o3})
0:? 'u1' ( uniform 2-component vector of float)
0:? 'u2' ( uniform 3-component vector of float)
0:? 0.000000
0:? 0.000000
0:? 0.000000
0:? 'u3' ( uniform 4-component vector of float)
0:? 0.000000
0:? 0.000000
0:? 0.000000
0:? 0.000000
0:? 'um2' ( uniform 2X2 matrix of float)
0:? 4.000000
0:? 0.000000
0:? 0.000000
0:? 4.000000
0:? 'glass' (layout( location=0 binding=0) uniform sampler2D)
0:? 'anon@1' (layout( column_major std140) uniform block{layout( column_major std140) uniform 4-component vector of float a, layout( column_major std140) uniform 4-component vector of float b})
0:? 'anon@2' (layout( column_major std430) buffer block{layout( column_major std430) buffer 2-component vector of float vb1})
0:? 'blockName1' (layout( column_major std140) uniform 2-element array of block{layout( column_major std140) uniform 4-component vector of float a, layout( column_major std140) uniform 2-component vector of float b})
0:? 'gl_VertexID' ( gl_VertexId int VertexId)
0:? 'gl_InstanceID' ( gl_InstanceId int InstanceId)
Shader version: 460
invocations = 1
max_vertices = 3
input primitive = points
output primitive = triangle_strip
0:? Sequence
0:29 Function Definition: main( ( global void)
0:29 Function Parameters:
0:31 Sequence
0:31 Sequence
0:31 Sequence
0:31 move second child to first child ( temp int)
0:31 'i' ( temp int)
0:31 Constant:
0:31 0 (const int)
0:31 Loop with condition tested first
0:31 Loop Condition
0:31 Compare Less Than ( temp bool)
0:31 'i' ( temp int)
0:31 Constant:
0:31 3 (const int)
0:31 Loop Body
0:32 Sequence
0:32 move second child to first child ( temp 4-component vector of float)
0:32 'gfo1' (layout( stream=0) out 4-component vector of float)
0:32 Constant:
0:32 0.000000
0:32 0.000000
0:32 0.000000
0:32 0.000000
0:33 move second child to first child ( temp 2-component vector of float)
0:33 'gfo2' (layout( stream=0) out 2-component vector of float)
0:33 Constant:
0:33 0.000000
0:33 0.000000
0:34 move second child to first child ( temp 4-component vector of float)
0:34 o3: direct index for structure (layout( stream=0) out 4-component vector of float)
0:34 'gf_out' (layout( location=5 stream=0) out block{layout( stream=0) out 4-component vector of float o3})
0:34 Constant:
0:34 0 (const int)
0:34 o3: direct index for structure ( in 4-component vector of float)
0:34 indirect index (layout( location=5) temp block{ in 4-component vector of float o3})
0:34 'inBlock' (layout( location=5) in 1-element array of block{ in 4-component vector of float o3})
0:34 'i' ( temp int)
0:34 Constant:
0:34 0 (const int)
0:35 EmitVertex ( global void)
0:31 Loop Terminal Expression
0:31 Post-Increment ( temp int)
0:31 'i' ( temp int)
0:37 EndPrimitive ( global void)
0:? Linker Objects
0:? 'vgo1' ( in 1-element array of 4-component vector of float)
0:? 'vgo2' ( in 1-element array of 2-component vector of float)
0:? 'inBlock' (layout( location=5) in 1-element array of block{ in 4-component vector of float o3})
0:? 'gfo1' (layout( stream=0) out 4-component vector of float)
0:? 'gfo2' (layout( stream=0) out 2-component vector of float)
0:? 'gf_out' (layout( location=5 stream=0) out block{layout( stream=0) out 4-component vector of float o3})
0:? 'u1' ( uniform 2-component vector of float)
0:? 'u2' ( uniform 3-component vector of float)
0:? 0.000000
0:? 0.000000
0:? 0.000000
0:? 'u3' ( uniform 4-component vector of float)
0:? 0.000000
0:? 0.000000
0:? 0.000000
0:? 0.000000
0:? 'blockName1' (layout( column_major std140) uniform 2-element array of block{layout( column_major std140) uniform 4-component vector of float a, layout( column_major std140) uniform 2-component vector of float b})
Shader version: 460
0:? Sequence
0:37 Function Definition: main( ( global void)
0:37 Function Parameters:
0:39 Sequence
0:39 Sequence
0:39 move second child to first child ( temp 4-component vector of float)
0:39 'color' ( temp 4-component vector of float)
0:39 component-wise multiply ( temp 4-component vector of float)
0:39 component-wise multiply ( temp 4-component vector of float)
0:39 component-wise multiply ( temp 4-component vector of float)
0:39 'gfo1' ( smooth in 4-component vector of float)
0:39 vector swizzle ( temp 4-component vector of float)
0:39 'u1' ( uniform 2-component vector of float)
0:39 Sequence
0:39 Constant:
0:39 0 (const int)
0:39 Constant:
0:39 1 (const int)
0:39 Constant:
0:39 0 (const int)
0:39 Constant:
0:39 1 (const int)
0:39 vector swizzle ( temp 4-component vector of float)
0:39 'u2' ( uniform 3-component vector of float)
0:39 Sequence
0:39 Constant:
0:39 0 (const int)
0:39 Constant:
0:39 1 (const int)
0:39 Constant:
0:39 2 (const int)
0:39 Constant:
0:39 0 (const int)
0:39 vector swizzle ( temp 4-component vector of float)
0:39 'u3' ( uniform 4-component vector of float)
0:39 0.000000
0:39 0.000000
0:39 0.000000
0:39 0.000000
0:39 Sequence
0:39 Constant:
0:39 0 (const int)
0:39 Constant:
0:39 1 (const int)
0:39 Constant:
0:39 2 (const int)
0:39 Constant:
0:39 3 (const int)
0:40 move second child to first child ( temp 4-component vector of float)
0:40 'outColor' ( out 4-component vector of float)
0:40 'color' ( temp 4-component vector of float)
0:? Linker Objects
0:? 'anon@0' (layout( location=5) in block{ in 4-component vector of float o3})
0:? 'gfo1' ( smooth in 4-component vector of float)
0:? 'gfo2' ( smooth in 2-component vector of float)
0:? 'outColor' ( out 4-component vector of float)
0:? 'u1' ( uniform 2-component vector of float)
0:? 'u2' ( uniform 3-component vector of float)
0:? 'u3' ( uniform 4-component vector of float)
0:? 0.000000
0:? 0.000000
0:? 0.000000
0:? 0.000000
0:? 'um2' ( uniform 2X2 matrix of float)
0:? 4.000000
0:? 0.000000
0:? 0.000000
0:? 4.000000
0:? 'glass' (layout( location=0 binding=0) uniform sampler2D)
0:? 'anon@1' (layout( column_major std140) uniform block{layout( column_major std140) uniform 4-component vector of float a, layout( column_major std140) uniform 4-component vector of float b})
0:? 'anon@2' (layout( column_major std430) buffer block{layout( column_major std430) buffer 2-component vector of float fb1})
0:? 'blockName2' (layout( column_major std140) uniform 2-element array of block{layout( column_major std140) uniform 4-component vector of float a, layout( column_major std140) uniform 2-component vector of float b})
// Module Version 10000
// Generated by (magic number): 8000a
// Id's are bound by 56
Capability Shader
1: ExtInstImport "GLSL.std.450"
MemoryModel Logical GLSL450
EntryPoint Vertex 4 "main" 9 14 18 54 55
Source GLSL 460
Name 4 "main"
Name 9 "vgo1"
Name 14 "vgo2"
Name 16 "outBlock"
MemberName 16(outBlock) 0 "o3"
Name 18 ""
Name 23 "u1"
Name 27 "u2"
Name 29 "u3"
Name 36 "um2"
Name 40 "glass"
Name 41 "crossStageBlock1"
MemberName 41(crossStageBlock1) 0 "a"
MemberName 41(crossStageBlock1) 1 "b"
Name 43 ""
Name 44 "vertOnlyBlock"
MemberName 44(vertOnlyBlock) 0 "vb1"
Name 46 ""
Name 47 "crossStageBlock2"
MemberName 47(crossStageBlock2) 0 "a"
MemberName 47(crossStageBlock2) 1 "b"
Name 52 "blockName1"
Name 54 "gl_VertexID"
Name 55 "gl_InstanceID"
Decorate 9(vgo1) Location 0
Decorate 14(vgo2) Location 1
Decorate 16(outBlock) Block
Decorate 18 Location 5
Decorate 23(u1) Location 1
Decorate 23(u1) DescriptorSet 0
Decorate 27(u2) Location 2
Decorate 27(u2) DescriptorSet 0
Decorate 29(u3) Location 3
Decorate 29(u3) DescriptorSet 0
Decorate 36(um2) Location 4
Decorate 36(um2) DescriptorSet 0
Decorate 40(glass) Location 0
Decorate 40(glass) DescriptorSet 0
Decorate 40(glass) Binding 0
MemberDecorate 41(crossStageBlock1) 0 Offset 0
MemberDecorate 41(crossStageBlock1) 1 Offset 16
Decorate 41(crossStageBlock1) Block
Decorate 43 DescriptorSet 0
Decorate 43 Binding 0
MemberDecorate 44(vertOnlyBlock) 0 Offset 0
Decorate 44(vertOnlyBlock) BufferBlock
Decorate 46 DescriptorSet 0
Decorate 46 Binding 0
MemberDecorate 47(crossStageBlock2) 0 Offset 0
MemberDecorate 47(crossStageBlock2) 1 Offset 16
Decorate 47(crossStageBlock2) Block
Decorate 52(blockName1) DescriptorSet 0
Decorate 52(blockName1) Binding 0
Decorate 54(gl_VertexID) BuiltIn VertexId
Decorate 55(gl_InstanceID) BuiltIn InstanceId
2: TypeVoid
3: TypeFunction 2
6: TypeFloat 32
7: TypeVector 6(float) 4
8: TypePointer Output 7(fvec4)
9(vgo1): 8(ptr) Variable Output
10: 6(float) Constant 0
11: 7(fvec4) ConstantComposite 10 10 10 10
12: TypeVector 6(float) 2
13: TypePointer Output 12(fvec2)
14(vgo2): 13(ptr) Variable Output
15: 12(fvec2) ConstantComposite 10 10
16(outBlock): TypeStruct 7(fvec4)
17: TypePointer Output 16(outBlock)
18: 17(ptr) Variable Output
19: TypeInt 32 1
20: 19(int) Constant 0
22: TypePointer UniformConstant 12(fvec2)
23(u1): 22(ptr) Variable UniformConstant
24: TypeVector 6(float) 3
25: 24(fvec3) ConstantComposite 10 10 10
26: TypePointer UniformConstant 24(fvec3)
27(u2): 26(ptr) Variable UniformConstant 25
28: TypePointer UniformConstant 7(fvec4)
29(u3): 28(ptr) Variable UniformConstant 11
30: TypeMatrix 12(fvec2) 2
31: 6(float) Constant 1082130432
32: 12(fvec2) ConstantComposite 31 10
33: 12(fvec2) ConstantComposite 10 31
34: 30 ConstantComposite 32 33
35: TypePointer UniformConstant 30
36(um2): 35(ptr) Variable UniformConstant 34
37: TypeImage 6(float) 2D sampled format:Unknown
38: TypeSampledImage 37
39: TypePointer UniformConstant 38
40(glass): 39(ptr) Variable UniformConstant
41(crossStageBlock1): TypeStruct 7(fvec4) 7(fvec4)
42: TypePointer Uniform 41(crossStageBlock1)
43: 42(ptr) Variable Uniform
44(vertOnlyBlock): TypeStruct 12(fvec2)
45: TypePointer Uniform 44(vertOnlyBlock)
46: 45(ptr) Variable Uniform
47(crossStageBlock2): TypeStruct 7(fvec4) 12(fvec2)
48: TypeInt 32 0
49: 48(int) Constant 2
50: TypeArray 47(crossStageBlock2) 49
51: TypePointer Uniform 50
52(blockName1): 51(ptr) Variable Uniform
53: TypePointer Input 19(int)
54(gl_VertexID): 53(ptr) Variable Input
55(gl_InstanceID): 53(ptr) Variable Input
4(main): 2 Function None 3
5: Label
Store 9(vgo1) 11
Store 14(vgo2) 15
21: 8(ptr) AccessChain 18 20
Store 21 11
Return
FunctionEnd
// Module Version 10000
// Generated by (magic number): 8000a
// Id's are bound by 65
Capability Geometry
1: ExtInstImport "GLSL.std.450"
MemoryModel Logical GLSL450
EntryPoint Geometry 4 "main" 22 27 31 37 48 51
ExecutionMode 4 InputPoints
ExecutionMode 4 Invocations 1
ExecutionMode 4 OutputTriangleStrip
ExecutionMode 4 OutputVertices 3
Source GLSL 460
Name 4 "main"
Name 8 "i"
Name 22 "gfo1"
Name 27 "gfo2"
Name 29 "outBlock"
MemberName 29(outBlock) 0 "o3"
Name 31 "gf_out"
Name 32 "outBlock"
MemberName 32(outBlock) 0 "o3"
Name 37 "inBlock"
Name 48 "vgo1"
Name 51 "vgo2"
Name 53 "u1"
Name 57 "u2"
Name 59 "u3"
Name 60 "crossStageBlock2"
MemberName 60(crossStageBlock2) 0 "a"
MemberName 60(crossStageBlock2) 1 "b"
Name 64 "blockName1"
Decorate 22(gfo1) Location 0
Decorate 27(gfo2) Location 1
Decorate 29(outBlock) Block
Decorate 31(gf_out) Location 5
Decorate 32(outBlock) Block
Decorate 37(inBlock) Location 5
Decorate 48(vgo1) Location 0
Decorate 51(vgo2) Location 1
Decorate 53(u1) Location 1
Decorate 53(u1) DescriptorSet 0
Decorate 57(u2) Location 2
Decorate 57(u2) DescriptorSet 0
Decorate 59(u3) Location 3
Decorate 59(u3) DescriptorSet 0
MemberDecorate 60(crossStageBlock2) 0 Offset 0
MemberDecorate 60(crossStageBlock2) 1 Offset 16
Decorate 60(crossStageBlock2) Block
Decorate 64(blockName1) DescriptorSet 0
Decorate 64(blockName1) Binding 0
2: TypeVoid
3: TypeFunction 2
6: TypeInt 32 1
7: TypePointer Function 6(int)
9: 6(int) Constant 0
16: 6(int) Constant 3
17: TypeBool
19: TypeFloat 32
20: TypeVector 19(float) 4
21: TypePointer Output 20(fvec4)
22(gfo1): 21(ptr) Variable Output
23: 19(float) Constant 0
24: 20(fvec4) ConstantComposite 23 23 23 23
25: TypeVector 19(float) 2
26: TypePointer Output 25(fvec2)
27(gfo2): 26(ptr) Variable Output
28: 25(fvec2) ConstantComposite 23 23
29(outBlock): TypeStruct 20(fvec4)
30: TypePointer Output 29(outBlock)
31(gf_out): 30(ptr) Variable Output
32(outBlock): TypeStruct 20(fvec4)
33: TypeInt 32 0
34: 33(int) Constant 1
35: TypeArray 32(outBlock) 34
36: TypePointer Input 35
37(inBlock): 36(ptr) Variable Input
39: TypePointer Input 20(fvec4)
44: 6(int) Constant 1
46: TypeArray 20(fvec4) 34
47: TypePointer Input 46
48(vgo1): 47(ptr) Variable Input
49: TypeArray 25(fvec2) 34
50: TypePointer Input 49
51(vgo2): 50(ptr) Variable Input
52: TypePointer UniformConstant 25(fvec2)
53(u1): 52(ptr) Variable UniformConstant
54: TypeVector 19(float) 3
55: 54(fvec3) ConstantComposite 23 23 23
56: TypePointer UniformConstant 54(fvec3)
57(u2): 56(ptr) Variable UniformConstant 55
58: TypePointer UniformConstant 20(fvec4)
59(u3): 58(ptr) Variable UniformConstant 24
60(crossStageBlock2): TypeStruct 20(fvec4) 25(fvec2)
61: 33(int) Constant 2
62: TypeArray 60(crossStageBlock2) 61
63: TypePointer Uniform 62
64(blockName1): 63(ptr) Variable Uniform
4(main): 2 Function None 3
5: Label
8(i): 7(ptr) Variable Function
Store 8(i) 9
Branch 10
10: Label
LoopMerge 12 13 None
Branch 14
14: Label
15: 6(int) Load 8(i)
18: 17(bool) SLessThan 15 16
BranchConditional 18 11 12
11: Label
Store 22(gfo1) 24
Store 27(gfo2) 28
38: 6(int) Load 8(i)
40: 39(ptr) AccessChain 37(inBlock) 38 9
41: 20(fvec4) Load 40
42: 21(ptr) AccessChain 31(gf_out) 9
Store 42 41
EmitVertex
Branch 13
13: Label
43: 6(int) Load 8(i)
45: 6(int) IAdd 43 44
Store 8(i) 45
Branch 10
12: Label
EndPrimitive
Return
FunctionEnd
// Module Version 10000
// Generated by (magic number): 8000a
// Id's are bound by 62
Capability Shader
1: ExtInstImport "GLSL.std.450"
MemoryModel Logical GLSL450
EntryPoint Fragment 4 "main" 11 32 36 38
ExecutionMode 4 OriginLowerLeft
Source GLSL 460
Name 4 "main"
Name 9 "color"
Name 11 "gfo1"
Name 15 "u1"
Name 21 "u2"
Name 28 "u3"
Name 32 "outColor"
Name 34 "outBlock"
MemberName 34(outBlock) 0 "o3"
Name 36 ""
Name 38 "gfo2"
Name 45 "um2"
Name 49 "glass"
Name 50 "crossStageBlock1"
MemberName 50(crossStageBlock1) 0 "a"
MemberName 50(crossStageBlock1) 1 "b"
Name 52 ""
Name 53 "fragOnlyBlock"
MemberName 53(fragOnlyBlock) 0 "fb1"
Name 55 ""
Name 56 "crossStageBlock2"
MemberName 56(crossStageBlock2) 0 "a"
MemberName 56(crossStageBlock2) 1 "b"
Name 61 "blockName2"
Decorate 11(gfo1) Location 0
Decorate 15(u1) Location 1
Decorate 15(u1) DescriptorSet 0
Decorate 21(u2) Location 2
Decorate 21(u2) DescriptorSet 0
Decorate 28(u3) Location 3
Decorate 28(u3) DescriptorSet 0
Decorate 32(outColor) Location 0
Decorate 34(outBlock) Block
Decorate 36 Location 5
Decorate 38(gfo2) Location 1
Decorate 45(um2) Location 4
Decorate 45(um2) DescriptorSet 0
Decorate 49(glass) Location 0
Decorate 49(glass) DescriptorSet 0
Decorate 49(glass) Binding 0
MemberDecorate 50(crossStageBlock1) 0 Offset 0
MemberDecorate 50(crossStageBlock1) 1 Offset 16
Decorate 50(crossStageBlock1) Block
Decorate 52 DescriptorSet 0
Decorate 52 Binding 0
MemberDecorate 53(fragOnlyBlock) 0 Offset 0
Decorate 53(fragOnlyBlock) BufferBlock
Decorate 55 DescriptorSet 0
Decorate 55 Binding 0
MemberDecorate 56(crossStageBlock2) 0 Offset 0
MemberDecorate 56(crossStageBlock2) 1 Offset 16
Decorate 56(crossStageBlock2) Block
Decorate 61(blockName2) DescriptorSet 0
Decorate 61(blockName2) Binding 0
2: TypeVoid
3: TypeFunction 2
6: TypeFloat 32
7: TypeVector 6(float) 4
8: TypePointer Function 7(fvec4)
10: TypePointer Input 7(fvec4)
11(gfo1): 10(ptr) Variable Input
13: TypeVector 6(float) 2
14: TypePointer UniformConstant 13(fvec2)
15(u1): 14(ptr) Variable UniformConstant
19: TypeVector 6(float) 3
20: TypePointer UniformConstant 19(fvec3)
21(u2): 20(ptr) Variable UniformConstant
25: 6(float) Constant 0
26: 7(fvec4) ConstantComposite 25 25 25 25
27: TypePointer UniformConstant 7(fvec4)
28(u3): 27(ptr) Variable UniformConstant 26
31: TypePointer Output 7(fvec4)
32(outColor): 31(ptr) Variable Output
34(outBlock): TypeStruct 7(fvec4)
35: TypePointer Input 34(outBlock)
36: 35(ptr) Variable Input
37: TypePointer Input 13(fvec2)
38(gfo2): 37(ptr) Variable Input
39: TypeMatrix 13(fvec2) 2
40: 6(float) Constant 1082130432
41: 13(fvec2) ConstantComposite 40 25
42: 13(fvec2) ConstantComposite 25 40
43: 39 ConstantComposite 41 42
44: TypePointer UniformConstant 39
45(um2): 44(ptr) Variable UniformConstant 43
46: TypeImage 6(float) 2D sampled format:Unknown
47: TypeSampledImage 46
48: TypePointer UniformConstant 47
49(glass): 48(ptr) Variable UniformConstant
50(crossStageBlock1): TypeStruct 7(fvec4) 7(fvec4)
51: TypePointer Uniform 50(crossStageBlock1)
52: 51(ptr) Variable Uniform
53(fragOnlyBlock): TypeStruct 13(fvec2)
54: TypePointer Uniform 53(fragOnlyBlock)
55: 54(ptr) Variable Uniform
56(crossStageBlock2): TypeStruct 7(fvec4) 13(fvec2)
57: TypeInt 32 0
58: 57(int) Constant 2
59: TypeArray 56(crossStageBlock2) 58
60: TypePointer Uniform 59
61(blockName2): 60(ptr) Variable Uniform
4(main): 2 Function None 3
5: Label
9(color): 8(ptr) Variable Function
12: 7(fvec4) Load 11(gfo1)
16: 13(fvec2) Load 15(u1)
17: 7(fvec4) VectorShuffle 16 16 0 1 0 1
18: 7(fvec4) FMul 12 17
22: 19(fvec3) Load 21(u2)
23: 7(fvec4) VectorShuffle 22 22 0 1 2 0
24: 7(fvec4) FMul 18 23
29: 7(fvec4) Load 28(u3)
30: 7(fvec4) FMul 24 29
Store 9(color) 30
33: 7(fvec4) Load 9(color)
Store 32(outColor) 33
Return
FunctionEnd

View File

@@ -0,0 +1,515 @@
iomap.crossStage.vert
Shader version: 460
0:? Sequence
0:32 Function Definition: main( ( global void)
0:32 Function Parameters:
0:34 Sequence
0:34 move second child to first child ( temp 4-component vector of float)
0:34 'o1' ( smooth out 4-component vector of float)
0:34 Constant:
0:34 0.000000
0:34 0.000000
0:34 0.000000
0:34 0.000000
0:35 move second child to first child ( temp 2-component vector of float)
0:35 'o2' ( smooth out 2-component vector of float)
0:35 Constant:
0:35 0.000000
0:35 0.000000
0:36 move second child to first child ( temp 4-component vector of float)
0:36 o3: direct index for structure ( out 4-component vector of float)
0:36 'anon@0' (layout( location=5) out block{ out 4-component vector of float o3})
0:36 Constant:
0:36 0 (const uint)
0:36 Constant:
0:36 0.000000
0:36 0.000000
0:36 0.000000
0:36 0.000000
0:? Linker Objects
0:? 'o1' ( smooth out 4-component vector of float)
0:? 'o2' ( smooth out 2-component vector of float)
0:? 'anon@0' (layout( location=5) out block{ out 4-component vector of float o3})
0:? 'u1' ( uniform 2-component vector of float)
0:? 'u2' ( uniform 3-component vector of float)
0:? 0.000000
0:? 0.000000
0:? 0.000000
0:? 'u3' ( uniform 4-component vector of float)
0:? 0.000000
0:? 0.000000
0:? 0.000000
0:? 0.000000
0:? 'um2' ( uniform 2X2 matrix of float)
0:? 4.000000
0:? 0.000000
0:? 0.000000
0:? 4.000000
0:? 'glass' (layout( location=0 binding=0) uniform sampler2D)
0:? 'anon@1' (layout( column_major std140) uniform block{layout( column_major std140) uniform 4-component vector of float a, layout( column_major std140) uniform 4-component vector of float b})
0:? 'anon@2' (layout( column_major std430) buffer block{layout( column_major std430) buffer 2-component vector of float vb1})
0:? 'blockName1' (layout( column_major std140) uniform 2-element array of block{layout( column_major std140) uniform 4-component vector of float a, layout( column_major std140) uniform 2-component vector of float b})
0:? 'gl_VertexID' ( gl_VertexId int VertexId)
0:? 'gl_InstanceID' ( gl_InstanceId int InstanceId)
iomap.crossStage.frag
Shader version: 460
0:? Sequence
0:36 Function Definition: main( ( global void)
0:36 Function Parameters:
0:38 Sequence
0:38 Sequence
0:38 move second child to first child ( temp 4-component vector of float)
0:38 'color' ( temp 4-component vector of float)
0:38 component-wise multiply ( temp 4-component vector of float)
0:38 component-wise multiply ( temp 4-component vector of float)
0:38 component-wise multiply ( temp 4-component vector of float)
0:38 'o1' ( smooth in 4-component vector of float)
0:38 vector swizzle ( temp 4-component vector of float)
0:38 'u1' ( uniform 2-component vector of float)
0:38 Sequence
0:38 Constant:
0:38 0 (const int)
0:38 Constant:
0:38 1 (const int)
0:38 Constant:
0:38 0 (const int)
0:38 Constant:
0:38 1 (const int)
0:38 vector swizzle ( temp 4-component vector of float)
0:38 'u2' ( uniform 3-component vector of float)
0:38 Sequence
0:38 Constant:
0:38 0 (const int)
0:38 Constant:
0:38 1 (const int)
0:38 Constant:
0:38 2 (const int)
0:38 Constant:
0:38 0 (const int)
0:38 vector swizzle ( temp 4-component vector of float)
0:38 'u3' ( uniform 4-component vector of float)
0:38 0.000000
0:38 0.000000
0:38 0.000000
0:38 0.000000
0:38 Sequence
0:38 Constant:
0:38 0 (const int)
0:38 Constant:
0:38 1 (const int)
0:38 Constant:
0:38 2 (const int)
0:38 Constant:
0:38 3 (const int)
0:39 move second child to first child ( temp 4-component vector of float)
0:39 'outColor' ( out 4-component vector of float)
0:39 'color' ( temp 4-component vector of float)
0:? Linker Objects
0:? 'anon@0' (layout( location=5) in block{ in 4-component vector of float o3})
0:? 'o2' ( smooth in 2-component vector of float)
0:? 'o1' ( smooth in 4-component vector of float)
0:? 'outColor' ( out 4-component vector of float)
0:? 'u1' ( uniform 2-component vector of float)
0:? 'u2' ( uniform 3-component vector of float)
0:? 'u3' ( uniform 4-component vector of float)
0:? 0.000000
0:? 0.000000
0:? 0.000000
0:? 0.000000
0:? 'um2' ( uniform 2X2 matrix of float)
0:? 4.000000
0:? 0.000000
0:? 0.000000
0:? 4.000000
0:? 'glass' (layout( location=0 binding=0) uniform sampler2D)
0:? 'anon@1' (layout( column_major std140) uniform block{layout( column_major std140) uniform 4-component vector of float a, layout( column_major std140) uniform 4-component vector of float b})
0:? 'anon@2' (layout( column_major std430) buffer block{layout( column_major std430) buffer 2-component vector of float fb1})
0:? 'blockName2' (layout( column_major std140) uniform 2-element array of block{layout( column_major std140) uniform 4-component vector of float a, layout( column_major std140) uniform 2-component vector of float b})
Linked vertex stage:
Linked fragment stage:
WARNING: Linking unknown stage stage: Matched shader interfaces are using different instance names.
blockName1: "layout( column_major std140) uniform 2-element array of block{layout( column_major std140) uniform 4-component vector of float a, layout( column_major std140) uniform 2-component vector of float b}" versus blockName2: "layout( column_major std140) uniform 2-element array of block{layout( column_major std140) uniform 4-component vector of float a, layout( column_major std140) uniform 2-component vector of float b}"
Shader version: 460
0:? Sequence
0:32 Function Definition: main( ( global void)
0:32 Function Parameters:
0:34 Sequence
0:34 move second child to first child ( temp 4-component vector of float)
0:34 'o1' ( smooth out 4-component vector of float)
0:34 Constant:
0:34 0.000000
0:34 0.000000
0:34 0.000000
0:34 0.000000
0:35 move second child to first child ( temp 2-component vector of float)
0:35 'o2' ( smooth out 2-component vector of float)
0:35 Constant:
0:35 0.000000
0:35 0.000000
0:36 move second child to first child ( temp 4-component vector of float)
0:36 o3: direct index for structure ( out 4-component vector of float)
0:36 'anon@0' (layout( location=5) out block{ out 4-component vector of float o3})
0:36 Constant:
0:36 0 (const uint)
0:36 Constant:
0:36 0.000000
0:36 0.000000
0:36 0.000000
0:36 0.000000
0:? Linker Objects
0:? 'o1' ( smooth out 4-component vector of float)
0:? 'o2' ( smooth out 2-component vector of float)
0:? 'anon@0' (layout( location=5) out block{ out 4-component vector of float o3})
0:? 'u1' ( uniform 2-component vector of float)
0:? 'u2' ( uniform 3-component vector of float)
0:? 0.000000
0:? 0.000000
0:? 0.000000
0:? 'u3' ( uniform 4-component vector of float)
0:? 0.000000
0:? 0.000000
0:? 0.000000
0:? 0.000000
0:? 'um2' ( uniform 2X2 matrix of float)
0:? 4.000000
0:? 0.000000
0:? 0.000000
0:? 4.000000
0:? 'glass' (layout( location=0 binding=0) uniform sampler2D)
0:? 'anon@1' (layout( column_major std140) uniform block{layout( column_major std140) uniform 4-component vector of float a, layout( column_major std140) uniform 4-component vector of float b})
0:? 'anon@2' (layout( column_major std430) buffer block{layout( column_major std430) buffer 2-component vector of float vb1})
0:? 'blockName1' (layout( column_major std140) uniform 2-element array of block{layout( column_major std140) uniform 4-component vector of float a, layout( column_major std140) uniform 2-component vector of float b})
0:? 'gl_VertexID' ( gl_VertexId int VertexId)
0:? 'gl_InstanceID' ( gl_InstanceId int InstanceId)
Shader version: 460
0:? Sequence
0:36 Function Definition: main( ( global void)
0:36 Function Parameters:
0:38 Sequence
0:38 Sequence
0:38 move second child to first child ( temp 4-component vector of float)
0:38 'color' ( temp 4-component vector of float)
0:38 component-wise multiply ( temp 4-component vector of float)
0:38 component-wise multiply ( temp 4-component vector of float)
0:38 component-wise multiply ( temp 4-component vector of float)
0:38 'o1' ( smooth in 4-component vector of float)
0:38 vector swizzle ( temp 4-component vector of float)
0:38 'u1' ( uniform 2-component vector of float)
0:38 Sequence
0:38 Constant:
0:38 0 (const int)
0:38 Constant:
0:38 1 (const int)
0:38 Constant:
0:38 0 (const int)
0:38 Constant:
0:38 1 (const int)
0:38 vector swizzle ( temp 4-component vector of float)
0:38 'u2' ( uniform 3-component vector of float)
0:38 Sequence
0:38 Constant:
0:38 0 (const int)
0:38 Constant:
0:38 1 (const int)
0:38 Constant:
0:38 2 (const int)
0:38 Constant:
0:38 0 (const int)
0:38 vector swizzle ( temp 4-component vector of float)
0:38 'u3' ( uniform 4-component vector of float)
0:38 0.000000
0:38 0.000000
0:38 0.000000
0:38 0.000000
0:38 Sequence
0:38 Constant:
0:38 0 (const int)
0:38 Constant:
0:38 1 (const int)
0:38 Constant:
0:38 2 (const int)
0:38 Constant:
0:38 3 (const int)
0:39 move second child to first child ( temp 4-component vector of float)
0:39 'outColor' ( out 4-component vector of float)
0:39 'color' ( temp 4-component vector of float)
0:? Linker Objects
0:? 'anon@0' (layout( location=5) in block{ in 4-component vector of float o3})
0:? 'o2' ( smooth in 2-component vector of float)
0:? 'o1' ( smooth in 4-component vector of float)
0:? 'outColor' ( out 4-component vector of float)
0:? 'u1' ( uniform 2-component vector of float)
0:? 'u2' ( uniform 3-component vector of float)
0:? 'u3' ( uniform 4-component vector of float)
0:? 0.000000
0:? 0.000000
0:? 0.000000
0:? 0.000000
0:? 'um2' ( uniform 2X2 matrix of float)
0:? 4.000000
0:? 0.000000
0:? 0.000000
0:? 4.000000
0:? 'glass' (layout( location=0 binding=0) uniform sampler2D)
0:? 'anon@1' (layout( column_major std140) uniform block{layout( column_major std140) uniform 4-component vector of float a, layout( column_major std140) uniform 4-component vector of float b})
0:? 'anon@2' (layout( column_major std430) buffer block{layout( column_major std430) buffer 2-component vector of float fb1})
0:? 'blockName2' (layout( column_major std140) uniform 2-element array of block{layout( column_major std140) uniform 4-component vector of float a, layout( column_major std140) uniform 2-component vector of float b})
// Module Version 10000
// Generated by (magic number): 8000a
// Id's are bound by 56
Capability Shader
1: ExtInstImport "GLSL.std.450"
MemoryModel Logical GLSL450
EntryPoint Vertex 4 "main" 9 14 18 54 55
Source GLSL 460
Name 4 "main"
Name 9 "o1"
Name 14 "o2"
Name 16 "outBlock"
MemberName 16(outBlock) 0 "o3"
Name 18 ""
Name 23 "u1"
Name 27 "u2"
Name 29 "u3"
Name 36 "um2"
Name 40 "glass"
Name 41 "crossStageBlock1"
MemberName 41(crossStageBlock1) 0 "a"
MemberName 41(crossStageBlock1) 1 "b"
Name 43 ""
Name 44 "vertOnlyBlock"
MemberName 44(vertOnlyBlock) 0 "vb1"
Name 46 ""
Name 47 "crossStageBlock2"
MemberName 47(crossStageBlock2) 0 "a"
MemberName 47(crossStageBlock2) 1 "b"
Name 52 "blockName1"
Name 54 "gl_VertexID"
Name 55 "gl_InstanceID"
Decorate 9(o1) Location 0
Decorate 14(o2) Location 1
Decorate 16(outBlock) Block
Decorate 18 Location 5
Decorate 23(u1) Location 1
Decorate 23(u1) DescriptorSet 0
Decorate 27(u2) Location 2
Decorate 27(u2) DescriptorSet 0
Decorate 29(u3) Location 3
Decorate 29(u3) DescriptorSet 0
Decorate 36(um2) Location 4
Decorate 36(um2) DescriptorSet 0
Decorate 40(glass) Location 0
Decorate 40(glass) DescriptorSet 0
Decorate 40(glass) Binding 0
MemberDecorate 41(crossStageBlock1) 0 Offset 0
MemberDecorate 41(crossStageBlock1) 1 Offset 16
Decorate 41(crossStageBlock1) Block
Decorate 43 DescriptorSet 0
Decorate 43 Binding 0
MemberDecorate 44(vertOnlyBlock) 0 Offset 0
Decorate 44(vertOnlyBlock) BufferBlock
Decorate 46 DescriptorSet 0
Decorate 46 Binding 0
MemberDecorate 47(crossStageBlock2) 0 Offset 0
MemberDecorate 47(crossStageBlock2) 1 Offset 16
Decorate 47(crossStageBlock2) Block
Decorate 52(blockName1) DescriptorSet 0
Decorate 52(blockName1) Binding 0
Decorate 54(gl_VertexID) BuiltIn VertexId
Decorate 55(gl_InstanceID) BuiltIn InstanceId
2: TypeVoid
3: TypeFunction 2
6: TypeFloat 32
7: TypeVector 6(float) 4
8: TypePointer Output 7(fvec4)
9(o1): 8(ptr) Variable Output
10: 6(float) Constant 0
11: 7(fvec4) ConstantComposite 10 10 10 10
12: TypeVector 6(float) 2
13: TypePointer Output 12(fvec2)
14(o2): 13(ptr) Variable Output
15: 12(fvec2) ConstantComposite 10 10
16(outBlock): TypeStruct 7(fvec4)
17: TypePointer Output 16(outBlock)
18: 17(ptr) Variable Output
19: TypeInt 32 1
20: 19(int) Constant 0
22: TypePointer UniformConstant 12(fvec2)
23(u1): 22(ptr) Variable UniformConstant
24: TypeVector 6(float) 3
25: 24(fvec3) ConstantComposite 10 10 10
26: TypePointer UniformConstant 24(fvec3)
27(u2): 26(ptr) Variable UniformConstant 25
28: TypePointer UniformConstant 7(fvec4)
29(u3): 28(ptr) Variable UniformConstant 11
30: TypeMatrix 12(fvec2) 2
31: 6(float) Constant 1082130432
32: 12(fvec2) ConstantComposite 31 10
33: 12(fvec2) ConstantComposite 10 31
34: 30 ConstantComposite 32 33
35: TypePointer UniformConstant 30
36(um2): 35(ptr) Variable UniformConstant 34
37: TypeImage 6(float) 2D sampled format:Unknown
38: TypeSampledImage 37
39: TypePointer UniformConstant 38
40(glass): 39(ptr) Variable UniformConstant
41(crossStageBlock1): TypeStruct 7(fvec4) 7(fvec4)
42: TypePointer Uniform 41(crossStageBlock1)
43: 42(ptr) Variable Uniform
44(vertOnlyBlock): TypeStruct 12(fvec2)
45: TypePointer Uniform 44(vertOnlyBlock)
46: 45(ptr) Variable Uniform
47(crossStageBlock2): TypeStruct 7(fvec4) 12(fvec2)
48: TypeInt 32 0
49: 48(int) Constant 2
50: TypeArray 47(crossStageBlock2) 49
51: TypePointer Uniform 50
52(blockName1): 51(ptr) Variable Uniform
53: TypePointer Input 19(int)
54(gl_VertexID): 53(ptr) Variable Input
55(gl_InstanceID): 53(ptr) Variable Input
4(main): 2 Function None 3
5: Label
Store 9(o1) 11
Store 14(o2) 15
21: 8(ptr) AccessChain 18 20
Store 21 11
Return
FunctionEnd
// Module Version 10000
// Generated by (magic number): 8000a
// Id's are bound by 62
Capability Shader
1: ExtInstImport "GLSL.std.450"
MemoryModel Logical GLSL450
EntryPoint Fragment 4 "main" 11 32 36 38
ExecutionMode 4 OriginLowerLeft
Source GLSL 460
Name 4 "main"
Name 9 "color"
Name 11 "o1"
Name 15 "u1"
Name 21 "u2"
Name 28 "u3"
Name 32 "outColor"
Name 34 "outBlock"
MemberName 34(outBlock) 0 "o3"
Name 36 ""
Name 38 "o2"
Name 45 "um2"
Name 49 "glass"
Name 50 "crossStageBlock1"
MemberName 50(crossStageBlock1) 0 "a"
MemberName 50(crossStageBlock1) 1 "b"
Name 52 ""
Name 53 "fragOnlyBlock"
MemberName 53(fragOnlyBlock) 0 "fb1"
Name 55 ""
Name 56 "crossStageBlock2"
MemberName 56(crossStageBlock2) 0 "a"
MemberName 56(crossStageBlock2) 1 "b"
Name 61 "blockName2"
Decorate 11(o1) Location 0
Decorate 15(u1) Location 1
Decorate 15(u1) DescriptorSet 0
Decorate 21(u2) Location 2
Decorate 21(u2) DescriptorSet 0
Decorate 28(u3) Location 3
Decorate 28(u3) DescriptorSet 0
Decorate 32(outColor) Location 0
Decorate 34(outBlock) Block
Decorate 36 Location 5
Decorate 38(o2) Location 1
Decorate 45(um2) Location 4
Decorate 45(um2) DescriptorSet 0
Decorate 49(glass) Location 0
Decorate 49(glass) DescriptorSet 0
Decorate 49(glass) Binding 0
MemberDecorate 50(crossStageBlock1) 0 Offset 0
MemberDecorate 50(crossStageBlock1) 1 Offset 16
Decorate 50(crossStageBlock1) Block
Decorate 52 DescriptorSet 0
Decorate 52 Binding 0
MemberDecorate 53(fragOnlyBlock) 0 Offset 0
Decorate 53(fragOnlyBlock) BufferBlock
Decorate 55 DescriptorSet 0
Decorate 55 Binding 0
MemberDecorate 56(crossStageBlock2) 0 Offset 0
MemberDecorate 56(crossStageBlock2) 1 Offset 16
Decorate 56(crossStageBlock2) Block
Decorate 61(blockName2) DescriptorSet 0
Decorate 61(blockName2) Binding 0
2: TypeVoid
3: TypeFunction 2
6: TypeFloat 32
7: TypeVector 6(float) 4
8: TypePointer Function 7(fvec4)
10: TypePointer Input 7(fvec4)
11(o1): 10(ptr) Variable Input
13: TypeVector 6(float) 2
14: TypePointer UniformConstant 13(fvec2)
15(u1): 14(ptr) Variable UniformConstant
19: TypeVector 6(float) 3
20: TypePointer UniformConstant 19(fvec3)
21(u2): 20(ptr) Variable UniformConstant
25: 6(float) Constant 0
26: 7(fvec4) ConstantComposite 25 25 25 25
27: TypePointer UniformConstant 7(fvec4)
28(u3): 27(ptr) Variable UniformConstant 26
31: TypePointer Output 7(fvec4)
32(outColor): 31(ptr) Variable Output
34(outBlock): TypeStruct 7(fvec4)
35: TypePointer Input 34(outBlock)
36: 35(ptr) Variable Input
37: TypePointer Input 13(fvec2)
38(o2): 37(ptr) Variable Input
39: TypeMatrix 13(fvec2) 2
40: 6(float) Constant 1082130432
41: 13(fvec2) ConstantComposite 40 25
42: 13(fvec2) ConstantComposite 25 40
43: 39 ConstantComposite 41 42
44: TypePointer UniformConstant 39
45(um2): 44(ptr) Variable UniformConstant 43
46: TypeImage 6(float) 2D sampled format:Unknown
47: TypeSampledImage 46
48: TypePointer UniformConstant 47
49(glass): 48(ptr) Variable UniformConstant
50(crossStageBlock1): TypeStruct 7(fvec4) 7(fvec4)
51: TypePointer Uniform 50(crossStageBlock1)
52: 51(ptr) Variable Uniform
53(fragOnlyBlock): TypeStruct 13(fvec2)
54: TypePointer Uniform 53(fragOnlyBlock)
55: 54(ptr) Variable Uniform
56(crossStageBlock2): TypeStruct 7(fvec4) 13(fvec2)
57: TypeInt 32 0
58: 57(int) Constant 2
59: TypeArray 56(crossStageBlock2) 58
60: TypePointer Uniform 59
61(blockName2): 60(ptr) Variable Uniform
4(main): 2 Function None 3
5: Label
9(color): 8(ptr) Variable Function
12: 7(fvec4) Load 11(o1)
16: 13(fvec2) Load 15(u1)
17: 7(fvec4) VectorShuffle 16 16 0 1 0 1
18: 7(fvec4) FMul 12 17
22: 19(fvec3) Load 21(u2)
23: 7(fvec4) VectorShuffle 22 22 0 1 2 0
24: 7(fvec4) FMul 18 23
29: 7(fvec4) Load 28(u3)
30: 7(fvec4) FMul 24 29
Store 9(color) 30
33: 7(fvec4) Load 9(color)
Store 32(outColor) 33
Return
FunctionEnd

View File

@@ -0,0 +1,720 @@
iomap.crossStage.vk.vert
Shader version: 460
0:? Sequence
0:26 Function Definition: main( ( global void)
0:26 Function Parameters:
0:28 Sequence
0:28 move second child to first child ( temp highp 4-component vector of float)
0:28 'vgo1' ( smooth out highp 4-component vector of float)
0:28 Constant:
0:28 0.000000
0:28 0.000000
0:28 0.000000
0:28 0.000000
0:29 move second child to first child ( temp highp 2-component vector of float)
0:29 'vgo2' ( smooth out highp 2-component vector of float)
0:29 Constant:
0:29 0.000000
0:29 0.000000
0:30 move second child to first child ( temp highp 4-component vector of float)
0:30 o3: direct index for structure ( out highp 4-component vector of float)
0:30 'anon@0' (layout( location=5) out block{ out highp 4-component vector of float o3})
0:30 Constant:
0:30 0 (const uint)
0:30 Constant:
0:30 0.000000
0:30 0.000000
0:30 0.000000
0:30 0.000000
0:? Linker Objects
0:? 'vgo1' ( smooth out highp 4-component vector of float)
0:? 'vgo2' ( smooth out highp 2-component vector of float)
0:? 'anon@0' (layout( location=5) out block{ out highp 4-component vector of float o3})
0:? 'glass' (layout( binding=0) uniform highp sampler2D)
0:? 'anon@1' (layout( column_major std140) uniform block{layout( column_major std140) uniform highp 4-component vector of float a, layout( column_major std140) uniform highp 4-component vector of float b})
0:? 'anon@2' (layout( column_major std430) readonly buffer block{layout( column_major std430) readonly buffer highp 2-component vector of float vb1})
0:? 'blockName1' (layout( column_major std140) uniform 2-element array of block{layout( column_major std140) uniform highp 4-component vector of float a, layout( column_major std140) uniform highp 2-component vector of float b})
iomap.crossStage.vk.geom
Shader version: 460
invocations = -1
max_vertices = 3
input primitive = points
output primitive = triangle_strip
0:? Sequence
0:25 Function Definition: main( ( global void)
0:25 Function Parameters:
0:27 Sequence
0:27 Sequence
0:27 Sequence
0:27 move second child to first child ( temp highp int)
0:27 'i' ( temp highp int)
0:27 Constant:
0:27 0 (const int)
0:27 Loop with condition tested first
0:27 Loop Condition
0:27 Compare Less Than ( temp bool)
0:27 'i' ( temp highp int)
0:27 Constant:
0:27 3 (const int)
0:27 Loop Body
0:28 Sequence
0:28 move second child to first child ( temp highp 4-component vector of float)
0:28 'gfo1' (layout( stream=0) out highp 4-component vector of float)
0:28 Constant:
0:28 0.000000
0:28 0.000000
0:28 0.000000
0:28 0.000000
0:29 move second child to first child ( temp highp 2-component vector of float)
0:29 'gfo2' (layout( stream=0) out highp 2-component vector of float)
0:29 Constant:
0:29 0.000000
0:29 0.000000
0:30 move second child to first child ( temp highp 4-component vector of float)
0:30 o3: direct index for structure (layout( stream=0) out highp 4-component vector of float)
0:30 'gf_out' (layout( location=5 stream=0) out block{layout( stream=0) out highp 4-component vector of float o3})
0:30 Constant:
0:30 0 (const int)
0:30 o3: direct index for structure ( in highp 4-component vector of float)
0:30 indirect index (layout( location=5) temp block{ in highp 4-component vector of float o3})
0:30 'inBlock' (layout( location=5) in 1-element array of block{ in highp 4-component vector of float o3})
0:30 'i' ( temp highp int)
0:30 Constant:
0:30 0 (const int)
0:31 EmitVertex ( global void)
0:27 Loop Terminal Expression
0:27 Post-Increment ( temp highp int)
0:27 'i' ( temp highp int)
0:33 EndPrimitive ( global void)
0:? Linker Objects
0:? 'vgo1' ( in 1-element array of highp 4-component vector of float)
0:? 'vgo2' ( in 1-element array of highp 2-component vector of float)
0:? 'inBlock' (layout( location=5) in 1-element array of block{ in highp 4-component vector of float o3})
0:? 'gfo1' (layout( stream=0) out highp 4-component vector of float)
0:? 'gfo2' (layout( stream=0) out highp 2-component vector of float)
0:? 'gf_out' (layout( location=5 stream=0) out block{layout( stream=0) out highp 4-component vector of float o3})
0:? 'blockName1' (layout( column_major std140) uniform 2-element array of block{layout( column_major std140) uniform highp 4-component vector of float a, layout( column_major std140) uniform highp 2-component vector of float b})
iomap.crossStage.vk.frag
Shader version: 460
gl_FragCoord origin is upper left
0:? Sequence
0:30 Function Definition: Bar( ( global highp 2-component vector of float)
0:30 Function Parameters:
0:31 Sequence
0:31 Branch: Return with expression
0:32 add ( temp highp 2-component vector of float)
0:31 add ( temp highp 2-component vector of float)
0:31 fb1: direct index for structure (layout( column_major std430) readonly buffer highp 2-component vector of float)
0:31 'anon@2' (layout( column_major std430) readonly buffer block{layout( column_major std430) readonly buffer highp 2-component vector of float fb1})
0:31 Constant:
0:31 0 (const uint)
0:32 b: direct index for structure (layout( column_major std140) uniform highp 2-component vector of float)
0:32 direct index (layout( column_major std140) temp block{layout( column_major std140) uniform highp 4-component vector of float a, layout( column_major std140) uniform highp 2-component vector of float b})
0:32 'blockName2' (layout( column_major std140) uniform 2-element array of block{layout( column_major std140) uniform highp 4-component vector of float a, layout( column_major std140) uniform highp 2-component vector of float b})
0:32 Constant:
0:32 0 (const int)
0:32 Constant:
0:32 1 (const int)
0:33 b: direct index for structure (layout( column_major std140) uniform highp 2-component vector of float)
0:33 direct index (layout( column_major std140) temp block{layout( column_major std140) uniform highp 4-component vector of float a, layout( column_major std140) uniform highp 2-component vector of float b})
0:33 'blockName2' (layout( column_major std140) uniform 2-element array of block{layout( column_major std140) uniform highp 4-component vector of float a, layout( column_major std140) uniform highp 2-component vector of float b})
0:33 Constant:
0:33 1 (const int)
0:33 Constant:
0:33 1 (const int)
0:36 Function Definition: Foo( ( global highp 4-component vector of float)
0:36 Function Parameters:
0:37 Sequence
0:37 Branch: Return with expression
0:40 add ( temp highp 4-component vector of float)
0:39 add ( temp highp 4-component vector of float)
0:38 add ( temp highp 4-component vector of float)
0:37 add ( temp highp 4-component vector of float)
0:37 a: direct index for structure (layout( column_major std140) uniform highp 4-component vector of float)
0:37 'anon@1' (layout( column_major std140) uniform block{layout( column_major std140) uniform highp 4-component vector of float a, layout( column_major std140) uniform highp 4-component vector of float b})
0:37 Constant:
0:37 0 (const uint)
0:38 b: direct index for structure (layout( column_major std140) uniform highp 4-component vector of float)
0:38 'anon@1' (layout( column_major std140) uniform block{layout( column_major std140) uniform highp 4-component vector of float a, layout( column_major std140) uniform highp 4-component vector of float b})
0:38 Constant:
0:38 1 (const uint)
0:39 a: direct index for structure (layout( column_major std140) uniform highp 4-component vector of float)
0:39 direct index (layout( column_major std140) temp block{layout( column_major std140) uniform highp 4-component vector of float a, layout( column_major std140) uniform highp 2-component vector of float b})
0:39 'blockName2' (layout( column_major std140) uniform 2-element array of block{layout( column_major std140) uniform highp 4-component vector of float a, layout( column_major std140) uniform highp 2-component vector of float b})
0:39 Constant:
0:39 0 (const int)
0:39 Constant:
0:39 0 (const int)
0:40 a: direct index for structure (layout( column_major std140) uniform highp 4-component vector of float)
0:40 direct index (layout( column_major std140) temp block{layout( column_major std140) uniform highp 4-component vector of float a, layout( column_major std140) uniform highp 2-component vector of float b})
0:40 'blockName2' (layout( column_major std140) uniform 2-element array of block{layout( column_major std140) uniform highp 4-component vector of float a, layout( column_major std140) uniform highp 2-component vector of float b})
0:40 Constant:
0:40 1 (const int)
0:40 Constant:
0:40 0 (const int)
0:41 Construct vec4 ( temp highp 4-component vector of float)
0:41 Function Call: Bar( ( global highp 2-component vector of float)
0:41 Constant:
0:41 0.000000
0:41 Constant:
0:41 0.000000
0:44 Function Definition: main( ( global void)
0:44 Function Parameters:
0:46 Sequence
0:46 Sequence
0:46 move second child to first child ( temp highp 4-component vector of float)
0:46 'color' ( temp highp 4-component vector of float)
0:46 'gfo1' ( smooth in highp 4-component vector of float)
0:47 move second child to first child ( temp highp 4-component vector of float)
0:47 'color' ( temp highp 4-component vector of float)
0:47 add ( temp highp 4-component vector of float)
0:47 'color' ( temp highp 4-component vector of float)
0:47 Function Call: Foo( ( global highp 4-component vector of float)
0:48 move second child to first child ( temp highp 4-component vector of float)
0:48 'outColor' ( out highp 4-component vector of float)
0:48 'color' ( temp highp 4-component vector of float)
0:? Linker Objects
0:? 'anon@0' (layout( location=5) in block{ in highp 4-component vector of float o3})
0:? 'gfo1' ( smooth in highp 4-component vector of float)
0:? 'gfo2' ( smooth in highp 2-component vector of float)
0:? 'outColor' ( out highp 4-component vector of float)
0:? 'glass' (layout( binding=0) uniform highp sampler2D)
0:? 'anon@1' (layout( column_major std140) uniform block{layout( column_major std140) uniform highp 4-component vector of float a, layout( column_major std140) uniform highp 4-component vector of float b})
0:? 'anon@2' (layout( column_major std430) readonly buffer block{layout( column_major std430) readonly buffer highp 2-component vector of float fb1})
0:? 'blockName2' (layout( column_major std140) uniform 2-element array of block{layout( column_major std140) uniform highp 4-component vector of float a, layout( column_major std140) uniform highp 2-component vector of float b})
Linked vertex stage:
Linked geometry stage:
Linked fragment stage:
WARNING: Linking unknown stage stage: Matched shader interfaces are using different instance names.
blockName1: "layout( column_major std140) uniform 2-element array of block{layout( column_major std140) uniform highp 4-component vector of float a, layout( column_major std140) uniform highp 2-component vector of float b}" versus blockName2: "layout( column_major std140) uniform 2-element array of block{layout( column_major std140) uniform highp 4-component vector of float a, layout( column_major std140) uniform highp 2-component vector of float b}"
Shader version: 460
0:? Sequence
0:26 Function Definition: main( ( global void)
0:26 Function Parameters:
0:28 Sequence
0:28 move second child to first child ( temp highp 4-component vector of float)
0:28 'vgo1' ( smooth out highp 4-component vector of float)
0:28 Constant:
0:28 0.000000
0:28 0.000000
0:28 0.000000
0:28 0.000000
0:29 move second child to first child ( temp highp 2-component vector of float)
0:29 'vgo2' ( smooth out highp 2-component vector of float)
0:29 Constant:
0:29 0.000000
0:29 0.000000
0:30 move second child to first child ( temp highp 4-component vector of float)
0:30 o3: direct index for structure ( out highp 4-component vector of float)
0:30 'anon@0' (layout( location=5) out block{ out highp 4-component vector of float o3})
0:30 Constant:
0:30 0 (const uint)
0:30 Constant:
0:30 0.000000
0:30 0.000000
0:30 0.000000
0:30 0.000000
0:? Linker Objects
0:? 'vgo1' ( smooth out highp 4-component vector of float)
0:? 'vgo2' ( smooth out highp 2-component vector of float)
0:? 'anon@0' (layout( location=5) out block{ out highp 4-component vector of float o3})
0:? 'glass' (layout( binding=0) uniform highp sampler2D)
0:? 'anon@1' (layout( column_major std140) uniform block{layout( column_major std140) uniform highp 4-component vector of float a, layout( column_major std140) uniform highp 4-component vector of float b})
0:? 'anon@2' (layout( column_major std430) readonly buffer block{layout( column_major std430) readonly buffer highp 2-component vector of float vb1})
0:? 'blockName1' (layout( column_major std140) uniform 2-element array of block{layout( column_major std140) uniform highp 4-component vector of float a, layout( column_major std140) uniform highp 2-component vector of float b})
Shader version: 460
invocations = 1
max_vertices = 3
input primitive = points
output primitive = triangle_strip
0:? Sequence
0:25 Function Definition: main( ( global void)
0:25 Function Parameters:
0:27 Sequence
0:27 Sequence
0:27 Sequence
0:27 move second child to first child ( temp highp int)
0:27 'i' ( temp highp int)
0:27 Constant:
0:27 0 (const int)
0:27 Loop with condition tested first
0:27 Loop Condition
0:27 Compare Less Than ( temp bool)
0:27 'i' ( temp highp int)
0:27 Constant:
0:27 3 (const int)
0:27 Loop Body
0:28 Sequence
0:28 move second child to first child ( temp highp 4-component vector of float)
0:28 'gfo1' (layout( stream=0) out highp 4-component vector of float)
0:28 Constant:
0:28 0.000000
0:28 0.000000
0:28 0.000000
0:28 0.000000
0:29 move second child to first child ( temp highp 2-component vector of float)
0:29 'gfo2' (layout( stream=0) out highp 2-component vector of float)
0:29 Constant:
0:29 0.000000
0:29 0.000000
0:30 move second child to first child ( temp highp 4-component vector of float)
0:30 o3: direct index for structure (layout( stream=0) out highp 4-component vector of float)
0:30 'gf_out' (layout( location=5 stream=0) out block{layout( stream=0) out highp 4-component vector of float o3})
0:30 Constant:
0:30 0 (const int)
0:30 o3: direct index for structure ( in highp 4-component vector of float)
0:30 indirect index (layout( location=5) temp block{ in highp 4-component vector of float o3})
0:30 'inBlock' (layout( location=5) in 1-element array of block{ in highp 4-component vector of float o3})
0:30 'i' ( temp highp int)
0:30 Constant:
0:30 0 (const int)
0:31 EmitVertex ( global void)
0:27 Loop Terminal Expression
0:27 Post-Increment ( temp highp int)
0:27 'i' ( temp highp int)
0:33 EndPrimitive ( global void)
0:? Linker Objects
0:? 'vgo1' ( in 1-element array of highp 4-component vector of float)
0:? 'vgo2' ( in 1-element array of highp 2-component vector of float)
0:? 'inBlock' (layout( location=5) in 1-element array of block{ in highp 4-component vector of float o3})
0:? 'gfo1' (layout( stream=0) out highp 4-component vector of float)
0:? 'gfo2' (layout( stream=0) out highp 2-component vector of float)
0:? 'gf_out' (layout( location=5 stream=0) out block{layout( stream=0) out highp 4-component vector of float o3})
0:? 'blockName1' (layout( column_major std140) uniform 2-element array of block{layout( column_major std140) uniform highp 4-component vector of float a, layout( column_major std140) uniform highp 2-component vector of float b})
Shader version: 460
gl_FragCoord origin is upper left
0:? Sequence
0:30 Function Definition: Bar( ( global highp 2-component vector of float)
0:30 Function Parameters:
0:31 Sequence
0:31 Branch: Return with expression
0:32 add ( temp highp 2-component vector of float)
0:31 add ( temp highp 2-component vector of float)
0:31 fb1: direct index for structure (layout( column_major std430) readonly buffer highp 2-component vector of float)
0:31 'anon@2' (layout( column_major std430) readonly buffer block{layout( column_major std430) readonly buffer highp 2-component vector of float fb1})
0:31 Constant:
0:31 0 (const uint)
0:32 b: direct index for structure (layout( column_major std140) uniform highp 2-component vector of float)
0:32 direct index (layout( column_major std140) temp block{layout( column_major std140) uniform highp 4-component vector of float a, layout( column_major std140) uniform highp 2-component vector of float b})
0:32 'blockName2' (layout( column_major std140) uniform 2-element array of block{layout( column_major std140) uniform highp 4-component vector of float a, layout( column_major std140) uniform highp 2-component vector of float b})
0:32 Constant:
0:32 0 (const int)
0:32 Constant:
0:32 1 (const int)
0:33 b: direct index for structure (layout( column_major std140) uniform highp 2-component vector of float)
0:33 direct index (layout( column_major std140) temp block{layout( column_major std140) uniform highp 4-component vector of float a, layout( column_major std140) uniform highp 2-component vector of float b})
0:33 'blockName2' (layout( column_major std140) uniform 2-element array of block{layout( column_major std140) uniform highp 4-component vector of float a, layout( column_major std140) uniform highp 2-component vector of float b})
0:33 Constant:
0:33 1 (const int)
0:33 Constant:
0:33 1 (const int)
0:36 Function Definition: Foo( ( global highp 4-component vector of float)
0:36 Function Parameters:
0:37 Sequence
0:37 Branch: Return with expression
0:40 add ( temp highp 4-component vector of float)
0:39 add ( temp highp 4-component vector of float)
0:38 add ( temp highp 4-component vector of float)
0:37 add ( temp highp 4-component vector of float)
0:37 a: direct index for structure (layout( column_major std140) uniform highp 4-component vector of float)
0:37 'anon@1' (layout( column_major std140) uniform block{layout( column_major std140) uniform highp 4-component vector of float a, layout( column_major std140) uniform highp 4-component vector of float b})
0:37 Constant:
0:37 0 (const uint)
0:38 b: direct index for structure (layout( column_major std140) uniform highp 4-component vector of float)
0:38 'anon@1' (layout( column_major std140) uniform block{layout( column_major std140) uniform highp 4-component vector of float a, layout( column_major std140) uniform highp 4-component vector of float b})
0:38 Constant:
0:38 1 (const uint)
0:39 a: direct index for structure (layout( column_major std140) uniform highp 4-component vector of float)
0:39 direct index (layout( column_major std140) temp block{layout( column_major std140) uniform highp 4-component vector of float a, layout( column_major std140) uniform highp 2-component vector of float b})
0:39 'blockName2' (layout( column_major std140) uniform 2-element array of block{layout( column_major std140) uniform highp 4-component vector of float a, layout( column_major std140) uniform highp 2-component vector of float b})
0:39 Constant:
0:39 0 (const int)
0:39 Constant:
0:39 0 (const int)
0:40 a: direct index for structure (layout( column_major std140) uniform highp 4-component vector of float)
0:40 direct index (layout( column_major std140) temp block{layout( column_major std140) uniform highp 4-component vector of float a, layout( column_major std140) uniform highp 2-component vector of float b})
0:40 'blockName2' (layout( column_major std140) uniform 2-element array of block{layout( column_major std140) uniform highp 4-component vector of float a, layout( column_major std140) uniform highp 2-component vector of float b})
0:40 Constant:
0:40 1 (const int)
0:40 Constant:
0:40 0 (const int)
0:41 Construct vec4 ( temp highp 4-component vector of float)
0:41 Function Call: Bar( ( global highp 2-component vector of float)
0:41 Constant:
0:41 0.000000
0:41 Constant:
0:41 0.000000
0:44 Function Definition: main( ( global void)
0:44 Function Parameters:
0:46 Sequence
0:46 Sequence
0:46 move second child to first child ( temp highp 4-component vector of float)
0:46 'color' ( temp highp 4-component vector of float)
0:46 'gfo1' ( smooth in highp 4-component vector of float)
0:47 move second child to first child ( temp highp 4-component vector of float)
0:47 'color' ( temp highp 4-component vector of float)
0:47 add ( temp highp 4-component vector of float)
0:47 'color' ( temp highp 4-component vector of float)
0:47 Function Call: Foo( ( global highp 4-component vector of float)
0:48 move second child to first child ( temp highp 4-component vector of float)
0:48 'outColor' ( out highp 4-component vector of float)
0:48 'color' ( temp highp 4-component vector of float)
0:? Linker Objects
0:? 'anon@0' (layout( location=5) in block{ in highp 4-component vector of float o3})
0:? 'gfo1' ( smooth in highp 4-component vector of float)
0:? 'gfo2' ( smooth in highp 2-component vector of float)
0:? 'outColor' ( out highp 4-component vector of float)
0:? 'glass' (layout( binding=0) uniform highp sampler2D)
0:? 'anon@1' (layout( column_major std140) uniform block{layout( column_major std140) uniform highp 4-component vector of float a, layout( column_major std140) uniform highp 4-component vector of float b})
0:? 'anon@2' (layout( column_major std430) readonly buffer block{layout( column_major std430) readonly buffer highp 2-component vector of float fb1})
0:? 'blockName2' (layout( column_major std140) uniform 2-element array of block{layout( column_major std140) uniform highp 4-component vector of float a, layout( column_major std140) uniform highp 2-component vector of float b})
// Module Version 10000
// Generated by (magic number): 8000a
// Id's are bound by 38
Capability Shader
1: ExtInstImport "GLSL.std.450"
MemoryModel Logical GLSL450
EntryPoint Vertex 4 "main" 9 14 18
Source GLSL 460
Name 4 "main"
Name 9 "vgo1"
Name 14 "vgo2"
Name 16 "outBlock"
MemberName 16(outBlock) 0 "o3"
Name 18 ""
Name 25 "glass"
Name 26 "crossStageBlock1"
MemberName 26(crossStageBlock1) 0 "a"
MemberName 26(crossStageBlock1) 1 "b"
Name 28 ""
Name 29 "vertOnlyBlock"
MemberName 29(vertOnlyBlock) 0 "vb1"
Name 31 ""
Name 32 "crossStageBlock2"
MemberName 32(crossStageBlock2) 0 "a"
MemberName 32(crossStageBlock2) 1 "b"
Name 37 "blockName1"
Decorate 9(vgo1) Location 0
Decorate 14(vgo2) Location 1
Decorate 16(outBlock) Block
Decorate 18 Location 5
Decorate 25(glass) DescriptorSet 0
Decorate 25(glass) Binding 0
MemberDecorate 26(crossStageBlock1) 0 Offset 0
MemberDecorate 26(crossStageBlock1) 1 Offset 16
Decorate 26(crossStageBlock1) Block
Decorate 28 DescriptorSet 0
Decorate 28 Binding 1
MemberDecorate 29(vertOnlyBlock) 0 NonWritable
MemberDecorate 29(vertOnlyBlock) 0 Offset 0
Decorate 29(vertOnlyBlock) BufferBlock
Decorate 31 DescriptorSet 0
Decorate 31 Binding 0
MemberDecorate 32(crossStageBlock2) 0 Offset 0
MemberDecorate 32(crossStageBlock2) 1 Offset 16
Decorate 32(crossStageBlock2) Block
Decorate 37(blockName1) DescriptorSet 0
Decorate 37(blockName1) Binding 3
2: TypeVoid
3: TypeFunction 2
6: TypeFloat 32
7: TypeVector 6(float) 4
8: TypePointer Output 7(fvec4)
9(vgo1): 8(ptr) Variable Output
10: 6(float) Constant 0
11: 7(fvec4) ConstantComposite 10 10 10 10
12: TypeVector 6(float) 2
13: TypePointer Output 12(fvec2)
14(vgo2): 13(ptr) Variable Output
15: 12(fvec2) ConstantComposite 10 10
16(outBlock): TypeStruct 7(fvec4)
17: TypePointer Output 16(outBlock)
18: 17(ptr) Variable Output
19: TypeInt 32 1
20: 19(int) Constant 0
22: TypeImage 6(float) 2D sampled format:Unknown
23: TypeSampledImage 22
24: TypePointer UniformConstant 23
25(glass): 24(ptr) Variable UniformConstant
26(crossStageBlock1): TypeStruct 7(fvec4) 7(fvec4)
27: TypePointer Uniform 26(crossStageBlock1)
28: 27(ptr) Variable Uniform
29(vertOnlyBlock): TypeStruct 12(fvec2)
30: TypePointer Uniform 29(vertOnlyBlock)
31: 30(ptr) Variable Uniform
32(crossStageBlock2): TypeStruct 7(fvec4) 12(fvec2)
33: TypeInt 32 0
34: 33(int) Constant 2
35: TypeArray 32(crossStageBlock2) 34
36: TypePointer Uniform 35
37(blockName1): 36(ptr) Variable Uniform
4(main): 2 Function None 3
5: Label
Store 9(vgo1) 11
Store 14(vgo2) 15
21: 8(ptr) AccessChain 18 20
Store 21 11
Return
FunctionEnd
// Module Version 10000
// Generated by (magic number): 8000a
// Id's are bound by 57
Capability Geometry
1: ExtInstImport "GLSL.std.450"
MemoryModel Logical GLSL450
EntryPoint Geometry 4 "main" 22 27 31 37 48 51
ExecutionMode 4 InputPoints
ExecutionMode 4 Invocations 1
ExecutionMode 4 OutputTriangleStrip
ExecutionMode 4 OutputVertices 3
Source GLSL 460
Name 4 "main"
Name 8 "i"
Name 22 "gfo1"
Name 27 "gfo2"
Name 29 "outBlock"
MemberName 29(outBlock) 0 "o3"
Name 31 "gf_out"
Name 32 "outBlock"
MemberName 32(outBlock) 0 "o3"
Name 37 "inBlock"
Name 48 "vgo1"
Name 51 "vgo2"
Name 52 "crossStageBlock2"
MemberName 52(crossStageBlock2) 0 "a"
MemberName 52(crossStageBlock2) 1 "b"
Name 56 "blockName1"
Decorate 22(gfo1) Location 0
Decorate 27(gfo2) Location 1
Decorate 29(outBlock) Block
Decorate 31(gf_out) Location 5
Decorate 32(outBlock) Block
Decorate 37(inBlock) Location 5
Decorate 48(vgo1) Location 0
Decorate 51(vgo2) Location 1
MemberDecorate 52(crossStageBlock2) 0 Offset 0
MemberDecorate 52(crossStageBlock2) 1 Offset 16
Decorate 52(crossStageBlock2) Block
Decorate 56(blockName1) DescriptorSet 0
Decorate 56(blockName1) Binding 3
2: TypeVoid
3: TypeFunction 2
6: TypeInt 32 1
7: TypePointer Function 6(int)
9: 6(int) Constant 0
16: 6(int) Constant 3
17: TypeBool
19: TypeFloat 32
20: TypeVector 19(float) 4
21: TypePointer Output 20(fvec4)
22(gfo1): 21(ptr) Variable Output
23: 19(float) Constant 0
24: 20(fvec4) ConstantComposite 23 23 23 23
25: TypeVector 19(float) 2
26: TypePointer Output 25(fvec2)
27(gfo2): 26(ptr) Variable Output
28: 25(fvec2) ConstantComposite 23 23
29(outBlock): TypeStruct 20(fvec4)
30: TypePointer Output 29(outBlock)
31(gf_out): 30(ptr) Variable Output
32(outBlock): TypeStruct 20(fvec4)
33: TypeInt 32 0
34: 33(int) Constant 1
35: TypeArray 32(outBlock) 34
36: TypePointer Input 35
37(inBlock): 36(ptr) Variable Input
39: TypePointer Input 20(fvec4)
44: 6(int) Constant 1
46: TypeArray 20(fvec4) 34
47: TypePointer Input 46
48(vgo1): 47(ptr) Variable Input
49: TypeArray 25(fvec2) 34
50: TypePointer Input 49
51(vgo2): 50(ptr) Variable Input
52(crossStageBlock2): TypeStruct 20(fvec4) 25(fvec2)
53: 33(int) Constant 2
54: TypeArray 52(crossStageBlock2) 53
55: TypePointer Uniform 54
56(blockName1): 55(ptr) Variable Uniform
4(main): 2 Function None 3
5: Label
8(i): 7(ptr) Variable Function
Store 8(i) 9
Branch 10
10: Label
LoopMerge 12 13 None
Branch 14
14: Label
15: 6(int) Load 8(i)
18: 17(bool) SLessThan 15 16
BranchConditional 18 11 12
11: Label
Store 22(gfo1) 24
Store 27(gfo2) 28
38: 6(int) Load 8(i)
40: 39(ptr) AccessChain 37(inBlock) 38 9
41: 20(fvec4) Load 40
42: 21(ptr) AccessChain 31(gf_out) 9
Store 42 41
EmitVertex
Branch 13
13: Label
43: 6(int) Load 8(i)
45: 6(int) IAdd 43 44
Store 8(i) 45
Branch 10
12: Label
EndPrimitive
Return
FunctionEnd
// Module Version 10000
// Generated by (magic number): 8000a
// Id's are bound by 81
Capability Shader
1: ExtInstImport "GLSL.std.450"
MemoryModel Logical GLSL450
EntryPoint Fragment 4 "main" 64 70 74 76
ExecutionMode 4 OriginUpperLeft
Source GLSL 460
Name 4 "main"
Name 9 "Bar("
Name 13 "Foo("
Name 15 "fragOnlyBlock"
MemberName 15(fragOnlyBlock) 0 "fb1"
Name 17 ""
Name 23 "crossStageBlock2"
MemberName 23(crossStageBlock2) 0 "a"
MemberName 23(crossStageBlock2) 1 "b"
Name 28 "blockName2"
Name 38 "crossStageBlock1"
MemberName 38(crossStageBlock1) 0 "a"
MemberName 38(crossStageBlock1) 1 "b"
Name 40 ""
Name 62 "color"
Name 64 "gfo1"
Name 70 "outColor"
Name 72 "outBlock"
MemberName 72(outBlock) 0 "o3"
Name 74 ""
Name 76 "gfo2"
Name 80 "glass"
MemberDecorate 15(fragOnlyBlock) 0 NonWritable
MemberDecorate 15(fragOnlyBlock) 0 Offset 0
Decorate 15(fragOnlyBlock) BufferBlock
Decorate 17 DescriptorSet 0
Decorate 17 Binding 2
MemberDecorate 23(crossStageBlock2) 0 Offset 0
MemberDecorate 23(crossStageBlock2) 1 Offset 16
Decorate 23(crossStageBlock2) Block
Decorate 28(blockName2) DescriptorSet 0
Decorate 28(blockName2) Binding 3
MemberDecorate 38(crossStageBlock1) 0 Offset 0
MemberDecorate 38(crossStageBlock1) 1 Offset 16
Decorate 38(crossStageBlock1) Block
Decorate 40 DescriptorSet 0
Decorate 40 Binding 1
Decorate 64(gfo1) Location 0
Decorate 70(outColor) Location 0
Decorate 72(outBlock) Block
Decorate 74 Location 5
Decorate 76(gfo2) Location 1
Decorate 80(glass) DescriptorSet 0
Decorate 80(glass) Binding 0
2: TypeVoid
3: TypeFunction 2
6: TypeFloat 32
7: TypeVector 6(float) 2
8: TypeFunction 7(fvec2)
11: TypeVector 6(float) 4
12: TypeFunction 11(fvec4)
15(fragOnlyBlock): TypeStruct 7(fvec2)
16: TypePointer Uniform 15(fragOnlyBlock)
17: 16(ptr) Variable Uniform
18: TypeInt 32 1
19: 18(int) Constant 0
20: TypePointer Uniform 7(fvec2)
23(crossStageBlock2): TypeStruct 11(fvec4) 7(fvec2)
24: TypeInt 32 0
25: 24(int) Constant 2
26: TypeArray 23(crossStageBlock2) 25
27: TypePointer Uniform 26
28(blockName2): 27(ptr) Variable Uniform
29: 18(int) Constant 1
38(crossStageBlock1): TypeStruct 11(fvec4) 11(fvec4)
39: TypePointer Uniform 38(crossStageBlock1)
40: 39(ptr) Variable Uniform
41: TypePointer Uniform 11(fvec4)
54: 6(float) Constant 0
61: TypePointer Function 11(fvec4)
63: TypePointer Input 11(fvec4)
64(gfo1): 63(ptr) Variable Input
69: TypePointer Output 11(fvec4)
70(outColor): 69(ptr) Variable Output
72(outBlock): TypeStruct 11(fvec4)
73: TypePointer Input 72(outBlock)
74: 73(ptr) Variable Input
75: TypePointer Input 7(fvec2)
76(gfo2): 75(ptr) Variable Input
77: TypeImage 6(float) 2D sampled format:Unknown
78: TypeSampledImage 77
79: TypePointer UniformConstant 78
80(glass): 79(ptr) Variable UniformConstant
4(main): 2 Function None 3
5: Label
62(color): 61(ptr) Variable Function
65: 11(fvec4) Load 64(gfo1)
Store 62(color) 65
66: 11(fvec4) Load 62(color)
67: 11(fvec4) FunctionCall 13(Foo()
68: 11(fvec4) FAdd 66 67
Store 62(color) 68
71: 11(fvec4) Load 62(color)
Store 70(outColor) 71
Return
FunctionEnd
9(Bar(): 7(fvec2) Function None 8
10: Label
21: 20(ptr) AccessChain 17 19
22: 7(fvec2) Load 21
30: 20(ptr) AccessChain 28(blockName2) 19 29
31: 7(fvec2) Load 30
32: 7(fvec2) FAdd 22 31
33: 20(ptr) AccessChain 28(blockName2) 29 29
34: 7(fvec2) Load 33
35: 7(fvec2) FAdd 32 34
ReturnValue 35
FunctionEnd
13(Foo(): 11(fvec4) Function None 12
14: Label
42: 41(ptr) AccessChain 40 19
43: 11(fvec4) Load 42
44: 41(ptr) AccessChain 40 29
45: 11(fvec4) Load 44
46: 11(fvec4) FAdd 43 45
47: 41(ptr) AccessChain 28(blockName2) 19 19
48: 11(fvec4) Load 47
49: 11(fvec4) FAdd 46 48
50: 41(ptr) AccessChain 28(blockName2) 29 19
51: 11(fvec4) Load 50
52: 11(fvec4) FAdd 49 51
53: 7(fvec2) FunctionCall 9(Bar()
55: 6(float) CompositeExtract 53 0
56: 6(float) CompositeExtract 53 1
57: 11(fvec4) CompositeConstruct 55 56 54 54
58: 11(fvec4) FAdd 52 57
ReturnValue 58
FunctionEnd

View File

@@ -0,0 +1,124 @@
vk.relaxed.errorcheck.vert
Shader version: 460
0:? Sequence
0:9 Function Definition: foo( ( global highp 4-component vector of float)
0:9 Function Parameters:
0:10 Sequence
0:10 Branch: Return with expression
0:10 vector swizzle ( temp highp 4-component vector of float)
0:10 a: direct index for structure ( uniform highp 2-component vector of float)
0:10 'anon@0' (layout( column_major std140) uniform block{ uniform highp 2-component vector of float a})
0:10 Constant:
0:10 0 (const uint)
0:10 Sequence
0:10 Constant:
0:10 0 (const int)
0:10 Constant:
0:10 1 (const int)
0:10 Constant:
0:10 0 (const int)
0:10 Constant:
0:10 1 (const int)
0:13 Function Definition: main( ( global void)
0:13 Function Parameters:
0:14 Sequence
0:14 move second child to first child ( temp highp 4-component vector of float)
0:14 'io' (layout( location=0) smooth out highp 4-component vector of float)
0:14 Function Call: foo( ( global highp 4-component vector of float)
0:? Linker Objects
0:? 'io' (layout( location=0) smooth out highp 4-component vector of float)
0:? 'anon@0' (layout( column_major std140) uniform block{ uniform highp 2-component vector of float a})
0:? 'gl_VertexID' ( in int VertexIndex)
0:? 'gl_InstanceID' ( in int InstanceIndex)
vk.relaxed.errorcheck.frag
Shader version: 460
gl_FragCoord origin is upper left
0:? Sequence
0:10 Function Definition: foo( ( global highp 4-component vector of float)
0:10 Function Parameters:
0:11 Sequence
0:11 Branch: Return with expression
0:11 a: direct index for structure ( uniform highp 4-component vector of float)
0:11 'anon@0' (layout( column_major std140) uniform block{ uniform highp 4-component vector of float a})
0:11 Constant:
0:11 0 (const uint)
0:14 Function Definition: main( ( global void)
0:14 Function Parameters:
0:15 Sequence
0:15 move second child to first child ( temp highp 4-component vector of float)
0:15 'o' ( out highp 4-component vector of float)
0:15 add ( temp highp 4-component vector of float)
0:15 'io' (layout( location=0) smooth in highp 4-component vector of float)
0:15 Function Call: foo( ( global highp 4-component vector of float)
0:? Linker Objects
0:? 'io' (layout( location=0) smooth in highp 4-component vector of float)
0:? 'o' ( out highp 4-component vector of float)
0:? 'anon@0' (layout( column_major std140) uniform block{ uniform highp 4-component vector of float a})
Linked vertex stage:
Linked fragment stage:
ERROR: Linking unknown stage stage: Types must match:
a: " uniform highp 2-component vector of float" versus " uniform highp 4-component vector of float"
Shader version: 460
0:? Sequence
0:9 Function Definition: foo( ( global highp 4-component vector of float)
0:9 Function Parameters:
0:10 Sequence
0:10 Branch: Return with expression
0:10 vector swizzle ( temp highp 4-component vector of float)
0:10 a: direct index for structure ( uniform highp 2-component vector of float)
0:10 'anon@0' (layout( column_major std140) uniform block{ uniform highp 2-component vector of float a})
0:10 Constant:
0:10 0 (const uint)
0:10 Sequence
0:10 Constant:
0:10 0 (const int)
0:10 Constant:
0:10 1 (const int)
0:10 Constant:
0:10 0 (const int)
0:10 Constant:
0:10 1 (const int)
0:13 Function Definition: main( ( global void)
0:13 Function Parameters:
0:14 Sequence
0:14 move second child to first child ( temp highp 4-component vector of float)
0:14 'io' (layout( location=0) smooth out highp 4-component vector of float)
0:14 Function Call: foo( ( global highp 4-component vector of float)
0:? Linker Objects
0:? 'io' (layout( location=0) smooth out highp 4-component vector of float)
0:? 'anon@0' (layout( column_major std140) uniform block{ uniform highp 2-component vector of float a})
0:? 'gl_VertexID' ( in int VertexIndex)
0:? 'gl_InstanceID' ( in int InstanceIndex)
Shader version: 460
gl_FragCoord origin is upper left
0:? Sequence
0:10 Function Definition: foo( ( global highp 4-component vector of float)
0:10 Function Parameters:
0:11 Sequence
0:11 Branch: Return with expression
0:11 a: direct index for structure ( uniform highp 4-component vector of float)
0:11 'anon@0' (layout( column_major std140) uniform block{ uniform highp 4-component vector of float a})
0:11 Constant:
0:11 0 (const uint)
0:14 Function Definition: main( ( global void)
0:14 Function Parameters:
0:15 Sequence
0:15 move second child to first child ( temp highp 4-component vector of float)
0:15 'o' ( out highp 4-component vector of float)
0:15 add ( temp highp 4-component vector of float)
0:15 'io' (layout( location=0) smooth in highp 4-component vector of float)
0:15 Function Call: foo( ( global highp 4-component vector of float)
0:? Linker Objects
0:? 'io' (layout( location=0) smooth in highp 4-component vector of float)
0:? 'o' ( out highp 4-component vector of float)
0:? 'anon@0' (layout( column_major std140) uniform block{ uniform highp 4-component vector of float a})
Validation failed
SPIR-V is not generated for failed compile or link

View File

@@ -0,0 +1,826 @@
vk.relaxed.frag
WARNING: 0:7: 'b' : Ignoring initializer for uniform
WARNING: 0:8: 'c' : ignoring layout qualifier for uniform location
Shader version: 460
gl_FragCoord origin is upper left
0:? Sequence
0:36 Function Definition: bar( ( global highp uint)
0:36 Function Parameters:
0:37 Sequence
0:37 Sequence
0:37 move second child to first child ( temp highp uint)
0:37 'j' ( temp highp uint)
0:37 Constant:
0:37 0 (const uint)
0:38 move second child to first child ( temp highp uint)
0:38 'j' ( temp highp uint)
0:38 AtomicAdd ( global highp uint)
0:38 counter1: direct index for structure ( coherent volatile buffer highp uint)
0:38 'anon@2' (layout( column_major std430) buffer block{ coherent volatile buffer highp uint counter1, coherent volatile buffer highp uint counter2})
0:38 Constant:
0:38 0 (const uint)
0:38 Constant:
0:38 1 (const uint)
0:39 move second child to first child ( temp highp uint)
0:39 'j' ( temp highp uint)
0:39 subtract ( temp highp uint)
0:39 AtomicAdd ( global highp uint)
0:39 counter1: direct index for structure ( coherent volatile buffer highp uint)
0:39 'anon@2' (layout( column_major std430) buffer block{ coherent volatile buffer highp uint counter1, coherent volatile buffer highp uint counter2})
0:39 Constant:
0:39 0 (const uint)
0:39 Constant:
0:39 4294967295 (const uint)
0:39 Constant:
0:39 1 (const uint)
0:40 move second child to first child ( temp highp uint)
0:40 'j' ( temp highp uint)
0:40 counter1: direct index for structure ( coherent volatile buffer highp uint)
0:40 'anon@2' (layout( column_major std430) buffer block{ coherent volatile buffer highp uint counter1, coherent volatile buffer highp uint counter2})
0:40 Constant:
0:40 0 (const uint)
0:42 move second child to first child ( temp highp uint)
0:42 'j' ( temp highp uint)
0:42 AtomicAdd ( global highp uint)
0:42 counter1: direct index for structure ( coherent volatile buffer highp uint)
0:42 'anon@2' (layout( column_major std430) buffer block{ coherent volatile buffer highp uint counter1, coherent volatile buffer highp uint counter2})
0:42 Constant:
0:42 0 (const uint)
0:42 Constant:
0:42 1 (const uint)
0:43 move second child to first child ( temp highp uint)
0:43 'j' ( temp highp uint)
0:43 AtomicAdd ( global highp uint)
0:43 counter1: direct index for structure ( coherent volatile buffer highp uint)
0:43 'anon@2' (layout( column_major std430) buffer block{ coherent volatile buffer highp uint counter1, coherent volatile buffer highp uint counter2})
0:43 Constant:
0:43 0 (const uint)
0:43 Constant:
0:43 4294967295 (const uint)
0:44 move second child to first child ( temp highp uint)
0:44 'j' ( temp highp uint)
0:44 AtomicSubtract ( global highp uint)
0:44 counter1: direct index for structure ( coherent volatile buffer highp uint)
0:44 'anon@2' (layout( column_major std430) buffer block{ coherent volatile buffer highp uint counter1, coherent volatile buffer highp uint counter2})
0:44 Constant:
0:44 0 (const uint)
0:44 Constant:
0:44 1 (const uint)
0:46 move second child to first child ( temp highp uint)
0:46 'j' ( temp highp uint)
0:46 AtomicMin ( global highp uint)
0:46 counter1: direct index for structure ( coherent volatile buffer highp uint)
0:46 'anon@2' (layout( column_major std430) buffer block{ coherent volatile buffer highp uint counter1, coherent volatile buffer highp uint counter2})
0:46 Constant:
0:46 0 (const uint)
0:46 'j' ( temp highp uint)
0:47 move second child to first child ( temp highp uint)
0:47 'j' ( temp highp uint)
0:47 AtomicMax ( global highp uint)
0:47 counter1: direct index for structure ( coherent volatile buffer highp uint)
0:47 'anon@2' (layout( column_major std430) buffer block{ coherent volatile buffer highp uint counter1, coherent volatile buffer highp uint counter2})
0:47 Constant:
0:47 0 (const uint)
0:47 'j' ( temp highp uint)
0:48 move second child to first child ( temp highp uint)
0:48 'j' ( temp highp uint)
0:48 AtomicAnd ( global highp uint)
0:48 counter1: direct index for structure ( coherent volatile buffer highp uint)
0:48 'anon@2' (layout( column_major std430) buffer block{ coherent volatile buffer highp uint counter1, coherent volatile buffer highp uint counter2})
0:48 Constant:
0:48 0 (const uint)
0:48 'j' ( temp highp uint)
0:50 move second child to first child ( temp highp uint)
0:50 'j' ( temp highp uint)
0:50 AtomicOr ( global highp uint)
0:50 counter1: direct index for structure ( coherent volatile buffer highp uint)
0:50 'anon@2' (layout( column_major std430) buffer block{ coherent volatile buffer highp uint counter1, coherent volatile buffer highp uint counter2})
0:50 Constant:
0:50 0 (const uint)
0:50 'j' ( temp highp uint)
0:51 move second child to first child ( temp highp uint)
0:51 'j' ( temp highp uint)
0:51 AtomicXor ( global highp uint)
0:51 counter1: direct index for structure ( coherent volatile buffer highp uint)
0:51 'anon@2' (layout( column_major std430) buffer block{ coherent volatile buffer highp uint counter1, coherent volatile buffer highp uint counter2})
0:51 Constant:
0:51 0 (const uint)
0:51 'j' ( temp highp uint)
0:53 move second child to first child ( temp highp uint)
0:53 'j' ( temp highp uint)
0:53 AtomicExchange ( global highp uint)
0:53 counter1: direct index for structure ( coherent volatile buffer highp uint)
0:53 'anon@2' (layout( column_major std430) buffer block{ coherent volatile buffer highp uint counter1, coherent volatile buffer highp uint counter2})
0:53 Constant:
0:53 0 (const uint)
0:53 'j' ( temp highp uint)
0:54 move second child to first child ( temp highp uint)
0:54 'j' ( temp highp uint)
0:54 AtomicCompSwap ( global highp uint)
0:54 counter1: direct index for structure ( coherent volatile buffer highp uint)
0:54 'anon@2' (layout( column_major std430) buffer block{ coherent volatile buffer highp uint counter1, coherent volatile buffer highp uint counter2})
0:54 Constant:
0:54 0 (const uint)
0:54 Constant:
0:54 0 (const uint)
0:54 'j' ( temp highp uint)
0:56 AtomicAdd ( global highp uint)
0:56 counter2: direct index for structure ( coherent volatile buffer highp uint)
0:56 'anon@2' (layout( column_major std430) buffer block{ coherent volatile buffer highp uint counter1, coherent volatile buffer highp uint counter2})
0:56 Constant:
0:56 1 (const uint)
0:56 Constant:
0:56 1 (const uint)
0:57 AtomicAdd ( global highp uint)
0:57 counter3: direct index for structure ( coherent volatile buffer highp uint)
0:57 'anon@3' (layout( column_major std430) buffer block{ coherent volatile buffer highp uint counter3})
0:57 Constant:
0:57 0 (const uint)
0:57 Constant:
0:57 1 (const uint)
0:59 MemoryBarrierBuffer ( global void)
0:61 Branch: Return with expression
0:61 'j' ( temp highp uint)
0:64 Function Definition: foo( ( global highp 4-component vector of float)
0:64 Function Parameters:
0:65 Sequence
0:65 Sequence
0:65 move second child to first child ( temp highp float)
0:65 'f' ( temp highp float)
0:65 add ( temp highp float)
0:65 add ( temp highp float)
0:65 add ( temp highp float)
0:65 j: direct index for structure (layout( column_major std140) uniform highp float)
0:65 'anon@1' (layout( column_major std140) uniform block{layout( column_major std140) uniform highp float j, layout( column_major std140) uniform highp 4-component vector of float k})
0:65 Constant:
0:65 0 (const uint)
0:65 j: direct index for structure (layout( column_major std430) buffer highp float)
0:65 'bufferInstance' (layout( column_major std430) buffer block{layout( column_major std430) buffer highp float j, layout( column_major std430) buffer highp 4-component vector of float k})
0:65 Constant:
0:65 0 (const int)
0:65 y: direct index for structure ( global highp float)
0:65 structUniform: direct index for structure ( uniform structure{ global highp 2-component vector of float x, global highp float y, global highp uint z})
0:65 'anon@0' (layout( column_major std140) uniform block{ uniform highp 4-component vector of float a, uniform highp 2-component vector of float b, uniform highp 2-component vector of float c, uniform 10-element array of highp 4-component vector of float d, uniform structure{ global highp 2-component vector of float x, global highp float y, global highp uint z} structUniform})
0:65 Constant:
0:65 4 (const uint)
0:65 Constant:
0:65 1 (const int)
0:65 Convert uint to float ( temp highp float)
0:65 z: direct index for structure ( global highp uint)
0:65 structUniform: direct index for structure ( uniform structure{ global highp 2-component vector of float x, global highp float y, global highp uint z})
0:65 'anon@0' (layout( column_major std140) uniform block{ uniform highp 4-component vector of float a, uniform highp 2-component vector of float b, uniform highp 2-component vector of float c, uniform 10-element array of highp 4-component vector of float d, uniform structure{ global highp 2-component vector of float x, global highp float y, global highp uint z} structUniform})
0:65 Constant:
0:65 4 (const uint)
0:65 Constant:
0:65 2 (const int)
0:66 Sequence
0:66 move second child to first child ( temp highp 2-component vector of float)
0:66 'v2' ( temp highp 2-component vector of float)
0:66 add ( temp highp 2-component vector of float)
0:66 add ( temp highp 2-component vector of float)
0:66 b: direct index for structure ( uniform highp 2-component vector of float)
0:66 'anon@0' (layout( column_major std140) uniform block{ uniform highp 4-component vector of float a, uniform highp 2-component vector of float b, uniform highp 2-component vector of float c, uniform 10-element array of highp 4-component vector of float d, uniform structure{ global highp 2-component vector of float x, global highp float y, global highp uint z} structUniform})
0:66 Constant:
0:66 1 (const uint)
0:66 c: direct index for structure ( uniform highp 2-component vector of float)
0:66 'anon@0' (layout( column_major std140) uniform block{ uniform highp 4-component vector of float a, uniform highp 2-component vector of float b, uniform highp 2-component vector of float c, uniform 10-element array of highp 4-component vector of float d, uniform structure{ global highp 2-component vector of float x, global highp float y, global highp uint z} structUniform})
0:66 Constant:
0:66 2 (const uint)
0:66 x: direct index for structure ( global highp 2-component vector of float)
0:66 structUniform: direct index for structure ( uniform structure{ global highp 2-component vector of float x, global highp float y, global highp uint z})
0:66 'anon@0' (layout( column_major std140) uniform block{ uniform highp 4-component vector of float a, uniform highp 2-component vector of float b, uniform highp 2-component vector of float c, uniform 10-element array of highp 4-component vector of float d, uniform structure{ global highp 2-component vector of float x, global highp float y, global highp uint z} structUniform})
0:66 Constant:
0:66 4 (const uint)
0:66 Constant:
0:66 0 (const int)
0:67 Sequence
0:67 move second child to first child ( temp highp 4-component vector of float)
0:67 'v4' ( temp highp 4-component vector of float)
0:67 add ( temp highp 4-component vector of float)
0:67 add ( temp highp 4-component vector of float)
0:67 add ( temp highp 4-component vector of float)
0:67 add ( temp highp 4-component vector of float)
0:67 add ( temp highp 4-component vector of float)
0:67 add ( temp highp 4-component vector of float)
0:67 a: direct index for structure ( uniform highp 4-component vector of float)
0:67 'anon@0' (layout( column_major std140) uniform block{ uniform highp 4-component vector of float a, uniform highp 2-component vector of float b, uniform highp 2-component vector of float c, uniform 10-element array of highp 4-component vector of float d, uniform structure{ global highp 2-component vector of float x, global highp float y, global highp uint z} structUniform})
0:67 Constant:
0:67 0 (const uint)
0:67 direct index ( temp highp 4-component vector of float)
0:67 d: direct index for structure ( uniform 10-element array of highp 4-component vector of float)
0:67 'anon@0' (layout( column_major std140) uniform block{ uniform highp 4-component vector of float a, uniform highp 2-component vector of float b, uniform highp 2-component vector of float c, uniform 10-element array of highp 4-component vector of float d, uniform structure{ global highp 2-component vector of float x, global highp float y, global highp uint z} structUniform})
0:67 Constant:
0:67 3 (const uint)
0:67 Constant:
0:67 0 (const int)
0:67 direct index ( temp highp 4-component vector of float)
0:67 d: direct index for structure ( uniform 10-element array of highp 4-component vector of float)
0:67 'anon@0' (layout( column_major std140) uniform block{ uniform highp 4-component vector of float a, uniform highp 2-component vector of float b, uniform highp 2-component vector of float c, uniform 10-element array of highp 4-component vector of float d, uniform structure{ global highp 2-component vector of float x, global highp float y, global highp uint z} structUniform})
0:67 Constant:
0:67 3 (const uint)
0:67 Constant:
0:67 1 (const int)
0:67 direct index ( temp highp 4-component vector of float)
0:67 d: direct index for structure ( uniform 10-element array of highp 4-component vector of float)
0:67 'anon@0' (layout( column_major std140) uniform block{ uniform highp 4-component vector of float a, uniform highp 2-component vector of float b, uniform highp 2-component vector of float c, uniform 10-element array of highp 4-component vector of float d, uniform structure{ global highp 2-component vector of float x, global highp float y, global highp uint z} structUniform})
0:67 Constant:
0:67 3 (const uint)
0:67 Constant:
0:67 2 (const int)
0:67 k: direct index for structure (layout( column_major std140) uniform highp 4-component vector of float)
0:67 'anon@1' (layout( column_major std140) uniform block{layout( column_major std140) uniform highp float j, layout( column_major std140) uniform highp 4-component vector of float k})
0:67 Constant:
0:67 1 (const uint)
0:67 k: direct index for structure (layout( column_major std430) buffer highp 4-component vector of float)
0:67 'bufferInstance' (layout( column_major std430) buffer block{layout( column_major std430) buffer highp float j, layout( column_major std430) buffer highp 4-component vector of float k})
0:67 Constant:
0:67 1 (const int)
0:67 texture ( global highp 4-component vector of float)
0:67 't1' ( uniform highp sampler2D)
0:67 Constant:
0:67 0.000000
0:67 0.000000
0:68 Branch: Return with expression
0:68 component-wise multiply ( temp highp 4-component vector of float)
0:68 component-wise multiply ( temp highp 4-component vector of float)
0:68 Construct vec4 ( temp highp 4-component vector of float)
0:68 'f' ( temp highp float)
0:68 Construct vec4 ( temp highp 4-component vector of float)
0:68 'v2' ( temp highp 2-component vector of float)
0:68 Constant:
0:68 1.000000
0:68 Constant:
0:68 1.000000
0:68 'v4' ( temp highp 4-component vector of float)
0:71 Function Definition: main( ( global void)
0:71 Function Parameters:
0:72 Sequence
0:72 Sequence
0:72 move second child to first child ( temp highp float)
0:72 'j' ( temp highp float)
0:72 Convert uint to float ( temp highp float)
0:72 Function Call: bar( ( global highp uint)
0:73 move second child to first child ( temp highp 4-component vector of float)
0:73 'o' ( out highp 4-component vector of float)
0:73 vector-scale ( temp highp 4-component vector of float)
0:73 'j' ( temp highp float)
0:73 Function Call: foo( ( global highp 4-component vector of float)
0:? Linker Objects
0:? 'o' ( out highp 4-component vector of float)
0:? 'anon@0' (layout( column_major std140) uniform block{ uniform highp 4-component vector of float a, uniform highp 2-component vector of float b, uniform highp 2-component vector of float c, uniform 10-element array of highp 4-component vector of float d, uniform structure{ global highp 2-component vector of float x, global highp float y, global highp uint z} structUniform})
0:? 't1' ( uniform highp sampler2D)
0:? 'anon@1' (layout( column_major std140) uniform block{layout( column_major std140) uniform highp float j, layout( column_major std140) uniform highp 4-component vector of float k})
0:? 'bufferInstance' (layout( column_major std430) buffer block{layout( column_major std430) buffer highp float j, layout( column_major std430) buffer highp 4-component vector of float k})
0:? 'anon@2' (layout( column_major std430) buffer block{ coherent volatile buffer highp uint counter1, coherent volatile buffer highp uint counter2})
0:? 'anon@3' (layout( column_major std430) buffer block{ coherent volatile buffer highp uint counter3})
Linked fragment stage:
Shader version: 460
gl_FragCoord origin is upper left
0:? Sequence
0:36 Function Definition: bar( ( global highp uint)
0:36 Function Parameters:
0:37 Sequence
0:37 Sequence
0:37 move second child to first child ( temp highp uint)
0:37 'j' ( temp highp uint)
0:37 Constant:
0:37 0 (const uint)
0:38 move second child to first child ( temp highp uint)
0:38 'j' ( temp highp uint)
0:38 AtomicAdd ( global highp uint)
0:38 counter1: direct index for structure ( coherent volatile buffer highp uint)
0:38 'anon@2' (layout( column_major std430) buffer block{ coherent volatile buffer highp uint counter1, coherent volatile buffer highp uint counter2})
0:38 Constant:
0:38 0 (const uint)
0:38 Constant:
0:38 1 (const uint)
0:39 move second child to first child ( temp highp uint)
0:39 'j' ( temp highp uint)
0:39 subtract ( temp highp uint)
0:39 AtomicAdd ( global highp uint)
0:39 counter1: direct index for structure ( coherent volatile buffer highp uint)
0:39 'anon@2' (layout( column_major std430) buffer block{ coherent volatile buffer highp uint counter1, coherent volatile buffer highp uint counter2})
0:39 Constant:
0:39 0 (const uint)
0:39 Constant:
0:39 4294967295 (const uint)
0:39 Constant:
0:39 1 (const uint)
0:40 move second child to first child ( temp highp uint)
0:40 'j' ( temp highp uint)
0:40 counter1: direct index for structure ( coherent volatile buffer highp uint)
0:40 'anon@2' (layout( column_major std430) buffer block{ coherent volatile buffer highp uint counter1, coherent volatile buffer highp uint counter2})
0:40 Constant:
0:40 0 (const uint)
0:42 move second child to first child ( temp highp uint)
0:42 'j' ( temp highp uint)
0:42 AtomicAdd ( global highp uint)
0:42 counter1: direct index for structure ( coherent volatile buffer highp uint)
0:42 'anon@2' (layout( column_major std430) buffer block{ coherent volatile buffer highp uint counter1, coherent volatile buffer highp uint counter2})
0:42 Constant:
0:42 0 (const uint)
0:42 Constant:
0:42 1 (const uint)
0:43 move second child to first child ( temp highp uint)
0:43 'j' ( temp highp uint)
0:43 AtomicAdd ( global highp uint)
0:43 counter1: direct index for structure ( coherent volatile buffer highp uint)
0:43 'anon@2' (layout( column_major std430) buffer block{ coherent volatile buffer highp uint counter1, coherent volatile buffer highp uint counter2})
0:43 Constant:
0:43 0 (const uint)
0:43 Constant:
0:43 4294967295 (const uint)
0:44 move second child to first child ( temp highp uint)
0:44 'j' ( temp highp uint)
0:44 AtomicSubtract ( global highp uint)
0:44 counter1: direct index for structure ( coherent volatile buffer highp uint)
0:44 'anon@2' (layout( column_major std430) buffer block{ coherent volatile buffer highp uint counter1, coherent volatile buffer highp uint counter2})
0:44 Constant:
0:44 0 (const uint)
0:44 Constant:
0:44 1 (const uint)
0:46 move second child to first child ( temp highp uint)
0:46 'j' ( temp highp uint)
0:46 AtomicMin ( global highp uint)
0:46 counter1: direct index for structure ( coherent volatile buffer highp uint)
0:46 'anon@2' (layout( column_major std430) buffer block{ coherent volatile buffer highp uint counter1, coherent volatile buffer highp uint counter2})
0:46 Constant:
0:46 0 (const uint)
0:46 'j' ( temp highp uint)
0:47 move second child to first child ( temp highp uint)
0:47 'j' ( temp highp uint)
0:47 AtomicMax ( global highp uint)
0:47 counter1: direct index for structure ( coherent volatile buffer highp uint)
0:47 'anon@2' (layout( column_major std430) buffer block{ coherent volatile buffer highp uint counter1, coherent volatile buffer highp uint counter2})
0:47 Constant:
0:47 0 (const uint)
0:47 'j' ( temp highp uint)
0:48 move second child to first child ( temp highp uint)
0:48 'j' ( temp highp uint)
0:48 AtomicAnd ( global highp uint)
0:48 counter1: direct index for structure ( coherent volatile buffer highp uint)
0:48 'anon@2' (layout( column_major std430) buffer block{ coherent volatile buffer highp uint counter1, coherent volatile buffer highp uint counter2})
0:48 Constant:
0:48 0 (const uint)
0:48 'j' ( temp highp uint)
0:50 move second child to first child ( temp highp uint)
0:50 'j' ( temp highp uint)
0:50 AtomicOr ( global highp uint)
0:50 counter1: direct index for structure ( coherent volatile buffer highp uint)
0:50 'anon@2' (layout( column_major std430) buffer block{ coherent volatile buffer highp uint counter1, coherent volatile buffer highp uint counter2})
0:50 Constant:
0:50 0 (const uint)
0:50 'j' ( temp highp uint)
0:51 move second child to first child ( temp highp uint)
0:51 'j' ( temp highp uint)
0:51 AtomicXor ( global highp uint)
0:51 counter1: direct index for structure ( coherent volatile buffer highp uint)
0:51 'anon@2' (layout( column_major std430) buffer block{ coherent volatile buffer highp uint counter1, coherent volatile buffer highp uint counter2})
0:51 Constant:
0:51 0 (const uint)
0:51 'j' ( temp highp uint)
0:53 move second child to first child ( temp highp uint)
0:53 'j' ( temp highp uint)
0:53 AtomicExchange ( global highp uint)
0:53 counter1: direct index for structure ( coherent volatile buffer highp uint)
0:53 'anon@2' (layout( column_major std430) buffer block{ coherent volatile buffer highp uint counter1, coherent volatile buffer highp uint counter2})
0:53 Constant:
0:53 0 (const uint)
0:53 'j' ( temp highp uint)
0:54 move second child to first child ( temp highp uint)
0:54 'j' ( temp highp uint)
0:54 AtomicCompSwap ( global highp uint)
0:54 counter1: direct index for structure ( coherent volatile buffer highp uint)
0:54 'anon@2' (layout( column_major std430) buffer block{ coherent volatile buffer highp uint counter1, coherent volatile buffer highp uint counter2})
0:54 Constant:
0:54 0 (const uint)
0:54 Constant:
0:54 0 (const uint)
0:54 'j' ( temp highp uint)
0:56 AtomicAdd ( global highp uint)
0:56 counter2: direct index for structure ( coherent volatile buffer highp uint)
0:56 'anon@2' (layout( column_major std430) buffer block{ coherent volatile buffer highp uint counter1, coherent volatile buffer highp uint counter2})
0:56 Constant:
0:56 1 (const uint)
0:56 Constant:
0:56 1 (const uint)
0:57 AtomicAdd ( global highp uint)
0:57 counter3: direct index for structure ( coherent volatile buffer highp uint)
0:57 'anon@3' (layout( column_major std430) buffer block{ coherent volatile buffer highp uint counter3})
0:57 Constant:
0:57 0 (const uint)
0:57 Constant:
0:57 1 (const uint)
0:59 MemoryBarrierBuffer ( global void)
0:61 Branch: Return with expression
0:61 'j' ( temp highp uint)
0:64 Function Definition: foo( ( global highp 4-component vector of float)
0:64 Function Parameters:
0:65 Sequence
0:65 Sequence
0:65 move second child to first child ( temp highp float)
0:65 'f' ( temp highp float)
0:65 add ( temp highp float)
0:65 add ( temp highp float)
0:65 add ( temp highp float)
0:65 j: direct index for structure (layout( column_major std140) uniform highp float)
0:65 'anon@1' (layout( column_major std140) uniform block{layout( column_major std140) uniform highp float j, layout( column_major std140) uniform highp 4-component vector of float k})
0:65 Constant:
0:65 0 (const uint)
0:65 j: direct index for structure (layout( column_major std430) buffer highp float)
0:65 'bufferInstance' (layout( column_major std430) buffer block{layout( column_major std430) buffer highp float j, layout( column_major std430) buffer highp 4-component vector of float k})
0:65 Constant:
0:65 0 (const int)
0:65 y: direct index for structure ( global highp float)
0:65 structUniform: direct index for structure ( uniform structure{ global highp 2-component vector of float x, global highp float y, global highp uint z})
0:65 'anon@0' (layout( column_major std140) uniform block{ uniform highp 4-component vector of float a, uniform highp 2-component vector of float b, uniform highp 2-component vector of float c, uniform 10-element array of highp 4-component vector of float d, uniform structure{ global highp 2-component vector of float x, global highp float y, global highp uint z} structUniform})
0:65 Constant:
0:65 4 (const uint)
0:65 Constant:
0:65 1 (const int)
0:65 Convert uint to float ( temp highp float)
0:65 z: direct index for structure ( global highp uint)
0:65 structUniform: direct index for structure ( uniform structure{ global highp 2-component vector of float x, global highp float y, global highp uint z})
0:65 'anon@0' (layout( column_major std140) uniform block{ uniform highp 4-component vector of float a, uniform highp 2-component vector of float b, uniform highp 2-component vector of float c, uniform 10-element array of highp 4-component vector of float d, uniform structure{ global highp 2-component vector of float x, global highp float y, global highp uint z} structUniform})
0:65 Constant:
0:65 4 (const uint)
0:65 Constant:
0:65 2 (const int)
0:66 Sequence
0:66 move second child to first child ( temp highp 2-component vector of float)
0:66 'v2' ( temp highp 2-component vector of float)
0:66 add ( temp highp 2-component vector of float)
0:66 add ( temp highp 2-component vector of float)
0:66 b: direct index for structure ( uniform highp 2-component vector of float)
0:66 'anon@0' (layout( column_major std140) uniform block{ uniform highp 4-component vector of float a, uniform highp 2-component vector of float b, uniform highp 2-component vector of float c, uniform 10-element array of highp 4-component vector of float d, uniform structure{ global highp 2-component vector of float x, global highp float y, global highp uint z} structUniform})
0:66 Constant:
0:66 1 (const uint)
0:66 c: direct index for structure ( uniform highp 2-component vector of float)
0:66 'anon@0' (layout( column_major std140) uniform block{ uniform highp 4-component vector of float a, uniform highp 2-component vector of float b, uniform highp 2-component vector of float c, uniform 10-element array of highp 4-component vector of float d, uniform structure{ global highp 2-component vector of float x, global highp float y, global highp uint z} structUniform})
0:66 Constant:
0:66 2 (const uint)
0:66 x: direct index for structure ( global highp 2-component vector of float)
0:66 structUniform: direct index for structure ( uniform structure{ global highp 2-component vector of float x, global highp float y, global highp uint z})
0:66 'anon@0' (layout( column_major std140) uniform block{ uniform highp 4-component vector of float a, uniform highp 2-component vector of float b, uniform highp 2-component vector of float c, uniform 10-element array of highp 4-component vector of float d, uniform structure{ global highp 2-component vector of float x, global highp float y, global highp uint z} structUniform})
0:66 Constant:
0:66 4 (const uint)
0:66 Constant:
0:66 0 (const int)
0:67 Sequence
0:67 move second child to first child ( temp highp 4-component vector of float)
0:67 'v4' ( temp highp 4-component vector of float)
0:67 add ( temp highp 4-component vector of float)
0:67 add ( temp highp 4-component vector of float)
0:67 add ( temp highp 4-component vector of float)
0:67 add ( temp highp 4-component vector of float)
0:67 add ( temp highp 4-component vector of float)
0:67 add ( temp highp 4-component vector of float)
0:67 a: direct index for structure ( uniform highp 4-component vector of float)
0:67 'anon@0' (layout( column_major std140) uniform block{ uniform highp 4-component vector of float a, uniform highp 2-component vector of float b, uniform highp 2-component vector of float c, uniform 10-element array of highp 4-component vector of float d, uniform structure{ global highp 2-component vector of float x, global highp float y, global highp uint z} structUniform})
0:67 Constant:
0:67 0 (const uint)
0:67 direct index ( temp highp 4-component vector of float)
0:67 d: direct index for structure ( uniform 10-element array of highp 4-component vector of float)
0:67 'anon@0' (layout( column_major std140) uniform block{ uniform highp 4-component vector of float a, uniform highp 2-component vector of float b, uniform highp 2-component vector of float c, uniform 10-element array of highp 4-component vector of float d, uniform structure{ global highp 2-component vector of float x, global highp float y, global highp uint z} structUniform})
0:67 Constant:
0:67 3 (const uint)
0:67 Constant:
0:67 0 (const int)
0:67 direct index ( temp highp 4-component vector of float)
0:67 d: direct index for structure ( uniform 10-element array of highp 4-component vector of float)
0:67 'anon@0' (layout( column_major std140) uniform block{ uniform highp 4-component vector of float a, uniform highp 2-component vector of float b, uniform highp 2-component vector of float c, uniform 10-element array of highp 4-component vector of float d, uniform structure{ global highp 2-component vector of float x, global highp float y, global highp uint z} structUniform})
0:67 Constant:
0:67 3 (const uint)
0:67 Constant:
0:67 1 (const int)
0:67 direct index ( temp highp 4-component vector of float)
0:67 d: direct index for structure ( uniform 10-element array of highp 4-component vector of float)
0:67 'anon@0' (layout( column_major std140) uniform block{ uniform highp 4-component vector of float a, uniform highp 2-component vector of float b, uniform highp 2-component vector of float c, uniform 10-element array of highp 4-component vector of float d, uniform structure{ global highp 2-component vector of float x, global highp float y, global highp uint z} structUniform})
0:67 Constant:
0:67 3 (const uint)
0:67 Constant:
0:67 2 (const int)
0:67 k: direct index for structure (layout( column_major std140) uniform highp 4-component vector of float)
0:67 'anon@1' (layout( column_major std140) uniform block{layout( column_major std140) uniform highp float j, layout( column_major std140) uniform highp 4-component vector of float k})
0:67 Constant:
0:67 1 (const uint)
0:67 k: direct index for structure (layout( column_major std430) buffer highp 4-component vector of float)
0:67 'bufferInstance' (layout( column_major std430) buffer block{layout( column_major std430) buffer highp float j, layout( column_major std430) buffer highp 4-component vector of float k})
0:67 Constant:
0:67 1 (const int)
0:67 texture ( global highp 4-component vector of float)
0:67 't1' ( uniform highp sampler2D)
0:67 Constant:
0:67 0.000000
0:67 0.000000
0:68 Branch: Return with expression
0:68 component-wise multiply ( temp highp 4-component vector of float)
0:68 component-wise multiply ( temp highp 4-component vector of float)
0:68 Construct vec4 ( temp highp 4-component vector of float)
0:68 'f' ( temp highp float)
0:68 Construct vec4 ( temp highp 4-component vector of float)
0:68 'v2' ( temp highp 2-component vector of float)
0:68 Constant:
0:68 1.000000
0:68 Constant:
0:68 1.000000
0:68 'v4' ( temp highp 4-component vector of float)
0:71 Function Definition: main( ( global void)
0:71 Function Parameters:
0:72 Sequence
0:72 Sequence
0:72 move second child to first child ( temp highp float)
0:72 'j' ( temp highp float)
0:72 Convert uint to float ( temp highp float)
0:72 Function Call: bar( ( global highp uint)
0:73 move second child to first child ( temp highp 4-component vector of float)
0:73 'o' ( out highp 4-component vector of float)
0:73 vector-scale ( temp highp 4-component vector of float)
0:73 'j' ( temp highp float)
0:73 Function Call: foo( ( global highp 4-component vector of float)
0:? Linker Objects
0:? 'o' ( out highp 4-component vector of float)
0:? 'anon@0' (layout( column_major std140) uniform block{ uniform highp 4-component vector of float a, uniform highp 2-component vector of float b, uniform highp 2-component vector of float c, uniform 10-element array of highp 4-component vector of float d, uniform structure{ global highp 2-component vector of float x, global highp float y, global highp uint z} structUniform})
0:? 't1' ( uniform highp sampler2D)
0:? 'anon@1' (layout( column_major std140) uniform block{layout( column_major std140) uniform highp float j, layout( column_major std140) uniform highp 4-component vector of float k})
0:? 'bufferInstance' (layout( column_major std430) buffer block{layout( column_major std430) buffer highp float j, layout( column_major std430) buffer highp 4-component vector of float k})
0:? 'anon@2' (layout( column_major std430) buffer block{ coherent volatile buffer highp uint counter1, coherent volatile buffer highp uint counter2})
0:? 'anon@3' (layout( column_major std430) buffer block{ coherent volatile buffer highp uint counter3})
// Module Version 10000
// Generated by (magic number): 8000a
// Id's are bound by 163
Capability Shader
1: ExtInstImport "GLSL.std.450"
MemoryModel Logical GLSL450
EntryPoint Fragment 4 "main" 159
ExecutionMode 4 OriginUpperLeft
Source GLSL 460
Name 4 "main"
Name 8 "bar("
Name 13 "foo("
Name 16 "j"
Name 18 "gl_AtomicCounterBlock_0"
MemberName 18(gl_AtomicCounterBlock_0) 0 "counter1"
MemberName 18(gl_AtomicCounterBlock_0) 1 "counter2"
Name 20 ""
Name 63 "gl_AtomicCounterBlock_1"
MemberName 63(gl_AtomicCounterBlock_1) 0 "counter3"
Name 65 ""
Name 73 "f"
Name 74 "UniformBlock"
MemberName 74(UniformBlock) 0 "j"
MemberName 74(UniformBlock) 1 "k"
Name 76 ""
Name 80 "BufferBlock"
MemberName 80(BufferBlock) 0 "j"
MemberName 80(BufferBlock) 1 "k"
Name 82 "bufferInstance"
Name 89 "e"
MemberName 89(e) 0 "x"
MemberName 89(e) 1 "y"
MemberName 89(e) 2 "z"
Name 90 "gl_DefaultUniformBlock"
MemberName 90(gl_DefaultUniformBlock) 0 "a"
MemberName 90(gl_DefaultUniformBlock) 1 "b"
MemberName 90(gl_DefaultUniformBlock) 2 "c"
MemberName 90(gl_DefaultUniformBlock) 3 "d"
MemberName 90(gl_DefaultUniformBlock) 4 "structUniform"
Name 92 ""
Name 103 "v2"
Name 114 "v4"
Name 137 "t1"
Name 155 "j"
Name 159 "o"
MemberDecorate 18(gl_AtomicCounterBlock_0) 0 Coherent
MemberDecorate 18(gl_AtomicCounterBlock_0) 0 Volatile
MemberDecorate 18(gl_AtomicCounterBlock_0) 0 Coherent
MemberDecorate 18(gl_AtomicCounterBlock_0) 0 Offset 0
MemberDecorate 18(gl_AtomicCounterBlock_0) 1 Coherent
MemberDecorate 18(gl_AtomicCounterBlock_0) 1 Volatile
MemberDecorate 18(gl_AtomicCounterBlock_0) 1 Coherent
MemberDecorate 18(gl_AtomicCounterBlock_0) 1 Offset 4
Decorate 18(gl_AtomicCounterBlock_0) BufferBlock
Decorate 20 DescriptorSet 0
Decorate 20 Binding 4
MemberDecorate 63(gl_AtomicCounterBlock_1) 0 Coherent
MemberDecorate 63(gl_AtomicCounterBlock_1) 0 Volatile
MemberDecorate 63(gl_AtomicCounterBlock_1) 0 Coherent
MemberDecorate 63(gl_AtomicCounterBlock_1) 0 Offset 0
Decorate 63(gl_AtomicCounterBlock_1) BufferBlock
Decorate 65 DescriptorSet 0
Decorate 65 Binding 5
MemberDecorate 74(UniformBlock) 0 Offset 0
MemberDecorate 74(UniformBlock) 1 Offset 16
Decorate 74(UniformBlock) Block
Decorate 76 DescriptorSet 0
Decorate 76 Binding 2
MemberDecorate 80(BufferBlock) 0 Offset 0
MemberDecorate 80(BufferBlock) 1 Offset 16
Decorate 80(BufferBlock) BufferBlock
Decorate 82(bufferInstance) DescriptorSet 0
Decorate 82(bufferInstance) Binding 3
Decorate 88 ArrayStride 16
MemberDecorate 89(e) 0 Offset 0
MemberDecorate 89(e) 1 Offset 8
MemberDecorate 89(e) 2 Offset 12
MemberDecorate 90(gl_DefaultUniformBlock) 0 Offset 0
MemberDecorate 90(gl_DefaultUniformBlock) 1 Offset 16
MemberDecorate 90(gl_DefaultUniformBlock) 2 Offset 24
MemberDecorate 90(gl_DefaultUniformBlock) 3 Offset 32
MemberDecorate 90(gl_DefaultUniformBlock) 4 Offset 192
Decorate 90(gl_DefaultUniformBlock) Block
Decorate 92 DescriptorSet 0
Decorate 92 Binding 0
Decorate 137(t1) DescriptorSet 0
Decorate 137(t1) Binding 1
Decorate 159(o) Location 0
2: TypeVoid
3: TypeFunction 2
6: TypeInt 32 0
7: TypeFunction 6(int)
10: TypeFloat 32
11: TypeVector 10(float) 4
12: TypeFunction 11(fvec4)
15: TypePointer Function 6(int)
17: 6(int) Constant 0
18(gl_AtomicCounterBlock_0): TypeStruct 6(int) 6(int)
19: TypePointer Uniform 18(gl_AtomicCounterBlock_0)
20: 19(ptr) Variable Uniform
21: TypeInt 32 1
22: 21(int) Constant 0
23: TypePointer Uniform 6(int)
25: 6(int) Constant 1
28: 6(int) Constant 4294967295
60: 21(int) Constant 1
63(gl_AtomicCounterBlock_1): TypeStruct 6(int)
64: TypePointer Uniform 63(gl_AtomicCounterBlock_1)
65: 64(ptr) Variable Uniform
68: 6(int) Constant 72
72: TypePointer Function 10(float)
74(UniformBlock): TypeStruct 10(float) 11(fvec4)
75: TypePointer Uniform 74(UniformBlock)
76: 75(ptr) Variable Uniform
77: TypePointer Uniform 10(float)
80(BufferBlock): TypeStruct 10(float) 11(fvec4)
81: TypePointer Uniform 80(BufferBlock)
82(bufferInstance): 81(ptr) Variable Uniform
86: TypeVector 10(float) 2
87: 6(int) Constant 10
88: TypeArray 11(fvec4) 87
89(e): TypeStruct 86(fvec2) 10(float) 6(int)
90(gl_DefaultUniformBlock): TypeStruct 11(fvec4) 86(fvec2) 86(fvec2) 88 89(e)
91: TypePointer Uniform 90(gl_DefaultUniformBlock)
92: 91(ptr) Variable Uniform
93: 21(int) Constant 4
97: 21(int) Constant 2
102: TypePointer Function 86(fvec2)
104: TypePointer Uniform 86(fvec2)
113: TypePointer Function 11(fvec4)
115: TypePointer Uniform 11(fvec4)
118: 21(int) Constant 3
134: TypeImage 10(float) 2D sampled format:Unknown
135: TypeSampledImage 134
136: TypePointer UniformConstant 135
137(t1): 136(ptr) Variable UniformConstant
139: 10(float) Constant 0
140: 86(fvec2) ConstantComposite 139 139
146: 10(float) Constant 1065353216
158: TypePointer Output 11(fvec4)
159(o): 158(ptr) Variable Output
4(main): 2 Function None 3
5: Label
155(j): 72(ptr) Variable Function
156: 6(int) FunctionCall 8(bar()
157: 10(float) ConvertUToF 156
Store 155(j) 157
160: 10(float) Load 155(j)
161: 11(fvec4) FunctionCall 13(foo()
162: 11(fvec4) VectorTimesScalar 161 160
Store 159(o) 162
Return
FunctionEnd
8(bar(): 6(int) Function None 7
9: Label
16(j): 15(ptr) Variable Function
Store 16(j) 17
24: 23(ptr) AccessChain 20 22
26: 6(int) AtomicIAdd 24 25 17 25
Store 16(j) 26
27: 23(ptr) AccessChain 20 22
29: 6(int) AtomicIAdd 27 25 17 28
30: 6(int) ISub 29 25
Store 16(j) 30
31: 23(ptr) AccessChain 20 22
32: 6(int) Load 31
Store 16(j) 32
33: 23(ptr) AccessChain 20 22
34: 6(int) AtomicIAdd 33 25 17 25
Store 16(j) 34
35: 23(ptr) AccessChain 20 22
36: 6(int) AtomicIAdd 35 25 17 28
Store 16(j) 36
37: 23(ptr) AccessChain 20 22
38: 6(int) AtomicISub 37 25 17 25
Store 16(j) 38
39: 23(ptr) AccessChain 20 22
40: 6(int) Load 16(j)
41: 6(int) AtomicUMin 39 25 17 40
Store 16(j) 41
42: 23(ptr) AccessChain 20 22
43: 6(int) Load 16(j)
44: 6(int) AtomicUMax 42 25 17 43
Store 16(j) 44
45: 23(ptr) AccessChain 20 22
46: 6(int) Load 16(j)
47: 6(int) AtomicAnd 45 25 17 46
Store 16(j) 47
48: 23(ptr) AccessChain 20 22
49: 6(int) Load 16(j)
50: 6(int) AtomicOr 48 25 17 49
Store 16(j) 50
51: 23(ptr) AccessChain 20 22
52: 6(int) Load 16(j)
53: 6(int) AtomicXor 51 25 17 52
Store 16(j) 53
54: 23(ptr) AccessChain 20 22
55: 6(int) Load 16(j)
56: 6(int) AtomicExchange 54 25 17 55
Store 16(j) 56
57: 23(ptr) AccessChain 20 22
58: 6(int) Load 16(j)
59: 6(int) AtomicCompareExchange 57 25 17 17 58 17
Store 16(j) 59
61: 23(ptr) AccessChain 20 60
62: 6(int) AtomicIAdd 61 25 17 25
66: 23(ptr) AccessChain 65 22
67: 6(int) AtomicIAdd 66 25 17 25
MemoryBarrier 25 68
69: 6(int) Load 16(j)
ReturnValue 69
FunctionEnd
13(foo(): 11(fvec4) Function None 12
14: Label
73(f): 72(ptr) Variable Function
103(v2): 102(ptr) Variable Function
114(v4): 113(ptr) Variable Function
78: 77(ptr) AccessChain 76 22
79: 10(float) Load 78
83: 77(ptr) AccessChain 82(bufferInstance) 22
84: 10(float) Load 83
85: 10(float) FAdd 79 84
94: 77(ptr) AccessChain 92 93 60
95: 10(float) Load 94
96: 10(float) FAdd 85 95
98: 23(ptr) AccessChain 92 93 97
99: 6(int) Load 98
100: 10(float) ConvertUToF 99
101: 10(float) FAdd 96 100
Store 73(f) 101
105: 104(ptr) AccessChain 92 60
106: 86(fvec2) Load 105
107: 104(ptr) AccessChain 92 97
108: 86(fvec2) Load 107
109: 86(fvec2) FAdd 106 108
110: 104(ptr) AccessChain 92 93 22
111: 86(fvec2) Load 110
112: 86(fvec2) FAdd 109 111
Store 103(v2) 112
116: 115(ptr) AccessChain 92 22
117: 11(fvec4) Load 116
119: 115(ptr) AccessChain 92 118 22
120: 11(fvec4) Load 119
121: 11(fvec4) FAdd 117 120
122: 115(ptr) AccessChain 92 118 60
123: 11(fvec4) Load 122
124: 11(fvec4) FAdd 121 123
125: 115(ptr) AccessChain 92 118 97
126: 11(fvec4) Load 125
127: 11(fvec4) FAdd 124 126
128: 115(ptr) AccessChain 76 60
129: 11(fvec4) Load 128
130: 11(fvec4) FAdd 127 129
131: 115(ptr) AccessChain 82(bufferInstance) 60
132: 11(fvec4) Load 131
133: 11(fvec4) FAdd 130 132
138: 135 Load 137(t1)
141: 11(fvec4) ImageSampleImplicitLod 138 140
142: 11(fvec4) FAdd 133 141
Store 114(v4) 142
143: 10(float) Load 73(f)
144: 11(fvec4) CompositeConstruct 143 143 143 143
145: 86(fvec2) Load 103(v2)
147: 10(float) CompositeExtract 145 0
148: 10(float) CompositeExtract 145 1
149: 11(fvec4) CompositeConstruct 147 148 146 146
150: 11(fvec4) FMul 144 149
151: 11(fvec4) Load 114(v4)
152: 11(fvec4) FMul 150 151
ReturnValue 152
FunctionEnd

View File

@@ -0,0 +1,515 @@
vk.relaxed.link1.frag
Shader version: 460
gl_FragCoord origin is upper left
0:? Sequence
0:19 Function Definition: bar( ( global highp 4-component vector of float)
0:19 Function Parameters:
0:20 Sequence
0:20 Sequence
0:20 move second child to first child ( temp highp uint)
0:20 'j' ( temp highp uint)
0:20 add ( temp highp uint)
0:20 AtomicAdd ( global highp uint)
0:20 counter1: direct index for structure ( coherent volatile buffer highp uint)
0:20 'anon@1' (layout( column_major std430) buffer block{ coherent volatile buffer highp uint counter1, coherent volatile buffer highp uint counter2})
0:20 Constant:
0:20 0 (const uint)
0:20 Constant:
0:20 1 (const uint)
0:20 subtract ( temp highp uint)
0:20 AtomicAdd ( global highp uint)
0:20 counter2: direct index for structure ( coherent volatile buffer highp uint)
0:20 'anon@1' (layout( column_major std430) buffer block{ coherent volatile buffer highp uint counter1, coherent volatile buffer highp uint counter2})
0:20 Constant:
0:20 1 (const uint)
0:20 Constant:
0:20 4294967295 (const uint)
0:20 Constant:
0:20 1 (const uint)
0:21 Sequence
0:21 move second child to first child ( temp highp 4-component vector of float)
0:21 'v' ( temp highp 4-component vector of float)
0:21 add ( temp highp 4-component vector of float)
0:21 add ( temp highp 4-component vector of float)
0:21 add ( temp highp 4-component vector of float)
0:21 a: direct index for structure ( uniform highp 4-component vector of float)
0:21 'anon@0' (layout( column_major std140) uniform block{ uniform highp 4-component vector of float a, uniform highp 2-component vector of float b1, uniform highp 2-component vector of float b2, uniform highp 4-component vector of float c1, uniform highp 4-component vector of float d})
0:21 Constant:
0:21 0 (const uint)
0:21 Construct vec4 ( temp highp 4-component vector of float)
0:21 direct index ( temp highp float)
0:21 b1: direct index for structure ( uniform highp 2-component vector of float)
0:21 'anon@0' (layout( column_major std140) uniform block{ uniform highp 4-component vector of float a, uniform highp 2-component vector of float b1, uniform highp 2-component vector of float b2, uniform highp 4-component vector of float c1, uniform highp 4-component vector of float d})
0:21 Constant:
0:21 1 (const uint)
0:21 Constant:
0:21 0 (const int)
0:21 direct index ( temp highp float)
0:21 b1: direct index for structure ( uniform highp 2-component vector of float)
0:21 'anon@0' (layout( column_major std140) uniform block{ uniform highp 4-component vector of float a, uniform highp 2-component vector of float b1, uniform highp 2-component vector of float b2, uniform highp 4-component vector of float c1, uniform highp 4-component vector of float d})
0:21 Constant:
0:21 1 (const uint)
0:21 Constant:
0:21 1 (const int)
0:21 direct index ( temp highp float)
0:21 b2: direct index for structure ( uniform highp 2-component vector of float)
0:21 'anon@0' (layout( column_major std140) uniform block{ uniform highp 4-component vector of float a, uniform highp 2-component vector of float b1, uniform highp 2-component vector of float b2, uniform highp 4-component vector of float c1, uniform highp 4-component vector of float d})
0:21 Constant:
0:21 2 (const uint)
0:21 Constant:
0:21 0 (const int)
0:21 direct index ( temp highp float)
0:21 b2: direct index for structure ( uniform highp 2-component vector of float)
0:21 'anon@0' (layout( column_major std140) uniform block{ uniform highp 4-component vector of float a, uniform highp 2-component vector of float b1, uniform highp 2-component vector of float b2, uniform highp 4-component vector of float c1, uniform highp 4-component vector of float d})
0:21 Constant:
0:21 2 (const uint)
0:21 Constant:
0:21 1 (const int)
0:21 c1: direct index for structure ( uniform highp 4-component vector of float)
0:21 'anon@0' (layout( column_major std140) uniform block{ uniform highp 4-component vector of float a, uniform highp 2-component vector of float b1, uniform highp 2-component vector of float b2, uniform highp 4-component vector of float c1, uniform highp 4-component vector of float d})
0:21 Constant:
0:21 3 (const uint)
0:21 d: direct index for structure ( uniform highp 4-component vector of float)
0:21 'anon@0' (layout( column_major std140) uniform block{ uniform highp 4-component vector of float a, uniform highp 2-component vector of float b1, uniform highp 2-component vector of float b2, uniform highp 4-component vector of float c1, uniform highp 4-component vector of float d})
0:21 Constant:
0:21 4 (const uint)
0:23 Branch: Return with expression
0:23 vector-scale ( temp highp 4-component vector of float)
0:23 Convert uint to float ( temp highp float)
0:23 'j' ( temp highp uint)
0:23 'v' ( temp highp 4-component vector of float)
0:26 Function Definition: main( ( global void)
0:26 Function Parameters:
0:27 Sequence
0:27 move second child to first child ( temp highp 4-component vector of float)
0:27 'o' ( out highp 4-component vector of float)
0:27 add ( temp highp 4-component vector of float)
0:27 Function Call: foo( ( global highp 4-component vector of float)
0:27 Function Call: bar( ( global highp 4-component vector of float)
0:? Linker Objects
0:? 'o' ( out highp 4-component vector of float)
0:? 'anon@0' (layout( column_major std140) uniform block{ uniform highp 4-component vector of float a, uniform highp 2-component vector of float b1, uniform highp 2-component vector of float b2, uniform highp 4-component vector of float c1, uniform highp 4-component vector of float d})
0:? 'anon@1' (layout( column_major std430) buffer block{ coherent volatile buffer highp uint counter1, coherent volatile buffer highp uint counter2})
vk.relaxed.link2.frag
Shader version: 460
gl_FragCoord origin is upper left
0:? Sequence
0:14 Function Definition: foo( ( global highp 4-component vector of float)
0:14 Function Parameters:
0:15 Sequence
0:15 Sequence
0:15 move second child to first child ( temp highp uint)
0:15 'j' ( temp highp uint)
0:15 add ( temp highp uint)
0:15 AtomicAdd ( global highp uint)
0:15 counter2: direct index for structure ( coherent volatile buffer highp uint)
0:15 'anon@1' (layout( column_major std430) buffer block{ coherent volatile buffer highp uint counter3, coherent volatile buffer highp uint counter2})
0:15 Constant:
0:15 1 (const uint)
0:15 Constant:
0:15 1 (const uint)
0:15 subtract ( temp highp uint)
0:15 AtomicAdd ( global highp uint)
0:15 counter3: direct index for structure ( coherent volatile buffer highp uint)
0:15 'anon@1' (layout( column_major std430) buffer block{ coherent volatile buffer highp uint counter3, coherent volatile buffer highp uint counter2})
0:15 Constant:
0:15 0 (const uint)
0:15 Constant:
0:15 4294967295 (const uint)
0:15 Constant:
0:15 1 (const uint)
0:16 Sequence
0:16 move second child to first child ( temp highp 4-component vector of float)
0:16 'v' ( temp highp 4-component vector of float)
0:16 add ( temp highp 4-component vector of float)
0:16 add ( temp highp 4-component vector of float)
0:16 add ( temp highp 4-component vector of float)
0:16 a: direct index for structure ( uniform highp 4-component vector of float)
0:16 'anon@0' (layout( column_major std140) uniform block{ uniform highp 4-component vector of float a, uniform highp 2-component vector of float b2, uniform highp 2-component vector of float b1, uniform highp 4-component vector of float c2, uniform highp 4-component vector of float d})
0:16 Constant:
0:16 0 (const uint)
0:16 Construct vec4 ( temp highp 4-component vector of float)
0:16 direct index ( temp highp float)
0:16 b1: direct index for structure ( uniform highp 2-component vector of float)
0:16 'anon@0' (layout( column_major std140) uniform block{ uniform highp 4-component vector of float a, uniform highp 2-component vector of float b2, uniform highp 2-component vector of float b1, uniform highp 4-component vector of float c2, uniform highp 4-component vector of float d})
0:16 Constant:
0:16 2 (const uint)
0:16 Constant:
0:16 0 (const int)
0:16 direct index ( temp highp float)
0:16 b1: direct index for structure ( uniform highp 2-component vector of float)
0:16 'anon@0' (layout( column_major std140) uniform block{ uniform highp 4-component vector of float a, uniform highp 2-component vector of float b2, uniform highp 2-component vector of float b1, uniform highp 4-component vector of float c2, uniform highp 4-component vector of float d})
0:16 Constant:
0:16 2 (const uint)
0:16 Constant:
0:16 1 (const int)
0:16 direct index ( temp highp float)
0:16 b2: direct index for structure ( uniform highp 2-component vector of float)
0:16 'anon@0' (layout( column_major std140) uniform block{ uniform highp 4-component vector of float a, uniform highp 2-component vector of float b2, uniform highp 2-component vector of float b1, uniform highp 4-component vector of float c2, uniform highp 4-component vector of float d})
0:16 Constant:
0:16 1 (const uint)
0:16 Constant:
0:16 0 (const int)
0:16 direct index ( temp highp float)
0:16 b2: direct index for structure ( uniform highp 2-component vector of float)
0:16 'anon@0' (layout( column_major std140) uniform block{ uniform highp 4-component vector of float a, uniform highp 2-component vector of float b2, uniform highp 2-component vector of float b1, uniform highp 4-component vector of float c2, uniform highp 4-component vector of float d})
0:16 Constant:
0:16 1 (const uint)
0:16 Constant:
0:16 1 (const int)
0:16 c2: direct index for structure ( uniform highp 4-component vector of float)
0:16 'anon@0' (layout( column_major std140) uniform block{ uniform highp 4-component vector of float a, uniform highp 2-component vector of float b2, uniform highp 2-component vector of float b1, uniform highp 4-component vector of float c2, uniform highp 4-component vector of float d})
0:16 Constant:
0:16 3 (const uint)
0:16 d: direct index for structure ( uniform highp 4-component vector of float)
0:16 'anon@0' (layout( column_major std140) uniform block{ uniform highp 4-component vector of float a, uniform highp 2-component vector of float b2, uniform highp 2-component vector of float b1, uniform highp 4-component vector of float c2, uniform highp 4-component vector of float d})
0:16 Constant:
0:16 4 (const uint)
0:18 Branch: Return with expression
0:18 vector-scale ( temp highp 4-component vector of float)
0:18 Convert uint to float ( temp highp float)
0:18 'j' ( temp highp uint)
0:18 'v' ( temp highp 4-component vector of float)
0:? Linker Objects
0:? 'anon@0' (layout( column_major std140) uniform block{ uniform highp 4-component vector of float a, uniform highp 2-component vector of float b2, uniform highp 2-component vector of float b1, uniform highp 4-component vector of float c2, uniform highp 4-component vector of float d})
0:? 'anon@1' (layout( column_major std430) buffer block{ coherent volatile buffer highp uint counter3, coherent volatile buffer highp uint counter2})
Linked fragment stage:
Shader version: 460
gl_FragCoord origin is upper left
0:? Sequence
0:19 Function Definition: bar( ( global highp 4-component vector of float)
0:19 Function Parameters:
0:20 Sequence
0:20 Sequence
0:20 move second child to first child ( temp highp uint)
0:20 'j' ( temp highp uint)
0:20 add ( temp highp uint)
0:20 AtomicAdd ( global highp uint)
0:20 counter1: direct index for structure ( coherent volatile buffer highp uint)
0:20 'anon@1' (layout( column_major std430) buffer block{ coherent volatile buffer highp uint counter1, coherent volatile buffer highp uint counter2, coherent volatile buffer highp uint counter3})
0:20 Constant:
0:20 0 (const uint)
0:20 Constant:
0:20 1 (const uint)
0:20 subtract ( temp highp uint)
0:20 AtomicAdd ( global highp uint)
0:20 counter2: direct index for structure ( coherent volatile buffer highp uint)
0:20 'anon@1' (layout( column_major std430) buffer block{ coherent volatile buffer highp uint counter1, coherent volatile buffer highp uint counter2, coherent volatile buffer highp uint counter3})
0:20 Constant:
0:20 1 (const uint)
0:20 Constant:
0:20 4294967295 (const uint)
0:20 Constant:
0:20 1 (const uint)
0:21 Sequence
0:21 move second child to first child ( temp highp 4-component vector of float)
0:21 'v' ( temp highp 4-component vector of float)
0:21 add ( temp highp 4-component vector of float)
0:21 add ( temp highp 4-component vector of float)
0:21 add ( temp highp 4-component vector of float)
0:21 a: direct index for structure ( uniform highp 4-component vector of float)
0:21 'anon@0' (layout( column_major std140) uniform block{ uniform highp 4-component vector of float a, uniform highp 2-component vector of float b1, uniform highp 2-component vector of float b2, uniform highp 4-component vector of float c1, uniform highp 4-component vector of float d, uniform highp 4-component vector of float c2})
0:21 Constant:
0:21 0 (const uint)
0:21 Construct vec4 ( temp highp 4-component vector of float)
0:21 direct index ( temp highp float)
0:21 b1: direct index for structure ( uniform highp 2-component vector of float)
0:21 'anon@0' (layout( column_major std140) uniform block{ uniform highp 4-component vector of float a, uniform highp 2-component vector of float b1, uniform highp 2-component vector of float b2, uniform highp 4-component vector of float c1, uniform highp 4-component vector of float d, uniform highp 4-component vector of float c2})
0:21 Constant:
0:21 1 (const uint)
0:21 Constant:
0:21 0 (const int)
0:21 direct index ( temp highp float)
0:21 b1: direct index for structure ( uniform highp 2-component vector of float)
0:21 'anon@0' (layout( column_major std140) uniform block{ uniform highp 4-component vector of float a, uniform highp 2-component vector of float b1, uniform highp 2-component vector of float b2, uniform highp 4-component vector of float c1, uniform highp 4-component vector of float d, uniform highp 4-component vector of float c2})
0:21 Constant:
0:21 1 (const uint)
0:21 Constant:
0:21 1 (const int)
0:21 direct index ( temp highp float)
0:21 b2: direct index for structure ( uniform highp 2-component vector of float)
0:21 'anon@0' (layout( column_major std140) uniform block{ uniform highp 4-component vector of float a, uniform highp 2-component vector of float b1, uniform highp 2-component vector of float b2, uniform highp 4-component vector of float c1, uniform highp 4-component vector of float d, uniform highp 4-component vector of float c2})
0:21 Constant:
0:21 2 (const uint)
0:21 Constant:
0:21 0 (const int)
0:21 direct index ( temp highp float)
0:21 b2: direct index for structure ( uniform highp 2-component vector of float)
0:21 'anon@0' (layout( column_major std140) uniform block{ uniform highp 4-component vector of float a, uniform highp 2-component vector of float b1, uniform highp 2-component vector of float b2, uniform highp 4-component vector of float c1, uniform highp 4-component vector of float d, uniform highp 4-component vector of float c2})
0:21 Constant:
0:21 2 (const uint)
0:21 Constant:
0:21 1 (const int)
0:21 c1: direct index for structure ( uniform highp 4-component vector of float)
0:21 'anon@0' (layout( column_major std140) uniform block{ uniform highp 4-component vector of float a, uniform highp 2-component vector of float b1, uniform highp 2-component vector of float b2, uniform highp 4-component vector of float c1, uniform highp 4-component vector of float d, uniform highp 4-component vector of float c2})
0:21 Constant:
0:21 3 (const uint)
0:21 d: direct index for structure ( uniform highp 4-component vector of float)
0:21 'anon@0' (layout( column_major std140) uniform block{ uniform highp 4-component vector of float a, uniform highp 2-component vector of float b1, uniform highp 2-component vector of float b2, uniform highp 4-component vector of float c1, uniform highp 4-component vector of float d, uniform highp 4-component vector of float c2})
0:21 Constant:
0:21 4 (const uint)
0:23 Branch: Return with expression
0:23 vector-scale ( temp highp 4-component vector of float)
0:23 Convert uint to float ( temp highp float)
0:23 'j' ( temp highp uint)
0:23 'v' ( temp highp 4-component vector of float)
0:26 Function Definition: main( ( global void)
0:26 Function Parameters:
0:27 Sequence
0:27 move second child to first child ( temp highp 4-component vector of float)
0:27 'o' ( out highp 4-component vector of float)
0:27 add ( temp highp 4-component vector of float)
0:27 Function Call: foo( ( global highp 4-component vector of float)
0:27 Function Call: bar( ( global highp 4-component vector of float)
0:14 Function Definition: foo( ( global highp 4-component vector of float)
0:14 Function Parameters:
0:15 Sequence
0:15 Sequence
0:15 move second child to first child ( temp highp uint)
0:15 'j' ( temp highp uint)
0:15 add ( temp highp uint)
0:15 AtomicAdd ( global highp uint)
0:15 counter2: direct index for structure ( coherent volatile buffer highp uint)
0:15 'anon@1' (layout( column_major std430) buffer block{ coherent volatile buffer highp uint counter1, coherent volatile buffer highp uint counter2, coherent volatile buffer highp uint counter3})
0:15 Constant:
0:15 1 (const uint)
0:15 Constant:
0:15 1 (const uint)
0:15 subtract ( temp highp uint)
0:15 AtomicAdd ( global highp uint)
0:15 counter3: direct index for structure ( coherent volatile buffer highp uint)
0:15 'anon@1' (layout( column_major std430) buffer block{ coherent volatile buffer highp uint counter1, coherent volatile buffer highp uint counter2, coherent volatile buffer highp uint counter3})
0:15 Constant:
0:15 2 (const uint)
0:15 Constant:
0:15 4294967295 (const uint)
0:15 Constant:
0:15 1 (const uint)
0:16 Sequence
0:16 move second child to first child ( temp highp 4-component vector of float)
0:16 'v' ( temp highp 4-component vector of float)
0:16 add ( temp highp 4-component vector of float)
0:16 add ( temp highp 4-component vector of float)
0:16 add ( temp highp 4-component vector of float)
0:16 a: direct index for structure ( uniform highp 4-component vector of float)
0:16 'anon@0' (layout( column_major std140) uniform block{ uniform highp 4-component vector of float a, uniform highp 2-component vector of float b1, uniform highp 2-component vector of float b2, uniform highp 4-component vector of float c1, uniform highp 4-component vector of float d, uniform highp 4-component vector of float c2})
0:16 Constant:
0:16 0 (const uint)
0:16 Construct vec4 ( temp highp 4-component vector of float)
0:16 direct index ( temp highp float)
0:16 b1: direct index for structure ( uniform highp 2-component vector of float)
0:16 'anon@0' (layout( column_major std140) uniform block{ uniform highp 4-component vector of float a, uniform highp 2-component vector of float b1, uniform highp 2-component vector of float b2, uniform highp 4-component vector of float c1, uniform highp 4-component vector of float d, uniform highp 4-component vector of float c2})
0:16 Constant:
0:16 1 (const uint)
0:16 Constant:
0:16 0 (const int)
0:16 direct index ( temp highp float)
0:16 b1: direct index for structure ( uniform highp 2-component vector of float)
0:16 'anon@0' (layout( column_major std140) uniform block{ uniform highp 4-component vector of float a, uniform highp 2-component vector of float b1, uniform highp 2-component vector of float b2, uniform highp 4-component vector of float c1, uniform highp 4-component vector of float d, uniform highp 4-component vector of float c2})
0:16 Constant:
0:16 1 (const uint)
0:16 Constant:
0:16 1 (const int)
0:16 direct index ( temp highp float)
0:16 b2: direct index for structure ( uniform highp 2-component vector of float)
0:16 'anon@0' (layout( column_major std140) uniform block{ uniform highp 4-component vector of float a, uniform highp 2-component vector of float b1, uniform highp 2-component vector of float b2, uniform highp 4-component vector of float c1, uniform highp 4-component vector of float d, uniform highp 4-component vector of float c2})
0:16 Constant:
0:16 2 (const uint)
0:16 Constant:
0:16 0 (const int)
0:16 direct index ( temp highp float)
0:16 b2: direct index for structure ( uniform highp 2-component vector of float)
0:16 'anon@0' (layout( column_major std140) uniform block{ uniform highp 4-component vector of float a, uniform highp 2-component vector of float b1, uniform highp 2-component vector of float b2, uniform highp 4-component vector of float c1, uniform highp 4-component vector of float d, uniform highp 4-component vector of float c2})
0:16 Constant:
0:16 2 (const uint)
0:16 Constant:
0:16 1 (const int)
0:16 c2: direct index for structure ( uniform highp 4-component vector of float)
0:16 'anon@0' (layout( column_major std140) uniform block{ uniform highp 4-component vector of float a, uniform highp 2-component vector of float b1, uniform highp 2-component vector of float b2, uniform highp 4-component vector of float c1, uniform highp 4-component vector of float d, uniform highp 4-component vector of float c2})
0:16 Constant:
0:16 5 (const uint)
0:16 d: direct index for structure ( uniform highp 4-component vector of float)
0:16 'anon@0' (layout( column_major std140) uniform block{ uniform highp 4-component vector of float a, uniform highp 2-component vector of float b1, uniform highp 2-component vector of float b2, uniform highp 4-component vector of float c1, uniform highp 4-component vector of float d, uniform highp 4-component vector of float c2})
0:16 Constant:
0:16 4 (const uint)
0:18 Branch: Return with expression
0:18 vector-scale ( temp highp 4-component vector of float)
0:18 Convert uint to float ( temp highp float)
0:18 'j' ( temp highp uint)
0:18 'v' ( temp highp 4-component vector of float)
0:? Linker Objects
0:? 'o' ( out highp 4-component vector of float)
0:? 'anon@0' (layout( column_major std140) uniform block{ uniform highp 4-component vector of float a, uniform highp 2-component vector of float b1, uniform highp 2-component vector of float b2, uniform highp 4-component vector of float c1, uniform highp 4-component vector of float d, uniform highp 4-component vector of float c2})
0:? 'anon@1' (layout( column_major std430) buffer block{ coherent volatile buffer highp uint counter1, coherent volatile buffer highp uint counter2, coherent volatile buffer highp uint counter3})
// Module Version 10000
// Generated by (magic number): 8000a
// Id's are bound by 105
Capability Shader
1: ExtInstImport "GLSL.std.450"
MemoryModel Logical GLSL450
EntryPoint Fragment 4 "main" 68
ExecutionMode 4 OriginUpperLeft
Source GLSL 460
Name 4 "main"
Name 9 "bar("
Name 11 "foo("
Name 15 "j"
Name 16 "gl_AtomicCounterBlock_0"
MemberName 16(gl_AtomicCounterBlock_0) 0 "counter1"
MemberName 16(gl_AtomicCounterBlock_0) 1 "counter2"
MemberName 16(gl_AtomicCounterBlock_0) 2 "counter3"
Name 18 ""
Name 33 "v"
Name 35 "gl_DefaultUniformBlock"
MemberName 35(gl_DefaultUniformBlock) 0 "a"
MemberName 35(gl_DefaultUniformBlock) 1 "b1"
MemberName 35(gl_DefaultUniformBlock) 2 "b2"
MemberName 35(gl_DefaultUniformBlock) 3 "c1"
MemberName 35(gl_DefaultUniformBlock) 4 "d"
MemberName 35(gl_DefaultUniformBlock) 5 "c2"
Name 37 ""
Name 68 "o"
Name 72 "j"
Name 79 "v"
MemberDecorate 16(gl_AtomicCounterBlock_0) 0 Coherent
MemberDecorate 16(gl_AtomicCounterBlock_0) 0 Volatile
MemberDecorate 16(gl_AtomicCounterBlock_0) 0 Coherent
MemberDecorate 16(gl_AtomicCounterBlock_0) 0 Offset 0
MemberDecorate 16(gl_AtomicCounterBlock_0) 1 Coherent
MemberDecorate 16(gl_AtomicCounterBlock_0) 1 Volatile
MemberDecorate 16(gl_AtomicCounterBlock_0) 1 Coherent
MemberDecorate 16(gl_AtomicCounterBlock_0) 1 Offset 4
MemberDecorate 16(gl_AtomicCounterBlock_0) 2 Coherent
MemberDecorate 16(gl_AtomicCounterBlock_0) 2 Volatile
MemberDecorate 16(gl_AtomicCounterBlock_0) 2 Coherent
MemberDecorate 16(gl_AtomicCounterBlock_0) 2 Offset 8
Decorate 16(gl_AtomicCounterBlock_0) BufferBlock
Decorate 18 DescriptorSet 0
Decorate 18 Binding 1
MemberDecorate 35(gl_DefaultUniformBlock) 0 Offset 0
MemberDecorate 35(gl_DefaultUniformBlock) 1 Offset 16
MemberDecorate 35(gl_DefaultUniformBlock) 2 Offset 24
MemberDecorate 35(gl_DefaultUniformBlock) 3 Offset 32
MemberDecorate 35(gl_DefaultUniformBlock) 4 Offset 48
MemberDecorate 35(gl_DefaultUniformBlock) 5 Offset 64
Decorate 35(gl_DefaultUniformBlock) Block
Decorate 37 DescriptorSet 0
Decorate 37 Binding 0
Decorate 68(o) Location 0
2: TypeVoid
3: TypeFunction 2
6: TypeFloat 32
7: TypeVector 6(float) 4
8: TypeFunction 7(fvec4)
13: TypeInt 32 0
14: TypePointer Function 13(int)
16(gl_AtomicCounterBlock_0): TypeStruct 13(int) 13(int) 13(int)
17: TypePointer Uniform 16(gl_AtomicCounterBlock_0)
18: 17(ptr) Variable Uniform
19: TypeInt 32 1
20: 19(int) Constant 0
21: TypePointer Uniform 13(int)
23: 13(int) Constant 1
24: 13(int) Constant 0
26: 19(int) Constant 1
28: 13(int) Constant 4294967295
32: TypePointer Function 7(fvec4)
34: TypeVector 6(float) 2
35(gl_DefaultUniformBlock): TypeStruct 7(fvec4) 34(fvec2) 34(fvec2) 7(fvec4) 7(fvec4) 7(fvec4)
36: TypePointer Uniform 35(gl_DefaultUniformBlock)
37: 36(ptr) Variable Uniform
38: TypePointer Uniform 7(fvec4)
41: TypePointer Uniform 6(float)
46: 19(int) Constant 2
53: 19(int) Constant 3
57: 19(int) Constant 4
67: TypePointer Output 7(fvec4)
68(o): 67(ptr) Variable Output
92: 19(int) Constant 5
4(main): 2 Function None 3
5: Label
69: 7(fvec4) FunctionCall 11(foo()
70: 7(fvec4) FunctionCall 9(bar()
71: 7(fvec4) FAdd 69 70
Store 68(o) 71
Return
FunctionEnd
9(bar(): 7(fvec4) Function None 8
10: Label
15(j): 14(ptr) Variable Function
33(v): 32(ptr) Variable Function
22: 21(ptr) AccessChain 18 20
25: 13(int) AtomicIAdd 22 23 24 23
27: 21(ptr) AccessChain 18 26
29: 13(int) AtomicIAdd 27 23 24 28
30: 13(int) ISub 29 23
31: 13(int) IAdd 25 30
Store 15(j) 31
39: 38(ptr) AccessChain 37 20
40: 7(fvec4) Load 39
42: 41(ptr) AccessChain 37 26 24
43: 6(float) Load 42
44: 41(ptr) AccessChain 37 26 23
45: 6(float) Load 44
47: 41(ptr) AccessChain 37 46 24
48: 6(float) Load 47
49: 41(ptr) AccessChain 37 46 23
50: 6(float) Load 49
51: 7(fvec4) CompositeConstruct 43 45 48 50
52: 7(fvec4) FAdd 40 51
54: 38(ptr) AccessChain 37 53
55: 7(fvec4) Load 54
56: 7(fvec4) FAdd 52 55
58: 38(ptr) AccessChain 37 57
59: 7(fvec4) Load 58
60: 7(fvec4) FAdd 56 59
Store 33(v) 60
61: 13(int) Load 15(j)
62: 6(float) ConvertUToF 61
63: 7(fvec4) Load 33(v)
64: 7(fvec4) VectorTimesScalar 63 62
ReturnValue 64
FunctionEnd
11(foo(): 7(fvec4) Function None 8
12: Label
72(j): 14(ptr) Variable Function
79(v): 32(ptr) Variable Function
73: 21(ptr) AccessChain 18 26
74: 13(int) AtomicIAdd 73 23 24 23
75: 21(ptr) AccessChain 18 46
76: 13(int) AtomicIAdd 75 23 24 28
77: 13(int) ISub 76 23
78: 13(int) IAdd 74 77
Store 72(j) 78
80: 38(ptr) AccessChain 37 20
81: 7(fvec4) Load 80
82: 41(ptr) AccessChain 37 26 24
83: 6(float) Load 82
84: 41(ptr) AccessChain 37 26 23
85: 6(float) Load 84
86: 41(ptr) AccessChain 37 46 24
87: 6(float) Load 86
88: 41(ptr) AccessChain 37 46 23
89: 6(float) Load 88
90: 7(fvec4) CompositeConstruct 83 85 87 89
91: 7(fvec4) FAdd 81 90
93: 38(ptr) AccessChain 37 92
94: 7(fvec4) Load 93
95: 7(fvec4) FAdd 91 94
96: 38(ptr) AccessChain 37 57
97: 7(fvec4) Load 96
98: 7(fvec4) FAdd 95 97
Store 79(v) 98
99: 13(int) Load 72(j)
100: 6(float) ConvertUToF 99
101: 7(fvec4) Load 79(v)
102: 7(fvec4) VectorTimesScalar 101 100
ReturnValue 102
FunctionEnd

View File

@@ -0,0 +1,717 @@
vk.relaxed.stagelink.vert
Shader version: 460
0:? Sequence
0:18 Function Definition: foo( ( global highp 4-component vector of float)
0:18 Function Parameters:
0:19 Sequence
0:19 Sequence
0:19 move second child to first child ( temp highp uint)
0:19 'j' ( temp highp uint)
0:19 add ( temp highp uint)
0:19 AtomicAdd ( global highp uint)
0:19 counter2: direct index for structure ( coherent volatile buffer highp uint)
0:19 'anon@1' (layout( column_major std430) buffer block{ coherent volatile buffer highp uint counter3, coherent volatile buffer highp uint counter2})
0:19 Constant:
0:19 1 (const uint)
0:19 Constant:
0:19 1 (const uint)
0:19 subtract ( temp highp uint)
0:19 AtomicAdd ( global highp uint)
0:19 counter3: direct index for structure ( coherent volatile buffer highp uint)
0:19 'anon@1' (layout( column_major std430) buffer block{ coherent volatile buffer highp uint counter3, coherent volatile buffer highp uint counter2})
0:19 Constant:
0:19 0 (const uint)
0:19 Constant:
0:19 4294967295 (const uint)
0:19 Constant:
0:19 1 (const uint)
0:20 Sequence
0:20 move second child to first child ( temp highp 4-component vector of float)
0:20 'v' ( temp highp 4-component vector of float)
0:20 add ( temp highp 4-component vector of float)
0:20 add ( temp highp 4-component vector of float)
0:20 add ( temp highp 4-component vector of float)
0:20 a: direct index for structure ( uniform highp 4-component vector of float)
0:20 'anon@0' (layout( column_major std140) uniform block{ uniform highp 4-component vector of float a, uniform highp 2-component vector of float b2, uniform highp 2-component vector of float b1, uniform highp 4-component vector of float c2, uniform highp 4-component vector of float d, uniform 4-element array of highp 4-component vector of float s})
0:20 Constant:
0:20 0 (const uint)
0:20 Construct vec4 ( temp highp 4-component vector of float)
0:20 direct index ( temp highp float)
0:20 b1: direct index for structure ( uniform highp 2-component vector of float)
0:20 'anon@0' (layout( column_major std140) uniform block{ uniform highp 4-component vector of float a, uniform highp 2-component vector of float b2, uniform highp 2-component vector of float b1, uniform highp 4-component vector of float c2, uniform highp 4-component vector of float d, uniform 4-element array of highp 4-component vector of float s})
0:20 Constant:
0:20 2 (const uint)
0:20 Constant:
0:20 0 (const int)
0:20 direct index ( temp highp float)
0:20 b1: direct index for structure ( uniform highp 2-component vector of float)
0:20 'anon@0' (layout( column_major std140) uniform block{ uniform highp 4-component vector of float a, uniform highp 2-component vector of float b2, uniform highp 2-component vector of float b1, uniform highp 4-component vector of float c2, uniform highp 4-component vector of float d, uniform 4-element array of highp 4-component vector of float s})
0:20 Constant:
0:20 2 (const uint)
0:20 Constant:
0:20 1 (const int)
0:20 direct index ( temp highp float)
0:20 b2: direct index for structure ( uniform highp 2-component vector of float)
0:20 'anon@0' (layout( column_major std140) uniform block{ uniform highp 4-component vector of float a, uniform highp 2-component vector of float b2, uniform highp 2-component vector of float b1, uniform highp 4-component vector of float c2, uniform highp 4-component vector of float d, uniform 4-element array of highp 4-component vector of float s})
0:20 Constant:
0:20 1 (const uint)
0:20 Constant:
0:20 0 (const int)
0:20 direct index ( temp highp float)
0:20 b2: direct index for structure ( uniform highp 2-component vector of float)
0:20 'anon@0' (layout( column_major std140) uniform block{ uniform highp 4-component vector of float a, uniform highp 2-component vector of float b2, uniform highp 2-component vector of float b1, uniform highp 4-component vector of float c2, uniform highp 4-component vector of float d, uniform 4-element array of highp 4-component vector of float s})
0:20 Constant:
0:20 1 (const uint)
0:20 Constant:
0:20 1 (const int)
0:20 c2: direct index for structure ( uniform highp 4-component vector of float)
0:20 'anon@0' (layout( column_major std140) uniform block{ uniform highp 4-component vector of float a, uniform highp 2-component vector of float b2, uniform highp 2-component vector of float b1, uniform highp 4-component vector of float c2, uniform highp 4-component vector of float d, uniform 4-element array of highp 4-component vector of float s})
0:20 Constant:
0:20 3 (const uint)
0:20 d: direct index for structure ( uniform highp 4-component vector of float)
0:20 'anon@0' (layout( column_major std140) uniform block{ uniform highp 4-component vector of float a, uniform highp 2-component vector of float b2, uniform highp 2-component vector of float b1, uniform highp 4-component vector of float c2, uniform highp 4-component vector of float d, uniform 4-element array of highp 4-component vector of float s})
0:20 Constant:
0:20 4 (const uint)
0:22 Branch: Return with expression
0:22 vector-scale ( temp highp 4-component vector of float)
0:22 Convert uint to float ( temp highp float)
0:22 'j' ( temp highp uint)
0:22 'v' ( temp highp 4-component vector of float)
0:25 Function Definition: main( ( global void)
0:25 Function Parameters:
0:27 Sequence
0:27 Sequence
0:27 move second child to first child ( temp highp 4-component vector of float)
0:27 'v' ( temp highp 4-component vector of float)
0:27 Function Call: foo( ( global highp 4-component vector of float)
0:28 move second child to first child ( temp highp 4-component vector of float)
0:28 'v' ( temp highp 4-component vector of float)
0:28 add ( temp highp 4-component vector of float)
0:28 'v' ( temp highp 4-component vector of float)
0:28 indirect index ( temp highp 4-component vector of float)
0:28 s: direct index for structure ( uniform 4-element array of highp 4-component vector of float)
0:28 'anon@0' (layout( column_major std140) uniform block{ uniform highp 4-component vector of float a, uniform highp 2-component vector of float b2, uniform highp 2-component vector of float b1, uniform highp 4-component vector of float c2, uniform highp 4-component vector of float d, uniform 4-element array of highp 4-component vector of float s})
0:28 Constant:
0:28 5 (const uint)
0:28 'gl_VertexID' ( in int VertexIndex)
0:29 move second child to first child ( temp highp float)
0:29 direct index ( temp highp float)
0:29 'v' ( temp highp 4-component vector of float)
0:29 Constant:
0:29 0 (const int)
0:29 subtract ( temp highp float)
0:29 direct index ( temp highp float)
0:29 'v' ( temp highp 4-component vector of float)
0:29 Constant:
0:29 0 (const int)
0:29 Convert int to float ( temp highp float)
0:29 'gl_InstanceID' ( in highp int InstanceIndex)
0:30 move second child to first child ( temp highp 4-component vector of float)
0:30 'io' (layout( location=0) smooth out highp 4-component vector of float)
0:30 'v' ( temp highp 4-component vector of float)
0:? Linker Objects
0:? 'io' (layout( location=0) smooth out highp 4-component vector of float)
0:? 'anon@0' (layout( column_major std140) uniform block{ uniform highp 4-component vector of float a, uniform highp 2-component vector of float b2, uniform highp 2-component vector of float b1, uniform highp 4-component vector of float c2, uniform highp 4-component vector of float d, uniform 4-element array of highp 4-component vector of float s})
0:? 'anon@1' (layout( column_major std430) buffer block{ coherent volatile buffer highp uint counter3, coherent volatile buffer highp uint counter2})
0:? 'gl_VertexID' ( in int VertexIndex)
0:? 'gl_InstanceID' ( in int InstanceIndex)
vk.relaxed.stagelink.frag
Shader version: 460
gl_FragCoord origin is upper left
0:? Sequence
0:19 Function Definition: foo( ( global highp 4-component vector of float)
0:19 Function Parameters:
0:20 Sequence
0:20 Sequence
0:20 move second child to first child ( temp highp uint)
0:20 'j' ( temp highp uint)
0:20 add ( temp highp uint)
0:20 AtomicAdd ( global highp uint)
0:20 counter1: direct index for structure ( coherent volatile buffer highp uint)
0:20 'anon@1' (layout( column_major std430) buffer block{ coherent volatile buffer highp uint counter1, coherent volatile buffer highp uint counter2})
0:20 Constant:
0:20 0 (const uint)
0:20 Constant:
0:20 1 (const uint)
0:20 subtract ( temp highp uint)
0:20 AtomicAdd ( global highp uint)
0:20 counter2: direct index for structure ( coherent volatile buffer highp uint)
0:20 'anon@1' (layout( column_major std430) buffer block{ coherent volatile buffer highp uint counter1, coherent volatile buffer highp uint counter2})
0:20 Constant:
0:20 1 (const uint)
0:20 Constant:
0:20 4294967295 (const uint)
0:20 Constant:
0:20 1 (const uint)
0:21 Sequence
0:21 move second child to first child ( temp highp 4-component vector of float)
0:21 'v' ( temp highp 4-component vector of float)
0:21 add ( temp highp 4-component vector of float)
0:21 add ( temp highp 4-component vector of float)
0:21 add ( temp highp 4-component vector of float)
0:21 a: direct index for structure ( uniform highp 4-component vector of float)
0:21 'anon@0' (layout( column_major std140) uniform block{ uniform highp 4-component vector of float a, uniform highp 2-component vector of float b1, uniform highp 2-component vector of float b2, uniform highp 4-component vector of float c1, uniform highp 4-component vector of float d})
0:21 Constant:
0:21 0 (const uint)
0:21 Construct vec4 ( temp highp 4-component vector of float)
0:21 direct index ( temp highp float)
0:21 b1: direct index for structure ( uniform highp 2-component vector of float)
0:21 'anon@0' (layout( column_major std140) uniform block{ uniform highp 4-component vector of float a, uniform highp 2-component vector of float b1, uniform highp 2-component vector of float b2, uniform highp 4-component vector of float c1, uniform highp 4-component vector of float d})
0:21 Constant:
0:21 1 (const uint)
0:21 Constant:
0:21 0 (const int)
0:21 direct index ( temp highp float)
0:21 b1: direct index for structure ( uniform highp 2-component vector of float)
0:21 'anon@0' (layout( column_major std140) uniform block{ uniform highp 4-component vector of float a, uniform highp 2-component vector of float b1, uniform highp 2-component vector of float b2, uniform highp 4-component vector of float c1, uniform highp 4-component vector of float d})
0:21 Constant:
0:21 1 (const uint)
0:21 Constant:
0:21 1 (const int)
0:21 direct index ( temp highp float)
0:21 b2: direct index for structure ( uniform highp 2-component vector of float)
0:21 'anon@0' (layout( column_major std140) uniform block{ uniform highp 4-component vector of float a, uniform highp 2-component vector of float b1, uniform highp 2-component vector of float b2, uniform highp 4-component vector of float c1, uniform highp 4-component vector of float d})
0:21 Constant:
0:21 2 (const uint)
0:21 Constant:
0:21 0 (const int)
0:21 direct index ( temp highp float)
0:21 b2: direct index for structure ( uniform highp 2-component vector of float)
0:21 'anon@0' (layout( column_major std140) uniform block{ uniform highp 4-component vector of float a, uniform highp 2-component vector of float b1, uniform highp 2-component vector of float b2, uniform highp 4-component vector of float c1, uniform highp 4-component vector of float d})
0:21 Constant:
0:21 2 (const uint)
0:21 Constant:
0:21 1 (const int)
0:21 c1: direct index for structure ( uniform highp 4-component vector of float)
0:21 'anon@0' (layout( column_major std140) uniform block{ uniform highp 4-component vector of float a, uniform highp 2-component vector of float b1, uniform highp 2-component vector of float b2, uniform highp 4-component vector of float c1, uniform highp 4-component vector of float d})
0:21 Constant:
0:21 3 (const uint)
0:21 d: direct index for structure ( uniform highp 4-component vector of float)
0:21 'anon@0' (layout( column_major std140) uniform block{ uniform highp 4-component vector of float a, uniform highp 2-component vector of float b1, uniform highp 2-component vector of float b2, uniform highp 4-component vector of float c1, uniform highp 4-component vector of float d})
0:21 Constant:
0:21 4 (const uint)
0:23 Branch: Return with expression
0:23 vector-scale ( temp highp 4-component vector of float)
0:23 Convert uint to float ( temp highp float)
0:23 'j' ( temp highp uint)
0:23 'v' ( temp highp 4-component vector of float)
0:26 Function Definition: main( ( global void)
0:26 Function Parameters:
0:27 Sequence
0:27 move second child to first child ( temp highp 4-component vector of float)
0:27 'o' ( out highp 4-component vector of float)
0:27 add ( temp highp 4-component vector of float)
0:27 'io' (layout( location=0) smooth in highp 4-component vector of float)
0:27 Function Call: foo( ( global highp 4-component vector of float)
0:? Linker Objects
0:? 'io' (layout( location=0) smooth in highp 4-component vector of float)
0:? 'o' ( out highp 4-component vector of float)
0:? 'anon@0' (layout( column_major std140) uniform block{ uniform highp 4-component vector of float a, uniform highp 2-component vector of float b1, uniform highp 2-component vector of float b2, uniform highp 4-component vector of float c1, uniform highp 4-component vector of float d})
0:? 'anon@1' (layout( column_major std430) buffer block{ coherent volatile buffer highp uint counter1, coherent volatile buffer highp uint counter2})
Linked vertex stage:
Linked fragment stage:
Shader version: 460
0:? Sequence
0:18 Function Definition: foo( ( global highp 4-component vector of float)
0:18 Function Parameters:
0:19 Sequence
0:19 Sequence
0:19 move second child to first child ( temp highp uint)
0:19 'j' ( temp highp uint)
0:19 add ( temp highp uint)
0:19 AtomicAdd ( global highp uint)
0:19 counter2: direct index for structure ( coherent volatile buffer highp uint)
0:19 'anon@1' (layout( column_major std430) buffer block{ coherent volatile buffer highp uint counter3, coherent volatile buffer highp uint counter2})
0:19 Constant:
0:19 1 (const uint)
0:19 Constant:
0:19 1 (const uint)
0:19 subtract ( temp highp uint)
0:19 AtomicAdd ( global highp uint)
0:19 counter3: direct index for structure ( coherent volatile buffer highp uint)
0:19 'anon@1' (layout( column_major std430) buffer block{ coherent volatile buffer highp uint counter3, coherent volatile buffer highp uint counter2})
0:19 Constant:
0:19 0 (const uint)
0:19 Constant:
0:19 4294967295 (const uint)
0:19 Constant:
0:19 1 (const uint)
0:20 Sequence
0:20 move second child to first child ( temp highp 4-component vector of float)
0:20 'v' ( temp highp 4-component vector of float)
0:20 add ( temp highp 4-component vector of float)
0:20 add ( temp highp 4-component vector of float)
0:20 add ( temp highp 4-component vector of float)
0:20 a: direct index for structure ( uniform highp 4-component vector of float)
0:20 'anon@0' (layout( column_major std140) uniform block{ uniform highp 4-component vector of float a, uniform highp 2-component vector of float b2, uniform highp 2-component vector of float b1, uniform highp 4-component vector of float c2, uniform highp 4-component vector of float d, uniform 4-element array of highp 4-component vector of float s})
0:20 Constant:
0:20 0 (const uint)
0:20 Construct vec4 ( temp highp 4-component vector of float)
0:20 direct index ( temp highp float)
0:20 b1: direct index for structure ( uniform highp 2-component vector of float)
0:20 'anon@0' (layout( column_major std140) uniform block{ uniform highp 4-component vector of float a, uniform highp 2-component vector of float b2, uniform highp 2-component vector of float b1, uniform highp 4-component vector of float c2, uniform highp 4-component vector of float d, uniform 4-element array of highp 4-component vector of float s})
0:20 Constant:
0:20 2 (const uint)
0:20 Constant:
0:20 0 (const int)
0:20 direct index ( temp highp float)
0:20 b1: direct index for structure ( uniform highp 2-component vector of float)
0:20 'anon@0' (layout( column_major std140) uniform block{ uniform highp 4-component vector of float a, uniform highp 2-component vector of float b2, uniform highp 2-component vector of float b1, uniform highp 4-component vector of float c2, uniform highp 4-component vector of float d, uniform 4-element array of highp 4-component vector of float s})
0:20 Constant:
0:20 2 (const uint)
0:20 Constant:
0:20 1 (const int)
0:20 direct index ( temp highp float)
0:20 b2: direct index for structure ( uniform highp 2-component vector of float)
0:20 'anon@0' (layout( column_major std140) uniform block{ uniform highp 4-component vector of float a, uniform highp 2-component vector of float b2, uniform highp 2-component vector of float b1, uniform highp 4-component vector of float c2, uniform highp 4-component vector of float d, uniform 4-element array of highp 4-component vector of float s})
0:20 Constant:
0:20 1 (const uint)
0:20 Constant:
0:20 0 (const int)
0:20 direct index ( temp highp float)
0:20 b2: direct index for structure ( uniform highp 2-component vector of float)
0:20 'anon@0' (layout( column_major std140) uniform block{ uniform highp 4-component vector of float a, uniform highp 2-component vector of float b2, uniform highp 2-component vector of float b1, uniform highp 4-component vector of float c2, uniform highp 4-component vector of float d, uniform 4-element array of highp 4-component vector of float s})
0:20 Constant:
0:20 1 (const uint)
0:20 Constant:
0:20 1 (const int)
0:20 c2: direct index for structure ( uniform highp 4-component vector of float)
0:20 'anon@0' (layout( column_major std140) uniform block{ uniform highp 4-component vector of float a, uniform highp 2-component vector of float b2, uniform highp 2-component vector of float b1, uniform highp 4-component vector of float c2, uniform highp 4-component vector of float d, uniform 4-element array of highp 4-component vector of float s})
0:20 Constant:
0:20 3 (const uint)
0:20 d: direct index for structure ( uniform highp 4-component vector of float)
0:20 'anon@0' (layout( column_major std140) uniform block{ uniform highp 4-component vector of float a, uniform highp 2-component vector of float b2, uniform highp 2-component vector of float b1, uniform highp 4-component vector of float c2, uniform highp 4-component vector of float d, uniform 4-element array of highp 4-component vector of float s})
0:20 Constant:
0:20 4 (const uint)
0:22 Branch: Return with expression
0:22 vector-scale ( temp highp 4-component vector of float)
0:22 Convert uint to float ( temp highp float)
0:22 'j' ( temp highp uint)
0:22 'v' ( temp highp 4-component vector of float)
0:25 Function Definition: main( ( global void)
0:25 Function Parameters:
0:27 Sequence
0:27 Sequence
0:27 move second child to first child ( temp highp 4-component vector of float)
0:27 'v' ( temp highp 4-component vector of float)
0:27 Function Call: foo( ( global highp 4-component vector of float)
0:28 move second child to first child ( temp highp 4-component vector of float)
0:28 'v' ( temp highp 4-component vector of float)
0:28 add ( temp highp 4-component vector of float)
0:28 'v' ( temp highp 4-component vector of float)
0:28 indirect index ( temp highp 4-component vector of float)
0:28 s: direct index for structure ( uniform 4-element array of highp 4-component vector of float)
0:28 'anon@0' (layout( column_major std140) uniform block{ uniform highp 4-component vector of float a, uniform highp 2-component vector of float b2, uniform highp 2-component vector of float b1, uniform highp 4-component vector of float c2, uniform highp 4-component vector of float d, uniform 4-element array of highp 4-component vector of float s})
0:28 Constant:
0:28 5 (const uint)
0:28 'gl_VertexID' ( in int VertexIndex)
0:29 move second child to first child ( temp highp float)
0:29 direct index ( temp highp float)
0:29 'v' ( temp highp 4-component vector of float)
0:29 Constant:
0:29 0 (const int)
0:29 subtract ( temp highp float)
0:29 direct index ( temp highp float)
0:29 'v' ( temp highp 4-component vector of float)
0:29 Constant:
0:29 0 (const int)
0:29 Convert int to float ( temp highp float)
0:29 'gl_InstanceID' ( in highp int InstanceIndex)
0:30 move second child to first child ( temp highp 4-component vector of float)
0:30 'io' (layout( location=0) smooth out highp 4-component vector of float)
0:30 'v' ( temp highp 4-component vector of float)
0:? Linker Objects
0:? 'io' (layout( location=0) smooth out highp 4-component vector of float)
0:? 'anon@0' (layout( column_major std140) uniform block{ uniform highp 4-component vector of float a, uniform highp 2-component vector of float b2, uniform highp 2-component vector of float b1, uniform highp 4-component vector of float c2, uniform highp 4-component vector of float d, uniform 4-element array of highp 4-component vector of float s})
0:? 'anon@1' (layout( column_major std430) buffer block{ coherent volatile buffer highp uint counter3, coherent volatile buffer highp uint counter2})
0:? 'gl_VertexID' ( in int VertexIndex)
0:? 'gl_InstanceID' ( in int InstanceIndex)
Shader version: 460
gl_FragCoord origin is upper left
0:? Sequence
0:19 Function Definition: foo( ( global highp 4-component vector of float)
0:19 Function Parameters:
0:20 Sequence
0:20 Sequence
0:20 move second child to first child ( temp highp uint)
0:20 'j' ( temp highp uint)
0:20 add ( temp highp uint)
0:20 AtomicAdd ( global highp uint)
0:20 counter1: direct index for structure ( coherent volatile buffer highp uint)
0:20 'anon@1' (layout( column_major std430) buffer block{ coherent volatile buffer highp uint counter1, coherent volatile buffer highp uint counter2})
0:20 Constant:
0:20 0 (const uint)
0:20 Constant:
0:20 1 (const uint)
0:20 subtract ( temp highp uint)
0:20 AtomicAdd ( global highp uint)
0:20 counter2: direct index for structure ( coherent volatile buffer highp uint)
0:20 'anon@1' (layout( column_major std430) buffer block{ coherent volatile buffer highp uint counter1, coherent volatile buffer highp uint counter2})
0:20 Constant:
0:20 1 (const uint)
0:20 Constant:
0:20 4294967295 (const uint)
0:20 Constant:
0:20 1 (const uint)
0:21 Sequence
0:21 move second child to first child ( temp highp 4-component vector of float)
0:21 'v' ( temp highp 4-component vector of float)
0:21 add ( temp highp 4-component vector of float)
0:21 add ( temp highp 4-component vector of float)
0:21 add ( temp highp 4-component vector of float)
0:21 a: direct index for structure ( uniform highp 4-component vector of float)
0:21 'anon@0' (layout( column_major std140) uniform block{ uniform highp 4-component vector of float a, uniform highp 2-component vector of float b1, uniform highp 2-component vector of float b2, uniform highp 4-component vector of float c1, uniform highp 4-component vector of float d})
0:21 Constant:
0:21 0 (const uint)
0:21 Construct vec4 ( temp highp 4-component vector of float)
0:21 direct index ( temp highp float)
0:21 b1: direct index for structure ( uniform highp 2-component vector of float)
0:21 'anon@0' (layout( column_major std140) uniform block{ uniform highp 4-component vector of float a, uniform highp 2-component vector of float b1, uniform highp 2-component vector of float b2, uniform highp 4-component vector of float c1, uniform highp 4-component vector of float d})
0:21 Constant:
0:21 1 (const uint)
0:21 Constant:
0:21 0 (const int)
0:21 direct index ( temp highp float)
0:21 b1: direct index for structure ( uniform highp 2-component vector of float)
0:21 'anon@0' (layout( column_major std140) uniform block{ uniform highp 4-component vector of float a, uniform highp 2-component vector of float b1, uniform highp 2-component vector of float b2, uniform highp 4-component vector of float c1, uniform highp 4-component vector of float d})
0:21 Constant:
0:21 1 (const uint)
0:21 Constant:
0:21 1 (const int)
0:21 direct index ( temp highp float)
0:21 b2: direct index for structure ( uniform highp 2-component vector of float)
0:21 'anon@0' (layout( column_major std140) uniform block{ uniform highp 4-component vector of float a, uniform highp 2-component vector of float b1, uniform highp 2-component vector of float b2, uniform highp 4-component vector of float c1, uniform highp 4-component vector of float d})
0:21 Constant:
0:21 2 (const uint)
0:21 Constant:
0:21 0 (const int)
0:21 direct index ( temp highp float)
0:21 b2: direct index for structure ( uniform highp 2-component vector of float)
0:21 'anon@0' (layout( column_major std140) uniform block{ uniform highp 4-component vector of float a, uniform highp 2-component vector of float b1, uniform highp 2-component vector of float b2, uniform highp 4-component vector of float c1, uniform highp 4-component vector of float d})
0:21 Constant:
0:21 2 (const uint)
0:21 Constant:
0:21 1 (const int)
0:21 c1: direct index for structure ( uniform highp 4-component vector of float)
0:21 'anon@0' (layout( column_major std140) uniform block{ uniform highp 4-component vector of float a, uniform highp 2-component vector of float b1, uniform highp 2-component vector of float b2, uniform highp 4-component vector of float c1, uniform highp 4-component vector of float d})
0:21 Constant:
0:21 3 (const uint)
0:21 d: direct index for structure ( uniform highp 4-component vector of float)
0:21 'anon@0' (layout( column_major std140) uniform block{ uniform highp 4-component vector of float a, uniform highp 2-component vector of float b1, uniform highp 2-component vector of float b2, uniform highp 4-component vector of float c1, uniform highp 4-component vector of float d})
0:21 Constant:
0:21 4 (const uint)
0:23 Branch: Return with expression
0:23 vector-scale ( temp highp 4-component vector of float)
0:23 Convert uint to float ( temp highp float)
0:23 'j' ( temp highp uint)
0:23 'v' ( temp highp 4-component vector of float)
0:26 Function Definition: main( ( global void)
0:26 Function Parameters:
0:27 Sequence
0:27 move second child to first child ( temp highp 4-component vector of float)
0:27 'o' ( out highp 4-component vector of float)
0:27 add ( temp highp 4-component vector of float)
0:27 'io' (layout( location=0) smooth in highp 4-component vector of float)
0:27 Function Call: foo( ( global highp 4-component vector of float)
0:? Linker Objects
0:? 'io' (layout( location=0) smooth in highp 4-component vector of float)
0:? 'o' ( out highp 4-component vector of float)
0:? 'anon@0' (layout( column_major std140) uniform block{ uniform highp 4-component vector of float a, uniform highp 2-component vector of float b1, uniform highp 2-component vector of float b2, uniform highp 4-component vector of float c1, uniform highp 4-component vector of float d})
0:? 'anon@1' (layout( column_major std430) buffer block{ coherent volatile buffer highp uint counter1, coherent volatile buffer highp uint counter2})
// Module Version 10000
// Generated by (magic number): 8000a
// Id's are bound by 88
Capability Shader
1: ExtInstImport "GLSL.std.450"
MemoryModel Logical GLSL450
EntryPoint Vertex 4 "main" 72 80 86
Source GLSL 460
Name 4 "main"
Name 9 "foo("
Name 13 "j"
Name 14 "gl_AtomicCounterBlock_0"
MemberName 14(gl_AtomicCounterBlock_0) 0 "counter3"
MemberName 14(gl_AtomicCounterBlock_0) 1 "counter2"
MemberName 14(gl_AtomicCounterBlock_0) 2 "counter1"
Name 16 ""
Name 31 "v"
Name 35 "gl_DefaultUniformBlock"
MemberName 35(gl_DefaultUniformBlock) 0 "a"
MemberName 35(gl_DefaultUniformBlock) 1 "b2"
MemberName 35(gl_DefaultUniformBlock) 2 "b1"
MemberName 35(gl_DefaultUniformBlock) 3 "c2"
MemberName 35(gl_DefaultUniformBlock) 4 "d"
MemberName 35(gl_DefaultUniformBlock) 5 "s"
MemberName 35(gl_DefaultUniformBlock) 6 "c1"
Name 37 ""
Name 67 "v"
Name 72 "gl_VertexID"
Name 80 "gl_InstanceID"
Name 86 "io"
MemberDecorate 14(gl_AtomicCounterBlock_0) 0 Coherent
MemberDecorate 14(gl_AtomicCounterBlock_0) 0 Volatile
MemberDecorate 14(gl_AtomicCounterBlock_0) 0 Coherent
MemberDecorate 14(gl_AtomicCounterBlock_0) 0 Offset 0
MemberDecorate 14(gl_AtomicCounterBlock_0) 1 Coherent
MemberDecorate 14(gl_AtomicCounterBlock_0) 1 Volatile
MemberDecorate 14(gl_AtomicCounterBlock_0) 1 Coherent
MemberDecorate 14(gl_AtomicCounterBlock_0) 1 Offset 4
MemberDecorate 14(gl_AtomicCounterBlock_0) 2 Coherent
MemberDecorate 14(gl_AtomicCounterBlock_0) 2 Volatile
MemberDecorate 14(gl_AtomicCounterBlock_0) 2 Coherent
MemberDecorate 14(gl_AtomicCounterBlock_0) 2 Offset 8
Decorate 14(gl_AtomicCounterBlock_0) BufferBlock
Decorate 16 DescriptorSet 0
Decorate 16 Binding 1
Decorate 34 ArrayStride 16
MemberDecorate 35(gl_DefaultUniformBlock) 0 Offset 0
MemberDecorate 35(gl_DefaultUniformBlock) 1 Offset 16
MemberDecorate 35(gl_DefaultUniformBlock) 2 Offset 24
MemberDecorate 35(gl_DefaultUniformBlock) 3 Offset 32
MemberDecorate 35(gl_DefaultUniformBlock) 4 Offset 48
MemberDecorate 35(gl_DefaultUniformBlock) 5 Offset 64
MemberDecorate 35(gl_DefaultUniformBlock) 6 Offset 128
Decorate 35(gl_DefaultUniformBlock) Block
Decorate 37 DescriptorSet 0
Decorate 37 Binding 0
Decorate 72(gl_VertexID) BuiltIn VertexIndex
Decorate 80(gl_InstanceID) BuiltIn InstanceIndex
Decorate 86(io) Location 0
2: TypeVoid
3: TypeFunction 2
6: TypeFloat 32
7: TypeVector 6(float) 4
8: TypeFunction 7(fvec4)
11: TypeInt 32 0
12: TypePointer Function 11(int)
14(gl_AtomicCounterBlock_0): TypeStruct 11(int) 11(int) 11(int)
15: TypePointer Uniform 14(gl_AtomicCounterBlock_0)
16: 15(ptr) Variable Uniform
17: TypeInt 32 1
18: 17(int) Constant 1
19: TypePointer Uniform 11(int)
21: 11(int) Constant 1
22: 11(int) Constant 0
24: 17(int) Constant 0
26: 11(int) Constant 4294967295
30: TypePointer Function 7(fvec4)
32: TypeVector 6(float) 2
33: 11(int) Constant 4
34: TypeArray 7(fvec4) 33
35(gl_DefaultUniformBlock): TypeStruct 7(fvec4) 32(fvec2) 32(fvec2) 7(fvec4) 7(fvec4) 34 7(fvec4)
36: TypePointer Uniform 35(gl_DefaultUniformBlock)
37: 36(ptr) Variable Uniform
38: TypePointer Uniform 7(fvec4)
41: 17(int) Constant 2
42: TypePointer Uniform 6(float)
53: 17(int) Constant 3
57: 17(int) Constant 4
70: 17(int) Constant 5
71: TypePointer Input 17(int)
72(gl_VertexID): 71(ptr) Variable Input
77: TypePointer Function 6(float)
80(gl_InstanceID): 71(ptr) Variable Input
85: TypePointer Output 7(fvec4)
86(io): 85(ptr) Variable Output
4(main): 2 Function None 3
5: Label
67(v): 30(ptr) Variable Function
68: 7(fvec4) FunctionCall 9(foo()
Store 67(v) 68
69: 7(fvec4) Load 67(v)
73: 17(int) Load 72(gl_VertexID)
74: 38(ptr) AccessChain 37 70 73
75: 7(fvec4) Load 74
76: 7(fvec4) FAdd 69 75
Store 67(v) 76
78: 77(ptr) AccessChain 67(v) 22
79: 6(float) Load 78
81: 17(int) Load 80(gl_InstanceID)
82: 6(float) ConvertSToF 81
83: 6(float) FSub 79 82
84: 77(ptr) AccessChain 67(v) 22
Store 84 83
87: 7(fvec4) Load 67(v)
Store 86(io) 87
Return
FunctionEnd
9(foo(): 7(fvec4) Function None 8
10: Label
13(j): 12(ptr) Variable Function
31(v): 30(ptr) Variable Function
20: 19(ptr) AccessChain 16 18
23: 11(int) AtomicIAdd 20 21 22 21
25: 19(ptr) AccessChain 16 24
27: 11(int) AtomicIAdd 25 21 22 26
28: 11(int) ISub 27 21
29: 11(int) IAdd 23 28
Store 13(j) 29
39: 38(ptr) AccessChain 37 24
40: 7(fvec4) Load 39
43: 42(ptr) AccessChain 37 41 22
44: 6(float) Load 43
45: 42(ptr) AccessChain 37 41 21
46: 6(float) Load 45
47: 42(ptr) AccessChain 37 18 22
48: 6(float) Load 47
49: 42(ptr) AccessChain 37 18 21
50: 6(float) Load 49
51: 7(fvec4) CompositeConstruct 44 46 48 50
52: 7(fvec4) FAdd 40 51
54: 38(ptr) AccessChain 37 53
55: 7(fvec4) Load 54
56: 7(fvec4) FAdd 52 55
58: 38(ptr) AccessChain 37 57
59: 7(fvec4) Load 58
60: 7(fvec4) FAdd 56 59
Store 31(v) 60
61: 11(int) Load 13(j)
62: 6(float) ConvertUToF 61
63: 7(fvec4) Load 31(v)
64: 7(fvec4) VectorTimesScalar 63 62
ReturnValue 64
FunctionEnd
// Module Version 10000
// Generated by (magic number): 8000a
// Id's are bound by 74
Capability Shader
1: ExtInstImport "GLSL.std.450"
MemoryModel Logical GLSL450
EntryPoint Fragment 4 "main" 68 70
ExecutionMode 4 OriginUpperLeft
Source GLSL 460
Name 4 "main"
Name 9 "foo("
Name 13 "j"
Name 14 "gl_AtomicCounterBlock_0"
MemberName 14(gl_AtomicCounterBlock_0) 0 "counter3"
MemberName 14(gl_AtomicCounterBlock_0) 1 "counter2"
MemberName 14(gl_AtomicCounterBlock_0) 2 "counter1"
Name 16 ""
Name 31 "v"
Name 35 "gl_DefaultUniformBlock"
MemberName 35(gl_DefaultUniformBlock) 0 "a"
MemberName 35(gl_DefaultUniformBlock) 1 "b2"
MemberName 35(gl_DefaultUniformBlock) 2 "b1"
MemberName 35(gl_DefaultUniformBlock) 3 "c2"
MemberName 35(gl_DefaultUniformBlock) 4 "d"
MemberName 35(gl_DefaultUniformBlock) 5 "s"
MemberName 35(gl_DefaultUniformBlock) 6 "c1"
Name 37 ""
Name 68 "o"
Name 70 "io"
MemberDecorate 14(gl_AtomicCounterBlock_0) 0 Coherent
MemberDecorate 14(gl_AtomicCounterBlock_0) 0 Volatile
MemberDecorate 14(gl_AtomicCounterBlock_0) 0 Coherent
MemberDecorate 14(gl_AtomicCounterBlock_0) 0 Offset 0
MemberDecorate 14(gl_AtomicCounterBlock_0) 1 Coherent
MemberDecorate 14(gl_AtomicCounterBlock_0) 1 Volatile
MemberDecorate 14(gl_AtomicCounterBlock_0) 1 Coherent
MemberDecorate 14(gl_AtomicCounterBlock_0) 1 Offset 4
MemberDecorate 14(gl_AtomicCounterBlock_0) 2 Coherent
MemberDecorate 14(gl_AtomicCounterBlock_0) 2 Volatile
MemberDecorate 14(gl_AtomicCounterBlock_0) 2 Coherent
MemberDecorate 14(gl_AtomicCounterBlock_0) 2 Offset 8
Decorate 14(gl_AtomicCounterBlock_0) BufferBlock
Decorate 16 DescriptorSet 0
Decorate 16 Binding 1
Decorate 34 ArrayStride 16
MemberDecorate 35(gl_DefaultUniformBlock) 0 Offset 0
MemberDecorate 35(gl_DefaultUniformBlock) 1 Offset 16
MemberDecorate 35(gl_DefaultUniformBlock) 2 Offset 24
MemberDecorate 35(gl_DefaultUniformBlock) 3 Offset 32
MemberDecorate 35(gl_DefaultUniformBlock) 4 Offset 48
MemberDecorate 35(gl_DefaultUniformBlock) 5 Offset 64
MemberDecorate 35(gl_DefaultUniformBlock) 6 Offset 128
Decorate 35(gl_DefaultUniformBlock) Block
Decorate 37 DescriptorSet 0
Decorate 37 Binding 0
Decorate 68(o) Location 0
Decorate 70(io) Location 0
2: TypeVoid
3: TypeFunction 2
6: TypeFloat 32
7: TypeVector 6(float) 4
8: TypeFunction 7(fvec4)
11: TypeInt 32 0
12: TypePointer Function 11(int)
14(gl_AtomicCounterBlock_0): TypeStruct 11(int) 11(int) 11(int)
15: TypePointer Uniform 14(gl_AtomicCounterBlock_0)
16: 15(ptr) Variable Uniform
17: TypeInt 32 1
18: 17(int) Constant 2
19: TypePointer Uniform 11(int)
21: 11(int) Constant 1
22: 11(int) Constant 0
24: 17(int) Constant 1
26: 11(int) Constant 4294967295
30: TypePointer Function 7(fvec4)
32: TypeVector 6(float) 2
33: 11(int) Constant 4
34: TypeArray 7(fvec4) 33
35(gl_DefaultUniformBlock): TypeStruct 7(fvec4) 32(fvec2) 32(fvec2) 7(fvec4) 7(fvec4) 34 7(fvec4)
36: TypePointer Uniform 35(gl_DefaultUniformBlock)
37: 36(ptr) Variable Uniform
38: 17(int) Constant 0
39: TypePointer Uniform 7(fvec4)
42: TypePointer Uniform 6(float)
53: 17(int) Constant 6
57: 17(int) Constant 4
67: TypePointer Output 7(fvec4)
68(o): 67(ptr) Variable Output
69: TypePointer Input 7(fvec4)
70(io): 69(ptr) Variable Input
4(main): 2 Function None 3
5: Label
71: 7(fvec4) Load 70(io)
72: 7(fvec4) FunctionCall 9(foo()
73: 7(fvec4) FAdd 71 72
Store 68(o) 73
Return
FunctionEnd
9(foo(): 7(fvec4) Function None 8
10: Label
13(j): 12(ptr) Variable Function
31(v): 30(ptr) Variable Function
20: 19(ptr) AccessChain 16 18
23: 11(int) AtomicIAdd 20 21 22 21
25: 19(ptr) AccessChain 16 24
27: 11(int) AtomicIAdd 25 21 22 26
28: 11(int) ISub 27 21
29: 11(int) IAdd 23 28
Store 13(j) 29
40: 39(ptr) AccessChain 37 38
41: 7(fvec4) Load 40
43: 42(ptr) AccessChain 37 18 22
44: 6(float) Load 43
45: 42(ptr) AccessChain 37 18 21
46: 6(float) Load 45
47: 42(ptr) AccessChain 37 24 22
48: 6(float) Load 47
49: 42(ptr) AccessChain 37 24 21
50: 6(float) Load 49
51: 7(fvec4) CompositeConstruct 44 46 48 50
52: 7(fvec4) FAdd 41 51
54: 39(ptr) AccessChain 37 53
55: 7(fvec4) Load 54
56: 7(fvec4) FAdd 52 55
58: 39(ptr) AccessChain 37 57
59: 7(fvec4) Load 58
60: 7(fvec4) FAdd 56 59
Store 31(v) 60
61: 11(int) Load 13(j)
62: 6(float) ConvertUToF 61
63: 7(fvec4) Load 31(v)
64: 7(fvec4) VectorTimesScalar 63 62
ReturnValue 64
FunctionEnd