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
Show 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>&
...
@@ -2031,7 +2031,37 @@ Id Builder::createMatrixConstructor(Decoration precision, const std::vector<Id>&
Instruction
*
instr
=
module
.
getInstruction
(
componentTypeId
);
Instruction
*
instr
=
module
.
getInstruction
(
componentTypeId
);
Id
bitCount
=
instr
->
getIdOperand
(
0
);
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
// 1. make a compile-time 2D array of values
// 2. construct a matrix from that array
// 2. construct a matrix from that array
...
...
Test/baseResults/hlsl.cbuffer-identifier.vert.out
View file @
fa4952c3
...
@@ -251,12 +251,12 @@ Shader version: 500
...
@@ -251,12 +251,12 @@ Shader version: 500
// Module Version 10000
// Module Version 10000
// Generated by (magic number): 80007
// Generated by (magic number): 80007
// Id's are bound by
106
// Id's are bound by
93
Capability Shader
Capability Shader
1: ExtInstImport "GLSL.std.450"
1: ExtInstImport "GLSL.std.450"
MemoryModel Logical GLSL450
MemoryModel Logical GLSL450
EntryPoint Vertex 4 "main"
87 91 99 103
EntryPoint Vertex 4 "main"
74 78 86 90
Source HLSL 500
Source HLSL 500
Name 4 "main"
Name 4 "main"
Name 9 "VS_INPUT"
Name 9 "VS_INPUT"
...
@@ -274,13 +274,13 @@ Shader version: 500
...
@@ -274,13 +274,13 @@ Shader version: 500
MemberName 28(C) 1 "View"
MemberName 28(C) 1 "View"
MemberName 28(C) 2 "Projection"
MemberName 28(C) 2 "Projection"
Name 30 ""
Name 30 ""
Name
85
"input"
Name
72
"input"
Name
87
"input.Pos"
Name
74
"input.Pos"
Name
91
"input.Norm"
Name
78
"input.Norm"
Name
94
"flattenTemp"
Name
81
"flattenTemp"
Name
95
"param"
Name
82
"param"
Name
99
"@entryPointOutput.Pos"
Name
86
"@entryPointOutput.Pos"
Name
103
"@entryPointOutput.Norm"
Name
90
"@entryPointOutput.Norm"
MemberDecorate 28(C) 0 RowMajor
MemberDecorate 28(C) 0 RowMajor
MemberDecorate 28(C) 0 Offset 0
MemberDecorate 28(C) 0 Offset 0
MemberDecorate 28(C) 0 MatrixStride 16
MemberDecorate 28(C) 0 MatrixStride 16
...
@@ -293,10 +293,10 @@ Shader version: 500
...
@@ -293,10 +293,10 @@ Shader version: 500
Decorate 28(C) Block
Decorate 28(C) Block
Decorate 30 DescriptorSet 0
Decorate 30 DescriptorSet 0
Decorate 30 Binding 0
Decorate 30 Binding 0
Decorate
87
(input.Pos) Location 0
Decorate
74
(input.Pos) Location 0
Decorate
91
(input.Norm) Location 1
Decorate
78
(input.Norm) Location 1
Decorate
99
(@entryPointOutput.Pos) BuiltIn Position
Decorate
86
(@entryPointOutput.Pos) BuiltIn Position
Decorate
103
(@entryPointOutput.Norm) Location 0
Decorate
90
(@entryPointOutput.Norm) Location 0
2: TypeVoid
2: TypeVoid
3: TypeFunction 2
3: TypeFunction 2
6: TypeFloat 32
6: TypeFloat 32
...
@@ -324,37 +324,36 @@ Shader version: 500
...
@@ -324,37 +324,36 @@ Shader version: 500
39: 16(int) Constant 1
39: 16(int) Constant 1
46: 16(int) Constant 2
46: 16(int) Constant 2
55: TypeMatrix 7(fvec4) 3
55: TypeMatrix 7(fvec4) 3
56: 6(float) Constant 1065353216
60: TypePointer Function 8(fvec3)
73: TypePointer Function 8(fvec3)
73: TypePointer Input 7(fvec4)
86: TypePointer Input 7(fvec4)
74(input.Pos): 73(ptr) Variable Input
87(input.Pos): 86(ptr) Variable Input
77: TypePointer Input 8(fvec3)
90: TypePointer Input 8(fvec3)
78(input.Norm): 77(ptr) Variable Input
91(input.Norm): 90(ptr) Variable Input
85: TypePointer Output 7(fvec4)
98: TypePointer Output 7(fvec4)
86(@entryPointOutput.Pos): 85(ptr) Variable Output
99(@entryPointOutput.Pos): 98(ptr) Variable Output
89: TypePointer Output 8(fvec3)
102: TypePointer Output 8(fvec3)
90(@entryPointOutput.Norm): 89(ptr) Variable Output
103(@entryPointOutput.Norm): 102(ptr) Variable Output
4(main): 2 Function None 3
4(main): 2 Function None 3
5: Label
5: Label
85
(input): 10(ptr) Variable Function
72
(input): 10(ptr) Variable Function
94
(flattenTemp): 20(ptr) Variable Function
81
(flattenTemp): 20(ptr) Variable Function
95
(param): 10(ptr) Variable Function
82
(param): 10(ptr) Variable Function
88: 7(fvec4) Load 87
(input.Pos)
75: 7(fvec4) Load 74
(input.Pos)
89: 34(ptr) AccessChain 85
(input) 26
76: 34(ptr) AccessChain 72
(input) 26
Store
89 88
Store
76 75
92: 8(fvec3) Load 91
(input.Norm)
79: 8(fvec3) Load 78
(input.Norm)
93: 73(ptr) AccessChain 85
(input) 39
80: 60(ptr) AccessChain 72
(input) 39
Store
93 92
Store
80 79
96: 9(VS_INPUT) Load 85
(input)
83: 9(VS_INPUT) Load 72
(input)
Store
95(param) 96
Store
82(param) 83
97:11(PS_INPUT) FunctionCall 14(@main(struct-VS_INPUT-vf4-vf31;) 95
(param)
84:11(PS_INPUT) FunctionCall 14(@main(struct-VS_INPUT-vf4-vf31;) 82
(param)
Store
94(flattenTemp) 97
Store
81(flattenTemp) 84
100: 34(ptr) AccessChain 94
(flattenTemp) 26
87: 34(ptr) AccessChain 81
(flattenTemp) 26
101: 7(fvec4) Load 100
88: 7(fvec4) Load 87
Store
99(@entryPointOutput.Pos) 101
Store
86(@entryPointOutput.Pos) 88
104: 73(ptr) AccessChain 94
(flattenTemp) 39
91: 60(ptr) AccessChain 81
(flattenTemp) 39
105: 8(fvec3) Load 104
92: 8(fvec3) Load 91
Store
103(@entryPointOutput.Norm) 105
Store
90(@entryPointOutput.Norm) 92
Return
Return
FunctionEnd
FunctionEnd
14(@main(struct-VS_INPUT-vf4-vf31;):11(PS_INPUT) Function None 12
14(@main(struct-VS_INPUT-vf4-vf31;):11(PS_INPUT) Function None 12
...
@@ -387,31 +386,19 @@ Shader version: 500
...
@@ -387,31 +386,19 @@ Shader version: 500
Store 52 51
Store 52 51
53: 31(ptr) AccessChain 30 26
53: 31(ptr) AccessChain 30 26
54: 27 Load 53
54: 27 Load 53
57: 6(float) CompositeExtract 54 0 0
56: 7(fvec4) CompositeExtract 54 0
58: 6(float) CompositeExtract 54 0 1
57: 7(fvec4) CompositeExtract 54 1
59: 6(float) CompositeExtract 54 0 2
58: 7(fvec4) CompositeExtract 54 2
60: 6(float) CompositeExtract 54 0 3
59: 55 CompositeConstruct 56 57 58
61: 6(float) CompositeExtract 54 1 0
61: 60(ptr) AccessChain 13(input) 39
62: 6(float) CompositeExtract 54 1 1
62: 8(fvec3) Load 61
63: 6(float) CompositeExtract 54 1 2
63: 7(fvec4) MatrixTimesVector 59 62
64: 6(float) CompositeExtract 54 1 3
64: 6(float) CompositeExtract 63 0
65: 6(float) CompositeExtract 54 2 0
65: 6(float) CompositeExtract 63 1
66: 6(float) CompositeExtract 54 2 1
66: 6(float) CompositeExtract 63 2
67: 6(float) CompositeExtract 54 2 2
67: 8(fvec3) CompositeConstruct 64 65 66
68: 6(float) CompositeExtract 54 2 3
68: 60(ptr) AccessChain 21(output) 39
69: 7(fvec4) CompositeConstruct 57 58 59 60
Store 68 67
70: 7(fvec4) CompositeConstruct 61 62 63 64
69:11(PS_INPUT) Load 21(output)
71: 7(fvec4) CompositeConstruct 65 66 67 68
ReturnValue 69
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
FunctionEnd
FunctionEnd
Test/baseResults/hlsl.mul-truncate.frag.out
View file @
fa4952c3
...
@@ -384,12 +384,12 @@ gl_FragCoord origin is upper left
...
@@ -384,12 +384,12 @@ gl_FragCoord origin is upper left
// Module Version 10000
// Module Version 10000
// Generated by (magic number): 80007
// Generated by (magic number): 80007
// Id's are bound by
231
// Id's are bound by
190
Capability Shader
Capability Shader
1: ExtInstImport "GLSL.std.450"
1: ExtInstImport "GLSL.std.450"
MemoryModel Logical GLSL450
MemoryModel Logical GLSL450
EntryPoint Fragment 4 "main"
229
EntryPoint Fragment 4 "main"
188
ExecutionMode 4 OriginUpperLeft
ExecutionMode 4 OriginUpperLeft
Source HLSL 500
Source HLSL 500
Name 4 "main"
Name 4 "main"
...
@@ -408,14 +408,14 @@ gl_FragCoord origin is upper left
...
@@ -408,14 +408,14 @@ gl_FragCoord origin is upper left
Name 23 ""
Name 23 ""
Name 37 "r01"
Name 37 "r01"
Name 49 "r10"
Name 49 "r10"
Name
75
"r11"
Name
61
"r11"
Name
87
"r20"
Name
73
"r20"
Name
110
"r21"
Name
88
"r21"
Name 1
24
"r30"
Name 1
02
"r30"
Name 1
44
"r31"
Name 1
18
"r31"
Name 1
62
"r32"
Name 1
33
"r32"
Name 1
81
"r33"
Name 1
46
"r33"
Name
229
"@entryPointOutput"
Name
188
"@entryPointOutput"
MemberDecorate 21(Matrix) 0 RowMajor
MemberDecorate 21(Matrix) 0 RowMajor
MemberDecorate 21(Matrix) 0 Offset 0
MemberDecorate 21(Matrix) 0 Offset 0
MemberDecorate 21(Matrix) 0 MatrixStride 16
MemberDecorate 21(Matrix) 0 MatrixStride 16
...
@@ -439,7 +439,7 @@ gl_FragCoord origin is upper left
...
@@ -439,7 +439,7 @@ gl_FragCoord origin is upper left
MemberDecorate 21(Matrix) 8 Offset 352
MemberDecorate 21(Matrix) 8 Offset 352
Decorate 21(Matrix) Block
Decorate 21(Matrix) Block
Decorate 23 DescriptorSet 0
Decorate 23 DescriptorSet 0
Decorate
229
(@entryPointOutput) Location 0
Decorate
188
(@entryPointOutput) Location 0
2: TypeVoid
2: TypeVoid
3: TypeFunction 2
3: TypeFunction 2
6: TypeFloat 32
6: TypeFloat 32
...
@@ -467,32 +467,30 @@ gl_FragCoord origin is upper left
...
@@ -467,32 +467,30 @@ gl_FragCoord origin is upper left
48: TypePointer Function 7(fvec4)
48: TypePointer Function 7(fvec4)
50: 24(int) Constant 0
50: 24(int) Constant 0
51: TypePointer Uniform 13
51: TypePointer Uniform 13
54: 6(float) Constant 1065353216
62: 24(int) Constant 2
55: 6(float) Constant 0
63: TypePointer Uniform 16
76: 24(int) Constant 2
95: 24(int) Constant 1
77: TypePointer Uniform 16
96: TypePointer Uniform 15
117: 24(int) Constant 1
100: TypeMatrix 14(fvec3) 2
118: TypePointer Uniform 15
101: TypePointer Function 100
122: TypeMatrix 14(fvec3) 2
103: 24(int) Constant 3
123: TypePointer Function 122
104: TypePointer Uniform 17
125: 24(int) Constant 3
107: 24(int) Constant 4
126: TypePointer Uniform 17
108: TypePointer Uniform 18
129: 24(int) Constant 4
117: TypePointer Function 16
130: TypePointer Uniform 18
123: TypeMatrix 19(fvec2) 3
143: TypePointer Function 16
132: TypePointer Function 123
149: TypeMatrix 19(fvec2) 3
134: 24(int) Constant 5
161: TypePointer Function 149
135: TypePointer Uniform 20
163: 24(int) Constant 5
145: TypePointer Function 15
164: TypePointer Uniform 20
168: TypeInt 32 0
180: TypePointer Function 15
169: 168(int) Constant 0
209: TypeInt 32 0
187: TypePointer Output 7(fvec4)
210: 209(int) Constant 0
188(@entryPointOutput): 187(ptr) Variable Output
228: TypePointer Output 7(fvec4)
229(@entryPointOutput): 228(ptr) Variable Output
4(main): 2 Function None 3
4(main): 2 Function None 3
5: Label
5: Label
230
: 7(fvec4) FunctionCall 9(@main()
189
: 7(fvec4) FunctionCall 9(@main()
Store
229(@entryPointOutput) 230
Store
188(@entryPointOutput) 189
Return
Return
FunctionEnd
FunctionEnd
9(@main(): 7(fvec4) Function None 8
9(@main(): 7(fvec4) Function None 8
...
@@ -500,13 +498,13 @@ gl_FragCoord origin is upper left
...
@@ -500,13 +498,13 @@ gl_FragCoord origin is upper left
12(r00): 11(ptr) Variable Function
12(r00): 11(ptr) Variable Function
37(r01): 11(ptr) Variable Function
37(r01): 11(ptr) Variable Function
49(r10): 48(ptr) Variable Function
49(r10): 48(ptr) Variable Function
75
(r11): 48(ptr) Variable Function
61
(r11): 48(ptr) Variable Function
87
(r20): 48(ptr) Variable Function
73
(r20): 48(ptr) Variable Function
110
(r21): 48(ptr) Variable Function
88
(r21): 48(ptr) Variable Function
1
24(r30): 123
(ptr) Variable Function
1
02(r30): 101
(ptr) Variable Function
1
44(r31): 143
(ptr) Variable Function
1
18(r31): 117
(ptr) Variable Function
1
62(r32): 161
(ptr) Variable Function
1
33(r32): 132
(ptr) Variable Function
1
81(r33): 180
(ptr) Variable Function
1
46(r33): 145
(ptr) Variable Function
27: 26(ptr) AccessChain 23 25
27: 26(ptr) AccessChain 23 25
28: 19(fvec2) Load 27
28: 19(fvec2) Load 27
31: 30(ptr) AccessChain 23 29
31: 30(ptr) AccessChain 23 29
...
@@ -527,158 +525,119 @@ gl_FragCoord origin is upper left
...
@@ -527,158 +525,119 @@ gl_FragCoord origin is upper left
Store 37(r01) 47
Store 37(r01) 47
52: 51(ptr) AccessChain 23 50
52: 51(ptr) AccessChain 23 50
53: 13 Load 52
53: 13 Load 52
56: 6(float) CompositeExtract 53 0 0
54: 7(fvec4) CompositeExtract 53 0
57: 6(float) CompositeExtract 53 0 1
55: 7(fvec4) CompositeExtract 53 1
58: 6(float) CompositeExtract 53 0 2
56: 7(fvec4) CompositeExtract 53 2
59: 6(float) CompositeExtract 53 0 3
57: 16 CompositeConstruct 54 55 56
60: 6(float) CompositeExtract 53 1 0
58: 30(ptr) AccessChain 23 29
61: 6(float) CompositeExtract 53 1 1
59: 14(fvec3) Load 58
62: 6(float) CompositeExtract 53 1 2
60: 7(fvec4) MatrixTimesVector 57 59
63: 6(float) CompositeExtract 53 1 3
Store 49(r10) 60
64: 6(float) CompositeExtract 53 2 0
64: 63(ptr) AccessChain 23 62
65: 6(float) CompositeExtract 53 2 1
65: 16 Load 64
66: 6(float) CompositeExtract 53 2 2
66: 39(ptr) AccessChain 23 38
67: 6(float) CompositeExtract 53 2 3
67: 7(fvec4) Load 66
68: 7(fvec4) CompositeConstruct 56 57 58 59
68: 6(float) CompositeExtract 67 0
69: 7(fvec4) CompositeConstruct 60 61 62 63
69: 6(float) CompositeExtract 67 1
70: 7(fvec4) CompositeConstruct 64 65 66 67
70: 6(float) CompositeExtract 67 2
71: 16 CompositeConstruct 68 69 70
71: 14(fvec3) CompositeConstruct 68 69 70
72: 30(ptr) AccessChain 23 29
72: 7(fvec4) MatrixTimesVector 65 71
73: 14(fvec3) Load 72
Store 61(r11) 72
74: 7(fvec4) MatrixTimesVector 71 73
74: 30(ptr) AccessChain 23 29
Store 49(r10) 74
75: 14(fvec3) Load 74
78: 77(ptr) AccessChain 23 76
76: 51(ptr) AccessChain 23 50
79: 16 Load 78
77: 13 Load 76
80: 39(ptr) AccessChain 23 38
78: 7(fvec4) CompositeExtract 77 0
81: 7(fvec4) Load 80
79: 14(fvec3) VectorShuffle 78 78 0 1 2
82: 6(float) CompositeExtract 81 0
80: 7(fvec4) CompositeExtract 77 1
83: 6(float) CompositeExtract 81 1
81: 14(fvec3) VectorShuffle 80 80 0 1 2
84: 6(float) CompositeExtract 81 2
82: 7(fvec4) CompositeExtract 77 2
85: 14(fvec3) CompositeConstruct 82 83 84
83: 14(fvec3) VectorShuffle 82 82 0 1 2
86: 7(fvec4) MatrixTimesVector 79 85
84: 7(fvec4) CompositeExtract 77 3
Store 75(r11) 86
85: 14(fvec3) VectorShuffle 84 84 0 1 2
88: 30(ptr) AccessChain 23 29
86: 15 CompositeConstruct 79 81 83 85
89: 14(fvec3) Load 88
87: 7(fvec4) VectorTimesMatrix 75 86
90: 51(ptr) AccessChain 23 50
Store 73(r20) 87
91: 13 Load 90
89: 39(ptr) AccessChain 23 38
92: 6(float) CompositeExtract 91 0 0
90: 7(fvec4) Load 89
93: 6(float) CompositeExtract 91 0 1
91: 6(float) CompositeExtract 90 0
94: 6(float) CompositeExtract 91 0 2
92: 6(float) CompositeExtract 90 1
95: 6(float) CompositeExtract 91 1 0
93: 6(float) CompositeExtract 90 2
96: 6(float) CompositeExtract 91 1 1
94: 14(fvec3) CompositeConstruct 91 92 93
97: 6(float) CompositeExtract 91 1 2
97: 96(ptr) AccessChain 23 95
98: 6(float) CompositeExtract 91 2 0
98: 15 Load 97
99: 6(float) CompositeExtract 91 2 1
99: 7(fvec4) VectorTimesMatrix 94 98
100: 6(float) CompositeExtract 91 2 2
Store 88(r21) 99
101: 6(float) CompositeExtract 91 3 0
105: 104(ptr) AccessChain 23 103
102: 6(float) CompositeExtract 91 3 1
106: 17 Load 105
103: 6(float) CompositeExtract 91 3 2
109: 108(ptr) AccessChain 23 107
104: 14(fvec3) CompositeConstruct 92 93 94
110: 18 Load 109
105: 14(fvec3) CompositeConstruct 95 96 97
111: 7(fvec4) CompositeExtract 110 0
106: 14(fvec3) CompositeConstruct 98 99 100
112: 14(fvec3) VectorShuffle 111 111 0 1 2
107: 14(fvec3) CompositeConstruct 101 102 103
113: 7(fvec4) CompositeExtract 110 1
108: 15 CompositeConstruct 104 105 106 107
114: 14(fvec3) VectorShuffle 113 113 0 1 2
109: 7(fvec4) VectorTimesMatrix 89 108
115: 100 CompositeConstruct 112 114
Store 87(r20) 109
116: 100 MatrixTimesMatrix 106 115
111: 39(ptr) AccessChain 23 38
Store 102(r30) 116
112: 7(fvec4) Load 111
119: 108(ptr) AccessChain 23 107
113: 6(float) CompositeExtract 112 0
120: 18 Load 119
114: 6(float) CompositeExtract 112 1
121: 104(ptr) AccessChain 23 103
115: 6(float) CompositeExtract 112 2
122: 17 Load 121
116: 14(fvec3) CompositeConstruct 113 114 115
124: 14(fvec3) CompositeExtract 122 0
119: 118(ptr) AccessChain 23 117
125: 19(fvec2) VectorShuffle 124 124 0 1
120: 15 Load 119
126: 14(fvec3) CompositeExtract 122 1
121: 7(fvec4) VectorTimesMatrix 116 120
127: 19(fvec2) VectorShuffle 126 126 0 1
Store 110(r21) 121
128: 14(fvec3) CompositeExtract 122 2
127: 126(ptr) AccessChain 23 125
129: 19(fvec2) VectorShuffle 128 128 0 1
128: 17 Load 127
130: 123 CompositeConstruct 125 127 129
131: 130(ptr) AccessChain 23 129
131: 16 MatrixTimesMatrix 120 130
132: 18 Load 131
Store 118(r31) 131
133: 6(float) CompositeExtract 132 0 0
136: 135(ptr) AccessChain 23 134
134: 6(float) CompositeExtract 132 0 1
137: 20 Load 136
135: 6(float) CompositeExtract 132 0 2
138: 19(fvec2) CompositeExtract 137 0
136: 6(float) CompositeExtract 132 1 0
139: 19(fvec2) CompositeExtract 137 1
137: 6(float) CompositeExtract 132 1 1
140: 19(fvec2) CompositeExtract 137 2
138: 6(float) CompositeExtract 132 1 2
141: 123 CompositeConstruct 138 139 140
139: 14(fvec3) CompositeConstruct 133 134 135
142: 104(ptr) AccessChain 23 103
140: 14(fvec3) CompositeConstruct 136 137 138
143: 17 Load 142
141: 122 CompositeConstruct 139 140
144: 123 MatrixTimesMatrix 141 143
142: 122 MatrixTimesMatrix 128 141
Store 133(r32) 144
Store 124(r30) 142
147: 104(ptr) AccessChain 23 103
145: 130(ptr) AccessChain 23 129
146: 18 Load 145
147: 126(ptr) AccessChain 23 125
148: 17 Load 147
148: 17 Load 147
150: 6(float) CompositeExtract 148 0 0
149: 14(fvec3) CompositeExtract 148 0
151: 6(float) CompositeExtract 148 0 1
150: 14(fvec3) CompositeExtract 148 1
152: 6(float) CompositeExtract 148 1 0
151: 100 CompositeConstruct 149 150
153: 6(float) CompositeExtract 148 1 1
152: 135(ptr) AccessChain 23 134
154: 6(float) CompositeExtract 148 2 0
153: 20 Load 152
155: 6(float) CompositeExtract 148 2 1
154: 15 MatrixTimesMatrix 151 153
156: 19(fvec2) CompositeConstruct 150 151
Store 146(r33) 154
157: 19(fvec2) CompositeConstruct 152 153
155: 7(fvec4) Load 49(r10)
158: 19(fvec2) CompositeConstruct 154 155
156: 7(fvec4) Load 61(r11)
159: 149 CompositeConstruct 156 157 158
157: 7(fvec4) FAdd 155 156
160: 16 MatrixTimesMatrix 146 159
158: 7(fvec4) Load 73(r20)
Store 144(r31) 160
159: 7(fvec4) FAdd 157 158
165: 164(ptr) AccessChain 23 163
160: 7(fvec4) Load 88(r21)
166: 20 Load 165
161: 7(fvec4) FAdd 159 160
167: 6(float) CompositeExtract 166 0 0
162: 6(float) Load 12(r00)
168: 6(float) CompositeExtract 166 0 1
163: 7(fvec4) CompositeConstruct 162 162 162 162
169: 6(float) CompositeExtract 166 1 0
164: 7(fvec4) FAdd 161 163
170: 6(float) CompositeExtract 166 1 1
165: 6(float) Load 37(r01)
171: 6(float) CompositeExtract 166 2 0
166: 7(fvec4) CompositeConstruct 165 165 165 165
172: 6(float) CompositeExtract 166 2 1
167: 7(fvec4) FAdd 164 166
173: 19(fvec2) CompositeConstruct 167 168
170: 11(ptr) AccessChain 102(r30) 50 169
174: 19(fvec2) CompositeConstruct 169 170
171: 6(float) Load 170
175: 19(fvec2) CompositeConstruct 171 172
172: 7(fvec4) CompositeConstruct 171 171 171 171
176: 149 CompositeConstruct 173 174 175
173: 7(fvec4) FAdd 167 172
177: 126(ptr) AccessChain 23 125
174: 48(ptr) AccessChain 118(r31) 50
178: 17 Load 177
175: 7(fvec4) Load 174
179: 149 MatrixTimesMatrix 176 178
176: 7(fvec4) FAdd 173 175
Store 162(r32) 179
177: 11(ptr) AccessChain 133(r32) 50 169
182: 126(ptr) AccessChain 23 125
178: 6(float) Load 177
183: 17 Load 182
179: 7(fvec4) CompositeConstruct 178 178 178 178
184: 6(float) CompositeExtract 183 0 0
180: 7(fvec4) FAdd 176 179
185: 6(float) CompositeExtract 183 0 1
181: 15 Load 146(r33)
186: 6(float) CompositeExtract 183 0 2
182: 16 Transpose 181
187: 6(float) CompositeExtract 183 1 0
183: 7(fvec4) CompositeExtract 182 0
188: 6(float) CompositeExtract 183 1 1
184: 7(fvec4) FAdd 180 183
189: 6(float) CompositeExtract 183 1 2
ReturnValue 184
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
FunctionEnd
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