glslang SPV tests: Add a set of SPV tests.

git-svn-id: https://cvs.khronos.org/svn/repos/ogl/trunk/ecosystem/public/sdk/tools/glslang@31212 e7fa87d3-cd2b-0410-9028-fcbf551c1848
This commit is contained in:
John Kessenich 2015-05-15 21:32:46 +00:00
parent e7cbfa5cab
commit 39374dadb5
136 changed files with 12813 additions and 0 deletions

View File

@ -0,0 +1,89 @@
spv.100ops.frag
Linked fragment stage:
// Module Version 99
// Generated by (magic number): 51a00bb
// Id's are bound by 48
Source GLSL 100
1: ExtInstImport "GLSL.std.450"
MemoryModel Logical GLSL450
EntryPoint Fragment 4
Name 4 "main"
Name 9 "foo("
Name 12 "face1"
Name 14 "face2"
Name 18 "z"
Name 22 "low"
Name 27 "high"
Name 37 "gl_FragColor"
Decorate 12(face1) PrecisionLow
Decorate 14(face2) PrecisionLow
Decorate 18(z) PrecisionMedium
Decorate 22(low) PrecisionMedium
Decorate 27(high) PrecisionMedium
Decorate 37(gl_FragColor) PrecisionMedium
Decorate 37(gl_FragColor) BuiltIn FragColor
2: TypeVoid
3: TypeFunction 2
7: TypeFloat 32
8: TypeFunction 7(float)
11: TypePointer PrivateGlobal 7(float)
12(face1): 11(ptr) Variable PrivateGlobal
13: 7(float) Constant 1093664768
14(face2): 11(ptr) Variable PrivateGlobal
15: 7(float) Constant 3221225472
16: TypeInt 32 1
17: TypePointer Function 16(int)
19: 16(int) Constant 3
20: 16(int) Constant 2
21: TypePointer UniformConstant 16(int)
22(low): 21(ptr) Variable UniformConstant
25: 16(int) Constant 1
27(high): 21(ptr) Variable UniformConstant
29: TypeBool
35: TypeVector 7(float) 4
36: TypePointer Output 35(fvec4)
37(gl_FragColor): 36(ptr) Variable Output
4(main): 2 Function None 3
5: Label
18(z): 17(ptr) Variable Function
Store 12(face1) 13
Store 14(face2) 15
Store 18(z) 19
23: 16(int) Load 22(low)
24: 16(int) IMul 20 23
26: 16(int) IAdd 24 25
28: 16(int) Load 27(high)
30: 29(bool) SLessThan 26 28
SelectionMerge 32 None
BranchConditional 30 31 32
31: Label
33: 16(int) Load 18(z)
34: 16(int) IAdd 33 25
Store 18(z) 34
Branch 32
32: Label
38: 7(float) Load 12(face1)
39: 16(int) Load 18(z)
40: 7(float) ConvertSToF 39
41: 35(fvec4) CompositeConstruct 40 40 40 40
42: 35(fvec4) VectorTimesScalar 38 41
43: 7(float) FunctionCall 9(foo()
44: 35(fvec4) CompositeConstruct 43 43 43 43
45: 35(fvec4) FAdd 42 44
Store 37(gl_FragColor) 45
Branch 6
6: Label
Return
FunctionEnd
9(foo(): 7(float) Function None 8
10: Label
46: 7(float) Load 14(face2)
ReturnValue 46
FunctionEnd

View File

@ -0,0 +1,10 @@
spv.130.frag
WARNING: 0:34: '#extension' : extension is only partially supported: GL_ARB_gpu_shader5
Linked fragment stage:
Missing functionality: texture gather

View File

@ -0,0 +1,151 @@
spv.140.frag
Linked fragment stage:
// Module Version 99
// Generated by (magic number): 51a00bb
// Id's are bound by 90
Source GLSL 140
1: ExtInstImport "GLSL.std.450"
MemoryModel Logical GLSL450
EntryPoint Fragment 4
Name 4 "main"
Name 9 "foo("
Name 12 "i1"
Name 17 "gl_FrontFacing"
Name 25 "i2"
Name 29 "o"
Name 34 "gl_ClipDistance"
Name 43 "k"
Name 54 "sampR"
Name 60 "sampB"
Name 83 "samp2Da"
Name 87 "bn"
MemberName 87(bn) 0 "matra"
MemberName 87(bn) 1 "matca"
MemberName 87(bn) 2 "matr"
MemberName 87(bn) 3 "matc"
MemberName 87(bn) 4 "matrdef"
Name 89 ""
Decorate 17(gl_FrontFacing) BuiltIn FrontFacing
Decorate 34(gl_ClipDistance) Smooth
Decorate 34(gl_ClipDistance) BuiltIn ClipDistance
Decorate 43(k) Smooth
Decorate 83(samp2Da) NoStaticUse
MemberDecorate 87(bn) 0 RowMajor
MemberDecorate 87(bn) 1 ColMajor
MemberDecorate 87(bn) 2 RowMajor
MemberDecorate 87(bn) 3 ColMajor
MemberDecorate 87(bn) 4 RowMajor
Decorate 87(bn) GLSLStd140
Decorate 87(bn) Block
Decorate 89 NoStaticUse
2: TypeVoid
3: TypeFunction 2
7: TypeFloat 32
8: TypeFunction 7(float)
11: TypePointer PrivateGlobal 7(float)
12(i1): 11(ptr) Variable PrivateGlobal
13: TypePointer Function 7(float)
15: TypeBool
16: TypePointer Input 15(bool)
17(gl_FrontFacing): 16(ptr) Variable Input
21: 7(float) Constant 3221225472
23: 7(float) Constant 1073741824
25(i2): 11(ptr) Variable PrivateGlobal
26: 7(float) Constant 1120665600
27: TypeVector 7(float) 4
28: TypePointer Output 27(fvec4)
29(o): 28(ptr) Variable Output
30: TypeInt 32 0
31: 30(int) Constant 5
32: TypeArray 7(float) 31
33: TypePointer Input 32
34(gl_ClipDistance): 33(ptr) Variable Input
35: TypeInt 32 1
36: 35(int) Constant 2
37: TypePointer Input 7(float)
42: TypePointer Input 27(fvec4)
43(k): 42(ptr) Variable Input
45: TypeVector 35(int) 4
52: TypeSampler7(float) Rect filter+texture
53: TypePointer UniformConstant 52
54(sampR): 53(ptr) Variable UniformConstant
56: TypeVector 35(int) 2
58: TypeSampler35(int) Buffer filter+texture
59: TypePointer UniformConstant 58
60(sampB): 59(ptr) Variable UniformConstant
65: TypeVector 7(float) 2
68: 7(float) Constant 1120403456
79: TypeSampler7(float) 2D filter+texture
80: 30(int) Constant 3
81: TypeArray 79 80
82: TypePointer UniformConstant 81
83(samp2Da): 82(ptr) Variable UniformConstant
84: TypeMatrix 27(fvec4) 4
85: 30(int) Constant 4
86: TypeArray 84 85
87(bn): TypeStruct 86 86 84 84 84
88: TypePointer Uniform 87(bn)
89: 88(ptr) Variable Uniform
4(main): 2 Function None 3
5: Label
14: 13(ptr) Variable Function
18: 15(bool) Load 17(gl_FrontFacing)
SelectionMerge 20 None
BranchConditional 18 19 22
19: Label
Store 14 21
Branch 20
22: Label
Store 14 23
Branch 20
20: Label
24: 7(float) Load 14
Store 12(i1) 24
Store 25(i2) 26
38: 37(ptr) AccessChain 34(gl_ClipDistance) 36
39: 7(float) Load 38
40: 27(fvec4) Load 29(o)
41: 27(fvec4) CompositeInsert 39 40 1
Store 29(o) 41
44: 27(fvec4) Load 43(k)
46: 45(ivec4) ConvertFToS 44
47: 35(int) CompositeExtract 46 0
48: 37(ptr) AccessChain 34(gl_ClipDistance) 47
49: 7(float) Load 48
50: 27(fvec4) Load 29(o)
51: 27(fvec4) CompositeInsert 49 50 2
Store 29(o) 51
55: 52 Load 54(sampR)
57: 56(ivec2) TextureQuerySize 55
61: 58 Load 60(sampB)
62: 35(int) TextureQuerySize 61
63: 56(ivec2) CompositeConstruct 62 62
64: 56(ivec2) IAdd 57 63
66: 65(fvec2) ConvertSToF 64
67: 7(float) CompositeExtract 66 0
69: 7(float) FDiv 67 68
70: 27(fvec4) Load 29(o)
71: 27(fvec4) CompositeInsert 69 70 3
Store 29(o) 71
72: 7(float) FunctionCall 9(foo()
73: 27(fvec4) Load 29(o)
74: 27(fvec4) CompositeInsert 72 73 2
Store 29(o) 74
Branch 6
6: Label
Return
FunctionEnd
9(foo(): 7(float) Function None 8
10: Label
75: 7(float) Load 12(i1)
76: 7(float) Load 25(i2)
77: 7(float) FAdd 75 76
ReturnValue 77
FunctionEnd

View File

@ -0,0 +1,30 @@
Error: unable to open input file: spv.140.vert
Usage: glslangValidator [option]... [file]...
Where: each 'file' ends in .<stage>, where <stage> is one of
.conf to provide an optional config file that replaces the default configuration
(see -c option below for generating a template)
.vert for a vertex shader
.tesc for a tessellation control shader
.tese for a tessellation evaluation shader
.geom for a geometry shader
.frag for a fragment shader
.comp for a compute shader
Compilation warnings and errors will be printed to stdout.
To get other information, use one of the following options:
(Each option must be specified separately, but can go anywhere in the command line.)
-V create SPIR-V in file <stage>.spv
-H print human readable form of SPIR-V; turns on -V
-c configuration dump; use to create default configuration file (redirect to a .conf file)
-d default to desktop (#version 110) when there is no version in the shader (default is ES version 100)
-i intermediate tree (glslang AST) is printed out
-l link validation of all input files
-m memory leak mode
-q dump reflection query database
-r relaxed semantic error-checking mode
-s silent mode
-t multi-threaded mode
-v print version strings
-w suppress warnings (except as required by #extension : warn)

View File

@ -0,0 +1,146 @@
spv.150.geom
Linked geometry stage:
// Module Version 99
// Generated by (magic number): 51a00bb
// Id's are bound by 72
Source GLSL 150
1: ExtInstImport "GLSL.std.450"
MemoryModel Logical GLSL450
EntryPoint Geometry 4
ExecutionMode 4 InputTrianglesAdjacency
ExecutionMode 4 Invocations 0
ExecutionMode 4 OutputTriangleStrip
ExecutionMode 4 OutputVertices 30
Name 4 "main"
Name 9 "fromVertex"
MemberName 9(fromVertex) 0 "color"
Name 11 ""
Name 14 "fromVertex"
MemberName 14(fromVertex) 0 "color"
Name 19 "fromV"
Name 28 "gl_PerVertex"
MemberName 28(gl_PerVertex) 0 "gl_Position"
MemberName 28(gl_PerVertex) 1 "gl_PointSize"
MemberName 28(gl_PerVertex) 2 "gl_ClipDistance"
Name 30 ""
Name 31 "gl_PerVertex"
MemberName 31(gl_PerVertex) 0 "gl_Position"
MemberName 31(gl_PerVertex) 1 "gl_PointSize"
MemberName 31(gl_PerVertex) 2 "gl_ClipDistance"
Name 34 "gl_in"
Name 48 "gl_PrimitiveID"
Name 50 "gl_PrimitiveIDIn"
Name 52 "gl_Layer"
Name 69 "toFragment"
MemberName 69(toFragment) 0 "color"
Name 71 "toF"
Decorate 9(fromVertex) Block
Decorate 9(fromVertex) Stream 3
Decorate 11 Stream 3
Decorate 14(fromVertex) Block
Decorate 28(gl_PerVertex) Block
Decorate 28(gl_PerVertex) Stream 0
Decorate 30 Stream 0
Decorate 31(gl_PerVertex) Block
Decorate 48(gl_PrimitiveID) Stream 0
Decorate 48(gl_PrimitiveID) BuiltIn PrimitiveId
Decorate 50(gl_PrimitiveIDIn) BuiltIn PrimitiveId
Decorate 52(gl_Layer) Stream 0
Decorate 52(gl_Layer) BuiltIn Layer
Decorate 69(toFragment) Block
Decorate 69(toFragment) Stream 3
Decorate 71(toF) Stream 3
Decorate 71(toF) NoStaticUse
2: TypeVoid
3: TypeFunction 2
7: TypeFloat 32
8: TypeVector 7(float) 3
9(fromVertex): TypeStruct 8(fvec3)
10: TypePointer Output 9(fromVertex)
11: 10(ptr) Variable Output
12: TypeInt 32 1
13: 12(int) Constant 0
14(fromVertex): TypeStruct 8(fvec3)
15: TypeInt 32 0
16: 15(int) Constant 6
17: TypeArray 14(fromVertex) 16
18: TypePointer Input 17
19(fromV): 18(ptr) Variable Input
20: TypePointer Input 8(fvec3)
23: TypePointer Output 8(fvec3)
25: TypeVector 7(float) 4
26: 15(int) Constant 1
27: TypeArray 7(float) 26
28(gl_PerVertex): TypeStruct 25(fvec4) 7(float) 27
29: TypePointer Output 28(gl_PerVertex)
30: 29(ptr) Variable Output
31(gl_PerVertex): TypeStruct 25(fvec4) 7(float) 27
32: TypeArray 31(gl_PerVertex) 16
33: TypePointer Input 32
34(gl_in): 33(ptr) Variable Input
35: TypePointer Input 25(fvec4)
38: TypePointer Output 25(fvec4)
40: 12(int) Constant 1
41: 12(int) Constant 3
42: TypePointer Input 7(float)
45: TypePointer Output 7(float)
47: TypePointer Output 12(int)
48(gl_PrimitiveID): 47(ptr) Variable Output
49: TypePointer Input 12(int)
50(gl_PrimitiveIDIn): 49(ptr) Variable Input
52(gl_Layer): 47(ptr) Variable Output
53: 12(int) Constant 2
54: 7(float) Constant 1073741824
69(toFragment): TypeStruct 8(fvec3)
70: TypePointer Output 69(toFragment)
71(toF): 70(ptr) Variable Output
4(main): 2 Function None 3
5: Label
21: 20(ptr) AccessChain 19(fromV) 13 13
22: 8(fvec3) Load 21
24: 23(ptr) AccessChain 11 13
Store 24 22
36: 35(ptr) AccessChain 34(gl_in) 13 13
37: 25(fvec4) Load 36
39: 38(ptr) AccessChain 30 13
Store 39 37
43: 42(ptr) AccessChain 34(gl_in) 41 40
44: 7(float) Load 43
46: 45(ptr) AccessChain 30 40
Store 46 44
51: 12(int) Load 50(gl_PrimitiveIDIn)
Store 48(gl_PrimitiveID) 51
Store 52(gl_Layer) 53
EmitVertex
55: 20(ptr) AccessChain 19(fromV) 13 13
56: 8(fvec3) Load 55
57: 8(fvec3) VectorTimesScalar 54 56
58: 23(ptr) AccessChain 11 13
Store 58 57
59: 35(ptr) AccessChain 34(gl_in) 13 13
60: 25(fvec4) Load 59
61: 25(fvec4) VectorTimesScalar 54 60
62: 38(ptr) AccessChain 30 13
Store 62 61
63: 42(ptr) AccessChain 34(gl_in) 41 40
64: 7(float) Load 63
65: 7(float) FMul 54 64
66: 45(ptr) AccessChain 30 40
Store 66 65
67: 12(int) Load 50(gl_PrimitiveIDIn)
68: 12(int) IAdd 67 40
Store 48(gl_PrimitiveID) 68
Store 52(gl_Layer) 41
EmitVertex
EndPrimitive
Branch 6
6: Label
Return
FunctionEnd

View File

@ -0,0 +1,108 @@
spv.150.vert
Linked vertex stage:
// Module Version 99
// Generated by (magic number): 51a00bb
// Id's are bound by 53
Source GLSL 150
1: ExtInstImport "GLSL.std.450"
MemoryModel Logical GLSL450
EntryPoint Vertex 4
Name 4 "main"
Name 14 "gl_PerVertex"
MemberName 14(gl_PerVertex) 0 "gl_Position"
MemberName 14(gl_PerVertex) 1 "gl_PointSize"
MemberName 14(gl_PerVertex) 2 "gl_ClipDistance"
MemberName 14(gl_PerVertex) 3 "gl_ClipVertex"
MemberName 14(gl_PerVertex) 4 "gl_FrontColor"
MemberName 14(gl_PerVertex) 5 "gl_BackColor"
MemberName 14(gl_PerVertex) 6 "gl_FrontSecondaryColor"
MemberName 14(gl_PerVertex) 7 "gl_BackSecondaryColor"
MemberName 14(gl_PerVertex) 8 "gl_TexCoord"
MemberName 14(gl_PerVertex) 9 "gl_FogFragCoord"
Name 16 ""
Name 20 "iv4"
Name 26 "ps"
Name 36 "s1"
MemberName 36(s1) 0 "a"
MemberName 36(s1) 1 "a2"
MemberName 36(s1) 2 "b"
Name 38 "s2"
MemberName 38(s2) 0 "c"
MemberName 38(s2) 1 "d"
Name 40 "s2out"
Name 42 "i"
Name 49 "ui"
Name 51 "gl_VertexID"
Name 52 "gl_InstanceID"
MemberDecorate 14(gl_PerVertex) 0 Invariant
Decorate 14(gl_PerVertex) Block
Decorate 49(ui) NoStaticUse
Decorate 51(gl_VertexID) BuiltIn VertexId
Decorate 51(gl_VertexID) NoStaticUse
Decorate 52(gl_InstanceID) BuiltIn InstanceId
Decorate 52(gl_InstanceID) NoStaticUse
2: TypeVoid
3: TypeFunction 2
7: TypeFloat 32
8: TypeVector 7(float) 4
9: TypeInt 32 0
10: 9(int) Constant 4
11: TypeArray 7(float) 10
12: 9(int) Constant 1
13: TypeArray 8(fvec4) 12
14(gl_PerVertex): TypeStruct 8(fvec4) 7(float) 11 8(fvec4) 8(fvec4) 8(fvec4) 8(fvec4) 8(fvec4) 13 7(float)
15: TypePointer Output 14(gl_PerVertex)
16: 15(ptr) Variable Output
17: TypeInt 32 1
18: 17(int) Constant 0
19: TypePointer Input 8(fvec4)
20(iv4): 19(ptr) Variable Input
22: TypePointer Output 8(fvec4)
24: 17(int) Constant 1
25: TypePointer UniformConstant 7(float)
26(ps): 25(ptr) Variable UniformConstant
28: TypePointer Output 7(float)
30: 17(int) Constant 2
34: 9(int) Constant 3
35: TypeArray 8(fvec4) 34
36(s1): TypeStruct 17(int) 17(int) 35
37: TypeArray 36(s1) 10
38(s2): TypeStruct 17(int) 37
39: TypePointer Output 38(s2)
40(s2out): 39(ptr) Variable Output
41: TypePointer Function 17(int)
48: TypePointer UniformConstant 17(int)
49(ui): 48(ptr) Variable UniformConstant
50: TypePointer Input 17(int)
51(gl_VertexID): 50(ptr) Variable Input
52(gl_InstanceID): 50(ptr) Variable Input
4(main): 2 Function None 3
5: Label
42(i): 41(ptr) Variable Function
21: 8(fvec4) Load 20(iv4)
23: 22(ptr) AccessChain 16 18
Store 23 21
27: 7(float) Load 26(ps)
29: 28(ptr) AccessChain 16 24
Store 29 27
31: 8(fvec4) Load 20(iv4)
32: 7(float) CompositeExtract 31 0
33: 28(ptr) AccessChain 16 30 30
Store 33 32
43: 17(int) Load 42(i)
44: 7(float) Load 26(ps)
45: 22(ptr) AccessChain 40(s2out) 24 43 30 30
46: 8(fvec4) Load 45
47: 8(fvec4) CompositeInsert 44 46 3
Store 45 47
Branch 6
6: Label
Return
FunctionEnd

View File

@ -0,0 +1,85 @@
spv.300BuiltIns.vert
Linked vertex stage:
// Module Version 99
// Generated by (magic number): 51a00bb
// Id's are bound by 41
Source GLSL 300
1: ExtInstImport "GLSL.std.450"
MemoryModel Logical GLSL450
EntryPoint Vertex 4
Name 4 "main"
Name 9 "i"
Name 12 "gl_VertexID"
Name 17 "j"
Name 24 "gl_Position"
Name 26 "ps"
Name 34 "gl_PointSize"
Name 40 "gl_InstanceID"
Decorate 9(i) PrecisionMedium
Decorate 12(gl_VertexID) PrecisionHigh
Decorate 12(gl_VertexID) BuiltIn VertexId
Decorate 17(j) PrecisionMedium
Decorate 24(gl_Position) PrecisionHigh
Decorate 24(gl_Position) Invariant
Decorate 24(gl_Position) BuiltIn Position
Decorate 26(ps) PrecisionMedium
Decorate 34(gl_PointSize) PrecisionHigh
Decorate 34(gl_PointSize) BuiltIn PointSize
Decorate 40(gl_InstanceID) PrecisionHigh
Decorate 40(gl_InstanceID) BuiltIn InstanceId
Decorate 40(gl_InstanceID) NoStaticUse
2: TypeVoid
3: TypeFunction 2
7: TypeInt 32 1
8: TypePointer Function 7(int)
10: 7(int) Constant 4
11: TypePointer Input 7(int)
12(gl_VertexID): 11(ptr) Variable Input
15: 7(int) Constant 10
21: TypeFloat 32
22: TypeVector 21(float) 4
23: TypePointer Output 22(fvec4)
24(gl_Position): 23(ptr) Variable Output
25: TypePointer Input 21(float)
26(ps): 25(ptr) Variable Input
33: TypePointer Output 21(float)
34(gl_PointSize): 33(ptr) Variable Output
40(gl_InstanceID): 11(ptr) Variable Input
4(main): 2 Function None 3
5: Label
9(i): 8(ptr) Variable Function
17(j): 8(ptr) Variable Function
13: 7(int) Load 12(gl_VertexID)
14: 7(int) IMul 10 13
16: 7(int) ISub 14 15
Store 9(i) 16
18: 7(int) Load 12(gl_VertexID)
19: 7(int) IMul 10 18
20: 7(int) ISub 19 15
Store 17(j) 20
27: 21(float) Load 26(ps)
28: 22(fvec4) CompositeConstruct 27 27 27 27
Store 24(gl_Position) 28
29: 7(int) Load 9(i)
30: 21(float) ConvertSToF 29
31: 22(fvec4) Load 24(gl_Position)
32: 22(fvec4) VectorTimesScalar 31 30
Store 24(gl_Position) 32
35: 21(float) Load 26(ps)
Store 34(gl_PointSize) 35
36: 7(int) Load 17(j)
37: 21(float) ConvertSToF 36
38: 21(float) Load 34(gl_PointSize)
39: 21(float) FMul 38 37
Store 34(gl_PointSize) 39
Branch 6
6: Label
Return
FunctionEnd

View File

@ -0,0 +1,76 @@
spv.300layout.frag
Linked fragment stage:
// Module Version 99
// Generated by (magic number): 51a00bb
// Id's are bound by 38
Source GLSL 300
1: ExtInstImport "GLSL.std.450"
MemoryModel Logical GLSL450
EntryPoint Fragment 4
Name 4 "main"
Name 10 "c"
Name 12 "color"
Name 14 "S"
MemberName 14(S) 0 "c"
MemberName 14(S) 1 "f"
Name 16 "s"
Name 27 "p"
Name 30 "pos"
Decorate 10(c) PrecisionMedium
Decorate 10(c) Location 7
Decorate 12(color) PrecisionMedium
Decorate 12(color) Smooth
MemberDecorate 14(S) 0 PrecisionMedium
MemberDecorate 14(S) 1 PrecisionMedium
Decorate 27(p) PrecisionMedium
Decorate 27(p) Location 3
Decorate 30(pos) PrecisionMedium
Decorate 30(pos) Smooth
2: TypeVoid
3: TypeFunction 2
7: TypeFloat 32
8: TypeVector 7(float) 3
9: TypePointer Output 8(fvec3)
10(c): 9(ptr) Variable Output
11: TypePointer Input 8(fvec3)
12(color): 11(ptr) Variable Input
14(S): TypeStruct 8(fvec3) 7(float)
15: TypePointer Input 14(S)
16(s): 15(ptr) Variable Input
17: TypeInt 32 1
18: 17(int) Constant 0
22: TypeVector 7(float) 4
23: TypeInt 32 0
24: 23(int) Constant 2
25: TypeArray 22(fvec4) 24
26: TypePointer Output 25
27(p): 26(ptr) Variable Output
28: 17(int) Constant 1
29: TypePointer Input 22(fvec4)
30(pos): 29(ptr) Variable Input
32: TypePointer Input 7(float)
36: TypePointer Output 22(fvec4)
4(main): 2 Function None 3
5: Label
13: 8(fvec3) Load 12(color)
19: 11(ptr) AccessChain 16(s) 18
20: 8(fvec3) Load 19
21: 8(fvec3) FAdd 13 20
Store 10(c) 21
31: 22(fvec4) Load 30(pos)
33: 32(ptr) AccessChain 16(s) 28
34: 7(float) Load 33
35: 22(fvec4) VectorTimesScalar 31 34
37: 36(ptr) AccessChain 27(p) 28
Store 37 35
Branch 6
6: Label
Return
FunctionEnd

View File

@ -0,0 +1,9 @@
spv.300layout.vert
Linked vertex stage:
Missing functionality: binary operation on matrix

View File

@ -0,0 +1,211 @@
spv.300layoutp.vert
Linked vertex stage:
// Module Version 99
// Generated by (magic number): 51a00bb
// Id's are bound by 112
Source GLSL 300
1: ExtInstImport "GLSL.std.450"
MemoryModel Logical GLSL450
EntryPoint Vertex 4
Name 4 "main"
Name 10 "pos"
Name 12 "p"
Name 18 "Transform"
MemberName 18(Transform) 0 "M1"
MemberName 18(Transform) 1 "M2"
MemberName 18(Transform) 2 "N1"
MemberName 18(Transform) 3 "iuin"
Name 20 "tblock"
Name 34 "T3"
MemberName 34(T3) 0 "M3"
MemberName 34(T3) 1 "M4"
MemberName 34(T3) 2 "N2"
MemberName 34(T3) 3 "uv3a"
Name 36 ""
Name 44 "T2"
MemberName 44(T2) 0 "b"
MemberName 44(T2) 1 "t2m"
Name 46 ""
Name 52 "color"
Name 54 "c"
Name 62 "iout"
Name 68 "uiuin"
Name 74 "aiv2"
Name 78 "S"
MemberName 78(S) 0 "c"
MemberName 78(S) 1 "f"
Name 80 "s"
Name 110 "gl_VertexID"
Name 111 "gl_InstanceID"
Decorate 10(pos) PrecisionHigh
Decorate 10(pos) Smooth
Decorate 12(p) PrecisionHigh
Decorate 12(p) Location 3
MemberDecorate 18(Transform) 0 RowMajor
MemberDecorate 18(Transform) 0 PrecisionHigh
MemberDecorate 18(Transform) 1 ColMajor
MemberDecorate 18(Transform) 1 PrecisionHigh
MemberDecorate 18(Transform) 2 RowMajor
MemberDecorate 18(Transform) 2 PrecisionHigh
MemberDecorate 18(Transform) 3 PrecisionHigh
Decorate 18(Transform) GLSLStd140
Decorate 18(Transform) Block
MemberDecorate 34(T3) 0 ColMajor
MemberDecorate 34(T3) 0 PrecisionHigh
MemberDecorate 34(T3) 1 RowMajor
MemberDecorate 34(T3) 1 PrecisionHigh
MemberDecorate 34(T3) 2 ColMajor
MemberDecorate 34(T3) 2 PrecisionHigh
MemberDecorate 34(T3) 3 PrecisionHigh
Decorate 34(T3) GLSLShared
Decorate 34(T3) Block
MemberDecorate 44(T2) 1 RowMajor
MemberDecorate 44(T2) 1 PrecisionHigh
Decorate 44(T2) GLSLShared
Decorate 44(T2) Block
Decorate 52(color) PrecisionHigh
Decorate 52(color) Smooth
Decorate 54(c) PrecisionHigh
Decorate 54(c) Location 7
Decorate 62(iout) PrecisionHigh
Decorate 62(iout) Flat
Decorate 68(uiuin) PrecisionHigh
Decorate 74(aiv2) PrecisionHigh
Decorate 74(aiv2) Location 9
MemberDecorate 78(S) 0 PrecisionHigh
MemberDecorate 78(S) 1 PrecisionHigh
Decorate 110(gl_VertexID) PrecisionHigh
Decorate 110(gl_VertexID) BuiltIn VertexId
Decorate 110(gl_VertexID) NoStaticUse
Decorate 111(gl_InstanceID) PrecisionHigh
Decorate 111(gl_InstanceID) BuiltIn InstanceId
Decorate 111(gl_InstanceID) NoStaticUse
2: TypeVoid
3: TypeFunction 2
7: TypeFloat 32
8: TypeVector 7(float) 4
9: TypePointer Output 8(fvec4)
10(pos): 9(ptr) Variable Output
11: TypePointer Input 8(fvec4)
12(p): 11(ptr) Variable Input
14: TypeMatrix 8(fvec4) 4
15: TypeVector 7(float) 3
16: TypeMatrix 15(fvec3) 3
17: TypeInt 32 1
18(Transform): TypeStruct 14 14 16 17(int)
19: TypePointer Uniform 18(Transform)
20(tblock): 19(ptr) Variable Uniform
21: 17(int) Constant 0
22: TypePointer Uniform 14
25: 17(int) Constant 1
29: TypeMatrix 15(fvec3) 2
30: TypeInt 32 0
31: TypeVector 30(int) 3
32: 30(int) Constant 4
33: TypeArray 31(ivec3) 32
34(T3): TypeStruct 14 14 29 33
35: TypePointer Uniform 34(T3)
36: 35(ptr) Variable Uniform
43: TypeBool
44(T2): TypeStruct 43(bool) 14
45: TypePointer Uniform 44(T2)
46: 45(ptr) Variable Uniform
51: TypePointer Output 15(fvec3)
52(color): 51(ptr) Variable Output
53: TypePointer Input 15(fvec3)
54(c): 53(ptr) Variable Input
56: 17(int) Constant 2
57: TypePointer Uniform 16
61: TypePointer Output 17(int)
62(iout): 61(ptr) Variable Output
63: 17(int) Constant 3
64: TypePointer Uniform 17(int)
67: TypePointer UniformConstant 30(int)
68(uiuin): 67(ptr) Variable UniformConstant
72: TypeVector 17(int) 2
73: TypePointer Input 72(ivec2)
74(aiv2): 73(ptr) Variable Input
78(S): TypeStruct 15(fvec3) 7(float)
79: TypePointer Output 78(S)
80(s): 79(ptr) Variable Output
85: TypePointer Output 7(float)
87: TypePointer Uniform 15(fvec3)
90: 7(float) Constant 1065353216
91: 15(fvec3) ConstantComposite 90 90 90
92: TypeVector 43(bool) 3
95: TypePointer Uniform 31(ivec3)
98: 30(int) Constant 5
99: 31(ivec3) ConstantComposite 98 98 98
109: TypePointer Input 17(int)
110(gl_VertexID): 109(ptr) Variable Input
111(gl_InstanceID): 109(ptr) Variable Input
4(main): 2 Function None 3
5: Label
13: 8(fvec4) Load 12(p)
23: 22(ptr) AccessChain 20(tblock) 21
24: 14 Load 23
26: 22(ptr) AccessChain 20(tblock) 25
27: 14 Load 26
28: 14 MatrixTimesMatrix 24 27
37: 22(ptr) AccessChain 36 25
38: 14 Load 37
39: 14 MatrixTimesMatrix 28 38
40: 22(ptr) AccessChain 36 21
41: 14 Load 40
42: 14 MatrixTimesMatrix 39 41
47: 22(ptr) AccessChain 46 25
48: 14 Load 47
49: 14 MatrixTimesMatrix 42 48
50: 8(fvec4) VectorTimesMatrix 13 49
Store 10(pos) 50
55: 15(fvec3) Load 54(c)
58: 57(ptr) AccessChain 20(tblock) 56
59: 16 Load 58
60: 15(fvec3) VectorTimesMatrix 55 59
Store 52(color) 60
65: 64(ptr) AccessChain 20(tblock) 63
66: 17(int) Load 65
69: 30(int) Load 68(uiuin)
70: 17(int) Bitcast 69
71: 17(int) IAdd 66 70
75: 72(ivec2) Load 74(aiv2)
76: 17(int) CompositeExtract 75 1
77: 17(int) IAdd 71 76
Store 62(iout) 77
81: 15(fvec3) Load 54(c)
82: 51(ptr) AccessChain 80(s) 21
Store 82 81
83: 8(fvec4) Load 12(p)
84: 7(float) CompositeExtract 83 0
86: 85(ptr) AccessChain 80(s) 25
Store 86 84
88: 87(ptr) AccessChain 36 56 25
89: 15(fvec3) Load 88
93: 92(bvec3) FOrdNotEqual 89 91
94: 43(bool) Any 93
96: 95(ptr) AccessChain 36 63 56
97: 31(ivec3) Load 96
100: 92(bvec3) INotEqual 97 99
101: 43(bool) Any 100
102: 43(bool) LogicalOr 94 101
SelectionMerge 104 None
BranchConditional 102 103 104
103: Label
105: 51(ptr) AccessChain 80(s) 21
106: 15(fvec3) Load 105
107: 15(fvec3) CompositeConstruct 90 90 90
108: 15(fvec3) FAdd 106 107
Store 105 108
Branch 104
104: Label
Branch 6
6: Label
Return
FunctionEnd

View File

@ -0,0 +1,10 @@
spv.310.comp
Warning, version 310 is not yet complete; most version-specific features are present, but some are missing.
Linked compute stage:
Missing functionality: Unsized array

View File

@ -0,0 +1,72 @@
spv.330.geom
Linked geometry stage:
// Module Version 99
// Generated by (magic number): 51a00bb
// Id's are bound by 33
Source GLSL 330
SourceExtension "GL_ARB_separate_shader_objects"
1: ExtInstImport "GLSL.std.450"
MemoryModel Logical GLSL450
EntryPoint Geometry 4
ExecutionMode 4 InputTriangles
ExecutionMode 4 Invocations 0
ExecutionMode 4 OutputTriangleStrip
ExecutionMode 4 OutputVertices 3
Name 4 "main"
Name 12 "gl_PerVertex"
MemberName 12(gl_PerVertex) 0 "gl_Position"
MemberName 12(gl_PerVertex) 1 "gl_ClipDistance"
Name 14 ""
Name 17 "gl_PerVertex"
MemberName 17(gl_PerVertex) 0 "gl_Position"
MemberName 17(gl_PerVertex) 1 "gl_ClipDistance"
Name 21 "gl_in"
Decorate 12(gl_PerVertex) Block
Decorate 12(gl_PerVertex) Stream 0
Decorate 14 Stream 0
Decorate 17(gl_PerVertex) Block
2: TypeVoid
3: TypeFunction 2
7: TypeFloat 32
8: TypeVector 7(float) 4
9: TypeInt 32 0
10: 9(int) Constant 1
11: TypeArray 7(float) 10
12(gl_PerVertex): TypeStruct 8(fvec4) 11
13: TypePointer Output 12(gl_PerVertex)
14: 13(ptr) Variable Output
15: TypeInt 32 1
16: 15(int) Constant 0
17(gl_PerVertex): TypeStruct 8(fvec4) 11
18: 9(int) Constant 3
19: TypeArray 17(gl_PerVertex) 18
20: TypePointer Input 19
21(gl_in): 20(ptr) Variable Input
22: 15(int) Constant 1
23: TypePointer Input 8(fvec4)
26: TypePointer Output 8(fvec4)
28: TypePointer Input 7(float)
31: TypePointer Output 7(float)
4(main): 2 Function None 3
5: Label
24: 23(ptr) AccessChain 21(gl_in) 22 16
25: 8(fvec4) Load 24
27: 26(ptr) AccessChain 14 16
Store 27 25
29: 28(ptr) AccessChain 21(gl_in) 22 22 16
30: 7(float) Load 29
32: 31(ptr) AccessChain 14 22 16
Store 32 30
EmitVertex
EndPrimitive
Branch 6
6: Label
Return
FunctionEnd

View File

@ -0,0 +1,10 @@
spv.400.frag
Warning, version 400 is not yet complete; most version-specific features are present, but some are missing.
Linked fragment stage:
Missing functionality: texture gather

View File

@ -0,0 +1,176 @@
spv.400.tesc
Warning, version 400 is not yet complete; most version-specific features are present, but some are missing.
Linked tessellation control stage:
// Module Version 99
// Generated by (magic number): 51a00bb
// Id's are bound by 89
Source GLSL 400
SourceExtension "GL_ARB_separate_shader_objects"
1: ExtInstImport "GLSL.std.450"
MemoryModel Logical GLSL450
EntryPoint TessellationControl 4
ExecutionMode 4 OutputVertices 4
Name 4 "main"
Name 9 "a"
Name 14 "p"
Name 18 "gl_PerVertex"
MemberName 18(gl_PerVertex) 0 "gl_Position"
MemberName 18(gl_PerVertex) 1 "gl_PointSize"
MemberName 18(gl_PerVertex) 2 "gl_ClipDistance"
Name 22 "gl_in"
Name 29 "ps"
Name 33 "cd"
Name 37 "pvi"
Name 39 "gl_PatchVerticesIn"
Name 41 "pid"
Name 42 "gl_PrimitiveID"
Name 44 "iid"
Name 45 "gl_InvocationID"
Name 47 "gl_PerVertex"
MemberName 47(gl_PerVertex) 0 "gl_Position"
MemberName 47(gl_PerVertex) 1 "gl_PointSize"
MemberName 47(gl_PerVertex) 2 "gl_ClipDistance"
Name 51 "gl_out"
Name 62 "gl_TessLevelOuter"
Name 69 "gl_TessLevelInner"
Name 74 "outa"
Name 75 "patchOut"
Name 79 "inb"
Name 80 "ind"
Name 83 "ivla"
Name 84 "ivlb"
Name 87 "ovla"
Name 88 "ovlb"
Decorate 18(gl_PerVertex) Block
Decorate 39(gl_PatchVerticesIn) BuiltIn PatchVertices
Decorate 42(gl_PrimitiveID) BuiltIn PrimitiveId
Decorate 45(gl_InvocationID) BuiltIn InvocationId
Decorate 47(gl_PerVertex) Block
Decorate 62(gl_TessLevelOuter) Patch
Decorate 62(gl_TessLevelOuter) BuiltIn TessLevelOuter
Decorate 69(gl_TessLevelInner) Patch
Decorate 69(gl_TessLevelInner) BuiltIn TessLevelInner
Decorate 74(outa) NoStaticUse
Decorate 75(patchOut) Patch
Decorate 75(patchOut) NoStaticUse
Decorate 79(inb) NoStaticUse
Decorate 80(ind) NoStaticUse
Decorate 83(ivla) Location 3
Decorate 83(ivla) NoStaticUse
Decorate 84(ivlb) Location 4
Decorate 84(ivlb) NoStaticUse
Decorate 87(ovla) Location 3
Decorate 87(ovla) NoStaticUse
Decorate 88(ovlb) Location 4
Decorate 88(ovlb) NoStaticUse
2: TypeVoid
3: TypeFunction 2
7: TypeInt 32 1
8: TypePointer Function 7(int)
10: 7(int) Constant 5392
11: TypeFloat 32
12: TypeVector 11(float) 4
13: TypePointer Function 12(fvec4)
15: TypeInt 32 0
16: 15(int) Constant 1
17: TypeArray 11(float) 16
18(gl_PerVertex): TypeStruct 12(fvec4) 11(float) 17
19: 15(int) Constant 32
20: TypeArray 18(gl_PerVertex) 19
21: TypePointer Input 20
22(gl_in): 21(ptr) Variable Input
23: 7(int) Constant 1
24: 7(int) Constant 0
25: TypePointer Input 12(fvec4)
28: TypePointer Function 11(float)
30: TypePointer Input 11(float)
34: 7(int) Constant 2
38: TypePointer Input 7(int)
39(gl_PatchVerticesIn): 38(ptr) Variable Input
42(gl_PrimitiveID): 38(ptr) Variable Input
45(gl_InvocationID): 38(ptr) Variable Input
47(gl_PerVertex): TypeStruct 12(fvec4) 11(float) 17
48: 15(int) Constant 4
49: TypeArray 47(gl_PerVertex) 48
50: TypePointer Output 49
51(gl_out): 50(ptr) Variable Output
53: TypePointer Output 12(fvec4)
56: TypePointer Output 11(float)
60: TypeArray 11(float) 48
61: TypePointer Output 60
62(gl_TessLevelOuter): 61(ptr) Variable Output
63: 7(int) Constant 3
64: 11(float) Constant 1078774989
66: 15(int) Constant 2
67: TypeArray 11(float) 66
68: TypePointer Output 67
69(gl_TessLevelInner): 68(ptr) Variable Output
70: 11(float) Constant 1067869798
72: TypeArray 7(int) 48
73: TypePointer PrivateGlobal 72
74(outa): 73(ptr) Variable PrivateGlobal
75(patchOut): 53(ptr) Variable Output
76: TypeVector 11(float) 2
77: TypeArray 76(fvec2) 19
78: TypePointer Input 77
79(inb): 78(ptr) Variable Input
80(ind): 78(ptr) Variable Input
81: TypeArray 12(fvec4) 19
82: TypePointer Input 81
83(ivla): 82(ptr) Variable Input
84(ivlb): 82(ptr) Variable Input
85: TypeArray 12(fvec4) 48
86: TypePointer Output 85
87(ovla): 86(ptr) Variable Output
88(ovlb): 86(ptr) Variable Output
4(main): 2 Function None 3
5: Label
9(a): 8(ptr) Variable Function
14(p): 13(ptr) Variable Function
29(ps): 28(ptr) Variable Function
33(cd): 28(ptr) Variable Function
37(pvi): 8(ptr) Variable Function
41(pid): 8(ptr) Variable Function
44(iid): 8(ptr) Variable Function
MemoryBarrier Device Relaxed SequentiallyConsistent Acquire Release UniformMemory SubgroupMemory WorkgroupLocalMemory WorkgroupGlobalMemory AtomicCounterMemory ImageMemory
ControlBarrier Device
Store 9(a) 10
26: 25(ptr) AccessChain 22(gl_in) 23 24
27: 12(fvec4) Load 26
Store 14(p) 27
31: 30(ptr) AccessChain 22(gl_in) 23 23
32: 11(float) Load 31
Store 29(ps) 32
35: 30(ptr) AccessChain 22(gl_in) 23 34 34
36: 11(float) Load 35
Store 33(cd) 36
40: 7(int) Load 39(gl_PatchVerticesIn)
Store 37(pvi) 40
43: 7(int) Load 42(gl_PrimitiveID)
Store 41(pid) 43
46: 7(int) Load 45(gl_InvocationID)
Store 44(iid) 46
52: 12(fvec4) Load 14(p)
54: 53(ptr) AccessChain 51(gl_out) 23 24
Store 54 52
55: 11(float) Load 29(ps)
57: 56(ptr) AccessChain 51(gl_out) 23 23
Store 57 55
58: 11(float) Load 33(cd)
59: 56(ptr) AccessChain 51(gl_out) 23 34 23
Store 59 58
65: 56(ptr) AccessChain 62(gl_TessLevelOuter) 63
Store 65 64
71: 56(ptr) AccessChain 69(gl_TessLevelInner) 23
Store 71 70
Branch 6
6: Label
Return
FunctionEnd

View File

@ -0,0 +1,191 @@
spv.400.tese
Warning, version 400 is not yet complete; most version-specific features are present, but some are missing.
Linked tessellation evaluation stage:
// Module Version 99
// Generated by (magic number): 51a00bb
// Id's are bound by 99
Source GLSL 400
SourceExtension "GL_ARB_separate_shader_objects"
1: ExtInstImport "GLSL.std.450"
MemoryModel Logical GLSL450
EntryPoint TessellationEvaluation 4
ExecutionMode 4 InputTriangles
Name 4 "main"
Name 9 "a"
Name 14 "p"
Name 18 "gl_PerVertex"
MemberName 18(gl_PerVertex) 0 "gl_Position"
MemberName 18(gl_PerVertex) 1 "gl_PointSize"
MemberName 18(gl_PerVertex) 2 "gl_ClipDistance"
Name 22 "gl_in"
Name 29 "ps"
Name 33 "cd"
Name 37 "pvi"
Name 39 "gl_PatchVerticesIn"
Name 41 "pid"
Name 42 "gl_PrimitiveID"
Name 46 "tc"
Name 48 "gl_TessCoord"
Name 50 "tlo"
Name 54 "gl_TessLevelOuter"
Name 58 "tli"
Name 62 "gl_TessLevelInner"
Name 67 "gl_PerVertex"
MemberName 67(gl_PerVertex) 0 "gl_Position"
MemberName 67(gl_PerVertex) 1 "gl_PointSize"
MemberName 67(gl_PerVertex) 2 "gl_ClipDistance"
Name 69 ""
Name 78 "patchIn"
Name 82 "inb"
Name 83 "ind"
Name 84 "testblb"
MemberName 84(testblb) 0 "f"
Name 87 "blb"
Name 88 "testbld"
MemberName 88(testbld) 0 "f"
Name 91 "bld"
Name 94 "ivla"
Name 95 "ivlb"
Name 98 "ovla"
Decorate 18(gl_PerVertex) Block
Decorate 39(gl_PatchVerticesIn) BuiltIn PatchVertices
Decorate 42(gl_PrimitiveID) BuiltIn PrimitiveId
Decorate 48(gl_TessCoord) BuiltIn TessCoord
Decorate 54(gl_TessLevelOuter) Patch
Decorate 54(gl_TessLevelOuter) BuiltIn TessLevelOuter
Decorate 62(gl_TessLevelInner) Patch
Decorate 62(gl_TessLevelInner) BuiltIn TessLevelInner
Decorate 67(gl_PerVertex) Block
Decorate 78(patchIn) Patch
Decorate 78(patchIn) NoStaticUse
Decorate 82(inb) NoStaticUse
Decorate 83(ind) NoStaticUse
Decorate 84(testblb) Block
Decorate 87(blb) NoStaticUse
Decorate 88(testbld) Block
Decorate 91(bld) NoStaticUse
Decorate 94(ivla) Location 23
Decorate 94(ivla) NoStaticUse
Decorate 95(ivlb) Location 24
Decorate 95(ivlb) NoStaticUse
Decorate 98(ovla) Location 23
Decorate 98(ovla) NoStaticUse
2: TypeVoid
3: TypeFunction 2
7: TypeInt 32 1
8: TypePointer Function 7(int)
10: 7(int) Constant 1512
11: TypeFloat 32
12: TypeVector 11(float) 4
13: TypePointer Function 12(fvec4)
15: TypeInt 32 0
16: 15(int) Constant 1
17: TypeArray 11(float) 16
18(gl_PerVertex): TypeStruct 12(fvec4) 11(float) 17
19: 15(int) Constant 32
20: TypeArray 18(gl_PerVertex) 19
21: TypePointer Input 20
22(gl_in): 21(ptr) Variable Input
23: 7(int) Constant 1
24: 7(int) Constant 0
25: TypePointer Input 12(fvec4)
28: TypePointer Function 11(float)
30: TypePointer Input 11(float)
34: 7(int) Constant 2
38: TypePointer Input 7(int)
39(gl_PatchVerticesIn): 38(ptr) Variable Input
42(gl_PrimitiveID): 38(ptr) Variable Input
44: TypeVector 11(float) 3
45: TypePointer Function 44(fvec3)
47: TypePointer Input 44(fvec3)
48(gl_TessCoord): 47(ptr) Variable Input
51: 15(int) Constant 4
52: TypeArray 11(float) 51
53: TypePointer Input 52
54(gl_TessLevelOuter): 53(ptr) Variable Input
55: 7(int) Constant 3
59: 15(int) Constant 2
60: TypeArray 11(float) 59
61: TypePointer Input 60
62(gl_TessLevelInner): 61(ptr) Variable Input
65: 15(int) Constant 3
66: TypeArray 11(float) 65
67(gl_PerVertex): TypeStruct 12(fvec4) 11(float) 66
68: TypePointer Output 67(gl_PerVertex)
69: 68(ptr) Variable Output
71: TypePointer Output 12(fvec4)
74: TypePointer Output 11(float)
78(patchIn): 25(ptr) Variable Input
79: TypeVector 11(float) 2
80: TypeArray 79(fvec2) 19
81: TypePointer Input 80
82(inb): 81(ptr) Variable Input
83(ind): 81(ptr) Variable Input
84(testblb): TypeStruct 7(int)
85: TypeArray 84(testblb) 19
86: TypePointer Input 85
87(blb): 86(ptr) Variable Input
88(testbld): TypeStruct 7(int)
89: TypeArray 88(testbld) 19
90: TypePointer Input 89
91(bld): 90(ptr) Variable Input
92: TypeArray 12(fvec4) 19
93: TypePointer Input 92
94(ivla): 93(ptr) Variable Input
95(ivlb): 93(ptr) Variable Input
96: TypeArray 12(fvec4) 59
97: TypePointer Output 96
98(ovla): 97(ptr) Variable Output
4(main): 2 Function None 3
5: Label
9(a): 8(ptr) Variable Function
14(p): 13(ptr) Variable Function
29(ps): 28(ptr) Variable Function
33(cd): 28(ptr) Variable Function
37(pvi): 8(ptr) Variable Function
41(pid): 8(ptr) Variable Function
46(tc): 45(ptr) Variable Function
50(tlo): 28(ptr) Variable Function
58(tli): 28(ptr) Variable Function
Store 9(a) 10
26: 25(ptr) AccessChain 22(gl_in) 23 24
27: 12(fvec4) Load 26
Store 14(p) 27
31: 30(ptr) AccessChain 22(gl_in) 23 23
32: 11(float) Load 31
Store 29(ps) 32
35: 30(ptr) AccessChain 22(gl_in) 23 34 34
36: 11(float) Load 35
Store 33(cd) 36
40: 7(int) Load 39(gl_PatchVerticesIn)
Store 37(pvi) 40
43: 7(int) Load 42(gl_PrimitiveID)
Store 41(pid) 43
49: 44(fvec3) Load 48(gl_TessCoord)
Store 46(tc) 49
56: 30(ptr) AccessChain 54(gl_TessLevelOuter) 55
57: 11(float) Load 56
Store 50(tlo) 57
63: 30(ptr) AccessChain 62(gl_TessLevelInner) 23
64: 11(float) Load 63
Store 58(tli) 64
70: 12(fvec4) Load 14(p)
72: 71(ptr) AccessChain 69 24
Store 72 70
73: 11(float) Load 29(ps)
75: 74(ptr) AccessChain 69 23
Store 75 73
76: 11(float) Load 33(cd)
77: 74(ptr) AccessChain 69 34 34
Store 77 76
Branch 6
6: Label
Return
FunctionEnd

View File

@ -0,0 +1,10 @@
spv.420.geom
Warning, version 420 is not yet complete; most version-specific features are present, but some are missing.
Linked geometry stage:
Missing functionality: texture gather

View File

@ -0,0 +1,135 @@
spv.430.vert
Warning, version 430 is not yet complete; most version-specific features are present, but some are missing.
Linked vertex stage:
// Module Version 99
// Generated by (magic number): 51a00bb
// Id's are bound by 62
Source GLSL 430
1: ExtInstImport "GLSL.std.450"
MemoryModel Logical GLSL450
EntryPoint Vertex 4
Name 4 "main"
Name 11 "gl_PerVertex"
MemberName 11(gl_PerVertex) 0 "gl_ClipDistance"
Name 13 ""
Name 24 "bad"
Name 35 "badorder3"
Name 39 "f"
Name 43 "uv4"
Name 44 "badorder"
Name 45 "badorder2"
Name 46 "boundblock"
MemberName 46(boundblock) 0 "aoeu"
Name 48 "boundInst"
Name 49 "anonblock"
MemberName 49(anonblock) 0 "aoeu"
Name 51 ""
Name 54 "sampb1"
Name 57 "sampb2"
Name 58 "sampb4"
Name 60 "gl_VertexID"
Name 61 "gl_InstanceID"
Decorate 11(gl_PerVertex) Block
Decorate 35(badorder3) Flat
Decorate 43(uv4) Location 4
Decorate 43(uv4) NoStaticUse
Decorate 29 NoStaticUse
Decorate 29 NoStaticUse
Decorate 44(badorder) NoStaticUse
Decorate 45(badorder2) Smooth
Decorate 45(badorder2) Invariant
Decorate 45(badorder2) NoStaticUse
Decorate 46(boundblock) GLSLShared
Decorate 46(boundblock) Block
Decorate 48(boundInst) Binding 3
Decorate 48(boundInst) NoStaticUse
Decorate 49(anonblock) GLSLShared
Decorate 49(anonblock) Block
Decorate 51 Binding 7
Decorate 51 NoStaticUse
Decorate 54(sampb1) Binding 4
Decorate 54(sampb1) NoStaticUse
Decorate 57(sampb2) Binding 5
Decorate 57(sampb2) NoStaticUse
Decorate 58(sampb4) Binding 31
Decorate 58(sampb4) NoStaticUse
Decorate 60(gl_VertexID) BuiltIn VertexId
Decorate 60(gl_VertexID) NoStaticUse
Decorate 61(gl_InstanceID) BuiltIn InstanceId
Decorate 61(gl_InstanceID) NoStaticUse
2: TypeVoid
3: TypeFunction 2
7: TypeFloat 32
8: TypeInt 32 0
9: 8(int) Constant 3
10: TypeArray 7(float) 9
11(gl_PerVertex): TypeStruct 10
12: TypePointer Output 11(gl_PerVertex)
13: 12(ptr) Variable Output
14: TypeInt 32 1
15: 14(int) Constant 0
16: 14(int) Constant 2
17: 7(float) Constant 1080872141
18: TypePointer Output 7(float)
20: TypeVector 7(float) 4
21: 8(int) Constant 10
22: TypeArray 20(fvec4) 21
23: TypePointer Input 22
24(bad): 23(ptr) Variable Input
25: TypePointer Input 20(fvec4)
29: 7(float) Constant 1082549862
30: TypeBool
34: TypePointer Output 20(fvec4)
35(badorder3): 34(ptr) Variable Output
38: TypePointer UniformConstant 7(float)
39(f): 38(ptr) Variable UniformConstant
42: TypePointer UniformConstant 20(fvec4)
43(uv4): 42(ptr) Variable UniformConstant
44(badorder): 25(ptr) Variable Input
45(badorder2): 34(ptr) Variable Output
46(boundblock): TypeStruct 14(int)
47: TypePointer Uniform 46(boundblock)
48(boundInst): 47(ptr) Variable Uniform
49(anonblock): TypeStruct 14(int)
50: TypePointer Uniform 49(anonblock)
51: 50(ptr) Variable Uniform
52: TypeSampler7(float) 2D filter+texture
53: TypePointer UniformConstant 52
54(sampb1): 53(ptr) Variable UniformConstant
55: TypeArray 52 21
56: TypePointer UniformConstant 55
57(sampb2): 56(ptr) Variable UniformConstant
58(sampb4): 53(ptr) Variable UniformConstant
59: TypePointer Input 14(int)
60(gl_VertexID): 59(ptr) Variable Input
61(gl_InstanceID): 59(ptr) Variable Input
4(main): 2 Function None 3
5: Label
19: 18(ptr) AccessChain 13 15 16
Store 19 17
26: 25(ptr) AccessChain 24(bad) 15
27: 20(fvec4) Load 26
28: 7(float) CompositeExtract 27 0
31: 30(bool) FOrdEqual 28 29
SelectionMerge 33 None
BranchConditional 31 32 33
32: Label
36: 25(ptr) AccessChain 24(bad) 15
37: 20(fvec4) Load 36
Store 35(badorder3) 37
Branch 33
33: Label
40: 7(float) Load 39(f)
41: 18(ptr) AccessChain 13 15 15
Store 41 40
Branch 6
6: Label
Return
FunctionEnd

View File

@ -0,0 +1,516 @@
spv.Operations.frag
Linked fragment stage:
// Module Version 99
// Generated by (magic number): 51a00bb
// Id's are bound by 399
Source GLSL 130
1: ExtInstImport "GLSL.std.450"
MemoryModel Logical GLSL450
EntryPoint Fragment 4
Name 4 "main"
Name 10 "v"
Name 12 "uv4"
Name 21 "i"
Name 23 "ui"
Name 170 "uf"
Name 217 "b"
Name 243 "ub41"
Name 245 "ub42"
Name 302 "f"
Name 378 "gl_FragColor"
Name 396 "uiv4"
Name 398 "ub"
Decorate 378(gl_FragColor) BuiltIn FragColor
Decorate 396(uiv4) NoStaticUse
Decorate 398(ub) NoStaticUse
2: TypeVoid
3: TypeFunction 2
7: TypeFloat 32
8: TypeVector 7(float) 4
9: TypePointer Function 8(fvec4)
11: TypePointer UniformConstant 8(fvec4)
12(uv4): 11(ptr) Variable UniformConstant
19: TypeInt 32 1
20: TypePointer Function 19(int)
22: TypePointer UniformConstant 19(int)
23(ui): 22(ptr) Variable UniformConstant
169: TypePointer UniformConstant 7(float)
170(uf): 169(ptr) Variable UniformConstant
215: TypeBool
216: TypePointer Function 215(bool)
220: TypeVector 215(bool) 4
242: TypePointer UniformConstant 220(bvec4)
243(ub41): 242(ptr) Variable UniformConstant
245(ub42): 242(ptr) Variable UniformConstant
292: 19(int) Constant 2
299: 19(int) Constant 1
301: TypePointer Function 7(float)
331: TypeVector 7(float) 3
347: 7(float) Constant 1073741824
354: 7(float) Constant 1065353216
359: 19(int) Constant 66
365: 19(int) Constant 17
377: TypePointer Output 8(fvec4)
378(gl_FragColor): 377(ptr) Variable Output
394: TypeVector 19(int) 4
395: TypePointer UniformConstant 394(ivec4)
396(uiv4): 395(ptr) Variable UniformConstant
397: TypePointer UniformConstant 215(bool)
398(ub): 397(ptr) Variable UniformConstant
4(main): 2 Function None 3
5: Label
10(v): 9(ptr) Variable Function
21(i): 20(ptr) Variable Function
217(b): 216(ptr) Variable Function
302(f): 301(ptr) Variable Function
379: 9(ptr) Variable Function
13: 8(fvec4) Load 12(uv4)
14: 8(fvec4) ExtInst 1(GLSL.std.450) 8(radians) 13
Store 10(v) 14
15: 8(fvec4) Load 10(v)
16: 8(fvec4) ExtInst 1(GLSL.std.450) 9(degrees) 15
17: 8(fvec4) Load 10(v)
18: 8(fvec4) FAdd 17 16
Store 10(v) 18
24: 19(int) Load 23(ui)
25: 19(int) Load 23(ui)
26: 19(int) IMul 24 25
Store 21(i) 26
27: 8(fvec4) Load 10(v)
28: 8(fvec4) ExtInst 1(GLSL.std.450) 10(sin) 27
29: 8(fvec4) Load 10(v)
30: 8(fvec4) FAdd 29 28
Store 10(v) 30
31: 8(fvec4) Load 10(v)
32: 8(fvec4) ExtInst 1(GLSL.std.450) 11(cos) 31
33: 8(fvec4) Load 10(v)
34: 8(fvec4) FAdd 33 32
Store 10(v) 34
35: 8(fvec4) Load 10(v)
36: 8(fvec4) ExtInst 1(GLSL.std.450) 12(tan) 35
37: 8(fvec4) Load 10(v)
38: 8(fvec4) FAdd 37 36
Store 10(v) 38
39: 8(fvec4) Load 10(v)
40: 8(fvec4) ExtInst 1(GLSL.std.450) 13(asin) 39
41: 8(fvec4) Load 10(v)
42: 8(fvec4) FAdd 41 40
Store 10(v) 42
43: 8(fvec4) Load 10(v)
44: 8(fvec4) ExtInst 1(GLSL.std.450) 14(acos) 43
45: 8(fvec4) Load 10(v)
46: 8(fvec4) FAdd 45 44
Store 10(v) 46
47: 8(fvec4) Load 10(v)
48: 8(fvec4) ExtInst 1(GLSL.std.450) 15(atan) 47
49: 8(fvec4) Load 10(v)
50: 8(fvec4) FAdd 49 48
Store 10(v) 50
51: 8(fvec4) Load 10(v)
52: 8(fvec4) ExtInst 1(GLSL.std.450) 16(sinh) 51
53: 8(fvec4) Load 10(v)
54: 8(fvec4) FAdd 53 52
Store 10(v) 54
55: 8(fvec4) Load 10(v)
56: 8(fvec4) ExtInst 1(GLSL.std.450) 17(cosh) 55
57: 8(fvec4) Load 10(v)
58: 8(fvec4) FAdd 57 56
Store 10(v) 58
59: 8(fvec4) Load 10(v)
60: 8(fvec4) ExtInst 1(GLSL.std.450) 18(tanh) 59
61: 8(fvec4) Load 10(v)
62: 8(fvec4) FAdd 61 60
Store 10(v) 62
63: 8(fvec4) Load 10(v)
64: 8(fvec4) ExtInst 1(GLSL.std.450) 19(asinh) 63
65: 8(fvec4) Load 10(v)
66: 8(fvec4) FAdd 65 64
Store 10(v) 66
67: 8(fvec4) Load 10(v)
68: 8(fvec4) ExtInst 1(GLSL.std.450) 20(acosh) 67
69: 8(fvec4) Load 10(v)
70: 8(fvec4) FAdd 69 68
Store 10(v) 70
71: 8(fvec4) Load 10(v)
72: 8(fvec4) ExtInst 1(GLSL.std.450) 21(atanh) 71
73: 8(fvec4) Load 10(v)
74: 8(fvec4) FAdd 73 72
Store 10(v) 74
75: 8(fvec4) Load 10(v)
76: 8(fvec4) Load 10(v)
77: 8(fvec4) ExtInst 1(GLSL.std.450) 23(pow) 75 76
78: 8(fvec4) Load 10(v)
79: 8(fvec4) FAdd 78 77
Store 10(v) 79
80: 8(fvec4) Load 10(v)
81: 8(fvec4) ExtInst 1(GLSL.std.450) 24(exp) 80
82: 8(fvec4) Load 10(v)
83: 8(fvec4) FAdd 82 81
Store 10(v) 83
84: 8(fvec4) Load 10(v)
85: 8(fvec4) ExtInst 1(GLSL.std.450) 25(log) 84
86: 8(fvec4) Load 10(v)
87: 8(fvec4) FAdd 86 85
Store 10(v) 87
88: 8(fvec4) Load 10(v)
89: 8(fvec4) ExtInst 1(GLSL.std.450) 26(exp2) 88
90: 8(fvec4) Load 10(v)
91: 8(fvec4) FAdd 90 89
Store 10(v) 91
92: 8(fvec4) Load 10(v)
93: 8(fvec4) ExtInst 1(GLSL.std.450) 27(log2) 92
94: 8(fvec4) Load 10(v)
95: 8(fvec4) FAdd 94 93
Store 10(v) 95
96: 8(fvec4) Load 10(v)
97: 8(fvec4) ExtInst 1(GLSL.std.450) 28(sqrt) 96
98: 8(fvec4) Load 10(v)
99: 8(fvec4) FAdd 98 97
Store 10(v) 99
100: 8(fvec4) Load 10(v)
101: 8(fvec4) ExtInst 1(GLSL.std.450) 29(inverseSqrt) 100
102: 8(fvec4) Load 10(v)
103: 8(fvec4) FAdd 102 101
Store 10(v) 103
104: 8(fvec4) Load 10(v)
105: 8(fvec4) ExtInst 1(GLSL.std.450) 3(abs) 104
106: 8(fvec4) Load 10(v)
107: 8(fvec4) FAdd 106 105
Store 10(v) 107
108: 8(fvec4) Load 10(v)
109: 8(fvec4) ExtInst 1(GLSL.std.450) 4(sign) 108
110: 8(fvec4) Load 10(v)
111: 8(fvec4) FAdd 110 109
Store 10(v) 111
112: 8(fvec4) Load 10(v)
113: 8(fvec4) ExtInst 1(GLSL.std.450) 5(floor) 112
114: 8(fvec4) Load 10(v)
115: 8(fvec4) FAdd 114 113
Store 10(v) 115
116: 8(fvec4) Load 10(v)
117: 8(fvec4) ExtInst 1(GLSL.std.450) 6(ceil) 116
118: 8(fvec4) Load 10(v)
119: 8(fvec4) FAdd 118 117
Store 10(v) 119
120: 8(fvec4) Load 10(v)
121: 8(fvec4) ExtInst 1(GLSL.std.450) 7(fract) 120
122: 8(fvec4) Load 10(v)
123: 8(fvec4) FAdd 122 121
Store 10(v) 123
124: 8(fvec4) Load 10(v)
125: 8(fvec4) Load 10(v)
126: 8(fvec4) FMod 124 125
127: 8(fvec4) Load 10(v)
128: 8(fvec4) FAdd 127 126
Store 10(v) 128
129: 8(fvec4) Load 10(v)
130: 8(fvec4) Load 10(v)
131: 7(float) CompositeExtract 130 0
132: 8(fvec4) CompositeConstruct 131 131 131 131
133: 8(fvec4) FMod 129 132
134: 8(fvec4) Load 10(v)
135: 8(fvec4) FAdd 134 133
Store 10(v) 135
136: 8(fvec4) Load 10(v)
137: 8(fvec4) Load 12(uv4)
138: 8(fvec4) ExtInst 1(GLSL.std.450) 33(min) 136 137
139: 8(fvec4) Load 10(v)
140: 8(fvec4) FAdd 139 138
Store 10(v) 140
141: 8(fvec4) Load 10(v)
142: 8(fvec4) Load 12(uv4)
143: 8(fvec4) ExtInst 1(GLSL.std.450) 34(max) 141 142
144: 8(fvec4) Load 10(v)
145: 8(fvec4) FAdd 144 143
Store 10(v) 145
146: 8(fvec4) Load 10(v)
147: 8(fvec4) Load 12(uv4)
148: 8(fvec4) Load 12(uv4)
149: 8(fvec4) ExtInst 1(GLSL.std.450) 35(clamp) 146 147 148
150: 8(fvec4) Load 10(v)
151: 8(fvec4) FAdd 150 149
Store 10(v) 151
152: 8(fvec4) Load 10(v)
153: 8(fvec4) Load 10(v)
154: 8(fvec4) Load 10(v)
155: 8(fvec4) ExtInst 1(GLSL.std.450) 36(mix) 152 153 154
156: 8(fvec4) Load 10(v)
157: 8(fvec4) FAdd 156 155
Store 10(v) 157
158: 8(fvec4) Load 10(v)
159: 8(fvec4) Load 10(v)
160: 8(fvec4) ExtInst 1(GLSL.std.450) 37(step) 158 159
161: 8(fvec4) Load 10(v)
162: 8(fvec4) FAdd 161 160
Store 10(v) 162
163: 8(fvec4) Load 10(v)
164: 8(fvec4) Load 10(v)
165: 8(fvec4) Load 10(v)
166: 8(fvec4) ExtInst 1(GLSL.std.450) 38(smoothStep) 163 164 165
167: 8(fvec4) Load 10(v)
168: 8(fvec4) FAdd 167 166
Store 10(v) 168
171: 7(float) Load 170(uf)
172: 8(fvec4) Load 10(v)
173: 8(fvec4) ExtInst 1(GLSL.std.450) 37(step) 171 172
174: 8(fvec4) Load 10(v)
175: 8(fvec4) FAdd 174 173
Store 10(v) 175
176: 7(float) Load 170(uf)
177: 7(float) Load 170(uf)
178: 8(fvec4) Load 10(v)
179: 8(fvec4) ExtInst 1(GLSL.std.450) 38(smoothStep) 176 177 178
180: 8(fvec4) Load 10(v)
181: 8(fvec4) FAdd 180 179
Store 10(v) 181
182: 8(fvec4) Load 10(v)
183: 8(fvec4) ExtInst 1(GLSL.std.450) 61(normalize) 182
184: 8(fvec4) Load 10(v)
185: 8(fvec4) FAdd 184 183
Store 10(v) 185
186: 8(fvec4) Load 10(v)
187: 8(fvec4) Load 10(v)
188: 8(fvec4) Load 10(v)
189: 8(fvec4) ExtInst 1(GLSL.std.450) 63(faceForward) 186 187 188
190: 8(fvec4) Load 10(v)
191: 8(fvec4) FAdd 190 189
Store 10(v) 191
192: 8(fvec4) Load 10(v)
193: 8(fvec4) Load 10(v)
194: 8(fvec4) ExtInst 1(GLSL.std.450) 64(reflect) 192 193
195: 8(fvec4) Load 10(v)
196: 8(fvec4) FAdd 195 194
Store 10(v) 196
197: 8(fvec4) Load 10(v)
198: 8(fvec4) Load 10(v)
199: 7(float) Load 170(uf)
200: 8(fvec4) ExtInst 1(GLSL.std.450) 65(refract) 197 198 199
201: 8(fvec4) Load 10(v)
202: 8(fvec4) FAdd 201 200
Store 10(v) 202
203: 8(fvec4) Load 10(v)
204: 8(fvec4) DPdx 203
205: 8(fvec4) Load 10(v)
206: 8(fvec4) FAdd 205 204
Store 10(v) 206
207: 8(fvec4) Load 10(v)
208: 8(fvec4) DPdy 207
209: 8(fvec4) Load 10(v)
210: 8(fvec4) FAdd 209 208
Store 10(v) 210
211: 8(fvec4) Load 10(v)
212: 8(fvec4) Fwidth 211
213: 8(fvec4) Load 10(v)
214: 8(fvec4) FAdd 213 212
Store 10(v) 214
218: 8(fvec4) Load 10(v)
219: 8(fvec4) Load 12(uv4)
221: 220(bvec4) FOrdLessThan 218 219
222: 215(bool) Any 221
Store 217(b) 222
223: 215(bool) Load 217(b)
224: 8(fvec4) Load 10(v)
225: 8(fvec4) Load 12(uv4)
226: 220(bvec4) FOrdLessThanEqual 224 225
227: 215(bool) Any 226
228: 215(bool) LogicalAnd 223 227
Store 217(b) 228
229: 215(bool) Load 217(b)
230: 8(fvec4) Load 10(v)
231: 8(fvec4) Load 12(uv4)
232: 220(bvec4) FOrdGreaterThan 230 231
233: 215(bool) Any 232
234: 215(bool) LogicalAnd 229 233
Store 217(b) 234
235: 215(bool) Load 217(b)
236: 8(fvec4) Load 10(v)
237: 8(fvec4) Load 12(uv4)
238: 220(bvec4) FOrdGreaterThanEqual 236 237
239: 215(bool) Any 238
240: 215(bool) LogicalAnd 235 239
Store 217(b) 240
241: 215(bool) Load 217(b)
244: 220(bvec4) Load 243(ub41)
246: 220(bvec4) Load 245(ub42)
247: 220(bvec4) IEqual 244 246
248: 215(bool) Any 247
249: 215(bool) LogicalAnd 241 248
Store 217(b) 249
250: 215(bool) Load 217(b)
251: 220(bvec4) Load 243(ub41)
252: 220(bvec4) Load 245(ub42)
253: 220(bvec4) INotEqual 251 252
254: 215(bool) Any 253
255: 215(bool) LogicalAnd 250 254
Store 217(b) 255
256: 215(bool) Load 217(b)
257: 220(bvec4) Load 243(ub41)
258: 215(bool) Any 257
259: 215(bool) LogicalAnd 256 258
Store 217(b) 259
260: 215(bool) Load 217(b)
261: 220(bvec4) Load 243(ub41)
262: 215(bool) All 261
263: 215(bool) LogicalAnd 260 262
Store 217(b) 263
264: 215(bool) Load 217(b)
265: 220(bvec4) Load 243(ub41)
266: 220(bvec4) Not 265
267: 215(bool) Any 266
268: 215(bool) LogicalAnd 264 267
Store 217(b) 268
269: 19(int) Load 21(i)
270: 19(int) Load 23(ui)
271: 19(int) IAdd 269 270
272: 19(int) Load 21(i)
273: 19(int) IMul 271 272
274: 19(int) Load 23(ui)
275: 19(int) ISub 273 274
276: 19(int) Load 21(i)
277: 19(int) SDiv 275 276
Store 21(i) 277
278: 19(int) Load 21(i)
279: 19(int) Load 23(ui)
280: 19(int) SMod 278 279
Store 21(i) 280
281: 19(int) Load 21(i)
282: 19(int) Load 23(ui)
283: 215(bool) IEqual 281 282
284: 19(int) Load 21(i)
285: 19(int) Load 23(ui)
286: 215(bool) INotEqual 284 285
287: 19(int) Load 21(i)
288: 19(int) Load 23(ui)
289: 215(bool) IEqual 287 288
290: 215(bool) LogicalAnd 286 289
291: 19(int) Load 21(i)
293: 215(bool) INotEqual 291 292
294: 215(bool) LogicalXor 290 293
295: 215(bool) LogicalOr 283 294
SelectionMerge 297 None
BranchConditional 295 296 297
296: Label
298: 19(int) Load 21(i)
300: 19(int) IAdd 298 299
Store 21(i) 300
Branch 297
297: Label
303: 7(float) Load 170(uf)
304: 7(float) Load 170(uf)
305: 7(float) FAdd 303 304
306: 7(float) Load 170(uf)
307: 7(float) FMul 305 306
308: 7(float) Load 170(uf)
309: 7(float) FSub 307 308
310: 7(float) Load 170(uf)
311: 7(float) FDiv 309 310
Store 302(f) 311
312: 8(fvec4) Load 10(v)
313: 7(float) ExtInst 1(GLSL.std.450) 58(length) 312
314: 7(float) Load 302(f)
315: 7(float) FAdd 314 313
Store 302(f) 315
316: 8(fvec4) Load 10(v)
317: 8(fvec4) Load 10(v)
318: 7(float) ExtInst 1(GLSL.std.450) 59(distance) 316 317
319: 7(float) Load 302(f)
320: 7(float) FAdd 319 318
Store 302(f) 320
321: 8(fvec4) Load 10(v)
322: 8(fvec4) Load 10(v)
323: 7(float) Dot 321 322
324: 7(float) Load 302(f)
325: 7(float) FAdd 324 323
Store 302(f) 325
326: 7(float) Load 302(f)
327: 7(float) Load 170(uf)
328: 7(float) FMul 326 327
329: 7(float) Load 302(f)
330: 7(float) FAdd 329 328
Store 302(f) 330
332: 8(fvec4) Load 10(v)
333: 331(fvec3) VectorShuffle 332 332 0 1 2
334: 8(fvec4) Load 10(v)
335: 331(fvec3) VectorShuffle 334 334 0 1 2
336: 331(fvec3) ExtInst 1(GLSL.std.450) 60(cross) 333 335
337: 7(float) CompositeExtract 336 0
338: 7(float) Load 302(f)
339: 7(float) FAdd 338 337
Store 302(f) 339
340: 7(float) Load 302(f)
341: 7(float) Load 170(uf)
342: 215(bool) FOrdEqual 340 341
343: 7(float) Load 302(f)
344: 7(float) Load 170(uf)
345: 215(bool) FOrdNotEqual 343 344
346: 7(float) Load 302(f)
348: 215(bool) FOrdNotEqual 346 347
349: 215(bool) LogicalAnd 345 348
350: 215(bool) LogicalOr 342 349
SelectionMerge 352 None
BranchConditional 350 351 352
351: Label
353: 7(float) Load 302(f)
355: 7(float) FAdd 353 354
Store 302(f) 355
Branch 352
352: Label
356: 19(int) Load 23(ui)
357: 19(int) Load 21(i)
358: 19(int) BitwiseAnd 357 356
Store 21(i) 358
360: 19(int) Load 21(i)
361: 19(int) BitwiseOr 360 359
Store 21(i) 361
362: 19(int) Load 23(ui)
363: 19(int) Load 21(i)
364: 19(int) BitwiseXor 363 362
Store 21(i) 364
366: 19(int) Load 21(i)
367: 19(int) SMod 366 365
Store 21(i) 367
368: 19(int) Load 21(i)
369: 19(int) ShiftRightArithmetic 368 292
Store 21(i) 369
370: 19(int) Load 23(ui)
371: 19(int) Load 21(i)
372: 19(int) ShiftLeftLogical 371 370
Store 21(i) 372
373: 19(int) Load 21(i)
374: 19(int) Not 373
Store 21(i) 374
375: 215(bool) Load 217(b)
376: 215(bool) Not 375
Store 217(b) 376
380: 215(bool) Load 217(b)
SelectionMerge 382 None
BranchConditional 380 381 391
381: Label
383: 19(int) Load 21(i)
384: 7(float) ConvertSToF 383
385: 8(fvec4) CompositeConstruct 384 384 384 384
386: 7(float) Load 302(f)
387: 8(fvec4) CompositeConstruct 386 386 386 386
388: 8(fvec4) FAdd 385 387
389: 8(fvec4) Load 10(v)
390: 8(fvec4) FAdd 388 389
Store 379 390
Branch 382
391: Label
392: 8(fvec4) Load 10(v)
Store 379 392
Branch 382
382: Label
393: 8(fvec4) Load 379
Store 378(gl_FragColor) 393
Branch 6
6: Label
Return
FunctionEnd

View File

@ -0,0 +1,11 @@
spv.aggOps.frag
WARNING: 0:4: varying deprecated in version 130; may be removed in future release
WARNING: 0:6: varying deprecated in version 130; may be removed in future release
Linked fragment stage:
Missing functionality: Composite comparison of non-vectors

View File

@ -0,0 +1,133 @@
spv.always-discard.frag
Linked fragment stage:
// Module Version 99
// Generated by (magic number): 51a00bb
// Id's are bound by 81
Source GLSL 110
1: ExtInstImport "GLSL.std.450"
MemoryModel Logical GLSL450
EntryPoint Fragment 4
Name 4 "main"
Name 10 "white"
Name 13 "black"
Name 16 "color"
Name 19 "x"
Name 22 "tex_coord"
Name 28 "y"
Name 33 "radius"
Name 56 "gl_FragColor"
Decorate 22(tex_coord) Smooth
Decorate 56(gl_FragColor) BuiltIn FragColor
2: TypeVoid
3: TypeFunction 2
7: TypeFloat 32
8: TypeVector 7(float) 4
9: TypePointer Function 8(fvec4)
11: 7(float) Constant 1065353216
12: 8(fvec4) ConstantComposite 11 11 11 11
14: 7(float) Constant 1045220557
15: 8(fvec4) ConstantComposite 14 14 14 14
18: TypePointer Function 7(float)
20: TypeVector 7(float) 2
21: TypePointer Input 20(fvec2)
22(tex_coord): 21(ptr) Variable Input
25: 7(float) Constant 1073741824
43: TypeBool
48: 7(float) Constant 1066192077
55: TypePointer Output 8(fvec4)
56(gl_FragColor): 55(ptr) Variable Output
59: 7(float) Constant 1067030938
68: 7(float) Constant 1061158912
73: 7(float) Constant 1098907648
4(main): 2 Function None 3
5: Label
10(white): 9(ptr) Variable Function
13(black): 9(ptr) Variable Function
16(color): 9(ptr) Variable Function
19(x): 18(ptr) Variable Function
28(y): 18(ptr) Variable Function
33(radius): 18(ptr) Variable Function
Store 10(white) 12
Store 13(black) 15
17: 8(fvec4) Load 10(white)
Store 16(color) 17
23: 20(fvec2) Load 22(tex_coord)
24: 7(float) CompositeExtract 23 0
26: 7(float) FMul 24 25
27: 7(float) FSub 26 11
Store 19(x) 27
29: 20(fvec2) Load 22(tex_coord)
30: 7(float) CompositeExtract 29 1
31: 7(float) FMul 30 25
32: 7(float) FSub 31 11
Store 28(y) 32
34: 7(float) Load 19(x)
35: 7(float) Load 19(x)
36: 7(float) FMul 34 35
37: 7(float) Load 28(y)
38: 7(float) Load 28(y)
39: 7(float) FMul 37 38
40: 7(float) FAdd 36 39
41: 7(float) ExtInst 1(GLSL.std.450) 28(sqrt) 40
Store 33(radius) 41
42: 7(float) Load 33(radius)
44: 43(bool) FOrdGreaterThan 42 11
SelectionMerge 46 None
BranchConditional 44 45 46
45: Label
47: 7(float) Load 33(radius)
49: 43(bool) FOrdGreaterThan 47 48
SelectionMerge 51 None
BranchConditional 49 50 51
50: Label
52: 8(fvec4) Load 16(color)
53: 8(fvec4) CompositeConstruct 11 11 11 11
54: 8(fvec4) FAdd 52 53
Store 16(color) 54
Branch 51
51: Label
57: 8(fvec4) Load 16(color)
Store 56(gl_FragColor) 57
58: 7(float) Load 33(radius)
60: 43(bool) FOrdGreaterThan 58 59
SelectionMerge 62 None
BranchConditional 60 61 62
61: Label
63: 8(fvec4) Load 16(color)
64: 8(fvec4) CompositeConstruct 11 11 11 11
65: 8(fvec4) FAdd 63 64
Store 16(color) 65
Branch 62
62: Label
Branch 46
46: Label
Kill
66: Label
67: 7(float) Load 33(radius)
69: 43(bool) FOrdGreaterThanEqual 67 68
SelectionMerge 71 None
BranchConditional 69 70 71
70: Label
72: 7(float) Load 33(radius)
74: 7(float) ExtInst 1(GLSL.std.450) 23(pow) 72 73
75: 7(float) FDiv 74 25
76: 7(float) ExtInst 1(GLSL.std.450) 3(abs) 75
77: 8(fvec4) Load 16(color)
78: 8(fvec4) CompositeConstruct 76 76 76 76
79: 8(fvec4) FSub 77 78
Store 16(color) 79
Branch 71
71: Label
80: 8(fvec4) Load 16(color)
Store 56(gl_FragColor) 80
Branch 6
6: Label
Return
FunctionEnd

View File

@ -0,0 +1,67 @@
spv.always-discard2.frag
Linked fragment stage:
// Module Version 99
// Generated by (magic number): 51a00bb
// Id's are bound by 37
Source GLSL 110
1: ExtInstImport "GLSL.std.450"
MemoryModel Logical GLSL450
EntryPoint Fragment 4
Name 4 "main"
Name 10 "white"
Name 13 "black"
Name 16 "color"
Name 19 "x"
Name 22 "tex_coord"
Name 28 "y"
Name 35 "gl_FragColor"
Decorate 22(tex_coord) Smooth
Decorate 35(gl_FragColor) BuiltIn FragColor
2: TypeVoid
3: TypeFunction 2
7: TypeFloat 32
8: TypeVector 7(float) 4
9: TypePointer Function 8(fvec4)
11: 7(float) Constant 1065353216
12: 8(fvec4) ConstantComposite 11 11 11 11
14: 7(float) Constant 1045220557
15: 8(fvec4) ConstantComposite 14 14 14 14
18: TypePointer Function 7(float)
20: TypeVector 7(float) 2
21: TypePointer Input 20(fvec2)
22(tex_coord): 21(ptr) Variable Input
25: 7(float) Constant 1073741824
34: TypePointer Output 8(fvec4)
35(gl_FragColor): 34(ptr) Variable Output
4(main): 2 Function None 3
5: Label
10(white): 9(ptr) Variable Function
13(black): 9(ptr) Variable Function
16(color): 9(ptr) Variable Function
19(x): 18(ptr) Variable Function
28(y): 18(ptr) Variable Function
Store 10(white) 12
Store 13(black) 15
17: 8(fvec4) Load 10(white)
Store 16(color) 17
23: 20(fvec2) Load 22(tex_coord)
24: 7(float) CompositeExtract 23 0
26: 7(float) FMul 24 25
27: 7(float) FSub 26 11
Store 19(x) 27
29: 20(fvec2) Load 22(tex_coord)
30: 7(float) CompositeExtract 29 1
31: 7(float) FMul 30 25
32: 7(float) FSub 31 11
Store 28(y) 32
Kill
6: Label
Return
FunctionEnd

View File

@ -0,0 +1,64 @@
spv.conditionalDiscard.frag
Linked fragment stage:
// Module Version 99
// Generated by (magic number): 51a00bb
// Id's are bound by 36
Source GLSL 110
1: ExtInstImport "GLSL.std.450"
MemoryModel Logical GLSL450
EntryPoint Fragment 4
Name 4 "main"
Name 10 "v"
Name 13 "tex"
Name 17 "coord"
Name 34 "gl_FragColor"
Decorate 17(coord) Smooth
Decorate 34(gl_FragColor) BuiltIn FragColor
2: TypeVoid
3: TypeFunction 2
7: TypeFloat 32
8: TypeVector 7(float) 4
9: TypePointer Function 8(fvec4)
11: TypeSampler7(float) 2D filter+texture
12: TypePointer UniformConstant 11
13(tex): 12(ptr) Variable UniformConstant
15: TypeVector 7(float) 2
16: TypePointer Input 15(fvec2)
17(coord): 16(ptr) Variable Input
21: 7(float) Constant 1036831949
22: 7(float) Constant 1045220557
23: 7(float) Constant 1050253722
24: 7(float) Constant 1053609165
25: 8(fvec4) ConstantComposite 21 22 23 24
26: TypeBool
27: TypeVector 26(bool) 4
33: TypePointer Output 8(fvec4)
34(gl_FragColor): 33(ptr) Variable Output
4(main): 2 Function None 3
5: Label
10(v): 9(ptr) Variable Function
14: 11 Load 13(tex)
18: 15(fvec2) Load 17(coord)
19: 8(fvec4) TextureSample 14 18
Store 10(v) 19
20: 8(fvec4) Load 10(v)
28: 27(bvec4) FOrdEqual 20 25
29: 26(bool) All 28
SelectionMerge 31 None
BranchConditional 29 30 31
30: Label
Kill
31: Label
35: 8(fvec4) Load 10(v)
Store 34(gl_FragColor) 35
Branch 6
6: Label
Return
FunctionEnd

View File

@ -0,0 +1,580 @@
spv.conversion.frag
Linked fragment stage:
// Module Version 99
// Generated by (magic number): 51a00bb
// Id's are bound by 444
Source GLSL 130
1: ExtInstImport "GLSL.std.450"
MemoryModel Logical GLSL450
EntryPoint Fragment 4
Name 4 "main"
Name 9 "b"
Name 12 "u_i"
Name 19 "u_f"
Name 26 "b2"
Name 34 "b3"
Name 40 "i_i"
Name 46 "b4"
Name 54 "i_f"
Name 59 "i"
Name 69 "i2"
Name 72 "u_f2"
Name 82 "i3"
Name 85 "u_f3"
Name 95 "i4"
Name 98 "u_f4"
Name 107 "f"
Name 111 "f2"
Name 115 "f3"
Name 119 "f4"
Name 158 "i_i4"
Name 313 "gl_FragColor"
Name 406 "cv2"
Name 407 "cv5"
Name 417 "u_b"
Name 419 "u_b2"
Name 421 "u_b3"
Name 423 "u_b4"
Name 425 "u_i2"
Name 427 "u_i3"
Name 429 "u_i4"
Name 430 "i_b"
Name 431 "i_b2"
Name 432 "i_b3"
Name 433 "i_b4"
Name 435 "i_i2"
Name 437 "i_i3"
Name 439 "i_f2"
Name 441 "i_f3"
Name 443 "i_f4"
Decorate 40(i_i) Flat
Decorate 54(i_f) Smooth
Decorate 158(i_i4) Flat
Decorate 313(gl_FragColor) BuiltIn FragColor
Decorate 417(u_b) NoStaticUse
Decorate 419(u_b2) NoStaticUse
Decorate 421(u_b3) NoStaticUse
Decorate 423(u_b4) NoStaticUse
Decorate 425(u_i2) NoStaticUse
Decorate 427(u_i3) NoStaticUse
Decorate 429(u_i4) NoStaticUse
Decorate 430(i_b) NoStaticUse
Decorate 431(i_b2) NoStaticUse
Decorate 432(i_b3) NoStaticUse
Decorate 433(i_b4) NoStaticUse
Decorate 435(i_i2) Flat
Decorate 435(i_i2) NoStaticUse
Decorate 437(i_i3) Flat
Decorate 437(i_i3) NoStaticUse
Decorate 439(i_f2) Smooth
Decorate 439(i_f2) NoStaticUse
Decorate 441(i_f3) Smooth
Decorate 441(i_f3) NoStaticUse
Decorate 443(i_f4) Smooth
Decorate 443(i_f4) NoStaticUse
2: TypeVoid
3: TypeFunction 2
7: TypeBool
8: TypePointer Function 7(bool)
10: TypeInt 32 1
11: TypePointer UniformConstant 10(int)
12(u_i): 11(ptr) Variable UniformConstant
14: TypeInt 32 0
15: 14(int) Constant 0
17: TypeFloat 32
18: TypePointer UniformConstant 17(float)
19(u_f): 18(ptr) Variable UniformConstant
21: 17(float) Constant 0
24: TypeVector 7(bool) 2
25: TypePointer Function 24(bvec2)
32: TypeVector 7(bool) 3
33: TypePointer Function 32(bvec3)
39: TypePointer Input 10(int)
40(i_i): 39(ptr) Variable Input
44: TypeVector 7(bool) 4
45: TypePointer Function 44(bvec4)
53: TypePointer Input 17(float)
54(i_f): 53(ptr) Variable Input
58: TypePointer Function 10(int)
63: 10(int) Constant 0
64: 10(int) Constant 1
67: TypeVector 10(int) 2
68: TypePointer Function 67(ivec2)
70: TypeVector 17(float) 2
71: TypePointer UniformConstant 70(fvec2)
72(u_f2): 71(ptr) Variable UniformConstant
76: 67(ivec2) ConstantComposite 63 63
77: 67(ivec2) ConstantComposite 64 64
80: TypeVector 10(int) 3
81: TypePointer Function 80(ivec3)
83: TypeVector 17(float) 3
84: TypePointer UniformConstant 83(fvec3)
85(u_f3): 84(ptr) Variable UniformConstant
89: 80(ivec3) ConstantComposite 63 63 63
90: 80(ivec3) ConstantComposite 64 64 64
93: TypeVector 10(int) 4
94: TypePointer Function 93(ivec4)
96: TypeVector 17(float) 4
97: TypePointer UniformConstant 96(fvec4)
98(u_f4): 97(ptr) Variable UniformConstant
102: 93(ivec4) ConstantComposite 63 63 63 63
103: 93(ivec4) ConstantComposite 64 64 64 64
106: TypePointer Function 17(float)
110: TypePointer Function 70(fvec2)
114: TypePointer Function 83(fvec3)
118: TypePointer Function 96(fvec4)
125: 17(float) Constant 1065353216
133: 70(fvec2) ConstantComposite 21 21
134: 70(fvec2) ConstantComposite 125 125
142: 83(fvec3) ConstantComposite 21 21 21
143: 83(fvec3) ConstantComposite 125 125 125
151: 96(fvec4) ConstantComposite 21 21 21 21
152: 96(fvec4) ConstantComposite 125 125 125 125
157: TypePointer Input 93(ivec4)
158(i_i4): 157(ptr) Variable Input
160: TypeVector 14(int) 4
161: 160(ivec4) ConstantComposite 15 15 15 15
312: TypePointer Output 96(fvec4)
313(gl_FragColor): 312(ptr) Variable Output
416: TypePointer UniformConstant 7(bool)
417(u_b): 416(ptr) Variable UniformConstant
418: TypePointer UniformConstant 24(bvec2)
419(u_b2): 418(ptr) Variable UniformConstant
420: TypePointer UniformConstant 32(bvec3)
421(u_b3): 420(ptr) Variable UniformConstant
422: TypePointer UniformConstant 44(bvec4)
423(u_b4): 422(ptr) Variable UniformConstant
424: TypePointer UniformConstant 67(ivec2)
425(u_i2): 424(ptr) Variable UniformConstant
426: TypePointer UniformConstant 80(ivec3)
427(u_i3): 426(ptr) Variable UniformConstant
428: TypePointer UniformConstant 93(ivec4)
429(u_i4): 428(ptr) Variable UniformConstant
430(i_b): 416(ptr) Variable UniformConstant
431(i_b2): 418(ptr) Variable UniformConstant
432(i_b3): 420(ptr) Variable UniformConstant
433(i_b4): 422(ptr) Variable UniformConstant
434: TypePointer Input 67(ivec2)
435(i_i2): 434(ptr) Variable Input
436: TypePointer Input 80(ivec3)
437(i_i3): 436(ptr) Variable Input
438: TypePointer Input 70(fvec2)
439(i_f2): 438(ptr) Variable Input
440: TypePointer Input 83(fvec3)
441(i_f3): 440(ptr) Variable Input
442: TypePointer Input 96(fvec4)
443(i_f4): 442(ptr) Variable Input
4(main): 2 Function None 3
5: Label
9(b): 8(ptr) Variable Function
26(b2): 25(ptr) Variable Function
34(b3): 33(ptr) Variable Function
46(b4): 45(ptr) Variable Function
59(i): 58(ptr) Variable Function
69(i2): 68(ptr) Variable Function
82(i3): 81(ptr) Variable Function
95(i4): 94(ptr) Variable Function
107(f): 106(ptr) Variable Function
111(f2): 110(ptr) Variable Function
115(f3): 114(ptr) Variable Function
119(f4): 118(ptr) Variable Function
289: 106(ptr) Variable Function
299: 106(ptr) Variable Function
314: 118(ptr) Variable Function
406(cv2): 94(ptr) Variable Function
407(cv5): 45(ptr) Variable Function
13: 10(int) Load 12(u_i)
16: 7(bool) INotEqual 13 15
20: 17(float) Load 19(u_f)
22: 7(bool) FOrdNotEqual 20 21
23: 7(bool) LogicalXor 16 22
Store 9(b) 23
27: 10(int) Load 12(u_i)
28: 7(bool) INotEqual 27 15
29: 17(float) Load 19(u_f)
30: 7(bool) FOrdNotEqual 29 21
31: 24(bvec2) CompositeConstruct 28 30
Store 26(b2) 31
35: 10(int) Load 12(u_i)
36: 7(bool) INotEqual 35 15
37: 17(float) Load 19(u_f)
38: 7(bool) FOrdNotEqual 37 21
41: 10(int) Load 40(i_i)
42: 7(bool) INotEqual 41 15
43: 32(bvec3) CompositeConstruct 36 38 42
Store 34(b3) 43
47: 10(int) Load 12(u_i)
48: 7(bool) INotEqual 47 15
49: 17(float) Load 19(u_f)
50: 7(bool) FOrdNotEqual 49 21
51: 10(int) Load 40(i_i)
52: 7(bool) INotEqual 51 15
55: 17(float) Load 54(i_f)
56: 7(bool) FOrdNotEqual 55 21
57: 44(bvec4) CompositeConstruct 48 50 52 56
Store 46(b4) 57
60: 17(float) Load 19(u_f)
61: 10(int) ConvertFToS 60
62: 7(bool) Load 9(b)
65: 10(int) Select 62 64 63
66: 10(int) IAdd 61 65
Store 59(i) 66
73: 70(fvec2) Load 72(u_f2)
74: 67(ivec2) ConvertFToS 73
75: 24(bvec2) Load 26(b2)
78: 67(ivec2) Select 75 77 76
79: 67(ivec2) IAdd 74 78
Store 69(i2) 79
86: 83(fvec3) Load 85(u_f3)
87: 80(ivec3) ConvertFToS 86
88: 32(bvec3) Load 34(b3)
91: 80(ivec3) Select 88 90 89
92: 80(ivec3) IAdd 87 91
Store 82(i3) 92
99: 96(fvec4) Load 98(u_f4)
100: 93(ivec4) ConvertFToS 99
101: 44(bvec4) Load 46(b4)
104: 93(ivec4) Select 101 103 102
105: 93(ivec4) IAdd 100 104
Store 95(i4) 105
108: 10(int) Load 59(i)
109: 17(float) ConvertSToF 108
Store 107(f) 109
112: 67(ivec2) Load 69(i2)
113: 70(fvec2) ConvertSToF 112
Store 111(f2) 113
116: 80(ivec3) Load 82(i3)
117: 83(fvec3) ConvertSToF 116
Store 115(f3) 117
120: 93(ivec4) Load 95(i4)
121: 96(fvec4) ConvertSToF 120
Store 119(f4) 121
122: 10(int) Load 59(i)
123: 17(float) ConvertSToF 122
124: 7(bool) Load 9(b)
126: 17(float) Select 124 125 21
127: 17(float) FAdd 123 126
128: 17(float) Load 107(f)
129: 17(float) FAdd 128 127
Store 107(f) 129
130: 67(ivec2) Load 69(i2)
131: 70(fvec2) ConvertSToF 130
132: 24(bvec2) Load 26(b2)
135: 70(fvec2) Select 132 134 133
136: 70(fvec2) FAdd 131 135
137: 70(fvec2) Load 111(f2)
138: 70(fvec2) FSub 137 136
Store 111(f2) 138
139: 80(ivec3) Load 82(i3)
140: 83(fvec3) ConvertSToF 139
141: 32(bvec3) Load 34(b3)
144: 83(fvec3) Select 141 143 142
145: 83(fvec3) FAdd 140 144
146: 83(fvec3) Load 115(f3)
147: 83(fvec3) FDiv 146 145
Store 115(f3) 147
148: 93(ivec4) Load 95(i4)
149: 96(fvec4) ConvertSToF 148
150: 44(bvec4) Load 46(b4)
153: 96(fvec4) Select 150 152 151
154: 96(fvec4) FAdd 149 153
155: 96(fvec4) Load 119(f4)
156: 96(fvec4) FAdd 155 154
Store 119(f4) 156
159: 93(ivec4) Load 158(i_i4)
162: 44(bvec4) INotEqual 159 161
163: 96(fvec4) Select 162 152 151
164: 96(fvec4) Load 119(f4)
165: 96(fvec4) FAdd 164 163
Store 119(f4) 165
166: 96(fvec4) Load 98(u_f4)
167: 44(bvec4) FOrdNotEqual 166 151
168: 96(fvec4) Select 167 152 151
169: 96(fvec4) Load 119(f4)
170: 96(fvec4) FAdd 169 168
Store 119(f4) 170
171: 17(float) Load 107(f)
172: 10(int) Load 59(i)
173: 17(float) ConvertSToF 172
174: 17(float) FSub 171 173
175: 17(float) Load 107(f)
176: 17(float) FAdd 175 174
Store 107(f) 176
177: 17(float) Load 107(f)
178: 10(int) Load 59(i)
179: 17(float) ConvertSToF 178
180: 70(fvec2) CompositeConstruct 177 179
181: 67(ivec2) Load 69(i2)
182: 70(fvec2) ConvertSToF 181
183: 70(fvec2) FAdd 180 182
184: 70(fvec2) Load 111(f2)
185: 70(fvec2) FAdd 184 183
Store 111(f2) 185
186: 80(ivec3) Load 82(i3)
187: 83(fvec3) ConvertSToF 186
188: 17(float) Load 107(f)
189: 10(int) Load 59(i)
190: 17(float) ConvertSToF 189
191: 17(float) Load 107(f)
192: 83(fvec3) CompositeConstruct 188 190 191
193: 83(fvec3) FAdd 187 192
194: 83(fvec3) Load 115(f3)
195: 83(fvec3) FAdd 194 193
Store 115(f3) 195
196: 7(bool) Load 9(b)
197: 17(float) Select 196 125 21
198: 10(int) Load 59(i)
199: 17(float) ConvertSToF 198
200: 17(float) Load 107(f)
201: 10(int) Load 59(i)
202: 17(float) ConvertSToF 201
203: 96(fvec4) CompositeConstruct 197 199 200 202
204: 93(ivec4) Load 95(i4)
205: 96(fvec4) ConvertSToF 204
206: 96(fvec4) FAdd 203 205
207: 96(fvec4) Load 119(f4)
208: 96(fvec4) FAdd 207 206
Store 119(f4) 208
209: 17(float) Load 107(f)
210: 10(int) Load 59(i)
211: 17(float) ConvertSToF 210
212: 70(fvec2) CompositeConstruct 209 211
213: 10(int) Load 59(i)
214: 17(float) ConvertSToF 213
215: 70(fvec2) VectorTimesScalar 212 214
216: 70(fvec2) Load 111(f2)
217: 70(fvec2) FAdd 216 215
Store 111(f2) 217
218: 17(float) Load 107(f)
219: 10(int) Load 59(i)
220: 17(float) ConvertSToF 219
221: 17(float) Load 107(f)
222: 83(fvec3) CompositeConstruct 218 220 221
223: 10(int) Load 59(i)
224: 17(float) ConvertSToF 223
225: 83(fvec3) CompositeConstruct 224 224 224
226: 83(fvec3) FAdd 222 225
227: 83(fvec3) Load 115(f3)
228: 83(fvec3) FAdd 227 226
Store 115(f3) 228
229: 10(int) Load 59(i)
230: 17(float) ConvertSToF 229
231: 7(bool) Load 9(b)
232: 17(float) Select 231 125 21
233: 10(int) Load 59(i)
234: 17(float) ConvertSToF 233
235: 17(float) Load 107(f)
236: 10(int) Load 59(i)
237: 17(float) ConvertSToF 236
238: 96(fvec4) CompositeConstruct 232 234 235 237
239: 96(fvec4) CompositeConstruct 230 230 230 230
240: 96(fvec4) FSub 239 238
241: 96(fvec4) Load 119(f4)
242: 96(fvec4) FAdd 241 240
Store 119(f4) 242
243: 17(float) Load 107(f)
244: 10(int) ConvertFToS 243
245: 10(int) Load 59(i)
246: 67(ivec2) CompositeConstruct 244 245
247: 67(ivec2) Load 69(i2)
248: 67(ivec2) IAdd 247 246
Store 69(i2) 248
249: 17(float) Load 107(f)
250: 10(int) ConvertFToS 249
251: 10(int) Load 59(i)
252: 17(float) Load 107(f)
253: 10(int) ConvertFToS 252
254: 80(ivec3) CompositeConstruct 250 251 253
255: 80(ivec3) Load 82(i3)
256: 80(ivec3) IAdd 255 254
Store 82(i3) 256
257: 7(bool) Load 9(b)
258: 10(int) Select 257 64 63
259: 10(int) Load 59(i)
260: 17(float) Load 107(f)
261: 10(int) ConvertFToS 260
262: 10(int) Load 59(i)
263: 93(ivec4) CompositeConstruct 258 259 261 262
264: 93(ivec4) Load 95(i4)
265: 93(ivec4) IAdd 264 263
Store 95(i4) 265
266: 17(float) Load 107(f)
267: 10(int) Load 59(i)
268: 17(float) ConvertSToF 267
269: 7(bool) FOrdLessThan 266 268
270: 10(int) Load 59(i)
271: 17(float) ConvertSToF 270
272: 17(float) Load 107(f)
273: 7(bool) FOrdLessThan 271 272
274: 7(bool) LogicalOr 269 273
275: 70(fvec2) Load 111(f2)
276: 67(ivec2) Load 69(i2)
277: 70(fvec2) ConvertSToF 276
278: 24(bvec2) FOrdEqual 275 277
279: 7(bool) All 278
280: 7(bool) LogicalOr 274 279
281: 80(ivec3) Load 82(i3)
282: 83(fvec3) ConvertSToF 281
283: 83(fvec3) Load 115(f3)
284: 32(bvec3) FOrdNotEqual 282 283
285: 7(bool) Any 284
286: 7(bool) LogicalOr 280 285
SelectionMerge 288 None
BranchConditional 286 287 288
287: Label
290: 7(bool) Load 9(b)
SelectionMerge 292 None
BranchConditional 290 291 295
291: Label
293: 10(int) Load 59(i)
294: 17(float) ConvertSToF 293
Store 289 294
Branch 292
295: Label
296: 70(fvec2) Load 111(f2)
297: 17(float) CompositeExtract 296 0
Store 289 297
Branch 292
292: Label
298: 17(float) Load 289
300: 24(bvec2) Load 26(b2)
301: 7(bool) CompositeExtract 300 0
SelectionMerge 303 None
BranchConditional 301 302 306
302: Label
304: 83(fvec3) Load 115(f3)
305: 17(float) CompositeExtract 304 0
Store 299 305
Branch 303
306: Label
307: 67(ivec2) Load 69(i2)
308: 10(int) CompositeExtract 307 1
309: 17(float) ConvertSToF 308
Store 299 309
Branch 303
303: Label
310: 17(float) Load 299
311: 17(float) FAdd 298 310
Store 107(f) 311
Branch 288
288: Label
315: 7(bool) Load 9(b)
316: 24(bvec2) Load 26(b2)
317: 7(bool) CompositeExtract 316 0
318: 7(bool) LogicalOr 315 317
319: 24(bvec2) Load 26(b2)
320: 7(bool) CompositeExtract 319 1
321: 7(bool) LogicalOr 318 320
322: 32(bvec3) Load 34(b3)
323: 7(bool) CompositeExtract 322 0
324: 7(bool) LogicalOr 321 323
325: 32(bvec3) Load 34(b3)
326: 7(bool) CompositeExtract 325 1
327: 7(bool) LogicalOr 324 326
328: 32(bvec3) Load 34(b3)
329: 7(bool) CompositeExtract 328 2
330: 7(bool) LogicalOr 327 329
331: 44(bvec4) Load 46(b4)
332: 7(bool) CompositeExtract 331 0
333: 7(bool) LogicalOr 330 332
334: 44(bvec4) Load 46(b4)
335: 7(bool) CompositeExtract 334 1
336: 7(bool) LogicalOr 333 335
337: 44(bvec4) Load 46(b4)
338: 7(bool) CompositeExtract 337 2
339: 7(bool) LogicalOr 336 338
340: 44(bvec4) Load 46(b4)
341: 7(bool) CompositeExtract 340 3
342: 7(bool) LogicalOr 339 341
SelectionMerge 344 None
BranchConditional 342 343 404
343: Label
345: 10(int) Load 59(i)
346: 67(ivec2) Load 69(i2)
347: 10(int) CompositeExtract 346 0
348: 10(int) IAdd 345 347
349: 67(ivec2) Load 69(i2)
350: 10(int) CompositeExtract 349 1
351: 10(int) IAdd 348 350
352: 80(ivec3) Load 82(i3)
353: 10(int) CompositeExtract 352 0
354: 10(int) IAdd 351 353
355: 80(ivec3) Load 82(i3)
356: 10(int) CompositeExtract 355 1
357: 10(int) IAdd 354 356
358: 80(ivec3) Load 82(i3)
359: 10(int) CompositeExtract 358 2
360: 10(int) IAdd 357 359
361: 93(ivec4) Load 95(i4)
362: 10(int) CompositeExtract 361 0
363: 10(int) IAdd 360 362
364: 93(ivec4) Load 95(i4)
365: 10(int) CompositeExtract 364 1
366: 10(int) IAdd 363 365
367: 93(ivec4) Load 95(i4)
368: 10(int) CompositeExtract 367 2
369: 10(int) IAdd 366 368
370: 93(ivec4) Load 95(i4)
371: 10(int) CompositeExtract 370 3
372: 10(int) IAdd 369 371
373: 17(float) ConvertSToF 372
374: 17(float) Load 107(f)
375: 17(float) FAdd 373 374
376: 70(fvec2) Load 111(f2)
377: 17(float) CompositeExtract 376 0
378: 17(float) FAdd 375 377
379: 70(fvec2) Load 111(f2)
380: 17(float) CompositeExtract 379 1
381: 17(float) FAdd 378 380
382: 83(fvec3) Load 115(f3)
383: 17(float) CompositeExtract 382 0
384: 17(float) FAdd 381 383
385: 83(fvec3) Load 115(f3)
386: 17(float) CompositeExtract 385 1
387: 17(float) FAdd 384 386
388: 83(fvec3) Load 115(f3)
389: 17(float) CompositeExtract 388 2
390: 17(float) FAdd 387 389
391: 96(fvec4) Load 119(f4)
392: 17(float) CompositeExtract 391 0
393: 17(float) FAdd 390 392
394: 96(fvec4) Load 119(f4)
395: 17(float) CompositeExtract 394 1
396: 17(float) FAdd 393 395
397: 96(fvec4) Load 119(f4)
398: 17(float) CompositeExtract 397 2
399: 17(float) FAdd 396 398
400: 96(fvec4) Load 119(f4)
401: 17(float) CompositeExtract 400 3
402: 17(float) FAdd 399 401
403: 96(fvec4) CompositeConstruct 402 402 402 402
Store 314 403
Branch 344
404: Label
Store 314 152
Branch 344
344: Label
405: 96(fvec4) Load 314
Store 313(gl_FragColor) 405
Store 406(cv2) 103
408: 93(ivec4) Load 406(cv2)
409: 44(bvec4) INotEqual 408 161
Store 407(cv5) 409
410: 44(bvec4) Load 407(cv5)
411: 96(fvec4) Select 410 152 151
412: 17(float) CompositeExtract 411 0
413: 96(fvec4) Load 313(gl_FragColor)
414: 96(fvec4) CompositeConstruct 412 412 412 412
415: 96(fvec4) FAdd 413 414
Store 313(gl_FragColor) 415
Branch 6
6: Label
Return
FunctionEnd

View File

@ -0,0 +1,45 @@
spv.dataOut.frag
WARNING: 0:3: varying deprecated in version 130; may be removed in future release
Linked fragment stage:
// Module Version 99
// Generated by (magic number): 51a00bb
// Id's are bound by 21
Source GLSL 130
1: ExtInstImport "GLSL.std.450"
MemoryModel Logical GLSL450
EntryPoint Fragment 4
Name 4 "main"
Name 13 "gl_FragData"
Name 17 "Color"
Decorate 13(gl_FragData) BuiltIn FragColor
Decorate 17(Color) Smooth
2: TypeVoid
3: TypeFunction 2
7: TypeFloat 32
8: TypeVector 7(float) 4
9: TypeInt 32 0
10: 9(int) Constant 32
11: TypeArray 8(fvec4) 10
12: TypePointer Output 11
13(gl_FragData): 12(ptr) Variable Output
14: TypeInt 32 1
15: 14(int) Constant 1
16: TypePointer Input 8(fvec4)
17(Color): 16(ptr) Variable Input
19: TypePointer Output 8(fvec4)
4(main): 2 Function None 3
5: Label
18: 8(fvec4) Load 17(Color)
20: 19(ptr) AccessChain 13(gl_FragData) 15
Store 20 18
Branch 6
6: Label
Return
FunctionEnd

View File

@ -0,0 +1,48 @@
spv.dataOutIndirect.frag
WARNING: 0:3: varying deprecated in version 130; may be removed in future release
Linked fragment stage:
// Module Version 99
// Generated by (magic number): 51a00bb
// Id's are bound by 23
Source GLSL 130
1: ExtInstImport "GLSL.std.450"
MemoryModel Logical GLSL450
EntryPoint Fragment 4
Name 4 "main"
Name 13 "gl_FragData"
Name 16 "i"
Name 19 "Color"
Decorate 13(gl_FragData) BuiltIn FragColor
Decorate 19(Color) Smooth
2: TypeVoid
3: TypeFunction 2
7: TypeFloat 32
8: TypeVector 7(float) 4
9: TypeInt 32 0
10: 9(int) Constant 32
11: TypeArray 8(fvec4) 10
12: TypePointer Output 11
13(gl_FragData): 12(ptr) Variable Output
14: TypeInt 32 1
15: TypePointer UniformConstant 14(int)
16(i): 15(ptr) Variable UniformConstant
18: TypePointer Input 8(fvec4)
19(Color): 18(ptr) Variable Input
21: TypePointer Output 8(fvec4)
4(main): 2 Function None 3
5: Label
17: 14(int) Load 16(i)
20: 8(fvec4) Load 19(Color)
22: 21(ptr) AccessChain 13(gl_FragData) 17
Store 22 20
Branch 6
6: Label
Return
FunctionEnd

View File

@ -0,0 +1,76 @@
spv.dataOutIndirect.vert
WARNING: 0:3: attribute deprecated in version 130; may be removed in future release
WARNING: 0:4: varying deprecated in version 130; may be removed in future release
Linked vertex stage:
// Module Version 99
// Generated by (magic number): 51a00bb
// Id's are bound by 39
Source GLSL 130
1: ExtInstImport "GLSL.std.450"
MemoryModel Logical GLSL450
EntryPoint Vertex 4
Name 4 "main"
Name 9 "i"
Name 24 "colorOut"
Name 27 "color"
Name 33 "gl_Position"
Name 38 "gl_VertexID"
Decorate 24(colorOut) Smooth
Decorate 33(gl_Position) BuiltIn Position
Decorate 38(gl_VertexID) BuiltIn VertexId
Decorate 38(gl_VertexID) NoStaticUse
2: TypeVoid
3: TypeFunction 2
7: TypeInt 32 1
8: TypePointer Function 7(int)
10: 7(int) Constant 1
14: 7(int) Constant 5
15: TypeBool
18: TypeFloat 32
19: TypeVector 18(float) 4
20: TypeInt 32 0
21: 20(int) Constant 6
22: TypeArray 19(fvec4) 21
23: TypePointer Output 22
24(colorOut): 23(ptr) Variable Output
26: TypePointer Input 19(fvec4)
27(color): 26(ptr) Variable Input
29: TypePointer Output 19(fvec4)
33(gl_Position): 29(ptr) Variable Output
34: 7(int) Constant 2
37: TypePointer Input 7(int)
38(gl_VertexID): 37(ptr) Variable Input
4(main): 2 Function None 3
5: Label
9(i): 8(ptr) Variable Function
Store 9(i) 10
Branch 11
11: Label
13: 7(int) Load 9(i)
16: 15(bool) SLessThan 13 14
LoopMerge 12 None
BranchConditional 16 17 12
17: Label
25: 7(int) Load 9(i)
28: 19(fvec4) Load 27(color)
30: 29(ptr) AccessChain 24(colorOut) 25
Store 30 28
31: 7(int) Load 9(i)
32: 7(int) IAdd 31 10
Store 9(i) 32
Branch 11
12: Label
35: 29(ptr) AccessChain 24(colorOut) 34
36: 19(fvec4) Load 35
Store 33(gl_Position) 36
Branch 6
6: Label
Return
FunctionEnd

View File

@ -0,0 +1,9 @@
spv.deepRvalue.frag
Linked fragment stage:
Missing functionality: binary operation on matrix

View File

@ -0,0 +1,49 @@
spv.depthOut.frag
WARNING: 0:3: varying deprecated in version 130; may be removed in future release
WARNING: 0:4: varying deprecated in version 130; may be removed in future release
Linked fragment stage:
// Module Version 99
// Generated by (magic number): 51a00bb
// Id's are bound by 19
Source GLSL 130
1: ExtInstImport "GLSL.std.450"
MemoryModel Logical GLSL450
EntryPoint Fragment 4
Name 4 "main"
Name 9 "gl_FragDepth"
Name 11 "Depth"
Name 15 "gl_FragColor"
Name 17 "Color"
Decorate 9(gl_FragDepth) BuiltIn FragDepth
Decorate 11(Depth) Smooth
Decorate 15(gl_FragColor) BuiltIn FragColor
Decorate 17(Color) Smooth
2: TypeVoid
3: TypeFunction 2
7: TypeFloat 32
8: TypePointer Output 7(float)
9(gl_FragDepth): 8(ptr) Variable Output
10: TypePointer Input 7(float)
11(Depth): 10(ptr) Variable Input
13: TypeVector 7(float) 4
14: TypePointer Output 13(fvec4)
15(gl_FragColor): 14(ptr) Variable Output
16: TypePointer Input 13(fvec4)
17(Color): 16(ptr) Variable Input
4(main): 2 Function None 3
5: Label
12: 7(float) Load 11(Depth)
Store 9(gl_FragDepth) 12
18: 13(fvec4) Load 17(Color)
Store 15(gl_FragColor) 18
Branch 6
6: Label
Return
FunctionEnd

View File

@ -0,0 +1,131 @@
spv.discard-dce.frag
Linked fragment stage:
// Module Version 99
// Generated by (magic number): 51a00bb
// Id's are bound by 81
Source GLSL 110
1: ExtInstImport "GLSL.std.450"
MemoryModel Logical GLSL450
EntryPoint Fragment 4
Name 4 "main"
Name 10 "white"
Name 13 "black"
Name 16 "color"
Name 19 "x"
Name 22 "tex_coord"
Name 28 "y"
Name 33 "radius"
Name 56 "gl_FragColor"
Decorate 22(tex_coord) Smooth
Decorate 56(gl_FragColor) BuiltIn FragColor
2: TypeVoid
3: TypeFunction 2
7: TypeFloat 32
8: TypeVector 7(float) 4
9: TypePointer Function 8(fvec4)
11: 7(float) Constant 1065353216
12: 8(fvec4) ConstantComposite 11 11 11 11
14: 7(float) Constant 1045220557
15: 8(fvec4) ConstantComposite 14 14 14 14
18: TypePointer Function 7(float)
20: TypeVector 7(float) 2
21: TypePointer Input 20(fvec2)
22(tex_coord): 21(ptr) Variable Input
25: 7(float) Constant 1073741824
43: TypeBool
48: 7(float) Constant 1066192077
55: TypePointer Output 8(fvec4)
56(gl_FragColor): 55(ptr) Variable Output
59: 7(float) Constant 1067030938
68: 7(float) Constant 1061158912
73: 7(float) Constant 1098907648
4(main): 2 Function None 3
5: Label
10(white): 9(ptr) Variable Function
13(black): 9(ptr) Variable Function
16(color): 9(ptr) Variable Function
19(x): 18(ptr) Variable Function
28(y): 18(ptr) Variable Function
33(radius): 18(ptr) Variable Function
Store 10(white) 12
Store 13(black) 15
17: 8(fvec4) Load 10(white)
Store 16(color) 17
23: 20(fvec2) Load 22(tex_coord)
24: 7(float) CompositeExtract 23 0
26: 7(float) FMul 24 25
27: 7(float) FSub 26 11
Store 19(x) 27
29: 20(fvec2) Load 22(tex_coord)
30: 7(float) CompositeExtract 29 1
31: 7(float) FMul 30 25
32: 7(float) FSub 31 11
Store 28(y) 32
34: 7(float) Load 19(x)
35: 7(float) Load 19(x)
36: 7(float) FMul 34 35
37: 7(float) Load 28(y)
38: 7(float) Load 28(y)
39: 7(float) FMul 37 38
40: 7(float) FAdd 36 39
41: 7(float) ExtInst 1(GLSL.std.450) 28(sqrt) 40
Store 33(radius) 41
42: 7(float) Load 33(radius)
44: 43(bool) FOrdGreaterThan 42 11
SelectionMerge 46 None
BranchConditional 44 45 46
45: Label
47: 7(float) Load 33(radius)
49: 43(bool) FOrdGreaterThan 47 48
SelectionMerge 51 None
BranchConditional 49 50 51
50: Label
52: 8(fvec4) Load 16(color)
53: 8(fvec4) CompositeConstruct 11 11 11 11
54: 8(fvec4) FAdd 52 53
Store 16(color) 54
Branch 51
51: Label
57: 8(fvec4) Load 16(color)
Store 56(gl_FragColor) 57
58: 7(float) Load 33(radius)
60: 43(bool) FOrdGreaterThan 58 59
SelectionMerge 62 None
BranchConditional 60 61 62
61: Label
63: 8(fvec4) Load 16(color)
64: 8(fvec4) CompositeConstruct 11 11 11 11
65: 8(fvec4) FAdd 63 64
Store 16(color) 65
Branch 62
62: Label
Kill
46: Label
67: 7(float) Load 33(radius)
69: 43(bool) FOrdGreaterThanEqual 67 68
SelectionMerge 71 None
BranchConditional 69 70 71
70: Label
72: 7(float) Load 33(radius)
74: 7(float) ExtInst 1(GLSL.std.450) 23(pow) 72 73
75: 7(float) FDiv 74 25
76: 7(float) ExtInst 1(GLSL.std.450) 3(abs) 75
77: 8(fvec4) Load 16(color)
78: 8(fvec4) CompositeConstruct 76 76 76 76
79: 8(fvec4) FSub 77 78
Store 16(color) 79
Branch 71
71: Label
80: 8(fvec4) Load 16(color)
Store 56(gl_FragColor) 80
Branch 6
6: Label
Return
FunctionEnd

View File

@ -0,0 +1,68 @@
spv.doWhileLoop.frag
Linked fragment stage:
// Module Version 99
// Generated by (magic number): 51a00bb
// Id's are bound by 34
Source GLSL 110
1: ExtInstImport "GLSL.std.450"
MemoryModel Logical GLSL450
EntryPoint Fragment 4
Name 4 "main"
Name 10 "color"
Name 12 "BaseColor"
Name 19 "bigColor"
Name 26 "d"
Name 32 "gl_FragColor"
Decorate 12(BaseColor) Smooth
Decorate 32(gl_FragColor) BuiltIn FragColor
2: TypeVoid
3: TypeFunction 2
7: TypeFloat 32
8: TypeVector 7(float) 4
9: TypePointer Function 8(fvec4)
11: TypePointer Input 8(fvec4)
12(BaseColor): 11(ptr) Variable Input
18: TypePointer UniformConstant 8(fvec4)
19(bigColor): 18(ptr) Variable UniformConstant
25: TypePointer UniformConstant 7(float)
26(d): 25(ptr) Variable UniformConstant
28: TypeBool
31: TypePointer Output 8(fvec4)
32(gl_FragColor): 31(ptr) Variable Output
4(main): 2 Function None 3
5: Label
10(color): 9(ptr) Variable Function
13: 8(fvec4) Load 12(BaseColor)
Store 10(color) 13
Branch 14
14: Label
LoopMerge 15 None
Branch 16
16: Label
20: 8(fvec4) Load 19(bigColor)
21: 8(fvec4) Load 10(color)
22: 8(fvec4) FAdd 21 20
Store 10(color) 22
Branch 17
17: Label
23: 8(fvec4) Load 10(color)
24: 7(float) CompositeExtract 23 0
27: 7(float) Load 26(d)
29: 28(bool) FOrdLessThan 24 27
BranchConditional 29 30 15
30: Label
Branch 14
15: Label
33: 8(fvec4) Load 10(color)
Store 32(gl_FragColor) 33
Branch 6
6: Label
Return
FunctionEnd

View File

@ -0,0 +1,110 @@
spv.double.comp
Warning, version 430 is not yet complete; most version-specific features are present, but some are missing.
Linked compute stage:
// Module Version 99
// Generated by (magic number): 51a00bb
// Id's are bound by 63
Source GLSL 430
1: ExtInstImport "GLSL.std.450"
MemoryModel Logical GLSL450
EntryPoint GLCompute 4
Name 4 "main"
Name 9 "bufName"
MemberName 9(bufName) 0 "f"
MemberName 9(bufName) 1 "d"
Name 11 "bufInst"
Name 23 "storePos"
Name 27 "gl_GlobalInvocationID"
Name 33 "localCoef"
Name 34 "gl_LocalInvocationID"
Name 50 "aa"
Name 55 "globalCoef"
Name 59 "roll"
Name 62 "destTex"
Decorate 9(bufName) GLSLShared
Decorate 9(bufName) BufferBlock
Decorate 27(gl_GlobalInvocationID) BuiltIn GlobalInvocationId
Decorate 34(gl_LocalInvocationID) BuiltIn LocalInvocationId
Decorate 14 NoStaticUse
Decorate 57 NoStaticUse
Decorate 14 NoStaticUse
Decorate 14 NoStaticUse
Decorate 59(roll) NoStaticUse
Decorate 62(destTex) NoStaticUse
2: TypeVoid
3: TypeFunction 2
7: TypeFloat 32
8: TypeFloat 64
9(bufName): TypeStruct 7(float) 8(float)
10: TypePointer Uniform 9(bufName)
11(bufInst): 10(ptr) Variable Uniform
12: TypeInt 32 1
13: 12(int) Constant 1
14: 8(float) Constant 1413754136 1074340347
15: TypePointer Uniform 8(float)
17: 12(int) Constant 0
18: 7(float) Constant 1095307129
19: TypePointer Uniform 7(float)
21: TypeVector 12(int) 2
22: TypePointer Function 21(ivec2)
24: TypeInt 32 0
25: TypeVector 24(int) 3
26: TypePointer Input 25(ivec3)
27(gl_GlobalInvocationID): 26(ptr) Variable Input
28: TypeVector 24(int) 2
32: TypePointer Function 8(float)
34(gl_LocalInvocationID): 26(ptr) Variable Input
38: 12(int) Constant 8
41: TypeVector 7(float) 2
43: 7(float) Constant 1090519040
48: TypeVector 8(float) 4
49: TypePointer Function 48(fvec4)
51: 8(float) Constant 2576980378 1071225241
52: 8(float) Constant 2576980378 1070176665
53: 8(float) Constant 858993459 1070805811
54: 48(fvec4) ConstantComposite 51 52 53 51
56: 8(float) Constant 0 1072693248
57: 8(float) Constant 3229815407 1074340298
58: TypePointer UniformConstant 8(float)
59(roll): 58(ptr) Variable UniformConstant
60: TypeSampler7(float) 2D image
61: TypePointer UniformConstant 60
62(destTex): 61(ptr) Variable UniformConstant
4(main): 2 Function None 3
5: Label
23(storePos): 22(ptr) Variable Function
33(localCoef): 32(ptr) Variable Function
50(aa): 49(ptr) Variable Function
55(globalCoef): 32(ptr) Variable Function
16: 15(ptr) AccessChain 11(bufInst) 13
Store 16 14
20: 19(ptr) AccessChain 11(bufInst) 17
Store 20 18
29: 25(ivec3) Load 27(gl_GlobalInvocationID)
30: 28(ivec2) VectorShuffle 29 29 0 1
31: 21(ivec2) Bitcast 30
Store 23(storePos) 31
35: 25(ivec3) Load 34(gl_LocalInvocationID)
36: 28(ivec2) VectorShuffle 35 35 0 1
37: 21(ivec2) Bitcast 36
39: 21(ivec2) CompositeConstruct 38 38
40: 21(ivec2) ISub 37 39
42: 41(fvec2) ConvertSToF 40
44: 41(fvec2) CompositeConstruct 43 43
45: 41(fvec2) FDiv 42 44
46: 7(float) ExtInst 1(GLSL.std.450) 58(length) 45
47: 8(float) FConvert 46
Store 33(localCoef) 47
Store 50(aa) 54
Store 55(globalCoef) 56
Branch 6
6: Label
Return
FunctionEnd

View File

@ -0,0 +1,181 @@
spv.earlyReturnDiscard.frag
Linked fragment stage:
// Module Version 99
// Generated by (magic number): 51a00bb
// Id's are bound by 112
Source GLSL 110
1: ExtInstImport "GLSL.std.450"
MemoryModel Logical GLSL450
EntryPoint Fragment 4
Name 4 "main"
Name 10 "color"
Name 12 "BaseColor"
Name 14 "color2"
Name 16 "otherColor"
Name 19 "c"
Name 22 "d"
Name 28 "bigColor"
Name 33 "smallColor"
Name 39 "minimum"
Name 53 "threshhold"
Name 64 "threshhold2"
Name 78 "b"
Name 107 "gl_FragColor"
Name 111 "threshhold3"
Decorate 12(BaseColor) Smooth
Decorate 19(c) Smooth
Decorate 107(gl_FragColor) BuiltIn FragColor
Decorate 111(threshhold3) NoStaticUse
2: TypeVoid
3: TypeFunction 2
7: TypeFloat 32
8: TypeVector 7(float) 4
9: TypePointer Function 8(fvec4)
11: TypePointer Input 8(fvec4)
12(BaseColor): 11(ptr) Variable Input
15: TypePointer UniformConstant 8(fvec4)
16(otherColor): 15(ptr) Variable UniformConstant
18: TypePointer Input 7(float)
19(c): 18(ptr) Variable Input
21: TypePointer UniformConstant 7(float)
22(d): 21(ptr) Variable UniformConstant
24: TypeBool
28(bigColor): 15(ptr) Variable UniformConstant
33(smallColor): 15(ptr) Variable UniformConstant
39(minimum): 21(ptr) Variable UniformConstant
47: 7(float) Constant 1065353216
53(threshhold): 21(ptr) Variable UniformConstant
64(threshhold2): 21(ptr) Variable UniformConstant
77: TypePointer UniformConstant 24(bool)
78(b): 77(ptr) Variable UniformConstant
106: TypePointer Output 8(fvec4)
107(gl_FragColor): 106(ptr) Variable Output
111(threshhold3): 21(ptr) Variable UniformConstant
4(main): 2 Function None 3
5: Label
10(color): 9(ptr) Variable Function
14(color2): 9(ptr) Variable Function
13: 8(fvec4) Load 12(BaseColor)
Store 10(color) 13
17: 8(fvec4) Load 16(otherColor)
Store 14(color2) 17
20: 7(float) Load 19(c)
23: 7(float) Load 22(d)
25: 24(bool) FOrdGreaterThan 20 23
SelectionMerge 27 None
BranchConditional 25 26 32
26: Label
29: 8(fvec4) Load 28(bigColor)
30: 8(fvec4) Load 10(color)
31: 8(fvec4) FAdd 30 29
Store 10(color) 31
Branch 27
32: Label
34: 8(fvec4) Load 33(smallColor)
35: 8(fvec4) Load 10(color)
36: 8(fvec4) FAdd 35 34
Store 10(color) 36
Branch 27
27: Label
37: 8(fvec4) Load 10(color)
38: 7(float) CompositeExtract 37 2
40: 7(float) Load 39(minimum)
41: 24(bool) FOrdLessThan 38 40
SelectionMerge 43 None
BranchConditional 41 42 43
42: Label
Branch 6
43: Label
45: 8(fvec4) Load 10(color)
46: 7(float) CompositeExtract 45 2
48: 7(float) FAdd 46 47
49: 8(fvec4) Load 10(color)
50: 8(fvec4) CompositeInsert 48 49 2
Store 10(color) 50
51: 8(fvec4) Load 10(color)
52: 7(float) CompositeExtract 51 2
54: 7(float) Load 53(threshhold)
55: 24(bool) FOrdGreaterThan 52 54
SelectionMerge 57 None
BranchConditional 55 56 57
56: Label
Kill
57: Label
59: 8(fvec4) Load 10(color)
60: 8(fvec4) CompositeConstruct 47 47 47 47
61: 8(fvec4) FAdd 59 60
Store 10(color) 61
62: 8(fvec4) Load 10(color)
63: 7(float) CompositeExtract 62 3
65: 7(float) Load 64(threshhold2)
66: 24(bool) FOrdGreaterThan 63 65
SelectionMerge 68 None
BranchConditional 66 67 99
67: Label
69: 8(fvec4) Load 10(color)
70: 7(float) CompositeExtract 69 2
71: 7(float) Load 64(threshhold2)
72: 24(bool) FOrdGreaterThan 70 71
SelectionMerge 74 None
BranchConditional 72 73 76
73: Label
Branch 6
76: Label
79: 24(bool) Load 78(b)
SelectionMerge 81 None
BranchConditional 79 80 87
80: Label
82: 8(fvec4) Load 10(color)
83: 7(float) CompositeExtract 82 2
84: 7(float) FAdd 83 47
85: 8(fvec4) Load 10(color)
86: 8(fvec4) CompositeInsert 84 85 2
Store 10(color) 86
Branch 81
87: Label
88: 8(fvec4) Load 10(color)
89: 7(float) CompositeExtract 88 0
90: 7(float) Load 39(minimum)
91: 24(bool) FOrdLessThan 89 90
SelectionMerge 93 None
BranchConditional 91 92 95
92: Label
Kill
95: Label
96: 8(fvec4) Load 10(color)
97: 8(fvec4) CompositeConstruct 47 47 47 47
98: 8(fvec4) FAdd 96 97
Store 10(color) 98
Branch 93
93: Label
Branch 81
81: Label
Branch 74
74: Label
Branch 68
99: Label
100: 24(bool) Load 78(b)
SelectionMerge 102 None
BranchConditional 100 101 104
101: Label
Kill
104: Label
Branch 6
102: Label
Branch 68
68: Label
108: 8(fvec4) Load 10(color)
109: 8(fvec4) Load 14(color2)
110: 8(fvec4) FMul 108 109
Store 107(gl_FragColor) 110
Branch 6
6: Label
Return
FunctionEnd

View File

@ -0,0 +1,81 @@
spv.flowControl.frag
Linked fragment stage:
// Module Version 99
// Generated by (magic number): 51a00bb
// Id's are bound by 42
Source GLSL 120
1: ExtInstImport "GLSL.std.450"
MemoryModel Logical GLSL450
EntryPoint Fragment 4
Name 4 "main"
Name 10 "color"
Name 12 "BaseColor"
Name 14 "color2"
Name 16 "otherColor"
Name 19 "c"
Name 22 "d"
Name 28 "bigColor"
Name 33 "smallColor"
Name 38 "gl_FragColor"
Decorate 12(BaseColor) Smooth
Decorate 19(c) Smooth
Decorate 38(gl_FragColor) BuiltIn FragColor
2: TypeVoid
3: TypeFunction 2
7: TypeFloat 32
8: TypeVector 7(float) 4
9: TypePointer Function 8(fvec4)
11: TypePointer Input 8(fvec4)
12(BaseColor): 11(ptr) Variable Input
15: TypePointer UniformConstant 8(fvec4)
16(otherColor): 15(ptr) Variable UniformConstant
18: TypePointer Input 7(float)
19(c): 18(ptr) Variable Input
21: TypePointer UniformConstant 7(float)
22(d): 21(ptr) Variable UniformConstant
24: TypeBool
28(bigColor): 15(ptr) Variable UniformConstant
33(smallColor): 15(ptr) Variable UniformConstant
37: TypePointer Output 8(fvec4)
38(gl_FragColor): 37(ptr) Variable Output
4(main): 2 Function None 3
5: Label
10(color): 9(ptr) Variable Function
14(color2): 9(ptr) Variable Function
13: 8(fvec4) Load 12(BaseColor)
Store 10(color) 13
17: 8(fvec4) Load 16(otherColor)
Store 14(color2) 17
20: 7(float) Load 19(c)
23: 7(float) Load 22(d)
25: 24(bool) FOrdGreaterThan 20 23
SelectionMerge 27 None
BranchConditional 25 26 32
26: Label
29: 8(fvec4) Load 28(bigColor)
30: 8(fvec4) Load 10(color)
31: 8(fvec4) FAdd 30 29
Store 10(color) 31
Branch 27
32: Label
34: 8(fvec4) Load 33(smallColor)
35: 8(fvec4) Load 10(color)
36: 8(fvec4) FAdd 35 34
Store 10(color) 36
Branch 27
27: Label
39: 8(fvec4) Load 10(color)
40: 8(fvec4) Load 14(color2)
41: 8(fvec4) FMul 39 40
Store 38(gl_FragColor) 41
Branch 6
6: Label
Return
FunctionEnd

View File

@ -0,0 +1,200 @@
spv.forLoop.frag
Linked fragment stage:
// Module Version 99
// Generated by (magic number): 51a00bb
// Id's are bound by 123
Source GLSL 130
1: ExtInstImport "GLSL.std.450"
MemoryModel Logical GLSL450
EntryPoint Fragment 4
Name 4 "main"
Name 10 "color"
Name 12 "BaseColor"
Name 16 "i"
Name 22 "Count"
Name 28 "bigColor"
Name 36 "gl_FragColor"
Name 39 "sum"
Name 41 "i"
Name 51 "v4"
Name 60 "i"
Name 66 "tv4"
Name 84 "r"
Name 90 "i"
Name 98 "f"
Name 111 "i"
Decorate 12(BaseColor) Smooth
Decorate 36(gl_FragColor) BuiltIn FragColor
Decorate 98(f) Smooth
2: TypeVoid
3: TypeFunction 2
7: TypeFloat 32
8: TypeVector 7(float) 4
9: TypePointer Function 8(fvec4)
11: TypePointer Input 8(fvec4)
12(BaseColor): 11(ptr) Variable Input
14: TypeInt 32 1
15: TypePointer Function 14(int)
17: 14(int) Constant 0
21: TypePointer UniformConstant 14(int)
22(Count): 21(ptr) Variable UniformConstant
24: TypeBool
27: TypePointer UniformConstant 8(fvec4)
28(bigColor): 27(ptr) Variable UniformConstant
33: 14(int) Constant 1
35: TypePointer Output 8(fvec4)
36(gl_FragColor): 35(ptr) Variable Output
38: TypePointer Function 7(float)
40: 7(float) Constant 0
45: 14(int) Constant 4
48: TypeInt 32 0
49: TypeVector 48(int) 4
50: TypePointer UniformConstant 49(ivec4)
51(v4): 50(ptr) Variable UniformConstant
71: 48(int) Constant 4
85: TypeVector 7(float) 3
97: TypePointer Input 7(float)
98(f): 97(ptr) Variable Input
115: 14(int) Constant 16
4(main): 2 Function None 3
5: Label
10(color): 9(ptr) Variable Function
16(i): 15(ptr) Variable Function
39(sum): 38(ptr) Variable Function
41(i): 15(ptr) Variable Function
60(i): 15(ptr) Variable Function
66(tv4): 9(ptr) Variable Function
84(r): 9(ptr) Variable Function
90(i): 15(ptr) Variable Function
111(i): 15(ptr) Variable Function
13: 8(fvec4) Load 12(BaseColor)
Store 10(color) 13
Store 16(i) 17
Branch 18
18: Label
20: 14(int) Load 16(i)
23: 14(int) Load 22(Count)
25: 24(bool) SLessThan 20 23
LoopMerge 19 None
BranchConditional 25 26 19
26: Label
29: 8(fvec4) Load 28(bigColor)
30: 8(fvec4) Load 10(color)
31: 8(fvec4) FAdd 30 29
Store 10(color) 31
32: 14(int) Load 16(i)
34: 14(int) IAdd 32 33
Store 16(i) 34
Branch 18
19: Label
37: 8(fvec4) Load 10(color)
Store 36(gl_FragColor) 37
Store 39(sum) 40
Store 41(i) 17
Branch 42
42: Label
44: 14(int) Load 41(i)
46: 24(bool) SLessThan 44 45
LoopMerge 43 None
BranchConditional 46 47 43
47: Label
52: 14(int) Load 41(i)
53: 49(ivec4) Load 51(v4)
54: 48(int) VectorExtractDynamic 53 52
55: 7(float) ConvertUToF 54
56: 7(float) Load 39(sum)
57: 7(float) FAdd 56 55
Store 39(sum) 57
58: 14(int) Load 41(i)
59: 14(int) IAdd 58 33
Store 41(i) 59
Branch 42
43: Label
Store 60(i) 17
Branch 61
61: Label
63: 14(int) Load 60(i)
64: 24(bool) SLessThan 63 45
LoopMerge 62 None
BranchConditional 64 65 62
65: Label
67: 14(int) Load 60(i)
68: 14(int) Load 60(i)
69: 49(ivec4) Load 51(v4)
70: 48(int) VectorExtractDynamic 69 68
72: 48(int) IMul 70 71
73: 7(float) ConvertUToF 72
75: 8(fvec4) Load 66(tv4)
74: 7(float) VectorInsertDynamic 75 73 67
Store 66(tv4) 74
76: 14(int) Load 60(i)
77: 14(int) IAdd 76 33
Store 60(i) 77
Branch 61
62: Label
78: 7(float) Load 39(sum)
79: 8(fvec4) CompositeConstruct 78 78 78 78
80: 8(fvec4) Load 66(tv4)
81: 8(fvec4) FAdd 79 80
82: 8(fvec4) Load 36(gl_FragColor)
83: 8(fvec4) FAdd 82 81
Store 36(gl_FragColor) 83
86: 8(fvec4) Load 12(BaseColor)
87: 85(fvec3) VectorShuffle 86 86 0 1 2
88: 8(fvec4) Load 84(r)
89: 8(fvec4) VectorShuffle 88 87 4 5 6 3
Store 84(r) 89
Store 90(i) 17
Branch 91
91: Label
93: 14(int) Load 90(i)
94: 14(int) Load 22(Count)
95: 24(bool) SLessThan 93 94
LoopMerge 92 None
BranchConditional 95 96 92
96: Label
99: 7(float) Load 98(f)
100: 8(fvec4) Load 84(r)
101: 8(fvec4) CompositeInsert 99 100 3
Store 84(r) 101
102: 14(int) Load 90(i)
103: 14(int) IAdd 102 33
Store 90(i) 103
Branch 91
92: Label
104: 8(fvec4) Load 84(r)
105: 85(fvec3) VectorShuffle 104 104 0 1 2
106: 8(fvec4) Load 36(gl_FragColor)
107: 85(fvec3) VectorShuffle 106 106 0 1 2
108: 85(fvec3) FAdd 107 105
109: 8(fvec4) Load 36(gl_FragColor)
110: 8(fvec4) VectorShuffle 109 108 4 5 6 3
Store 36(gl_FragColor) 110
Store 111(i) 17
Branch 112
112: Label
114: 14(int) Load 111(i)
116: 24(bool) SLessThan 114 115
LoopMerge 113 None
BranchConditional 116 117 113
117: Label
118: 7(float) Load 98(f)
119: 8(fvec4) Load 36(gl_FragColor)
120: 8(fvec4) VectorTimesScalar 119 118
Store 36(gl_FragColor) 120
121: 14(int) Load 111(i)
122: 14(int) IAdd 121 45
Store 111(i) 122
Branch 112
113: Label
Branch 6
6: Label
Return
FunctionEnd

View File

@ -0,0 +1,109 @@
spv.forwardFun.frag
Linked fragment stage:
// Module Version 99
// Generated by (magic number): 51a00bb
// Id's are bound by 59
Source GLSL 100
1: ExtInstImport "GLSL.std.450"
MemoryModel Logical GLSL450
EntryPoint Fragment 4
Name 4 "main"
Name 7 "bar("
Name 11 "unreachableReturn("
Name 17 "foo(vf4;"
Name 16 "bar"
Name 19 "color"
Name 21 "BaseColor"
Name 22 "param"
Name 28 "f"
Name 31 "gl_FragColor"
Name 37 "d"
Name 49 "dummyReturn"
Name 58 "bigColor"
Decorate 19(color) PrecisionMedium
Decorate 21(BaseColor) PrecisionMedium
Decorate 21(BaseColor) Smooth
Decorate 28(f) PrecisionMedium
Decorate 31(gl_FragColor) PrecisionMedium
Decorate 31(gl_FragColor) BuiltIn FragColor
Decorate 37(d) PrecisionMedium
Decorate 58(bigColor) PrecisionMedium
Decorate 58(bigColor) NoStaticUse
2: TypeVoid
3: TypeFunction 2
9: TypeFloat 32
10: TypeFunction 9(float)
13: TypeVector 9(float) 4
14: TypePointer Function 13(fvec4)
15: TypeFunction 9(float) 14(ptr)
20: TypePointer Input 13(fvec4)
21(BaseColor): 20(ptr) Variable Input
27: TypePointer Function 9(float)
30: TypePointer Output 13(fvec4)
31(gl_FragColor): 30(ptr) Variable Output
36: TypePointer UniformConstant 9(float)
37(d): 36(ptr) Variable UniformConstant
39: 9(float) Constant 1082549862
40: TypeBool
44: 9(float) Constant 1067030938
47: 9(float) Constant 1083179008
57: TypePointer UniformConstant 13(fvec4)
58(bigColor): 57(ptr) Variable UniformConstant
4(main): 2 Function None 3
5: Label
19(color): 14(ptr) Variable Function
22(param): 14(ptr) Variable Function
28(f): 27(ptr) Variable Function
23: 13(fvec4) Load 21(BaseColor)
Store 22(param) 23
24: 9(float) FunctionCall 17(foo(vf4;) 22(param)
25: 13(fvec4) CompositeConstruct 24 24 24 24
Store 19(color) 25
26: 2 FunctionCall 7(bar()
29: 9(float) FunctionCall 11(unreachableReturn()
Store 28(f) 29
32: 13(fvec4) Load 19(color)
33: 9(float) Load 28(f)
34: 13(fvec4) VectorTimesScalar 32 33
Store 31(gl_FragColor) 34
Branch 6
6: Label
Return
FunctionEnd
7(bar(): 2 Function None 3
8: Label
Return
FunctionEnd
11(unreachableReturn(): 9(float) Function None 10
12: Label
49(dummyReturn): 27(ptr) Variable Function
35: 2 FunctionCall 7(bar()
38: 9(float) Load 37(d)
41: 40(bool) FOrdLessThan 38 39
SelectionMerge 43 None
BranchConditional 41 42 46
42: Label
ReturnValue 44
46: Label
ReturnValue 47
43: Label
50: 9(float) Load 49(dummyReturn)
ReturnValue 50
FunctionEnd
17(foo(vf4;): 9(float) Function None 15
16(bar): 14(ptr) FunctionParameter
18: Label
51: 13(fvec4) Load 16(bar)
52: 9(float) CompositeExtract 51 0
53: 13(fvec4) Load 16(bar)
54: 9(float) CompositeExtract 53 1
55: 9(float) FAdd 52 54
ReturnValue 55
FunctionEnd

View File

@ -0,0 +1,132 @@
spv.functionCall.frag
WARNING: 0:4: varying deprecated in version 130; may be removed in future release
Linked fragment stage:
// Module Version 99
// Generated by (magic number): 51a00bb
// Id's are bound by 76
Source GLSL 130
1: ExtInstImport "GLSL.std.450"
MemoryModel Logical GLSL450
EntryPoint Fragment 4
Name 4 "main"
Name 12 "foo(vf4;"
Name 11 "bar"
Name 14 "bar("
Name 17 "unreachableReturn("
Name 19 "missingReturn("
Name 22 "h"
Name 31 "d"
Name 44 "dummyReturn"
Name 53 "dummyReturn"
Name 55 "color"
Name 57 "BaseColor"
Name 58 "param"
Name 63 "f"
Name 65 "g"
Name 68 "gl_FragColor"
Name 75 "bigColor"
Decorate 57(BaseColor) Smooth
Decorate 68(gl_FragColor) BuiltIn FragColor
Decorate 75(bigColor) NoStaticUse
2: TypeVoid
3: TypeFunction 2
7: TypeFloat 32
8: TypeVector 7(float) 4
9: TypePointer Function 8(fvec4)
10: TypeFunction 7(float) 9(ptr)
16: TypeFunction 7(float)
21: TypePointer PrivateGlobal 7(float)
22(h): 21(ptr) Variable PrivateGlobal
23: 7(float) Constant 0
30: TypePointer UniformConstant 7(float)
31(d): 30(ptr) Variable UniformConstant
33: 7(float) Constant 1082549862
34: TypeBool
38: 7(float) Constant 1067030938
41: 7(float) Constant 1083179008
43: TypePointer Function 7(float)
51: 7(float) Constant 1081711002
56: TypePointer Input 8(fvec4)
57(BaseColor): 56(ptr) Variable Input
67: TypePointer Output 8(fvec4)
68(gl_FragColor): 67(ptr) Variable Output
74: TypePointer UniformConstant 8(fvec4)
75(bigColor): 74(ptr) Variable UniformConstant
4(main): 2 Function None 3
5: Label
55(color): 9(ptr) Variable Function
58(param): 9(ptr) Variable Function
63(f): 43(ptr) Variable Function
65(g): 43(ptr) Variable Function
Store 22(h) 23
59: 8(fvec4) Load 57(BaseColor)
Store 58(param) 59
60: 7(float) FunctionCall 12(foo(vf4;) 58(param)
61: 8(fvec4) CompositeConstruct 60 60 60 60
Store 55(color) 61
62: 2 FunctionCall 14(bar()
64: 7(float) FunctionCall 17(unreachableReturn()
Store 63(f) 64
66: 7(float) FunctionCall 19(missingReturn()
Store 65(g) 66
69: 8(fvec4) Load 55(color)
70: 7(float) Load 63(f)
71: 8(fvec4) VectorTimesScalar 69 70
72: 7(float) Load 22(h)
73: 8(fvec4) VectorTimesScalar 71 72
Store 68(gl_FragColor) 73
Branch 6
6: Label
Return
FunctionEnd
12(foo(vf4;): 7(float) Function None 10
11(bar): 9(ptr) FunctionParameter
13: Label
24: 8(fvec4) Load 11(bar)
25: 7(float) CompositeExtract 24 0
26: 8(fvec4) Load 11(bar)
27: 7(float) CompositeExtract 26 1
28: 7(float) FAdd 25 27
ReturnValue 28
FunctionEnd
14(bar(): 2 Function None 3
15: Label
Return
FunctionEnd
17(unreachableReturn(): 7(float) Function None 16
18: Label
44(dummyReturn): 43(ptr) Variable Function
32: 7(float) Load 31(d)
35: 34(bool) FOrdLessThan 32 33
SelectionMerge 37 None
BranchConditional 35 36 40
36: Label
ReturnValue 38
40: Label
ReturnValue 41
37: Label
45: 7(float) Load 44(dummyReturn)
ReturnValue 45
FunctionEnd
19(missingReturn(): 7(float) Function None 16
20: Label
53(dummyReturn): 43(ptr) Variable Function
46: 7(float) Load 31(d)
47: 34(bool) FOrdLessThan 46 41
SelectionMerge 49 None
BranchConditional 47 48 49
48: Label
50: 7(float) Load 31(d)
Store 22(h) 50
ReturnValue 51
49: Label
54: 7(float) Load 53(dummyReturn)
ReturnValue 54
FunctionEnd

View File

@ -0,0 +1,240 @@
spv.functionSemantics.frag
Warning, version 400 is not yet complete; most version-specific features are present, but some are missing.
Linked fragment stage:
// Module Version 99
// Generated by (magic number): 51a00bb
// Id's are bound by 159
Source GLSL 400
1: ExtInstImport "GLSL.std.450"
MemoryModel Logical GLSL450
EntryPoint Fragment 4
Name 4 "main"
Name 16 "foo(i1;i1;i1;i1;i1;i1;"
Name 10 "a"
Name 11 "b"
Name 12 "c"
Name 13 "d"
Name 14 "e"
Name 15 "f"
Name 26 "foo2(f1;vf3;i1;"
Name 23 "a"
Name 24 "b"
Name 25 "r"
Name 29 "foo3("
Name 31 "sum"
Name 73 "u"
Name 85 "t"
Name 88 "s"
MemberName 88(s) 0 "t"
Name 90 "f"
Name 97 "color"
Name 103 "e"
Name 104 "param"
Name 105 "param"
Name 106 "param"
Name 107 "param"
Name 126 "ret"
Name 128 "tempReturn"
Name 133 "tempArg"
Name 134 "param"
Name 135 "param"
Name 136 "param"
Name 139 "arg"
Name 155 "gl_FragColor"
Decorate 155(gl_FragColor) BuiltIn FragColor
2: TypeVoid
3: TypeFunction 2
7: TypeInt 32 1
8: TypePointer Function 7(int)
9: TypeFunction 7(int) 8(ptr) 7(int) 8(ptr) 7(int) 8(ptr) 8(ptr)
18: TypeFloat 32
19: TypePointer Function 18(float)
20: TypeVector 18(float) 3
21: TypePointer Function 20(fvec3)
22: TypeFunction 7(int) 19(ptr) 21(ptr) 8(ptr)
28: TypeFunction 7(int)
39: 7(int) Constant 64
44: 7(int) Constant 1024
62: 18(float) Constant 1077936128
66: 18(float) Constant 1084227584
72: TypePointer UniformConstant 18(float)
73(u): 72(ptr) Variable UniformConstant
75: 18(float) Constant 1078774989
76: TypeBool
81: 7(int) Constant 1000000
83: 7(int) Constant 2000000
86: 7(int) Constant 2
87: TypeVector 7(int) 4
88(s): TypeStruct 87(ivec4)
89: TypePointer Function 88(s)
91: 7(int) Constant 0
92: 7(int) Constant 32
93: TypePointer Function 87(ivec4)
98: 7(int) Constant 1
102: 7(int) Constant 8
117: 7(int) Constant 128
127: TypePointer PrivateGlobal 7(int)
128(tempReturn): 127(ptr) Variable PrivateGlobal
129: 18(float) Constant 1082130432
130: 18(float) Constant 1065353216
131: 18(float) Constant 1073741824
132: 20(fvec3) ConstantComposite 130 131 62
153: TypeVector 18(float) 4
154: TypePointer Output 153(fvec4)
155(gl_FragColor): 154(ptr) Variable Output
4(main): 2 Function None 3
5: Label
85(t): 8(ptr) Variable Function
90(f): 89(ptr) Variable Function
97(color): 8(ptr) Variable Function
103(e): 8(ptr) Variable Function
104(param): 8(ptr) Variable Function
105(param): 8(ptr) Variable Function
106(param): 8(ptr) Variable Function
107(param): 8(ptr) Variable Function
126(ret): 19(ptr) Variable Function
133(tempArg): 8(ptr) Variable Function
134(param): 19(ptr) Variable Function
135(param): 21(ptr) Variable Function
136(param): 8(ptr) Variable Function
139(arg): 19(ptr) Variable Function
Store 85(t) 86
94: 93(ptr) AccessChain 90(f) 91
95: 87(ivec4) Load 94
96: 87(ivec4) CompositeInsert 92 95 1
Store 94 96
99: 7(int) Load 85(t)
100: 7(int) Load 85(t)
101: 7(int) IAdd 99 100
Store 104(param) 98
Store 105(param) 101
108: 93(ptr) AccessChain 90(f) 91
109: 87(ivec4) Load 108
110: 7(int) CompositeExtract 109 1
Store 107(param) 110
111: 7(int) FunctionCall 16(foo(i1;i1;i1;i1;i1;i1;) 104(param) 86 105(param) 102 106(param) 107(param)
112: 7(int) Load 106(param)
Store 103(e) 112
113: 7(int) Load 107(param)
114: 93(ptr) AccessChain 90(f) 91
115: 87(ivec4) Load 114
116: 87(ivec4) CompositeInsert 113 115 1
Store 114 116
Store 97(color) 111
118: 7(int) Load 103(e)
119: 93(ptr) AccessChain 90(f) 91
120: 87(ivec4) Load 119
121: 7(int) CompositeExtract 120 1
122: 7(int) IAdd 118 121
123: 7(int) IMul 117 122
124: 7(int) Load 97(color)
125: 7(int) IAdd 124 123
Store 97(color) 125
Store 134(param) 129
Store 135(param) 132
137: 7(int) FunctionCall 26(foo2(f1;vf3;i1;) 134(param) 135(param) 136(param)
138: 7(int) Load 136(param)
Store 133(tempArg) 138
Store 128(tempReturn) 137
140: 7(int) Load 133(tempArg)
141: 18(float) ConvertSToF 140
Store 139(arg) 141
142: 7(int) Load 128(tempReturn)
143: 18(float) ConvertSToF 142
Store 126(ret) 143
144: 18(float) Load 126(ret)
145: 18(float) Load 139(arg)
146: 18(float) FAdd 144 145
147: 7(int) ConvertFToS 146
148: 7(int) Load 97(color)
149: 7(int) IAdd 148 147
Store 97(color) 149
150: 7(int) FunctionCall 29(foo3()
151: 7(int) Load 97(color)
152: 7(int) IAdd 151 150
Store 97(color) 152
156: 7(int) Load 97(color)
157: 18(float) ConvertSToF 156
158: 153(fvec4) CompositeConstruct 157 157 157 157
Store 155(gl_FragColor) 158
Branch 6
6: Label
Return
FunctionEnd
16(foo(i1;i1;i1;i1;i1;i1;): 7(int) Function None 9
10(a): 8(ptr) FunctionParameter
11(b): 7(int) FunctionParameter
12(c): 8(ptr) FunctionParameter
13(d): 7(int) FunctionParameter
14(e): 8(ptr) FunctionParameter
15(f): 8(ptr) FunctionParameter
17: Label
31(sum): 8(ptr) Variable Function
32: 7(int) Load 10(a)
33: 7(int) IAdd 32 11(b)
34: 7(int) Load 12(c)
35: 7(int) IAdd 33 34
36: 7(int) IAdd 35 13(d)
37: 7(int) Load 15(f)
38: 7(int) IAdd 36 37
Store 31(sum) 38
40: 7(int) Load 10(a)
41: 7(int) IMul 40 39
Store 10(a) 41
42: 7(int) Load 12(c)
43: 7(int) IMul 42 39
Store 12(c) 43
Store 14(e) 44
45: 7(int) Load 15(f)
46: 7(int) IMul 45 39
Store 15(f) 46
47: 7(int) Load 10(a)
48: 7(int) IMul 39 11(b)
49: 7(int) IAdd 47 48
50: 7(int) Load 12(c)
51: 7(int) IAdd 49 50
52: 7(int) IMul 39 13(d)
53: 7(int) IAdd 51 52
54: 7(int) Load 14(e)
55: 7(int) IAdd 53 54
56: 7(int) Load 15(f)
57: 7(int) IAdd 55 56
58: 7(int) Load 31(sum)
59: 7(int) IAdd 58 57
Store 31(sum) 59
60: 7(int) Load 31(sum)
ReturnValue 60
FunctionEnd
26(foo2(f1;vf3;i1;): 7(int) Function None 22
23(a): 19(ptr) FunctionParameter
24(b): 21(ptr) FunctionParameter
25(r): 8(ptr) FunctionParameter
27: Label
63: 18(float) Load 23(a)
64: 18(float) FMul 62 63
65: 7(int) ConvertFToS 64
Store 25(r) 65
67: 20(fvec3) Load 24(b)
68: 18(float) CompositeExtract 67 1
69: 18(float) FMul 66 68
70: 7(int) ConvertFToS 69
ReturnValue 70
FunctionEnd
29(foo3(): 7(int) Function None 28
30: Label
74: 18(float) Load 73(u)
77: 76(bool) FOrdGreaterThan 74 75
SelectionMerge 79 None
BranchConditional 77 78 79
78: Label
Kill
79: Label
ReturnValue 83
FunctionEnd

View File

@ -0,0 +1,61 @@
spv.length.frag
Linked fragment stage:
// Module Version 99
// Generated by (magic number): 51a00bb
// Id's are bound by 34
Source GLSL 120
1: ExtInstImport "GLSL.std.450"
MemoryModel Logical GLSL450
EntryPoint Fragment 4
Name 4 "main"
Name 10 "t"
Name 15 "v"
Name 27 "gl_FragColor"
Name 33 "u"
Decorate 15(v) Smooth
Decorate 27(gl_FragColor) BuiltIn FragColor
Decorate 33(u) NoStaticUse
2: TypeVoid
3: TypeFunction 2
7: TypeFloat 32
8: TypeVector 7(float) 2
9: TypePointer Function 8(fvec2)
11: TypeInt 32 0
12: 11(int) Constant 2
13: TypeArray 8(fvec2) 12
14: TypePointer Input 13
15(v): 14(ptr) Variable Input
16: TypeInt 32 1
17: 16(int) Constant 0
18: TypePointer Input 8(fvec2)
21: 16(int) Constant 1
25: TypeVector 7(float) 4
26: TypePointer Output 25(fvec4)
27(gl_FragColor): 26(ptr) Variable Output
28: 7(float) Constant 1106247680
29: 25(fvec4) ConstantComposite 28 28 28 28
30: 11(int) Constant 3
31: TypeArray 25(fvec4) 30
32: TypePointer UniformConstant 31
33(u): 32(ptr) Variable UniformConstant
4(main): 2 Function None 3
5: Label
10(t): 9(ptr) Variable Function
19: 18(ptr) AccessChain 15(v) 17
20: 8(fvec2) Load 19
22: 18(ptr) AccessChain 15(v) 21
23: 8(fvec2) Load 22
24: 8(fvec2) FAdd 20 23
Store 10(t) 24
Store 27(gl_FragColor) 29
Branch 6
6: Label
Return
FunctionEnd

View File

@ -0,0 +1,220 @@
spv.localAggregates.frag
WARNING: 0:4: varying deprecated in version 130; may be removed in future release
WARNING: 0:5: varying deprecated in version 130; may be removed in future release
Linked fragment stage:
// Module Version 99
// Generated by (magic number): 51a00bb
// Id's are bound by 134
Source GLSL 130
1: ExtInstImport "GLSL.std.450"
MemoryModel Logical GLSL450
EntryPoint Fragment 4
Name 4 "main"
Name 9 "s1"
MemberName 9(s1) 0 "i"
MemberName 9(s1) 1 "f"
Name 11 "s2"
MemberName 11(s2) 0 "i"
MemberName 11(s2) 1 "f"
MemberName 11(s2) 2 "s1_1"
MemberName 11(s2) 3 "bleh"
Name 13 "locals2"
Name 14 "s3"
MemberName 14(s3) 0 "s2_1"
MemberName 14(s3) 1 "i"
MemberName 14(s3) 2 "f"
MemberName 14(s3) 3 "s1_1"
Name 16 "foo3"
Name 37 "localFArray"
Name 41 "coord"
Name 48 "localIArray"
Name 67 "x"
Name 69 "localArray"
Name 74 "i"
Name 81 "a"
Name 87 "condition"
Name 95 "color"
Name 105 "gl_FragColor"
Name 124 "sampler"
Name 130 "foo"
Name 131 "foo2"
Name 133 "uFloatArray"
Decorate 41(coord) Smooth
Decorate 95(color) Smooth
Decorate 105(gl_FragColor) BuiltIn FragColor
Decorate 130(foo) NoStaticUse
Decorate 131(foo2) NoStaticUse
Decorate 133(uFloatArray) NoStaticUse
2: TypeVoid
3: TypeFunction 2
7: TypeInt 32 1
8: TypeFloat 32
9(s1): TypeStruct 7(int) 8(float)
10: TypeVector 8(float) 4
11(s2): TypeStruct 7(int) 8(float) 9(s1) 10(fvec4)
12: TypePointer Function 11(s2)
14(s3): TypeStruct 11(s2) 7(int) 8(float) 9(s1)
15: TypePointer UniformConstant 14(s3)
16(foo3): 15(ptr) Variable UniformConstant
17: 7(int) Constant 0
18: TypePointer UniformConstant 11(s2)
21: TypePointer UniformConstant 7(int)
24: TypeBool
28: 7(int) Constant 2
29: 7(int) Constant 1
30: 8(float) Constant 1065353216
31: TypePointer Function 8(float)
33: TypeInt 32 0
34: 33(int) Constant 16
35: TypeArray 8(float) 34
36: TypePointer Function 35
38: 7(int) Constant 4
39: TypeVector 8(float) 2
40: TypePointer Input 39(fvec2)
41(coord): 40(ptr) Variable Input
45: 33(int) Constant 8
46: TypeArray 7(int) 45
47: TypePointer Function 46
51: TypePointer Function 7(int)
68: 7(int) Constant 5
78: 7(int) Constant 16
83: 8(float) Constant 0
87(condition): 21(ptr) Variable UniformConstant
93: 7(int) Constant 3
94: TypePointer Input 10(fvec4)
95(color): 94(ptr) Variable Input
97: TypePointer Function 10(fvec4)
104: TypePointer Output 10(fvec4)
105(gl_FragColor): 104(ptr) Variable Output
122: TypeSampler8(float) 2D filter+texture
123: TypePointer UniformConstant 122
124(sampler): 123(ptr) Variable UniformConstant
129: TypePointer UniformConstant 9(s1)
130(foo): 129(ptr) Variable UniformConstant
131(foo2): 18(ptr) Variable UniformConstant
132: TypePointer UniformConstant 35
133(uFloatArray): 132(ptr) Variable UniformConstant
4(main): 2 Function None 3
5: Label
13(locals2): 12(ptr) Variable Function
37(localFArray): 36(ptr) Variable Function
48(localIArray): 47(ptr) Variable Function
67(x): 51(ptr) Variable Function
69(localArray): 36(ptr) Variable Function
74(i): 51(ptr) Variable Function
81(a): 36(ptr) Variable Function
19: 18(ptr) AccessChain 16(foo3) 17
20: 11(s2) Load 19
Store 13(locals2) 20
22: 21(ptr) AccessChain 16(foo3) 17 17
23: 7(int) Load 22
25: 24(bool) SGreaterThan 23 17
SelectionMerge 27 None
BranchConditional 25 26 53
26: Label
32: 31(ptr) AccessChain 13(locals2) 28 29
Store 32 30
42: 39(fvec2) Load 41(coord)
43: 8(float) CompositeExtract 42 0
44: 31(ptr) AccessChain 37(localFArray) 38
Store 44 43
49: 21(ptr) AccessChain 16(foo3) 17 17
50: 7(int) Load 49
52: 51(ptr) AccessChain 48(localIArray) 28
Store 52 50
Branch 27
53: Label
54: 39(fvec2) Load 41(coord)
55: 8(float) CompositeExtract 54 0
56: 31(ptr) AccessChain 13(locals2) 28 29
Store 56 55
57: 31(ptr) AccessChain 37(localFArray) 38
Store 57 30
58: 51(ptr) AccessChain 48(localIArray) 28
Store 58 17
Branch 27
27: Label
59: 51(ptr) AccessChain 48(localIArray) 28
60: 7(int) Load 59
61: 24(bool) IEqual 60 17
SelectionMerge 63 None
BranchConditional 61 62 63
62: Label
64: 31(ptr) AccessChain 37(localFArray) 38
65: 8(float) Load 64
66: 8(float) FAdd 65 30
Store 64 66
Branch 63
63: Label
Store 67(x) 68
70: 7(int) Load 67(x)
71: 39(fvec2) Load 41(coord)
72: 8(float) CompositeExtract 71 0
73: 31(ptr) AccessChain 69(localArray) 70
Store 73 72
Store 74(i) 17
Branch 75
75: Label
77: 7(int) Load 74(i)
79: 24(bool) SLessThan 77 78
LoopMerge 76 None
BranchConditional 79 80 76
80: Label
82: 7(int) Load 74(i)
84: 31(ptr) AccessChain 81(a) 82
Store 84 83
85: 7(int) Load 74(i)
86: 7(int) IAdd 85 29
Store 74(i) 86
Branch 75
76: Label
88: 7(int) Load 87(condition)
89: 24(bool) IEqual 88 29
SelectionMerge 91 None
BranchConditional 89 90 91
90: Label
92: 35 Load 69(localArray)
Store 81(a) 92
Branch 91
91: Label
96: 10(fvec4) Load 95(color)
98: 97(ptr) AccessChain 13(locals2) 93
Store 98 96
99: 39(fvec2) Load 41(coord)
100: 8(float) CompositeExtract 99 1
101: 97(ptr) AccessChain 13(locals2) 93
102: 10(fvec4) Load 101
103: 10(fvec4) CompositeInsert 100 102 2
Store 101 103
106: 97(ptr) AccessChain 13(locals2) 93
107: 10(fvec4) Load 106
108: 31(ptr) AccessChain 37(localFArray) 38
109: 8(float) Load 108
110: 31(ptr) AccessChain 13(locals2) 28 29
111: 8(float) Load 110
112: 8(float) FAdd 109 111
113: 7(int) Load 67(x)
114: 31(ptr) AccessChain 69(localArray) 113
115: 8(float) Load 114
116: 8(float) FAdd 112 115
117: 7(int) Load 67(x)
118: 31(ptr) AccessChain 81(a) 117
119: 8(float) Load 118
120: 8(float) FAdd 116 119
121: 10(fvec4) VectorTimesScalar 107 120
125: 122 Load 124(sampler)
126: 39(fvec2) Load 41(coord)
127: 10(fvec4) TextureSample 125 126
128: 10(fvec4) FMul 121 127
Store 105(gl_FragColor) 128
Branch 6
6: Label
Return
FunctionEnd

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,352 @@
spv.loopsArtificial.frag
WARNING: 0:14: varying deprecated in version 130; may be removed in future release
Linked fragment stage:
// Module Version 99
// Generated by (magic number): 51a00bb
// Id's are bound by 192
Source GLSL 130
1: ExtInstImport "GLSL.std.450"
MemoryModel Logical GLSL450
EntryPoint Fragment 4
Name 4 "main"
Name 10 "color"
Name 12 "BaseColor"
Name 19 "bigColor4"
Name 26 "d4"
Name 79 "d13"
Name 145 "gl_FragColor"
Name 147 "bigColor"
Name 148 "bigColor1_1"
Name 149 "bigColor1_2"
Name 150 "bigColor1_3"
Name 151 "bigColor2"
Name 152 "bigColor3"
Name 153 "bigColor5"
Name 154 "bigColor6"
Name 155 "bigColor7"
Name 156 "bigColor8"
Name 157 "d"
Name 158 "d2"
Name 159 "d3"
Name 160 "d5"
Name 161 "d6"
Name 162 "d7"
Name 163 "d8"
Name 164 "d9"
Name 165 "d10"
Name 166 "d11"
Name 167 "d12"
Name 168 "d14"
Name 169 "d15"
Name 170 "d16"
Name 171 "d17"
Name 172 "d18"
Name 173 "d19"
Name 174 "d20"
Name 175 "d21"
Name 176 "d22"
Name 177 "d23"
Name 178 "d24"
Name 179 "d25"
Name 180 "d26"
Name 181 "d27"
Name 182 "d28"
Name 183 "d29"
Name 184 "d30"
Name 185 "d31"
Name 186 "d32"
Name 187 "d33"
Name 188 "d34"
Name 191 "Count"
Decorate 12(BaseColor) Smooth
Decorate 145(gl_FragColor) BuiltIn FragColor
Decorate 147(bigColor) NoStaticUse
Decorate 148(bigColor1_1) NoStaticUse
Decorate 149(bigColor1_2) NoStaticUse
Decorate 150(bigColor1_3) NoStaticUse
Decorate 151(bigColor2) NoStaticUse
Decorate 152(bigColor3) NoStaticUse
Decorate 153(bigColor5) NoStaticUse
Decorate 154(bigColor6) NoStaticUse
Decorate 155(bigColor7) NoStaticUse
Decorate 156(bigColor8) NoStaticUse
Decorate 157(d) NoStaticUse
Decorate 158(d2) NoStaticUse
Decorate 159(d3) NoStaticUse
Decorate 160(d5) NoStaticUse
Decorate 161(d6) NoStaticUse
Decorate 162(d7) NoStaticUse
Decorate 163(d8) NoStaticUse
Decorate 164(d9) NoStaticUse
Decorate 165(d10) NoStaticUse
Decorate 166(d11) NoStaticUse
Decorate 167(d12) NoStaticUse
Decorate 168(d14) NoStaticUse
Decorate 169(d15) NoStaticUse
Decorate 170(d16) NoStaticUse
Decorate 171(d17) NoStaticUse
Decorate 172(d18) NoStaticUse
Decorate 173(d19) NoStaticUse
Decorate 174(d20) NoStaticUse
Decorate 175(d21) NoStaticUse
Decorate 176(d22) NoStaticUse
Decorate 177(d23) NoStaticUse
Decorate 178(d24) NoStaticUse
Decorate 179(d25) NoStaticUse
Decorate 180(d26) NoStaticUse
Decorate 181(d27) NoStaticUse
Decorate 182(d28) NoStaticUse
Decorate 183(d29) NoStaticUse
Decorate 184(d30) NoStaticUse
Decorate 185(d31) NoStaticUse
Decorate 186(d32) NoStaticUse
Decorate 187(d33) NoStaticUse
Decorate 188(d34) NoStaticUse
Decorate 191(Count) NoStaticUse
2: TypeVoid
3: TypeFunction 2
7: TypeFloat 32
8: TypeVector 7(float) 4
9: TypePointer Function 8(fvec4)
11: TypePointer Input 8(fvec4)
12(BaseColor): 11(ptr) Variable Input
18: TypePointer UniformConstant 8(fvec4)
19(bigColor4): 18(ptr) Variable UniformConstant
25: TypePointer UniformConstant 7(float)
26(d4): 25(ptr) Variable UniformConstant
28: TypeBool
32: 7(float) Constant 1073741824
46: 7(float) Constant 1065353216
79(d13): 25(ptr) Variable UniformConstant
144: TypePointer Output 8(fvec4)
145(gl_FragColor): 144(ptr) Variable Output
147(bigColor): 18(ptr) Variable UniformConstant
148(bigColor1_1): 18(ptr) Variable UniformConstant
149(bigColor1_2): 18(ptr) Variable UniformConstant
150(bigColor1_3): 18(ptr) Variable UniformConstant
151(bigColor2): 18(ptr) Variable UniformConstant
152(bigColor3): 18(ptr) Variable UniformConstant
153(bigColor5): 18(ptr) Variable UniformConstant
154(bigColor6): 18(ptr) Variable UniformConstant
155(bigColor7): 18(ptr) Variable UniformConstant
156(bigColor8): 18(ptr) Variable UniformConstant
157(d): 25(ptr) Variable UniformConstant
158(d2): 25(ptr) Variable UniformConstant
159(d3): 25(ptr) Variable UniformConstant
160(d5): 25(ptr) Variable UniformConstant
161(d6): 25(ptr) Variable UniformConstant
162(d7): 25(ptr) Variable UniformConstant
163(d8): 25(ptr) Variable UniformConstant
164(d9): 25(ptr) Variable UniformConstant
165(d10): 25(ptr) Variable UniformConstant
166(d11): 25(ptr) Variable UniformConstant
167(d12): 25(ptr) Variable UniformConstant
168(d14): 25(ptr) Variable UniformConstant
169(d15): 25(ptr) Variable UniformConstant
170(d16): 25(ptr) Variable UniformConstant
171(d17): 25(ptr) Variable UniformConstant
172(d18): 25(ptr) Variable UniformConstant
173(d19): 25(ptr) Variable UniformConstant
174(d20): 25(ptr) Variable UniformConstant
175(d21): 25(ptr) Variable UniformConstant
176(d22): 25(ptr) Variable UniformConstant
177(d23): 25(ptr) Variable UniformConstant
178(d24): 25(ptr) Variable UniformConstant
179(d25): 25(ptr) Variable UniformConstant
180(d26): 25(ptr) Variable UniformConstant
181(d27): 25(ptr) Variable UniformConstant
182(d28): 25(ptr) Variable UniformConstant
183(d29): 25(ptr) Variable UniformConstant
184(d30): 25(ptr) Variable UniformConstant
185(d31): 25(ptr) Variable UniformConstant
186(d32): 25(ptr) Variable UniformConstant
187(d33): 25(ptr) Variable UniformConstant
188(d34): 25(ptr) Variable UniformConstant
189: TypeInt 32 1
190: TypePointer UniformConstant 189(int)
191(Count): 190(ptr) Variable UniformConstant
4(main): 2 Function None 3
5: Label
10(color): 9(ptr) Variable Function
13: 8(fvec4) Load 12(BaseColor)
Store 10(color) 13
Branch 14
14: Label
LoopMerge 15 None
Branch 16
16: Label
20: 8(fvec4) Load 19(bigColor4)
21: 8(fvec4) Load 10(color)
22: 8(fvec4) FAdd 21 20
Store 10(color) 22
23: 8(fvec4) Load 10(color)
24: 7(float) CompositeExtract 23 0
27: 7(float) Load 26(d4)
29: 28(bool) FOrdLessThan 24 27
SelectionMerge 31 None
BranchConditional 29 30 31
30: Label
33: 8(fvec4) Load 10(color)
34: 7(float) CompositeExtract 33 2
35: 7(float) FAdd 34 32
36: 8(fvec4) Load 10(color)
37: 8(fvec4) CompositeInsert 35 36 2
Store 10(color) 37
38: 8(fvec4) Load 10(color)
39: 7(float) CompositeExtract 38 2
40: 7(float) Load 26(d4)
41: 28(bool) FOrdLessThan 39 40
SelectionMerge 43 None
BranchConditional 41 42 43
42: Label
44: 8(fvec4) Load 10(color)
45: 7(float) CompositeExtract 44 0
47: 7(float) FAdd 45 46
48: 8(fvec4) Load 10(color)
49: 8(fvec4) CompositeInsert 47 48 0
Store 10(color) 49
Branch 17
43: Label
Branch 31
31: Label
51: 8(fvec4) Load 10(color)
52: 7(float) CompositeExtract 51 1
53: 7(float) Load 26(d4)
54: 28(bool) FOrdLessThan 52 53
SelectionMerge 56 None
BranchConditional 54 55 63
55: Label
57: 7(float) Load 26(d4)
58: 8(fvec4) Load 10(color)
59: 7(float) CompositeExtract 58 1
60: 7(float) FAdd 59 57
61: 8(fvec4) Load 10(color)
62: 8(fvec4) CompositeInsert 60 61 1
Store 10(color) 62
Branch 56
63: Label
64: 7(float) Load 26(d4)
65: 8(fvec4) Load 10(color)
66: 7(float) CompositeExtract 65 0
67: 7(float) FAdd 66 64
68: 8(fvec4) Load 10(color)
69: 8(fvec4) CompositeInsert 67 68 0
Store 10(color) 69
Branch 56
56: Label
Branch 17
17: Label
70: 8(fvec4) Load 10(color)
71: 7(float) CompositeExtract 70 2
72: 7(float) Load 26(d4)
73: 28(bool) FOrdLessThan 71 72
BranchConditional 73 74 15
74: Label
Branch 14
15: Label
Branch 75
75: Label
77: 8(fvec4) Load 10(color)
78: 7(float) CompositeExtract 77 3
80: 7(float) Load 79(d13)
81: 28(bool) FOrdLessThan 78 80
LoopMerge 76 None
BranchConditional 81 82 76
82: Label
83: 8(fvec4) Load 10(color)
84: 7(float) CompositeExtract 83 2
85: 7(float) Load 79(d13)
86: 28(bool) FOrdLessThan 84 85
SelectionMerge 88 None
BranchConditional 86 87 92
87: Label
89: 8(fvec4) Load 10(color)
90: 8(fvec4) CompositeConstruct 46 46 46 46
91: 8(fvec4) FAdd 89 90
Store 10(color) 91
Branch 88
92: Label
93: 8(fvec4) Load 10(color)
94: 8(fvec4) CompositeConstruct 46 46 46 46
95: 8(fvec4) FSub 93 94
Store 10(color) 95
Branch 88
88: Label
96: 8(fvec4) Load 19(bigColor4)
97: 8(fvec4) Load 10(color)
98: 8(fvec4) FAdd 97 96
Store 10(color) 98
99: 8(fvec4) Load 10(color)
100: 7(float) CompositeExtract 99 0
101: 7(float) Load 26(d4)
102: 28(bool) FOrdLessThan 100 101
SelectionMerge 104 None
BranchConditional 102 103 104
103: Label
105: 8(fvec4) Load 10(color)
106: 7(float) CompositeExtract 105 2
107: 7(float) FAdd 106 32
108: 8(fvec4) Load 10(color)
109: 8(fvec4) CompositeInsert 107 108 2
Store 10(color) 109
110: 8(fvec4) Load 10(color)
111: 7(float) CompositeExtract 110 2
112: 7(float) Load 26(d4)
113: 28(bool) FOrdLessThan 111 112
SelectionMerge 115 None
BranchConditional 113 114 115
114: Label
116: 8(fvec4) Load 10(color)
117: 7(float) CompositeExtract 116 0
118: 7(float) FAdd 117 46
119: 8(fvec4) Load 10(color)
120: 8(fvec4) CompositeInsert 118 119 0
Store 10(color) 120
Branch 75
115: Label
Branch 104
104: Label
122: 8(fvec4) Load 10(color)
123: 7(float) CompositeExtract 122 1
124: 7(float) Load 26(d4)
125: 28(bool) FOrdLessThan 123 124
SelectionMerge 127 None
BranchConditional 125 126 134
126: Label
128: 7(float) Load 26(d4)
129: 8(fvec4) Load 10(color)
130: 7(float) CompositeExtract 129 1
131: 7(float) FAdd 130 128
132: 8(fvec4) Load 10(color)
133: 8(fvec4) CompositeInsert 131 132 1
Store 10(color) 133
Branch 127
134: Label
135: 7(float) Load 26(d4)
136: 8(fvec4) Load 10(color)
137: 7(float) CompositeExtract 136 0
138: 7(float) FAdd 137 135
139: 8(fvec4) Load 10(color)
140: 8(fvec4) CompositeInsert 138 139 0
Store 10(color) 140
Branch 127
127: Label
Branch 75
76: Label
141: 8(fvec4) Load 10(color)
142: 8(fvec4) CompositeConstruct 46 46 46 46
143: 8(fvec4) FAdd 141 142
Store 10(color) 143
146: 8(fvec4) Load 10(color)
Store 145(gl_FragColor) 146
Branch 6
6: Label
Return
FunctionEnd

View File

@ -0,0 +1,142 @@
spv.matFun.vert
Linked vertex stage:
// Module Version 99
// Generated by (magic number): 51a00bb
// Id's are bound by 94
Source GLSL 130
1: ExtInstImport "GLSL.std.450"
MemoryModel Logical GLSL450
EntryPoint Vertex 4
Name 4 "main"
Name 15 "xf(mf33;vf3;"
Name 13 "m"
Name 14 "v"
Name 22 "Mat3(mf44;"
Name 21 "m"
Name 27 "mxv(mf44;vf3;"
Name 25 "m4"
Name 26 "v"
Name 64 "param"
Name 70 "gl_Position"
Name 72 "m4"
Name 74 "v3"
Name 75 "param"
Name 77 "param"
Name 81 "m3"
Name 82 "param"
Name 84 "param"
Name 93 "gl_VertexID"
Decorate 70(gl_Position) BuiltIn Position
Decorate 93(gl_VertexID) BuiltIn VertexId
Decorate 93(gl_VertexID) NoStaticUse
2: TypeVoid
3: TypeFunction 2
7: TypeFloat 32
8: TypeVector 7(float) 3
9: TypeMatrix 8(fvec3) 3
10: TypePointer Function 9
11: TypePointer Function 8(fvec3)
12: TypeFunction 8(fvec3) 10(ptr) 11(ptr)
17: TypeVector 7(float) 4
18: TypeMatrix 17(fvec4) 4
19: TypePointer Function 18
20: TypeFunction 9 19(ptr)
24: TypeFunction 8(fvec3) 19(ptr) 11(ptr)
33: TypeInt 32 1
34: 33(int) Constant 0
35: TypePointer Function 17(fvec4)
39: 33(int) Constant 1
43: 33(int) Constant 2
47: 7(float) Constant 1065353216
48: 7(float) Constant 0
69: TypePointer Output 17(fvec4)
70(gl_Position): 69(ptr) Variable Output
71: TypePointer UniformConstant 18
72(m4): 71(ptr) Variable UniformConstant
73: TypePointer Input 8(fvec3)
74(v3): 73(ptr) Variable Input
80: TypePointer UniformConstant 9
81(m3): 80(ptr) Variable UniformConstant
92: TypePointer Input 33(int)
93(gl_VertexID): 92(ptr) Variable Input
4(main): 2 Function None 3
5: Label
75(param): 19(ptr) Variable Function
77(param): 11(ptr) Variable Function
82(param): 10(ptr) Variable Function
84(param): 11(ptr) Variable Function
76: 18 Load 72(m4)
Store 75(param) 76
78: 8(fvec3) Load 74(v3)
Store 77(param) 78
79: 8(fvec3) FunctionCall 27(mxv(mf44;vf3;) 75(param) 77(param)
83: 9 Load 81(m3)
Store 82(param) 83
85: 8(fvec3) Load 74(v3)
Store 84(param) 85
86: 8(fvec3) FunctionCall 15(xf(mf33;vf3;) 82(param) 84(param)
87: 8(fvec3) FAdd 79 86
88: 7(float) CompositeExtract 87 0
89: 7(float) CompositeExtract 87 1
90: 7(float) CompositeExtract 87 2
91: 17(fvec4) CompositeConstruct 88 89 90 47
Store 70(gl_Position) 91
Branch 6
6: Label
Return
FunctionEnd
15(xf(mf33;vf3;): 8(fvec3) Function None 12
13(m): 10(ptr) FunctionParameter
14(v): 11(ptr) FunctionParameter
16: Label
29: 8(fvec3) Load 14(v)
30: 9 Load 13(m)
31: 8(fvec3) VectorTimesMatrix 29 30
ReturnValue 31
FunctionEnd
22(Mat3(mf44;): 9 Function None 20
21(m): 19(ptr) FunctionParameter
23: Label
36: 35(ptr) AccessChain 21(m) 34
37: 17(fvec4) Load 36
38: 8(fvec3) VectorShuffle 37 37 0 1 2
40: 35(ptr) AccessChain 21(m) 39
41: 17(fvec4) Load 40
42: 8(fvec3) VectorShuffle 41 41 0 1 2
44: 35(ptr) AccessChain 21(m) 43
45: 17(fvec4) Load 44
46: 8(fvec3) VectorShuffle 45 45 0 1 2
49: 7(float) CompositeExtract 38 0
50: 7(float) CompositeExtract 38 1
51: 7(float) CompositeExtract 38 2
52: 7(float) CompositeExtract 42 0
53: 7(float) CompositeExtract 42 1
54: 7(float) CompositeExtract 42 2
55: 7(float) CompositeExtract 46 0
56: 7(float) CompositeExtract 46 1
57: 7(float) CompositeExtract 46 2
58: 8(fvec3) CompositeConstruct 49 50 51
59: 8(fvec3) CompositeConstruct 52 53 54
60: 8(fvec3) CompositeConstruct 55 56 57
61: 9 CompositeConstruct 58 59 60
ReturnValue 61
FunctionEnd
27(mxv(mf44;vf3;): 8(fvec3) Function None 24
25(m4): 19(ptr) FunctionParameter
26(v): 11(ptr) FunctionParameter
28: Label
64(param): 19(ptr) Variable Function
63: 8(fvec3) Load 26(v)
65: 18 Load 25(m4)
Store 64(param) 65
66: 9 FunctionCall 22(Mat3(mf44;) 64(param)
67: 8(fvec3) VectorTimesMatrix 63 66
ReturnValue 67
FunctionEnd

View File

@ -0,0 +1,12 @@
spv.matrix.frag
WARNING: 0:6: varying deprecated in version 130; may be removed in future release
WARNING: 0:17: varying deprecated in version 130; may be removed in future release
WARNING: 0:22: varying deprecated in version 130; may be removed in future release
Linked fragment stage:
Missing functionality: Composite comparison of non-vectors

View File

@ -0,0 +1,12 @@
spv.matrix2.frag
WARNING: 0:4: varying deprecated in version 130; may be removed in future release
WARNING: 0:13: varying deprecated in version 130; may be removed in future release
WARNING: 0:15: varying deprecated in version 130; may be removed in future release
Linked fragment stage:
Missing functionality: binary operation on matrix

View File

@ -0,0 +1,10 @@
spv.newTexture.frag
Warning, version 430 is not yet complete; most version-specific features are present, but some are missing.
Linked fragment stage:
Missing functionality: texel fetch

View File

@ -0,0 +1,123 @@
spv.nonSquare.vert
Linked vertex stage:
// Module Version 99
// Generated by (magic number): 51a00bb
// Id's are bound by 91
Source GLSL 120
1: ExtInstImport "GLSL.std.450"
MemoryModel Logical GLSL450
EntryPoint Vertex 4
Name 4 "main"
Name 10 "a"
Name 13 "v3"
Name 17 "m23"
Name 20 "b"
Name 23 "m32"
Name 29 "gl_Position"
Name 56 "v4"
Decorate 29(gl_Position) BuiltIn Position
Decorate 75 NoStaticUse
Decorate 79 NoStaticUse
Decorate 90 NoStaticUse
2: TypeVoid
3: TypeFunction 2
7: TypeFloat 32
8: TypeVector 7(float) 2
9: TypePointer Function 8(fvec2)
11: TypeVector 7(float) 3
12: TypePointer Input 11(fvec3)
13(v3): 12(ptr) Variable Input
15: TypeMatrix 11(fvec3) 2
16: TypePointer Function 15
21: TypeMatrix 8(fvec2) 3
22: TypePointer UniformConstant 21
23(m32): 22(ptr) Variable UniformConstant
27: TypeVector 7(float) 4
28: TypePointer Output 27(fvec4)
29(gl_Position): 28(ptr) Variable Output
32: TypeMatrix 11(fvec3) 3
36: 7(float) Constant 0
41: TypeMatrix 27(fvec4) 4
42: 7(float) Constant 1077936128
43: 7(float) Constant 1086324736
44: 27(fvec4) ConstantComposite 42 43 36 36
45: 7(float) Constant 1091567616
46: 7(float) Constant 1094713344
47: 27(fvec4) ConstantComposite 45 46 36 36
48: 7(float) Constant 1097859072
49: 7(float) Constant 1099956224
50: 27(fvec4) ConstantComposite 48 49 36 36
51: 7(float) Constant 1101529088
52: 7(float) Constant 1103101952
53: 27(fvec4) ConstantComposite 51 52 36 36
54: 41 ConstantComposite 44 47 50 53
55: TypePointer Input 27(fvec4)
56(v4): 55(ptr) Variable Input
60: 7(float) Constant 1112014848
61: 7(float) Constant 1121714176
62: 7(float) Constant 1126825984
63: 7(float) Constant 1130758144
64: 27(fvec4) ConstantComposite 60 61 62 63
66: 7(float) Constant 1106247680
67: 7(float) Constant 1114636288
68: 27(fvec4) ConstantComposite 66 67 36 36
70: 7(float) Constant 1101004800
71: 7(float) Constant 1092616192
72: 7(float) Constant 1084227584
73: 27(fvec4) ConstantComposite 70 71 43 72
75: 8(fvec2) ConstantComposite 71 70
76: TypeMatrix 27(fvec4) 2
77: 27(fvec4) ConstantComposite 42 36 36 36
78: 27(fvec4) ConstantComposite 36 42 36 36
79: 76 ConstantComposite 77 78
80: TypeMatrix 8(fvec2) 4
81: 7(float) Constant 1065353216
82: 7(float) Constant 1073741824
83: 8(fvec2) ConstantComposite 81 82
84: 7(float) Constant 1082130432
85: 8(fvec2) ConstantComposite 42 84
86: 8(fvec2) ConstantComposite 72 43
87: 7(float) Constant 1088421888
88: 7(float) Constant 1090519040
89: 8(fvec2) ConstantComposite 87 88
90: 80 ConstantComposite 83 85 86 89
4(main): 2 Function None 3
5: Label
10(a): 9(ptr) Variable Function
17(m23): 16(ptr) Variable Function
20(b): 9(ptr) Variable Function
14: 11(fvec3) Load 13(v3)
18: 15 Load 17(m23)
19: 8(fvec2) VectorTimesMatrix 14 18
Store 10(a) 19
24: 21 Load 23(m32)
25: 11(fvec3) Load 13(v3)
26: 8(fvec2) MatrixTimesVector 24 25
Store 20(b) 26
30: 15 Load 17(m23)
31: 21 Load 23(m32)
33: 32 MatrixTimesMatrix 30 31
34: 11(fvec3) Load 13(v3)
35: 11(fvec3) MatrixTimesVector 33 34
37: 7(float) CompositeExtract 35 0
38: 7(float) CompositeExtract 35 1
39: 7(float) CompositeExtract 35 2
40: 27(fvec4) CompositeConstruct 37 38 39 36
57: 27(fvec4) Load 56(v4)
58: 27(fvec4) MatrixTimesVector 54 57
59: 27(fvec4) FAdd 40 58
65: 27(fvec4) FAdd 59 64
69: 27(fvec4) FAdd 65 68
74: 27(fvec4) FAdd 69 73
Store 29(gl_Position) 74
Branch 6
6: Label
Return
FunctionEnd

View File

@ -0,0 +1,182 @@
spv.precision.frag
Linked fragment stage:
// Module Version 99
// Generated by (magic number): 51a00bb
// Id's are bound by 111
Source GLSL 300
1: ExtInstImport "GLSL.std.450"
MemoryModel Logical GLSL450
EntryPoint Fragment 4
Name 4 "main"
Name 13 "foo(vf3;"
Name 12 "mv3"
Name 20 "boolfun(vb2;"
Name 19 "bv2"
Name 24 "highfin"
Name 37 "sum"
Name 39 "uniform_medium"
Name 41 "uniform_high"
Name 47 "uniform_low"
Name 52 "arg1"
Name 54 "arg2"
Name 56 "d"
Name 58 "lowfin"
Name 60 "mediumfin"
Name 64 "global_highp"
Name 68 "local_highp"
Name 72 "mediumfout"
Name 101 "ub2"
Name 102 "param"
Decorate 24(highfin) PrecisionHigh
Decorate 24(highfin) Smooth
Decorate 37(sum) PrecisionLow
Decorate 39(uniform_medium) PrecisionMedium
Decorate 41(uniform_high) PrecisionHigh
Decorate 47(uniform_low) PrecisionLow
Decorate 52(arg1) PrecisionLow
Decorate 54(arg2) PrecisionMedium
Decorate 56(d) PrecisionLow
Decorate 58(lowfin) PrecisionLow
Decorate 58(lowfin) Smooth
Decorate 60(mediumfin) PrecisionMedium
Decorate 60(mediumfin) Smooth
Decorate 64(global_highp) PrecisionHigh
Decorate 68(local_highp) PrecisionHigh
Decorate 72(mediumfout) PrecisionMedium
2: TypeVoid
3: TypeFunction 2
7: TypeFloat 32
8: TypeVector 7(float) 3
9: TypePointer Function 8(fvec3)
10: TypeVector 7(float) 2
11: TypeFunction 10(fvec2) 9(ptr)
15: TypeBool
16: TypeVector 15(bool) 2
17: TypePointer Function 16(bvec2)
18: TypeFunction 15(bool) 17(ptr)
22: TypeVector 7(float) 4
23: TypePointer Input 22(fvec4)
24(highfin): 23(ptr) Variable Input
29: 15(bool) ConstantFalse
30: 15(bool) ConstantTrue
31: 16(bvec2) ConstantComposite 29 30
35: TypeInt 32 1
36: TypePointer Function 35(int)
38: TypePointer UniformConstant 35(int)
39(uniform_medium): 38(ptr) Variable UniformConstant
41(uniform_high): 38(ptr) Variable UniformConstant
47(uniform_low): 38(ptr) Variable UniformConstant
51: TypePointer Function 7(float)
53: 7(float) Constant 1078774989
55: 7(float) Constant 1232730691
57: TypePointer Input 7(float)
58(lowfin): 57(ptr) Variable Input
60(mediumfin): 57(ptr) Variable Input
63: TypePointer PrivateGlobal 7(float)
64(global_highp): 63(ptr) Variable PrivateGlobal
67: TypePointer Function 22(fvec4)
71: TypePointer Output 22(fvec4)
72(mediumfout): 71(ptr) Variable Output
81: 35(int) Constant 4
83: TypeVector 35(int) 2
100: TypePointer UniformConstant 16(bvec2)
101(ub2): 100(ptr) Variable UniformConstant
108: 7(float) Constant 1065353216
4(main): 2 Function None 3
5: Label
37(sum): 36(ptr) Variable Function
52(arg1): 51(ptr) Variable Function
54(arg2): 51(ptr) Variable Function
56(d): 51(ptr) Variable Function
68(local_highp): 67(ptr) Variable Function
102(param): 17(ptr) Variable Function
40: 35(int) Load 39(uniform_medium)
42: 35(int) Load 41(uniform_high)
43: 35(int) IAdd 40 42
Store 37(sum) 43
44: 35(int) Load 41(uniform_high)
45: 35(int) Load 37(sum)
46: 35(int) IAdd 45 44
Store 37(sum) 46
48: 35(int) Load 47(uniform_low)
49: 35(int) Load 37(sum)
50: 35(int) IAdd 49 48
Store 37(sum) 50
Store 52(arg1) 53
Store 54(arg2) 55
59: 7(float) Load 58(lowfin)
61: 7(float) Load 60(mediumfin)
62: 7(float) ExtInst 1(GLSL.std.450) 59(distance) 59 61
Store 56(d) 62
65: 22(fvec4) Load 24(highfin)
66: 7(float) ExtInst 1(GLSL.std.450) 58(length) 65
Store 64(global_highp) 66
69: 7(float) Load 64(global_highp)
70: 22(fvec4) CompositeConstruct 69 69 69 69
Store 68(local_highp) 70
73: 7(float) Load 56(d)
74: 7(float) ExtInst 1(GLSL.std.450) 10(sin) 73
75: 22(fvec4) CompositeConstruct 74 74 74 74
76: 7(float) Load 54(arg2)
77: 22(fvec4) CompositeConstruct 76 76 76 76
78: 22(fvec4) FAdd 75 77
79: 22(fvec4) Load 68(local_highp)
80: 22(fvec4) FAdd 78 79
Store 72(mediumfout) 80
82: 35(int) Load 47(uniform_low)
84: 83(ivec2) CompositeConstruct 82 82
85: 35(int) Load 41(uniform_high)
86: 83(ivec2) CompositeConstruct 85 85
87: 83(ivec2) IMul 84 86
88: 35(int) Load 41(uniform_high)
89: 83(ivec2) CompositeConstruct 88 88
90: 83(ivec2) IAdd 87 89
91: 35(int) CompositeExtract 90 0
92: 35(int) IAdd 81 91
93: 35(int) Load 37(sum)
94: 35(int) IAdd 93 92
Store 37(sum) 94
95: 35(int) Load 37(sum)
96: 7(float) ConvertSToF 95
97: 22(fvec4) CompositeConstruct 96 96 96 96
98: 22(fvec4) Load 72(mediumfout)
99: 22(fvec4) FAdd 98 97
Store 72(mediumfout) 99
103: 16(bvec2) Load 101(ub2)
Store 102(param) 103
104: 15(bool) FunctionCall 20(boolfun(vb2;) 102(param)
SelectionMerge 106 None
BranchConditional 104 105 106
105: Label
107: 22(fvec4) Load 72(mediumfout)
109: 22(fvec4) CompositeConstruct 108 108 108 108
110: 22(fvec4) FAdd 107 109
Store 72(mediumfout) 110
Branch 106
106: Label
Branch 6
6: Label
Return
FunctionEnd
13(foo(vf3;): 10(fvec2) Function None 11
12(mv3): 9(ptr) FunctionParameter
14: Label
25: 22(fvec4) Load 24(highfin)
26: 10(fvec2) VectorShuffle 25 25 0 1
ReturnValue 26
FunctionEnd
20(boolfun(vb2;): 15(bool) Function None 18
19(bv2): 17(ptr) FunctionParameter
21: Label
28: 16(bvec2) Load 19(bv2)
32: 16(bvec2) IEqual 28 31
33: 15(bool) All 32
ReturnValue 33
FunctionEnd

View File

@ -0,0 +1,153 @@
spv.prepost.frag
Linked fragment stage:
// Module Version 99
// Generated by (magic number): 51a00bb
// Id's are bound by 97
Source GLSL 140
1: ExtInstImport "GLSL.std.450"
MemoryModel Logical GLSL450
EntryPoint Fragment 4
Name 4 "main"
Name 9 "index"
Name 15 "s"
MemberName 15(s) 0 "y"
Name 17 "str"
Name 23 "t"
Name 51 "x"
Name 62 "y"
Name 67 "z"
Name 74 "v"
Name 93 "gl_FragColor"
Decorate 93(gl_FragColor) BuiltIn FragColor
2: TypeVoid
3: TypeFunction 2
7: TypeInt 32 1
8: TypePointer Function 7(int)
10: 7(int) Constant 5
11: TypeFloat 32
12: TypeInt 32 0
13: 12(int) Constant 5
14: TypeArray 11(float) 13
15(s): TypeStruct 14
16: TypePointer Function 15(s)
18: 7(int) Constant 0
19: 7(int) Constant 4
20: 11(float) Constant 1073741824
21: TypePointer Function 11(float)
25: 7(int) Constant 1
29: 11(float) Constant 1065353216
72: TypeVector 11(float) 4
73: TypePointer Function 72(fvec4)
75: 11(float) Constant 1077936128
76: 11(float) Constant 1082130432
77: 72(fvec4) ConstantComposite 29 20 75 76
92: TypePointer Output 72(fvec4)
93(gl_FragColor): 92(ptr) Variable Output
4(main): 2 Function None 3
5: Label
9(index): 8(ptr) Variable Function
17(str): 16(ptr) Variable Function
23(t): 21(ptr) Variable Function
51(x): 21(ptr) Variable Function
62(y): 21(ptr) Variable Function
67(z): 21(ptr) Variable Function
74(v): 73(ptr) Variable Function
Store 9(index) 10
22: 21(ptr) AccessChain 17(str) 18 19
Store 22 20
24: 7(int) Load 9(index)
26: 7(int) ISub 24 25
Store 9(index) 26
27: 21(ptr) AccessChain 17(str) 18 26
28: 11(float) Load 27
30: 11(float) FAdd 28 29
Store 27 30
Store 23(t) 30
31: 11(float) Load 23(t)
32: 21(ptr) AccessChain 17(str) 18 19
33: 11(float) Load 32
34: 11(float) FAdd 33 31
35: 21(ptr) AccessChain 17(str) 18 19
Store 35 34
36: 21(ptr) AccessChain 17(str) 18 19
37: 11(float) Load 36
38: 11(float) FSub 37 29
Store 36 38
Store 23(t) 37
39: 7(int) Load 9(index)
40: 7(int) IAdd 39 25
Store 9(index) 40
41: 11(float) Load 23(t)
42: 21(ptr) AccessChain 17(str) 18 39
43: 11(float) Load 42
44: 11(float) FAdd 43 41
45: 21(ptr) AccessChain 17(str) 18 39
Store 45 44
46: 7(int) Load 9(index)
47: 7(int) ISub 46 25
Store 9(index) 47
48: 21(ptr) AccessChain 17(str) 18 47
49: 11(float) Load 48
50: 11(float) FSub 49 29
Store 48 50
52: 21(ptr) AccessChain 17(str) 18 19
53: 11(float) Load 52
Store 51(x) 53
54: 11(float) Load 51(x)
55: 11(float) FAdd 54 29
Store 51(x) 55
56: 11(float) Load 51(x)
57: 11(float) FSub 56 29
Store 51(x) 57
58: 11(float) Load 51(x)
59: 11(float) FAdd 58 29
Store 51(x) 59
60: 11(float) Load 51(x)
61: 11(float) FSub 60 29
Store 51(x) 61
63: 11(float) Load 51(x)
64: 11(float) Load 51(x)
65: 11(float) FAdd 64 29
Store 51(x) 65
66: 11(float) FMul 63 65
Store 62(y) 66
68: 11(float) Load 62(y)
69: 11(float) Load 51(x)
70: 11(float) FSub 69 29
Store 51(x) 70
71: 11(float) FMul 68 69
Store 67(z) 71
Store 74(v) 77
78: 72(fvec4) Load 74(v)
79: 11(float) CompositeExtract 78 2
80: 11(float) FSub 79 29
81: 72(fvec4) Load 74(v)
82: 72(fvec4) CompositeInsert 80 81 2
Store 74(v) 82
83: 72(fvec4) Load 74(v)
84: 72(fvec4) CompositeInsert 79 83 1
Store 74(v) 84
85: 72(fvec4) Load 74(v)
86: 11(float) CompositeExtract 85 3
87: 11(float) FSub 86 29
88: 72(fvec4) Load 74(v)
89: 72(fvec4) CompositeInsert 87 88 3
Store 74(v) 89
90: 72(fvec4) Load 74(v)
91: 72(fvec4) CompositeInsert 87 90 0
Store 74(v) 91
94: 11(float) Load 67(z)
95: 72(fvec4) Load 74(v)
96: 72(fvec4) VectorTimesScalar 94 95
Store 93(gl_FragColor) 96
Branch 6
6: Label
Return
FunctionEnd

View File

@ -0,0 +1,67 @@
spv.qualifiers.vert
Warning, version 430 is not yet complete; most version-specific features are present, but some are missing.
Linked vertex stage:
// Module Version 99
// Generated by (magic number): 51a00bb
// Id's are bound by 26
Source GLSL 430
1: ExtInstImport "GLSL.std.450"
MemoryModel Logical GLSL450
EntryPoint Vertex 4
Name 4 "main"
Name 10 "outVc"
Name 12 "inV"
Name 14 "outVs"
Name 16 "outVf"
Name 18 "outVn"
Name 20 "outVcn"
Name 24 "gl_VertexID"
Name 25 "gl_InstanceID"
Decorate 10(outVc) Smooth
Decorate 14(outVs) Smooth
Decorate 16(outVf) Flat
Decorate 18(outVn) Noperspective
Decorate 20(outVcn) Noperspective
Decorate 24(gl_VertexID) BuiltIn VertexId
Decorate 24(gl_VertexID) NoStaticUse
Decorate 25(gl_InstanceID) BuiltIn InstanceId
Decorate 25(gl_InstanceID) NoStaticUse
2: TypeVoid
3: TypeFunction 2
7: TypeFloat 32
8: TypeVector 7(float) 4
9: TypePointer Output 8(fvec4)
10(outVc): 9(ptr) Variable Output
11: TypePointer Input 8(fvec4)
12(inV): 11(ptr) Variable Input
14(outVs): 9(ptr) Variable Output
16(outVf): 9(ptr) Variable Output
18(outVn): 9(ptr) Variable Output
20(outVcn): 9(ptr) Variable Output
22: TypeInt 32 1
23: TypePointer Input 22(int)
24(gl_VertexID): 23(ptr) Variable Input
25(gl_InstanceID): 23(ptr) Variable Input
4(main): 2 Function None 3
5: Label
13: 8(fvec4) Load 12(inV)
Store 10(outVc) 13
15: 8(fvec4) Load 12(inV)
Store 14(outVs) 15
17: 8(fvec4) Load 12(inV)
Store 16(outVf) 17
19: 8(fvec4) Load 12(inV)
Store 18(outVn) 19
21: 8(fvec4) Load 12(inV)
Store 20(outVcn) 21
Branch 6
6: Label
Return
FunctionEnd

View File

@ -0,0 +1,64 @@
spv.set.vert
Warning, version 450 is not yet complete; most version-specific features are present, but some are missing.
Linked vertex stage:
// Module Version 99
// Generated by (magic number): 51a00bb
// Id's are bound by 25
Source GLSL 450
1: ExtInstImport "GLSL.std.450"
MemoryModel Logical GLSL450
EntryPoint Vertex 4
Name 4 "main"
Name 10 "color"
Name 11 "setBuf"
MemberName 11(setBuf) 0 "color"
Name 13 "setBufInst"
Name 21 "sampler"
Name 23 "gl_VertexID"
Name 24 "gl_InstanceID"
Decorate 10(color) Smooth
Decorate 11(setBuf) GLSLShared
Decorate 11(setBuf) BufferBlock
Decorate 13(setBufInst) DescriptorSet 0
Decorate 13(setBufInst) Binding 8
Decorate 21(sampler) DescriptorSet 4
Decorate 21(sampler) Binding 7
Decorate 21(sampler) NoStaticUse
Decorate 23(gl_VertexID) BuiltIn VertexId
Decorate 23(gl_VertexID) NoStaticUse
Decorate 24(gl_InstanceID) BuiltIn InstanceId
Decorate 24(gl_InstanceID) NoStaticUse
2: TypeVoid
3: TypeFunction 2
7: TypeFloat 32
8: TypeVector 7(float) 4
9: TypePointer Output 8(fvec4)
10(color): 9(ptr) Variable Output
11(setBuf): TypeStruct 8(fvec4)
12: TypePointer Uniform 11(setBuf)
13(setBufInst): 12(ptr) Variable Uniform
14: TypeInt 32 1
15: 14(int) Constant 0
16: TypePointer Uniform 8(fvec4)
19: TypeSampler7(float) 2D filter+texture
20: TypePointer UniformConstant 19
21(sampler): 20(ptr) Variable UniformConstant
22: TypePointer Input 14(int)
23(gl_VertexID): 22(ptr) Variable Input
24(gl_InstanceID): 22(ptr) Variable Input
4(main): 2 Function None 3
5: Label
17: 16(ptr) AccessChain 13(setBufInst) 15
18: 8(fvec4) Load 17
Store 10(color) 18
Branch 6
6: Label
Return
FunctionEnd

View File

@ -0,0 +1,53 @@
spv.simpleFunctionCall.frag
WARNING: 0:4: varying deprecated in version 130; may be removed in future release
Linked fragment stage:
// Module Version 99
// Generated by (magic number): 51a00bb
// Id's are bound by 23
Source GLSL 150
1: ExtInstImport "GLSL.std.450"
MemoryModel Logical GLSL450
EntryPoint Fragment 4
Name 4 "main"
Name 10 "foo("
Name 13 "BaseColor"
Name 17 "gl_FragColor"
Name 20 "bigColor"
Name 22 "d"
Decorate 13(BaseColor) Smooth
Decorate 17(gl_FragColor) BuiltIn FragColor
Decorate 20(bigColor) NoStaticUse
Decorate 22(d) NoStaticUse
2: TypeVoid
3: TypeFunction 2
7: TypeFloat 32
8: TypeVector 7(float) 4
9: TypeFunction 8(fvec4)
12: TypePointer Input 8(fvec4)
13(BaseColor): 12(ptr) Variable Input
16: TypePointer Output 8(fvec4)
17(gl_FragColor): 16(ptr) Variable Output
19: TypePointer UniformConstant 8(fvec4)
20(bigColor): 19(ptr) Variable UniformConstant
21: TypePointer UniformConstant 7(float)
22(d): 21(ptr) Variable UniformConstant
4(main): 2 Function None 3
5: Label
18: 8(fvec4) FunctionCall 10(foo()
Store 17(gl_FragColor) 18
Branch 6
6: Label
Return
FunctionEnd
10(foo(): 8(fvec4) Function None 9
11: Label
14: 8(fvec4) Load 13(BaseColor)
ReturnValue 14
FunctionEnd

View File

@ -0,0 +1,78 @@
spv.simpleMat.vert
Linked vertex stage:
// Module Version 99
// Generated by (magic number): 51a00bb
// Id's are bound by 44
Source GLSL 330
1: ExtInstImport "GLSL.std.450"
MemoryModel Logical GLSL450
EntryPoint Vertex 4
Name 4 "main"
Name 10 "glPos"
Name 13 "mvp"
Name 16 "v"
Name 20 "f"
Name 24 "am3"
Name 35 "arraym"
Name 42 "gl_VertexID"
Name 43 "gl_InstanceID"
Decorate 10(glPos) Smooth
Decorate 20(f) Smooth
Decorate 42(gl_VertexID) BuiltIn VertexId
Decorate 42(gl_VertexID) NoStaticUse
Decorate 43(gl_InstanceID) BuiltIn InstanceId
Decorate 43(gl_InstanceID) NoStaticUse
2: TypeVoid
3: TypeFunction 2
7: TypeFloat 32
8: TypeVector 7(float) 4
9: TypePointer Output 8(fvec4)
10(glPos): 9(ptr) Variable Output
11: TypeMatrix 8(fvec4) 4
12: TypePointer UniformConstant 11
13(mvp): 12(ptr) Variable UniformConstant
15: TypePointer Input 8(fvec4)
16(v): 15(ptr) Variable Input
19: TypePointer Output 7(float)
20(f): 19(ptr) Variable Output
21: TypeVector 7(float) 3
22: TypeMatrix 21(fvec3) 3
23: TypePointer Input 22
24(am3): 23(ptr) Variable Input
25: TypeInt 32 1
26: 25(int) Constant 2
27: TypePointer Input 21(fvec3)
31: TypeInt 32 0
32: 31(int) Constant 3
33: TypeArray 11 32
34: TypePointer Input 33
35(arraym): 34(ptr) Variable Input
36: 25(int) Constant 1
41: TypePointer Input 25(int)
42(gl_VertexID): 41(ptr) Variable Input
43(gl_InstanceID): 41(ptr) Variable Input
4(main): 2 Function None 3
5: Label
14: 11 Load 13(mvp)
17: 8(fvec4) Load 16(v)
18: 8(fvec4) MatrixTimesVector 14 17
Store 10(glPos) 18
28: 27(ptr) AccessChain 24(am3) 26
29: 21(fvec3) Load 28
30: 7(float) CompositeExtract 29 1
37: 15(ptr) AccessChain 35(arraym) 36 26
38: 8(fvec4) Load 37
39: 7(float) CompositeExtract 38 3
40: 7(float) FAdd 30 39
Store 20(f) 40
Branch 6
6: Label
Return
FunctionEnd

View File

@ -0,0 +1,98 @@
spv.structAssignment.frag
WARNING: 0:4: varying deprecated in version 130; may be removed in future release
Linked fragment stage:
// Module Version 99
// Generated by (magic number): 51a00bb
// Id's are bound by 50
Source GLSL 130
1: ExtInstImport "GLSL.std.450"
MemoryModel Logical GLSL450
EntryPoint Fragment 4
Name 4 "main"
Name 9 "lunarStruct1"
MemberName 9(lunarStruct1) 0 "i"
MemberName 9(lunarStruct1) 1 "f"
Name 10 "lunarStruct2"
MemberName 10(lunarStruct2) 0 "i"
MemberName 10(lunarStruct2) 1 "f"
MemberName 10(lunarStruct2) 2 "s1_1"
Name 11 "lunarStruct3"
MemberName 11(lunarStruct3) 0 "s2_1"
MemberName 11(lunarStruct3) 1 "i"
MemberName 11(lunarStruct3) 2 "f"
MemberName 11(lunarStruct3) 3 "s1_1"
Name 13 "foo3"
Name 23 "locals2"
Name 28 "foo2"
Name 32 "gl_FragColor"
Name 40 "sampler"
Name 44 "coord"
Name 49 "foo"
Decorate 32(gl_FragColor) BuiltIn FragColor
Decorate 44(coord) Smooth
Decorate 49(foo) NoStaticUse
2: TypeVoid
3: TypeFunction 2
7: TypeInt 32 1
8: TypeFloat 32
9(lunarStruct1): TypeStruct 7(int) 8(float)
10(lunarStruct2): TypeStruct 7(int) 8(float) 9(lunarStruct1)
11(lunarStruct3): TypeStruct 10(lunarStruct2) 7(int) 8(float) 9(lunarStruct1)
12: TypePointer UniformConstant 11(lunarStruct3)
13(foo3): 12(ptr) Variable UniformConstant
14: 7(int) Constant 0
15: TypePointer UniformConstant 7(int)
18: TypeBool
22: TypePointer Function 10(lunarStruct2)
24: TypePointer UniformConstant 10(lunarStruct2)
28(foo2): 24(ptr) Variable UniformConstant
30: TypeVector 8(float) 4
31: TypePointer Output 30(fvec4)
32(gl_FragColor): 31(ptr) Variable Output
33: 7(int) Constant 2
34: 7(int) Constant 1
35: TypePointer Function 8(float)
38: TypeSampler8(float) 2D filter+texture
39: TypePointer UniformConstant 38
40(sampler): 39(ptr) Variable UniformConstant
42: TypeVector 8(float) 2
43: TypePointer Input 42(fvec2)
44(coord): 43(ptr) Variable Input
48: TypePointer UniformConstant 9(lunarStruct1)
49(foo): 48(ptr) Variable UniformConstant
4(main): 2 Function None 3
5: Label
23(locals2): 22(ptr) Variable Function
16: 15(ptr) AccessChain 13(foo3) 14 14
17: 7(int) Load 16
19: 18(bool) SGreaterThan 17 14
SelectionMerge 21 None
BranchConditional 19 20 27
20: Label
25: 24(ptr) AccessChain 13(foo3) 14
26:10(lunarStruct2) Load 25
Store 23(locals2) 26
Branch 21
27: Label
29:10(lunarStruct2) Load 28(foo2)
Store 23(locals2) 29
Branch 21
21: Label
36: 35(ptr) AccessChain 23(locals2) 33 34
37: 8(float) Load 36
41: 38 Load 40(sampler)
45: 42(fvec2) Load 44(coord)
46: 30(fvec4) TextureSample 41 45
47: 30(fvec4) VectorTimesScalar 37 46
Store 32(gl_FragColor) 47
Branch 6
6: Label
Return
FunctionEnd

View File

@ -0,0 +1,193 @@
spv.structDeref.frag
WARNING: 0:4: varying deprecated in version 130; may be removed in future release
Linked fragment stage:
// Module Version 99
// Generated by (magic number): 51a00bb
// Id's are bound by 120
Source GLSL 130
1: ExtInstImport "GLSL.std.450"
MemoryModel Logical GLSL450
EntryPoint Fragment 4
Name 4 "main"
Name 9 "s0"
MemberName 9(s0) 0 "i"
Name 10 "s1"
MemberName 10(s1) 0 "i"
MemberName 10(s1) 1 "f"
MemberName 10(s1) 2 "s0_1"
Name 11 "s2"
MemberName 11(s2) 0 "i"
MemberName 11(s2) 1 "f"
MemberName 11(s2) 2 "s1_1"
Name 15 "s3"
MemberName 15(s3) 0 "s2_1"
MemberName 15(s3) 1 "i"
MemberName 15(s3) 2 "f"
MemberName 15(s3) 3 "s1_1"
Name 17 "foo3"
Name 28 "locals2"
Name 41 "fArray"
Name 47 "locals1Array"
Name 50 "foo1"
Name 54 "locals0"
Name 55 "s00"
MemberName 55(s00) 0 "s0_0"
Name 57 "locals00"
Name 62 "coord"
Name 69 "foo0"
Name 84 "foo00"
Name 97 "gl_FragColor"
Name 113 "sampler"
Name 119 "foo2"
Decorate 62(coord) Smooth
Decorate 97(gl_FragColor) BuiltIn FragColor
Decorate 119(foo2) NoStaticUse
2: TypeVoid
3: TypeFunction 2
7: TypeInt 32 1
8: TypeFloat 32
9(s0): TypeStruct 7(int)
10(s1): TypeStruct 7(int) 8(float) 9(s0)
11(s2): TypeStruct 7(int) 8(float) 10(s1)
12: TypeInt 32 0
13: 12(int) Constant 12
14: TypeArray 11(s2) 13
15(s3): TypeStruct 14 7(int) 8(float) 10(s1)
16: TypePointer UniformConstant 15(s3)
17(foo3): 16(ptr) Variable UniformConstant
18: 7(int) Constant 0
19: 7(int) Constant 9
20: TypePointer UniformConstant 7(int)
23: TypeBool
27: TypePointer Function 11(s2)
29: 7(int) Constant 1
30: 8(float) Constant 1065353216
31: TypePointer Function 8(float)
33: 7(int) Constant 2
34: 9(s0) ConstantComposite 18
35: 10(s1) ConstantComposite 18 30 34
36: TypePointer Function 10(s1)
38: 12(int) Constant 6
39: TypeArray 8(float) 38
40: TypePointer Function 39
42: 8(float) Constant 0
43: 39 ConstantComposite 42 42 42 42 42 42
44: 12(int) Constant 10
45: TypeArray 10(s1) 44
46: TypePointer Function 45
48: 7(int) Constant 6
49: TypePointer UniformConstant 10(s1)
50(foo1): 49(ptr) Variable UniformConstant
53: TypePointer Function 9(s0)
55(s00): TypeStruct 9(s0)
56: TypePointer Function 55(s00)
58: 55(s00) ConstantComposite 34
60: TypeVector 8(float) 2
61: TypePointer Input 60(fvec2)
62(coord): 61(ptr) Variable Input
68: TypePointer UniformConstant 9(s0)
69(foo0): 68(ptr) Variable UniformConstant
73: 8(float) Constant 1073741824
74: 8(float) Constant 1077936128
75: 8(float) Constant 1082130432
76: 8(float) Constant 1084227584
77: 39 ConstantComposite 42 30 73 74 75 76
83: TypePointer UniformConstant 55(s00)
84(foo00): 83(ptr) Variable UniformConstant
86: TypePointer Function 7(int)
89: 7(int) Constant 5
95: TypeVector 8(float) 4
96: TypePointer Output 95(fvec4)
97(gl_FragColor): 96(ptr) Variable Output
104: 7(int) Constant 3
111: TypeSampler8(float) 2D filter+texture
112: TypePointer UniformConstant 111
113(sampler): 112(ptr) Variable UniformConstant
118: TypePointer UniformConstant 11(s2)
119(foo2): 118(ptr) Variable UniformConstant
4(main): 2 Function None 3
5: Label
28(locals2): 27(ptr) Variable Function
41(fArray): 40(ptr) Variable Function
47(locals1Array): 46(ptr) Variable Function
54(locals0): 53(ptr) Variable Function
57(locals00): 56(ptr) Variable Function
21: 20(ptr) AccessChain 17(foo3) 18 19 18
22: 7(int) Load 21
24: 23(bool) SGreaterThan 22 18
SelectionMerge 26 None
BranchConditional 24 25 59
25: Label
32: 31(ptr) AccessChain 28(locals2) 29
Store 32 30
37: 36(ptr) AccessChain 28(locals2) 33
Store 37 35
Store 41(fArray) 43
51: 10(s1) Load 50(foo1)
52: 36(ptr) AccessChain 47(locals1Array) 48
Store 52 51
Store 54(locals0) 34
Store 57(locals00) 58
Branch 26
59: Label
63: 60(fvec2) Load 62(coord)
64: 8(float) CompositeExtract 63 0
65: 31(ptr) AccessChain 28(locals2) 29
Store 65 64
66: 60(fvec2) Load 62(coord)
67: 8(float) CompositeExtract 66 1
70: 9(s0) Load 69(foo0)
71: 10(s1) CompositeConstruct 29 67 70
72: 36(ptr) AccessChain 28(locals2) 33
Store 72 71
Store 41(fArray) 77
78: 36(ptr) AccessChain 28(locals2) 33
79: 10(s1) Load 78
80: 36(ptr) AccessChain 47(locals1Array) 48
Store 80 79
81: 68(ptr) AccessChain 50(foo1) 33
82: 9(s0) Load 81
Store 54(locals0) 82
85: 55(s00) Load 84(foo00)
Store 57(locals00) 85
Branch 26
26: Label
87: 86(ptr) AccessChain 54(locals0) 18
88: 7(int) Load 87
90: 23(bool) SGreaterThan 88 89
SelectionMerge 92 None
BranchConditional 90 91 92
91: Label
93: 53(ptr) AccessChain 57(locals00) 18
94: 9(s0) Load 93
Store 54(locals0) 94
Branch 92
92: Label
98: 86(ptr) AccessChain 54(locals0) 18
99: 7(int) Load 98
100: 8(float) ConvertSToF 99
101: 31(ptr) AccessChain 47(locals1Array) 48 29
102: 8(float) Load 101
103: 8(float) FAdd 100 102
105: 31(ptr) AccessChain 41(fArray) 104
106: 8(float) Load 105
107: 8(float) FAdd 103 106
108: 31(ptr) AccessChain 28(locals2) 33 29
109: 8(float) Load 108
110: 8(float) FAdd 107 109
114: 111 Load 113(sampler)
115: 60(fvec2) Load 62(coord)
116: 95(fvec4) TextureSample 114 115
117: 95(fvec4) VectorTimesScalar 110 116
Store 97(gl_FragColor) 117
Branch 6
6: Label
Return
FunctionEnd

View File

@ -0,0 +1,105 @@
spv.structure.frag
WARNING: 0:3: varying deprecated in version 130; may be removed in future release
Linked fragment stage:
// Module Version 99
// Generated by (magic number): 51a00bb
// Id's are bound by 61
Source GLSL 130
1: ExtInstImport "GLSL.std.450"
MemoryModel Logical GLSL450
EntryPoint Fragment 4
Name 4 "main"
Name 9 "scale"
Name 19 "lunarStruct1"
MemberName 19(lunarStruct1) 0 "i"
MemberName 19(lunarStruct1) 1 "f"
MemberName 19(lunarStruct1) 2 "color"
Name 22 "lunarStruct2"
MemberName 22(lunarStruct2) 0 "i"
MemberName 22(lunarStruct2) 1 "f"
MemberName 22(lunarStruct2) 2 "s1_1"
Name 25 "foo2"
Name 47 "gl_FragColor"
Name 51 "sampler"
Name 55 "coord"
Name 60 "foo"
Decorate 47(gl_FragColor) BuiltIn FragColor
Decorate 55(coord) Smooth
Decorate 60(foo) NoStaticUse
2: TypeVoid
3: TypeFunction 2
7: TypeFloat 32
8: TypePointer Function 7(float)
10: 7(float) Constant 0
11: TypeInt 32 1
12: TypeInt 32 0
13: 12(int) Constant 5
14: TypeArray 11(int) 13
15: 12(int) Constant 4
16: TypeArray 7(float) 15
17: TypeVector 7(float) 4
18: TypeArray 17(fvec4) 13
19(lunarStruct1): TypeStruct 11(int) 16 18
20: 12(int) Constant 7
21: TypeArray 19(lunarStruct1) 20
22(lunarStruct2): TypeStruct 14 7(float) 21
23: TypeArray 22(lunarStruct2) 13
24: TypePointer UniformConstant 23
25(foo2): 24(ptr) Variable UniformConstant
26: 11(int) Constant 3
27: 11(int) Constant 0
28: 11(int) Constant 4
29: TypePointer UniformConstant 11(int)
32: TypeBool
36: 11(int) Constant 2
37: TypePointer UniformConstant 17(fvec4)
42: 11(int) Constant 1
43: TypePointer UniformConstant 7(float)
46: TypePointer Output 17(fvec4)
47(gl_FragColor): 46(ptr) Variable Output
49: TypeSampler7(float) 2D filter+texture
50: TypePointer UniformConstant 49
51(sampler): 50(ptr) Variable UniformConstant
53: TypeVector 7(float) 2
54: TypePointer Input 53(fvec2)
55(coord): 54(ptr) Variable Input
59: TypePointer UniformConstant 19(lunarStruct1)
60(foo): 59(ptr) Variable UniformConstant
4(main): 2 Function None 3
5: Label
9(scale): 8(ptr) Variable Function
Store 9(scale) 10
30: 29(ptr) AccessChain 25(foo2) 26 27 28
31: 11(int) Load 30
33: 32(bool) SGreaterThan 31 27
SelectionMerge 35 None
BranchConditional 33 34 41
34: Label
38: 37(ptr) AccessChain 25(foo2) 26 36 36 36 26
39: 17(fvec4) Load 38
40: 7(float) CompositeExtract 39 0
Store 9(scale) 40
Branch 35
41: Label
44: 43(ptr) AccessChain 25(foo2) 26 36 36 42 26
45: 7(float) Load 44
Store 9(scale) 45
Branch 35
35: Label
48: 7(float) Load 9(scale)
52: 49 Load 51(sampler)
56: 53(fvec2) Load 55(coord)
57: 17(fvec4) TextureSample 52 56
58: 17(fvec4) VectorTimesScalar 48 57
Store 47(gl_FragColor) 58
Branch 6
6: Label
Return
FunctionEnd

View File

@ -0,0 +1,382 @@
spv.switch.frag
WARNING: 0:121: 'switch' : last case/default label not followed by statements
Linked fragment stage:
// Module Version 99
// Generated by (magic number): 51a00bb
// Id's are bound by 249
Source GLSL 300
1: ExtInstImport "GLSL.std.450"
MemoryModel Logical GLSL450
EntryPoint Fragment 4
Name 4 "main"
Name 16 "foo1(vf4;vf4;i1;"
Name 13 "v1"
Name 14 "v2"
Name 15 "i1"
Name 21 "foo2(vf4;vf4;i1;"
Name 18 "v1"
Name 19 "v2"
Name 20 "i1"
Name 59 "local"
Name 61 "c"
Name 72 "f"
Name 74 "x"
Name 128 "d"
Name 154 "i"
Name 172 "j"
Name 222 "color"
Name 228 "v"
Name 229 "param"
Name 231 "param"
Name 233 "param"
Name 239 "param"
Name 241 "param"
Name 243 "param"
Decorate 59(local) PrecisionMedium
Decorate 61(c) PrecisionMedium
Decorate 72(f) PrecisionMedium
Decorate 74(x) PrecisionMedium
Decorate 74(x) Smooth
Decorate 128(d) PrecisionMedium
Decorate 154(i) PrecisionMedium
Decorate 172(j) PrecisionMedium
Decorate 222(color) PrecisionMedium
Decorate 228(v) PrecisionMedium
2: TypeVoid
3: TypeFunction 2
7: TypeFloat 32
8: TypeVector 7(float) 4
9: TypePointer Function 8(fvec4)
10: TypeInt 32 1
11: TypePointer Function 10(int)
12: TypeFunction 8(fvec4) 9(ptr) 9(ptr) 11(ptr)
37: 7(float) Constant 0
38: 8(fvec4) ConstantComposite 37 37 37 37
48: 7(float) Constant 1065353216
49: 8(fvec4) ConstantComposite 48 48 48 48
60: TypePointer UniformConstant 10(int)
61(c): 60(ptr) Variable UniformConstant
64: 10(int) Constant 1
71: TypePointer Function 7(float)
73: TypePointer Input 7(float)
74(x): 73(ptr) Variable Input
128(d): 60(ptr) Variable UniformConstant
155: 10(int) Constant 0
159: 10(int) Constant 10
160: TypeBool
173: 10(int) Constant 20
177: 10(int) Constant 30
183: 7(float) Constant 1120429670
203: 7(float) Constant 1079739679
221: TypePointer Output 7(float)
222(color): 221(ptr) Variable Output
227: TypePointer UniformConstant 8(fvec4)
228(v): 227(ptr) Variable UniformConstant
4(main): 2 Function None 3
5: Label
59(local): 11(ptr) Variable Function
72(f): 71(ptr) Variable Function
154(i): 11(ptr) Variable Function
172(j): 11(ptr) Variable Function
229(param): 9(ptr) Variable Function
231(param): 9(ptr) Variable Function
233(param): 11(ptr) Variable Function
239(param): 9(ptr) Variable Function
241(param): 9(ptr) Variable Function
243(param): 11(ptr) Variable Function
62: 10(int) Load 61(c)
Store 59(local) 62
63: 10(int) Load 59(local)
65: 10(int) IAdd 63 64
Store 59(local) 65
66: 10(int) Load 61(c)
SelectionMerge 70 None
Switch 66 69
case 1: 67
case 2: 68
67: Label
75: 7(float) Load 74(x)
76: 7(float) ExtInst 1(GLSL.std.450) 10(sin) 75
Store 72(f) 76
Branch 70
68: Label
78: 7(float) Load 74(x)
79: 7(float) ExtInst 1(GLSL.std.450) 11(cos) 78
Store 72(f) 79
Branch 70
69: Label
81: 7(float) Load 74(x)
82: 7(float) ExtInst 1(GLSL.std.450) 12(tan) 81
Store 72(f) 82
Branch 70
70: Label
84: 10(int) Load 61(c)
SelectionMerge 88 None
Switch 84 87
case 1: 85
case 2: 86
85: Label
89: 7(float) Load 74(x)
90: 7(float) ExtInst 1(GLSL.std.450) 10(sin) 89
91: 7(float) Load 72(f)
92: 7(float) FAdd 91 90
Store 72(f) 92
Branch 86
86: Label
93: 7(float) Load 74(x)
94: 7(float) ExtInst 1(GLSL.std.450) 11(cos) 93
95: 7(float) Load 72(f)
96: 7(float) FAdd 95 94
Store 72(f) 96
Branch 88
87: Label
98: 7(float) Load 74(x)
99: 7(float) ExtInst 1(GLSL.std.450) 12(tan) 98
100: 7(float) Load 72(f)
101: 7(float) FAdd 100 99
Store 72(f) 101
Branch 88
88: Label
103: 10(int) Load 61(c)
SelectionMerge 106 None
Switch 103 106
case 1: 104
case 2: 105
104: Label
107: 7(float) Load 74(x)
108: 7(float) ExtInst 1(GLSL.std.450) 10(sin) 107
109: 7(float) Load 72(f)
110: 7(float) FAdd 109 108
Store 72(f) 110
Branch 106
105: Label
112: 7(float) Load 74(x)
113: 7(float) ExtInst 1(GLSL.std.450) 11(cos) 112
114: 7(float) Load 72(f)
115: 7(float) FAdd 114 113
Store 72(f) 115
Branch 106
106: Label
118: 10(int) Load 61(c)
SelectionMerge 122 None
Switch 118 121
case 1: 119
case 2: 120
119: Label
123: 7(float) Load 74(x)
124: 7(float) ExtInst 1(GLSL.std.450) 10(sin) 123
125: 7(float) Load 72(f)
126: 7(float) FAdd 125 124
Store 72(f) 126
Branch 122
120: Label
129: 10(int) Load 128(d)
SelectionMerge 132 None
Switch 129 132
case 1: 130
case 2: 131
130: Label
133: 7(float) Load 74(x)
134: 7(float) Load 74(x)
135: 7(float) FMul 133 134
136: 7(float) Load 74(x)
137: 7(float) FMul 135 136
138: 7(float) Load 72(f)
139: 7(float) FAdd 138 137
Store 72(f) 139
Branch 132
131: Label
141: 7(float) Load 74(x)
142: 7(float) Load 74(x)
143: 7(float) FMul 141 142
144: 7(float) Load 72(f)
145: 7(float) FAdd 144 143
Store 72(f) 145
Branch 132
132: Label
Branch 122
121: Label
149: 7(float) Load 74(x)
150: 7(float) ExtInst 1(GLSL.std.450) 12(tan) 149
151: 7(float) Load 72(f)
152: 7(float) FAdd 151 150
Store 72(f) 152
Branch 122
122: Label
Store 154(i) 155
Branch 156
156: Label
158: 10(int) Load 154(i)
161: 160(bool) SLessThan 158 159
LoopMerge 157 None
BranchConditional 161 162 157
162: Label
163: 10(int) Load 61(c)
SelectionMerge 167 None
Switch 163 166
case 1: 164
case 2: 165
164: Label
168: 7(float) Load 74(x)
169: 7(float) ExtInst 1(GLSL.std.450) 10(sin) 168
170: 7(float) Load 72(f)
171: 7(float) FAdd 170 169
Store 72(f) 171
Store 172(j) 173
Branch 174
174: Label
176: 10(int) Load 172(j)
178: 160(bool) SLessThan 176 177
LoopMerge 175 None
BranchConditional 178 179 175
179: Label
180: 7(float) Load 72(f)
181: 7(float) FAdd 180 48
Store 72(f) 181
182: 7(float) Load 72(f)
184: 160(bool) FOrdLessThan 182 183
SelectionMerge 186 None
BranchConditional 184 185 186
185: Label
Branch 175
186: Label
188: 10(int) Load 172(j)
189: 10(int) IAdd 188 64
Store 172(j) 189
Branch 174
175: Label
Branch 167
165: Label
191: 7(float) Load 74(x)
192: 7(float) ExtInst 1(GLSL.std.450) 11(cos) 191
193: 7(float) Load 72(f)
194: 7(float) FAdd 193 192
Store 72(f) 194
Branch 167
166: Label
197: 7(float) Load 74(x)
198: 7(float) ExtInst 1(GLSL.std.450) 12(tan) 197
199: 7(float) Load 72(f)
200: 7(float) FAdd 199 198
Store 72(f) 200
Branch 167
167: Label
202: 7(float) Load 72(f)
204: 160(bool) FOrdLessThan 202 203
SelectionMerge 206 None
BranchConditional 204 205 206
205: Label
Branch 157
206: Label
208: 10(int) Load 154(i)
209: 10(int) IAdd 208 64
Store 154(i) 209
Branch 156
157: Label
210: 10(int) Load 61(c)
SelectionMerge 213 None
Switch 210 213
case 1: 211
case 2: 212
211: Label
214: 7(float) Load 74(x)
215: 7(float) ExtInst 1(GLSL.std.450) 10(sin) 214
216: 7(float) Load 72(f)
217: 7(float) FAdd 216 215
Store 72(f) 217
Branch 213
212: Label
Branch 213
213: Label
223: 7(float) Load 72(f)
224: 10(int) Load 59(local)
225: 7(float) ConvertSToF 224
226: 7(float) FAdd 223 225
Store 222(color) 226
230: 8(fvec4) Load 228(v)
Store 229(param) 230
232: 8(fvec4) Load 228(v)
Store 231(param) 232
234: 10(int) Load 61(c)
Store 233(param) 234
235: 8(fvec4) FunctionCall 16(foo1(vf4;vf4;i1;) 229(param) 231(param) 233(param)
236: 7(float) CompositeExtract 235 1
237: 7(float) Load 222(color)
238: 7(float) FAdd 237 236
Store 222(color) 238
240: 8(fvec4) Load 228(v)
Store 239(param) 240
242: 8(fvec4) Load 228(v)
Store 241(param) 242
244: 10(int) Load 61(c)
Store 243(param) 244
245: 8(fvec4) FunctionCall 21(foo2(vf4;vf4;i1;) 239(param) 241(param) 243(param)
246: 7(float) CompositeExtract 245 2
247: 7(float) Load 222(color)
248: 7(float) FAdd 247 246
Store 222(color) 248
Branch 6
6: Label
Return
FunctionEnd
16(foo1(vf4;vf4;i1;): 8(fvec4) Function None 12
13(v1): 9(ptr) FunctionParameter
14(v2): 9(ptr) FunctionParameter
15(i1): 11(ptr) FunctionParameter
17: Label
23: 10(int) Load 15(i1)
SelectionMerge 27 None
Switch 23 27
case 0: 24
case 2: 25
case 1: 25
case 3: 26
24: Label
28: 8(fvec4) Load 13(v1)
ReturnValue 28
25: Label
30: 8(fvec4) Load 14(v2)
ReturnValue 30
26: Label
32: 8(fvec4) Load 13(v1)
33: 8(fvec4) Load 14(v2)
34: 8(fvec4) FMul 32 33
ReturnValue 34
27: Label
ReturnValue 38
FunctionEnd
21(foo2(vf4;vf4;i1;): 8(fvec4) Function None 12
18(v1): 9(ptr) FunctionParameter
19(v2): 9(ptr) FunctionParameter
20(i1): 11(ptr) FunctionParameter
22: Label
40: 10(int) Load 20(i1)
SelectionMerge 45 None
Switch 40 45
case 0: 41
case 2: 42
case 1: 43
case 3: 44
41: Label
46: 8(fvec4) Load 18(v1)
ReturnValue 46
42: Label
ReturnValue 49
43: Label
51: 8(fvec4) Load 19(v2)
ReturnValue 51
44: Label
53: 8(fvec4) Load 18(v1)
54: 8(fvec4) Load 19(v2)
55: 8(fvec4) FMul 53 54
ReturnValue 55
45: Label
ReturnValue 38
FunctionEnd

View File

@ -0,0 +1,179 @@
spv.swizzle.frag
Linked fragment stage:
// Module Version 99
// Generated by (magic number): 51a00bb
// Id's are bound by 112
Source GLSL 110
1: ExtInstImport "GLSL.std.450"
MemoryModel Logical GLSL450
EntryPoint Fragment 4
Name 4 "main"
Name 9 "blendscale"
Name 13 "w"
Name 15 "u"
Name 17 "w_dep"
Name 19 "w_reorder"
Name 21 "w2"
Name 23 "w_flow"
Name 30 "t"
Name 49 "w_undef"
Name 56 "p"
Name 70 "gl_FragColor"
Name 82 "c"
Name 84 "rep"
Name 111 "blend"
Decorate 30(t) Smooth
Decorate 70(gl_FragColor) BuiltIn FragColor
Decorate 111(blend) NoStaticUse
2: TypeVoid
3: TypeFunction 2
7: TypeFloat 32
8: TypePointer Function 7(float)
10: 7(float) Constant 1071971828
11: TypeVector 7(float) 4
12: TypePointer Function 11(fvec4)
14: TypePointer UniformConstant 11(fvec4)
15(u): 14(ptr) Variable UniformConstant
28: TypeVector 7(float) 2
29: TypePointer Input 28(fvec2)
30(t): 29(ptr) Variable Input
54: TypeBool
55: TypePointer UniformConstant 54(bool)
56(p): 55(ptr) Variable UniformConstant
69: TypePointer Output 11(fvec4)
70(gl_FragColor): 69(ptr) Variable Output
81: TypePointer Function 28(fvec2)
85: 7(float) Constant 0
86: 7(float) Constant 1065353216
87: 11(fvec4) ConstantComposite 85 85 85 86
93: 7(float) Constant 3212836864
104: 7(float) Constant 1079613850
110: TypePointer UniformConstant 7(float)
111(blend): 110(ptr) Variable UniformConstant
4(main): 2 Function None 3
5: Label
9(blendscale): 8(ptr) Variable Function
13(w): 12(ptr) Variable Function
17(w_dep): 12(ptr) Variable Function
19(w_reorder): 12(ptr) Variable Function
21(w2): 12(ptr) Variable Function
23(w_flow): 12(ptr) Variable Function
49(w_undef): 12(ptr) Variable Function
82(c): 81(ptr) Variable Function
84(rep): 12(ptr) Variable Function
Store 9(blendscale) 10
16: 11(fvec4) Load 15(u)
Store 13(w) 16
18: 11(fvec4) Load 15(u)
Store 17(w_dep) 18
20: 11(fvec4) Load 15(u)
Store 19(w_reorder) 20
22: 11(fvec4) Load 15(u)
Store 21(w2) 22
24: 11(fvec4) Load 15(u)
Store 23(w_flow) 24
25: 7(float) Load 9(blendscale)
26: 11(fvec4) Load 19(w_reorder)
27: 11(fvec4) CompositeInsert 25 26 2
Store 19(w_reorder) 27
31: 28(fvec2) Load 30(t)
32: 11(fvec4) Load 13(w)
33: 11(fvec4) VectorShuffle 32 31 0 5 2 4
Store 13(w) 33
34: 7(float) Load 9(blendscale)
35: 11(fvec4) Load 19(w_reorder)
36: 11(fvec4) CompositeInsert 34 35 0
Store 19(w_reorder) 36
37: 11(fvec4) Load 15(u)
38: 11(fvec4) VectorShuffle 37 37 2 3 0 1
Store 21(w2) 38
39: 7(float) Load 9(blendscale)
40: 11(fvec4) Load 19(w_reorder)
41: 11(fvec4) CompositeInsert 39 40 1
Store 19(w_reorder) 41
42: 11(fvec4) Load 21(w2)
43: 28(fvec2) VectorShuffle 42 42 0 2
44: 11(fvec4) Load 17(w_dep)
45: 11(fvec4) VectorShuffle 44 43 4 5 2 3
Store 17(w_dep) 45
46: 28(fvec2) Load 30(t)
47: 11(fvec4) Load 17(w_dep)
48: 11(fvec4) VectorShuffle 47 46 0 1 4 5
Store 17(w_dep) 48
50: 11(fvec4) Load 15(u)
51: 28(fvec2) VectorShuffle 50 50 2 3
52: 11(fvec4) Load 49(w_undef)
53: 11(fvec4) VectorShuffle 52 51 4 5 2 3
Store 49(w_undef) 53
57: 54(bool) Load 56(p)
SelectionMerge 59 None
BranchConditional 57 58 64
58: Label
60: 28(fvec2) Load 30(t)
61: 7(float) CompositeExtract 60 0
62: 11(fvec4) Load 23(w_flow)
63: 11(fvec4) CompositeInsert 61 62 0
Store 23(w_flow) 63
Branch 59
64: Label
65: 28(fvec2) Load 30(t)
66: 7(float) CompositeExtract 65 1
67: 11(fvec4) Load 23(w_flow)
68: 11(fvec4) CompositeInsert 66 67 0
Store 23(w_flow) 68
Branch 59
59: Label
71: 11(fvec4) Load 19(w_reorder)
72: 11(fvec4) Load 49(w_undef)
73: 11(fvec4) Load 13(w)
74: 11(fvec4) Load 21(w2)
75: 11(fvec4) FMul 73 74
76: 11(fvec4) Load 17(w_dep)
77: 11(fvec4) FMul 75 76
78: 11(fvec4) Load 23(w_flow)
79: 11(fvec4) FMul 77 78
80: 11(fvec4) ExtInst 1(GLSL.std.450) 36(mix) 71 72 79
Store 70(gl_FragColor) 80
83: 28(fvec2) Load 30(t)
Store 82(c) 83
Store 84(rep) 87
88: 28(fvec2) Load 82(c)
89: 7(float) CompositeExtract 88 0
90: 54(bool) FOrdLessThan 89 85
SelectionMerge 92 None
BranchConditional 90 91 92
91: Label
94: 28(fvec2) Load 82(c)
95: 7(float) CompositeExtract 94 0
96: 7(float) FMul 95 93
97: 28(fvec2) Load 82(c)
98: 28(fvec2) CompositeInsert 96 97 0
Store 82(c) 98
Branch 92
92: Label
99: 28(fvec2) Load 82(c)
100: 7(float) CompositeExtract 99 0
101: 54(bool) FOrdLessThanEqual 100 86
SelectionMerge 103 None
BranchConditional 101 102 103
102: Label
105: 11(fvec4) Load 84(rep)
106: 11(fvec4) CompositeInsert 104 105 0
Store 84(rep) 106
Branch 103
103: Label
107: 11(fvec4) Load 84(rep)
108: 11(fvec4) Load 70(gl_FragColor)
109: 11(fvec4) FAdd 108 107
Store 70(gl_FragColor) 109
Branch 6
6: Label
Return
FunctionEnd

View File

@ -0,0 +1,90 @@
spv.test.frag
Linked fragment stage:
// Module Version 99
// Generated by (magic number): 51a00bb
// Id's are bound by 54
Source GLSL 110
1: ExtInstImport "GLSL.std.450"
MemoryModel Logical GLSL450
EntryPoint Fragment 4
Name 4 "main"
Name 9 "blendscale"
Name 13 "v"
Name 16 "texSampler2D"
Name 20 "t"
Name 23 "scale"
Name 30 "w"
Name 33 "texSampler3D"
Name 37 "coords"
Name 43 "gl_FragColor"
Name 46 "u"
Name 49 "blend"
Decorate 20(t) Smooth
Decorate 37(coords) Smooth
Decorate 43(gl_FragColor) BuiltIn FragColor
2: TypeVoid
3: TypeFunction 2
7: TypeFloat 32
8: TypePointer Function 7(float)
10: 7(float) Constant 1071971828
11: TypeVector 7(float) 4
12: TypePointer Function 11(fvec4)
14: TypeSampler7(float) 2D filter+texture
15: TypePointer UniformConstant 14
16(texSampler2D): 15(ptr) Variable UniformConstant
18: TypeVector 7(float) 2
19: TypePointer Input 18(fvec2)
20(t): 19(ptr) Variable Input
22: TypePointer UniformConstant 18(fvec2)
23(scale): 22(ptr) Variable UniformConstant
31: TypeSampler7(float) 3D filter+texture
32: TypePointer UniformConstant 31
33(texSampler3D): 32(ptr) Variable UniformConstant
35: TypeVector 7(float) 3
36: TypePointer Input 35(fvec3)
37(coords): 36(ptr) Variable Input
42: TypePointer Output 11(fvec4)
43(gl_FragColor): 42(ptr) Variable Output
45: TypePointer UniformConstant 11(fvec4)
46(u): 45(ptr) Variable UniformConstant
48: TypePointer UniformConstant 7(float)
49(blend): 48(ptr) Variable UniformConstant
4(main): 2 Function None 3
5: Label
9(blendscale): 8(ptr) Variable Function
13(v): 12(ptr) Variable Function
30(w): 12(ptr) Variable Function
Store 9(blendscale) 10
17: 14 Load 16(texSampler2D)
21: 18(fvec2) Load 20(t)
24: 18(fvec2) Load 23(scale)
25: 18(fvec2) FAdd 21 24
26: 18(fvec2) Load 23(scale)
27: 18(fvec2) FDiv 25 26
28: 11(fvec4) TextureSample 17 27
29: 11(fvec4) VectorShuffle 28 28 3 2 1 0
Store 13(v) 29
34: 31 Load 33(texSampler3D)
38: 35(fvec3) Load 37(coords)
39: 11(fvec4) TextureSample 34 38
40: 11(fvec4) Load 13(v)
41: 11(fvec4) FAdd 39 40
Store 30(w) 41
44: 11(fvec4) Load 30(w)
47: 11(fvec4) Load 46(u)
50: 7(float) Load 49(blend)
51: 7(float) Load 9(blendscale)
52: 7(float) FMul 50 51
53: 11(fvec4) ExtInst 1(GLSL.std.450) 36(mix) 44 47 52
Store 43(gl_FragColor) 53
Branch 6
6: Label
Return
FunctionEnd

View File

@ -0,0 +1,10 @@
spv.test.vert
WARNING: 0:5: attribute deprecated in version 130; may be removed in future release
Linked vertex stage:
Missing functionality: ftransform()

View File

@ -0,0 +1,11 @@
spv.texture.frag
WARNING: 0:14: varying deprecated in version 130; may be removed in future release
WARNING: 0:15: varying deprecated in version 130; may be removed in future release
Linked fragment stage:
Missing functionality: texel fetch

View File

@ -0,0 +1,186 @@
spv.texture.vert
Linked vertex stage:
// Module Version 99
// Generated by (magic number): 51a00bb
// Id's are bound by 132
Source GLSL 130
1: ExtInstImport "GLSL.std.450"
MemoryModel Logical GLSL450
EntryPoint Vertex 4
Name 4 "main"
Name 9 "lod"
Name 11 "coords1D"
Name 15 "coords3D"
Name 21 "coords4D"
Name 24 "color"
Name 29 "texSampler1D"
Name 39 "coords2D"
Name 53 "texSampler2D"
Name 74 "texSampler3D"
Name 89 "texSamplerCube"
Name 98 "shadowSampler1D"
Name 107 "shadowSampler2D"
Name 127 "gl_Position"
Name 131 "gl_VertexID"
Decorate 127(gl_Position) BuiltIn Position
Decorate 131(gl_VertexID) BuiltIn VertexId
Decorate 131(gl_VertexID) NoStaticUse
2: TypeVoid
3: TypeFunction 2
7: TypeFloat 32
8: TypePointer Function 7(float)
10: 7(float) Constant 1077936128
12: 7(float) Constant 1071971828
13: TypeVector 7(float) 3
14: TypePointer Function 13(fvec3)
16: 7(float) Constant 1076753334
17: 7(float) Constant 1079836148
18: 13(fvec3) ConstantComposite 12 16 17
19: TypeVector 7(float) 4
20: TypePointer Function 19(fvec4)
22: 7(float) Constant 1073741824
23: 19(fvec4) ConstantComposite 12 16 17 22
25: 7(float) Constant 0
26: 19(fvec4) ConstantComposite 25 25 25 25
27: TypeSampler7(float) 1D filter+texture
28: TypePointer UniformConstant 27
29(texSampler1D): 28(ptr) Variable UniformConstant
37: TypeVector 7(float) 2
38: TypePointer Input 37(fvec2)
39(coords2D): 38(ptr) Variable Input
51: TypeSampler7(float) 2D filter+texture
52: TypePointer UniformConstant 51
53(texSampler2D): 52(ptr) Variable UniformConstant
72: TypeSampler7(float) 3D filter+texture
73: TypePointer UniformConstant 72
74(texSampler3D): 73(ptr) Variable UniformConstant
87: TypeSampler7(float) Cube filter+texture
88: TypePointer UniformConstant 87
89(texSamplerCube): 88(ptr) Variable UniformConstant
96: TypeSampler7(float) 1D filter+texture depth
97: TypePointer UniformConstant 96
98(shadowSampler1D): 97(ptr) Variable UniformConstant
105: TypeSampler7(float) 2D filter+texture depth
106: TypePointer UniformConstant 105
107(shadowSampler2D): 106(ptr) Variable UniformConstant
126: TypePointer Output 19(fvec4)
127(gl_Position): 126(ptr) Variable Output
129: TypeInt 32 1
130: TypePointer Input 129(int)
131(gl_VertexID): 130(ptr) Variable Input
4(main): 2 Function None 3
5: Label
9(lod): 8(ptr) Variable Function
11(coords1D): 8(ptr) Variable Function
15(coords3D): 14(ptr) Variable Function
21(coords4D): 20(ptr) Variable Function
24(color): 20(ptr) Variable Function
Store 9(lod) 10
Store 11(coords1D) 12
Store 15(coords3D) 18
Store 21(coords4D) 23
Store 24(color) 26
30: 27 Load 29(texSampler1D)
31: 7(float) Load 11(coords1D)
32: 7(float) Load 9(lod)
33: 19(fvec4) TextureSampleLod 30 31 32
34: 19(fvec4) Load 24(color)
35: 19(fvec4) FAdd 34 33
Store 24(color) 35
36: 27 Load 29(texSampler1D)
40: 37(fvec2) Load 39(coords2D)
41: 7(float) Load 9(lod)
42: 19(fvec4) TextureSampleProjLod 36 40 41
43: 19(fvec4) Load 24(color)
44: 19(fvec4) FAdd 43 42
Store 24(color) 44
45: 27 Load 29(texSampler1D)
46: 19(fvec4) Load 21(coords4D)
47: 7(float) Load 9(lod)
48: 19(fvec4) TextureSampleProjLod 45 46 47
49: 19(fvec4) Load 24(color)
50: 19(fvec4) FAdd 49 48
Store 24(color) 50
54: 51 Load 53(texSampler2D)
55: 37(fvec2) Load 39(coords2D)
56: 7(float) Load 9(lod)
57: 19(fvec4) TextureSampleLod 54 55 56
58: 19(fvec4) Load 24(color)
59: 19(fvec4) FAdd 58 57
Store 24(color) 59
60: 51 Load 53(texSampler2D)
61: 13(fvec3) Load 15(coords3D)
62: 7(float) Load 9(lod)
63: 19(fvec4) TextureSampleProjLod 60 61 62
64: 19(fvec4) Load 24(color)
65: 19(fvec4) FAdd 64 63
Store 24(color) 65
66: 51 Load 53(texSampler2D)
67: 19(fvec4) Load 21(coords4D)
68: 7(float) Load 9(lod)
69: 19(fvec4) TextureSampleProjLod 66 67 68
70: 19(fvec4) Load 24(color)
71: 19(fvec4) FAdd 70 69
Store 24(color) 71
75: 72 Load 74(texSampler3D)
76: 13(fvec3) Load 15(coords3D)
77: 7(float) Load 9(lod)
78: 19(fvec4) TextureSampleLod 75 76 77
79: 19(fvec4) Load 24(color)
80: 19(fvec4) FAdd 79 78
Store 24(color) 80
81: 72 Load 74(texSampler3D)
82: 19(fvec4) Load 21(coords4D)
83: 7(float) Load 9(lod)
84: 19(fvec4) TextureSampleProjLod 81 82 83
85: 19(fvec4) Load 24(color)
86: 19(fvec4) FAdd 85 84
Store 24(color) 86
90: 87 Load 89(texSamplerCube)
91: 13(fvec3) Load 15(coords3D)
92: 7(float) Load 9(lod)
93: 19(fvec4) TextureSampleLod 90 91 92
94: 19(fvec4) Load 24(color)
95: 19(fvec4) FAdd 94 93
Store 24(color) 95
99: 96 Load 98(shadowSampler1D)
100: 13(fvec3) Load 15(coords3D)
101: 7(float) Load 9(lod)
102: 19(fvec4) TextureSampleLod 99 100 101
103: 19(fvec4) Load 24(color)
104: 19(fvec4) FAdd 103 102
Store 24(color) 104
108: 105 Load 107(shadowSampler2D)
109: 13(fvec3) Load 15(coords3D)
110: 7(float) Load 9(lod)
111: 19(fvec4) TextureSampleLod 108 109 110
112: 19(fvec4) Load 24(color)
113: 19(fvec4) FAdd 112 111
Store 24(color) 113
114: 96 Load 98(shadowSampler1D)
115: 19(fvec4) Load 21(coords4D)
116: 7(float) Load 9(lod)
117: 19(fvec4) TextureSampleProjLod 114 115 116
118: 19(fvec4) Load 24(color)
119: 19(fvec4) FAdd 118 117
Store 24(color) 119
120: 105 Load 107(shadowSampler2D)
121: 19(fvec4) Load 21(coords4D)
122: 7(float) Load 9(lod)
123: 19(fvec4) TextureSampleProjLod 120 121 122
124: 19(fvec4) Load 24(color)
125: 19(fvec4) FAdd 124 123
Store 24(color) 125
128: 19(fvec4) Load 24(color)
Store 127(gl_Position) 128
Branch 6
6: Label
Return
FunctionEnd

View File

@ -0,0 +1,347 @@
spv.types.frag
Linked fragment stage:
// Module Version 99
// Generated by (magic number): 51a00bb
// Id's are bound by 264
Source GLSL 130
1: ExtInstImport "GLSL.std.450"
MemoryModel Logical GLSL450
EntryPoint Fragment 4
Name 4 "main"
Name 9 "b"
Name 11 "u_b"
Name 13 "i_b"
Name 18 "b2"
Name 20 "u_b2"
Name 23 "i_b2"
Name 36 "b3"
Name 38 "u_b3"
Name 41 "i_b3"
Name 60 "b4"
Name 62 "u_b4"
Name 65 "i_b4"
Name 90 "i"
Name 92 "u_i"
Name 95 "i_i"
Name 100 "i2"
Name 102 "u_i2"
Name 105 "i_i2"
Name 110 "i3"
Name 112 "u_i3"
Name 115 "i_i3"
Name 120 "i4"
Name 122 "u_i4"
Name 125 "i_i4"
Name 130 "f"
Name 132 "u_f"
Name 135 "i_f"
Name 140 "f2"
Name 142 "u_f2"
Name 145 "i_f2"
Name 150 "f3"
Name 152 "u_f3"
Name 155 "i_f3"
Name 160 "f4"
Name 162 "u_f4"
Name 165 "i_f4"
Name 169 "gl_FragColor"
Decorate 95(i_i) Flat
Decorate 105(i_i2) Flat
Decorate 115(i_i3) Flat
Decorate 125(i_i4) Flat
Decorate 135(i_f) Smooth
Decorate 145(i_f2) Smooth
Decorate 155(i_f3) Smooth
Decorate 165(i_f4) Smooth
Decorate 169(gl_FragColor) BuiltIn FragColor
2: TypeVoid
3: TypeFunction 2
7: TypeBool
8: TypePointer Function 7(bool)
10: TypePointer UniformConstant 7(bool)
11(u_b): 10(ptr) Variable UniformConstant
13(i_b): 10(ptr) Variable UniformConstant
16: TypeVector 7(bool) 2
17: TypePointer Function 16(bvec2)
19: TypePointer UniformConstant 16(bvec2)
20(u_b2): 19(ptr) Variable UniformConstant
23(i_b2): 19(ptr) Variable UniformConstant
34: TypeVector 7(bool) 3
35: TypePointer Function 34(bvec3)
37: TypePointer UniformConstant 34(bvec3)
38(u_b3): 37(ptr) Variable UniformConstant
41(i_b3): 37(ptr) Variable UniformConstant
58: TypeVector 7(bool) 4
59: TypePointer Function 58(bvec4)
61: TypePointer UniformConstant 58(bvec4)
62(u_b4): 61(ptr) Variable UniformConstant
65(i_b4): 61(ptr) Variable UniformConstant
88: TypeInt 32 1
89: TypePointer Function 88(int)
91: TypePointer UniformConstant 88(int)
92(u_i): 91(ptr) Variable UniformConstant
94: TypePointer Input 88(int)
95(i_i): 94(ptr) Variable Input
98: TypeVector 88(int) 2
99: TypePointer Function 98(ivec2)
101: TypePointer UniformConstant 98(ivec2)
102(u_i2): 101(ptr) Variable UniformConstant
104: TypePointer Input 98(ivec2)
105(i_i2): 104(ptr) Variable Input
108: TypeVector 88(int) 3
109: TypePointer Function 108(ivec3)
111: TypePointer UniformConstant 108(ivec3)
112(u_i3): 111(ptr) Variable UniformConstant
114: TypePointer Input 108(ivec3)
115(i_i3): 114(ptr) Variable Input
118: TypeVector 88(int) 4
119: TypePointer Function 118(ivec4)
121: TypePointer UniformConstant 118(ivec4)
122(u_i4): 121(ptr) Variable UniformConstant
124: TypePointer Input 118(ivec4)
125(i_i4): 124(ptr) Variable Input
128: TypeFloat 32
129: TypePointer Function 128(float)
131: TypePointer UniformConstant 128(float)
132(u_f): 131(ptr) Variable UniformConstant
134: TypePointer Input 128(float)
135(i_f): 134(ptr) Variable Input
138: TypeVector 128(float) 2
139: TypePointer Function 138(fvec2)
141: TypePointer UniformConstant 138(fvec2)
142(u_f2): 141(ptr) Variable UniformConstant
144: TypePointer Input 138(fvec2)
145(i_f2): 144(ptr) Variable Input
148: TypeVector 128(float) 3
149: TypePointer Function 148(fvec3)
151: TypePointer UniformConstant 148(fvec3)
152(u_f3): 151(ptr) Variable UniformConstant
154: TypePointer Input 148(fvec3)
155(i_f3): 154(ptr) Variable Input
158: TypeVector 128(float) 4
159: TypePointer Function 158(fvec4)
161: TypePointer UniformConstant 158(fvec4)
162(u_f4): 161(ptr) Variable UniformConstant
164: TypePointer Input 158(fvec4)
165(i_f4): 164(ptr) Variable Input
168: TypePointer Output 158(fvec4)
169(gl_FragColor): 168(ptr) Variable Output
261: 128(float) Constant 1065353216
262: 158(fvec4) ConstantComposite 261 261 261 261
4(main): 2 Function None 3
5: Label
9(b): 8(ptr) Variable Function
18(b2): 17(ptr) Variable Function
36(b3): 35(ptr) Variable Function
60(b4): 59(ptr) Variable Function
90(i): 89(ptr) Variable Function
100(i2): 99(ptr) Variable Function
110(i3): 109(ptr) Variable Function
120(i4): 119(ptr) Variable Function
130(f): 129(ptr) Variable Function
140(f2): 139(ptr) Variable Function
150(f3): 149(ptr) Variable Function
160(f4): 159(ptr) Variable Function
170: 159(ptr) Variable Function
12: 7(bool) Load 11(u_b)
14: 7(bool) Load 13(i_b)
15: 7(bool) LogicalAnd 12 14
Store 9(b) 15
21: 16(bvec2) Load 20(u_b2)
22: 7(bool) CompositeExtract 21 0
24: 16(bvec2) Load 23(i_b2)
25: 7(bool) CompositeExtract 24 0
26: 7(bool) LogicalAnd 22 25
27: 16(bvec2) Load 20(u_b2)
28: 7(bool) CompositeExtract 27 1
29: 7(bool) LogicalAnd 26 28
30: 16(bvec2) Load 23(i_b2)
31: 7(bool) CompositeExtract 30 1
32: 7(bool) LogicalAnd 29 31
33: 16(bvec2) CompositeConstruct 32 32
Store 18(b2) 33
39: 34(bvec3) Load 38(u_b3)
40: 7(bool) CompositeExtract 39 0
42: 34(bvec3) Load 41(i_b3)
43: 7(bool) CompositeExtract 42 0
44: 7(bool) LogicalAnd 40 43
45: 34(bvec3) Load 38(u_b3)
46: 7(bool) CompositeExtract 45 1
47: 7(bool) LogicalAnd 44 46
48: 34(bvec3) Load 41(i_b3)
49: 7(bool) CompositeExtract 48 1
50: 7(bool) LogicalAnd 47 49
51: 34(bvec3) Load 38(u_b3)
52: 7(bool) CompositeExtract 51 2
53: 7(bool) LogicalAnd 50 52
54: 34(bvec3) Load 41(i_b3)
55: 7(bool) CompositeExtract 54 2
56: 7(bool) LogicalAnd 53 55
57: 34(bvec3) CompositeConstruct 56 56 56
Store 36(b3) 57
63: 58(bvec4) Load 62(u_b4)
64: 7(bool) CompositeExtract 63 0
66: 58(bvec4) Load 65(i_b4)
67: 7(bool) CompositeExtract 66 0
68: 7(bool) LogicalAnd 64 67
69: 58(bvec4) Load 62(u_b4)
70: 7(bool) CompositeExtract 69 1
71: 7(bool) LogicalAnd 68 70
72: 58(bvec4) Load 65(i_b4)
73: 7(bool) CompositeExtract 72 1
74: 7(bool) LogicalAnd 71 73
75: 58(bvec4) Load 62(u_b4)
76: 7(bool) CompositeExtract 75 2
77: 7(bool) LogicalAnd 74 76
78: 58(bvec4) Load 65(i_b4)
79: 7(bool) CompositeExtract 78 2
80: 7(bool) LogicalAnd 77 79
81: 58(bvec4) Load 62(u_b4)
82: 7(bool) CompositeExtract 81 3
83: 7(bool) LogicalAnd 80 82
84: 58(bvec4) Load 65(i_b4)
85: 7(bool) CompositeExtract 84 3
86: 7(bool) LogicalAnd 83 85
87: 58(bvec4) CompositeConstruct 86 86 86 86
Store 60(b4) 87
93: 88(int) Load 92(u_i)
96: 88(int) Load 95(i_i)
97: 88(int) IAdd 93 96
Store 90(i) 97
103: 98(ivec2) Load 102(u_i2)
106: 98(ivec2) Load 105(i_i2)
107: 98(ivec2) IAdd 103 106
Store 100(i2) 107
113: 108(ivec3) Load 112(u_i3)
116: 108(ivec3) Load 115(i_i3)
117: 108(ivec3) IAdd 113 116
Store 110(i3) 117
123: 118(ivec4) Load 122(u_i4)
126: 118(ivec4) Load 125(i_i4)
127: 118(ivec4) IAdd 123 126
Store 120(i4) 127
133: 128(float) Load 132(u_f)
136: 128(float) Load 135(i_f)
137: 128(float) FAdd 133 136
Store 130(f) 137
143: 138(fvec2) Load 142(u_f2)
146: 138(fvec2) Load 145(i_f2)
147: 138(fvec2) FAdd 143 146
Store 140(f2) 147
153: 148(fvec3) Load 152(u_f3)
156: 148(fvec3) Load 155(i_f3)
157: 148(fvec3) FAdd 153 156
Store 150(f3) 157
163: 158(fvec4) Load 162(u_f4)
166: 158(fvec4) Load 165(i_f4)
167: 158(fvec4) FAdd 163 166
Store 160(f4) 167
171: 7(bool) Load 9(b)
172: 16(bvec2) Load 18(b2)
173: 7(bool) CompositeExtract 172 0
174: 7(bool) LogicalOr 171 173
175: 16(bvec2) Load 18(b2)
176: 7(bool) CompositeExtract 175 1
177: 7(bool) LogicalOr 174 176
178: 34(bvec3) Load 36(b3)
179: 7(bool) CompositeExtract 178 0
180: 7(bool) LogicalOr 177 179
181: 34(bvec3) Load 36(b3)
182: 7(bool) CompositeExtract 181 1
183: 7(bool) LogicalOr 180 182
184: 34(bvec3) Load 36(b3)
185: 7(bool) CompositeExtract 184 2
186: 7(bool) LogicalOr 183 185
187: 58(bvec4) Load 60(b4)
188: 7(bool) CompositeExtract 187 0
189: 7(bool) LogicalOr 186 188
190: 58(bvec4) Load 60(b4)
191: 7(bool) CompositeExtract 190 1
192: 7(bool) LogicalOr 189 191
193: 58(bvec4) Load 60(b4)
194: 7(bool) CompositeExtract 193 2
195: 7(bool) LogicalOr 192 194
196: 58(bvec4) Load 60(b4)
197: 7(bool) CompositeExtract 196 3
198: 7(bool) LogicalOr 195 197
SelectionMerge 200 None
BranchConditional 198 199 260
199: Label
201: 88(int) Load 90(i)
202: 98(ivec2) Load 100(i2)
203: 88(int) CompositeExtract 202 0
204: 88(int) IAdd 201 203
205: 98(ivec2) Load 100(i2)
206: 88(int) CompositeExtract 205 1
207: 88(int) IAdd 204 206
208: 108(ivec3) Load 110(i3)
209: 88(int) CompositeExtract 208 0
210: 88(int) IAdd 207 209
211: 108(ivec3) Load 110(i3)
212: 88(int) CompositeExtract 211 1
213: 88(int) IAdd 210 212
214: 108(ivec3) Load 110(i3)
215: 88(int) CompositeExtract 214 2
216: 88(int) IAdd 213 215
217: 118(ivec4) Load 120(i4)
218: 88(int) CompositeExtract 217 0
219: 88(int) IAdd 216 218
220: 118(ivec4) Load 120(i4)
221: 88(int) CompositeExtract 220 1
222: 88(int) IAdd 219 221
223: 118(ivec4) Load 120(i4)
224: 88(int) CompositeExtract 223 2
225: 88(int) IAdd 222 224
226: 118(ivec4) Load 120(i4)
227: 88(int) CompositeExtract 226 3
228: 88(int) IAdd 225 227
229: 128(float) ConvertSToF 228
230: 128(float) Load 130(f)
231: 128(float) FAdd 229 230
232: 138(fvec2) Load 140(f2)
233: 128(float) CompositeExtract 232 0
234: 128(float) FAdd 231 233
235: 138(fvec2) Load 140(f2)
236: 128(float) CompositeExtract 235 1
237: 128(float) FAdd 234 236
238: 148(fvec3) Load 150(f3)
239: 128(float) CompositeExtract 238 0
240: 128(float) FAdd 237 239
241: 148(fvec3) Load 150(f3)
242: 128(float) CompositeExtract 241 1
243: 128(float) FAdd 240 242
244: 148(fvec3) Load 150(f3)
245: 128(float) CompositeExtract 244 2
246: 128(float) FAdd 243 245
247: 158(fvec4) Load 160(f4)
248: 128(float) CompositeExtract 247 0
249: 128(float) FAdd 246 248
250: 158(fvec4) Load 160(f4)
251: 128(float) CompositeExtract 250 1
252: 128(float) FAdd 249 251
253: 158(fvec4) Load 160(f4)
254: 128(float) CompositeExtract 253 2
255: 128(float) FAdd 252 254
256: 158(fvec4) Load 160(f4)
257: 128(float) CompositeExtract 256 3
258: 128(float) FAdd 255 257
259: 158(fvec4) CompositeConstruct 258 258 258 258
Store 170 259
Branch 200
260: Label
Store 170 262
Branch 200
200: Label
263: 158(fvec4) Load 170
Store 169(gl_FragColor) 263
Branch 6
6: Label
Return
FunctionEnd

View File

@ -0,0 +1,357 @@
spv.uint.frag
Linked fragment stage:
// Module Version 99
// Generated by (magic number): 51a00bb
// Id's are bound by 206
Source GLSL 300
1: ExtInstImport "GLSL.std.450"
MemoryModel Logical GLSL450
EntryPoint Fragment 4
Name 4 "main"
Name 9 "count"
Name 13 "u"
Name 16 "t"
Name 54 "shiftedii"
Name 56 "shiftedui"
Name 58 "shiftediu"
Name 59 "shifteduu"
Name 67 "c"
Name 70 "usampler"
Name 75 "tc"
Name 108 "af"
Name 112 "ab"
Name 116 "ai"
Name 151 "mask1"
Name 153 "mask2"
Name 155 "mask3"
Name 159 "mask4"
Name 199 "f"
Name 201 "v"
Name 203 "i"
Name 205 "b"
Decorate 9(count) PrecisionMedium
Decorate 13(u) PrecisionMedium
Decorate 16(t) PrecisionMedium
Decorate 16(t) Flat
Decorate 54(shiftedii) PrecisionMedium
Decorate 56(shiftedui) PrecisionMedium
Decorate 58(shiftediu) PrecisionMedium
Decorate 59(shifteduu) PrecisionMedium
Decorate 67(c) PrecisionMedium
Decorate 70(usampler) PrecisionMedium
Decorate 75(tc) PrecisionMedium
Decorate 75(tc) Smooth
Decorate 108(af) PrecisionMedium
Decorate 116(ai) PrecisionMedium
Decorate 151(mask1) PrecisionMedium
Decorate 153(mask2) PrecisionMedium
Decorate 155(mask3) PrecisionMedium
Decorate 159(mask4) PrecisionMedium
Decorate 199(f) PrecisionMedium
Decorate 199(f) Smooth
Decorate 199(f) NoStaticUse
Decorate 201(v) PrecisionMedium
Decorate 201(v) NoStaticUse
Decorate 203(i) PrecisionMedium
Decorate 203(i) NoStaticUse
Decorate 205(b) NoStaticUse
2: TypeVoid
3: TypeFunction 2
7: TypeInt 32 1
8: TypePointer Function 7(int)
10: 7(int) Constant 1
11: TypeInt 32 0
12: TypePointer Function 11(int)
14: TypeVector 11(int) 2
15: TypePointer Input 14(ivec2)
16(t): 15(ptr) Variable Input
19: 11(int) Constant 3
21: TypeBool
22: 21(bool) ConstantTrue
25: 7(int) Constant 2
30: 7(int) Constant 3
33: 21(bool) ConstantFalse
36: 7(int) Constant 5
41: 7(int) Constant 7
46: 7(int) Constant 11
51: 7(int) Constant 13
55: 7(int) Constant 4294967295
57: 11(int) Constant 4194303
65: TypeVector 11(int) 4
66: TypePointer Output 65(ivec4)
67(c): 66(ptr) Variable Output
68: TypeSampler11(int) 2D filter+texture
69: TypePointer UniformConstant 68
70(usampler): 69(ptr) Variable UniformConstant
72: TypeFloat 32
73: TypeVector 72(float) 2
74: TypePointer Input 73(fvec2)
75(tc): 74(ptr) Variable Input
85: 72(float) Constant 1065353216
97: 72(float) Constant 1073741824
98: 73(fvec2) ConstantComposite 97 97
103: 11(int) Constant 4
107: TypePointer Function 72(float)
111: TypePointer Function 21(bool)
114: 11(int) Constant 0
122: 11(int) Constant 1
133: 7(int) Constant 17
138: 7(int) Constant 19
143: 7(int) Constant 23
148: 7(int) Constant 27
152: 11(int) Constant 161
154: 11(int) Constant 2576
157: 7(int) Constant 4
160: 11(int) Constant 2737
198: TypePointer Input 72(float)
199(f): 198(ptr) Variable Input
200: TypePointer UniformConstant 65(ivec4)
201(v): 200(ptr) Variable UniformConstant
202: TypePointer UniformConstant 7(int)
203(i): 202(ptr) Variable UniformConstant
204: TypePointer UniformConstant 21(bool)
205(b): 204(ptr) Variable UniformConstant
4(main): 2 Function None 3
5: Label
9(count): 8(ptr) Variable Function
13(u): 12(ptr) Variable Function
54(shiftedii): 8(ptr) Variable Function
56(shiftedui): 12(ptr) Variable Function
58(shiftediu): 8(ptr) Variable Function
59(shifteduu): 12(ptr) Variable Function
108(af): 107(ptr) Variable Function
112(ab): 111(ptr) Variable Function
116(ai): 8(ptr) Variable Function
151(mask1): 12(ptr) Variable Function
153(mask2): 12(ptr) Variable Function
155(mask3): 12(ptr) Variable Function
159(mask4): 12(ptr) Variable Function
Store 9(count) 10
17: 14(ivec2) Load 16(t)
18: 11(int) CompositeExtract 17 1
20: 11(int) IAdd 18 19
Store 13(u) 20
SelectionMerge 24 None
BranchConditional 22 23 24
23: Label
26: 7(int) Load 9(count)
27: 7(int) IMul 26 25
Store 9(count) 27
Branch 24
24: Label
SelectionMerge 29 None
BranchConditional 22 28 29
28: Label
31: 7(int) Load 9(count)
32: 7(int) IMul 31 30
Store 9(count) 32
Branch 29
29: Label
SelectionMerge 35 None
BranchConditional 33 34 35
34: Label
37: 7(int) Load 9(count)
38: 7(int) IMul 37 36
Store 9(count) 38
Branch 35
35: Label
SelectionMerge 40 None
BranchConditional 22 39 40
39: Label
42: 7(int) Load 9(count)
43: 7(int) IMul 42 41
Store 9(count) 43
Branch 40
40: Label
SelectionMerge 45 None
BranchConditional 22 44 45
44: Label
47: 7(int) Load 9(count)
48: 7(int) IMul 47 46
Store 9(count) 48
Branch 45
45: Label
SelectionMerge 50 None
BranchConditional 33 49 50
49: Label
52: 7(int) Load 9(count)
53: 7(int) IMul 52 51
Store 9(count) 53
Branch 50
50: Label
Store 54(shiftedii) 55
Store 56(shiftedui) 57
Store 58(shiftediu) 55
Store 59(shifteduu) 57
60: 7(int) Load 54(shiftedii)
61: 7(int) Load 58(shiftediu)
62: 21(bool) IEqual 60 61
SelectionMerge 64 None
BranchConditional 62 63 64
63: Label
71: 68 Load 70(usampler)
76: 73(fvec2) Load 75(tc)
77: 65(ivec4) TextureSample 71 76
Store 67(c) 77
Branch 64
64: Label
78: 11(int) Load 56(shiftedui)
79: 11(int) Load 59(shifteduu)
80: 21(bool) IEqual 78 79
SelectionMerge 82 None
BranchConditional 80 81 82
81: Label
83: 68 Load 70(usampler)
84: 73(fvec2) Load 75(tc)
86: 73(fvec2) CompositeConstruct 85 85
87: 73(fvec2) FAdd 84 86
88: 65(ivec4) TextureSample 83 87
Store 67(c) 88
Branch 82
82: Label
89: 7(int) Load 54(shiftedii)
90: 11(int) Load 56(shiftedui)
91: 7(int) Bitcast 90
92: 21(bool) IEqual 89 91
SelectionMerge 94 None
BranchConditional 92 93 94
93: Label
95: 68 Load 70(usampler)
96: 73(fvec2) Load 75(tc)
99: 73(fvec2) FSub 96 98
100: 65(ivec4) TextureSample 95 99
Store 67(c) 100
Branch 94
94: Label
101: 14(ivec2) Load 16(t)
102: 11(int) CompositeExtract 101 0
104: 21(bool) UGreaterThan 102 103
SelectionMerge 106 None
BranchConditional 104 105 106
105: Label
109: 11(int) Load 13(u)
110: 72(float) ConvertUToF 109
Store 108(af) 110
113: 11(int) Load 13(u)
115: 21(bool) INotEqual 113 114
Store 112(ab) 115
117: 11(int) Load 13(u)
118: 7(int) Bitcast 117
Store 116(ai) 118
119: 72(float) Load 108(af)
120: 11(int) ConvertFToU 119
121: 21(bool) Load 112(ab)
123: 11(int) Select 121 122 114
124: 7(int) Load 116(ai)
125: 11(int) Bitcast 124
126: 7(int) Load 9(count)
127: 11(int) Bitcast 126
128: 65(ivec4) CompositeConstruct 120 123 125 127
129: 65(ivec4) Load 67(c)
130: 65(ivec4) IAdd 129 128
Store 67(c) 130
Branch 106
106: Label
SelectionMerge 132 None
BranchConditional 22 131 132
131: Label
134: 7(int) Load 9(count)
135: 7(int) IMul 134 133
Store 9(count) 135
Branch 132
132: Label
SelectionMerge 137 None
BranchConditional 33 136 137
136: Label
139: 7(int) Load 9(count)
140: 7(int) IMul 139 138
Store 9(count) 140
Branch 137
137: Label
SelectionMerge 142 None
BranchConditional 22 141 142
141: Label
144: 7(int) Load 9(count)
145: 7(int) IMul 144 143
Store 9(count) 145
Branch 142
142: Label
SelectionMerge 147 None
BranchConditional 22 146 147
146: Label
149: 7(int) Load 9(count)
150: 7(int) IMul 149 148
Store 9(count) 150
Branch 147
147: Label
Store 151(mask1) 152
Store 153(mask2) 154
156: 11(int) Load 151(mask1)
158: 11(int) ShiftLeftLogical 156 157
Store 155(mask3) 158
Store 159(mask4) 160
161: 11(int) Load 155(mask3)
162: 11(int) Load 153(mask2)
163: 21(bool) IEqual 161 162
SelectionMerge 165 None
BranchConditional 163 164 165
164: Label
166: 7(int) Load 9(count)
167: 7(int) IMul 166 25
Store 9(count) 167
Branch 165
165: Label
168: 11(int) Load 155(mask3)
169: 11(int) Load 151(mask1)
170: 11(int) BitwiseAnd 168 169
171: 21(bool) INotEqual 170 114
SelectionMerge 173 None
BranchConditional 171 172 173
172: Label
174: 7(int) Load 9(count)
175: 7(int) IMul 174 30
Store 9(count) 175
Branch 173
173: Label
176: 11(int) Load 151(mask1)
177: 11(int) Load 155(mask3)
178: 11(int) BitwiseOr 176 177
179: 11(int) Load 159(mask4)
180: 21(bool) IEqual 178 179
SelectionMerge 182 None
BranchConditional 180 181 182
181: Label
183: 7(int) Load 9(count)
184: 7(int) IMul 183 36
Store 9(count) 184
Branch 182
182: Label
185: 11(int) Load 151(mask1)
186: 11(int) Load 159(mask4)
187: 11(int) BitwiseXor 185 186
188: 21(bool) IEqual 187 154
SelectionMerge 190 None
BranchConditional 188 189 190
189: Label
191: 7(int) Load 9(count)
192: 7(int) IMul 191 41
Store 9(count) 192
Branch 190
190: Label
193: 7(int) Load 9(count)
194: 11(int) Bitcast 193
195: 65(ivec4) CompositeConstruct 194 194 194 194
196: 65(ivec4) Load 67(c)
197: 65(ivec4) IAdd 196 195
Store 67(c) 197
Branch 6
6: Label
Return
FunctionEnd

View File

@ -0,0 +1,82 @@
spv.uniformArray.frag
Linked fragment stage:
// Module Version 99
// Generated by (magic number): 51a00bb
// Id's are bound by 52
Source GLSL 130
1: ExtInstImport "GLSL.std.450"
MemoryModel Logical GLSL450
EntryPoint Fragment 4
Name 4 "main"
Name 10 "texColor"
Name 15 "color"
Name 26 "inColor"
Name 36 "alpha"
Name 47 "gl_FragColor"
Name 51 "texSampler2D"
Decorate 47(gl_FragColor) BuiltIn FragColor
Decorate 51(texSampler2D) NoStaticUse
2: TypeVoid
3: TypeFunction 2
7: TypeFloat 32
8: TypeVector 7(float) 4
9: TypePointer Function 8(fvec4)
11: TypeInt 32 0
12: 11(int) Constant 6
13: TypeArray 8(fvec4) 12
14: TypePointer UniformConstant 13
15(color): 14(ptr) Variable UniformConstant
16: TypeInt 32 1
17: 16(int) Constant 1
18: TypePointer UniformConstant 8(fvec4)
24: TypeVector 7(float) 3
25: TypePointer UniformConstant 24(fvec3)
26(inColor): 25(ptr) Variable UniformConstant
33: 11(int) Constant 16
34: TypeArray 7(float) 33
35: TypePointer UniformConstant 34
36(alpha): 35(ptr) Variable UniformConstant
37: 16(int) Constant 12
38: TypePointer UniformConstant 7(float)
46: TypePointer Output 8(fvec4)
47(gl_FragColor): 46(ptr) Variable Output
49: TypeSampler7(float) 2D filter+texture
50: TypePointer UniformConstant 49
51(texSampler2D): 50(ptr) Variable UniformConstant
4(main): 2 Function None 3
5: Label
10(texColor): 9(ptr) Variable Function
19: 18(ptr) AccessChain 15(color) 17
20: 8(fvec4) Load 19
21: 18(ptr) AccessChain 15(color) 17
22: 8(fvec4) Load 21
23: 8(fvec4) FAdd 20 22
Store 10(texColor) 23
27: 24(fvec3) Load 26(inColor)
28: 8(fvec4) Load 10(texColor)
29: 24(fvec3) VectorShuffle 28 28 0 1 2
30: 24(fvec3) FAdd 29 27
31: 8(fvec4) Load 10(texColor)
32: 8(fvec4) VectorShuffle 31 30 4 5 6 3
Store 10(texColor) 32
39: 38(ptr) AccessChain 36(alpha) 37
40: 7(float) Load 39
41: 8(fvec4) Load 10(texColor)
42: 7(float) CompositeExtract 41 3
43: 7(float) FAdd 42 40
44: 8(fvec4) Load 10(texColor)
45: 8(fvec4) CompositeInsert 43 44 3
Store 10(texColor) 45
48: 8(fvec4) Load 10(texColor)
Store 47(gl_FragColor) 48
Branch 6
6: Label
Return
FunctionEnd

View File

@ -0,0 +1,147 @@
spv.variableArrayIndex.frag
WARNING: 0:3: varying deprecated in version 130; may be removed in future release
Linked fragment stage:
// Module Version 99
// Generated by (magic number): 51a00bb
// Id's are bound by 93
Source GLSL 130
1: ExtInstImport "GLSL.std.450"
MemoryModel Logical GLSL450
EntryPoint Fragment 4
Name 4 "main"
Name 9 "iLocal"
Name 11 "Count"
Name 14 "lunarStruct1"
MemberName 14(lunarStruct1) 0 "i"
MemberName 14(lunarStruct1) 1 "f"
Name 15 "lunarStruct2"
MemberName 15(lunarStruct2) 0 "i"
MemberName 15(lunarStruct2) 1 "f"
MemberName 15(lunarStruct2) 2 "s1_1"
Name 19 "lunarStruct3"
MemberName 19(lunarStruct3) 0 "s2_1"
MemberName 19(lunarStruct3) 1 "i"
MemberName 19(lunarStruct3) 2 "f"
MemberName 19(lunarStruct3) 3 "s1_1"
Name 21 "foo3"
Name 31 "scale"
Name 35 "foo2"
Name 37 "foo"
Name 55 "gl_FragColor"
Name 59 "sampler"
Name 63 "coord"
Name 69 "constructed"
Decorate 55(gl_FragColor) BuiltIn FragColor
Decorate 63(coord) Smooth
2: TypeVoid
3: TypeFunction 2
7: TypeInt 32 1
8: TypePointer Function 7(int)
10: TypePointer UniformConstant 7(int)
11(Count): 10(ptr) Variable UniformConstant
13: TypeFloat 32
14(lunarStruct1): TypeStruct 7(int) 13(float)
15(lunarStruct2): TypeStruct 7(int) 13(float) 14(lunarStruct1)
16: TypeInt 32 0
17: 16(int) Constant 3
18: TypeArray 15(lunarStruct2) 17
19(lunarStruct3): TypeStruct 18 7(int) 13(float) 14(lunarStruct1)
20: TypePointer UniformConstant 19(lunarStruct3)
21(foo3): 20(ptr) Variable UniformConstant
22: 7(int) Constant 0
23: 7(int) Constant 1
26: TypeBool
30: TypePointer Function 13(float)
32: 16(int) Constant 5
33: TypeArray 15(lunarStruct2) 32
34: TypePointer UniformConstant 33
35(foo2): 34(ptr) Variable UniformConstant
36: TypePointer UniformConstant 14(lunarStruct1)
37(foo): 36(ptr) Variable UniformConstant
42: 7(int) Constant 2
47: TypePointer UniformConstant 13(float)
53: TypeVector 13(float) 4
54: TypePointer Output 53(fvec4)
55(gl_FragColor): 54(ptr) Variable Output
57: TypeSampler13(float) 2D filter+texture
58: TypePointer UniformConstant 57
59(sampler): 58(ptr) Variable UniformConstant
61: TypeVector 13(float) 2
62: TypePointer Input 61(fvec2)
63(coord): 62(ptr) Variable Input
67: TypeArray 61(fvec2) 17
68: TypePointer Function 67
73: 13(float) Constant 1065353216
74: 13(float) Constant 1073741824
75: 61(fvec2) ConstantComposite 73 74
79: TypePointer Function 61(fvec2)
4(main): 2 Function None 3
5: Label
9(iLocal): 8(ptr) Variable Function
31(scale): 30(ptr) Variable Function
69(constructed): 68(ptr) Variable Function
12: 7(int) Load 11(Count)
Store 9(iLocal) 12
24: 10(ptr) AccessChain 21(foo3) 22 23 22
25: 7(int) Load 24
27: 26(bool) SGreaterThan 25 22
SelectionMerge 29 None
BranchConditional 27 28 50
28: Label
38: 10(ptr) AccessChain 37(foo) 22
39: 7(int) Load 38
40: 10(ptr) AccessChain 21(foo3) 22 39 22
41: 7(int) Load 40
43: 7(int) IAdd 41 42
44: 7(int) Load 9(iLocal)
45: 7(int) IAdd 44 23
Store 9(iLocal) 45
46: 7(int) IAdd 43 45
48: 47(ptr) AccessChain 35(foo2) 46 42 23
49: 13(float) Load 48
Store 31(scale) 49
Branch 29
50: Label
51: 47(ptr) AccessChain 21(foo3) 22 22 42 23
52: 13(float) Load 51
Store 31(scale) 52
Branch 29
29: Label
56: 13(float) Load 31(scale)
60: 57 Load 59(sampler)
64: 61(fvec2) Load 63(coord)
65: 53(fvec4) TextureSample 60 64
66: 53(fvec4) VectorTimesScalar 56 65
Store 55(gl_FragColor) 66
70: 61(fvec2) Load 63(coord)
71: 13(float) Load 31(scale)
72: 61(fvec2) CompositeConstruct 71 71
76: 67 CompositeConstruct 70 72 75
Store 69(constructed) 76
77: 10(ptr) AccessChain 37(foo) 22
78: 7(int) Load 77
80: 79(ptr) AccessChain 69(constructed) 78
81: 61(fvec2) Load 80
82: 10(ptr) AccessChain 37(foo) 22
83: 7(int) Load 82
84: 79(ptr) AccessChain 69(constructed) 83
85: 61(fvec2) Load 84
86: 13(float) CompositeExtract 81 0
87: 13(float) CompositeExtract 81 1
88: 13(float) CompositeExtract 85 0
89: 13(float) CompositeExtract 85 1
90: 53(fvec4) CompositeConstruct 86 87 88 89
91: 53(fvec4) Load 55(gl_FragColor)
92: 53(fvec4) FAdd 91 90
Store 55(gl_FragColor) 92
Branch 6
6: Label
Return
FunctionEnd

View File

@ -0,0 +1,99 @@
spv.varyingArray.frag
WARNING: 0:3: varying deprecated in version 130; may be removed in future release
WARNING: 0:4: varying deprecated in version 130; may be removed in future release
WARNING: 0:6: varying deprecated in version 130; may be removed in future release
WARNING: 0:8: varying deprecated in version 130; may be removed in future release
Linked fragment stage:
// Module Version 99
// Generated by (magic number): 51a00bb
// Id's are bound by 61
Source GLSL 130
1: ExtInstImport "GLSL.std.450"
MemoryModel Logical GLSL450
EntryPoint Fragment 4
Name 4 "main"
Name 10 "texColor"
Name 13 "texSampler2D"
Name 19 "gl_TexCoord"
Name 34 "color"
Name 39 "alpha"
Name 44 "gl_FragColor"
Name 48 "foo"
Decorate 19(gl_TexCoord) Smooth
Decorate 34(color) Smooth
Decorate 39(alpha) Smooth
Decorate 44(gl_FragColor) BuiltIn FragColor
Decorate 48(foo) Smooth
2: TypeVoid
3: TypeFunction 2
7: TypeFloat 32
8: TypeVector 7(float) 4
9: TypePointer Function 8(fvec4)
11: TypeSampler7(float) 2D filter+texture
12: TypePointer UniformConstant 11
13(texSampler2D): 12(ptr) Variable UniformConstant
15: TypeInt 32 0
16: 15(int) Constant 6
17: TypeArray 8(fvec4) 16
18: TypePointer Input 17
19(gl_TexCoord): 18(ptr) Variable Input
20: TypeInt 32 1
21: 20(int) Constant 4
22: TypePointer Input 8(fvec4)
25: 20(int) Constant 5
29: TypeVector 7(float) 2
34(color): 22(ptr) Variable Input
38: TypePointer Input 7(float)
39(alpha): 38(ptr) Variable Input
43: TypePointer Output 8(fvec4)
44(gl_FragColor): 43(ptr) Variable Output
45: 15(int) Constant 3
46: TypeArray 8(fvec4) 45
47: TypePointer Input 46
48(foo): 47(ptr) Variable Input
49: 20(int) Constant 1
52: 20(int) Constant 0
4(main): 2 Function None 3
5: Label
10(texColor): 9(ptr) Variable Function
14: 11 Load 13(texSampler2D)
23: 22(ptr) AccessChain 19(gl_TexCoord) 21
24: 8(fvec4) Load 23
26: 22(ptr) AccessChain 19(gl_TexCoord) 25
27: 8(fvec4) Load 26
28: 8(fvec4) FAdd 24 27
30: 7(float) CompositeExtract 28 0
31: 7(float) CompositeExtract 28 1
32: 29(fvec2) CompositeConstruct 30 31
33: 8(fvec4) TextureSample 14 32
Store 10(texColor) 33
35: 8(fvec4) Load 34(color)
36: 8(fvec4) Load 10(texColor)
37: 8(fvec4) FAdd 36 35
Store 10(texColor) 37
40: 7(float) Load 39(alpha)
41: 8(fvec4) Load 10(texColor)
42: 8(fvec4) CompositeInsert 40 41 3
Store 10(texColor) 42
50: 22(ptr) AccessChain 48(foo) 49
51: 8(fvec4) Load 50
53: 22(ptr) AccessChain 19(gl_TexCoord) 52
54: 8(fvec4) Load 53
55: 8(fvec4) FAdd 51 54
56: 22(ptr) AccessChain 19(gl_TexCoord) 21
57: 8(fvec4) Load 56
58: 8(fvec4) FAdd 55 57
59: 8(fvec4) Load 10(texColor)
60: 8(fvec4) FAdd 58 59
Store 44(gl_FragColor) 60
Branch 6
6: Label
Return
FunctionEnd

View File

@ -0,0 +1,109 @@
spv.varyingArrayIndirect.frag
WARNING: 0:3: varying deprecated in version 130; may be removed in future release
WARNING: 0:4: varying deprecated in version 130; may be removed in future release
WARNING: 0:6: varying deprecated in version 130; may be removed in future release
WARNING: 0:8: varying deprecated in version 130; may be removed in future release
Linked fragment stage:
// Module Version 99
// Generated by (magic number): 51a00bb
// Id's are bound by 69
Source GLSL 130
1: ExtInstImport "GLSL.std.450"
MemoryModel Logical GLSL450
EntryPoint Fragment 4
Name 4 "main"
Name 10 "texColor"
Name 13 "texSampler2D"
Name 19 "userIn"
Name 22 "b"
Name 30 "gl_TexCoord"
Name 31 "a"
Name 45 "color"
Name 50 "alpha"
Name 55 "gl_FragColor"
Decorate 19(userIn) Smooth
Decorate 30(gl_TexCoord) Smooth
Decorate 45(color) Smooth
Decorate 50(alpha) Smooth
Decorate 55(gl_FragColor) BuiltIn FragColor
2: TypeVoid
3: TypeFunction 2
7: TypeFloat 32
8: TypeVector 7(float) 4
9: TypePointer Function 8(fvec4)
11: TypeSampler7(float) 2D filter+texture
12: TypePointer UniformConstant 11
13(texSampler2D): 12(ptr) Variable UniformConstant
15: TypeInt 32 0
16: 15(int) Constant 2
17: TypeArray 8(fvec4) 16
18: TypePointer Input 17
19(userIn): 18(ptr) Variable Input
20: TypeInt 32 1
21: TypePointer UniformConstant 20(int)
22(b): 21(ptr) Variable UniformConstant
24: TypePointer Input 8(fvec4)
27: 15(int) Constant 6
28: TypeArray 8(fvec4) 27
29: TypePointer Input 28
30(gl_TexCoord): 29(ptr) Variable Input
31(a): 21(ptr) Variable UniformConstant
36: 20(int) Constant 5
40: TypeVector 7(float) 2
45(color): 24(ptr) Variable Input
49: TypePointer Input 7(float)
50(alpha): 49(ptr) Variable Input
54: TypePointer Output 8(fvec4)
55(gl_FragColor): 54(ptr) Variable Output
56: 20(int) Constant 0
4(main): 2 Function None 3
5: Label
10(texColor): 9(ptr) Variable Function
14: 11 Load 13(texSampler2D)
23: 20(int) Load 22(b)
25: 24(ptr) AccessChain 19(userIn) 23
26: 8(fvec4) Load 25
32: 20(int) Load 31(a)
33: 24(ptr) AccessChain 30(gl_TexCoord) 32
34: 8(fvec4) Load 33
35: 8(fvec4) FAdd 26 34
37: 24(ptr) AccessChain 30(gl_TexCoord) 36
38: 8(fvec4) Load 37
39: 8(fvec4) FAdd 35 38
41: 7(float) CompositeExtract 39 0
42: 7(float) CompositeExtract 39 1
43: 40(fvec2) CompositeConstruct 41 42
44: 8(fvec4) TextureSample 14 43
Store 10(texColor) 44
46: 8(fvec4) Load 45(color)
47: 8(fvec4) Load 10(texColor)
48: 8(fvec4) FAdd 47 46
Store 10(texColor) 48
51: 7(float) Load 50(alpha)
52: 8(fvec4) Load 10(texColor)
53: 8(fvec4) CompositeInsert 51 52 3
Store 10(texColor) 53
57: 24(ptr) AccessChain 30(gl_TexCoord) 56
58: 8(fvec4) Load 57
59: 20(int) Load 22(b)
60: 24(ptr) AccessChain 30(gl_TexCoord) 59
61: 8(fvec4) Load 60
62: 8(fvec4) FAdd 58 61
63: 8(fvec4) Load 10(texColor)
64: 8(fvec4) FAdd 62 63
65: 20(int) Load 31(a)
66: 24(ptr) AccessChain 19(userIn) 65
67: 8(fvec4) Load 66
68: 8(fvec4) FAdd 64 67
Store 55(gl_FragColor) 68
Branch 6
6: Label
Return
FunctionEnd

View File

@ -0,0 +1,81 @@
spv.voidFunction.frag
Linked fragment stage:
// Module Version 99
// Generated by (magic number): 51a00bb
// Id's are bound by 43
Source GLSL 120
1: ExtInstImport "GLSL.std.450"
MemoryModel Logical GLSL450
EntryPoint Fragment 4
Name 4 "main"
Name 7 "foo("
Name 9 "foo2("
Name 13 "bar"
Name 23 "outColor"
Name 25 "bigColor"
Name 36 "gl_FragColor"
Name 40 "BaseColor"
Name 42 "d"
Decorate 36(gl_FragColor) BuiltIn FragColor
Decorate 40(BaseColor) Smooth
Decorate 40(BaseColor) NoStaticUse
Decorate 42(d) NoStaticUse
2: TypeVoid
3: TypeFunction 2
11: TypeFloat 32
12: TypePointer PrivateGlobal 11(float)
13(bar): 12(ptr) Variable PrivateGlobal
14: 11(float) Constant 1073741824
16: 11(float) Constant 1065353216
21: TypeVector 11(float) 4
22: TypePointer Function 21(fvec4)
24: TypePointer UniformConstant 21(fvec4)
25(bigColor): 24(ptr) Variable UniformConstant
35: TypePointer Output 21(fvec4)
36(gl_FragColor): 35(ptr) Variable Output
39: TypePointer Input 21(fvec4)
40(BaseColor): 39(ptr) Variable Input
41: TypePointer UniformConstant 11(float)
42(d): 41(ptr) Variable UniformConstant
4(main): 2 Function None 3
5: Label
23(outColor): 22(ptr) Variable Function
Store 13(bar) 14
26: 21(fvec4) Load 25(bigColor)
Store 23(outColor) 26
27: 2 FunctionCall 7(foo()
28: 2 FunctionCall 9(foo2()
29: 11(float) Load 13(bar)
30: 21(fvec4) Load 23(outColor)
31: 11(float) CompositeExtract 30 0
32: 11(float) FAdd 31 29
33: 21(fvec4) Load 23(outColor)
34: 21(fvec4) CompositeInsert 32 33 0
Store 23(outColor) 34
37: 21(fvec4) Load 23(outColor)
Store 36(gl_FragColor) 37
Branch 6
6: Label
Return
FunctionEnd
7(foo(): 2 Function None 3
8: Label
15: 11(float) Load 13(bar)
17: 11(float) FAdd 15 16
Store 13(bar) 17
Return
FunctionEnd
9(foo2(): 2 Function None 3
10: Label
19: 11(float) Load 13(bar)
20: 11(float) FAdd 19 16
Store 13(bar) 20
Return
FunctionEnd

View File

@ -0,0 +1,64 @@
spv.whileLoop.frag
Linked fragment stage:
// Module Version 99
// Generated by (magic number): 51a00bb
// Id's are bound by 32
Source GLSL 110
1: ExtInstImport "GLSL.std.450"
MemoryModel Logical GLSL450
EntryPoint Fragment 4
Name 4 "main"
Name 10 "color"
Name 12 "BaseColor"
Name 19 "d"
Name 25 "bigColor"
Name 30 "gl_FragColor"
Decorate 12(BaseColor) Smooth
Decorate 30(gl_FragColor) BuiltIn FragColor
2: TypeVoid
3: TypeFunction 2
7: TypeFloat 32
8: TypeVector 7(float) 4
9: TypePointer Function 8(fvec4)
11: TypePointer Input 8(fvec4)
12(BaseColor): 11(ptr) Variable Input
18: TypePointer UniformConstant 7(float)
19(d): 18(ptr) Variable UniformConstant
21: TypeBool
24: TypePointer UniformConstant 8(fvec4)
25(bigColor): 24(ptr) Variable UniformConstant
29: TypePointer Output 8(fvec4)
30(gl_FragColor): 29(ptr) Variable Output
4(main): 2 Function None 3
5: Label
10(color): 9(ptr) Variable Function
13: 8(fvec4) Load 12(BaseColor)
Store 10(color) 13
Branch 14
14: Label
16: 8(fvec4) Load 10(color)
17: 7(float) CompositeExtract 16 0
20: 7(float) Load 19(d)
22: 21(bool) FOrdLessThan 17 20
LoopMerge 15 None
BranchConditional 22 23 15
23: Label
26: 8(fvec4) Load 25(bigColor)
27: 8(fvec4) Load 10(color)
28: 8(fvec4) FAdd 27 26
Store 10(color) 28
Branch 14
15: Label
31: 8(fvec4) Load 10(color)
Store 30(gl_FragColor) 31
Branch 6
6: Label
Return
FunctionEnd

25
Test/spv.100ops.frag Normal file
View File

@ -0,0 +1,25 @@
#version 100
lowp float foo();
uniform int low, high;
lowp float face1 = 11.0;
void main()
{
int z = 3;
if (2 * low + 1 < high)
++z;
gl_FragColor = face1 * vec4(z) + foo();
}
lowp float face2 = -2.0;
lowp float foo()
{
// testing if face2 initializer insert logic is correct in main
return face2;
}

119
Test/spv.130.frag Normal file
View File

@ -0,0 +1,119 @@
#version 130
#extension GL_ARB_texture_gather : enable
vec3 a;
float b;
in vec4 i;
out vec4 o;
out ivec3 io;
out uvec4 uo;
flat in float fflat;
smooth in float fsmooth;
noperspective in float fnop;
uniform samplerCube sampC;
in vec4 gl_Color;
flat in vec4 gl_Color;
#extension GL_ARB_texture_rectangle : enable
uniform sampler2D samp2D;
uniform sampler2DShadow samp2DS;
uniform sampler2DRect samp2DR;
uniform sampler2DArray samp2DA;
void bar3()
{
o += textureGatherOffset(samp2D, vec2(0.3), ivec2(1));
o += textureGatherOffset(samp2DA, vec3(0.3), ivec2(1));
}
#extension GL_ARB_gpu_shader5 : enable
void bar4()
{
o += textureGatherOffset(samp2DR, vec2(0.3), ivec2(1));
o += textureGatherOffset(samp2DS, vec2(0.3), 1.3, ivec2(1));
o += textureGatherOffset(samp2D, vec2(0.3), ivec2(1), 2);
}
#extension GL_ARB_texture_cube_map_array : enable
uniform samplerCubeArray Sca;
uniform isamplerCubeArray Isca;
uniform usamplerCubeArray Usca;
uniform samplerCubeArrayShadow Scas;
void bar5()
{
io = textureSize(Sca, 3);
o += texture(Sca, i);
io += texture(Isca, i, 0.7).xyz;
uo = texture(Usca, i);
o += textureLod(Sca, i, 1.7);
a = textureSize(Scas, 3);
float f = texture(Scas, i, i.y);
ivec4 c = textureGrad(Isca, i, vec3(0.1), vec3(0.2));
o += vec4(a, f + c);
}
#extension GL_ARB_shading_language_420pack : enable
const int ai[3] = { 10, 23, 32 };
uniform layout(binding=0) sampler2D bounds;
void bar6()
{
mat4x3 m43;
float a1 = m43[3].y;
//int a2 = m43.length(); // ERROR until shading_language_420pack is fully implemented
const float b = 2 * a1;
//a.x = gl_MinProgramTexelOffset + gl_MaxProgramTexelOffset; // ERROR until shading_language_420pack is fully implemented
}
#extension GL_ARB_texture_rectangle : enable
#extension GL_ARB_shader_texture_lod : require
uniform sampler2D s2D;
uniform sampler2DRect s2DR;
uniform sampler2DRectShadow s2DRS;
uniform sampler1D s1D;
uniform sampler2DShadow s2DS;
uniform float f;
uniform vec2 v2;
uniform vec3 v3;
uniform vec4 v4;
void bar7()
{
vec4 v;
o += texture2DRect(s2DR, v2);
o += texture2DRectProj(s2DR, v3);
o += texture2DRectProj(s2DR, v4);
o += shadow2DRect(s2DRS, v3);
o += shadow2DRectProj(s2DRS, v4);
o += texture1DGradARB(s1D, f, f, f);
o += texture2DProjGradARB(s2D, v, v2, v2);
o += shadow2DProjGradARB(s2DS, v, v2, v2);
o += shadow2DRectProjGradARB(s2DRS, v, v2, v2);
}
void main()
{
o = textureGather(sampC, vec3(0.2));
o.y = gl_ClipDistance[3];
bar3();
bar4();
bar5();
bar6();
bar7();
}

41
Test/spv.140.frag Normal file
View File

@ -0,0 +1,41 @@
#version 140
in vec4 k;
out vec4 o;
in float gl_ClipDistance[5];
layout(row_major) uniform;
uniform sampler2D samp2Da[3];
layout(std140) uniform bn {
layout(row_major) mat4 matra[4];
layout(column_major) mat4 matca[4];
layout(row_major) mat4 matr;
layout(column_major) mat4 matc;
mat4 matrdef;
};
uniform sampler2DRect sampR;
uniform isamplerBuffer sampB;
float foo();
void main()
{
o.y = gl_ClipDistance[2];
o.z = gl_ClipDistance[int(k)];
o.w = float(textureSize(sampR) + textureSize(sampB)) / 100.0;
o.z = foo();
}
// Test extra-function initializers
float i1 = gl_FrontFacing ? -2.0 : 2.0;
float i2 = 102;
float foo()
{
return i1 + i2;
}

39
Test/spv.150.geom Normal file
View File

@ -0,0 +1,39 @@
#version 150 core
layout(triangles_adjacency) in;
layout(max_vertices = 30) out;
layout(stream = 3, triangle_strip) out;
in fromVertex {
in vec3 color;
} fromV[];
out toFragment {
out vec3 color;
} toF;
out fromVertex {
vec3 color;
};
void main()
{
color = fromV[0].color;
//?? gl_ClipDistance[3] = gl_in[1].gl_ClipDistance[2];
gl_Position = gl_in[0].gl_Position;
gl_PointSize = gl_in[3].gl_PointSize;
gl_PrimitiveID = gl_PrimitiveIDIn;
gl_Layer = 2;
EmitVertex();
color = 2 * fromV[0].color;
gl_Position = 2.0 * gl_in[0].gl_Position;
gl_PointSize = 2.0 * gl_in[3].gl_PointSize;
gl_PrimitiveID = gl_PrimitiveIDIn + 1;
gl_Layer = 3;
EmitVertex();
EndPrimitive();
}

39
Test/spv.150.vert Normal file
View File

@ -0,0 +1,39 @@
#version 150 core
in vec4 iv4;
uniform float ps;
uniform int ui;
invariant gl_Position;
struct s1 {
int a;
int a2;
vec4 b[3];
};
struct s2 {
int c;
s1 d[4];
};
out s2 s2out;
void main()
{
gl_Position = iv4;
gl_PointSize = ps;
gl_ClipDistance[2] = iv4.x;
int i;
s2out.d[i].b[2].w = ps;
// test recovery from nonsupported built-ins
//float n1 = noise1(2.4);
//n1 = noise1(vec4(n1));
//vec2 n2 = noise2(vec3(n1));
//vec3 n3 = noise3(n2);
//vec4 n4 = noise4(n3);
}
out float gl_ClipDistance[4];

17
Test/spv.300BuiltIns.vert Normal file
View File

@ -0,0 +1,17 @@
#version 300 es
in mediump float ps;
invariant gl_Position;
void main()
{
mediump int i = (4 * gl_VertexID - 10);
mediump int j = (4 * gl_VertexID - 10);
gl_Position = vec4(ps);
gl_Position *= float(i);
gl_PointSize = ps;
gl_PointSize *= float(j);
}

22
Test/spv.300layout.frag Normal file
View File

@ -0,0 +1,22 @@
#version 300 es
precision mediump float;
in vec4 pos;
in vec3 color;
layout(location = 7) out vec3 c;
layout(LocatioN = 3) out vec4 p[2];
struct S {
vec3 c;
float f;
};
in S s;
void main()
{
c = color + s.c;
p[1] = pos * s.f;
}

49
Test/spv.300layout.vert Normal file
View File

@ -0,0 +1,49 @@
#version 300 es
layout(location = 7) in vec3 c;
layout(LocatioN = 3) in vec4 p;
layout(location = 9) in ivec2 aiv2;
out vec4 pos;
out vec3 color;
flat out int iout;
layout(shared, column_major, row_major) uniform; // default is now shared and row_major
layout(std140) uniform Transform { // layout of this block is std140
mat4 M1; // row_major
layout(column_major) mat4 M2; // column major
mat3 N1; // row_major
int iuin;
} tblock;
uniform T2 { // layout of this block is shared
bool b;
mat4 t2m;
};
layout(column_major) uniform T3 { // shared and column_major
mat4 M3; // column_major
layout(row_major) mat4 M4; // row major
mat2x3 N2; // column_major
uvec3 uv3a[4];
};
uniform uint uiuin;
struct S {
vec3 c;
float f;
};
out S s;
void main()
{
pos = p * (tblock.M1 + tblock.M2 + M4 + M3 + t2m);
color = c * tblock.N1;
iout = tblock.iuin + int(uiuin) + aiv2.y;
s.c = c;
s.f = p.x;
if (N2[1] != vec3(1.0) || uv3a[2] != uvec3(5))
++s.c;
}

49
Test/spv.300layoutp.vert Normal file
View File

@ -0,0 +1,49 @@
#version 300 es
layout(location = 7) in vec3 c;
layout(LocatioN = 3) in vec4 p;
layout(location = 9) in ivec2 aiv2;
out vec4 pos;
out vec3 color;
flat out int iout;
layout(shared, column_major, row_major) uniform; // default is now shared and row_major
layout(std140) uniform Transform { // layout of this block is std140
mat4 M1; // row_major
layout(column_major) mat4 M2; // column major
mat3 N1; // row_major
int iuin;
} tblock;
uniform T2 { // layout of this block is shared
bool b;
mat4 t2m;
};
layout(column_major) uniform T3 { // shared and column_major
mat4 M3; // column_major
layout(row_major) mat4 M4; // row major
mat2x3 N2; // column_major
uvec3 uv3a[4];
};
uniform uint uiuin;
struct S {
vec3 c;
float f;
};
out S s;
void main()
{
pos = p * (tblock.M1 * tblock.M2 * M4 * M3 * t2m);
color = c * tblock.N1;
iout = tblock.iuin + int(uiuin) + aiv2.y;
s.c = c;
s.f = p.x;
if (N2[1] != vec3(1.0) || uv3a[2] != uvec3(5))
++s.c;
}

37
Test/spv.310.comp Normal file
View File

@ -0,0 +1,37 @@
#version 310 es
precision highp float;
layout (local_size_x = 16, local_size_y = 32, local_size_z = 4) in;
shared float s;
shared int i;
buffer outb {
float f;
float g;
float h;
vec3 uns[]; // this makes it look like the "second" set of 3 floats in a struct, which LLVM
// takes advantage of when optimizing, giving confusing results, like thinking
// &outbname.uns[18].x == &outbname[9].uns.x
} outbname;
buffer outbna {
int k;
vec4 na;
} outbnamena;
buffer outs {
vec4 va[];
} outnames;
void main()
{
barrier();
outbname.f = s;
outbnamena.na = vec4(s);
s = outbname.uns[18].x; // TODO: see note above
//outbname.uns[17] = vec3(3.0); // TODO: see note above, this one bitcasts, which isn't handled
outbname.uns[i] = vec3(s);
outnames.va[gl_LocalInvocationID.x] = vec4(s);
}

26
Test/spv.330.geom Normal file
View File

@ -0,0 +1,26 @@
#version 330 core
#extension GL_ARB_separate_shader_objects : enable
in gl_PerVertex
{
float gl_ClipDistance[1];
vec4 gl_Position;
} gl_in[];
out gl_PerVertex
{
vec4 gl_Position;
float gl_ClipDistance[1];
};
layout( triangles ) in;
layout( triangle_strip, max_vertices = 3 ) out;
void main()
{
vec4 v;
gl_Position = gl_in[1].gl_Position;
gl_ClipDistance[0] = gl_in[1].gl_ClipDistance[0];
EmitVertex();
EndPrimitive();
}

42
Test/spv.400.frag Normal file
View File

@ -0,0 +1,42 @@
#version 400 core
in vec2 c2D;
flat in int i;
out vec4 outp;
out ivec4 ioutp;
out uvec4 uoutp;
uniform sampler2D arrayedSampler[5];
uniform usampler2DRect samp2dr;
uniform isampler2DArray isamp2DA;
uniform sampler2DRectShadow u2drs;
#extension GL_ARB_separate_shader_objects : enable
layout(location = 6) in vec4 vl2;
void foo23()
{
const ivec2[3] offsets = ivec2[3](ivec2(1,2), ivec2(3,4), ivec2(15,16));
outp.x += textureProjGradOffset(u2drs, outp, vec2(0.0), vec2(0.0), offsets[1]);
}
void main()
{
vec4 v;
v = texture(arrayedSampler[i], c2D);
outp.x = gl_ClipDistance[1];
outp.yzw = v.yzw;
ivec2 offsets[4];
const ivec2 constOffsets[4] = ivec2[4](ivec2(1,2), ivec2(3,4), ivec2(15,16), ivec2(-2,0));
uoutp = textureGatherOffsets(samp2dr, c2D, constOffsets, 2);
outp += textureGather(arrayedSampler[0], c2D);
ioutp = textureGatherOffset(isamp2DA, vec3(0.1), ivec2(1), 3);
ioutp += textureGatherOffset(isamp2DA, vec3(0.1), ivec2(1), 1+2);
ioutp += textureGatherOffset(isamp2DA, vec3(0.1), ivec2(i));
outp += gl_FragCoord + vl2;
foo23();
}

43
Test/spv.400.tesc Normal file
View File

@ -0,0 +1,43 @@
#version 400 core
layout(vertices = 4) out;
int outa[gl_out.length()];
patch out vec4 patchOut;
void main()
{
barrier();
int a = gl_MaxTessControlInputComponents +
gl_MaxTessControlOutputComponents +
gl_MaxTessControlTextureImageUnits +
gl_MaxTessControlUniformComponents +
gl_MaxTessControlTotalOutputComponents;
vec4 p = gl_in[1].gl_Position;
float ps = gl_in[1].gl_PointSize;
float cd = gl_in[1].gl_ClipDistance[2];
int pvi = gl_PatchVerticesIn;
int pid = gl_PrimitiveID;
int iid = gl_InvocationID;
gl_out[1].gl_Position = p;
gl_out[1].gl_PointSize = ps;
gl_out[1].gl_ClipDistance[1] = cd;
gl_TessLevelOuter[3] = 3.2;
gl_TessLevelInner[1] = 1.3;
}
in vec2 inb[];
in vec2 ind[gl_MaxPatchVertices];
#extension GL_ARB_separate_shader_objects : enable
layout(location = 3) in vec4 ivla[];
layout(location = 4) in vec4 ivlb[];
layout(location = 3) out vec4 ovla[];
layout(location = 4) out vec4 ovlb[];

52
Test/spv.400.tese Normal file
View File

@ -0,0 +1,52 @@
#version 400 core
layout(triangles, ccw) in;
layout(fractional_odd_spacing) in;
layout(point_mode) in;
patch in vec4 patchIn;
void main()
{
int a = gl_MaxTessEvaluationInputComponents +
gl_MaxTessEvaluationOutputComponents +
gl_MaxTessEvaluationTextureImageUnits +
gl_MaxTessEvaluationUniformComponents +
gl_MaxTessPatchComponents +
gl_MaxPatchVertices +
gl_MaxTessGenLevel;
vec4 p = gl_in[1].gl_Position;
float ps = gl_in[1].gl_PointSize;
float cd = gl_in[1].gl_ClipDistance[2];
int pvi = gl_PatchVerticesIn;
int pid = gl_PrimitiveID;
vec3 tc = gl_TessCoord;
float tlo = gl_TessLevelOuter[3];
float tli = gl_TessLevelInner[1];
gl_Position = p;
gl_PointSize = ps;
gl_ClipDistance[2] = cd;
}
#extension GL_ARB_separate_shader_objects : enable
in vec2 inb[];
in vec2 ind[gl_MaxPatchVertices];
in testblb {
int f;
} blb[];
in testbld {
int f;
} bld[gl_MaxPatchVertices];
layout(location = 23) in vec4 ivla[];
layout(location = 24) in vec4 ivlb[];
layout(location = 23) out vec4 ovla[2];

43
Test/spv.420.geom Normal file
View File

@ -0,0 +1,43 @@
#version 420 core
layout(triangles) in;
in gl_PerVertex {
float gl_PointSize;
} gl_in[];
out gl_PerVertex {
float gl_PointSize;
};
layout(line_strip) out;
layout(max_vertices = 127) out;
layout(invocations = 4) in;
uniform sampler2D s2D;
in vec2 coord[];
uniform vec4 v4;
uniform int i;
void main()
{
float p = gl_in[1].gl_PointSize;
gl_PointSize = p;
gl_ViewportIndex = 7;
EmitStreamVertex(1);
EndStreamPrimitive(0);
EmitVertex();
EndPrimitive();
int id = gl_InvocationID;
const ivec2 offsets[5] =
{
ivec2(0,1),
ivec2(1,-2),
ivec2(0,3),
ivec2(-3,0),
ivec2(2,1)
};
vec4 v = textureGatherOffset(s2D, coord[0], offsets[i].xy);
}

32
Test/spv.430.vert Normal file
View File

@ -0,0 +1,32 @@
#version 430 core
layout(location = 4) uniform vec4 uv4;
out gl_PerVertex {
float gl_ClipDistance[];
};
const float cx = 4.20;
const float dx = 4.20;
in vec4 bad[10];
highp in vec4 badorder;
out invariant vec4 badorder2;
out flat vec4 badorder3;
uniform float f;
void main()
{
gl_ClipDistance[2] = 3.7;
if (bad[0].x == cx.x)
badorder3 = bad[0];
gl_ClipDistance[0] = f.x;
}
layout(binding = 3) uniform boundblock { int aoeu; } boundInst;
layout(binding = 7) uniform anonblock { int aoeu; } ;
layout(binding = 4) uniform sampler2D sampb1;
layout(binding = 5) uniform sampler2D sampb2[10];
layout(binding = 31) uniform sampler2D sampb4;

166
Test/spv.Operations.frag Normal file
View File

@ -0,0 +1,166 @@
#version 130
uniform ivec4 uiv4;
uniform vec4 uv4;
uniform bool ub;
uniform bvec4 ub41, ub42;
uniform float uf;
uniform int ui;
#ifdef TEST_POST_110
uniform uvec4 uuv4;
uniform unsigned int uui;
#endif
void main()
{
vec4 v;
float f;
bool b;
bvec4 bv4;
int i;
#ifdef TEST_POST_110
uint u;
#endif
// floating point
v = radians(uv4);
v += degrees(v);
v += (i = ui*ui, sin(v));
v += cos(v);
v += tan(v);
v += asin(v);
v += acos(v);
v += atan(v);
v += sinh(v);
v += cosh(v);
v += tanh(v);
v += asinh(v);
v += acosh(v);
v += atanh(v);
v += pow(v, v);
v += exp(v);
v += log(v);
v += exp2(v);
v += log2(v);
v += sqrt(v);
v += inversesqrt(v);
v += abs(v);
v += sign(v);
v += floor(v);
#ifdef TEST_POST_110
v += trunc(v);
v += round(v);
v += roundEven(v);
#endif
v += ceil(v);
v += fract(v);
v += mod(v, v);
v += mod(v, v.x);
#ifdef TEST_POST_110
v += modf(v, v);
#endif
v += min(v, uv4);
v += max(v, uv4);
v += clamp(v, uv4, uv4);
v += mix(v,v,v);
#ifdef TEST_POST_110
v += mix(v,v,ub);
v += intBitsToFloat(v);
v += uintBitsToFloat(v);
v += fma(v);
v += frexp(v);
v += ldexp(v);
v += unpackUnorm2x16(v);
v += unpackUnorm4x8(v);
v += unpackSnorm4x8(v);
#endif
v += step(v,v);
v += smoothstep(v,v,v);
v += step(uf,v);
v += smoothstep(uf,uf,v);
v += normalize(v);
v += faceforward(v, v, v);
v += reflect(v, v);
v += refract(v, v, uf);
v += dFdx(v);
v += dFdy(v);
v += fwidth(v);
//noise*(v);
#ifdef TEST_POST_110
// signed integer
i += abs(ui);
i += sign(i);
i += min(i, ui);
i += max(i, ui);
i += clamp(i, ui, ui);
floatsBitsToInt(v);
packUnorm2x16(v);
packUnorm4x8(v);
packSnorm4x8(v);
// unsigned integer
u = abs(uui);
u += sign(u);
u += min(u, uui);
u += max(u, uui);
u += clamp(u, uui, uui);
u += floatsBitToInt(v);
u += packUnorm2x16(v);
u += packUnorm4x8(v);
u += packSnorm4x8(v);
u += floatBitsToUInt(v);
#endif
// bool
#ifdef TEST_POST_110
b = isnan(uf);
b = isinf(v);
#endif
b = any(lessThan(v, uv4));
b = (b && any(lessThanEqual(v, uv4)));
b = (b && any(greaterThan(v, uv4)));
b = (b && any(greaterThanEqual(v, uv4)));
b = (b && any(equal(ub41, ub42)));
b = (b && any(notEqual(ub41, ub42)));
b = (b && any(ub41));
b = (b && all(ub41));
b = (b && any(not(ub41)));
i = ((i + ui) * i - ui) / i;
i = i % ui;
if (i == ui || i != ui && i == ui ^^ i != 2)
++i;
f = ((uf + uf) * uf - uf) / uf;
f += length(v);
f += distance(v, v);
f += dot(v, v);
f += dot(f, uf);
f += cross(v.xyz, v.xyz).x;
if (f == uf || f != uf && f != 2.0)
++f;
i &= ui;
i |= 0x42;
i ^= ui;
i %= 17;
i >>= 2;
i <<= ui;
i = ~i;
b = !b;
gl_FragColor = b ? vec4(i) + vec4(f) + v : v;
}

51
Test/spv.aggOps.frag Normal file
View File

@ -0,0 +1,51 @@
#version 130
uniform sampler2D sampler;
varying mediump vec2 coord;
varying vec4 u, w;
struct s1 {
int i;
float f;
};
struct s2 {
int i;
float f;
s1 s1_1;
};
uniform s1 foo1;
uniform s2 foo2a;
uniform s2 foo2b;
void main()
{
vec4 v;
s1 a[3], b[3];
a = s1[3](s1(int(u.x), u.y), s1(int(u.z), u.w), s1(14, 14.0));
b = s1[3](s1(17, 17.0), s1(int(w.x), w.y), s1(int(w.z), w.w));
if (foo2a == foo2b)
v = texture2D(sampler, coord);
else
v = texture2D(sampler, 2.0*coord);
if (u == v)
v *= 3.0;
if (u != v)
v *= 4.0;
if (coord == v.yw)
v *= 5.0;
if (a == b)
v *= 6.0;
if (a != b)
v *= 7.0;
gl_FragColor = v;
}

View File

@ -0,0 +1,36 @@
#version 110
varying vec2 tex_coord;
void main (void)
{
vec4 white = vec4(1.0);
vec4 black = vec4(0.2);
vec4 color = white;
// First, cut out our circle
float x = tex_coord.x*2.0 - 1.0;
float y = tex_coord.y*2.0 - 1.0;
float radius = sqrt(x*x + y*y);
if (radius > 1.0) {
if (radius > 1.1) {
++color;
}
gl_FragColor = color;
if (radius > 1.2) {
++color;
}
}
discard;
// If we're near an edge, darken us a tiny bit
if (radius >= 0.75)
color -= abs(pow(radius, 16.0)/2.0);
gl_FragColor = color;
}

View File

@ -0,0 +1,19 @@
#version 110
varying vec2 tex_coord;
void main (void)
{
vec4 white = vec4(1.0);
vec4 black = vec4(0.2);
vec4 color = white;
// First, cut out our circle
float x = tex_coord.x*2.0 - 1.0;
float y = tex_coord.y*2.0 - 1.0;
discard;
gl_FragColor = color;
}

View File

@ -0,0 +1,14 @@
#version 110
uniform sampler2D tex;
varying vec2 coord;
void main (void)
{
vec4 v = texture2D(tex, coord);
if (v == vec4(0.1,0.2,0.3,0.4))
discard;
gl_FragColor = v;
}

112
Test/spv.conversion.frag Normal file
View File

@ -0,0 +1,112 @@
#version 130
uniform bool u_b;
uniform bvec2 u_b2;
uniform bvec3 u_b3;
uniform bvec4 u_b4;
uniform int u_i;
uniform ivec2 u_i2;
uniform ivec3 u_i3;
uniform ivec4 u_i4;
uniform float u_f;
uniform vec2 u_f2;
uniform vec3 u_f3;
uniform vec4 u_f4;
uniform bool i_b;
uniform bvec2 i_b2;
uniform bvec3 i_b3;
uniform bvec4 i_b4;
flat in int i_i;
flat in ivec2 i_i2;
flat in ivec3 i_i3;
flat in ivec4 i_i4;
in float i_f;
in vec2 i_f2;
in vec3 i_f3;
in vec4 i_f4;
void main()
{
bool b = bool(u_i) ^^ bool(u_f);
bvec2 b2 = bvec2(u_i, u_f);
bvec3 b3 = bvec3(u_i, u_f, i_i);
bvec4 b4 = bvec4(u_i, u_f, i_i, i_f);
int i = int(u_f) + int(b);
ivec2 i2 = ivec2(u_f2) + ivec2(b2);
ivec3 i3 = ivec3(u_f3) + ivec3(b3);
ivec4 i4 = ivec4(u_f4) + ivec4(b4);
float f = i;
vec2 f2 = i2;
vec3 f3 = i3;
vec4 f4 = i4;
f += (float(i) + float(b));
f2 -= vec2(i2) + vec2(b2);
f3 /= vec3(i3) + vec3(b3);
f4 += vec4(i4) + vec4(b4);
f4 += vec4(bvec4(i_i4));
f4 += vec4(bvec4(u_f4));
f += f - i;
f2 += vec2(f, i) + i2;
f3 += i3 + vec3(f, i, f);
f4 += vec4(b, i, f, i) + i4;
f2 += vec2(f, i) * i;
f3 += vec3(f, i, f) + i;
f4 += i - vec4(b, i, f, i);
i2 += ivec2(f, i);
i3 += ivec3(f, i, f);
i4 += ivec4(b, i, f, i);
if (f < i || i < f ||
f2 == i2 ||
i3 != f3)
f = (b ? i : f2.x) + (b2.x ? f3.x : i2.y);
gl_FragColor =
b ||
b2.x ||
b2.y ||
b3.x ||
b3.y ||
b3.z ||
b4.x ||
b4.y ||
b4.z ||
b4.w ? vec4(
i +
i2.x +
i2.y +
i3.x +
i3.y +
i3.z +
i4.x +
i4.y +
i4.z +
i4.w +
f +
f2.x +
f2.y +
f3.x +
f3.y +
f3.z +
f4.x +
f4.y +
f4.z +
f4.w) : vec4(1.0);
// with constants...
ivec4 cv2 = ivec4(1.0);
bvec4 cv5 = bvec4(cv2);
gl_FragColor += float(cv5);
}

8
Test/spv.dataOut.frag Normal file
View File

@ -0,0 +1,8 @@
#version 130
varying vec4 Color;
void main()
{
gl_FragData[1] = Color;
}

View File

@ -0,0 +1,10 @@
#version 130
varying vec4 Color;
uniform int i;
void main()
{
gl_FragData[i] = Color;
}

View File

@ -0,0 +1,12 @@
#version 130
attribute vec4 color;
varying vec4 colorOut[6];
void main()
{
for (int i = 1; i < 5; ++i)
colorOut[i] = color;
gl_Position = colorOut[2];
}

36
Test/spv.deepRvalue.frag Normal file
View File

@ -0,0 +1,36 @@
#version 120
uniform sampler2D sampler;
vec4 v1 = vec4(2.0, 3.0, 5.0, 7.0);
vec4 v2 = vec4(11.0, 13.0, 17.0, 19.0);
vec4 v3 = vec4(23.0, 29.0, 31.0, 37.0);
vec4 v4 = vec4(41.0, 43.0, 47.0, 53.0);
struct str {
int a;
vec2 b[3];
bool c;
};
void main()
{
mat4 m = mat4(v1, v2, v3, v4);
mat4 mm = matrixCompMult(m, m);
float f = mm[1].w; // should be 19 * 19 = 361
// do a deep access to a spontaneous r-value
float g = matrixCompMult(m, m)[2].y; // should be 29 * 29 = 841
float h = str(1, vec2[3](vec2(2.0, 3.0), vec2(4.0, 5.0), vec2(6.0, 7.0)), true).b[1][1]; // should be 5.0
float i = texture2D(sampler, vec2(0.5,0.5)).y;
i += (i > 0.1 ? v1 : v2)[3];
str t;
i += (t = str(1, vec2[3](vec2(2.0, 3.0), vec2(4.0, 5.0), vec2(6.0, 7.0)), true)).b[2].y; // should be 7.0
gl_FragColor = vec4(f, g, h, i);
}

10
Test/spv.depthOut.frag Normal file
View File

@ -0,0 +1,10 @@
#version 130
varying vec4 Color;
varying float Depth;
void main()
{
gl_FragDepth = Depth;
gl_FragColor = Color;
}

35
Test/spv.discard-dce.frag Normal file
View File

@ -0,0 +1,35 @@
#version 110
varying vec2 tex_coord;
void main (void)
{
vec4 white = vec4(1.0);
vec4 black = vec4(0.2);
vec4 color = white;
// First, cut out our circle
float x = tex_coord.x*2.0 - 1.0;
float y = tex_coord.y*2.0 - 1.0;
float radius = sqrt(x*x + y*y);
if (radius > 1.0) {
if (radius > 1.1) {
++color;
}
gl_FragColor = color;
if (radius > 1.2) {
++color;
}
discard;
}
// If we're near an edge, darken us a tiny bit
if (radius >= 0.75)
color -= abs(pow(radius, 16.0)/2.0);
gl_FragColor = color;
}

16
Test/spv.doWhileLoop.frag Normal file
View File

@ -0,0 +1,16 @@
#version 110
uniform vec4 bigColor;
varying vec4 BaseColor;
uniform float d;
void main()
{
vec4 color = BaseColor;
do {
color += bigColor;
} while (color.x < d);
gl_FragColor = color;
}

View File

@ -0,0 +1,102 @@
#version 110
uniform float d;
uniform vec4 bigColor, smallColor;
uniform vec4 otherColor;
varying float c;
uniform float threshhold;
uniform float threshhold2;
uniform float threshhold3;
uniform float minimum;
varying vec4 BaseColor;
uniform bool b;
void main()
{
vec4 color = BaseColor;
vec4 color2;
color2 = otherColor;
if (c > d)
color += bigColor;
else
color += smallColor;
if (color.z < minimum)
return;
color.z++;
if (color.z > threshhold)
discard;
color++;
// Two path, different rest
if (color.w > threshhold2) {
if (color.z > threshhold2)
return;
else if (b)
color.z++;
else {
if (color.x < minimum) {
discard;
} else {
color++;
}
}
} else {
if (b)
discard;
else
return;
}
// // Two path, shared rest
// if (color.w > threshhold2) {
// if (color.z > threshhold2)
// return;
// else if (b)
// color++;
// else {
// if (color.x < minimum) {
// discard;
// } else {
// color++;
// }
// }
// } else {
// if (b)
// discard;
// else
// return;
// }
// // One path
// if (color.w > threshhold2) {
// if (color.z > threshhold2)
// return;
// else {
// if (color.x < minimum) {
// discard;
// } else {
// color++;
// }
// }
// } else {
// if (b)
// discard;
// else
// return;
// }
gl_FragColor = color * color2;
}

23
Test/spv.flowControl.frag Normal file
View File

@ -0,0 +1,23 @@
#version 120
uniform float d;
uniform vec4 bigColor, smallColor;
uniform vec4 otherColor;
varying float c;
varying vec4 BaseColor;
void main()
{
vec4 color = BaseColor;
vec4 color2;
color2 = otherColor;
if (c > d)
color += bigColor;
else
color += smallColor;
gl_FragColor = color * color2;
}

Some files were not shown because too many files have changed in this diff Show More