Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
G
glslang
Project
Overview
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
Chen Yisong
glslang
Commits
fa4952c3
Commit
fa4952c3
authored
Jul 20, 2018
by
John Kessenich
Browse files
Options
Browse Files
Download
Plain Diff
Merge branch 'zeux-master'
parents
81793ad2
5a7321eb
Hide whitespace changes
Inline
Side-by-side
Showing
3 changed files
with
241 additions
and
265 deletions
+241
-265
SpvBuilder.cpp
SPIRV/SpvBuilder.cpp
+31
-1
hlsl.cbuffer-identifier.vert.out
Test/baseResults/hlsl.cbuffer-identifier.vert.out
+56
-69
hlsl.mul-truncate.frag.out
Test/baseResults/hlsl.mul-truncate.frag.out
+154
-195
No files found.
SPIRV/SpvBuilder.cpp
View file @
fa4952c3
...
...
@@ -2031,7 +2031,37 @@ Id Builder::createMatrixConstructor(Decoration precision, const std::vector<Id>&
Instruction
*
instr
=
module
.
getInstruction
(
componentTypeId
);
Id
bitCount
=
instr
->
getIdOperand
(
0
);
// Will use a two step process
// Optimize matrix constructed from a bigger matrix
if
(
isMatrix
(
sources
[
0
])
&&
getNumColumns
(
sources
[
0
])
>=
numCols
&&
getNumRows
(
sources
[
0
])
>=
numRows
)
{
// To truncate the matrix to a smaller number of rows/columns, we need to:
// 1. For each column, extract the column and truncate it to the required size using shuffle
// 2. Assemble the resulting matrix from all columns
Id
matrix
=
sources
[
0
];
Id
columnTypeId
=
getContainedTypeId
(
resultTypeId
);
Id
sourceColumnTypeId
=
getContainedTypeId
(
getTypeId
(
matrix
));
std
::
vector
<
unsigned
>
channels
;
for
(
int
row
=
0
;
row
<
numRows
;
++
row
)
channels
.
push_back
(
row
);
std
::
vector
<
Id
>
matrixColumns
;
for
(
int
col
=
0
;
col
<
numCols
;
++
col
)
{
std
::
vector
<
unsigned
>
indexes
;
indexes
.
push_back
(
col
);
Id
colv
=
createCompositeExtract
(
matrix
,
sourceColumnTypeId
,
indexes
);
setPrecision
(
colv
,
precision
);
if
(
numRows
!=
getNumRows
(
matrix
))
{
matrixColumns
.
push_back
(
createRvalueSwizzle
(
precision
,
columnTypeId
,
colv
,
channels
));
}
else
{
matrixColumns
.
push_back
(
colv
);
}
}
return
setPrecision
(
createCompositeConstruct
(
resultTypeId
,
matrixColumns
),
precision
);
}
// Otherwise, will use a two step process
// 1. make a compile-time 2D array of values
// 2. construct a matrix from that array
...
...
Test/baseResults/hlsl.cbuffer-identifier.vert.out
View file @
fa4952c3
...
...
@@ -251,12 +251,12 @@ Shader version: 500
// Module Version 10000
// Generated by (magic number): 80007
// Id's are bound by
106
// Id's are bound by
93
Capability Shader
1: ExtInstImport "GLSL.std.450"
MemoryModel Logical GLSL450
EntryPoint Vertex 4 "main"
87 91 99 103
EntryPoint Vertex 4 "main"
74 78 86 90
Source HLSL 500
Name 4 "main"
Name 9 "VS_INPUT"
...
...
@@ -274,13 +274,13 @@ Shader version: 500
MemberName 28(C) 1 "View"
MemberName 28(C) 2 "Projection"
Name 30 ""
Name
85
"input"
Name
87
"input.Pos"
Name
91
"input.Norm"
Name
94
"flattenTemp"
Name
95
"param"
Name
99
"@entryPointOutput.Pos"
Name
103
"@entryPointOutput.Norm"
Name
72
"input"
Name
74
"input.Pos"
Name
78
"input.Norm"
Name
81
"flattenTemp"
Name
82
"param"
Name
86
"@entryPointOutput.Pos"
Name
90
"@entryPointOutput.Norm"
MemberDecorate 28(C) 0 RowMajor
MemberDecorate 28(C) 0 Offset 0
MemberDecorate 28(C) 0 MatrixStride 16
...
...
@@ -293,10 +293,10 @@ Shader version: 500
Decorate 28(C) Block
Decorate 30 DescriptorSet 0
Decorate 30 Binding 0
Decorate
87
(input.Pos) Location 0
Decorate
91
(input.Norm) Location 1
Decorate
99
(@entryPointOutput.Pos) BuiltIn Position
Decorate
103
(@entryPointOutput.Norm) Location 0
Decorate
74
(input.Pos) Location 0
Decorate
78
(input.Norm) Location 1
Decorate
86
(@entryPointOutput.Pos) BuiltIn Position
Decorate
90
(@entryPointOutput.Norm) Location 0
2: TypeVoid
3: TypeFunction 2
6: TypeFloat 32
...
...
@@ -324,37 +324,36 @@ Shader version: 500
39: 16(int) Constant 1
46: 16(int) Constant 2
55: TypeMatrix 7(fvec4) 3
56: 6(float) Constant 1065353216
73: TypePointer Function 8(fvec3)
86: TypePointer Input 7(fvec4)
87(input.Pos): 86(ptr) Variable Input
90: TypePointer Input 8(fvec3)
91(input.Norm): 90(ptr) Variable Input
98: TypePointer Output 7(fvec4)
99(@entryPointOutput.Pos): 98(ptr) Variable Output
102: TypePointer Output 8(fvec3)
103(@entryPointOutput.Norm): 102(ptr) Variable Output
60: TypePointer Function 8(fvec3)
73: TypePointer Input 7(fvec4)
74(input.Pos): 73(ptr) Variable Input
77: TypePointer Input 8(fvec3)
78(input.Norm): 77(ptr) Variable Input
85: TypePointer Output 7(fvec4)
86(@entryPointOutput.Pos): 85(ptr) Variable Output
89: TypePointer Output 8(fvec3)
90(@entryPointOutput.Norm): 89(ptr) Variable Output
4(main): 2 Function None 3
5: Label
85
(input): 10(ptr) Variable Function
94
(flattenTemp): 20(ptr) Variable Function
95
(param): 10(ptr) Variable Function
88: 7(fvec4) Load 87
(input.Pos)
89: 34(ptr) AccessChain 85
(input) 26
Store
89 88
92: 8(fvec3) Load 91
(input.Norm)
93: 73(ptr) AccessChain 85
(input) 39
Store
93 92
96: 9(VS_INPUT) Load 85
(input)
Store
95(param) 96
97:11(PS_INPUT) FunctionCall 14(@main(struct-VS_INPUT-vf4-vf31;) 95
(param)
Store
94(flattenTemp) 97
100: 34(ptr) AccessChain 94
(flattenTemp) 26
101: 7(fvec4) Load 100
Store
99(@entryPointOutput.Pos) 101
104: 73(ptr) AccessChain 94
(flattenTemp) 39
105: 8(fvec3) Load 104
Store
103(@entryPointOutput.Norm) 105
72
(input): 10(ptr) Variable Function
81
(flattenTemp): 20(ptr) Variable Function
82
(param): 10(ptr) Variable Function
75: 7(fvec4) Load 74
(input.Pos)
76: 34(ptr) AccessChain 72
(input) 26
Store
76 75
79: 8(fvec3) Load 78
(input.Norm)
80: 60(ptr) AccessChain 72
(input) 39
Store
80 79
83: 9(VS_INPUT) Load 72
(input)
Store
82(param) 83
84:11(PS_INPUT) FunctionCall 14(@main(struct-VS_INPUT-vf4-vf31;) 82
(param)
Store
81(flattenTemp) 84
87: 34(ptr) AccessChain 81
(flattenTemp) 26
88: 7(fvec4) Load 87
Store
86(@entryPointOutput.Pos) 88
91: 60(ptr) AccessChain 81
(flattenTemp) 39
92: 8(fvec3) Load 91
Store
90(@entryPointOutput.Norm) 92
Return
FunctionEnd
14(@main(struct-VS_INPUT-vf4-vf31;):11(PS_INPUT) Function None 12
...
...
@@ -387,31 +386,19 @@ Shader version: 500
Store 52 51
53: 31(ptr) AccessChain 30 26
54: 27 Load 53
57: 6(float) CompositeExtract 54 0 0
58: 6(float) CompositeExtract 54 0 1
59: 6(float) CompositeExtract 54 0 2
60: 6(float) CompositeExtract 54 0 3
61: 6(float) CompositeExtract 54 1 0
62: 6(float) CompositeExtract 54 1 1
63: 6(float) CompositeExtract 54 1 2
64: 6(float) CompositeExtract 54 1 3
65: 6(float) CompositeExtract 54 2 0
66: 6(float) CompositeExtract 54 2 1
67: 6(float) CompositeExtract 54 2 2
68: 6(float) CompositeExtract 54 2 3
69: 7(fvec4) CompositeConstruct 57 58 59 60
70: 7(fvec4) CompositeConstruct 61 62 63 64
71: 7(fvec4) CompositeConstruct 65 66 67 68
72: 55 CompositeConstruct 69 70 71
74: 73(ptr) AccessChain 13(input) 39
75: 8(fvec3) Load 74
76: 7(fvec4) MatrixTimesVector 72 75
77: 6(float) CompositeExtract 76 0
78: 6(float) CompositeExtract 76 1
79: 6(float) CompositeExtract 76 2
80: 8(fvec3) CompositeConstruct 77 78 79
81: 73(ptr) AccessChain 21(output) 39
Store 81 80
82:11(PS_INPUT) Load 21(output)
ReturnValue 82
56: 7(fvec4) CompositeExtract 54 0
57: 7(fvec4) CompositeExtract 54 1
58: 7(fvec4) CompositeExtract 54 2
59: 55 CompositeConstruct 56 57 58
61: 60(ptr) AccessChain 13(input) 39
62: 8(fvec3) Load 61
63: 7(fvec4) MatrixTimesVector 59 62
64: 6(float) CompositeExtract 63 0
65: 6(float) CompositeExtract 63 1
66: 6(float) CompositeExtract 63 2
67: 8(fvec3) CompositeConstruct 64 65 66
68: 60(ptr) AccessChain 21(output) 39
Store 68 67
69:11(PS_INPUT) Load 21(output)
ReturnValue 69
FunctionEnd
Test/baseResults/hlsl.mul-truncate.frag.out
View file @
fa4952c3
...
...
@@ -384,12 +384,12 @@ gl_FragCoord origin is upper left
// Module Version 10000
// Generated by (magic number): 80007
// Id's are bound by
231
// Id's are bound by
190
Capability Shader
1: ExtInstImport "GLSL.std.450"
MemoryModel Logical GLSL450
EntryPoint Fragment 4 "main"
229
EntryPoint Fragment 4 "main"
188
ExecutionMode 4 OriginUpperLeft
Source HLSL 500
Name 4 "main"
...
...
@@ -408,14 +408,14 @@ gl_FragCoord origin is upper left
Name 23 ""
Name 37 "r01"
Name 49 "r10"
Name
75
"r11"
Name
87
"r20"
Name
110
"r21"
Name 1
24
"r30"
Name 1
44
"r31"
Name 1
62
"r32"
Name 1
81
"r33"
Name
229
"@entryPointOutput"
Name
61
"r11"
Name
73
"r20"
Name
88
"r21"
Name 1
02
"r30"
Name 1
18
"r31"
Name 1
33
"r32"
Name 1
46
"r33"
Name
188
"@entryPointOutput"
MemberDecorate 21(Matrix) 0 RowMajor
MemberDecorate 21(Matrix) 0 Offset 0
MemberDecorate 21(Matrix) 0 MatrixStride 16
...
...
@@ -439,7 +439,7 @@ gl_FragCoord origin is upper left
MemberDecorate 21(Matrix) 8 Offset 352
Decorate 21(Matrix) Block
Decorate 23 DescriptorSet 0
Decorate
229
(@entryPointOutput) Location 0
Decorate
188
(@entryPointOutput) Location 0
2: TypeVoid
3: TypeFunction 2
6: TypeFloat 32
...
...
@@ -467,32 +467,30 @@ gl_FragCoord origin is upper left
48: TypePointer Function 7(fvec4)
50: 24(int) Constant 0
51: TypePointer Uniform 13
54: 6(float) Constant 1065353216
55: 6(float) Constant 0
76: 24(int) Constant 2
77: TypePointer Uniform 16
117: 24(int) Constant 1
118: TypePointer Uniform 15
122: TypeMatrix 14(fvec3) 2
123: TypePointer Function 122
125: 24(int) Constant 3
126: TypePointer Uniform 17
129: 24(int) Constant 4
130: TypePointer Uniform 18
143: TypePointer Function 16
149: TypeMatrix 19(fvec2) 3
161: TypePointer Function 149
163: 24(int) Constant 5
164: TypePointer Uniform 20
180: TypePointer Function 15
209: TypeInt 32 0
210: 209(int) Constant 0
228: TypePointer Output 7(fvec4)
229(@entryPointOutput): 228(ptr) Variable Output
62: 24(int) Constant 2
63: TypePointer Uniform 16
95: 24(int) Constant 1
96: TypePointer Uniform 15
100: TypeMatrix 14(fvec3) 2
101: TypePointer Function 100
103: 24(int) Constant 3
104: TypePointer Uniform 17
107: 24(int) Constant 4
108: TypePointer Uniform 18
117: TypePointer Function 16
123: TypeMatrix 19(fvec2) 3
132: TypePointer Function 123
134: 24(int) Constant 5
135: TypePointer Uniform 20
145: TypePointer Function 15
168: TypeInt 32 0
169: 168(int) Constant 0
187: TypePointer Output 7(fvec4)
188(@entryPointOutput): 187(ptr) Variable Output
4(main): 2 Function None 3
5: Label
230
: 7(fvec4) FunctionCall 9(@main()
Store
229(@entryPointOutput) 230
189
: 7(fvec4) FunctionCall 9(@main()
Store
188(@entryPointOutput) 189
Return
FunctionEnd
9(@main(): 7(fvec4) Function None 8
...
...
@@ -500,13 +498,13 @@ gl_FragCoord origin is upper left
12(r00): 11(ptr) Variable Function
37(r01): 11(ptr) Variable Function
49(r10): 48(ptr) Variable Function
75
(r11): 48(ptr) Variable Function
87
(r20): 48(ptr) Variable Function
110
(r21): 48(ptr) Variable Function
1
24(r30): 123
(ptr) Variable Function
1
44(r31): 143
(ptr) Variable Function
1
62(r32): 161
(ptr) Variable Function
1
81(r33): 180
(ptr) Variable Function
61
(r11): 48(ptr) Variable Function
73
(r20): 48(ptr) Variable Function
88
(r21): 48(ptr) Variable Function
1
02(r30): 101
(ptr) Variable Function
1
18(r31): 117
(ptr) Variable Function
1
33(r32): 132
(ptr) Variable Function
1
46(r33): 145
(ptr) Variable Function
27: 26(ptr) AccessChain 23 25
28: 19(fvec2) Load 27
31: 30(ptr) AccessChain 23 29
...
...
@@ -527,158 +525,119 @@ gl_FragCoord origin is upper left
Store 37(r01) 47
52: 51(ptr) AccessChain 23 50
53: 13 Load 52
56: 6(float) CompositeExtract 53 0 0
57: 6(float) CompositeExtract 53 0 1
58: 6(float) CompositeExtract 53 0 2
59: 6(float) CompositeExtract 53 0 3
60: 6(float) CompositeExtract 53 1 0
61: 6(float) CompositeExtract 53 1 1
62: 6(float) CompositeExtract 53 1 2
63: 6(float) CompositeExtract 53 1 3
64: 6(float) CompositeExtract 53 2 0
65: 6(float) CompositeExtract 53 2 1
66: 6(float) CompositeExtract 53 2 2
67: 6(float) CompositeExtract 53 2 3
68: 7(fvec4) CompositeConstruct 56 57 58 59
69: 7(fvec4) CompositeConstruct 60 61 62 63
70: 7(fvec4) CompositeConstruct 64 65 66 67
71: 16 CompositeConstruct 68 69 70
72: 30(ptr) AccessChain 23 29
73: 14(fvec3) Load 72
74: 7(fvec4) MatrixTimesVector 71 73
Store 49(r10) 74
78: 77(ptr) AccessChain 23 76
79: 16 Load 78
80: 39(ptr) AccessChain 23 38
81: 7(fvec4) Load 80
82: 6(float) CompositeExtract 81 0
83: 6(float) CompositeExtract 81 1
84: 6(float) CompositeExtract 81 2
85: 14(fvec3) CompositeConstruct 82 83 84
86: 7(fvec4) MatrixTimesVector 79 85
Store 75(r11) 86
88: 30(ptr) AccessChain 23 29
89: 14(fvec3) Load 88
90: 51(ptr) AccessChain 23 50
91: 13 Load 90
92: 6(float) CompositeExtract 91 0 0
93: 6(float) CompositeExtract 91 0 1
94: 6(float) CompositeExtract 91 0 2
95: 6(float) CompositeExtract 91 1 0
96: 6(float) CompositeExtract 91 1 1
97: 6(float) CompositeExtract 91 1 2
98: 6(float) CompositeExtract 91 2 0
99: 6(float) CompositeExtract 91 2 1
100: 6(float) CompositeExtract 91 2 2
101: 6(float) CompositeExtract 91 3 0
102: 6(float) CompositeExtract 91 3 1
103: 6(float) CompositeExtract 91 3 2
104: 14(fvec3) CompositeConstruct 92 93 94
105: 14(fvec3) CompositeConstruct 95 96 97
106: 14(fvec3) CompositeConstruct 98 99 100
107: 14(fvec3) CompositeConstruct 101 102 103
108: 15 CompositeConstruct 104 105 106 107
109: 7(fvec4) VectorTimesMatrix 89 108
Store 87(r20) 109
111: 39(ptr) AccessChain 23 38
112: 7(fvec4) Load 111
113: 6(float) CompositeExtract 112 0
114: 6(float) CompositeExtract 112 1
115: 6(float) CompositeExtract 112 2
116: 14(fvec3) CompositeConstruct 113 114 115
119: 118(ptr) AccessChain 23 117
120: 15 Load 119
121: 7(fvec4) VectorTimesMatrix 116 120
Store 110(r21) 121
127: 126(ptr) AccessChain 23 125
128: 17 Load 127
131: 130(ptr) AccessChain 23 129
132: 18 Load 131
133: 6(float) CompositeExtract 132 0 0
134: 6(float) CompositeExtract 132 0 1
135: 6(float) CompositeExtract 132 0 2
136: 6(float) CompositeExtract 132 1 0
137: 6(float) CompositeExtract 132 1 1
138: 6(float) CompositeExtract 132 1 2
139: 14(fvec3) CompositeConstruct 133 134 135
140: 14(fvec3) CompositeConstruct 136 137 138
141: 122 CompositeConstruct 139 140
142: 122 MatrixTimesMatrix 128 141
Store 124(r30) 142
145: 130(ptr) AccessChain 23 129
146: 18 Load 145
147: 126(ptr) AccessChain 23 125
54: 7(fvec4) CompositeExtract 53 0
55: 7(fvec4) CompositeExtract 53 1
56: 7(fvec4) CompositeExtract 53 2
57: 16 CompositeConstruct 54 55 56
58: 30(ptr) AccessChain 23 29
59: 14(fvec3) Load 58
60: 7(fvec4) MatrixTimesVector 57 59
Store 49(r10) 60
64: 63(ptr) AccessChain 23 62
65: 16 Load 64
66: 39(ptr) AccessChain 23 38
67: 7(fvec4) Load 66
68: 6(float) CompositeExtract 67 0
69: 6(float) CompositeExtract 67 1
70: 6(float) CompositeExtract 67 2
71: 14(fvec3) CompositeConstruct 68 69 70
72: 7(fvec4) MatrixTimesVector 65 71
Store 61(r11) 72
74: 30(ptr) AccessChain 23 29
75: 14(fvec3) Load 74
76: 51(ptr) AccessChain 23 50
77: 13 Load 76
78: 7(fvec4) CompositeExtract 77 0
79: 14(fvec3) VectorShuffle 78 78 0 1 2
80: 7(fvec4) CompositeExtract 77 1
81: 14(fvec3) VectorShuffle 80 80 0 1 2
82: 7(fvec4) CompositeExtract 77 2
83: 14(fvec3) VectorShuffle 82 82 0 1 2
84: 7(fvec4) CompositeExtract 77 3
85: 14(fvec3) VectorShuffle 84 84 0 1 2
86: 15 CompositeConstruct 79 81 83 85
87: 7(fvec4) VectorTimesMatrix 75 86
Store 73(r20) 87
89: 39(ptr) AccessChain 23 38
90: 7(fvec4) Load 89
91: 6(float) CompositeExtract 90 0
92: 6(float) CompositeExtract 90 1
93: 6(float) CompositeExtract 90 2
94: 14(fvec3) CompositeConstruct 91 92 93
97: 96(ptr) AccessChain 23 95
98: 15 Load 97
99: 7(fvec4) VectorTimesMatrix 94 98
Store 88(r21) 99
105: 104(ptr) AccessChain 23 103
106: 17 Load 105
109: 108(ptr) AccessChain 23 107
110: 18 Load 109
111: 7(fvec4) CompositeExtract 110 0
112: 14(fvec3) VectorShuffle 111 111 0 1 2
113: 7(fvec4) CompositeExtract 110 1
114: 14(fvec3) VectorShuffle 113 113 0 1 2
115: 100 CompositeConstruct 112 114
116: 100 MatrixTimesMatrix 106 115
Store 102(r30) 116
119: 108(ptr) AccessChain 23 107
120: 18 Load 119
121: 104(ptr) AccessChain 23 103
122: 17 Load 121
124: 14(fvec3) CompositeExtract 122 0
125: 19(fvec2) VectorShuffle 124 124 0 1
126: 14(fvec3) CompositeExtract 122 1
127: 19(fvec2) VectorShuffle 126 126 0 1
128: 14(fvec3) CompositeExtract 122 2
129: 19(fvec2) VectorShuffle 128 128 0 1
130: 123 CompositeConstruct 125 127 129
131: 16 MatrixTimesMatrix 120 130
Store 118(r31) 131
136: 135(ptr) AccessChain 23 134
137: 20 Load 136
138: 19(fvec2) CompositeExtract 137 0
139: 19(fvec2) CompositeExtract 137 1
140: 19(fvec2) CompositeExtract 137 2
141: 123 CompositeConstruct 138 139 140
142: 104(ptr) AccessChain 23 103
143: 17 Load 142
144: 123 MatrixTimesMatrix 141 143
Store 133(r32) 144
147: 104(ptr) AccessChain 23 103
148: 17 Load 147
150: 6(float) CompositeExtract 148 0 0
151: 6(float) CompositeExtract 148 0 1
152: 6(float) CompositeExtract 148 1 0
153: 6(float) CompositeExtract 148 1 1
154: 6(float) CompositeExtract 148 2 0
155: 6(float) CompositeExtract 148 2 1
156: 19(fvec2) CompositeConstruct 150 151
157: 19(fvec2) CompositeConstruct 152 153
158: 19(fvec2) CompositeConstruct 154 155
159: 149 CompositeConstruct 156 157 158
160: 16 MatrixTimesMatrix 146 159
Store 144(r31) 160
165: 164(ptr) AccessChain 23 163
166: 20 Load 165
167: 6(float) CompositeExtract 166 0 0
168: 6(float) CompositeExtract 166 0 1
169: 6(float) CompositeExtract 166 1 0
170: 6(float) CompositeExtract 166 1 1
171: 6(float) CompositeExtract 166 2 0
172: 6(float) CompositeExtract 166 2 1
173: 19(fvec2) CompositeConstruct 167 168
174: 19(fvec2) CompositeConstruct 169 170
175: 19(fvec2) CompositeConstruct 171 172
176: 149 CompositeConstruct 173 174 175
177: 126(ptr) AccessChain 23 125
178: 17 Load 177
179: 149 MatrixTimesMatrix 176 178
Store 162(r32) 179
182: 126(ptr) AccessChain 23 125
183: 17 Load 182
184: 6(float) CompositeExtract 183 0 0
185: 6(float) CompositeExtract 183 0 1
186: 6(float) CompositeExtract 183 0 2
187: 6(float) CompositeExtract 183 1 0
188: 6(float) CompositeExtract 183 1 1
189: 6(float) CompositeExtract 183 1 2
190: 14(fvec3) CompositeConstruct 184 185 186
191: 14(fvec3) CompositeConstruct 187 188 189
192: 122 CompositeConstruct 190 191
193: 164(ptr) AccessChain 23 163
194: 20 Load 193
195: 15 MatrixTimesMatrix 192 194
Store 181(r33) 195
196: 7(fvec4) Load 49(r10)
197: 7(fvec4) Load 75(r11)
198: 7(fvec4) FAdd 196 197
199: 7(fvec4) Load 87(r20)
200: 7(fvec4) FAdd 198 199
201: 7(fvec4) Load 110(r21)
202: 7(fvec4) FAdd 200 201
203: 6(float) Load 12(r00)
204: 7(fvec4) CompositeConstruct 203 203 203 203
205: 7(fvec4) FAdd 202 204
206: 6(float) Load 37(r01)
207: 7(fvec4) CompositeConstruct 206 206 206 206
208: 7(fvec4) FAdd 205 207
211: 11(ptr) AccessChain 124(r30) 50 210
212: 6(float) Load 211
213: 7(fvec4) CompositeConstruct 212 212 212 212
214: 7(fvec4) FAdd 208 213
215: 48(ptr) AccessChain 144(r31) 50
216: 7(fvec4) Load 215
217: 7(fvec4) FAdd 214 216
218: 11(ptr) AccessChain 162(r32) 50 210
219: 6(float) Load 218
220: 7(fvec4) CompositeConstruct 219 219 219 219
221: 7(fvec4) FAdd 217 220
222: 15 Load 181(r33)
223: 16 Transpose 222
224: 7(fvec4) CompositeExtract 223 0
225: 7(fvec4) FAdd 221 224
ReturnValue 225
149: 14(fvec3) CompositeExtract 148 0
150: 14(fvec3) CompositeExtract 148 1
151: 100 CompositeConstruct 149 150
152: 135(ptr) AccessChain 23 134
153: 20 Load 152
154: 15 MatrixTimesMatrix 151 153
Store 146(r33) 154
155: 7(fvec4) Load 49(r10)
156: 7(fvec4) Load 61(r11)
157: 7(fvec4) FAdd 155 156
158: 7(fvec4) Load 73(r20)
159: 7(fvec4) FAdd 157 158
160: 7(fvec4) Load 88(r21)
161: 7(fvec4) FAdd 159 160
162: 6(float) Load 12(r00)
163: 7(fvec4) CompositeConstruct 162 162 162 162
164: 7(fvec4) FAdd 161 163
165: 6(float) Load 37(r01)
166: 7(fvec4) CompositeConstruct 165 165 165 165
167: 7(fvec4) FAdd 164 166
170: 11(ptr) AccessChain 102(r30) 50 169
171: 6(float) Load 170
172: 7(fvec4) CompositeConstruct 171 171 171 171
173: 7(fvec4) FAdd 167 172
174: 48(ptr) AccessChain 118(r31) 50
175: 7(fvec4) Load 174
176: 7(fvec4) FAdd 173 175
177: 11(ptr) AccessChain 133(r32) 50 169
178: 6(float) Load 177
179: 7(fvec4) CompositeConstruct 178 178 178 178
180: 7(fvec4) FAdd 176 179
181: 15 Load 146(r33)
182: 16 Transpose 181
183: 7(fvec4) CompositeExtract 182 0
184: 7(fvec4) FAdd 180 183
ReturnValue 184
FunctionEnd
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment