SPV: Implement all matrix operators {+,-,*,/} for {matrix,scalar,vector}.
This commit is contained in:
@@ -1,10 +1,265 @@
|
||||
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
|
||||
// Module Version 10000
|
||||
// Generated by (magic number): 80001
|
||||
// Id's are bound by 213
|
||||
|
||||
Capability Shader
|
||||
1: ExtInstImport "GLSL.std.450"
|
||||
MemoryModel Logical GLSL450
|
||||
EntryPoint Fragment 4 "main" 210 38 211 212 87 65 150 173 139 12 16 37
|
||||
ExecutionMode 4 OriginLowerLeft
|
||||
Source GLSL 150
|
||||
Name 4 "main"
|
||||
Name 10 "m34"
|
||||
Name 12 "v"
|
||||
Name 16 "u"
|
||||
Name 37 "FragColor"
|
||||
Name 38 "Color"
|
||||
Name 63 "m44"
|
||||
Name 65 "un34"
|
||||
Name 87 "um43"
|
||||
Name 139 "um4"
|
||||
Name 148 "inv"
|
||||
Name 150 "um2"
|
||||
Name 171 "inv3"
|
||||
Name 173 "um3"
|
||||
Name 182 "inv4"
|
||||
Name 210 "colorTransform"
|
||||
Name 211 "m"
|
||||
Name 212 "n"
|
||||
2: TypeVoid
|
||||
3: TypeFunction 2
|
||||
6: TypeFloat 32
|
||||
7: TypeVector 6(float) 4
|
||||
8: TypeMatrix 7(fvec4) 3
|
||||
9: TypePointer Function 8
|
||||
11: TypePointer Input 7(fvec4)
|
||||
12(v): 11(ptr) Variable Input
|
||||
14: TypeVector 6(float) 3
|
||||
15: TypePointer Input 14(fvec3)
|
||||
16(u): 15(ptr) Variable Input
|
||||
19: 6(float) Constant 1082759578
|
||||
20: 6(float) Constant 0
|
||||
21: 7(fvec4) ConstantComposite 19 20 20 20
|
||||
22: 7(fvec4) ConstantComposite 20 19 20 20
|
||||
23: 7(fvec4) ConstantComposite 20 20 19 20
|
||||
24: 8 ConstantComposite 21 22 23
|
||||
36: TypePointer Output 7(fvec4)
|
||||
37(FragColor): 36(ptr) Variable Output
|
||||
38(Color): 15(ptr) Variable Input
|
||||
40: 6(float) Constant 1065353216
|
||||
54: TypeInt 32 0
|
||||
55: 54(int) Constant 0
|
||||
56: TypePointer Input 6(float)
|
||||
61: TypeMatrix 7(fvec4) 4
|
||||
62: TypePointer Function 61
|
||||
64: TypePointer Input 8
|
||||
65(un34): 64(ptr) Variable Input
|
||||
85: TypeMatrix 14(fvec3) 4
|
||||
86: TypePointer Input 85
|
||||
87(um43): 86(ptr) Variable Input
|
||||
138: TypePointer Input 61
|
||||
139(um4): 138(ptr) Variable Input
|
||||
145: TypeVector 6(float) 2
|
||||
146: TypeMatrix 145(fvec2) 2
|
||||
147: TypePointer Function 146
|
||||
149: TypePointer Input 146
|
||||
150(um2): 149(ptr) Variable Input
|
||||
153: TypeInt 32 1
|
||||
154: 153(int) Constant 0
|
||||
155: TypePointer Function 6(float)
|
||||
158: 153(int) Constant 1
|
||||
161: 54(int) Constant 1
|
||||
169: TypeMatrix 14(fvec3) 3
|
||||
170: TypePointer Function 169
|
||||
172: TypePointer Input 169
|
||||
173(um3): 172(ptr) Variable Input
|
||||
176: 153(int) Constant 2
|
||||
202: 54(int) Constant 3
|
||||
203: TypePointer Output 6(float)
|
||||
210(colorTransform): 172(ptr) Variable Input
|
||||
211(m): 138(ptr) Variable Input
|
||||
212(n): 138(ptr) Variable Input
|
||||
4(main): 2 Function None 3
|
||||
5: Label
|
||||
10(m34): 9(ptr) Variable Function
|
||||
63(m44): 62(ptr) Variable Function
|
||||
148(inv): 147(ptr) Variable Function
|
||||
171(inv3): 170(ptr) Variable Function
|
||||
182(inv4): 62(ptr) Variable Function
|
||||
13: 7(fvec4) Load 12(v)
|
||||
17: 14(fvec3) Load 16(u)
|
||||
18: 8 OuterProduct 13 17
|
||||
Store 10(m34) 18
|
||||
25: 8 Load 10(m34)
|
||||
26: 7(fvec4) CompositeExtract 25 0
|
||||
27: 7(fvec4) CompositeExtract 24 0
|
||||
28: 7(fvec4) FAdd 26 27
|
||||
29: 7(fvec4) CompositeExtract 25 1
|
||||
30: 7(fvec4) CompositeExtract 24 1
|
||||
31: 7(fvec4) FAdd 29 30
|
||||
32: 7(fvec4) CompositeExtract 25 2
|
||||
33: 7(fvec4) CompositeExtract 24 2
|
||||
34: 7(fvec4) FAdd 32 33
|
||||
35: 8 CompositeConstruct 28 31 34
|
||||
Store 10(m34) 35
|
||||
39: 14(fvec3) Load 38(Color)
|
||||
41: 6(float) CompositeExtract 39 0
|
||||
42: 6(float) CompositeExtract 39 1
|
||||
43: 6(float) CompositeExtract 39 2
|
||||
44: 7(fvec4) CompositeConstruct 41 42 43 40
|
||||
Store 37(FragColor) 44
|
||||
45: 7(fvec4) Load 37(FragColor)
|
||||
46: 8 Load 10(m34)
|
||||
47: 14(fvec3) VectorTimesMatrix 45 46
|
||||
48: 6(float) CompositeExtract 47 0
|
||||
49: 6(float) CompositeExtract 47 1
|
||||
50: 6(float) CompositeExtract 47 2
|
||||
51: 7(fvec4) CompositeConstruct 48 49 50 40
|
||||
52: 7(fvec4) Load 37(FragColor)
|
||||
53: 7(fvec4) FMul 52 51
|
||||
Store 37(FragColor) 53
|
||||
57: 56(ptr) AccessChain 12(v) 55
|
||||
58: 6(float) Load 57
|
||||
59: 8 Load 10(m34)
|
||||
60: 8 MatrixTimesScalar 59 58
|
||||
Store 10(m34) 60
|
||||
66: 8 Load 65(un34)
|
||||
67: 6(float) CompositeExtract 66 0 0
|
||||
68: 6(float) CompositeExtract 66 0 1
|
||||
69: 6(float) CompositeExtract 66 0 2
|
||||
70: 6(float) CompositeExtract 66 0 3
|
||||
71: 6(float) CompositeExtract 66 1 0
|
||||
72: 6(float) CompositeExtract 66 1 1
|
||||
73: 6(float) CompositeExtract 66 1 2
|
||||
74: 6(float) CompositeExtract 66 1 3
|
||||
75: 6(float) CompositeExtract 66 2 0
|
||||
76: 6(float) CompositeExtract 66 2 1
|
||||
77: 6(float) CompositeExtract 66 2 2
|
||||
78: 6(float) CompositeExtract 66 2 3
|
||||
79: 7(fvec4) CompositeConstruct 67 68 69 70
|
||||
80: 7(fvec4) CompositeConstruct 71 72 73 74
|
||||
81: 7(fvec4) CompositeConstruct 75 76 77 78
|
||||
82: 7(fvec4) CompositeConstruct 20 20 20 40
|
||||
83: 61 CompositeConstruct 79 80 81 82
|
||||
Store 63(m44) 83
|
||||
84: 8 Load 10(m34)
|
||||
88: 85 Load 87(um43)
|
||||
89: 61 MatrixTimesMatrix 84 88
|
||||
90: 61 Load 63(m44)
|
||||
91: 7(fvec4) CompositeExtract 90 0
|
||||
92: 7(fvec4) CompositeExtract 89 0
|
||||
93: 7(fvec4) FAdd 91 92
|
||||
94: 7(fvec4) CompositeExtract 90 1
|
||||
95: 7(fvec4) CompositeExtract 89 1
|
||||
96: 7(fvec4) FAdd 94 95
|
||||
97: 7(fvec4) CompositeExtract 90 2
|
||||
98: 7(fvec4) CompositeExtract 89 2
|
||||
99: 7(fvec4) FAdd 97 98
|
||||
100: 7(fvec4) CompositeExtract 90 3
|
||||
101: 7(fvec4) CompositeExtract 89 3
|
||||
102: 7(fvec4) FAdd 100 101
|
||||
103: 61 CompositeConstruct 93 96 99 102
|
||||
Store 63(m44) 103
|
||||
104: 61 Load 63(m44)
|
||||
105: 61 FNegate 104
|
||||
106: 7(fvec4) Load 12(v)
|
||||
107: 7(fvec4) MatrixTimesVector 105 106
|
||||
108: 7(fvec4) Load 37(FragColor)
|
||||
109: 7(fvec4) FAdd 108 107
|
||||
Store 37(FragColor) 109
|
||||
110: 61 Load 63(m44)
|
||||
111: 61 Load 63(m44)
|
||||
112: 7(fvec4) CompositeExtract 110 0
|
||||
113: 7(fvec4) CompositeExtract 111 0
|
||||
114: 7(fvec4) FMul 112 113
|
||||
115: 7(fvec4) CompositeExtract 110 1
|
||||
116: 7(fvec4) CompositeExtract 111 1
|
||||
117: 7(fvec4) FMul 115 116
|
||||
118: 7(fvec4) CompositeExtract 110 2
|
||||
119: 7(fvec4) CompositeExtract 111 2
|
||||
120: 7(fvec4) FMul 118 119
|
||||
121: 7(fvec4) CompositeExtract 110 3
|
||||
122: 7(fvec4) CompositeExtract 111 3
|
||||
123: 7(fvec4) FMul 121 122
|
||||
124: 61 CompositeConstruct 114 117 120 123
|
||||
125: 7(fvec4) Load 37(FragColor)
|
||||
126: 7(fvec4) VectorTimesMatrix 125 124
|
||||
Store 37(FragColor) 126
|
||||
127: 85 Load 87(um43)
|
||||
128: 8 Transpose 127
|
||||
Store 10(m34) 128
|
||||
129: 7(fvec4) Load 37(FragColor)
|
||||
130: 8 Load 10(m34)
|
||||
131: 14(fvec3) VectorTimesMatrix 129 130
|
||||
132: 6(float) CompositeExtract 131 0
|
||||
133: 6(float) CompositeExtract 131 1
|
||||
134: 6(float) CompositeExtract 131 2
|
||||
135: 7(fvec4) CompositeConstruct 132 133 134 40
|
||||
136: 7(fvec4) Load 37(FragColor)
|
||||
137: 7(fvec4) FMul 136 135
|
||||
Store 37(FragColor) 137
|
||||
140: 61 Load 139(um4)
|
||||
141: 6(float) ExtInst 1(GLSL.std.450) 33(Determinant) 140
|
||||
142: 7(fvec4) CompositeConstruct 141 141 141 141
|
||||
143: 7(fvec4) Load 37(FragColor)
|
||||
144: 7(fvec4) FMul 143 142
|
||||
Store 37(FragColor) 144
|
||||
151: 146 Load 150(um2)
|
||||
152: 146 ExtInst 1(GLSL.std.450) 34(MatrixInverse) 151
|
||||
Store 148(inv) 152
|
||||
156: 155(ptr) AccessChain 148(inv) 154 55
|
||||
157: 6(float) Load 156
|
||||
159: 155(ptr) AccessChain 148(inv) 158 55
|
||||
160: 6(float) Load 159
|
||||
162: 155(ptr) AccessChain 148(inv) 154 161
|
||||
163: 6(float) Load 162
|
||||
164: 155(ptr) AccessChain 148(inv) 158 161
|
||||
165: 6(float) Load 164
|
||||
166: 7(fvec4) CompositeConstruct 157 160 163 165
|
||||
167: 7(fvec4) Load 37(FragColor)
|
||||
168: 7(fvec4) FMul 167 166
|
||||
Store 37(FragColor) 168
|
||||
174: 169 Load 173(um3)
|
||||
175: 169 ExtInst 1(GLSL.std.450) 34(MatrixInverse) 174
|
||||
Store 171(inv3) 175
|
||||
177: 155(ptr) AccessChain 171(inv3) 176 161
|
||||
178: 6(float) Load 177
|
||||
179: 7(fvec4) CompositeConstruct 178 178 178 178
|
||||
180: 7(fvec4) Load 37(FragColor)
|
||||
181: 7(fvec4) FMul 180 179
|
||||
Store 37(FragColor) 181
|
||||
183: 61 Load 139(um4)
|
||||
184: 61 ExtInst 1(GLSL.std.450) 34(MatrixInverse) 183
|
||||
Store 182(inv4) 184
|
||||
185: 61 Load 182(inv4)
|
||||
186: 7(fvec4) Load 37(FragColor)
|
||||
187: 7(fvec4) VectorTimesMatrix 186 185
|
||||
Store 37(FragColor) 187
|
||||
188: 7(fvec4) Load 37(FragColor)
|
||||
189: 8 Load 65(un34)
|
||||
190: 8 Load 65(un34)
|
||||
191: 7(fvec4) CompositeExtract 189 0
|
||||
192: 7(fvec4) CompositeExtract 190 0
|
||||
193: 7(fvec4) FMul 191 192
|
||||
194: 7(fvec4) CompositeExtract 189 1
|
||||
195: 7(fvec4) CompositeExtract 190 1
|
||||
196: 7(fvec4) FMul 194 195
|
||||
197: 7(fvec4) CompositeExtract 189 2
|
||||
198: 7(fvec4) CompositeExtract 190 2
|
||||
199: 7(fvec4) FMul 197 198
|
||||
200: 8 CompositeConstruct 193 196 199
|
||||
201: 14(fvec3) VectorTimesMatrix 188 200
|
||||
204: 203(ptr) AccessChain 37(FragColor) 202
|
||||
205: 6(float) Load 204
|
||||
206: 6(float) CompositeExtract 201 0
|
||||
207: 6(float) CompositeExtract 201 1
|
||||
208: 6(float) CompositeExtract 201 2
|
||||
209: 7(fvec4) CompositeConstruct 206 207 208 205
|
||||
Store 37(FragColor) 209
|
||||
Return
|
||||
FunctionEnd
|
||||
|
||||
Reference in New Issue
Block a user