Before, it was only including explicit interface, sufficient for IO-Block-declared oriented interface, but not sufficient for all modes GLSL might be used with SPIR-V. Two things are accomplished now: 1) each id will appear exactly once 2) the OpEntryPoint list will union static use with declarations
195 lines
8.6 KiB
Plaintext
Executable File
195 lines
8.6 KiB
Plaintext
Executable File
spv.forLoop.frag
|
|
|
|
Linked fragment stage:
|
|
|
|
|
|
// Module Version 10000
|
|
// Generated by (magic number): 80001
|
|
// Id's are bound by 122
|
|
|
|
Capability Shader
|
|
1: ExtInstImport "GLSL.std.450"
|
|
MemoryModel Logical GLSL450
|
|
EntryPoint Fragment 4 "main" 35 11 97
|
|
ExecutionMode 4 OriginLowerLeft
|
|
Source GLSL 130
|
|
Name 4 "main"
|
|
Name 9 "color"
|
|
Name 11 "BaseColor"
|
|
Name 15 "i"
|
|
Name 22 "Count"
|
|
Name 27 "bigColor"
|
|
Name 35 "gl_FragColor"
|
|
Name 38 "sum"
|
|
Name 40 "i"
|
|
Name 50 "v4"
|
|
Name 60 "i"
|
|
Name 66 "tv4"
|
|
Name 83 "r"
|
|
Name 89 "i"
|
|
Name 97 "f"
|
|
Name 110 "i"
|
|
2: TypeVoid
|
|
3: TypeFunction 2
|
|
6: TypeFloat 32
|
|
7: TypeVector 6(float) 4
|
|
8: TypePointer Function 7(fvec4)
|
|
10: TypePointer Input 7(fvec4)
|
|
11(BaseColor): 10(ptr) Variable Input
|
|
13: TypeInt 32 1
|
|
14: TypePointer Function 13(int)
|
|
16: 13(int) Constant 0
|
|
21: TypePointer UniformConstant 13(int)
|
|
22(Count): 21(ptr) Variable UniformConstant
|
|
24: TypeBool
|
|
26: TypePointer UniformConstant 7(fvec4)
|
|
27(bigColor): 26(ptr) Variable UniformConstant
|
|
32: 13(int) Constant 1
|
|
34: TypePointer Output 7(fvec4)
|
|
35(gl_FragColor): 34(ptr) Variable Output
|
|
37: TypePointer Function 6(float)
|
|
39: 6(float) Constant 0
|
|
45: 13(int) Constant 4
|
|
47: TypeInt 32 0
|
|
48: TypeVector 47(int) 4
|
|
49: TypePointer UniformConstant 48(ivec4)
|
|
50(v4): 49(ptr) Variable UniformConstant
|
|
52: TypePointer UniformConstant 47(int)
|
|
71: 47(int) Constant 4
|
|
84: TypeVector 6(float) 3
|
|
96: TypePointer Input 6(float)
|
|
97(f): 96(ptr) Variable Input
|
|
99: 47(int) Constant 3
|
|
115: 13(int) Constant 16
|
|
4(main): 2 Function None 3
|
|
5: Label
|
|
9(color): 8(ptr) Variable Function
|
|
15(i): 14(ptr) Variable Function
|
|
38(sum): 37(ptr) Variable Function
|
|
40(i): 14(ptr) Variable Function
|
|
60(i): 14(ptr) Variable Function
|
|
66(tv4): 8(ptr) Variable Function
|
|
83(r): 8(ptr) Variable Function
|
|
89(i): 14(ptr) Variable Function
|
|
110(i): 14(ptr) Variable Function
|
|
12: 7(fvec4) Load 11(BaseColor)
|
|
Store 9(color) 12
|
|
Store 15(i) 16
|
|
Branch 17
|
|
17: Label
|
|
20: 13(int) Load 15(i)
|
|
23: 13(int) Load 22(Count)
|
|
25: 24(bool) SLessThan 20 23
|
|
LoopMerge 18 17 None
|
|
BranchConditional 25 19 18
|
|
19: Label
|
|
28: 7(fvec4) Load 27(bigColor)
|
|
29: 7(fvec4) Load 9(color)
|
|
30: 7(fvec4) FAdd 29 28
|
|
Store 9(color) 30
|
|
31: 13(int) Load 15(i)
|
|
33: 13(int) IAdd 31 32
|
|
Store 15(i) 33
|
|
Branch 17
|
|
18: Label
|
|
36: 7(fvec4) Load 9(color)
|
|
Store 35(gl_FragColor) 36
|
|
Store 38(sum) 39
|
|
Store 40(i) 16
|
|
Branch 41
|
|
41: Label
|
|
44: 13(int) Load 40(i)
|
|
46: 24(bool) SLessThan 44 45
|
|
LoopMerge 42 41 None
|
|
BranchConditional 46 43 42
|
|
43: Label
|
|
51: 13(int) Load 40(i)
|
|
53: 52(ptr) AccessChain 50(v4) 51
|
|
54: 47(int) Load 53
|
|
55: 6(float) ConvertUToF 54
|
|
56: 6(float) Load 38(sum)
|
|
57: 6(float) FAdd 56 55
|
|
Store 38(sum) 57
|
|
58: 13(int) Load 40(i)
|
|
59: 13(int) IAdd 58 32
|
|
Store 40(i) 59
|
|
Branch 41
|
|
42: Label
|
|
Store 60(i) 16
|
|
Branch 61
|
|
61: Label
|
|
64: 13(int) Load 60(i)
|
|
65: 24(bool) SLessThan 64 45
|
|
LoopMerge 62 61 None
|
|
BranchConditional 65 63 62
|
|
63: Label
|
|
67: 13(int) Load 60(i)
|
|
68: 13(int) Load 60(i)
|
|
69: 52(ptr) AccessChain 50(v4) 68
|
|
70: 47(int) Load 69
|
|
72: 47(int) IMul 70 71
|
|
73: 6(float) ConvertUToF 72
|
|
74: 37(ptr) AccessChain 66(tv4) 67
|
|
Store 74 73
|
|
75: 13(int) Load 60(i)
|
|
76: 13(int) IAdd 75 32
|
|
Store 60(i) 76
|
|
Branch 61
|
|
62: Label
|
|
77: 6(float) Load 38(sum)
|
|
78: 7(fvec4) CompositeConstruct 77 77 77 77
|
|
79: 7(fvec4) Load 66(tv4)
|
|
80: 7(fvec4) FAdd 78 79
|
|
81: 7(fvec4) Load 35(gl_FragColor)
|
|
82: 7(fvec4) FAdd 81 80
|
|
Store 35(gl_FragColor) 82
|
|
85: 7(fvec4) Load 11(BaseColor)
|
|
86: 84(fvec3) VectorShuffle 85 85 0 1 2
|
|
87: 7(fvec4) Load 83(r)
|
|
88: 7(fvec4) VectorShuffle 87 86 4 5 6 3
|
|
Store 83(r) 88
|
|
Store 89(i) 16
|
|
Branch 90
|
|
90: Label
|
|
93: 13(int) Load 89(i)
|
|
94: 13(int) Load 22(Count)
|
|
95: 24(bool) SLessThan 93 94
|
|
LoopMerge 91 90 None
|
|
BranchConditional 95 92 91
|
|
92: Label
|
|
98: 6(float) Load 97(f)
|
|
100: 37(ptr) AccessChain 83(r) 99
|
|
Store 100 98
|
|
101: 13(int) Load 89(i)
|
|
102: 13(int) IAdd 101 32
|
|
Store 89(i) 102
|
|
Branch 90
|
|
91: Label
|
|
103: 7(fvec4) Load 83(r)
|
|
104: 84(fvec3) VectorShuffle 103 103 0 1 2
|
|
105: 7(fvec4) Load 35(gl_FragColor)
|
|
106: 84(fvec3) VectorShuffle 105 105 0 1 2
|
|
107: 84(fvec3) FAdd 106 104
|
|
108: 7(fvec4) Load 35(gl_FragColor)
|
|
109: 7(fvec4) VectorShuffle 108 107 4 5 6 3
|
|
Store 35(gl_FragColor) 109
|
|
Store 110(i) 16
|
|
Branch 111
|
|
111: Label
|
|
114: 13(int) Load 110(i)
|
|
116: 24(bool) SLessThan 114 115
|
|
LoopMerge 112 111 None
|
|
BranchConditional 116 113 112
|
|
113: Label
|
|
117: 6(float) Load 97(f)
|
|
118: 7(fvec4) Load 35(gl_FragColor)
|
|
119: 7(fvec4) VectorTimesScalar 118 117
|
|
Store 35(gl_FragColor) 119
|
|
120: 13(int) Load 110(i)
|
|
121: 13(int) IAdd 120 45
|
|
Store 110(i) 121
|
|
Branch 111
|
|
112: Label
|
|
Return
|
|
FunctionEnd
|