SPV: Implement all matrix operators {+,-,*,/} for {matrix,scalar,vector}.
This commit is contained in:
@@ -3,4 +3,244 @@ spv.300layout.vert
|
||||
Linked vertex stage:
|
||||
|
||||
|
||||
Missing functionality: binary operation on matrix
|
||||
// Module Version 10000
|
||||
// Generated by (magic number): 80001
|
||||
// Id's are bound by 165
|
||||
|
||||
Capability Shader
|
||||
1: ExtInstImport "GLSL.std.450"
|
||||
MemoryModel Logical GLSL450
|
||||
EntryPoint Vertex 4 "main" 101 11 121 9 99 109 129 163 164
|
||||
Source ESSL 300
|
||||
Name 4 "main"
|
||||
Name 9 "pos"
|
||||
Name 11 "p"
|
||||
Name 17 "Transform"
|
||||
MemberName 17(Transform) 0 "M1"
|
||||
MemberName 17(Transform) 1 "M2"
|
||||
MemberName 17(Transform) 2 "N1"
|
||||
MemberName 17(Transform) 3 "iuin"
|
||||
Name 19 "tblock"
|
||||
Name 45 "T3"
|
||||
MemberName 45(T3) 0 "M3"
|
||||
MemberName 45(T3) 1 "M4"
|
||||
MemberName 45(T3) 2 "N2"
|
||||
MemberName 45(T3) 3 "uv3a"
|
||||
Name 47 ""
|
||||
Name 79 "T2"
|
||||
MemberName 79(T2) 0 "b"
|
||||
MemberName 79(T2) 1 "t2m"
|
||||
Name 81 ""
|
||||
Name 99 "color"
|
||||
Name 101 "c"
|
||||
Name 109 "iout"
|
||||
Name 115 "uiuin"
|
||||
Name 121 "aiv2"
|
||||
Name 127 "S"
|
||||
MemberName 127(S) 0 "c"
|
||||
MemberName 127(S) 1 "f"
|
||||
Name 129 "s"
|
||||
Name 163 "gl_VertexID"
|
||||
Name 164 "gl_InstanceID"
|
||||
Decorate 11(p) Location 3
|
||||
MemberDecorate 17(Transform) 0 RowMajor
|
||||
MemberDecorate 17(Transform) 0 Offset 0
|
||||
MemberDecorate 17(Transform) 0 MatrixStride 16
|
||||
MemberDecorate 17(Transform) 1 ColMajor
|
||||
MemberDecorate 17(Transform) 1 Offset 64
|
||||
MemberDecorate 17(Transform) 1 MatrixStride 16
|
||||
MemberDecorate 17(Transform) 2 RowMajor
|
||||
MemberDecorate 17(Transform) 2 Offset 128
|
||||
MemberDecorate 17(Transform) 2 MatrixStride 16
|
||||
MemberDecorate 17(Transform) 3 Offset 176
|
||||
Decorate 17(Transform) Block
|
||||
MemberDecorate 45(T3) 0 ColMajor
|
||||
MemberDecorate 45(T3) 1 RowMajor
|
||||
MemberDecorate 45(T3) 2 ColMajor
|
||||
Decorate 45(T3) GLSLShared
|
||||
Decorate 45(T3) Block
|
||||
MemberDecorate 79(T2) 1 RowMajor
|
||||
Decorate 79(T2) GLSLShared
|
||||
Decorate 79(T2) Block
|
||||
Decorate 101(c) Location 7
|
||||
Decorate 109(iout) Flat
|
||||
Decorate 121(aiv2) Location 9
|
||||
Decorate 163(gl_VertexID) BuiltIn VertexId
|
||||
Decorate 164(gl_InstanceID) BuiltIn InstanceId
|
||||
2: TypeVoid
|
||||
3: TypeFunction 2
|
||||
6: TypeFloat 32
|
||||
7: TypeVector 6(float) 4
|
||||
8: TypePointer Output 7(fvec4)
|
||||
9(pos): 8(ptr) Variable Output
|
||||
10: TypePointer Input 7(fvec4)
|
||||
11(p): 10(ptr) Variable Input
|
||||
13: TypeMatrix 7(fvec4) 4
|
||||
14: TypeVector 6(float) 3
|
||||
15: TypeMatrix 14(fvec3) 3
|
||||
16: TypeInt 32 1
|
||||
17(Transform): TypeStruct 13 13 15 16(int)
|
||||
18: TypePointer Uniform 17(Transform)
|
||||
19(tblock): 18(ptr) Variable Uniform
|
||||
20: 16(int) Constant 0
|
||||
21: TypePointer Uniform 13
|
||||
24: 16(int) Constant 1
|
||||
40: TypeMatrix 14(fvec3) 2
|
||||
41: TypeInt 32 0
|
||||
42: TypeVector 41(int) 3
|
||||
43: 41(int) Constant 4
|
||||
44: TypeArray 42(ivec3) 43
|
||||
45(T3): TypeStruct 13 13 40 44
|
||||
46: TypePointer Uniform 45(T3)
|
||||
47: 46(ptr) Variable Uniform
|
||||
78: TypeBool
|
||||
79(T2): TypeStruct 78(bool) 13
|
||||
80: TypePointer Uniform 79(T2)
|
||||
81: 80(ptr) Variable Uniform
|
||||
98: TypePointer Output 14(fvec3)
|
||||
99(color): 98(ptr) Variable Output
|
||||
100: TypePointer Input 14(fvec3)
|
||||
101(c): 100(ptr) Variable Input
|
||||
103: 16(int) Constant 2
|
||||
104: TypePointer Uniform 15
|
||||
108: TypePointer Output 16(int)
|
||||
109(iout): 108(ptr) Variable Output
|
||||
110: 16(int) Constant 3
|
||||
111: TypePointer Uniform 16(int)
|
||||
114: TypePointer UniformConstant 41(int)
|
||||
115(uiuin): 114(ptr) Variable UniformConstant
|
||||
119: TypeVector 16(int) 2
|
||||
120: TypePointer Input 119(ivec2)
|
||||
121(aiv2): 120(ptr) Variable Input
|
||||
122: 41(int) Constant 1
|
||||
123: TypePointer Input 16(int)
|
||||
127(S): TypeStruct 14(fvec3) 6(float)
|
||||
128: TypePointer Output 127(S)
|
||||
129(s): 128(ptr) Variable Output
|
||||
132: 41(int) Constant 0
|
||||
133: TypePointer Input 6(float)
|
||||
136: TypePointer Output 6(float)
|
||||
138: TypePointer Uniform 14(fvec3)
|
||||
141: 6(float) Constant 1065353216
|
||||
142: 14(fvec3) ConstantComposite 141 141 141
|
||||
143: TypeVector 78(bool) 3
|
||||
149: TypePointer Uniform 42(ivec3)
|
||||
152: 41(int) Constant 5
|
||||
153: 42(ivec3) ConstantComposite 152 152 152
|
||||
163(gl_VertexID): 123(ptr) Variable Input
|
||||
164(gl_InstanceID): 123(ptr) Variable Input
|
||||
4(main): 2 Function None 3
|
||||
5: Label
|
||||
12: 7(fvec4) Load 11(p)
|
||||
22: 21(ptr) AccessChain 19(tblock) 20
|
||||
23: 13 Load 22
|
||||
25: 21(ptr) AccessChain 19(tblock) 24
|
||||
26: 13 Load 25
|
||||
27: 7(fvec4) CompositeExtract 23 0
|
||||
28: 7(fvec4) CompositeExtract 26 0
|
||||
29: 7(fvec4) FAdd 27 28
|
||||
30: 7(fvec4) CompositeExtract 23 1
|
||||
31: 7(fvec4) CompositeExtract 26 1
|
||||
32: 7(fvec4) FAdd 30 31
|
||||
33: 7(fvec4) CompositeExtract 23 2
|
||||
34: 7(fvec4) CompositeExtract 26 2
|
||||
35: 7(fvec4) FAdd 33 34
|
||||
36: 7(fvec4) CompositeExtract 23 3
|
||||
37: 7(fvec4) CompositeExtract 26 3
|
||||
38: 7(fvec4) FAdd 36 37
|
||||
39: 13 CompositeConstruct 29 32 35 38
|
||||
48: 21(ptr) AccessChain 47 24
|
||||
49: 13 Load 48
|
||||
50: 7(fvec4) CompositeExtract 39 0
|
||||
51: 7(fvec4) CompositeExtract 49 0
|
||||
52: 7(fvec4) FAdd 50 51
|
||||
53: 7(fvec4) CompositeExtract 39 1
|
||||
54: 7(fvec4) CompositeExtract 49 1
|
||||
55: 7(fvec4) FAdd 53 54
|
||||
56: 7(fvec4) CompositeExtract 39 2
|
||||
57: 7(fvec4) CompositeExtract 49 2
|
||||
58: 7(fvec4) FAdd 56 57
|
||||
59: 7(fvec4) CompositeExtract 39 3
|
||||
60: 7(fvec4) CompositeExtract 49 3
|
||||
61: 7(fvec4) FAdd 59 60
|
||||
62: 13 CompositeConstruct 52 55 58 61
|
||||
63: 21(ptr) AccessChain 47 20
|
||||
64: 13 Load 63
|
||||
65: 7(fvec4) CompositeExtract 62 0
|
||||
66: 7(fvec4) CompositeExtract 64 0
|
||||
67: 7(fvec4) FAdd 65 66
|
||||
68: 7(fvec4) CompositeExtract 62 1
|
||||
69: 7(fvec4) CompositeExtract 64 1
|
||||
70: 7(fvec4) FAdd 68 69
|
||||
71: 7(fvec4) CompositeExtract 62 2
|
||||
72: 7(fvec4) CompositeExtract 64 2
|
||||
73: 7(fvec4) FAdd 71 72
|
||||
74: 7(fvec4) CompositeExtract 62 3
|
||||
75: 7(fvec4) CompositeExtract 64 3
|
||||
76: 7(fvec4) FAdd 74 75
|
||||
77: 13 CompositeConstruct 67 70 73 76
|
||||
82: 21(ptr) AccessChain 81 24
|
||||
83: 13 Load 82
|
||||
84: 7(fvec4) CompositeExtract 77 0
|
||||
85: 7(fvec4) CompositeExtract 83 0
|
||||
86: 7(fvec4) FAdd 84 85
|
||||
87: 7(fvec4) CompositeExtract 77 1
|
||||
88: 7(fvec4) CompositeExtract 83 1
|
||||
89: 7(fvec4) FAdd 87 88
|
||||
90: 7(fvec4) CompositeExtract 77 2
|
||||
91: 7(fvec4) CompositeExtract 83 2
|
||||
92: 7(fvec4) FAdd 90 91
|
||||
93: 7(fvec4) CompositeExtract 77 3
|
||||
94: 7(fvec4) CompositeExtract 83 3
|
||||
95: 7(fvec4) FAdd 93 94
|
||||
96: 13 CompositeConstruct 86 89 92 95
|
||||
97: 7(fvec4) VectorTimesMatrix 12 96
|
||||
Store 9(pos) 97
|
||||
102: 14(fvec3) Load 101(c)
|
||||
105: 104(ptr) AccessChain 19(tblock) 103
|
||||
106: 15 Load 105
|
||||
107: 14(fvec3) VectorTimesMatrix 102 106
|
||||
Store 99(color) 107
|
||||
112: 111(ptr) AccessChain 19(tblock) 110
|
||||
113: 16(int) Load 112
|
||||
116: 41(int) Load 115(uiuin)
|
||||
117: 16(int) Bitcast 116
|
||||
118: 16(int) IAdd 113 117
|
||||
124: 123(ptr) AccessChain 121(aiv2) 122
|
||||
125: 16(int) Load 124
|
||||
126: 16(int) IAdd 118 125
|
||||
Store 109(iout) 126
|
||||
130: 14(fvec3) Load 101(c)
|
||||
131: 98(ptr) AccessChain 129(s) 20
|
||||
Store 131 130
|
||||
134: 133(ptr) AccessChain 11(p) 132
|
||||
135: 6(float) Load 134
|
||||
137: 136(ptr) AccessChain 129(s) 24
|
||||
Store 137 135
|
||||
139: 138(ptr) AccessChain 47 103 24
|
||||
140: 14(fvec3) Load 139
|
||||
144: 143(bvec3) FOrdNotEqual 140 142
|
||||
145: 78(bool) Any 144
|
||||
146: 78(bool) LogicalNot 145
|
||||
SelectionMerge 148 None
|
||||
BranchConditional 146 147 148
|
||||
147: Label
|
||||
150: 149(ptr) AccessChain 47 110 103
|
||||
151: 42(ivec3) Load 150
|
||||
154: 143(bvec3) INotEqual 151 153
|
||||
155: 78(bool) Any 154
|
||||
Branch 148
|
||||
148: Label
|
||||
156: 78(bool) Phi 145 5 155 147
|
||||
SelectionMerge 158 None
|
||||
BranchConditional 156 157 158
|
||||
157: Label
|
||||
159: 98(ptr) AccessChain 129(s) 20
|
||||
160: 14(fvec3) Load 159
|
||||
161: 14(fvec3) CompositeConstruct 141 141 141
|
||||
162: 14(fvec3) FAdd 160 161
|
||||
Store 159 162
|
||||
Branch 158
|
||||
158: Label
|
||||
Return
|
||||
FunctionEnd
|
||||
|
||||
Reference in New Issue
Block a user