Updated glslang.

This commit is contained in:
Branimir Karadžić 2017-12-03 18:21:39 -08:00
parent 0ce8bd136d
commit 03bda78768
16 changed files with 2534 additions and 986 deletions

View File

@ -2,12 +2,12 @@ hlsl.flattenOpaqueInit.vert
WARNING: AST will form illegal SPIR-V; need to transform to legalize
// Module Version 10000
// Generated by (magic number): 80002
// Id's are bound by 125
// Id's are bound by 176
Capability Shader
1: ExtInstImport "GLSL.std.450"
MemoryModel Logical GLSL450
EntryPoint Vertex 4 "main" 82
EntryPoint Vertex 4 "main" 99
Source HLSL 500
Name 4 "main"
Name 17 "FxaaTex"
@ -15,10 +15,10 @@ WARNING: AST will form illegal SPIR-V; need to transform to legalize
MemberName 17(FxaaTex) 1 "tex"
Name 38 "g_tInputTexture_sampler"
Name 42 "g_tInputTexture"
Name 82 "@entryPointOutput"
Name 99 "@entryPointOutput"
Decorate 38(g_tInputTexture_sampler) DescriptorSet 0
Decorate 42(g_tInputTexture) DescriptorSet 0
Decorate 82(@entryPointOutput) Location 0
Decorate 99(@entryPointOutput) Location 0
2: TypeVoid
3: TypeFunction 2
6: TypeSampler
@ -36,14 +36,23 @@ WARNING: AST will form illegal SPIR-V; need to transform to legalize
38(g_tInputTexture_sampler): 37(ptr) Variable UniformConstant
41: TypePointer UniformConstant 9
42(g_tInputTexture): 41(ptr) Variable UniformConstant
81: TypePointer Output 11(fvec4)
82(@entryPointOutput): 81(ptr) Variable Output
98: TypePointer Output 11(fvec4)
99(@entryPointOutput): 98(ptr) Variable Output
175: 17(FxaaTex) Undef
4(main): 2 Function None 3
5: Label
96: 6 Load 38(g_tInputTexture_sampler)
97: 9 Load 42(g_tInputTexture)
123: 26 SampledImage 97 96
124: 11(fvec4) ImageSampleExplicitLod 123 31 Lod 32
Store 82(@entryPointOutput) 124
117: 6 Load 38(g_tInputTexture_sampler)
118: 9 Load 42(g_tInputTexture)
148: 26 SampledImage 118 117
149: 11(fvec4) ImageSampleExplicitLod 148 31 Lod 32
172: 6 CompositeExtract 175 0
174: 9 CompositeExtract 175 1
160: 26 SampledImage 174 172
161: 11(fvec4) ImageSampleExplicitLod 160 31 Lod 32
136: 11(fvec4) FAdd 149 161
165: 26 SampledImage 118 117
166: 11(fvec4) ImageSampleExplicitLod 165 31 Lod 32
143: 11(fvec4) FAdd 136 166
Store 99(@entryPointOutput) 143
Return
FunctionEnd

View File

@ -0,0 +1,417 @@
hlsl.cbuffer-identifier.vert
WARNING: 0:29: '' : mul() matrix size mismatch
Shader version: 500
0:? Sequence
0:22 Function Definition: @main(struct-VS_INPUT-vf4-vf31; ( temp structure{ temp 4-component vector of float Pos, temp 3-component vector of float Norm})
0:22 Function Parameters:
0:22 'input' ( in structure{ temp 4-component vector of float Pos, temp 3-component vector of float Norm})
0:? Sequence
0:23 Sequence
0:23 move second child to first child ( temp int)
0:23 'ConstantBuffer' ( temp int)
0:23 Constant:
0:23 42 (const int)
0:25 Sequence
0:25 move second child to first child ( temp structure{ temp 4-component vector of float Pos, temp 3-component vector of float Norm})
0:25 'output' ( temp structure{ temp 4-component vector of float Pos, temp 3-component vector of float Norm})
0:25 Constant:
0:25 0.000000
0:25 0.000000
0:25 0.000000
0:25 0.000000
0:25 0.000000
0:25 0.000000
0:25 0.000000
0:26 move second child to first child ( temp 4-component vector of float)
0:26 Pos: direct index for structure ( temp 4-component vector of float)
0:26 'output' ( temp structure{ temp 4-component vector of float Pos, temp 3-component vector of float Norm})
0:26 Constant:
0:26 0 (const int)
0:26 matrix-times-vector ( temp 4-component vector of float)
0:26 World: direct index for structure (layout( row_major std140) uniform 4X4 matrix of float)
0:26 'anon@0' (layout( binding=0 row_major std140) uniform block{layout( row_major std140) uniform 4X4 matrix of float World, layout( row_major std140) uniform 4X4 matrix of float View, layout( row_major std140) uniform 4X4 matrix of float Projection})
0:26 Constant:
0:26 0 (const uint)
0:26 Pos: direct index for structure ( temp 4-component vector of float)
0:26 'input' ( in structure{ temp 4-component vector of float Pos, temp 3-component vector of float Norm})
0:26 Constant:
0:26 0 (const int)
0:27 move second child to first child ( temp 4-component vector of float)
0:27 Pos: direct index for structure ( temp 4-component vector of float)
0:27 'output' ( temp structure{ temp 4-component vector of float Pos, temp 3-component vector of float Norm})
0:27 Constant:
0:27 0 (const int)
0:27 matrix-times-vector ( temp 4-component vector of float)
0:27 View: direct index for structure (layout( row_major std140) uniform 4X4 matrix of float)
0:27 'anon@0' (layout( binding=0 row_major std140) uniform block{layout( row_major std140) uniform 4X4 matrix of float World, layout( row_major std140) uniform 4X4 matrix of float View, layout( row_major std140) uniform 4X4 matrix of float Projection})
0:27 Constant:
0:27 1 (const uint)
0:27 Pos: direct index for structure ( temp 4-component vector of float)
0:27 'output' ( temp structure{ temp 4-component vector of float Pos, temp 3-component vector of float Norm})
0:27 Constant:
0:27 0 (const int)
0:28 move second child to first child ( temp 4-component vector of float)
0:28 Pos: direct index for structure ( temp 4-component vector of float)
0:28 'output' ( temp structure{ temp 4-component vector of float Pos, temp 3-component vector of float Norm})
0:28 Constant:
0:28 0 (const int)
0:28 matrix-times-vector ( temp 4-component vector of float)
0:28 Projection: direct index for structure (layout( row_major std140) uniform 4X4 matrix of float)
0:28 'anon@0' (layout( binding=0 row_major std140) uniform block{layout( row_major std140) uniform 4X4 matrix of float World, layout( row_major std140) uniform 4X4 matrix of float View, layout( row_major std140) uniform 4X4 matrix of float Projection})
0:28 Constant:
0:28 2 (const uint)
0:28 Pos: direct index for structure ( temp 4-component vector of float)
0:28 'output' ( temp structure{ temp 4-component vector of float Pos, temp 3-component vector of float Norm})
0:28 Constant:
0:28 0 (const int)
0:29 move second child to first child ( temp 3-component vector of float)
0:29 Norm: direct index for structure ( temp 3-component vector of float)
0:29 'output' ( temp structure{ temp 4-component vector of float Pos, temp 3-component vector of float Norm})
0:29 Constant:
0:29 1 (const int)
0:29 Construct vec3 ( temp 3-component vector of float)
0:29 matrix-times-vector ( temp 4-component vector of float)
0:29 Construct mat3x4 ( uniform 3X4 matrix of float)
0:29 World: direct index for structure (layout( row_major std140) uniform 4X4 matrix of float)
0:29 'anon@0' (layout( binding=0 row_major std140) uniform block{layout( row_major std140) uniform 4X4 matrix of float World, layout( row_major std140) uniform 4X4 matrix of float View, layout( row_major std140) uniform 4X4 matrix of float Projection})
0:29 Constant:
0:29 0 (const uint)
0:29 Norm: direct index for structure ( temp 3-component vector of float)
0:29 'input' ( in structure{ temp 4-component vector of float Pos, temp 3-component vector of float Norm})
0:29 Constant:
0:29 1 (const int)
0:31 Branch: Return with expression
0:31 'output' ( temp structure{ temp 4-component vector of float Pos, temp 3-component vector of float Norm})
0:22 Function Definition: main( ( temp void)
0:22 Function Parameters:
0:? Sequence
0:22 Sequence
0:22 move second child to first child ( temp 4-component vector of float)
0:22 Pos: direct index for structure ( temp 4-component vector of float)
0:? 'input' ( temp structure{ temp 4-component vector of float Pos, temp 3-component vector of float Norm})
0:22 Constant:
0:22 0 (const int)
0:? 'input.Pos' (layout( location=0) in 4-component vector of float)
0:22 move second child to first child ( temp 3-component vector of float)
0:22 Norm: direct index for structure ( temp 3-component vector of float)
0:? 'input' ( temp structure{ temp 4-component vector of float Pos, temp 3-component vector of float Norm})
0:22 Constant:
0:22 1 (const int)
0:? 'input.Norm' (layout( location=1) in 3-component vector of float)
0:22 Sequence
0:22 move second child to first child ( temp structure{ temp 4-component vector of float Pos, temp 3-component vector of float Norm})
0:22 'flattenTemp' ( temp structure{ temp 4-component vector of float Pos, temp 3-component vector of float Norm})
0:22 Function Call: @main(struct-VS_INPUT-vf4-vf31; ( temp structure{ temp 4-component vector of float Pos, temp 3-component vector of float Norm})
0:? 'input' ( temp structure{ temp 4-component vector of float Pos, temp 3-component vector of float Norm})
0:22 move second child to first child ( temp 4-component vector of float)
0:? '@entryPointOutput.Pos' ( out 4-component vector of float Position)
0:22 Pos: direct index for structure ( temp 4-component vector of float)
0:22 'flattenTemp' ( temp structure{ temp 4-component vector of float Pos, temp 3-component vector of float Norm})
0:22 Constant:
0:22 0 (const int)
0:22 move second child to first child ( temp 3-component vector of float)
0:? '@entryPointOutput.Norm' (layout( location=0) out 3-component vector of float)
0:22 Norm: direct index for structure ( temp 3-component vector of float)
0:22 'flattenTemp' ( temp structure{ temp 4-component vector of float Pos, temp 3-component vector of float Norm})
0:22 Constant:
0:22 1 (const int)
0:? Linker Objects
0:? 'anon@0' (layout( binding=0 row_major std140) uniform block{layout( row_major std140) uniform 4X4 matrix of float World, layout( row_major std140) uniform 4X4 matrix of float View, layout( row_major std140) uniform 4X4 matrix of float Projection})
0:? '@entryPointOutput.Pos' ( out 4-component vector of float Position)
0:? '@entryPointOutput.Norm' (layout( location=0) out 3-component vector of float)
0:? 'input.Pos' (layout( location=0) in 4-component vector of float)
0:? 'input.Norm' (layout( location=1) in 3-component vector of float)
Linked vertex stage:
Shader version: 500
0:? Sequence
0:22 Function Definition: @main(struct-VS_INPUT-vf4-vf31; ( temp structure{ temp 4-component vector of float Pos, temp 3-component vector of float Norm})
0:22 Function Parameters:
0:22 'input' ( in structure{ temp 4-component vector of float Pos, temp 3-component vector of float Norm})
0:? Sequence
0:23 Sequence
0:23 move second child to first child ( temp int)
0:23 'ConstantBuffer' ( temp int)
0:23 Constant:
0:23 42 (const int)
0:25 Sequence
0:25 move second child to first child ( temp structure{ temp 4-component vector of float Pos, temp 3-component vector of float Norm})
0:25 'output' ( temp structure{ temp 4-component vector of float Pos, temp 3-component vector of float Norm})
0:25 Constant:
0:25 0.000000
0:25 0.000000
0:25 0.000000
0:25 0.000000
0:25 0.000000
0:25 0.000000
0:25 0.000000
0:26 move second child to first child ( temp 4-component vector of float)
0:26 Pos: direct index for structure ( temp 4-component vector of float)
0:26 'output' ( temp structure{ temp 4-component vector of float Pos, temp 3-component vector of float Norm})
0:26 Constant:
0:26 0 (const int)
0:26 matrix-times-vector ( temp 4-component vector of float)
0:26 World: direct index for structure (layout( row_major std140) uniform 4X4 matrix of float)
0:26 'anon@0' (layout( binding=0 row_major std140) uniform block{layout( row_major std140) uniform 4X4 matrix of float World, layout( row_major std140) uniform 4X4 matrix of float View, layout( row_major std140) uniform 4X4 matrix of float Projection})
0:26 Constant:
0:26 0 (const uint)
0:26 Pos: direct index for structure ( temp 4-component vector of float)
0:26 'input' ( in structure{ temp 4-component vector of float Pos, temp 3-component vector of float Norm})
0:26 Constant:
0:26 0 (const int)
0:27 move second child to first child ( temp 4-component vector of float)
0:27 Pos: direct index for structure ( temp 4-component vector of float)
0:27 'output' ( temp structure{ temp 4-component vector of float Pos, temp 3-component vector of float Norm})
0:27 Constant:
0:27 0 (const int)
0:27 matrix-times-vector ( temp 4-component vector of float)
0:27 View: direct index for structure (layout( row_major std140) uniform 4X4 matrix of float)
0:27 'anon@0' (layout( binding=0 row_major std140) uniform block{layout( row_major std140) uniform 4X4 matrix of float World, layout( row_major std140) uniform 4X4 matrix of float View, layout( row_major std140) uniform 4X4 matrix of float Projection})
0:27 Constant:
0:27 1 (const uint)
0:27 Pos: direct index for structure ( temp 4-component vector of float)
0:27 'output' ( temp structure{ temp 4-component vector of float Pos, temp 3-component vector of float Norm})
0:27 Constant:
0:27 0 (const int)
0:28 move second child to first child ( temp 4-component vector of float)
0:28 Pos: direct index for structure ( temp 4-component vector of float)
0:28 'output' ( temp structure{ temp 4-component vector of float Pos, temp 3-component vector of float Norm})
0:28 Constant:
0:28 0 (const int)
0:28 matrix-times-vector ( temp 4-component vector of float)
0:28 Projection: direct index for structure (layout( row_major std140) uniform 4X4 matrix of float)
0:28 'anon@0' (layout( binding=0 row_major std140) uniform block{layout( row_major std140) uniform 4X4 matrix of float World, layout( row_major std140) uniform 4X4 matrix of float View, layout( row_major std140) uniform 4X4 matrix of float Projection})
0:28 Constant:
0:28 2 (const uint)
0:28 Pos: direct index for structure ( temp 4-component vector of float)
0:28 'output' ( temp structure{ temp 4-component vector of float Pos, temp 3-component vector of float Norm})
0:28 Constant:
0:28 0 (const int)
0:29 move second child to first child ( temp 3-component vector of float)
0:29 Norm: direct index for structure ( temp 3-component vector of float)
0:29 'output' ( temp structure{ temp 4-component vector of float Pos, temp 3-component vector of float Norm})
0:29 Constant:
0:29 1 (const int)
0:29 Construct vec3 ( temp 3-component vector of float)
0:29 matrix-times-vector ( temp 4-component vector of float)
0:29 Construct mat3x4 ( uniform 3X4 matrix of float)
0:29 World: direct index for structure (layout( row_major std140) uniform 4X4 matrix of float)
0:29 'anon@0' (layout( binding=0 row_major std140) uniform block{layout( row_major std140) uniform 4X4 matrix of float World, layout( row_major std140) uniform 4X4 matrix of float View, layout( row_major std140) uniform 4X4 matrix of float Projection})
0:29 Constant:
0:29 0 (const uint)
0:29 Norm: direct index for structure ( temp 3-component vector of float)
0:29 'input' ( in structure{ temp 4-component vector of float Pos, temp 3-component vector of float Norm})
0:29 Constant:
0:29 1 (const int)
0:31 Branch: Return with expression
0:31 'output' ( temp structure{ temp 4-component vector of float Pos, temp 3-component vector of float Norm})
0:22 Function Definition: main( ( temp void)
0:22 Function Parameters:
0:? Sequence
0:22 Sequence
0:22 move second child to first child ( temp 4-component vector of float)
0:22 Pos: direct index for structure ( temp 4-component vector of float)
0:? 'input' ( temp structure{ temp 4-component vector of float Pos, temp 3-component vector of float Norm})
0:22 Constant:
0:22 0 (const int)
0:? 'input.Pos' (layout( location=0) in 4-component vector of float)
0:22 move second child to first child ( temp 3-component vector of float)
0:22 Norm: direct index for structure ( temp 3-component vector of float)
0:? 'input' ( temp structure{ temp 4-component vector of float Pos, temp 3-component vector of float Norm})
0:22 Constant:
0:22 1 (const int)
0:? 'input.Norm' (layout( location=1) in 3-component vector of float)
0:22 Sequence
0:22 move second child to first child ( temp structure{ temp 4-component vector of float Pos, temp 3-component vector of float Norm})
0:22 'flattenTemp' ( temp structure{ temp 4-component vector of float Pos, temp 3-component vector of float Norm})
0:22 Function Call: @main(struct-VS_INPUT-vf4-vf31; ( temp structure{ temp 4-component vector of float Pos, temp 3-component vector of float Norm})
0:? 'input' ( temp structure{ temp 4-component vector of float Pos, temp 3-component vector of float Norm})
0:22 move second child to first child ( temp 4-component vector of float)
0:? '@entryPointOutput.Pos' ( out 4-component vector of float Position)
0:22 Pos: direct index for structure ( temp 4-component vector of float)
0:22 'flattenTemp' ( temp structure{ temp 4-component vector of float Pos, temp 3-component vector of float Norm})
0:22 Constant:
0:22 0 (const int)
0:22 move second child to first child ( temp 3-component vector of float)
0:? '@entryPointOutput.Norm' (layout( location=0) out 3-component vector of float)
0:22 Norm: direct index for structure ( temp 3-component vector of float)
0:22 'flattenTemp' ( temp structure{ temp 4-component vector of float Pos, temp 3-component vector of float Norm})
0:22 Constant:
0:22 1 (const int)
0:? Linker Objects
0:? 'anon@0' (layout( binding=0 row_major std140) uniform block{layout( row_major std140) uniform 4X4 matrix of float World, layout( row_major std140) uniform 4X4 matrix of float View, layout( row_major std140) uniform 4X4 matrix of float Projection})
0:? '@entryPointOutput.Pos' ( out 4-component vector of float Position)
0:? '@entryPointOutput.Norm' (layout( location=0) out 3-component vector of float)
0:? 'input.Pos' (layout( location=0) in 4-component vector of float)
0:? 'input.Norm' (layout( location=1) in 3-component vector of float)
// Module Version 10000
// Generated by (magic number): 80002
// Id's are bound by 106
Capability Shader
1: ExtInstImport "GLSL.std.450"
MemoryModel Logical GLSL450
EntryPoint Vertex 4 "main" 87 91 99 103
Source HLSL 500
Name 4 "main"
Name 9 "VS_INPUT"
MemberName 9(VS_INPUT) 0 "Pos"
MemberName 9(VS_INPUT) 1 "Norm"
Name 11 "PS_INPUT"
MemberName 11(PS_INPUT) 0 "Pos"
MemberName 11(PS_INPUT) 1 "Norm"
Name 14 "@main(struct-VS_INPUT-vf4-vf31;"
Name 13 "input"
Name 18 "ConstantBuffer"
Name 21 "output"
Name 28 "C"
MemberName 28(C) 0 "World"
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"
MemberDecorate 28(C) 0 RowMajor
MemberDecorate 28(C) 0 Offset 0
MemberDecorate 28(C) 0 MatrixStride 16
MemberDecorate 28(C) 1 RowMajor
MemberDecorate 28(C) 1 Offset 64
MemberDecorate 28(C) 1 MatrixStride 16
MemberDecorate 28(C) 2 RowMajor
MemberDecorate 28(C) 2 Offset 128
MemberDecorate 28(C) 2 MatrixStride 16
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
2: TypeVoid
3: TypeFunction 2
6: TypeFloat 32
7: TypeVector 6(float) 4
8: TypeVector 6(float) 3
9(VS_INPUT): TypeStruct 7(fvec4) 8(fvec3)
10: TypePointer Function 9(VS_INPUT)
11(PS_INPUT): TypeStruct 7(fvec4) 8(fvec3)
12: TypeFunction 11(PS_INPUT) 10(ptr)
16: TypeInt 32 1
17: TypePointer Function 16(int)
19: 16(int) Constant 42
20: TypePointer Function 11(PS_INPUT)
22: 6(float) Constant 0
23: 7(fvec4) ConstantComposite 22 22 22 22
24: 8(fvec3) ConstantComposite 22 22 22
25:11(PS_INPUT) ConstantComposite 23 24
26: 16(int) Constant 0
27: TypeMatrix 7(fvec4) 4
28(C): TypeStruct 27 27 27
29: TypePointer Uniform 28(C)
30: 29(ptr) Variable Uniform
31: TypePointer Uniform 27
34: TypePointer Function 7(fvec4)
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
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
Return
FunctionEnd
14(@main(struct-VS_INPUT-vf4-vf31;):11(PS_INPUT) Function None 12
13(input): 10(ptr) FunctionParameter
15: Label
18(ConstantBuffer): 17(ptr) Variable Function
21(output): 20(ptr) Variable Function
Store 18(ConstantBuffer) 19
Store 21(output) 25
32: 31(ptr) AccessChain 30 26
33: 27 Load 32
35: 34(ptr) AccessChain 13(input) 26
36: 7(fvec4) Load 35
37: 7(fvec4) MatrixTimesVector 33 36
38: 34(ptr) AccessChain 21(output) 26
Store 38 37
40: 31(ptr) AccessChain 30 39
41: 27 Load 40
42: 34(ptr) AccessChain 21(output) 26
43: 7(fvec4) Load 42
44: 7(fvec4) MatrixTimesVector 41 43
45: 34(ptr) AccessChain 21(output) 26
Store 45 44
47: 31(ptr) AccessChain 30 46
48: 27 Load 47
49: 34(ptr) AccessChain 21(output) 26
50: 7(fvec4) Load 49
51: 7(fvec4) MatrixTimesVector 48 50
52: 34(ptr) AccessChain 21(output) 26
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
FunctionEnd

View File

@ -49,34 +49,48 @@ Shader version: 500
0:19 Constant:
0:19 1 (const int)
0:20 Sequence
0:20 Sequence
0:20 move second child to first child ( temp structure{ temp sampler smpl, temp texture2D tex})
0:20 'flattenTemp' ( temp structure{ temp sampler smpl, temp texture2D tex})
0:20 Function Call: fillOpaque( ( temp structure{ temp sampler smpl, temp texture2D tex})
0:20 move second child to first child ( temp sampler)
0:? 'tex2.smpl' ( temp sampler)
0:20 smpl: direct index for structure ( temp sampler)
0:20 'flattenTemp' ( temp structure{ temp sampler smpl, temp texture2D tex})
0:20 Constant:
0:20 0 (const int)
0:20 move second child to first child ( temp texture2D)
0:? 'tex2.tex' ( temp texture2D)
0:20 tex: direct index for structure ( temp texture2D)
0:20 'flattenTemp' ( temp structure{ temp sampler smpl, temp texture2D tex})
0:20 Constant:
0:20 1 (const int)
0:20 move second child to first child ( temp 4-component vector of float)
0:20 'res' ( temp 4-component vector of float)
0:20 Function Call: lookUp(struct-FxaaTex-p1-t211; ( temp 4-component vector of float)
0:? 'tex1.smpl' ( temp sampler)
0:? 'tex1.tex' ( temp texture2D)
0:21 Sequence
0:21 Sequence
0:21 move second child to first child ( temp structure{ temp sampler smpl, temp texture2D tex})
0:21 'flattenTemp' ( temp structure{ temp sampler smpl, temp texture2D tex})
0:21 Function Call: fillOpaque( ( temp structure{ temp sampler smpl, temp texture2D tex})
0:21 move second child to first child ( temp sampler)
0:? 'tex2.smpl' ( temp sampler)
0:21 smpl: direct index for structure ( temp sampler)
0:21 'flattenTemp' ( temp structure{ temp sampler smpl, temp texture2D tex})
0:21 Constant:
0:21 0 (const int)
0:21 move second child to first child ( temp texture2D)
0:? 'tex2.tex' ( temp texture2D)
0:21 tex: direct index for structure ( temp texture2D)
0:21 'flattenTemp' ( temp structure{ temp sampler smpl, temp texture2D tex})
0:21 Constant:
0:21 1 (const int)
0:22 add second child into first child ( temp 4-component vector of float)
0:22 'res' ( temp 4-component vector of float)
0:22 Function Call: lookUp(struct-FxaaTex-p1-t211; ( temp 4-component vector of float)
0:? 'tex2.smpl' ( temp sampler)
0:? 'tex2.tex' ( temp texture2D)
0:23 Sequence
0:23 Sequence
0:23 move second child to first child ( temp sampler)
0:? 'tex3.smpl' ( temp sampler)
0:? 'tex1.smpl' ( temp sampler)
0:21 move second child to first child ( temp texture2D)
0:23 move second child to first child ( temp texture2D)
0:? 'tex3.tex' ( temp texture2D)
0:? 'tex1.tex' ( temp texture2D)
0:22 Branch: Return with expression
0:22 Function Call: lookUp(struct-FxaaTex-p1-t211; ( temp 4-component vector of float)
0:24 add second child into first child ( temp 4-component vector of float)
0:24 'res' ( temp 4-component vector of float)
0:24 Function Call: lookUp(struct-FxaaTex-p1-t211; ( temp 4-component vector of float)
0:? 'tex3.smpl' ( temp sampler)
0:? 'tex3.tex' ( temp texture2D)
0:25 Branch: Return with expression
0:25 'res' ( temp 4-component vector of float)
0:18 Function Definition: main( ( temp void)
0:18 Function Parameters:
0:? Sequence
@ -141,34 +155,48 @@ Shader version: 500
0:19 Constant:
0:19 1 (const int)
0:20 Sequence
0:20 Sequence
0:20 move second child to first child ( temp structure{ temp sampler smpl, temp texture2D tex})
0:20 'flattenTemp' ( temp structure{ temp sampler smpl, temp texture2D tex})
0:20 Function Call: fillOpaque( ( temp structure{ temp sampler smpl, temp texture2D tex})
0:20 move second child to first child ( temp sampler)
0:? 'tex2.smpl' ( temp sampler)
0:20 smpl: direct index for structure ( temp sampler)
0:20 'flattenTemp' ( temp structure{ temp sampler smpl, temp texture2D tex})
0:20 Constant:
0:20 0 (const int)
0:20 move second child to first child ( temp texture2D)
0:? 'tex2.tex' ( temp texture2D)
0:20 tex: direct index for structure ( temp texture2D)
0:20 'flattenTemp' ( temp structure{ temp sampler smpl, temp texture2D tex})
0:20 Constant:
0:20 1 (const int)
0:20 move second child to first child ( temp 4-component vector of float)
0:20 'res' ( temp 4-component vector of float)
0:20 Function Call: lookUp(struct-FxaaTex-p1-t211; ( temp 4-component vector of float)
0:? 'tex1.smpl' ( temp sampler)
0:? 'tex1.tex' ( temp texture2D)
0:21 Sequence
0:21 Sequence
0:21 move second child to first child ( temp structure{ temp sampler smpl, temp texture2D tex})
0:21 'flattenTemp' ( temp structure{ temp sampler smpl, temp texture2D tex})
0:21 Function Call: fillOpaque( ( temp structure{ temp sampler smpl, temp texture2D tex})
0:21 move second child to first child ( temp sampler)
0:? 'tex2.smpl' ( temp sampler)
0:21 smpl: direct index for structure ( temp sampler)
0:21 'flattenTemp' ( temp structure{ temp sampler smpl, temp texture2D tex})
0:21 Constant:
0:21 0 (const int)
0:21 move second child to first child ( temp texture2D)
0:? 'tex2.tex' ( temp texture2D)
0:21 tex: direct index for structure ( temp texture2D)
0:21 'flattenTemp' ( temp structure{ temp sampler smpl, temp texture2D tex})
0:21 Constant:
0:21 1 (const int)
0:22 add second child into first child ( temp 4-component vector of float)
0:22 'res' ( temp 4-component vector of float)
0:22 Function Call: lookUp(struct-FxaaTex-p1-t211; ( temp 4-component vector of float)
0:? 'tex2.smpl' ( temp sampler)
0:? 'tex2.tex' ( temp texture2D)
0:23 Sequence
0:23 Sequence
0:23 move second child to first child ( temp sampler)
0:? 'tex3.smpl' ( temp sampler)
0:? 'tex1.smpl' ( temp sampler)
0:21 move second child to first child ( temp texture2D)
0:23 move second child to first child ( temp texture2D)
0:? 'tex3.tex' ( temp texture2D)
0:? 'tex1.tex' ( temp texture2D)
0:22 Branch: Return with expression
0:22 Function Call: lookUp(struct-FxaaTex-p1-t211; ( temp 4-component vector of float)
0:24 add second child into first child ( temp 4-component vector of float)
0:24 'res' ( temp 4-component vector of float)
0:24 Function Call: lookUp(struct-FxaaTex-p1-t211; ( temp 4-component vector of float)
0:? 'tex3.smpl' ( temp sampler)
0:? 'tex3.tex' ( temp texture2D)
0:25 Branch: Return with expression
0:25 'res' ( temp 4-component vector of float)
0:18 Function Definition: main( ( temp void)
0:18 Function Parameters:
0:? Sequence
@ -182,12 +210,12 @@ Shader version: 500
// Module Version 10000
// Generated by (magic number): 80002
// Id's are bound by 84
// Id's are bound by 101
Capability Shader
1: ExtInstImport "GLSL.std.450"
MemoryModel Logical GLSL450
EntryPoint Vertex 4 "main" 82
EntryPoint Vertex 4 "main" 99
Source HLSL 500
Name 4 "main"
Name 15 "lookUp(struct-FxaaTex-p1-t211;"
@ -206,17 +234,22 @@ Shader version: 500
Name 49 "flattenTemp"
Name 53 "tex1.smpl"
Name 58 "tex1.tex"
Name 62 "flattenTemp"
Name 64 "tex2.smpl"
Name 67 "tex2.tex"
Name 70 "tex3.smpl"
Name 72 "tex3.tex"
Name 74 "param"
Name 76 "param"
Name 82 "@entryPointOutput"
Name 63 "res"
Name 64 "param"
Name 66 "param"
Name 69 "flattenTemp"
Name 71 "tex2.smpl"
Name 74 "tex2.tex"
Name 77 "param"
Name 79 "param"
Name 84 "tex3.smpl"
Name 86 "tex3.tex"
Name 88 "param"
Name 90 "param"
Name 99 "@entryPointOutput"
Decorate 38(g_tInputTexture_sampler) DescriptorSet 0
Decorate 42(g_tInputTexture) DescriptorSet 0
Decorate 82(@entryPointOutput) Location 0
Decorate 99(@entryPointOutput) Location 0
2: TypeVoid
3: TypeFunction 2
6: TypeSampler
@ -243,12 +276,13 @@ Shader version: 500
54: TypeInt 32 1
55: 54(int) Constant 0
59: 54(int) Constant 1
81: TypePointer Output 11(fvec4)
82(@entryPointOutput): 81(ptr) Variable Output
62: TypePointer Function 11(fvec4)
98: TypePointer Output 11(fvec4)
99(@entryPointOutput): 98(ptr) Variable Output
4(main): 2 Function None 3
5: Label
83: 11(fvec4) FunctionCall 22(@main()
Store 82(@entryPointOutput) 83
100: 11(fvec4) FunctionCall 22(@main()
Store 99(@entryPointOutput) 100
Return
FunctionEnd
15(lookUp(struct-FxaaTex-p1-t211;): 11(fvec4) Function None 12
@ -278,13 +312,18 @@ Shader version: 500
49(flattenTemp): 44(ptr) Variable Function
53(tex1.smpl): 7(ptr) Variable Function
58(tex1.tex): 10(ptr) Variable Function
62(flattenTemp): 44(ptr) Variable Function
64(tex2.smpl): 7(ptr) Variable Function
67(tex2.tex): 10(ptr) Variable Function
70(tex3.smpl): 7(ptr) Variable Function
72(tex3.tex): 10(ptr) Variable Function
74(param): 7(ptr) Variable Function
76(param): 10(ptr) Variable Function
63(res): 62(ptr) Variable Function
64(param): 7(ptr) Variable Function
66(param): 10(ptr) Variable Function
69(flattenTemp): 44(ptr) Variable Function
71(tex2.smpl): 7(ptr) Variable Function
74(tex2.tex): 10(ptr) Variable Function
77(param): 7(ptr) Variable Function
79(param): 10(ptr) Variable Function
84(tex3.smpl): 7(ptr) Variable Function
86(tex3.tex): 10(ptr) Variable Function
88(param): 7(ptr) Variable Function
90(param): 10(ptr) Variable Function
50: 6 Load 38(g_tInputTexture_sampler)
51: 9 Load 42(g_tInputTexture)
52: 17(FxaaTex) CompositeConstruct 50 51
@ -295,22 +334,40 @@ Shader version: 500
60: 10(ptr) AccessChain 49(flattenTemp) 59
61: 9 Load 60
Store 58(tex1.tex) 61
63: 17(FxaaTex) FunctionCall 19(fillOpaque()
Store 62(flattenTemp) 63
65: 7(ptr) AccessChain 62(flattenTemp) 55
66: 6 Load 65
Store 64(tex2.smpl) 66
68: 10(ptr) AccessChain 62(flattenTemp) 59
69: 9 Load 68
Store 67(tex2.tex) 69
71: 6 Load 53(tex1.smpl)
Store 70(tex3.smpl) 71
73: 9 Load 58(tex1.tex)
Store 72(tex3.tex) 73
75: 6 Load 70(tex3.smpl)
Store 74(param) 75
77: 9 Load 72(tex3.tex)
Store 76(param) 77
78: 11(fvec4) FunctionCall 15(lookUp(struct-FxaaTex-p1-t211;) 74(param) 76(param)
ReturnValue 78
65: 6 Load 53(tex1.smpl)
Store 64(param) 65
67: 9 Load 58(tex1.tex)
Store 66(param) 67
68: 11(fvec4) FunctionCall 15(lookUp(struct-FxaaTex-p1-t211;) 64(param) 66(param)
Store 63(res) 68
70: 17(FxaaTex) FunctionCall 19(fillOpaque()
Store 69(flattenTemp) 70
72: 7(ptr) AccessChain 69(flattenTemp) 55
73: 6 Load 72
Store 71(tex2.smpl) 73
75: 10(ptr) AccessChain 69(flattenTemp) 59
76: 9 Load 75
Store 74(tex2.tex) 76
78: 6 Load 71(tex2.smpl)
Store 77(param) 78
80: 9 Load 74(tex2.tex)
Store 79(param) 80
81: 11(fvec4) FunctionCall 15(lookUp(struct-FxaaTex-p1-t211;) 77(param) 79(param)
82: 11(fvec4) Load 63(res)
83: 11(fvec4) FAdd 82 81
Store 63(res) 83
85: 6 Load 53(tex1.smpl)
Store 84(tex3.smpl) 85
87: 9 Load 58(tex1.tex)
Store 86(tex3.tex) 87
89: 6 Load 84(tex3.smpl)
Store 88(param) 89
91: 9 Load 86(tex3.tex)
Store 90(param) 91
92: 11(fvec4) FunctionCall 15(lookUp(struct-FxaaTex-p1-t211;) 88(param) 90(param)
93: 11(fvec4) Load 63(res)
94: 11(fvec4) FAdd 93 92
Store 63(res) 94
95: 11(fvec4) Load 63(res)
ReturnValue 95
FunctionEnd

View File

@ -0,0 +1,684 @@
hlsl.mul-truncate.frag
WARNING: 0:24: '' : mul() matrix size mismatch
WARNING: 0:25: '' : mul() matrix size mismatch
WARNING: 0:28: '' : mul() matrix size mismatch
WARNING: 0:29: '' : mul() matrix size mismatch
WARNING: 0:32: '' : mul() matrix size mismatch
WARNING: 0:33: '' : mul() matrix size mismatch
WARNING: 0:34: '' : mul() matrix size mismatch
WARNING: 0:35: '' : mul() matrix size mismatch
Shader version: 500
gl_FragCoord origin is upper left
0:? Sequence
0:18 Function Definition: @main( ( temp 4-component vector of float)
0:18 Function Parameters:
0:? Sequence
0:20 Sequence
0:20 move second child to first child ( temp float)
0:20 'r00' ( temp float)
0:20 dot-product ( temp float)
0:20 v2: direct index for structure (layout( row_major std140) uniform 2-component vector of float)
0:20 'anon@0' (layout( row_major std140) uniform block{layout( row_major std140) uniform 4X4 matrix of float m44, layout( row_major std140) uniform 4X3 matrix of float m43, layout( row_major std140) uniform 3X4 matrix of float m34, layout( row_major std140) uniform 3X3 matrix of float m33, layout( row_major std140) uniform 2X4 matrix of float m24, layout( row_major std140) uniform 4X2 matrix of float m42, layout( row_major std140) uniform 4-component vector of float v4, layout( row_major std140) uniform 3-component vector of float v3, layout( row_major std140) uniform 2-component vector of float v2})
0:20 Constant:
0:20 8 (const uint)
0:20 Construct vec2 ( in 2-component vector of float)
0:20 v3: direct index for structure (layout( row_major std140) uniform 3-component vector of float)
0:20 'anon@0' (layout( row_major std140) uniform block{layout( row_major std140) uniform 4X4 matrix of float m44, layout( row_major std140) uniform 4X3 matrix of float m43, layout( row_major std140) uniform 3X4 matrix of float m34, layout( row_major std140) uniform 3X3 matrix of float m33, layout( row_major std140) uniform 2X4 matrix of float m24, layout( row_major std140) uniform 4X2 matrix of float m42, layout( row_major std140) uniform 4-component vector of float v4, layout( row_major std140) uniform 3-component vector of float v3, layout( row_major std140) uniform 2-component vector of float v2})
0:20 Constant:
0:20 7 (const uint)
0:21 Sequence
0:21 move second child to first child ( temp float)
0:21 'r01' ( temp float)
0:21 dot-product ( temp float)
0:21 Construct vec2 ( in 2-component vector of float)
0:21 v4: direct index for structure (layout( row_major std140) uniform 4-component vector of float)
0:21 'anon@0' (layout( row_major std140) uniform block{layout( row_major std140) uniform 4X4 matrix of float m44, layout( row_major std140) uniform 4X3 matrix of float m43, layout( row_major std140) uniform 3X4 matrix of float m34, layout( row_major std140) uniform 3X3 matrix of float m33, layout( row_major std140) uniform 2X4 matrix of float m24, layout( row_major std140) uniform 4X2 matrix of float m42, layout( row_major std140) uniform 4-component vector of float v4, layout( row_major std140) uniform 3-component vector of float v3, layout( row_major std140) uniform 2-component vector of float v2})
0:21 Constant:
0:21 6 (const uint)
0:21 v2: direct index for structure (layout( row_major std140) uniform 2-component vector of float)
0:21 'anon@0' (layout( row_major std140) uniform block{layout( row_major std140) uniform 4X4 matrix of float m44, layout( row_major std140) uniform 4X3 matrix of float m43, layout( row_major std140) uniform 3X4 matrix of float m34, layout( row_major std140) uniform 3X3 matrix of float m33, layout( row_major std140) uniform 2X4 matrix of float m24, layout( row_major std140) uniform 4X2 matrix of float m42, layout( row_major std140) uniform 4-component vector of float v4, layout( row_major std140) uniform 3-component vector of float v3, layout( row_major std140) uniform 2-component vector of float v2})
0:21 Constant:
0:21 8 (const uint)
0:24 Sequence
0:24 move second child to first child ( temp 4-component vector of float)
0:24 'r10' ( temp 4-component vector of float)
0:24 matrix-times-vector ( temp 4-component vector of float)
0:24 Construct mat3x4 ( uniform 3X4 matrix of float)
0:24 m44: direct index for structure (layout( row_major std140) uniform 4X4 matrix of float)
0:24 'anon@0' (layout( row_major std140) uniform block{layout( row_major std140) uniform 4X4 matrix of float m44, layout( row_major std140) uniform 4X3 matrix of float m43, layout( row_major std140) uniform 3X4 matrix of float m34, layout( row_major std140) uniform 3X3 matrix of float m33, layout( row_major std140) uniform 2X4 matrix of float m24, layout( row_major std140) uniform 4X2 matrix of float m42, layout( row_major std140) uniform 4-component vector of float v4, layout( row_major std140) uniform 3-component vector of float v3, layout( row_major std140) uniform 2-component vector of float v2})
0:24 Constant:
0:24 0 (const uint)
0:24 v3: direct index for structure (layout( row_major std140) uniform 3-component vector of float)
0:24 'anon@0' (layout( row_major std140) uniform block{layout( row_major std140) uniform 4X4 matrix of float m44, layout( row_major std140) uniform 4X3 matrix of float m43, layout( row_major std140) uniform 3X4 matrix of float m34, layout( row_major std140) uniform 3X3 matrix of float m33, layout( row_major std140) uniform 2X4 matrix of float m24, layout( row_major std140) uniform 4X2 matrix of float m42, layout( row_major std140) uniform 4-component vector of float v4, layout( row_major std140) uniform 3-component vector of float v3, layout( row_major std140) uniform 2-component vector of float v2})
0:24 Constant:
0:24 7 (const uint)
0:25 Sequence
0:25 move second child to first child ( temp 4-component vector of float)
0:25 'r11' ( temp 4-component vector of float)
0:25 matrix-times-vector ( temp 4-component vector of float)
0:25 m34: direct index for structure (layout( row_major std140) uniform 3X4 matrix of float)
0:25 'anon@0' (layout( row_major std140) uniform block{layout( row_major std140) uniform 4X4 matrix of float m44, layout( row_major std140) uniform 4X3 matrix of float m43, layout( row_major std140) uniform 3X4 matrix of float m34, layout( row_major std140) uniform 3X3 matrix of float m33, layout( row_major std140) uniform 2X4 matrix of float m24, layout( row_major std140) uniform 4X2 matrix of float m42, layout( row_major std140) uniform 4-component vector of float v4, layout( row_major std140) uniform 3-component vector of float v3, layout( row_major std140) uniform 2-component vector of float v2})
0:25 Constant:
0:25 2 (const uint)
0:25 Construct vec3 ( uniform 3-component vector of float)
0:25 v4: direct index for structure (layout( row_major std140) uniform 4-component vector of float)
0:25 'anon@0' (layout( row_major std140) uniform block{layout( row_major std140) uniform 4X4 matrix of float m44, layout( row_major std140) uniform 4X3 matrix of float m43, layout( row_major std140) uniform 3X4 matrix of float m34, layout( row_major std140) uniform 3X3 matrix of float m33, layout( row_major std140) uniform 2X4 matrix of float m24, layout( row_major std140) uniform 4X2 matrix of float m42, layout( row_major std140) uniform 4-component vector of float v4, layout( row_major std140) uniform 3-component vector of float v3, layout( row_major std140) uniform 2-component vector of float v2})
0:25 Constant:
0:25 6 (const uint)
0:28 Sequence
0:28 move second child to first child ( temp 4-component vector of float)
0:28 'r20' ( temp 4-component vector of float)
0:28 vector-times-matrix ( temp 4-component vector of float)
0:28 v3: direct index for structure (layout( row_major std140) uniform 3-component vector of float)
0:28 'anon@0' (layout( row_major std140) uniform block{layout( row_major std140) uniform 4X4 matrix of float m44, layout( row_major std140) uniform 4X3 matrix of float m43, layout( row_major std140) uniform 3X4 matrix of float m34, layout( row_major std140) uniform 3X3 matrix of float m33, layout( row_major std140) uniform 2X4 matrix of float m24, layout( row_major std140) uniform 4X2 matrix of float m42, layout( row_major std140) uniform 4-component vector of float v4, layout( row_major std140) uniform 3-component vector of float v3, layout( row_major std140) uniform 2-component vector of float v2})
0:28 Constant:
0:28 7 (const uint)
0:28 Construct mat4x3 ( uniform 4X3 matrix of float)
0:28 m44: direct index for structure (layout( row_major std140) uniform 4X4 matrix of float)
0:28 'anon@0' (layout( row_major std140) uniform block{layout( row_major std140) uniform 4X4 matrix of float m44, layout( row_major std140) uniform 4X3 matrix of float m43, layout( row_major std140) uniform 3X4 matrix of float m34, layout( row_major std140) uniform 3X3 matrix of float m33, layout( row_major std140) uniform 2X4 matrix of float m24, layout( row_major std140) uniform 4X2 matrix of float m42, layout( row_major std140) uniform 4-component vector of float v4, layout( row_major std140) uniform 3-component vector of float v3, layout( row_major std140) uniform 2-component vector of float v2})
0:28 Constant:
0:28 0 (const uint)
0:29 Sequence
0:29 move second child to first child ( temp 4-component vector of float)
0:29 'r21' ( temp 4-component vector of float)
0:29 vector-times-matrix ( temp 4-component vector of float)
0:29 Construct vec3 ( uniform 3-component vector of float)
0:29 v4: direct index for structure (layout( row_major std140) uniform 4-component vector of float)
0:29 'anon@0' (layout( row_major std140) uniform block{layout( row_major std140) uniform 4X4 matrix of float m44, layout( row_major std140) uniform 4X3 matrix of float m43, layout( row_major std140) uniform 3X4 matrix of float m34, layout( row_major std140) uniform 3X3 matrix of float m33, layout( row_major std140) uniform 2X4 matrix of float m24, layout( row_major std140) uniform 4X2 matrix of float m42, layout( row_major std140) uniform 4-component vector of float v4, layout( row_major std140) uniform 3-component vector of float v3, layout( row_major std140) uniform 2-component vector of float v2})
0:29 Constant:
0:29 6 (const uint)
0:29 m43: direct index for structure (layout( row_major std140) uniform 4X3 matrix of float)
0:29 'anon@0' (layout( row_major std140) uniform block{layout( row_major std140) uniform 4X4 matrix of float m44, layout( row_major std140) uniform 4X3 matrix of float m43, layout( row_major std140) uniform 3X4 matrix of float m34, layout( row_major std140) uniform 3X3 matrix of float m33, layout( row_major std140) uniform 2X4 matrix of float m24, layout( row_major std140) uniform 4X2 matrix of float m42, layout( row_major std140) uniform 4-component vector of float v4, layout( row_major std140) uniform 3-component vector of float v3, layout( row_major std140) uniform 2-component vector of float v2})
0:29 Constant:
0:29 1 (const uint)
0:32 Sequence
0:32 move second child to first child ( temp 2X3 matrix of float)
0:32 'r30' ( temp 2X3 matrix of float)
0:32 matrix-multiply ( temp 2X3 matrix of float)
0:32 m33: direct index for structure (layout( row_major std140) uniform 3X3 matrix of float)
0:32 'anon@0' (layout( row_major std140) uniform block{layout( row_major std140) uniform 4X4 matrix of float m44, layout( row_major std140) uniform 4X3 matrix of float m43, layout( row_major std140) uniform 3X4 matrix of float m34, layout( row_major std140) uniform 3X3 matrix of float m33, layout( row_major std140) uniform 2X4 matrix of float m24, layout( row_major std140) uniform 4X2 matrix of float m42, layout( row_major std140) uniform 4-component vector of float v4, layout( row_major std140) uniform 3-component vector of float v3, layout( row_major std140) uniform 2-component vector of float v2})
0:32 Constant:
0:32 3 (const uint)
0:32 Construct mat2x3 ( uniform 2X3 matrix of float)
0:32 m24: direct index for structure (layout( row_major std140) uniform 2X4 matrix of float)
0:32 'anon@0' (layout( row_major std140) uniform block{layout( row_major std140) uniform 4X4 matrix of float m44, layout( row_major std140) uniform 4X3 matrix of float m43, layout( row_major std140) uniform 3X4 matrix of float m34, layout( row_major std140) uniform 3X3 matrix of float m33, layout( row_major std140) uniform 2X4 matrix of float m24, layout( row_major std140) uniform 4X2 matrix of float m42, layout( row_major std140) uniform 4-component vector of float v4, layout( row_major std140) uniform 3-component vector of float v3, layout( row_major std140) uniform 2-component vector of float v2})
0:32 Constant:
0:32 4 (const uint)
0:33 Sequence
0:33 move second child to first child ( temp 3X4 matrix of float)
0:33 'r31' ( temp 3X4 matrix of float)
0:33 matrix-multiply ( temp 3X4 matrix of float)
0:33 m24: direct index for structure (layout( row_major std140) uniform 2X4 matrix of float)
0:33 'anon@0' (layout( row_major std140) uniform block{layout( row_major std140) uniform 4X4 matrix of float m44, layout( row_major std140) uniform 4X3 matrix of float m43, layout( row_major std140) uniform 3X4 matrix of float m34, layout( row_major std140) uniform 3X3 matrix of float m33, layout( row_major std140) uniform 2X4 matrix of float m24, layout( row_major std140) uniform 4X2 matrix of float m42, layout( row_major std140) uniform 4-component vector of float v4, layout( row_major std140) uniform 3-component vector of float v3, layout( row_major std140) uniform 2-component vector of float v2})
0:33 Constant:
0:33 4 (const uint)
0:33 Construct mat3x2 ( uniform 3X2 matrix of float)
0:33 m33: direct index for structure (layout( row_major std140) uniform 3X3 matrix of float)
0:33 'anon@0' (layout( row_major std140) uniform block{layout( row_major std140) uniform 4X4 matrix of float m44, layout( row_major std140) uniform 4X3 matrix of float m43, layout( row_major std140) uniform 3X4 matrix of float m34, layout( row_major std140) uniform 3X3 matrix of float m33, layout( row_major std140) uniform 2X4 matrix of float m24, layout( row_major std140) uniform 4X2 matrix of float m42, layout( row_major std140) uniform 4-component vector of float v4, layout( row_major std140) uniform 3-component vector of float v3, layout( row_major std140) uniform 2-component vector of float v2})
0:33 Constant:
0:33 3 (const uint)
0:34 Sequence
0:34 move second child to first child ( temp 3X2 matrix of float)
0:34 'r32' ( temp 3X2 matrix of float)
0:34 matrix-multiply ( temp 3X2 matrix of float)
0:34 Construct mat3x2 ( uniform 3X2 matrix of float)
0:34 m42: direct index for structure (layout( row_major std140) uniform 4X2 matrix of float)
0:34 'anon@0' (layout( row_major std140) uniform block{layout( row_major std140) uniform 4X4 matrix of float m44, layout( row_major std140) uniform 4X3 matrix of float m43, layout( row_major std140) uniform 3X4 matrix of float m34, layout( row_major std140) uniform 3X3 matrix of float m33, layout( row_major std140) uniform 2X4 matrix of float m24, layout( row_major std140) uniform 4X2 matrix of float m42, layout( row_major std140) uniform 4-component vector of float v4, layout( row_major std140) uniform 3-component vector of float v3, layout( row_major std140) uniform 2-component vector of float v2})
0:34 Constant:
0:34 5 (const uint)
0:34 m33: direct index for structure (layout( row_major std140) uniform 3X3 matrix of float)
0:34 'anon@0' (layout( row_major std140) uniform block{layout( row_major std140) uniform 4X4 matrix of float m44, layout( row_major std140) uniform 4X3 matrix of float m43, layout( row_major std140) uniform 3X4 matrix of float m34, layout( row_major std140) uniform 3X3 matrix of float m33, layout( row_major std140) uniform 2X4 matrix of float m24, layout( row_major std140) uniform 4X2 matrix of float m42, layout( row_major std140) uniform 4-component vector of float v4, layout( row_major std140) uniform 3-component vector of float v3, layout( row_major std140) uniform 2-component vector of float v2})
0:34 Constant:
0:34 3 (const uint)
0:35 Sequence
0:35 move second child to first child ( temp 4X3 matrix of float)
0:35 'r33' ( temp 4X3 matrix of float)
0:35 matrix-multiply ( temp 4X3 matrix of float)
0:35 Construct mat2x3 ( uniform 2X3 matrix of float)
0:35 m33: direct index for structure (layout( row_major std140) uniform 3X3 matrix of float)
0:35 'anon@0' (layout( row_major std140) uniform block{layout( row_major std140) uniform 4X4 matrix of float m44, layout( row_major std140) uniform 4X3 matrix of float m43, layout( row_major std140) uniform 3X4 matrix of float m34, layout( row_major std140) uniform 3X3 matrix of float m33, layout( row_major std140) uniform 2X4 matrix of float m24, layout( row_major std140) uniform 4X2 matrix of float m42, layout( row_major std140) uniform 4-component vector of float v4, layout( row_major std140) uniform 3-component vector of float v3, layout( row_major std140) uniform 2-component vector of float v2})
0:35 Constant:
0:35 3 (const uint)
0:35 m42: direct index for structure (layout( row_major std140) uniform 4X2 matrix of float)
0:35 'anon@0' (layout( row_major std140) uniform block{layout( row_major std140) uniform 4X4 matrix of float m44, layout( row_major std140) uniform 4X3 matrix of float m43, layout( row_major std140) uniform 3X4 matrix of float m34, layout( row_major std140) uniform 3X3 matrix of float m33, layout( row_major std140) uniform 2X4 matrix of float m24, layout( row_major std140) uniform 4X2 matrix of float m42, layout( row_major std140) uniform 4-component vector of float v4, layout( row_major std140) uniform 3-component vector of float v3, layout( row_major std140) uniform 2-component vector of float v2})
0:35 Constant:
0:35 5 (const uint)
0:37 Branch: Return with expression
0:37 add ( temp 4-component vector of float)
0:37 add ( temp 4-component vector of float)
0:37 add ( temp 4-component vector of float)
0:37 add ( temp 4-component vector of float)
0:37 add ( temp 4-component vector of float)
0:37 add ( temp 4-component vector of float)
0:37 add ( temp 4-component vector of float)
0:37 add ( temp 4-component vector of float)
0:37 add ( temp 4-component vector of float)
0:37 'r10' ( temp 4-component vector of float)
0:37 'r11' ( temp 4-component vector of float)
0:37 'r20' ( temp 4-component vector of float)
0:37 'r21' ( temp 4-component vector of float)
0:37 'r00' ( temp float)
0:37 'r01' ( temp float)
0:37 direct index ( temp float)
0:37 direct index ( temp 3-component vector of float)
0:37 'r30' ( temp 2X3 matrix of float)
0:37 Constant:
0:37 0 (const int)
0:37 Constant:
0:37 0 (const int)
0:37 direct index ( temp 4-component vector of float)
0:37 'r31' ( temp 3X4 matrix of float)
0:37 Constant:
0:37 0 (const int)
0:37 direct index ( temp float)
0:37 direct index ( temp 2-component vector of float)
0:37 'r32' ( temp 3X2 matrix of float)
0:37 Constant:
0:37 0 (const int)
0:37 Constant:
0:37 0 (const int)
0:37 direct index ( temp 4-component vector of float)
0:37 transpose ( temp 3X4 matrix of float)
0:37 'r33' ( temp 4X3 matrix of float)
0:37 Constant:
0:37 0 (const int)
0:18 Function Definition: main( ( temp void)
0:18 Function Parameters:
0:? Sequence
0:18 move second child to first child ( temp 4-component vector of float)
0:? '@entryPointOutput' (layout( location=0) out 4-component vector of float)
0:18 Function Call: @main( ( temp 4-component vector of float)
0:? Linker Objects
0:? 'anon@0' (layout( row_major std140) uniform block{layout( row_major std140) uniform 4X4 matrix of float m44, layout( row_major std140) uniform 4X3 matrix of float m43, layout( row_major std140) uniform 3X4 matrix of float m34, layout( row_major std140) uniform 3X3 matrix of float m33, layout( row_major std140) uniform 2X4 matrix of float m24, layout( row_major std140) uniform 4X2 matrix of float m42, layout( row_major std140) uniform 4-component vector of float v4, layout( row_major std140) uniform 3-component vector of float v3, layout( row_major std140) uniform 2-component vector of float v2})
0:? '@entryPointOutput' (layout( location=0) out 4-component vector of float)
Linked fragment stage:
Shader version: 500
gl_FragCoord origin is upper left
0:? Sequence
0:18 Function Definition: @main( ( temp 4-component vector of float)
0:18 Function Parameters:
0:? Sequence
0:20 Sequence
0:20 move second child to first child ( temp float)
0:20 'r00' ( temp float)
0:20 dot-product ( temp float)
0:20 v2: direct index for structure (layout( row_major std140) uniform 2-component vector of float)
0:20 'anon@0' (layout( row_major std140) uniform block{layout( row_major std140) uniform 4X4 matrix of float m44, layout( row_major std140) uniform 4X3 matrix of float m43, layout( row_major std140) uniform 3X4 matrix of float m34, layout( row_major std140) uniform 3X3 matrix of float m33, layout( row_major std140) uniform 2X4 matrix of float m24, layout( row_major std140) uniform 4X2 matrix of float m42, layout( row_major std140) uniform 4-component vector of float v4, layout( row_major std140) uniform 3-component vector of float v3, layout( row_major std140) uniform 2-component vector of float v2})
0:20 Constant:
0:20 8 (const uint)
0:20 Construct vec2 ( in 2-component vector of float)
0:20 v3: direct index for structure (layout( row_major std140) uniform 3-component vector of float)
0:20 'anon@0' (layout( row_major std140) uniform block{layout( row_major std140) uniform 4X4 matrix of float m44, layout( row_major std140) uniform 4X3 matrix of float m43, layout( row_major std140) uniform 3X4 matrix of float m34, layout( row_major std140) uniform 3X3 matrix of float m33, layout( row_major std140) uniform 2X4 matrix of float m24, layout( row_major std140) uniform 4X2 matrix of float m42, layout( row_major std140) uniform 4-component vector of float v4, layout( row_major std140) uniform 3-component vector of float v3, layout( row_major std140) uniform 2-component vector of float v2})
0:20 Constant:
0:20 7 (const uint)
0:21 Sequence
0:21 move second child to first child ( temp float)
0:21 'r01' ( temp float)
0:21 dot-product ( temp float)
0:21 Construct vec2 ( in 2-component vector of float)
0:21 v4: direct index for structure (layout( row_major std140) uniform 4-component vector of float)
0:21 'anon@0' (layout( row_major std140) uniform block{layout( row_major std140) uniform 4X4 matrix of float m44, layout( row_major std140) uniform 4X3 matrix of float m43, layout( row_major std140) uniform 3X4 matrix of float m34, layout( row_major std140) uniform 3X3 matrix of float m33, layout( row_major std140) uniform 2X4 matrix of float m24, layout( row_major std140) uniform 4X2 matrix of float m42, layout( row_major std140) uniform 4-component vector of float v4, layout( row_major std140) uniform 3-component vector of float v3, layout( row_major std140) uniform 2-component vector of float v2})
0:21 Constant:
0:21 6 (const uint)
0:21 v2: direct index for structure (layout( row_major std140) uniform 2-component vector of float)
0:21 'anon@0' (layout( row_major std140) uniform block{layout( row_major std140) uniform 4X4 matrix of float m44, layout( row_major std140) uniform 4X3 matrix of float m43, layout( row_major std140) uniform 3X4 matrix of float m34, layout( row_major std140) uniform 3X3 matrix of float m33, layout( row_major std140) uniform 2X4 matrix of float m24, layout( row_major std140) uniform 4X2 matrix of float m42, layout( row_major std140) uniform 4-component vector of float v4, layout( row_major std140) uniform 3-component vector of float v3, layout( row_major std140) uniform 2-component vector of float v2})
0:21 Constant:
0:21 8 (const uint)
0:24 Sequence
0:24 move second child to first child ( temp 4-component vector of float)
0:24 'r10' ( temp 4-component vector of float)
0:24 matrix-times-vector ( temp 4-component vector of float)
0:24 Construct mat3x4 ( uniform 3X4 matrix of float)
0:24 m44: direct index for structure (layout( row_major std140) uniform 4X4 matrix of float)
0:24 'anon@0' (layout( row_major std140) uniform block{layout( row_major std140) uniform 4X4 matrix of float m44, layout( row_major std140) uniform 4X3 matrix of float m43, layout( row_major std140) uniform 3X4 matrix of float m34, layout( row_major std140) uniform 3X3 matrix of float m33, layout( row_major std140) uniform 2X4 matrix of float m24, layout( row_major std140) uniform 4X2 matrix of float m42, layout( row_major std140) uniform 4-component vector of float v4, layout( row_major std140) uniform 3-component vector of float v3, layout( row_major std140) uniform 2-component vector of float v2})
0:24 Constant:
0:24 0 (const uint)
0:24 v3: direct index for structure (layout( row_major std140) uniform 3-component vector of float)
0:24 'anon@0' (layout( row_major std140) uniform block{layout( row_major std140) uniform 4X4 matrix of float m44, layout( row_major std140) uniform 4X3 matrix of float m43, layout( row_major std140) uniform 3X4 matrix of float m34, layout( row_major std140) uniform 3X3 matrix of float m33, layout( row_major std140) uniform 2X4 matrix of float m24, layout( row_major std140) uniform 4X2 matrix of float m42, layout( row_major std140) uniform 4-component vector of float v4, layout( row_major std140) uniform 3-component vector of float v3, layout( row_major std140) uniform 2-component vector of float v2})
0:24 Constant:
0:24 7 (const uint)
0:25 Sequence
0:25 move second child to first child ( temp 4-component vector of float)
0:25 'r11' ( temp 4-component vector of float)
0:25 matrix-times-vector ( temp 4-component vector of float)
0:25 m34: direct index for structure (layout( row_major std140) uniform 3X4 matrix of float)
0:25 'anon@0' (layout( row_major std140) uniform block{layout( row_major std140) uniform 4X4 matrix of float m44, layout( row_major std140) uniform 4X3 matrix of float m43, layout( row_major std140) uniform 3X4 matrix of float m34, layout( row_major std140) uniform 3X3 matrix of float m33, layout( row_major std140) uniform 2X4 matrix of float m24, layout( row_major std140) uniform 4X2 matrix of float m42, layout( row_major std140) uniform 4-component vector of float v4, layout( row_major std140) uniform 3-component vector of float v3, layout( row_major std140) uniform 2-component vector of float v2})
0:25 Constant:
0:25 2 (const uint)
0:25 Construct vec3 ( uniform 3-component vector of float)
0:25 v4: direct index for structure (layout( row_major std140) uniform 4-component vector of float)
0:25 'anon@0' (layout( row_major std140) uniform block{layout( row_major std140) uniform 4X4 matrix of float m44, layout( row_major std140) uniform 4X3 matrix of float m43, layout( row_major std140) uniform 3X4 matrix of float m34, layout( row_major std140) uniform 3X3 matrix of float m33, layout( row_major std140) uniform 2X4 matrix of float m24, layout( row_major std140) uniform 4X2 matrix of float m42, layout( row_major std140) uniform 4-component vector of float v4, layout( row_major std140) uniform 3-component vector of float v3, layout( row_major std140) uniform 2-component vector of float v2})
0:25 Constant:
0:25 6 (const uint)
0:28 Sequence
0:28 move second child to first child ( temp 4-component vector of float)
0:28 'r20' ( temp 4-component vector of float)
0:28 vector-times-matrix ( temp 4-component vector of float)
0:28 v3: direct index for structure (layout( row_major std140) uniform 3-component vector of float)
0:28 'anon@0' (layout( row_major std140) uniform block{layout( row_major std140) uniform 4X4 matrix of float m44, layout( row_major std140) uniform 4X3 matrix of float m43, layout( row_major std140) uniform 3X4 matrix of float m34, layout( row_major std140) uniform 3X3 matrix of float m33, layout( row_major std140) uniform 2X4 matrix of float m24, layout( row_major std140) uniform 4X2 matrix of float m42, layout( row_major std140) uniform 4-component vector of float v4, layout( row_major std140) uniform 3-component vector of float v3, layout( row_major std140) uniform 2-component vector of float v2})
0:28 Constant:
0:28 7 (const uint)
0:28 Construct mat4x3 ( uniform 4X3 matrix of float)
0:28 m44: direct index for structure (layout( row_major std140) uniform 4X4 matrix of float)
0:28 'anon@0' (layout( row_major std140) uniform block{layout( row_major std140) uniform 4X4 matrix of float m44, layout( row_major std140) uniform 4X3 matrix of float m43, layout( row_major std140) uniform 3X4 matrix of float m34, layout( row_major std140) uniform 3X3 matrix of float m33, layout( row_major std140) uniform 2X4 matrix of float m24, layout( row_major std140) uniform 4X2 matrix of float m42, layout( row_major std140) uniform 4-component vector of float v4, layout( row_major std140) uniform 3-component vector of float v3, layout( row_major std140) uniform 2-component vector of float v2})
0:28 Constant:
0:28 0 (const uint)
0:29 Sequence
0:29 move second child to first child ( temp 4-component vector of float)
0:29 'r21' ( temp 4-component vector of float)
0:29 vector-times-matrix ( temp 4-component vector of float)
0:29 Construct vec3 ( uniform 3-component vector of float)
0:29 v4: direct index for structure (layout( row_major std140) uniform 4-component vector of float)
0:29 'anon@0' (layout( row_major std140) uniform block{layout( row_major std140) uniform 4X4 matrix of float m44, layout( row_major std140) uniform 4X3 matrix of float m43, layout( row_major std140) uniform 3X4 matrix of float m34, layout( row_major std140) uniform 3X3 matrix of float m33, layout( row_major std140) uniform 2X4 matrix of float m24, layout( row_major std140) uniform 4X2 matrix of float m42, layout( row_major std140) uniform 4-component vector of float v4, layout( row_major std140) uniform 3-component vector of float v3, layout( row_major std140) uniform 2-component vector of float v2})
0:29 Constant:
0:29 6 (const uint)
0:29 m43: direct index for structure (layout( row_major std140) uniform 4X3 matrix of float)
0:29 'anon@0' (layout( row_major std140) uniform block{layout( row_major std140) uniform 4X4 matrix of float m44, layout( row_major std140) uniform 4X3 matrix of float m43, layout( row_major std140) uniform 3X4 matrix of float m34, layout( row_major std140) uniform 3X3 matrix of float m33, layout( row_major std140) uniform 2X4 matrix of float m24, layout( row_major std140) uniform 4X2 matrix of float m42, layout( row_major std140) uniform 4-component vector of float v4, layout( row_major std140) uniform 3-component vector of float v3, layout( row_major std140) uniform 2-component vector of float v2})
0:29 Constant:
0:29 1 (const uint)
0:32 Sequence
0:32 move second child to first child ( temp 2X3 matrix of float)
0:32 'r30' ( temp 2X3 matrix of float)
0:32 matrix-multiply ( temp 2X3 matrix of float)
0:32 m33: direct index for structure (layout( row_major std140) uniform 3X3 matrix of float)
0:32 'anon@0' (layout( row_major std140) uniform block{layout( row_major std140) uniform 4X4 matrix of float m44, layout( row_major std140) uniform 4X3 matrix of float m43, layout( row_major std140) uniform 3X4 matrix of float m34, layout( row_major std140) uniform 3X3 matrix of float m33, layout( row_major std140) uniform 2X4 matrix of float m24, layout( row_major std140) uniform 4X2 matrix of float m42, layout( row_major std140) uniform 4-component vector of float v4, layout( row_major std140) uniform 3-component vector of float v3, layout( row_major std140) uniform 2-component vector of float v2})
0:32 Constant:
0:32 3 (const uint)
0:32 Construct mat2x3 ( uniform 2X3 matrix of float)
0:32 m24: direct index for structure (layout( row_major std140) uniform 2X4 matrix of float)
0:32 'anon@0' (layout( row_major std140) uniform block{layout( row_major std140) uniform 4X4 matrix of float m44, layout( row_major std140) uniform 4X3 matrix of float m43, layout( row_major std140) uniform 3X4 matrix of float m34, layout( row_major std140) uniform 3X3 matrix of float m33, layout( row_major std140) uniform 2X4 matrix of float m24, layout( row_major std140) uniform 4X2 matrix of float m42, layout( row_major std140) uniform 4-component vector of float v4, layout( row_major std140) uniform 3-component vector of float v3, layout( row_major std140) uniform 2-component vector of float v2})
0:32 Constant:
0:32 4 (const uint)
0:33 Sequence
0:33 move second child to first child ( temp 3X4 matrix of float)
0:33 'r31' ( temp 3X4 matrix of float)
0:33 matrix-multiply ( temp 3X4 matrix of float)
0:33 m24: direct index for structure (layout( row_major std140) uniform 2X4 matrix of float)
0:33 'anon@0' (layout( row_major std140) uniform block{layout( row_major std140) uniform 4X4 matrix of float m44, layout( row_major std140) uniform 4X3 matrix of float m43, layout( row_major std140) uniform 3X4 matrix of float m34, layout( row_major std140) uniform 3X3 matrix of float m33, layout( row_major std140) uniform 2X4 matrix of float m24, layout( row_major std140) uniform 4X2 matrix of float m42, layout( row_major std140) uniform 4-component vector of float v4, layout( row_major std140) uniform 3-component vector of float v3, layout( row_major std140) uniform 2-component vector of float v2})
0:33 Constant:
0:33 4 (const uint)
0:33 Construct mat3x2 ( uniform 3X2 matrix of float)
0:33 m33: direct index for structure (layout( row_major std140) uniform 3X3 matrix of float)
0:33 'anon@0' (layout( row_major std140) uniform block{layout( row_major std140) uniform 4X4 matrix of float m44, layout( row_major std140) uniform 4X3 matrix of float m43, layout( row_major std140) uniform 3X4 matrix of float m34, layout( row_major std140) uniform 3X3 matrix of float m33, layout( row_major std140) uniform 2X4 matrix of float m24, layout( row_major std140) uniform 4X2 matrix of float m42, layout( row_major std140) uniform 4-component vector of float v4, layout( row_major std140) uniform 3-component vector of float v3, layout( row_major std140) uniform 2-component vector of float v2})
0:33 Constant:
0:33 3 (const uint)
0:34 Sequence
0:34 move second child to first child ( temp 3X2 matrix of float)
0:34 'r32' ( temp 3X2 matrix of float)
0:34 matrix-multiply ( temp 3X2 matrix of float)
0:34 Construct mat3x2 ( uniform 3X2 matrix of float)
0:34 m42: direct index for structure (layout( row_major std140) uniform 4X2 matrix of float)
0:34 'anon@0' (layout( row_major std140) uniform block{layout( row_major std140) uniform 4X4 matrix of float m44, layout( row_major std140) uniform 4X3 matrix of float m43, layout( row_major std140) uniform 3X4 matrix of float m34, layout( row_major std140) uniform 3X3 matrix of float m33, layout( row_major std140) uniform 2X4 matrix of float m24, layout( row_major std140) uniform 4X2 matrix of float m42, layout( row_major std140) uniform 4-component vector of float v4, layout( row_major std140) uniform 3-component vector of float v3, layout( row_major std140) uniform 2-component vector of float v2})
0:34 Constant:
0:34 5 (const uint)
0:34 m33: direct index for structure (layout( row_major std140) uniform 3X3 matrix of float)
0:34 'anon@0' (layout( row_major std140) uniform block{layout( row_major std140) uniform 4X4 matrix of float m44, layout( row_major std140) uniform 4X3 matrix of float m43, layout( row_major std140) uniform 3X4 matrix of float m34, layout( row_major std140) uniform 3X3 matrix of float m33, layout( row_major std140) uniform 2X4 matrix of float m24, layout( row_major std140) uniform 4X2 matrix of float m42, layout( row_major std140) uniform 4-component vector of float v4, layout( row_major std140) uniform 3-component vector of float v3, layout( row_major std140) uniform 2-component vector of float v2})
0:34 Constant:
0:34 3 (const uint)
0:35 Sequence
0:35 move second child to first child ( temp 4X3 matrix of float)
0:35 'r33' ( temp 4X3 matrix of float)
0:35 matrix-multiply ( temp 4X3 matrix of float)
0:35 Construct mat2x3 ( uniform 2X3 matrix of float)
0:35 m33: direct index for structure (layout( row_major std140) uniform 3X3 matrix of float)
0:35 'anon@0' (layout( row_major std140) uniform block{layout( row_major std140) uniform 4X4 matrix of float m44, layout( row_major std140) uniform 4X3 matrix of float m43, layout( row_major std140) uniform 3X4 matrix of float m34, layout( row_major std140) uniform 3X3 matrix of float m33, layout( row_major std140) uniform 2X4 matrix of float m24, layout( row_major std140) uniform 4X2 matrix of float m42, layout( row_major std140) uniform 4-component vector of float v4, layout( row_major std140) uniform 3-component vector of float v3, layout( row_major std140) uniform 2-component vector of float v2})
0:35 Constant:
0:35 3 (const uint)
0:35 m42: direct index for structure (layout( row_major std140) uniform 4X2 matrix of float)
0:35 'anon@0' (layout( row_major std140) uniform block{layout( row_major std140) uniform 4X4 matrix of float m44, layout( row_major std140) uniform 4X3 matrix of float m43, layout( row_major std140) uniform 3X4 matrix of float m34, layout( row_major std140) uniform 3X3 matrix of float m33, layout( row_major std140) uniform 2X4 matrix of float m24, layout( row_major std140) uniform 4X2 matrix of float m42, layout( row_major std140) uniform 4-component vector of float v4, layout( row_major std140) uniform 3-component vector of float v3, layout( row_major std140) uniform 2-component vector of float v2})
0:35 Constant:
0:35 5 (const uint)
0:37 Branch: Return with expression
0:37 add ( temp 4-component vector of float)
0:37 add ( temp 4-component vector of float)
0:37 add ( temp 4-component vector of float)
0:37 add ( temp 4-component vector of float)
0:37 add ( temp 4-component vector of float)
0:37 add ( temp 4-component vector of float)
0:37 add ( temp 4-component vector of float)
0:37 add ( temp 4-component vector of float)
0:37 add ( temp 4-component vector of float)
0:37 'r10' ( temp 4-component vector of float)
0:37 'r11' ( temp 4-component vector of float)
0:37 'r20' ( temp 4-component vector of float)
0:37 'r21' ( temp 4-component vector of float)
0:37 'r00' ( temp float)
0:37 'r01' ( temp float)
0:37 direct index ( temp float)
0:37 direct index ( temp 3-component vector of float)
0:37 'r30' ( temp 2X3 matrix of float)
0:37 Constant:
0:37 0 (const int)
0:37 Constant:
0:37 0 (const int)
0:37 direct index ( temp 4-component vector of float)
0:37 'r31' ( temp 3X4 matrix of float)
0:37 Constant:
0:37 0 (const int)
0:37 direct index ( temp float)
0:37 direct index ( temp 2-component vector of float)
0:37 'r32' ( temp 3X2 matrix of float)
0:37 Constant:
0:37 0 (const int)
0:37 Constant:
0:37 0 (const int)
0:37 direct index ( temp 4-component vector of float)
0:37 transpose ( temp 3X4 matrix of float)
0:37 'r33' ( temp 4X3 matrix of float)
0:37 Constant:
0:37 0 (const int)
0:18 Function Definition: main( ( temp void)
0:18 Function Parameters:
0:? Sequence
0:18 move second child to first child ( temp 4-component vector of float)
0:? '@entryPointOutput' (layout( location=0) out 4-component vector of float)
0:18 Function Call: @main( ( temp 4-component vector of float)
0:? Linker Objects
0:? 'anon@0' (layout( row_major std140) uniform block{layout( row_major std140) uniform 4X4 matrix of float m44, layout( row_major std140) uniform 4X3 matrix of float m43, layout( row_major std140) uniform 3X4 matrix of float m34, layout( row_major std140) uniform 3X3 matrix of float m33, layout( row_major std140) uniform 2X4 matrix of float m24, layout( row_major std140) uniform 4X2 matrix of float m42, layout( row_major std140) uniform 4-component vector of float v4, layout( row_major std140) uniform 3-component vector of float v3, layout( row_major std140) uniform 2-component vector of float v2})
0:? '@entryPointOutput' (layout( location=0) out 4-component vector of float)
// Module Version 10000
// Generated by (magic number): 80002
// Id's are bound by 231
Capability Shader
1: ExtInstImport "GLSL.std.450"
MemoryModel Logical GLSL450
EntryPoint Fragment 4 "main" 229
ExecutionMode 4 OriginUpperLeft
Source HLSL 500
Name 4 "main"
Name 9 "@main("
Name 12 "r00"
Name 21 "Matrix"
MemberName 21(Matrix) 0 "m44"
MemberName 21(Matrix) 1 "m43"
MemberName 21(Matrix) 2 "m34"
MemberName 21(Matrix) 3 "m33"
MemberName 21(Matrix) 4 "m24"
MemberName 21(Matrix) 5 "m42"
MemberName 21(Matrix) 6 "v4"
MemberName 21(Matrix) 7 "v3"
MemberName 21(Matrix) 8 "v2"
Name 23 ""
Name 37 "r01"
Name 49 "r10"
Name 75 "r11"
Name 87 "r20"
Name 110 "r21"
Name 124 "r30"
Name 144 "r31"
Name 162 "r32"
Name 181 "r33"
Name 229 "@entryPointOutput"
MemberDecorate 21(Matrix) 0 RowMajor
MemberDecorate 21(Matrix) 0 Offset 0
MemberDecorate 21(Matrix) 0 MatrixStride 16
MemberDecorate 21(Matrix) 1 RowMajor
MemberDecorate 21(Matrix) 1 Offset 64
MemberDecorate 21(Matrix) 1 MatrixStride 16
MemberDecorate 21(Matrix) 2 RowMajor
MemberDecorate 21(Matrix) 2 Offset 112
MemberDecorate 21(Matrix) 2 MatrixStride 16
MemberDecorate 21(Matrix) 3 RowMajor
MemberDecorate 21(Matrix) 3 Offset 176
MemberDecorate 21(Matrix) 3 MatrixStride 16
MemberDecorate 21(Matrix) 4 RowMajor
MemberDecorate 21(Matrix) 4 Offset 224
MemberDecorate 21(Matrix) 4 MatrixStride 16
MemberDecorate 21(Matrix) 5 RowMajor
MemberDecorate 21(Matrix) 5 Offset 288
MemberDecorate 21(Matrix) 5 MatrixStride 16
MemberDecorate 21(Matrix) 6 Offset 320
MemberDecorate 21(Matrix) 7 Offset 336
MemberDecorate 21(Matrix) 8 Offset 352
Decorate 21(Matrix) Block
Decorate 23 DescriptorSet 0
Decorate 229(@entryPointOutput) Location 0
2: TypeVoid
3: TypeFunction 2
6: TypeFloat 32
7: TypeVector 6(float) 4
8: TypeFunction 7(fvec4)
11: TypePointer Function 6(float)
13: TypeMatrix 7(fvec4) 4
14: TypeVector 6(float) 3
15: TypeMatrix 14(fvec3) 4
16: TypeMatrix 7(fvec4) 3
17: TypeMatrix 14(fvec3) 3
18: TypeMatrix 7(fvec4) 2
19: TypeVector 6(float) 2
20: TypeMatrix 19(fvec2) 4
21(Matrix): TypeStruct 13 15 16 17 18 20 7(fvec4) 14(fvec3) 19(fvec2)
22: TypePointer Uniform 21(Matrix)
23: 22(ptr) Variable Uniform
24: TypeInt 32 1
25: 24(int) Constant 8
26: TypePointer Uniform 19(fvec2)
29: 24(int) Constant 7
30: TypePointer Uniform 14(fvec3)
38: 24(int) Constant 6
39: TypePointer Uniform 7(fvec4)
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
4(main): 2 Function None 3
5: Label
230: 7(fvec4) FunctionCall 9(@main()
Store 229(@entryPointOutput) 230
Return
FunctionEnd
9(@main(): 7(fvec4) Function None 8
10: Label
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
124(r30): 123(ptr) Variable Function
144(r31): 143(ptr) Variable Function
162(r32): 161(ptr) Variable Function
181(r33): 180(ptr) Variable Function
27: 26(ptr) AccessChain 23 25
28: 19(fvec2) Load 27
31: 30(ptr) AccessChain 23 29
32: 14(fvec3) Load 31
33: 6(float) CompositeExtract 32 0
34: 6(float) CompositeExtract 32 1
35: 19(fvec2) CompositeConstruct 33 34
36: 6(float) Dot 28 35
Store 12(r00) 36
40: 39(ptr) AccessChain 23 38
41: 7(fvec4) Load 40
42: 6(float) CompositeExtract 41 0
43: 6(float) CompositeExtract 41 1
44: 19(fvec2) CompositeConstruct 42 43
45: 26(ptr) AccessChain 23 25
46: 19(fvec2) Load 45
47: 6(float) Dot 44 46
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
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
FunctionEnd

View File

@ -0,0 +1,173 @@
hlsl.store.rwbyteaddressbuffer.type.comp
Shader version: 500
local_size = (64, 1, 1)
0:? Sequence
0:5 Function Definition: @main(vu3; ( temp void)
0:5 Function Parameters:
0:5 'dispatchThreadID' ( in 3-component vector of uint)
0:? Sequence
0:6 Test condition and select ( temp void)
0:6 Condition
0:6 Compare Equal ( temp bool)
0:6 direct index ( temp uint)
0:6 'dispatchThreadID' ( in 3-component vector of uint)
0:6 Constant:
0:6 0 (const int)
0:6 Constant:
0:6 0 (const uint)
0:6 true case
0:? Sequence
0:7 move second child to first child ( temp int)
0:7 'byteAddrTemp' ( temp int)
0:7 right-shift ( temp int)
0:7 Constant:
0:7 0 (const int)
0:7 Constant:
0:7 2 (const int)
0:7 move second child to first child ( temp uint)
0:7 indirect index (layout( row_major std430) buffer uint)
0:7 @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of uint)
0:7 'buffer' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of uint @data})
0:7 Constant:
0:7 0 (const uint)
0:7 'byteAddrTemp' ( temp int)
0:7 Constant:
0:7 2 (const uint)
0:5 Function Definition: main( ( temp void)
0:5 Function Parameters:
0:? Sequence
0:5 move second child to first child ( temp 3-component vector of uint)
0:? 'dispatchThreadID' ( temp 3-component vector of uint)
0:? 'dispatchThreadID' ( in 3-component vector of uint GlobalInvocationID)
0:5 Function Call: @main(vu3; ( temp void)
0:? 'dispatchThreadID' ( temp 3-component vector of uint)
0:? Linker Objects
0:? 'buffer' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of uint @data})
0:? 'dispatchThreadID' ( in 3-component vector of uint GlobalInvocationID)
Linked compute stage:
Shader version: 500
local_size = (64, 1, 1)
0:? Sequence
0:5 Function Definition: @main(vu3; ( temp void)
0:5 Function Parameters:
0:5 'dispatchThreadID' ( in 3-component vector of uint)
0:? Sequence
0:6 Test condition and select ( temp void)
0:6 Condition
0:6 Compare Equal ( temp bool)
0:6 direct index ( temp uint)
0:6 'dispatchThreadID' ( in 3-component vector of uint)
0:6 Constant:
0:6 0 (const int)
0:6 Constant:
0:6 0 (const uint)
0:6 true case
0:? Sequence
0:7 move second child to first child ( temp int)
0:7 'byteAddrTemp' ( temp int)
0:7 right-shift ( temp int)
0:7 Constant:
0:7 0 (const int)
0:7 Constant:
0:7 2 (const int)
0:7 move second child to first child ( temp uint)
0:7 indirect index (layout( row_major std430) buffer uint)
0:7 @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of uint)
0:7 'buffer' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of uint @data})
0:7 Constant:
0:7 0 (const uint)
0:7 'byteAddrTemp' ( temp int)
0:7 Constant:
0:7 2 (const uint)
0:5 Function Definition: main( ( temp void)
0:5 Function Parameters:
0:? Sequence
0:5 move second child to first child ( temp 3-component vector of uint)
0:? 'dispatchThreadID' ( temp 3-component vector of uint)
0:? 'dispatchThreadID' ( in 3-component vector of uint GlobalInvocationID)
0:5 Function Call: @main(vu3; ( temp void)
0:? 'dispatchThreadID' ( temp 3-component vector of uint)
0:? Linker Objects
0:? 'buffer' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of uint @data})
0:? 'dispatchThreadID' ( in 3-component vector of uint GlobalInvocationID)
// Module Version 10000
// Generated by (magic number): 80002
// Id's are bound by 42
Capability Shader
1: ExtInstImport "GLSL.std.450"
MemoryModel Logical GLSL450
EntryPoint GLCompute 4 "main" 37
ExecutionMode 4 LocalSize 64 1 1
Source HLSL 500
Name 4 "main"
Name 11 "@main(vu3;"
Name 10 "dispatchThreadID"
Name 23 "byteAddrTemp"
Name 28 "buffer"
MemberName 28(buffer) 0 "@data"
Name 30 "buffer"
Name 35 "dispatchThreadID"
Name 37 "dispatchThreadID"
Name 39 "param"
Decorate 27 ArrayStride 4
MemberDecorate 28(buffer) 0 Offset 0
Decorate 28(buffer) BufferBlock
Decorate 30(buffer) DescriptorSet 0
Decorate 37(dispatchThreadID) BuiltIn GlobalInvocationId
2: TypeVoid
3: TypeFunction 2
6: TypeInt 32 0
7: TypeVector 6(int) 3
8: TypePointer Function 7(ivec3)
9: TypeFunction 2 8(ptr)
13: 6(int) Constant 0
14: TypePointer Function 6(int)
17: TypeBool
21: TypeInt 32 1
22: TypePointer Function 21(int)
24: 21(int) Constant 0
25: 21(int) Constant 2
27: TypeRuntimeArray 6(int)
28(buffer): TypeStruct 27
29: TypePointer Uniform 28(buffer)
30(buffer): 29(ptr) Variable Uniform
32: 6(int) Constant 2
33: TypePointer Uniform 6(int)
36: TypePointer Input 7(ivec3)
37(dispatchThreadID): 36(ptr) Variable Input
4(main): 2 Function None 3
5: Label
35(dispatchThreadID): 8(ptr) Variable Function
39(param): 8(ptr) Variable Function
38: 7(ivec3) Load 37(dispatchThreadID)
Store 35(dispatchThreadID) 38
40: 7(ivec3) Load 35(dispatchThreadID)
Store 39(param) 40
41: 2 FunctionCall 11(@main(vu3;) 39(param)
Return
FunctionEnd
11(@main(vu3;): 2 Function None 9
10(dispatchThreadID): 8(ptr) FunctionParameter
12: Label
23(byteAddrTemp): 22(ptr) Variable Function
15: 14(ptr) AccessChain 10(dispatchThreadID) 13
16: 6(int) Load 15
18: 17(bool) IEqual 16 13
SelectionMerge 20 None
BranchConditional 18 19 20
19: Label
26: 21(int) ShiftRightArithmetic 24 25
Store 23(byteAddrTemp) 26
31: 21(int) Load 23(byteAddrTemp)
34: 33(ptr) AccessChain 30(buffer) 24 31
Store 34 32
Branch 20
20: Label
Return
FunctionEnd

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,32 @@
cbuffer ConstantBuffer : register( b0 )
{
matrix World;
matrix View;
matrix Projection;
};
struct VS_INPUT
{
float4 Pos : POSITION;
float3 Norm : NORMAL;
};
struct PS_INPUT
{
float4 Pos : SV_POSITION;
float3 Norm : TEXCOORD0;
};
PS_INPUT main( VS_INPUT input )
{
int ConstantBuffer = 42; // test ConstantBuffer as an identifier
PS_INPUT output = (PS_INPUT)0;
output.Pos = mul( input.Pos, World );
output.Pos = mul( output.Pos, View );
output.Pos = mul( output.Pos, Projection );
output.Norm = mul( input.Norm, World ); // Work when output.Norm = mul( input.Norm, (float3x3)World );
return output;
}

View File

@ -17,7 +17,10 @@ FxaaTex fillOpaque()
float4 main() : SV_TARGET0
{
FxaaTex tex1 = { g_tInputTexture_sampler, g_tInputTexture };
float4 res = lookUp(tex1);
FxaaTex tex2 = fillOpaque();
res += lookUp(tex2);
FxaaTex tex3 = tex1;
return lookUp(tex3);
res += lookUp(tex3);
return res;
}

View File

@ -0,0 +1,38 @@
// Test v*v, v*m, m*v, and m*m argument clamping.
cbuffer Matrix
{
float4x4 m44;
float4x3 m43;
float3x4 m34;
float3x3 m33;
float2x4 m24;
float4x2 m42;
float4 v4;
float3 v3;
float2 v2;
}
float4 main() : SV_Target0
{
// v*v:
float r00 = mul(v2, v3); // float = float2*float3; // clamp to float2 dot product
float r01 = mul(v4, v2); // float = float4*float2; // clamp to float2 dot product
// v*m
float4 r10 = mul(v3, m44); // float4 = float3 * float4x4; // clamp mat to float3x4;
float4 r11 = mul(v4, m34); // truncate vector to vec3
// m*v
float4 r20 = mul(m44, v3); // float4 = float4x4 * float3; // clamp mat to float4x3;
float4 r21 = mul(m43, v4); // truncate vector to vec3
// m*m
float2x3 r30 = mul(m24, m33); // float2x3 = float2x4 * float3x3;
float3x4 r31 = mul(m33, m24); // float3x4 = float3x3 * float2x4;
float3x2 r32 = mul(m33, m42); // float3x2 = float3x3 * float4x2;
float4x3 r33 = mul(m42, m33); // float4x3 = float4x2 * float3x3;
return r10 + r11 + r20 + r21 + r00 + r01 + r30[0].x + r31[0] + r32[0].x + transpose(r33)[0];
}

View File

@ -0,0 +1,8 @@
RWByteAddressBuffer buffer;
[numthreads(64, 1, 1)]
void main( uint3 dispatchThreadID : SV_DispatchThreadID)
{
if(dispatchThreadID.x == 0)
buffer.Store(0, 2);
}

View File

@ -1152,6 +1152,7 @@ public:
sampler.clear();
qualifier.clear();
qualifier.storage = q;
assert(!(isMatrix() && vectorSize != 0)); // prevent vectorSize != 0 on matrices
}
// for explicit precision qualifier
TType(TBasicType t, TStorageQualifier q, TPrecisionQualifier p, int vs = 1, int mc = 0, int mr = 0,
@ -1164,6 +1165,7 @@ public:
qualifier.storage = q;
qualifier.precision = p;
assert(p >= EpqNone && p <= EpqHigh);
assert(!(isMatrix() && vectorSize != 0)); // prevent vectorSize != 0 on matrices
}
// for turning a TPublicType into a TType, using a shallow copy
explicit TType(const TPublicType& p) :

View File

@ -108,6 +108,7 @@ INSTANTIATE_TEST_CASE_P(
{"hlsl.calculatelod.dx10.frag", "main"},
{"hlsl.calculatelodunclamped.dx10.frag", "main"},
{"hlsl.cast.frag", "PixelShaderFunction"},
{"hlsl.cbuffer-identifier.vert", "main"},
{"hlsl.charLit.vert", "main"},
{"hlsl.clip.frag", "main"},
{"hlsl.clipdistance-1.frag", "main"},
@ -238,6 +239,7 @@ INSTANTIATE_TEST_CASE_P(
{"hlsl.matrixSwizzle.vert", "ShaderFunction"},
{"hlsl.memberFunCall.frag", "main"},
{"hlsl.mintypes.frag", "main"},
{"hlsl.mul-truncate.frag", "main"},
{"hlsl.multiEntry.vert", "RealEntrypoint"},
{"hlsl.multiReturn.frag", "main"},
{"hlsl.matrixindex.frag", "main"},
@ -300,6 +302,7 @@ INSTANTIATE_TEST_CASE_P(
{"hlsl.shapeConvRet.frag", "main"},
{"hlsl.snorm.uav.comp", "main"},
{"hlsl.staticMemberFunction.frag", "main"},
{"hlsl.store.rwbyteaddressbuffer.type.comp", "main"},
{"hlsl.stringtoken.frag", "main"},
{"hlsl.string.frag", "main"},
{"hlsl.struct.split-1.vert", "main"},

View File

@ -2029,10 +2029,18 @@ bool HlslGrammar::acceptStruct(TType& type, TIntermNode*& nodeList)
// Now known to be one of CBUFFER, TBUFFER, CLASS, or STRUCT
// IDENTIFIER
// IDENTIFIER. It might also be a keyword which can double as an identifier.
// For example: 'cbuffer ConstantBuffer' or 'struct ConstantBuffer' is legal.
// 'cbuffer int' is also legal, and 'struct int' appears rejected only because
// it attempts to redefine the 'int' type.
const char* idString = getTypeString(peek());
TString structName = "";
if (peekTokenClass(EHTokIdentifier)) {
structName = *token.string;
if (peekTokenClass(EHTokIdentifier) || idString != nullptr) {
if (idString != nullptr)
structName = *idString;
else
structName = *token.string;
advanceToken();
}
@ -2618,6 +2626,8 @@ bool HlslGrammar::acceptFunctionBody(TFunctionDeclarator& declarator, TIntermNod
//
bool HlslGrammar::acceptParenExpression(TIntermTyped*& expression)
{
expression = nullptr;
// LEFT_PAREN
if (! acceptTokenClass(EHTokLeftParen))
expected("(");
@ -3666,7 +3676,6 @@ bool HlslGrammar::acceptIterationStatement(TIntermNode*& statement, const TAttri
}
// LEFT_PAREN condition RIGHT_PAREN
TIntermTyped* condition;
if (! acceptParenExpression(condition))
return false;
condition = parseContext.convertConditionalExpression(loc, condition);
@ -4056,6 +4065,7 @@ const char* HlslGrammar::getTypeString(EHlslTokenClass tokenClass) const
case EHTokMin10float: return "min10float";
case EHTokMin16int: return "min16int";
case EHTokMin12int: return "min12int";
case EHTokConstantBuffer: return "ConstantBuffer";
default:
return nullptr;
}

View File

@ -3238,7 +3238,7 @@ void HlslParseContext::decomposeStructBufferMethods(const TSourceLoc& loc, TInte
// Index into the array to find the item being loaded.
// Byte address buffers index in bytes (only multiples of 4 permitted... not so much a byte address
// buffer then, but that's what it calls itself.
// buffer then, but that's what it calls itself).
int size = 0;
@ -3274,6 +3274,9 @@ void HlslParseContext::decomposeStructBufferMethods(const TSourceLoc& loc, TInte
: EOpIndexIndirect;
TIntermTyped* lValue = intermediate.addIndex(idxOp, argArray, offsetIdx, loc);
const TType derefType(argArray->getType(), 0);
lValue->setType(derefType);
TIntermTyped* rValue = (size == 1) ? argValue :
intermediate.addIndex(EOpIndexDirect, argValue, idxConst, loc);
@ -5008,6 +5011,12 @@ TIntermTyped* HlslParseContext::handleFunctionCall(const TSourceLoc& loc, TFunct
bool builtIn = false;
int thisDepth = 0;
// For mat mul, the situation is unusual: we have to compare vector sizes to mat row or col sizes,
// and clamp the opposite arg. Since that's complex, we farm it off to a separate method.
// It doesn't naturally fall out of processing an argument at a time in isolation.
if (function->getName() == "mul")
addGenMulArgumentConversion(loc, *function, arguments);
TIntermAggregate* aggregate = arguments ? arguments->getAsAggregate() : nullptr;
// TODO: this needs improvement: there's no way at present to look up a signature in
@ -5169,6 +5178,83 @@ void HlslParseContext::pushFrontArguments(TIntermTyped* front, TIntermTyped*& ar
arguments = intermediate.growAggregate(front, arguments);
}
//
// HLSL allows mismatched dimensions on vec*mat, mat*vec, vec*vec, and mat*mat. This is a
// situation not well suited to resolution in intrinsic selection, but we can do so here, since we
// can look at both arguments insert explicit shape changes if required.
//
void HlslParseContext::addGenMulArgumentConversion(const TSourceLoc& loc, TFunction& call, TIntermTyped*& args)
{
TIntermAggregate* argAggregate = args ? args->getAsAggregate() : nullptr;
if (argAggregate == nullptr || argAggregate->getSequence().size() != 2) {
// It really ought to have two arguments.
error(loc, "expected: mul arguments", "", "");
return;
}
TIntermTyped* arg0 = argAggregate->getSequence()[0]->getAsTyped();
TIntermTyped* arg1 = argAggregate->getSequence()[1]->getAsTyped();
if (arg0->isVector() && arg1->isVector()) {
// For:
// vec * vec: it's handled during intrinsic selection, so while we could do it here,
// we can also ignore it, which is easier.
} else if (arg0->isVector() && arg1->isMatrix()) {
// vec * mat: we clamp the vec if the mat col is smaller, else clamp the mat col.
if (arg0->getVectorSize() < arg1->getMatrixCols()) {
// vec is smaller, so truncate larger mat dimension
const TType truncType(arg1->getBasicType(), arg1->getQualifier().storage, arg1->getQualifier().precision,
0, arg0->getVectorSize(), arg1->getMatrixRows());
arg1 = addConstructor(loc, arg1, truncType);
} else if (arg0->getVectorSize() > arg1->getMatrixCols()) {
// vec is larger, so truncate vec to mat size
const TType truncType(arg0->getBasicType(), arg0->getQualifier().storage, arg0->getQualifier().precision,
arg1->getMatrixCols());
arg0 = addConstructor(loc, arg0, truncType);
}
} else if (arg0->isMatrix() && arg1->isVector()) {
// mat * vec: we clamp the vec if the mat col is smaller, else clamp the mat col.
if (arg1->getVectorSize() < arg0->getMatrixRows()) {
// vec is smaller, so truncate larger mat dimension
const TType truncType(arg0->getBasicType(), arg0->getQualifier().storage, arg0->getQualifier().precision,
0, arg0->getMatrixCols(), arg1->getVectorSize());
arg0 = addConstructor(loc, arg0, truncType);
} else if (arg1->getVectorSize() > arg0->getMatrixRows()) {
// vec is larger, so truncate vec to mat size
const TType truncType(arg1->getBasicType(), arg1->getQualifier().storage, arg1->getQualifier().precision,
arg0->getMatrixRows());
arg1 = addConstructor(loc, arg1, truncType);
}
} else if (arg0->isMatrix() && arg1->isMatrix()) {
// mat * mat: we clamp the smaller inner dimension to match the other matrix size.
// Remember, HLSL Mrc = GLSL/SPIRV Mcr.
if (arg0->getMatrixRows() > arg1->getMatrixCols()) {
const TType truncType(arg0->getBasicType(), arg0->getQualifier().storage, arg0->getQualifier().precision,
0, arg0->getMatrixCols(), arg1->getMatrixCols());
arg0 = addConstructor(loc, arg0, truncType);
} else if (arg0->getMatrixRows() < arg1->getMatrixCols()) {
const TType truncType(arg1->getBasicType(), arg1->getQualifier().storage, arg1->getQualifier().precision,
0, arg0->getMatrixRows(), arg1->getMatrixRows());
arg1 = addConstructor(loc, arg1, truncType);
}
} else {
// It's something with scalars: we'll just leave it alone. Function selection will handle it
// downstream.
}
// Warn if we altered one of the arguments
if (arg0 != argAggregate->getSequence()[0] || arg1 != argAggregate->getSequence()[1])
warn(loc, "mul() matrix size mismatch", "", "");
// Put arguments back. (They might be unchanged, in which case this is harmless).
argAggregate->getSequence()[0] = arg0;
argAggregate->getSequence()[1] = arg1;
call[0].type = &arg0->getWritableType();
call[1].type = &arg1->getWritableType();
}
//
// Add any needed implicit conversions for function-call arguments to input parameters.
//
@ -7015,6 +7101,7 @@ void HlslParseContext::mergeObjectLayoutQualifiers(TQualifier& dst, const TQuali
}
}
//
// Look up a function name in the symbol table, and make sure it is a function.
//

View File

@ -141,6 +141,7 @@ public:
void checkNoShaderLayouts(const TSourceLoc&, const TShaderQualifiers&);
const TFunction* findFunction(const TSourceLoc& loc, TFunction& call, bool& builtIn, int& thisDepth, TIntermTyped*& args);
void addGenMulArgumentConversion(const TSourceLoc& loc, TFunction& call, TIntermTyped*& args);
void declareTypedef(const TSourceLoc&, const TString& identifier, const TType&);
void declareStruct(const TSourceLoc&, TString& structName, TType&);
TSymbol* lookupUserType(const TString&, TType&);

View File

@ -5,7 +5,7 @@
"site" : "github",
"subrepo" : "KhronosGroup/SPIRV-Tools",
"subdir" : "External/spirv-tools",
"commit" : "ac04b2faeabc15811e8c542a5d7a36dbdba243b8"
"commit" : "188cd3780d76256d6bfcbdb216b6368e9b070628"
},
{
"name" : "spirv-tools/external/spirv-headers",