From 03bda787684de8294f23dcbe96a7c5c32df1d0c1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Branimir=20Karad=C5=BEi=C4=87?= Date: Sun, 3 Dec 2017 18:21:39 -0800 Subject: [PATCH] Updated glslang. --- .../hlsl.flattenOpaqueInit.vert.out | 31 +- .../hlsl.cbuffer-identifier.vert.out | 417 ++++ .../hlsl.flattenOpaqueInit.vert.out | 213 +- .../baseResults/hlsl.mul-truncate.frag.out | 684 +++++++ ...sl.store.rwbyteaddressbuffer.type.comp.out | 173 ++ .../hlsl.structbuffer.rwbyte.frag.out | 1804 +++++++++-------- .../glslang/Test/hlsl.cbuffer-identifier.vert | 32 + .../glslang/Test/hlsl.flattenOpaqueInit.vert | 5 +- 3rdparty/glslang/Test/hlsl.mul-truncate.frag | 38 + .../hlsl.store.rwbyteaddressbuffer.type.comp | 8 + 3rdparty/glslang/glslang/Include/Types.h | 2 + 3rdparty/glslang/gtests/Hlsl.FromFile.cpp | 3 + 3rdparty/glslang/hlsl/hlslGrammar.cpp | 18 +- 3rdparty/glslang/hlsl/hlslParseHelper.cpp | 89 +- 3rdparty/glslang/hlsl/hlslParseHelper.h | 1 + 3rdparty/glslang/known_good.json | 2 +- 16 files changed, 2534 insertions(+), 986 deletions(-) create mode 100644 3rdparty/glslang/Test/baseResults/hlsl.cbuffer-identifier.vert.out create mode 100644 3rdparty/glslang/Test/baseResults/hlsl.mul-truncate.frag.out create mode 100644 3rdparty/glslang/Test/baseResults/hlsl.store.rwbyteaddressbuffer.type.comp.out create mode 100644 3rdparty/glslang/Test/hlsl.cbuffer-identifier.vert create mode 100644 3rdparty/glslang/Test/hlsl.mul-truncate.frag create mode 100644 3rdparty/glslang/Test/hlsl.store.rwbyteaddressbuffer.type.comp diff --git a/3rdparty/glslang/Test/baseLegalResults/hlsl.flattenOpaqueInit.vert.out b/3rdparty/glslang/Test/baseLegalResults/hlsl.flattenOpaqueInit.vert.out index 4aef87416..1d33d056e 100644 --- a/3rdparty/glslang/Test/baseLegalResults/hlsl.flattenOpaqueInit.vert.out +++ b/3rdparty/glslang/Test/baseLegalResults/hlsl.flattenOpaqueInit.vert.out @@ -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 diff --git a/3rdparty/glslang/Test/baseResults/hlsl.cbuffer-identifier.vert.out b/3rdparty/glslang/Test/baseResults/hlsl.cbuffer-identifier.vert.out new file mode 100644 index 000000000..4ac1813b7 --- /dev/null +++ b/3rdparty/glslang/Test/baseResults/hlsl.cbuffer-identifier.vert.out @@ -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 diff --git a/3rdparty/glslang/Test/baseResults/hlsl.flattenOpaqueInit.vert.out b/3rdparty/glslang/Test/baseResults/hlsl.flattenOpaqueInit.vert.out index b82cfffee..b5fac95d1 100755 --- a/3rdparty/glslang/Test/baseResults/hlsl.flattenOpaqueInit.vert.out +++ b/3rdparty/glslang/Test/baseResults/hlsl.flattenOpaqueInit.vert.out @@ -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 diff --git a/3rdparty/glslang/Test/baseResults/hlsl.mul-truncate.frag.out b/3rdparty/glslang/Test/baseResults/hlsl.mul-truncate.frag.out new file mode 100644 index 000000000..d25f956be --- /dev/null +++ b/3rdparty/glslang/Test/baseResults/hlsl.mul-truncate.frag.out @@ -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 diff --git a/3rdparty/glslang/Test/baseResults/hlsl.store.rwbyteaddressbuffer.type.comp.out b/3rdparty/glslang/Test/baseResults/hlsl.store.rwbyteaddressbuffer.type.comp.out new file mode 100644 index 000000000..b0115d721 --- /dev/null +++ b/3rdparty/glslang/Test/baseResults/hlsl.store.rwbyteaddressbuffer.type.comp.out @@ -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 diff --git a/3rdparty/glslang/Test/baseResults/hlsl.structbuffer.rwbyte.frag.out b/3rdparty/glslang/Test/baseResults/hlsl.structbuffer.rwbyte.frag.out index 77c27443a..af6698746 100644 --- a/3rdparty/glslang/Test/baseResults/hlsl.structbuffer.rwbyte.frag.out +++ b/3rdparty/glslang/Test/baseResults/hlsl.structbuffer.rwbyte.frag.out @@ -21,23 +21,22 @@ gl_FragCoord origin is upper left 0:9 'pos' ( in uint) 0:9 Constant: 0:9 2 (const int) -0:9 move second child to first child ( temp float) -0:9 indirect index ( temp float) +0:9 move second child to first child ( temp uint) +0:9 indirect index (layout( row_major std430) buffer uint) 0:9 @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of uint) 0:9 'sbuf' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of uint @data}) 0:9 Constant: 0:9 0 (const uint) 0:9 'byteAddrTemp' ( temp int) -0:9 Convert uint to float ( temp float) -0:9 indirect index (layout( row_major std430) buffer uint) -0:9 @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of uint) -0:9 'sbuf' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of uint @data}) -0:9 Constant: -0:9 0 (const uint) -0:9 right-shift ( temp int) -0:9 'pos' ( in uint) -0:9 Constant: -0:9 2 (const int) +0:9 indirect index (layout( row_major std430) buffer uint) +0:9 @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of uint) +0:9 'sbuf' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of uint @data}) +0:9 Constant: +0:9 0 (const uint) +0:9 right-shift ( temp int) +0:9 'pos' ( in uint) +0:9 Constant: +0:9 2 (const int) 0:? Sequence 0:10 move second child to first child ( temp int) 0:10 'byteAddrTemp' ( temp int) @@ -45,41 +44,42 @@ gl_FragCoord origin is upper left 0:10 'pos' ( in uint) 0:10 Constant: 0:10 2 (const int) -0:10 move second child to first child ( temp float) -0:10 indirect index ( temp float) +0:10 move second child to first child ( temp uint) +0:10 indirect index (layout( row_major std430) buffer uint) 0:10 @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of uint) 0:10 'sbuf' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of uint @data}) 0:10 Constant: 0:10 0 (const uint) 0:10 'byteAddrTemp' ( temp int) -0:10 direct index ( temp float) -0:? Sequence -0:10 move second child to first child ( temp int) -0:10 'byteAddrTemp' ( temp int) -0:10 right-shift ( temp int) -0:10 'pos' ( in uint) -0:10 Constant: -0:10 2 (const int) -0:? Construct vec2 ( temp 2-component vector of uint) -0:10 indirect index ( temp float) -0:10 @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of uint) -0:10 'sbuf' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of uint @data}) -0:10 Constant: -0:10 0 (const uint) +0:10 Convert float to uint ( temp uint) +0:10 direct index ( temp float) +0:? Sequence +0:10 move second child to first child ( temp int) 0:10 'byteAddrTemp' ( temp int) -0:10 indirect index ( temp float) -0:10 @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of uint) -0:10 'sbuf' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of uint @data}) +0:10 right-shift ( temp int) +0:10 'pos' ( in uint) 0:10 Constant: -0:10 0 (const uint) -0:10 add ( temp int) +0:10 2 (const int) +0:? Construct vec2 ( temp 2-component vector of uint) +0:10 indirect index ( temp float) +0:10 @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of uint) +0:10 'sbuf' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of uint @data}) +0:10 Constant: +0:10 0 (const uint) 0:10 'byteAddrTemp' ( temp int) -0:10 Constant: -0:10 1 (const int) -0:10 Constant: -0:10 0 (const int) -0:10 move second child to first child ( temp float) -0:10 indirect index ( temp float) +0:10 indirect index ( temp float) +0:10 @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of uint) +0:10 'sbuf' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of uint @data}) +0:10 Constant: +0:10 0 (const uint) +0:10 add ( temp int) +0:10 'byteAddrTemp' ( temp int) +0:10 Constant: +0:10 1 (const int) +0:10 Constant: +0:10 0 (const int) +0:10 move second child to first child ( temp uint) +0:10 indirect index (layout( row_major std430) buffer uint) 0:10 @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of uint) 0:10 'sbuf' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of uint @data}) 0:10 Constant: @@ -88,32 +88,33 @@ gl_FragCoord origin is upper left 0:10 'byteAddrTemp' ( temp int) 0:10 Constant: 0:10 1 (const int) -0:10 direct index ( temp float) -0:? Sequence -0:10 move second child to first child ( temp int) -0:10 'byteAddrTemp' ( temp int) -0:10 right-shift ( temp int) -0:10 'pos' ( in uint) -0:10 Constant: -0:10 2 (const int) -0:? Construct vec2 ( temp 2-component vector of uint) -0:10 indirect index ( temp float) -0:10 @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of uint) -0:10 'sbuf' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of uint @data}) -0:10 Constant: -0:10 0 (const uint) +0:10 Convert float to uint ( temp uint) +0:10 direct index ( temp float) +0:? Sequence +0:10 move second child to first child ( temp int) 0:10 'byteAddrTemp' ( temp int) -0:10 indirect index ( temp float) -0:10 @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of uint) -0:10 'sbuf' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of uint @data}) +0:10 right-shift ( temp int) +0:10 'pos' ( in uint) 0:10 Constant: -0:10 0 (const uint) -0:10 add ( temp int) +0:10 2 (const int) +0:? Construct vec2 ( temp 2-component vector of uint) +0:10 indirect index ( temp float) +0:10 @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of uint) +0:10 'sbuf' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of uint @data}) +0:10 Constant: +0:10 0 (const uint) 0:10 'byteAddrTemp' ( temp int) -0:10 Constant: -0:10 1 (const int) -0:10 Constant: -0:10 1 (const int) +0:10 indirect index ( temp float) +0:10 @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of uint) +0:10 'sbuf' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of uint @data}) +0:10 Constant: +0:10 0 (const uint) +0:10 add ( temp int) +0:10 'byteAddrTemp' ( temp int) +0:10 Constant: +0:10 1 (const int) +0:10 Constant: +0:10 1 (const int) 0:? Sequence 0:11 move second child to first child ( temp int) 0:11 'byteAddrTemp' ( temp int) @@ -121,50 +122,51 @@ gl_FragCoord origin is upper left 0:11 'pos' ( in uint) 0:11 Constant: 0:11 2 (const int) -0:11 move second child to first child ( temp float) -0:11 indirect index ( temp float) +0:11 move second child to first child ( temp uint) +0:11 indirect index (layout( row_major std430) buffer uint) 0:11 @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of uint) 0:11 'sbuf' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of uint @data}) 0:11 Constant: 0:11 0 (const uint) 0:11 'byteAddrTemp' ( temp int) -0:11 direct index ( temp float) -0:? Sequence -0:11 move second child to first child ( temp int) -0:11 'byteAddrTemp' ( temp int) -0:11 right-shift ( temp int) -0:11 'pos' ( in uint) -0:11 Constant: -0:11 2 (const int) -0:? Construct vec3 ( temp 3-component vector of uint) -0:11 indirect index ( temp float) -0:11 @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of uint) -0:11 'sbuf' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of uint @data}) -0:11 Constant: -0:11 0 (const uint) +0:11 Convert float to uint ( temp uint) +0:11 direct index ( temp float) +0:? Sequence +0:11 move second child to first child ( temp int) 0:11 'byteAddrTemp' ( temp int) -0:11 indirect index ( temp float) -0:11 @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of uint) -0:11 'sbuf' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of uint @data}) -0:11 Constant: -0:11 0 (const uint) -0:11 add ( temp int) -0:11 'byteAddrTemp' ( temp int) -0:11 Constant: -0:11 1 (const int) -0:11 indirect index ( temp float) -0:11 @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of uint) -0:11 'sbuf' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of uint @data}) -0:11 Constant: -0:11 0 (const uint) -0:11 add ( temp int) -0:11 'byteAddrTemp' ( temp int) +0:11 right-shift ( temp int) +0:11 'pos' ( in uint) 0:11 Constant: 0:11 2 (const int) -0:11 Constant: -0:11 0 (const int) -0:11 move second child to first child ( temp float) -0:11 indirect index ( temp float) +0:? Construct vec3 ( temp 3-component vector of uint) +0:11 indirect index ( temp float) +0:11 @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of uint) +0:11 'sbuf' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of uint @data}) +0:11 Constant: +0:11 0 (const uint) +0:11 'byteAddrTemp' ( temp int) +0:11 indirect index ( temp float) +0:11 @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of uint) +0:11 'sbuf' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of uint @data}) +0:11 Constant: +0:11 0 (const uint) +0:11 add ( temp int) +0:11 'byteAddrTemp' ( temp int) +0:11 Constant: +0:11 1 (const int) +0:11 indirect index ( temp float) +0:11 @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of uint) +0:11 'sbuf' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of uint @data}) +0:11 Constant: +0:11 0 (const uint) +0:11 add ( temp int) +0:11 'byteAddrTemp' ( temp int) +0:11 Constant: +0:11 2 (const int) +0:11 Constant: +0:11 0 (const int) +0:11 move second child to first child ( temp uint) +0:11 indirect index (layout( row_major std430) buffer uint) 0:11 @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of uint) 0:11 'sbuf' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of uint @data}) 0:11 Constant: @@ -173,43 +175,44 @@ gl_FragCoord origin is upper left 0:11 'byteAddrTemp' ( temp int) 0:11 Constant: 0:11 1 (const int) -0:11 direct index ( temp float) -0:? Sequence -0:11 move second child to first child ( temp int) -0:11 'byteAddrTemp' ( temp int) -0:11 right-shift ( temp int) -0:11 'pos' ( in uint) -0:11 Constant: -0:11 2 (const int) -0:? Construct vec3 ( temp 3-component vector of uint) -0:11 indirect index ( temp float) -0:11 @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of uint) -0:11 'sbuf' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of uint @data}) -0:11 Constant: -0:11 0 (const uint) +0:11 Convert float to uint ( temp uint) +0:11 direct index ( temp float) +0:? Sequence +0:11 move second child to first child ( temp int) 0:11 'byteAddrTemp' ( temp int) -0:11 indirect index ( temp float) -0:11 @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of uint) -0:11 'sbuf' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of uint @data}) -0:11 Constant: -0:11 0 (const uint) -0:11 add ( temp int) -0:11 'byteAddrTemp' ( temp int) -0:11 Constant: -0:11 1 (const int) -0:11 indirect index ( temp float) -0:11 @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of uint) -0:11 'sbuf' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of uint @data}) -0:11 Constant: -0:11 0 (const uint) -0:11 add ( temp int) -0:11 'byteAddrTemp' ( temp int) +0:11 right-shift ( temp int) +0:11 'pos' ( in uint) 0:11 Constant: 0:11 2 (const int) -0:11 Constant: -0:11 1 (const int) -0:11 move second child to first child ( temp float) -0:11 indirect index ( temp float) +0:? Construct vec3 ( temp 3-component vector of uint) +0:11 indirect index ( temp float) +0:11 @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of uint) +0:11 'sbuf' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of uint @data}) +0:11 Constant: +0:11 0 (const uint) +0:11 'byteAddrTemp' ( temp int) +0:11 indirect index ( temp float) +0:11 @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of uint) +0:11 'sbuf' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of uint @data}) +0:11 Constant: +0:11 0 (const uint) +0:11 add ( temp int) +0:11 'byteAddrTemp' ( temp int) +0:11 Constant: +0:11 1 (const int) +0:11 indirect index ( temp float) +0:11 @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of uint) +0:11 'sbuf' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of uint @data}) +0:11 Constant: +0:11 0 (const uint) +0:11 add ( temp int) +0:11 'byteAddrTemp' ( temp int) +0:11 Constant: +0:11 2 (const int) +0:11 Constant: +0:11 1 (const int) +0:11 move second child to first child ( temp uint) +0:11 indirect index (layout( row_major std430) buffer uint) 0:11 @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of uint) 0:11 'sbuf' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of uint @data}) 0:11 Constant: @@ -218,41 +221,42 @@ gl_FragCoord origin is upper left 0:11 'byteAddrTemp' ( temp int) 0:11 Constant: 0:11 2 (const int) -0:11 direct index ( temp float) -0:? Sequence -0:11 move second child to first child ( temp int) -0:11 'byteAddrTemp' ( temp int) -0:11 right-shift ( temp int) -0:11 'pos' ( in uint) -0:11 Constant: -0:11 2 (const int) -0:? Construct vec3 ( temp 3-component vector of uint) -0:11 indirect index ( temp float) -0:11 @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of uint) -0:11 'sbuf' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of uint @data}) -0:11 Constant: -0:11 0 (const uint) +0:11 Convert float to uint ( temp uint) +0:11 direct index ( temp float) +0:? Sequence +0:11 move second child to first child ( temp int) 0:11 'byteAddrTemp' ( temp int) -0:11 indirect index ( temp float) -0:11 @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of uint) -0:11 'sbuf' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of uint @data}) -0:11 Constant: -0:11 0 (const uint) -0:11 add ( temp int) -0:11 'byteAddrTemp' ( temp int) -0:11 Constant: -0:11 1 (const int) -0:11 indirect index ( temp float) -0:11 @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of uint) -0:11 'sbuf' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of uint @data}) -0:11 Constant: -0:11 0 (const uint) -0:11 add ( temp int) -0:11 'byteAddrTemp' ( temp int) +0:11 right-shift ( temp int) +0:11 'pos' ( in uint) 0:11 Constant: 0:11 2 (const int) -0:11 Constant: -0:11 2 (const int) +0:? Construct vec3 ( temp 3-component vector of uint) +0:11 indirect index ( temp float) +0:11 @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of uint) +0:11 'sbuf' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of uint @data}) +0:11 Constant: +0:11 0 (const uint) +0:11 'byteAddrTemp' ( temp int) +0:11 indirect index ( temp float) +0:11 @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of uint) +0:11 'sbuf' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of uint @data}) +0:11 Constant: +0:11 0 (const uint) +0:11 add ( temp int) +0:11 'byteAddrTemp' ( temp int) +0:11 Constant: +0:11 1 (const int) +0:11 indirect index ( temp float) +0:11 @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of uint) +0:11 'sbuf' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of uint @data}) +0:11 Constant: +0:11 0 (const uint) +0:11 add ( temp int) +0:11 'byteAddrTemp' ( temp int) +0:11 Constant: +0:11 2 (const int) +0:11 Constant: +0:11 2 (const int) 0:? Sequence 0:12 move second child to first child ( temp int) 0:12 'byteAddrTemp' ( temp int) @@ -260,59 +264,60 @@ gl_FragCoord origin is upper left 0:12 'pos' ( in uint) 0:12 Constant: 0:12 2 (const int) -0:12 move second child to first child ( temp float) -0:12 indirect index ( temp float) +0:12 move second child to first child ( temp uint) +0:12 indirect index (layout( row_major std430) buffer uint) 0:12 @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of uint) 0:12 'sbuf' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of uint @data}) 0:12 Constant: 0:12 0 (const uint) 0:12 'byteAddrTemp' ( temp int) -0:12 direct index ( temp float) -0:? Sequence -0:12 move second child to first child ( temp int) -0:12 'byteAddrTemp' ( temp int) -0:12 right-shift ( temp int) -0:12 'pos' ( in uint) -0:12 Constant: -0:12 2 (const int) -0:? Construct vec4 ( temp 4-component vector of uint) -0:12 indirect index ( temp float) -0:12 @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of uint) -0:12 'sbuf' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of uint @data}) -0:12 Constant: -0:12 0 (const uint) +0:12 Convert float to uint ( temp uint) +0:12 direct index ( temp float) +0:? Sequence +0:12 move second child to first child ( temp int) 0:12 'byteAddrTemp' ( temp int) -0:12 indirect index ( temp float) -0:12 @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of uint) -0:12 'sbuf' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of uint @data}) -0:12 Constant: -0:12 0 (const uint) -0:12 add ( temp int) -0:12 'byteAddrTemp' ( temp int) -0:12 Constant: -0:12 1 (const int) -0:12 indirect index ( temp float) -0:12 @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of uint) -0:12 'sbuf' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of uint @data}) -0:12 Constant: -0:12 0 (const uint) -0:12 add ( temp int) -0:12 'byteAddrTemp' ( temp int) +0:12 right-shift ( temp int) +0:12 'pos' ( in uint) 0:12 Constant: 0:12 2 (const int) -0:12 indirect index ( temp float) -0:12 @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of uint) -0:12 'sbuf' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of uint @data}) -0:12 Constant: -0:12 0 (const uint) -0:12 add ( temp int) +0:? Construct vec4 ( temp 4-component vector of uint) +0:12 indirect index ( temp float) +0:12 @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of uint) +0:12 'sbuf' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of uint @data}) +0:12 Constant: +0:12 0 (const uint) 0:12 'byteAddrTemp' ( temp int) -0:12 Constant: -0:12 3 (const int) -0:12 Constant: -0:12 0 (const int) -0:12 move second child to first child ( temp float) -0:12 indirect index ( temp float) +0:12 indirect index ( temp float) +0:12 @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of uint) +0:12 'sbuf' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of uint @data}) +0:12 Constant: +0:12 0 (const uint) +0:12 add ( temp int) +0:12 'byteAddrTemp' ( temp int) +0:12 Constant: +0:12 1 (const int) +0:12 indirect index ( temp float) +0:12 @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of uint) +0:12 'sbuf' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of uint @data}) +0:12 Constant: +0:12 0 (const uint) +0:12 add ( temp int) +0:12 'byteAddrTemp' ( temp int) +0:12 Constant: +0:12 2 (const int) +0:12 indirect index ( temp float) +0:12 @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of uint) +0:12 'sbuf' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of uint @data}) +0:12 Constant: +0:12 0 (const uint) +0:12 add ( temp int) +0:12 'byteAddrTemp' ( temp int) +0:12 Constant: +0:12 3 (const int) +0:12 Constant: +0:12 0 (const int) +0:12 move second child to first child ( temp uint) +0:12 indirect index (layout( row_major std430) buffer uint) 0:12 @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of uint) 0:12 'sbuf' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of uint @data}) 0:12 Constant: @@ -321,52 +326,53 @@ gl_FragCoord origin is upper left 0:12 'byteAddrTemp' ( temp int) 0:12 Constant: 0:12 1 (const int) -0:12 direct index ( temp float) -0:? Sequence -0:12 move second child to first child ( temp int) -0:12 'byteAddrTemp' ( temp int) -0:12 right-shift ( temp int) -0:12 'pos' ( in uint) -0:12 Constant: -0:12 2 (const int) -0:? Construct vec4 ( temp 4-component vector of uint) -0:12 indirect index ( temp float) -0:12 @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of uint) -0:12 'sbuf' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of uint @data}) -0:12 Constant: -0:12 0 (const uint) +0:12 Convert float to uint ( temp uint) +0:12 direct index ( temp float) +0:? Sequence +0:12 move second child to first child ( temp int) 0:12 'byteAddrTemp' ( temp int) -0:12 indirect index ( temp float) -0:12 @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of uint) -0:12 'sbuf' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of uint @data}) -0:12 Constant: -0:12 0 (const uint) -0:12 add ( temp int) -0:12 'byteAddrTemp' ( temp int) -0:12 Constant: -0:12 1 (const int) -0:12 indirect index ( temp float) -0:12 @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of uint) -0:12 'sbuf' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of uint @data}) -0:12 Constant: -0:12 0 (const uint) -0:12 add ( temp int) -0:12 'byteAddrTemp' ( temp int) +0:12 right-shift ( temp int) +0:12 'pos' ( in uint) 0:12 Constant: 0:12 2 (const int) -0:12 indirect index ( temp float) -0:12 @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of uint) -0:12 'sbuf' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of uint @data}) -0:12 Constant: -0:12 0 (const uint) -0:12 add ( temp int) +0:? Construct vec4 ( temp 4-component vector of uint) +0:12 indirect index ( temp float) +0:12 @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of uint) +0:12 'sbuf' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of uint @data}) +0:12 Constant: +0:12 0 (const uint) 0:12 'byteAddrTemp' ( temp int) -0:12 Constant: -0:12 3 (const int) -0:12 Constant: -0:12 1 (const int) -0:12 move second child to first child ( temp float) -0:12 indirect index ( temp float) +0:12 indirect index ( temp float) +0:12 @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of uint) +0:12 'sbuf' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of uint @data}) +0:12 Constant: +0:12 0 (const uint) +0:12 add ( temp int) +0:12 'byteAddrTemp' ( temp int) +0:12 Constant: +0:12 1 (const int) +0:12 indirect index ( temp float) +0:12 @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of uint) +0:12 'sbuf' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of uint @data}) +0:12 Constant: +0:12 0 (const uint) +0:12 add ( temp int) +0:12 'byteAddrTemp' ( temp int) +0:12 Constant: +0:12 2 (const int) +0:12 indirect index ( temp float) +0:12 @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of uint) +0:12 'sbuf' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of uint @data}) +0:12 Constant: +0:12 0 (const uint) +0:12 add ( temp int) +0:12 'byteAddrTemp' ( temp int) +0:12 Constant: +0:12 3 (const int) +0:12 Constant: +0:12 1 (const int) +0:12 move second child to first child ( temp uint) +0:12 indirect index (layout( row_major std430) buffer uint) 0:12 @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of uint) 0:12 'sbuf' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of uint @data}) 0:12 Constant: @@ -375,52 +381,53 @@ gl_FragCoord origin is upper left 0:12 'byteAddrTemp' ( temp int) 0:12 Constant: 0:12 2 (const int) -0:12 direct index ( temp float) -0:? Sequence -0:12 move second child to first child ( temp int) -0:12 'byteAddrTemp' ( temp int) -0:12 right-shift ( temp int) -0:12 'pos' ( in uint) -0:12 Constant: -0:12 2 (const int) -0:? Construct vec4 ( temp 4-component vector of uint) -0:12 indirect index ( temp float) -0:12 @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of uint) -0:12 'sbuf' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of uint @data}) -0:12 Constant: -0:12 0 (const uint) +0:12 Convert float to uint ( temp uint) +0:12 direct index ( temp float) +0:? Sequence +0:12 move second child to first child ( temp int) 0:12 'byteAddrTemp' ( temp int) -0:12 indirect index ( temp float) -0:12 @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of uint) -0:12 'sbuf' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of uint @data}) -0:12 Constant: -0:12 0 (const uint) -0:12 add ( temp int) -0:12 'byteAddrTemp' ( temp int) -0:12 Constant: -0:12 1 (const int) -0:12 indirect index ( temp float) -0:12 @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of uint) -0:12 'sbuf' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of uint @data}) -0:12 Constant: -0:12 0 (const uint) -0:12 add ( temp int) -0:12 'byteAddrTemp' ( temp int) +0:12 right-shift ( temp int) +0:12 'pos' ( in uint) 0:12 Constant: 0:12 2 (const int) -0:12 indirect index ( temp float) -0:12 @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of uint) -0:12 'sbuf' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of uint @data}) -0:12 Constant: -0:12 0 (const uint) -0:12 add ( temp int) +0:? Construct vec4 ( temp 4-component vector of uint) +0:12 indirect index ( temp float) +0:12 @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of uint) +0:12 'sbuf' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of uint @data}) +0:12 Constant: +0:12 0 (const uint) 0:12 'byteAddrTemp' ( temp int) -0:12 Constant: -0:12 3 (const int) -0:12 Constant: -0:12 2 (const int) -0:12 move second child to first child ( temp float) -0:12 indirect index ( temp float) +0:12 indirect index ( temp float) +0:12 @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of uint) +0:12 'sbuf' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of uint @data}) +0:12 Constant: +0:12 0 (const uint) +0:12 add ( temp int) +0:12 'byteAddrTemp' ( temp int) +0:12 Constant: +0:12 1 (const int) +0:12 indirect index ( temp float) +0:12 @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of uint) +0:12 'sbuf' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of uint @data}) +0:12 Constant: +0:12 0 (const uint) +0:12 add ( temp int) +0:12 'byteAddrTemp' ( temp int) +0:12 Constant: +0:12 2 (const int) +0:12 indirect index ( temp float) +0:12 @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of uint) +0:12 'sbuf' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of uint @data}) +0:12 Constant: +0:12 0 (const uint) +0:12 add ( temp int) +0:12 'byteAddrTemp' ( temp int) +0:12 Constant: +0:12 3 (const int) +0:12 Constant: +0:12 2 (const int) +0:12 move second child to first child ( temp uint) +0:12 indirect index (layout( row_major std430) buffer uint) 0:12 @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of uint) 0:12 'sbuf' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of uint @data}) 0:12 Constant: @@ -429,50 +436,51 @@ gl_FragCoord origin is upper left 0:12 'byteAddrTemp' ( temp int) 0:12 Constant: 0:12 3 (const int) -0:12 direct index ( temp float) -0:? Sequence -0:12 move second child to first child ( temp int) -0:12 'byteAddrTemp' ( temp int) -0:12 right-shift ( temp int) -0:12 'pos' ( in uint) -0:12 Constant: -0:12 2 (const int) -0:? Construct vec4 ( temp 4-component vector of uint) -0:12 indirect index ( temp float) -0:12 @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of uint) -0:12 'sbuf' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of uint @data}) -0:12 Constant: -0:12 0 (const uint) +0:12 Convert float to uint ( temp uint) +0:12 direct index ( temp float) +0:? Sequence +0:12 move second child to first child ( temp int) 0:12 'byteAddrTemp' ( temp int) -0:12 indirect index ( temp float) -0:12 @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of uint) -0:12 'sbuf' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of uint @data}) -0:12 Constant: -0:12 0 (const uint) -0:12 add ( temp int) -0:12 'byteAddrTemp' ( temp int) -0:12 Constant: -0:12 1 (const int) -0:12 indirect index ( temp float) -0:12 @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of uint) -0:12 'sbuf' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of uint @data}) -0:12 Constant: -0:12 0 (const uint) -0:12 add ( temp int) -0:12 'byteAddrTemp' ( temp int) +0:12 right-shift ( temp int) +0:12 'pos' ( in uint) 0:12 Constant: 0:12 2 (const int) -0:12 indirect index ( temp float) -0:12 @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of uint) -0:12 'sbuf' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of uint @data}) -0:12 Constant: -0:12 0 (const uint) -0:12 add ( temp int) +0:? Construct vec4 ( temp 4-component vector of uint) +0:12 indirect index ( temp float) +0:12 @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of uint) +0:12 'sbuf' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of uint @data}) +0:12 Constant: +0:12 0 (const uint) 0:12 'byteAddrTemp' ( temp int) -0:12 Constant: -0:12 3 (const int) -0:12 Constant: -0:12 3 (const int) +0:12 indirect index ( temp float) +0:12 @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of uint) +0:12 'sbuf' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of uint @data}) +0:12 Constant: +0:12 0 (const uint) +0:12 add ( temp int) +0:12 'byteAddrTemp' ( temp int) +0:12 Constant: +0:12 1 (const int) +0:12 indirect index ( temp float) +0:12 @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of uint) +0:12 'sbuf' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of uint @data}) +0:12 Constant: +0:12 0 (const uint) +0:12 add ( temp int) +0:12 'byteAddrTemp' ( temp int) +0:12 Constant: +0:12 2 (const int) +0:12 indirect index ( temp float) +0:12 @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of uint) +0:12 'sbuf' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of uint @data}) +0:12 Constant: +0:12 0 (const uint) +0:12 add ( temp int) +0:12 'byteAddrTemp' ( temp int) +0:12 Constant: +0:12 3 (const int) +0:12 Constant: +0:12 3 (const int) 0:14 Branch: Return with expression 0:14 Construct vec4 ( temp 4-component vector of float) 0:14 Convert uint to float ( temp float) @@ -526,23 +534,22 @@ gl_FragCoord origin is upper left 0:9 'pos' ( in uint) 0:9 Constant: 0:9 2 (const int) -0:9 move second child to first child ( temp float) -0:9 indirect index ( temp float) +0:9 move second child to first child ( temp uint) +0:9 indirect index (layout( row_major std430) buffer uint) 0:9 @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of uint) 0:9 'sbuf' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of uint @data}) 0:9 Constant: 0:9 0 (const uint) 0:9 'byteAddrTemp' ( temp int) -0:9 Convert uint to float ( temp float) -0:9 indirect index (layout( row_major std430) buffer uint) -0:9 @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of uint) -0:9 'sbuf' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of uint @data}) -0:9 Constant: -0:9 0 (const uint) -0:9 right-shift ( temp int) -0:9 'pos' ( in uint) -0:9 Constant: -0:9 2 (const int) +0:9 indirect index (layout( row_major std430) buffer uint) +0:9 @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of uint) +0:9 'sbuf' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of uint @data}) +0:9 Constant: +0:9 0 (const uint) +0:9 right-shift ( temp int) +0:9 'pos' ( in uint) +0:9 Constant: +0:9 2 (const int) 0:? Sequence 0:10 move second child to first child ( temp int) 0:10 'byteAddrTemp' ( temp int) @@ -550,41 +557,42 @@ gl_FragCoord origin is upper left 0:10 'pos' ( in uint) 0:10 Constant: 0:10 2 (const int) -0:10 move second child to first child ( temp float) -0:10 indirect index ( temp float) +0:10 move second child to first child ( temp uint) +0:10 indirect index (layout( row_major std430) buffer uint) 0:10 @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of uint) 0:10 'sbuf' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of uint @data}) 0:10 Constant: 0:10 0 (const uint) 0:10 'byteAddrTemp' ( temp int) -0:10 direct index ( temp float) -0:? Sequence -0:10 move second child to first child ( temp int) -0:10 'byteAddrTemp' ( temp int) -0:10 right-shift ( temp int) -0:10 'pos' ( in uint) -0:10 Constant: -0:10 2 (const int) -0:? Construct vec2 ( temp 2-component vector of uint) -0:10 indirect index ( temp float) -0:10 @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of uint) -0:10 'sbuf' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of uint @data}) -0:10 Constant: -0:10 0 (const uint) +0:10 Convert float to uint ( temp uint) +0:10 direct index ( temp float) +0:? Sequence +0:10 move second child to first child ( temp int) 0:10 'byteAddrTemp' ( temp int) -0:10 indirect index ( temp float) -0:10 @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of uint) -0:10 'sbuf' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of uint @data}) +0:10 right-shift ( temp int) +0:10 'pos' ( in uint) 0:10 Constant: -0:10 0 (const uint) -0:10 add ( temp int) +0:10 2 (const int) +0:? Construct vec2 ( temp 2-component vector of uint) +0:10 indirect index ( temp float) +0:10 @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of uint) +0:10 'sbuf' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of uint @data}) +0:10 Constant: +0:10 0 (const uint) 0:10 'byteAddrTemp' ( temp int) -0:10 Constant: -0:10 1 (const int) -0:10 Constant: -0:10 0 (const int) -0:10 move second child to first child ( temp float) -0:10 indirect index ( temp float) +0:10 indirect index ( temp float) +0:10 @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of uint) +0:10 'sbuf' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of uint @data}) +0:10 Constant: +0:10 0 (const uint) +0:10 add ( temp int) +0:10 'byteAddrTemp' ( temp int) +0:10 Constant: +0:10 1 (const int) +0:10 Constant: +0:10 0 (const int) +0:10 move second child to first child ( temp uint) +0:10 indirect index (layout( row_major std430) buffer uint) 0:10 @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of uint) 0:10 'sbuf' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of uint @data}) 0:10 Constant: @@ -593,32 +601,33 @@ gl_FragCoord origin is upper left 0:10 'byteAddrTemp' ( temp int) 0:10 Constant: 0:10 1 (const int) -0:10 direct index ( temp float) -0:? Sequence -0:10 move second child to first child ( temp int) -0:10 'byteAddrTemp' ( temp int) -0:10 right-shift ( temp int) -0:10 'pos' ( in uint) -0:10 Constant: -0:10 2 (const int) -0:? Construct vec2 ( temp 2-component vector of uint) -0:10 indirect index ( temp float) -0:10 @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of uint) -0:10 'sbuf' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of uint @data}) -0:10 Constant: -0:10 0 (const uint) +0:10 Convert float to uint ( temp uint) +0:10 direct index ( temp float) +0:? Sequence +0:10 move second child to first child ( temp int) 0:10 'byteAddrTemp' ( temp int) -0:10 indirect index ( temp float) -0:10 @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of uint) -0:10 'sbuf' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of uint @data}) +0:10 right-shift ( temp int) +0:10 'pos' ( in uint) 0:10 Constant: -0:10 0 (const uint) -0:10 add ( temp int) +0:10 2 (const int) +0:? Construct vec2 ( temp 2-component vector of uint) +0:10 indirect index ( temp float) +0:10 @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of uint) +0:10 'sbuf' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of uint @data}) +0:10 Constant: +0:10 0 (const uint) 0:10 'byteAddrTemp' ( temp int) -0:10 Constant: -0:10 1 (const int) -0:10 Constant: -0:10 1 (const int) +0:10 indirect index ( temp float) +0:10 @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of uint) +0:10 'sbuf' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of uint @data}) +0:10 Constant: +0:10 0 (const uint) +0:10 add ( temp int) +0:10 'byteAddrTemp' ( temp int) +0:10 Constant: +0:10 1 (const int) +0:10 Constant: +0:10 1 (const int) 0:? Sequence 0:11 move second child to first child ( temp int) 0:11 'byteAddrTemp' ( temp int) @@ -626,50 +635,51 @@ gl_FragCoord origin is upper left 0:11 'pos' ( in uint) 0:11 Constant: 0:11 2 (const int) -0:11 move second child to first child ( temp float) -0:11 indirect index ( temp float) +0:11 move second child to first child ( temp uint) +0:11 indirect index (layout( row_major std430) buffer uint) 0:11 @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of uint) 0:11 'sbuf' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of uint @data}) 0:11 Constant: 0:11 0 (const uint) 0:11 'byteAddrTemp' ( temp int) -0:11 direct index ( temp float) -0:? Sequence -0:11 move second child to first child ( temp int) -0:11 'byteAddrTemp' ( temp int) -0:11 right-shift ( temp int) -0:11 'pos' ( in uint) -0:11 Constant: -0:11 2 (const int) -0:? Construct vec3 ( temp 3-component vector of uint) -0:11 indirect index ( temp float) -0:11 @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of uint) -0:11 'sbuf' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of uint @data}) -0:11 Constant: -0:11 0 (const uint) +0:11 Convert float to uint ( temp uint) +0:11 direct index ( temp float) +0:? Sequence +0:11 move second child to first child ( temp int) 0:11 'byteAddrTemp' ( temp int) -0:11 indirect index ( temp float) -0:11 @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of uint) -0:11 'sbuf' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of uint @data}) -0:11 Constant: -0:11 0 (const uint) -0:11 add ( temp int) -0:11 'byteAddrTemp' ( temp int) -0:11 Constant: -0:11 1 (const int) -0:11 indirect index ( temp float) -0:11 @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of uint) -0:11 'sbuf' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of uint @data}) -0:11 Constant: -0:11 0 (const uint) -0:11 add ( temp int) -0:11 'byteAddrTemp' ( temp int) +0:11 right-shift ( temp int) +0:11 'pos' ( in uint) 0:11 Constant: 0:11 2 (const int) -0:11 Constant: -0:11 0 (const int) -0:11 move second child to first child ( temp float) -0:11 indirect index ( temp float) +0:? Construct vec3 ( temp 3-component vector of uint) +0:11 indirect index ( temp float) +0:11 @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of uint) +0:11 'sbuf' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of uint @data}) +0:11 Constant: +0:11 0 (const uint) +0:11 'byteAddrTemp' ( temp int) +0:11 indirect index ( temp float) +0:11 @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of uint) +0:11 'sbuf' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of uint @data}) +0:11 Constant: +0:11 0 (const uint) +0:11 add ( temp int) +0:11 'byteAddrTemp' ( temp int) +0:11 Constant: +0:11 1 (const int) +0:11 indirect index ( temp float) +0:11 @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of uint) +0:11 'sbuf' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of uint @data}) +0:11 Constant: +0:11 0 (const uint) +0:11 add ( temp int) +0:11 'byteAddrTemp' ( temp int) +0:11 Constant: +0:11 2 (const int) +0:11 Constant: +0:11 0 (const int) +0:11 move second child to first child ( temp uint) +0:11 indirect index (layout( row_major std430) buffer uint) 0:11 @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of uint) 0:11 'sbuf' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of uint @data}) 0:11 Constant: @@ -678,43 +688,44 @@ gl_FragCoord origin is upper left 0:11 'byteAddrTemp' ( temp int) 0:11 Constant: 0:11 1 (const int) -0:11 direct index ( temp float) -0:? Sequence -0:11 move second child to first child ( temp int) -0:11 'byteAddrTemp' ( temp int) -0:11 right-shift ( temp int) -0:11 'pos' ( in uint) -0:11 Constant: -0:11 2 (const int) -0:? Construct vec3 ( temp 3-component vector of uint) -0:11 indirect index ( temp float) -0:11 @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of uint) -0:11 'sbuf' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of uint @data}) -0:11 Constant: -0:11 0 (const uint) +0:11 Convert float to uint ( temp uint) +0:11 direct index ( temp float) +0:? Sequence +0:11 move second child to first child ( temp int) 0:11 'byteAddrTemp' ( temp int) -0:11 indirect index ( temp float) -0:11 @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of uint) -0:11 'sbuf' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of uint @data}) -0:11 Constant: -0:11 0 (const uint) -0:11 add ( temp int) -0:11 'byteAddrTemp' ( temp int) -0:11 Constant: -0:11 1 (const int) -0:11 indirect index ( temp float) -0:11 @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of uint) -0:11 'sbuf' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of uint @data}) -0:11 Constant: -0:11 0 (const uint) -0:11 add ( temp int) -0:11 'byteAddrTemp' ( temp int) +0:11 right-shift ( temp int) +0:11 'pos' ( in uint) 0:11 Constant: 0:11 2 (const int) -0:11 Constant: -0:11 1 (const int) -0:11 move second child to first child ( temp float) -0:11 indirect index ( temp float) +0:? Construct vec3 ( temp 3-component vector of uint) +0:11 indirect index ( temp float) +0:11 @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of uint) +0:11 'sbuf' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of uint @data}) +0:11 Constant: +0:11 0 (const uint) +0:11 'byteAddrTemp' ( temp int) +0:11 indirect index ( temp float) +0:11 @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of uint) +0:11 'sbuf' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of uint @data}) +0:11 Constant: +0:11 0 (const uint) +0:11 add ( temp int) +0:11 'byteAddrTemp' ( temp int) +0:11 Constant: +0:11 1 (const int) +0:11 indirect index ( temp float) +0:11 @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of uint) +0:11 'sbuf' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of uint @data}) +0:11 Constant: +0:11 0 (const uint) +0:11 add ( temp int) +0:11 'byteAddrTemp' ( temp int) +0:11 Constant: +0:11 2 (const int) +0:11 Constant: +0:11 1 (const int) +0:11 move second child to first child ( temp uint) +0:11 indirect index (layout( row_major std430) buffer uint) 0:11 @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of uint) 0:11 'sbuf' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of uint @data}) 0:11 Constant: @@ -723,41 +734,42 @@ gl_FragCoord origin is upper left 0:11 'byteAddrTemp' ( temp int) 0:11 Constant: 0:11 2 (const int) -0:11 direct index ( temp float) -0:? Sequence -0:11 move second child to first child ( temp int) -0:11 'byteAddrTemp' ( temp int) -0:11 right-shift ( temp int) -0:11 'pos' ( in uint) -0:11 Constant: -0:11 2 (const int) -0:? Construct vec3 ( temp 3-component vector of uint) -0:11 indirect index ( temp float) -0:11 @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of uint) -0:11 'sbuf' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of uint @data}) -0:11 Constant: -0:11 0 (const uint) +0:11 Convert float to uint ( temp uint) +0:11 direct index ( temp float) +0:? Sequence +0:11 move second child to first child ( temp int) 0:11 'byteAddrTemp' ( temp int) -0:11 indirect index ( temp float) -0:11 @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of uint) -0:11 'sbuf' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of uint @data}) -0:11 Constant: -0:11 0 (const uint) -0:11 add ( temp int) -0:11 'byteAddrTemp' ( temp int) -0:11 Constant: -0:11 1 (const int) -0:11 indirect index ( temp float) -0:11 @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of uint) -0:11 'sbuf' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of uint @data}) -0:11 Constant: -0:11 0 (const uint) -0:11 add ( temp int) -0:11 'byteAddrTemp' ( temp int) +0:11 right-shift ( temp int) +0:11 'pos' ( in uint) 0:11 Constant: 0:11 2 (const int) -0:11 Constant: -0:11 2 (const int) +0:? Construct vec3 ( temp 3-component vector of uint) +0:11 indirect index ( temp float) +0:11 @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of uint) +0:11 'sbuf' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of uint @data}) +0:11 Constant: +0:11 0 (const uint) +0:11 'byteAddrTemp' ( temp int) +0:11 indirect index ( temp float) +0:11 @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of uint) +0:11 'sbuf' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of uint @data}) +0:11 Constant: +0:11 0 (const uint) +0:11 add ( temp int) +0:11 'byteAddrTemp' ( temp int) +0:11 Constant: +0:11 1 (const int) +0:11 indirect index ( temp float) +0:11 @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of uint) +0:11 'sbuf' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of uint @data}) +0:11 Constant: +0:11 0 (const uint) +0:11 add ( temp int) +0:11 'byteAddrTemp' ( temp int) +0:11 Constant: +0:11 2 (const int) +0:11 Constant: +0:11 2 (const int) 0:? Sequence 0:12 move second child to first child ( temp int) 0:12 'byteAddrTemp' ( temp int) @@ -765,59 +777,60 @@ gl_FragCoord origin is upper left 0:12 'pos' ( in uint) 0:12 Constant: 0:12 2 (const int) -0:12 move second child to first child ( temp float) -0:12 indirect index ( temp float) +0:12 move second child to first child ( temp uint) +0:12 indirect index (layout( row_major std430) buffer uint) 0:12 @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of uint) 0:12 'sbuf' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of uint @data}) 0:12 Constant: 0:12 0 (const uint) 0:12 'byteAddrTemp' ( temp int) -0:12 direct index ( temp float) -0:? Sequence -0:12 move second child to first child ( temp int) -0:12 'byteAddrTemp' ( temp int) -0:12 right-shift ( temp int) -0:12 'pos' ( in uint) -0:12 Constant: -0:12 2 (const int) -0:? Construct vec4 ( temp 4-component vector of uint) -0:12 indirect index ( temp float) -0:12 @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of uint) -0:12 'sbuf' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of uint @data}) -0:12 Constant: -0:12 0 (const uint) +0:12 Convert float to uint ( temp uint) +0:12 direct index ( temp float) +0:? Sequence +0:12 move second child to first child ( temp int) 0:12 'byteAddrTemp' ( temp int) -0:12 indirect index ( temp float) -0:12 @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of uint) -0:12 'sbuf' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of uint @data}) -0:12 Constant: -0:12 0 (const uint) -0:12 add ( temp int) -0:12 'byteAddrTemp' ( temp int) -0:12 Constant: -0:12 1 (const int) -0:12 indirect index ( temp float) -0:12 @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of uint) -0:12 'sbuf' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of uint @data}) -0:12 Constant: -0:12 0 (const uint) -0:12 add ( temp int) -0:12 'byteAddrTemp' ( temp int) +0:12 right-shift ( temp int) +0:12 'pos' ( in uint) 0:12 Constant: 0:12 2 (const int) -0:12 indirect index ( temp float) -0:12 @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of uint) -0:12 'sbuf' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of uint @data}) -0:12 Constant: -0:12 0 (const uint) -0:12 add ( temp int) +0:? Construct vec4 ( temp 4-component vector of uint) +0:12 indirect index ( temp float) +0:12 @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of uint) +0:12 'sbuf' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of uint @data}) +0:12 Constant: +0:12 0 (const uint) 0:12 'byteAddrTemp' ( temp int) -0:12 Constant: -0:12 3 (const int) -0:12 Constant: -0:12 0 (const int) -0:12 move second child to first child ( temp float) -0:12 indirect index ( temp float) +0:12 indirect index ( temp float) +0:12 @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of uint) +0:12 'sbuf' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of uint @data}) +0:12 Constant: +0:12 0 (const uint) +0:12 add ( temp int) +0:12 'byteAddrTemp' ( temp int) +0:12 Constant: +0:12 1 (const int) +0:12 indirect index ( temp float) +0:12 @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of uint) +0:12 'sbuf' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of uint @data}) +0:12 Constant: +0:12 0 (const uint) +0:12 add ( temp int) +0:12 'byteAddrTemp' ( temp int) +0:12 Constant: +0:12 2 (const int) +0:12 indirect index ( temp float) +0:12 @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of uint) +0:12 'sbuf' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of uint @data}) +0:12 Constant: +0:12 0 (const uint) +0:12 add ( temp int) +0:12 'byteAddrTemp' ( temp int) +0:12 Constant: +0:12 3 (const int) +0:12 Constant: +0:12 0 (const int) +0:12 move second child to first child ( temp uint) +0:12 indirect index (layout( row_major std430) buffer uint) 0:12 @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of uint) 0:12 'sbuf' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of uint @data}) 0:12 Constant: @@ -826,52 +839,53 @@ gl_FragCoord origin is upper left 0:12 'byteAddrTemp' ( temp int) 0:12 Constant: 0:12 1 (const int) -0:12 direct index ( temp float) -0:? Sequence -0:12 move second child to first child ( temp int) -0:12 'byteAddrTemp' ( temp int) -0:12 right-shift ( temp int) -0:12 'pos' ( in uint) -0:12 Constant: -0:12 2 (const int) -0:? Construct vec4 ( temp 4-component vector of uint) -0:12 indirect index ( temp float) -0:12 @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of uint) -0:12 'sbuf' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of uint @data}) -0:12 Constant: -0:12 0 (const uint) +0:12 Convert float to uint ( temp uint) +0:12 direct index ( temp float) +0:? Sequence +0:12 move second child to first child ( temp int) 0:12 'byteAddrTemp' ( temp int) -0:12 indirect index ( temp float) -0:12 @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of uint) -0:12 'sbuf' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of uint @data}) -0:12 Constant: -0:12 0 (const uint) -0:12 add ( temp int) -0:12 'byteAddrTemp' ( temp int) -0:12 Constant: -0:12 1 (const int) -0:12 indirect index ( temp float) -0:12 @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of uint) -0:12 'sbuf' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of uint @data}) -0:12 Constant: -0:12 0 (const uint) -0:12 add ( temp int) -0:12 'byteAddrTemp' ( temp int) +0:12 right-shift ( temp int) +0:12 'pos' ( in uint) 0:12 Constant: 0:12 2 (const int) -0:12 indirect index ( temp float) -0:12 @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of uint) -0:12 'sbuf' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of uint @data}) -0:12 Constant: -0:12 0 (const uint) -0:12 add ( temp int) +0:? Construct vec4 ( temp 4-component vector of uint) +0:12 indirect index ( temp float) +0:12 @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of uint) +0:12 'sbuf' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of uint @data}) +0:12 Constant: +0:12 0 (const uint) 0:12 'byteAddrTemp' ( temp int) -0:12 Constant: -0:12 3 (const int) -0:12 Constant: -0:12 1 (const int) -0:12 move second child to first child ( temp float) -0:12 indirect index ( temp float) +0:12 indirect index ( temp float) +0:12 @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of uint) +0:12 'sbuf' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of uint @data}) +0:12 Constant: +0:12 0 (const uint) +0:12 add ( temp int) +0:12 'byteAddrTemp' ( temp int) +0:12 Constant: +0:12 1 (const int) +0:12 indirect index ( temp float) +0:12 @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of uint) +0:12 'sbuf' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of uint @data}) +0:12 Constant: +0:12 0 (const uint) +0:12 add ( temp int) +0:12 'byteAddrTemp' ( temp int) +0:12 Constant: +0:12 2 (const int) +0:12 indirect index ( temp float) +0:12 @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of uint) +0:12 'sbuf' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of uint @data}) +0:12 Constant: +0:12 0 (const uint) +0:12 add ( temp int) +0:12 'byteAddrTemp' ( temp int) +0:12 Constant: +0:12 3 (const int) +0:12 Constant: +0:12 1 (const int) +0:12 move second child to first child ( temp uint) +0:12 indirect index (layout( row_major std430) buffer uint) 0:12 @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of uint) 0:12 'sbuf' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of uint @data}) 0:12 Constant: @@ -880,52 +894,53 @@ gl_FragCoord origin is upper left 0:12 'byteAddrTemp' ( temp int) 0:12 Constant: 0:12 2 (const int) -0:12 direct index ( temp float) -0:? Sequence -0:12 move second child to first child ( temp int) -0:12 'byteAddrTemp' ( temp int) -0:12 right-shift ( temp int) -0:12 'pos' ( in uint) -0:12 Constant: -0:12 2 (const int) -0:? Construct vec4 ( temp 4-component vector of uint) -0:12 indirect index ( temp float) -0:12 @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of uint) -0:12 'sbuf' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of uint @data}) -0:12 Constant: -0:12 0 (const uint) +0:12 Convert float to uint ( temp uint) +0:12 direct index ( temp float) +0:? Sequence +0:12 move second child to first child ( temp int) 0:12 'byteAddrTemp' ( temp int) -0:12 indirect index ( temp float) -0:12 @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of uint) -0:12 'sbuf' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of uint @data}) -0:12 Constant: -0:12 0 (const uint) -0:12 add ( temp int) -0:12 'byteAddrTemp' ( temp int) -0:12 Constant: -0:12 1 (const int) -0:12 indirect index ( temp float) -0:12 @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of uint) -0:12 'sbuf' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of uint @data}) -0:12 Constant: -0:12 0 (const uint) -0:12 add ( temp int) -0:12 'byteAddrTemp' ( temp int) +0:12 right-shift ( temp int) +0:12 'pos' ( in uint) 0:12 Constant: 0:12 2 (const int) -0:12 indirect index ( temp float) -0:12 @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of uint) -0:12 'sbuf' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of uint @data}) -0:12 Constant: -0:12 0 (const uint) -0:12 add ( temp int) +0:? Construct vec4 ( temp 4-component vector of uint) +0:12 indirect index ( temp float) +0:12 @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of uint) +0:12 'sbuf' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of uint @data}) +0:12 Constant: +0:12 0 (const uint) 0:12 'byteAddrTemp' ( temp int) -0:12 Constant: -0:12 3 (const int) -0:12 Constant: -0:12 2 (const int) -0:12 move second child to first child ( temp float) -0:12 indirect index ( temp float) +0:12 indirect index ( temp float) +0:12 @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of uint) +0:12 'sbuf' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of uint @data}) +0:12 Constant: +0:12 0 (const uint) +0:12 add ( temp int) +0:12 'byteAddrTemp' ( temp int) +0:12 Constant: +0:12 1 (const int) +0:12 indirect index ( temp float) +0:12 @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of uint) +0:12 'sbuf' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of uint @data}) +0:12 Constant: +0:12 0 (const uint) +0:12 add ( temp int) +0:12 'byteAddrTemp' ( temp int) +0:12 Constant: +0:12 2 (const int) +0:12 indirect index ( temp float) +0:12 @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of uint) +0:12 'sbuf' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of uint @data}) +0:12 Constant: +0:12 0 (const uint) +0:12 add ( temp int) +0:12 'byteAddrTemp' ( temp int) +0:12 Constant: +0:12 3 (const int) +0:12 Constant: +0:12 2 (const int) +0:12 move second child to first child ( temp uint) +0:12 indirect index (layout( row_major std430) buffer uint) 0:12 @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of uint) 0:12 'sbuf' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of uint @data}) 0:12 Constant: @@ -934,50 +949,51 @@ gl_FragCoord origin is upper left 0:12 'byteAddrTemp' ( temp int) 0:12 Constant: 0:12 3 (const int) -0:12 direct index ( temp float) -0:? Sequence -0:12 move second child to first child ( temp int) -0:12 'byteAddrTemp' ( temp int) -0:12 right-shift ( temp int) -0:12 'pos' ( in uint) -0:12 Constant: -0:12 2 (const int) -0:? Construct vec4 ( temp 4-component vector of uint) -0:12 indirect index ( temp float) -0:12 @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of uint) -0:12 'sbuf' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of uint @data}) -0:12 Constant: -0:12 0 (const uint) +0:12 Convert float to uint ( temp uint) +0:12 direct index ( temp float) +0:? Sequence +0:12 move second child to first child ( temp int) 0:12 'byteAddrTemp' ( temp int) -0:12 indirect index ( temp float) -0:12 @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of uint) -0:12 'sbuf' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of uint @data}) -0:12 Constant: -0:12 0 (const uint) -0:12 add ( temp int) -0:12 'byteAddrTemp' ( temp int) -0:12 Constant: -0:12 1 (const int) -0:12 indirect index ( temp float) -0:12 @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of uint) -0:12 'sbuf' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of uint @data}) -0:12 Constant: -0:12 0 (const uint) -0:12 add ( temp int) -0:12 'byteAddrTemp' ( temp int) +0:12 right-shift ( temp int) +0:12 'pos' ( in uint) 0:12 Constant: 0:12 2 (const int) -0:12 indirect index ( temp float) -0:12 @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of uint) -0:12 'sbuf' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of uint @data}) -0:12 Constant: -0:12 0 (const uint) -0:12 add ( temp int) +0:? Construct vec4 ( temp 4-component vector of uint) +0:12 indirect index ( temp float) +0:12 @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of uint) +0:12 'sbuf' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of uint @data}) +0:12 Constant: +0:12 0 (const uint) 0:12 'byteAddrTemp' ( temp int) -0:12 Constant: -0:12 3 (const int) -0:12 Constant: -0:12 3 (const int) +0:12 indirect index ( temp float) +0:12 @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of uint) +0:12 'sbuf' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of uint @data}) +0:12 Constant: +0:12 0 (const uint) +0:12 add ( temp int) +0:12 'byteAddrTemp' ( temp int) +0:12 Constant: +0:12 1 (const int) +0:12 indirect index ( temp float) +0:12 @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of uint) +0:12 'sbuf' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of uint @data}) +0:12 Constant: +0:12 0 (const uint) +0:12 add ( temp int) +0:12 'byteAddrTemp' ( temp int) +0:12 Constant: +0:12 2 (const int) +0:12 indirect index ( temp float) +0:12 @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of uint) +0:12 'sbuf' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of uint @data}) +0:12 Constant: +0:12 0 (const uint) +0:12 add ( temp int) +0:12 'byteAddrTemp' ( temp int) +0:12 Constant: +0:12 3 (const int) +0:12 Constant: +0:12 3 (const int) 0:14 Branch: Return with expression 0:14 Construct vec4 ( temp 4-component vector of float) 0:14 Convert uint to float ( temp float) @@ -1007,12 +1023,12 @@ gl_FragCoord origin is upper left // Module Version 10000 // Generated by (magic number): 80002 -// Id's are bound by 240 +// Id's are bound by 248 Capability Shader 1: ExtInstImport "GLSL.std.450" MemoryModel Logical GLSL450 - EntryPoint Fragment 4 "main" 233 236 + EntryPoint Fragment 4 "main" 241 244 ExecutionMode 4 OriginUpperLeft Source HLSL 500 Name 4 "main" @@ -1023,23 +1039,23 @@ gl_FragCoord origin is upper left MemberName 16(sbuf) 0 "@data" Name 18 "sbuf" Name 22 "byteAddrTemp" - Name 35 "byteAddrTemp" - Name 39 "byteAddrTemp" - Name 70 "byteAddrTemp" - Name 74 "byteAddrTemp" - Name 129 "byteAddrTemp" + Name 34 "byteAddrTemp" + Name 38 "byteAddrTemp" + Name 71 "byteAddrTemp" + Name 75 "byteAddrTemp" Name 133 "byteAddrTemp" - Name 231 "pos" - Name 233 "pos" - Name 236 "@entryPointOutput" - Name 237 "param" + Name 137 "byteAddrTemp" + Name 239 "pos" + Name 241 "pos" + Name 244 "@entryPointOutput" + Name 245 "param" Decorate 15 ArrayStride 4 MemberDecorate 16(sbuf) 0 Offset 0 Decorate 16(sbuf) BufferBlock Decorate 18(sbuf) DescriptorSet 0 - Decorate 233(pos) Flat - Decorate 233(pos) Location 0 - Decorate 236(@entryPointOutput) Location 0 + Decorate 241(pos) Flat + Decorate 241(pos) Location 0 + Decorate 244(@entryPointOutput) Location 0 2: TypeVoid 3: TypeFunction 2 6: TypeInt 32 0 @@ -1056,29 +1072,29 @@ gl_FragCoord origin is upper left 24: 19(int) Constant 2 26: 19(int) Constant 0 30: TypePointer Uniform 6(int) - 46: 19(int) Constant 1 - 50: TypeVector 6(int) 2 - 52: 6(int) Constant 0 + 45: 19(int) Constant 1 + 49: TypeVector 6(int) 2 + 51: 6(int) Constant 0 67: 6(int) Constant 1 - 88: TypeVector 6(int) 3 - 126: 6(int) Constant 2 - 148: 19(int) Constant 3 - 152: TypeVector 6(int) 4 - 220: 6(int) Constant 3 - 232: TypePointer Input 6(int) - 233(pos): 232(ptr) Variable Input - 235: TypePointer Output 9(fvec4) -236(@entryPointOutput): 235(ptr) Variable Output + 89: TypeVector 6(int) 3 + 129: 6(int) Constant 2 + 152: 19(int) Constant 3 + 156: TypeVector 6(int) 4 + 227: 6(int) Constant 3 + 240: TypePointer Input 6(int) + 241(pos): 240(ptr) Variable Input + 243: TypePointer Output 9(fvec4) +244(@entryPointOutput): 243(ptr) Variable Output 4(main): 2 Function None 3 5: Label - 231(pos): 7(ptr) Variable Function - 237(param): 7(ptr) Variable Function - 234: 6(int) Load 233(pos) - Store 231(pos) 234 - 238: 6(int) Load 231(pos) - Store 237(param) 238 - 239: 9(fvec4) FunctionCall 12(@main(u1;) 237(param) - Store 236(@entryPointOutput) 239 + 239(pos): 7(ptr) Variable Function + 245(param): 7(ptr) Variable Function + 242: 6(int) Load 241(pos) + Store 239(pos) 242 + 246: 6(int) Load 239(pos) + Store 245(param) 246 + 247: 9(fvec4) FunctionCall 12(@main(u1;) 245(param) + Store 244(@entryPointOutput) 247 Return FunctionEnd 12(@main(u1;): 9(fvec4) Function None 10 @@ -1086,12 +1102,12 @@ gl_FragCoord origin is upper left 13: Label 14(size): 7(ptr) Variable Function 22(byteAddrTemp): 21(ptr) Variable Function -35(byteAddrTemp): 21(ptr) Variable Function -39(byteAddrTemp): 21(ptr) Variable Function -70(byteAddrTemp): 21(ptr) Variable Function -74(byteAddrTemp): 21(ptr) Variable Function -129(byteAddrTemp): 21(ptr) Variable Function +34(byteAddrTemp): 21(ptr) Variable Function +38(byteAddrTemp): 21(ptr) Variable Function +71(byteAddrTemp): 21(ptr) Variable Function +75(byteAddrTemp): 21(ptr) Variable Function 133(byteAddrTemp): 21(ptr) Variable Function +137(byteAddrTemp): 21(ptr) Variable Function 20: 19(int) ArrayLength 18(sbuf) 0 Store 14(size) 20 23: 6(int) Load 11(pos) @@ -1102,208 +1118,216 @@ gl_FragCoord origin is upper left 29: 19(int) ShiftRightLogical 28 24 31: 30(ptr) AccessChain 18(sbuf) 26 29 32: 6(int) Load 31 - 33: 8(float) ConvertUToF 32 - 34: 30(ptr) AccessChain 18(sbuf) 26 27 - Store 34 33 - 36: 6(int) Load 11(pos) - 37: 19(int) ShiftRightLogical 36 24 - Store 35(byteAddrTemp) 37 - 38: 19(int) Load 35(byteAddrTemp) - 40: 6(int) Load 11(pos) - 41: 19(int) ShiftRightLogical 40 24 - Store 39(byteAddrTemp) 41 - 42: 19(int) Load 39(byteAddrTemp) - 43: 30(ptr) AccessChain 18(sbuf) 26 42 - 44: 6(int) Load 43 - 45: 19(int) Load 39(byteAddrTemp) - 47: 19(int) IAdd 45 46 - 48: 30(ptr) AccessChain 18(sbuf) 26 47 - 49: 6(int) Load 48 - 51: 50(ivec2) CompositeConstruct 44 49 - 53: 6(int) CompositeExtract 51 0 - 54: 30(ptr) AccessChain 18(sbuf) 26 38 + 33: 30(ptr) AccessChain 18(sbuf) 26 27 + Store 33 32 + 35: 6(int) Load 11(pos) + 36: 19(int) ShiftRightLogical 35 24 + Store 34(byteAddrTemp) 36 + 37: 19(int) Load 34(byteAddrTemp) + 39: 6(int) Load 11(pos) + 40: 19(int) ShiftRightLogical 39 24 + Store 38(byteAddrTemp) 40 + 41: 19(int) Load 38(byteAddrTemp) + 42: 30(ptr) AccessChain 18(sbuf) 26 41 + 43: 6(int) Load 42 + 44: 19(int) Load 38(byteAddrTemp) + 46: 19(int) IAdd 44 45 + 47: 30(ptr) AccessChain 18(sbuf) 26 46 + 48: 6(int) Load 47 + 50: 49(ivec2) CompositeConstruct 43 48 + 52: 6(int) CompositeExtract 50 0 + 53: 6(int) ConvertFToU 52 + 54: 30(ptr) AccessChain 18(sbuf) 26 37 Store 54 53 - 55: 19(int) Load 35(byteAddrTemp) - 56: 19(int) IAdd 55 46 + 55: 19(int) Load 34(byteAddrTemp) + 56: 19(int) IAdd 55 45 57: 6(int) Load 11(pos) 58: 19(int) ShiftRightLogical 57 24 - Store 39(byteAddrTemp) 58 - 59: 19(int) Load 39(byteAddrTemp) + Store 38(byteAddrTemp) 58 + 59: 19(int) Load 38(byteAddrTemp) 60: 30(ptr) AccessChain 18(sbuf) 26 59 61: 6(int) Load 60 - 62: 19(int) Load 39(byteAddrTemp) - 63: 19(int) IAdd 62 46 + 62: 19(int) Load 38(byteAddrTemp) + 63: 19(int) IAdd 62 45 64: 30(ptr) AccessChain 18(sbuf) 26 63 65: 6(int) Load 64 - 66: 50(ivec2) CompositeConstruct 61 65 + 66: 49(ivec2) CompositeConstruct 61 65 68: 6(int) CompositeExtract 66 1 - 69: 30(ptr) AccessChain 18(sbuf) 26 56 - Store 69 68 - 71: 6(int) Load 11(pos) - 72: 19(int) ShiftRightLogical 71 24 - Store 70(byteAddrTemp) 72 - 73: 19(int) Load 70(byteAddrTemp) - 75: 6(int) Load 11(pos) - 76: 19(int) ShiftRightLogical 75 24 - Store 74(byteAddrTemp) 76 - 77: 19(int) Load 74(byteAddrTemp) - 78: 30(ptr) AccessChain 18(sbuf) 26 77 - 79: 6(int) Load 78 - 80: 19(int) Load 74(byteAddrTemp) - 81: 19(int) IAdd 80 46 - 82: 30(ptr) AccessChain 18(sbuf) 26 81 - 83: 6(int) Load 82 - 84: 19(int) Load 74(byteAddrTemp) - 85: 19(int) IAdd 84 24 - 86: 30(ptr) AccessChain 18(sbuf) 26 85 - 87: 6(int) Load 86 - 89: 88(ivec3) CompositeConstruct 79 83 87 - 90: 6(int) CompositeExtract 89 0 - 91: 30(ptr) AccessChain 18(sbuf) 26 73 - Store 91 90 - 92: 19(int) Load 70(byteAddrTemp) - 93: 19(int) IAdd 92 46 - 94: 6(int) Load 11(pos) - 95: 19(int) ShiftRightLogical 94 24 - Store 74(byteAddrTemp) 95 - 96: 19(int) Load 74(byteAddrTemp) - 97: 30(ptr) AccessChain 18(sbuf) 26 96 - 98: 6(int) Load 97 - 99: 19(int) Load 74(byteAddrTemp) - 100: 19(int) IAdd 99 46 - 101: 30(ptr) AccessChain 18(sbuf) 26 100 - 102: 6(int) Load 101 - 103: 19(int) Load 74(byteAddrTemp) - 104: 19(int) IAdd 103 24 - 105: 30(ptr) AccessChain 18(sbuf) 26 104 - 106: 6(int) Load 105 - 107: 88(ivec3) CompositeConstruct 98 102 106 - 108: 6(int) CompositeExtract 107 1 - 109: 30(ptr) AccessChain 18(sbuf) 26 93 - Store 109 108 - 110: 19(int) Load 70(byteAddrTemp) - 111: 19(int) IAdd 110 24 - 112: 6(int) Load 11(pos) - 113: 19(int) ShiftRightLogical 112 24 - Store 74(byteAddrTemp) 113 - 114: 19(int) Load 74(byteAddrTemp) - 115: 30(ptr) AccessChain 18(sbuf) 26 114 - 116: 6(int) Load 115 - 117: 19(int) Load 74(byteAddrTemp) - 118: 19(int) IAdd 117 46 - 119: 30(ptr) AccessChain 18(sbuf) 26 118 - 120: 6(int) Load 119 - 121: 19(int) Load 74(byteAddrTemp) - 122: 19(int) IAdd 121 24 - 123: 30(ptr) AccessChain 18(sbuf) 26 122 - 124: 6(int) Load 123 - 125: 88(ivec3) CompositeConstruct 116 120 124 - 127: 6(int) CompositeExtract 125 2 - 128: 30(ptr) AccessChain 18(sbuf) 26 111 - Store 128 127 - 130: 6(int) Load 11(pos) - 131: 19(int) ShiftRightLogical 130 24 - Store 129(byteAddrTemp) 131 - 132: 19(int) Load 129(byteAddrTemp) + 69: 6(int) ConvertFToU 68 + 70: 30(ptr) AccessChain 18(sbuf) 26 56 + Store 70 69 + 72: 6(int) Load 11(pos) + 73: 19(int) ShiftRightLogical 72 24 + Store 71(byteAddrTemp) 73 + 74: 19(int) Load 71(byteAddrTemp) + 76: 6(int) Load 11(pos) + 77: 19(int) ShiftRightLogical 76 24 + Store 75(byteAddrTemp) 77 + 78: 19(int) Load 75(byteAddrTemp) + 79: 30(ptr) AccessChain 18(sbuf) 26 78 + 80: 6(int) Load 79 + 81: 19(int) Load 75(byteAddrTemp) + 82: 19(int) IAdd 81 45 + 83: 30(ptr) AccessChain 18(sbuf) 26 82 + 84: 6(int) Load 83 + 85: 19(int) Load 75(byteAddrTemp) + 86: 19(int) IAdd 85 24 + 87: 30(ptr) AccessChain 18(sbuf) 26 86 + 88: 6(int) Load 87 + 90: 89(ivec3) CompositeConstruct 80 84 88 + 91: 6(int) CompositeExtract 90 0 + 92: 6(int) ConvertFToU 91 + 93: 30(ptr) AccessChain 18(sbuf) 26 74 + Store 93 92 + 94: 19(int) Load 71(byteAddrTemp) + 95: 19(int) IAdd 94 45 + 96: 6(int) Load 11(pos) + 97: 19(int) ShiftRightLogical 96 24 + Store 75(byteAddrTemp) 97 + 98: 19(int) Load 75(byteAddrTemp) + 99: 30(ptr) AccessChain 18(sbuf) 26 98 + 100: 6(int) Load 99 + 101: 19(int) Load 75(byteAddrTemp) + 102: 19(int) IAdd 101 45 + 103: 30(ptr) AccessChain 18(sbuf) 26 102 + 104: 6(int) Load 103 + 105: 19(int) Load 75(byteAddrTemp) + 106: 19(int) IAdd 105 24 + 107: 30(ptr) AccessChain 18(sbuf) 26 106 + 108: 6(int) Load 107 + 109: 89(ivec3) CompositeConstruct 100 104 108 + 110: 6(int) CompositeExtract 109 1 + 111: 6(int) ConvertFToU 110 + 112: 30(ptr) AccessChain 18(sbuf) 26 95 + Store 112 111 + 113: 19(int) Load 71(byteAddrTemp) + 114: 19(int) IAdd 113 24 + 115: 6(int) Load 11(pos) + 116: 19(int) ShiftRightLogical 115 24 + Store 75(byteAddrTemp) 116 + 117: 19(int) Load 75(byteAddrTemp) + 118: 30(ptr) AccessChain 18(sbuf) 26 117 + 119: 6(int) Load 118 + 120: 19(int) Load 75(byteAddrTemp) + 121: 19(int) IAdd 120 45 + 122: 30(ptr) AccessChain 18(sbuf) 26 121 + 123: 6(int) Load 122 + 124: 19(int) Load 75(byteAddrTemp) + 125: 19(int) IAdd 124 24 + 126: 30(ptr) AccessChain 18(sbuf) 26 125 + 127: 6(int) Load 126 + 128: 89(ivec3) CompositeConstruct 119 123 127 + 130: 6(int) CompositeExtract 128 2 + 131: 6(int) ConvertFToU 130 + 132: 30(ptr) AccessChain 18(sbuf) 26 114 + Store 132 131 134: 6(int) Load 11(pos) 135: 19(int) ShiftRightLogical 134 24 Store 133(byteAddrTemp) 135 136: 19(int) Load 133(byteAddrTemp) - 137: 30(ptr) AccessChain 18(sbuf) 26 136 - 138: 6(int) Load 137 - 139: 19(int) Load 133(byteAddrTemp) - 140: 19(int) IAdd 139 46 + 138: 6(int) Load 11(pos) + 139: 19(int) ShiftRightLogical 138 24 + Store 137(byteAddrTemp) 139 + 140: 19(int) Load 137(byteAddrTemp) 141: 30(ptr) AccessChain 18(sbuf) 26 140 142: 6(int) Load 141 - 143: 19(int) Load 133(byteAddrTemp) - 144: 19(int) IAdd 143 24 + 143: 19(int) Load 137(byteAddrTemp) + 144: 19(int) IAdd 143 45 145: 30(ptr) AccessChain 18(sbuf) 26 144 146: 6(int) Load 145 - 147: 19(int) Load 133(byteAddrTemp) - 149: 19(int) IAdd 147 148 - 150: 30(ptr) AccessChain 18(sbuf) 26 149 - 151: 6(int) Load 150 - 153: 152(ivec4) CompositeConstruct 138 142 146 151 - 154: 6(int) CompositeExtract 153 0 - 155: 30(ptr) AccessChain 18(sbuf) 26 132 - Store 155 154 - 156: 19(int) Load 129(byteAddrTemp) - 157: 19(int) IAdd 156 46 - 158: 6(int) Load 11(pos) - 159: 19(int) ShiftRightLogical 158 24 - Store 133(byteAddrTemp) 159 - 160: 19(int) Load 133(byteAddrTemp) - 161: 30(ptr) AccessChain 18(sbuf) 26 160 - 162: 6(int) Load 161 - 163: 19(int) Load 133(byteAddrTemp) - 164: 19(int) IAdd 163 46 - 165: 30(ptr) AccessChain 18(sbuf) 26 164 - 166: 6(int) Load 165 - 167: 19(int) Load 133(byteAddrTemp) - 168: 19(int) IAdd 167 24 - 169: 30(ptr) AccessChain 18(sbuf) 26 168 - 170: 6(int) Load 169 - 171: 19(int) Load 133(byteAddrTemp) - 172: 19(int) IAdd 171 148 - 173: 30(ptr) AccessChain 18(sbuf) 26 172 - 174: 6(int) Load 173 - 175: 152(ivec4) CompositeConstruct 162 166 170 174 - 176: 6(int) CompositeExtract 175 1 - 177: 30(ptr) AccessChain 18(sbuf) 26 157 - Store 177 176 - 178: 19(int) Load 129(byteAddrTemp) - 179: 19(int) IAdd 178 24 - 180: 6(int) Load 11(pos) - 181: 19(int) ShiftRightLogical 180 24 - Store 133(byteAddrTemp) 181 - 182: 19(int) Load 133(byteAddrTemp) - 183: 30(ptr) AccessChain 18(sbuf) 26 182 - 184: 6(int) Load 183 - 185: 19(int) Load 133(byteAddrTemp) - 186: 19(int) IAdd 185 46 - 187: 30(ptr) AccessChain 18(sbuf) 26 186 - 188: 6(int) Load 187 - 189: 19(int) Load 133(byteAddrTemp) - 190: 19(int) IAdd 189 24 - 191: 30(ptr) AccessChain 18(sbuf) 26 190 - 192: 6(int) Load 191 - 193: 19(int) Load 133(byteAddrTemp) - 194: 19(int) IAdd 193 148 - 195: 30(ptr) AccessChain 18(sbuf) 26 194 - 196: 6(int) Load 195 - 197: 152(ivec4) CompositeConstruct 184 188 192 196 - 198: 6(int) CompositeExtract 197 2 - 199: 30(ptr) AccessChain 18(sbuf) 26 179 - Store 199 198 - 200: 19(int) Load 129(byteAddrTemp) - 201: 19(int) IAdd 200 148 - 202: 6(int) Load 11(pos) - 203: 19(int) ShiftRightLogical 202 24 - Store 133(byteAddrTemp) 203 - 204: 19(int) Load 133(byteAddrTemp) - 205: 30(ptr) AccessChain 18(sbuf) 26 204 - 206: 6(int) Load 205 + 147: 19(int) Load 137(byteAddrTemp) + 148: 19(int) IAdd 147 24 + 149: 30(ptr) AccessChain 18(sbuf) 26 148 + 150: 6(int) Load 149 + 151: 19(int) Load 137(byteAddrTemp) + 153: 19(int) IAdd 151 152 + 154: 30(ptr) AccessChain 18(sbuf) 26 153 + 155: 6(int) Load 154 + 157: 156(ivec4) CompositeConstruct 142 146 150 155 + 158: 6(int) CompositeExtract 157 0 + 159: 6(int) ConvertFToU 158 + 160: 30(ptr) AccessChain 18(sbuf) 26 136 + Store 160 159 + 161: 19(int) Load 133(byteAddrTemp) + 162: 19(int) IAdd 161 45 + 163: 6(int) Load 11(pos) + 164: 19(int) ShiftRightLogical 163 24 + Store 137(byteAddrTemp) 164 + 165: 19(int) Load 137(byteAddrTemp) + 166: 30(ptr) AccessChain 18(sbuf) 26 165 + 167: 6(int) Load 166 + 168: 19(int) Load 137(byteAddrTemp) + 169: 19(int) IAdd 168 45 + 170: 30(ptr) AccessChain 18(sbuf) 26 169 + 171: 6(int) Load 170 + 172: 19(int) Load 137(byteAddrTemp) + 173: 19(int) IAdd 172 24 + 174: 30(ptr) AccessChain 18(sbuf) 26 173 + 175: 6(int) Load 174 + 176: 19(int) Load 137(byteAddrTemp) + 177: 19(int) IAdd 176 152 + 178: 30(ptr) AccessChain 18(sbuf) 26 177 + 179: 6(int) Load 178 + 180: 156(ivec4) CompositeConstruct 167 171 175 179 + 181: 6(int) CompositeExtract 180 1 + 182: 6(int) ConvertFToU 181 + 183: 30(ptr) AccessChain 18(sbuf) 26 162 + Store 183 182 + 184: 19(int) Load 133(byteAddrTemp) + 185: 19(int) IAdd 184 24 + 186: 6(int) Load 11(pos) + 187: 19(int) ShiftRightLogical 186 24 + Store 137(byteAddrTemp) 187 + 188: 19(int) Load 137(byteAddrTemp) + 189: 30(ptr) AccessChain 18(sbuf) 26 188 + 190: 6(int) Load 189 + 191: 19(int) Load 137(byteAddrTemp) + 192: 19(int) IAdd 191 45 + 193: 30(ptr) AccessChain 18(sbuf) 26 192 + 194: 6(int) Load 193 + 195: 19(int) Load 137(byteAddrTemp) + 196: 19(int) IAdd 195 24 + 197: 30(ptr) AccessChain 18(sbuf) 26 196 + 198: 6(int) Load 197 + 199: 19(int) Load 137(byteAddrTemp) + 200: 19(int) IAdd 199 152 + 201: 30(ptr) AccessChain 18(sbuf) 26 200 + 202: 6(int) Load 201 + 203: 156(ivec4) CompositeConstruct 190 194 198 202 + 204: 6(int) CompositeExtract 203 2 + 205: 6(int) ConvertFToU 204 + 206: 30(ptr) AccessChain 18(sbuf) 26 185 + Store 206 205 207: 19(int) Load 133(byteAddrTemp) - 208: 19(int) IAdd 207 46 - 209: 30(ptr) AccessChain 18(sbuf) 26 208 - 210: 6(int) Load 209 - 211: 19(int) Load 133(byteAddrTemp) - 212: 19(int) IAdd 211 24 - 213: 30(ptr) AccessChain 18(sbuf) 26 212 - 214: 6(int) Load 213 - 215: 19(int) Load 133(byteAddrTemp) - 216: 19(int) IAdd 215 148 - 217: 30(ptr) AccessChain 18(sbuf) 26 216 - 218: 6(int) Load 217 - 219: 152(ivec4) CompositeConstruct 206 210 214 218 - 221: 6(int) CompositeExtract 219 3 - 222: 30(ptr) AccessChain 18(sbuf) 26 201 - Store 222 221 - 223: 6(int) Load 11(pos) - 224: 19(int) ShiftRightLogical 223 24 - 225: 30(ptr) AccessChain 18(sbuf) 26 224 - 226: 6(int) Load 225 - 227: 8(float) ConvertUToF 226 - 228: 9(fvec4) CompositeConstruct 227 227 227 227 - ReturnValue 228 + 208: 19(int) IAdd 207 152 + 209: 6(int) Load 11(pos) + 210: 19(int) ShiftRightLogical 209 24 + Store 137(byteAddrTemp) 210 + 211: 19(int) Load 137(byteAddrTemp) + 212: 30(ptr) AccessChain 18(sbuf) 26 211 + 213: 6(int) Load 212 + 214: 19(int) Load 137(byteAddrTemp) + 215: 19(int) IAdd 214 45 + 216: 30(ptr) AccessChain 18(sbuf) 26 215 + 217: 6(int) Load 216 + 218: 19(int) Load 137(byteAddrTemp) + 219: 19(int) IAdd 218 24 + 220: 30(ptr) AccessChain 18(sbuf) 26 219 + 221: 6(int) Load 220 + 222: 19(int) Load 137(byteAddrTemp) + 223: 19(int) IAdd 222 152 + 224: 30(ptr) AccessChain 18(sbuf) 26 223 + 225: 6(int) Load 224 + 226: 156(ivec4) CompositeConstruct 213 217 221 225 + 228: 6(int) CompositeExtract 226 3 + 229: 6(int) ConvertFToU 228 + 230: 30(ptr) AccessChain 18(sbuf) 26 208 + Store 230 229 + 231: 6(int) Load 11(pos) + 232: 19(int) ShiftRightLogical 231 24 + 233: 30(ptr) AccessChain 18(sbuf) 26 232 + 234: 6(int) Load 233 + 235: 8(float) ConvertUToF 234 + 236: 9(fvec4) CompositeConstruct 235 235 235 235 + ReturnValue 236 FunctionEnd diff --git a/3rdparty/glslang/Test/hlsl.cbuffer-identifier.vert b/3rdparty/glslang/Test/hlsl.cbuffer-identifier.vert new file mode 100644 index 000000000..8362f5cac --- /dev/null +++ b/3rdparty/glslang/Test/hlsl.cbuffer-identifier.vert @@ -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; +} diff --git a/3rdparty/glslang/Test/hlsl.flattenOpaqueInit.vert b/3rdparty/glslang/Test/hlsl.flattenOpaqueInit.vert index bcf39ceb6..4181802cf 100644 --- a/3rdparty/glslang/Test/hlsl.flattenOpaqueInit.vert +++ b/3rdparty/glslang/Test/hlsl.flattenOpaqueInit.vert @@ -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; } diff --git a/3rdparty/glslang/Test/hlsl.mul-truncate.frag b/3rdparty/glslang/Test/hlsl.mul-truncate.frag new file mode 100644 index 000000000..7ce2c22db --- /dev/null +++ b/3rdparty/glslang/Test/hlsl.mul-truncate.frag @@ -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]; +} diff --git a/3rdparty/glslang/Test/hlsl.store.rwbyteaddressbuffer.type.comp b/3rdparty/glslang/Test/hlsl.store.rwbyteaddressbuffer.type.comp new file mode 100644 index 000000000..5400d81f0 --- /dev/null +++ b/3rdparty/glslang/Test/hlsl.store.rwbyteaddressbuffer.type.comp @@ -0,0 +1,8 @@ +RWByteAddressBuffer buffer; + +[numthreads(64, 1, 1)] +void main( uint3 dispatchThreadID : SV_DispatchThreadID) +{ + if(dispatchThreadID.x == 0) + buffer.Store(0, 2); +} \ No newline at end of file diff --git a/3rdparty/glslang/glslang/Include/Types.h b/3rdparty/glslang/glslang/Include/Types.h index b5b91f527..d23b61531 100644 --- a/3rdparty/glslang/glslang/Include/Types.h +++ b/3rdparty/glslang/glslang/Include/Types.h @@ -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) : diff --git a/3rdparty/glslang/gtests/Hlsl.FromFile.cpp b/3rdparty/glslang/gtests/Hlsl.FromFile.cpp index 2e4b146d6..fbb1e6e29 100644 --- a/3rdparty/glslang/gtests/Hlsl.FromFile.cpp +++ b/3rdparty/glslang/gtests/Hlsl.FromFile.cpp @@ -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"}, diff --git a/3rdparty/glslang/hlsl/hlslGrammar.cpp b/3rdparty/glslang/hlsl/hlslGrammar.cpp index cf0bf0512..369667cf0 100755 --- a/3rdparty/glslang/hlsl/hlslGrammar.cpp +++ b/3rdparty/glslang/hlsl/hlslGrammar.cpp @@ -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; } diff --git a/3rdparty/glslang/hlsl/hlslParseHelper.cpp b/3rdparty/glslang/hlsl/hlslParseHelper.cpp index adb955f7c..c4187452a 100755 --- a/3rdparty/glslang/hlsl/hlslParseHelper.cpp +++ b/3rdparty/glslang/hlsl/hlslParseHelper.cpp @@ -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. // diff --git a/3rdparty/glslang/hlsl/hlslParseHelper.h b/3rdparty/glslang/hlsl/hlslParseHelper.h index c1752f129..67d192d47 100755 --- a/3rdparty/glslang/hlsl/hlslParseHelper.h +++ b/3rdparty/glslang/hlsl/hlslParseHelper.h @@ -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&); diff --git a/3rdparty/glslang/known_good.json b/3rdparty/glslang/known_good.json index d318235ff..25b81a4d4 100644 --- a/3rdparty/glslang/known_good.json +++ b/3rdparty/glslang/known_good.json @@ -5,7 +5,7 @@ "site" : "github", "subrepo" : "KhronosGroup/SPIRV-Tools", "subdir" : "External/spirv-tools", - "commit" : "ac04b2faeabc15811e8c542a5d7a36dbdba243b8" + "commit" : "188cd3780d76256d6bfcbdb216b6368e9b070628" }, { "name" : "spirv-tools/external/spirv-headers",