From e5921f1309230cb7dea5d9d53bd3bc38c07da037 Mon Sep 17 00:00:00 2001 From: steve-lunarg Date: Sat, 15 Oct 2016 10:29:58 -0600 Subject: HLSL: Fix unary and binary operator type conversion issues This fixes defects as follows: 1. handleLvalue could be called on a non-L-value, and it shouldn't be. 2. HLSL allows unary negation on non-bool values. TUnaryOperator::promote can now promote other types (e.g, int, float) to bool for this op. 3. HLSL allows binary logical operations (&&, ||) on arbitrary types, similar (2). 4. HLSL allows mod operation on arbitrary types, which will be promoted. E.g, int % float -> float % float. --- Test/baseResults/hlsl.logical.binary.frag.out | 220 +++++++++++++++++++ Test/baseResults/hlsl.logical.unary.frag.out | 292 +++++++++++++++++++++++++ Test/baseResults/hlsl.promote.binary.frag.out | 280 ++++++++++++++++++++++++ Test/hlsl.logical.binary.frag | 21 ++ Test/hlsl.logical.unary.frag | 29 +++ Test/hlsl.promote.binary.frag | 28 +++ glslang/Include/intermediate.h | 8 +- glslang/MachineIndependent/Intermediate.cpp | 66 +++++- glslang/MachineIndependent/localintermediate.h | 5 +- gtests/Hlsl.FromFile.cpp | 5 +- hlsl/hlslGrammar.cpp | 5 +- hlsl/hlslParseables.cpp | 3 - 12 files changed, 946 insertions(+), 16 deletions(-) create mode 100644 Test/baseResults/hlsl.logical.binary.frag.out create mode 100644 Test/baseResults/hlsl.logical.unary.frag.out create mode 100644 Test/baseResults/hlsl.promote.binary.frag.out create mode 100644 Test/hlsl.logical.binary.frag create mode 100644 Test/hlsl.logical.unary.frag create mode 100644 Test/hlsl.promote.binary.frag diff --git a/Test/baseResults/hlsl.logical.binary.frag.out b/Test/baseResults/hlsl.logical.binary.frag.out new file mode 100644 index 00000000..9e6593ee --- /dev/null +++ b/Test/baseResults/hlsl.logical.binary.frag.out @@ -0,0 +1,220 @@ +hlsl.logical.binary.frag +Shader version: 450 +gl_FragCoord origin is upper left +0:? Sequence +0:12 Function Definition: main( (temp structure{temp 4-component vector of float Color}) +0:12 Function Parameters: +0:? Sequence +0:13 Test condition and select (temp void) +0:13 Condition +0:13 logical-and (temp bool) +0:13 Convert int to bool (temp bool) +0:13 ival: direct index for structure (layout(offset=0 ) uniform int) +0:13 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int ival, layout(offset=16 ) uniform 4-component vector of int ival4, layout(offset=32 ) uniform float fval, layout(offset=48 ) uniform 4-component vector of float fval4}) +0:13 Constant: +0:13 0 (const uint) +0:13 Convert int to bool (temp bool) +0:13 Convert float to int (temp int) +0:13 fval: direct index for structure (layout(offset=32 ) uniform float) +0:13 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int ival, layout(offset=16 ) uniform 4-component vector of int ival4, layout(offset=32 ) uniform float fval, layout(offset=48 ) uniform 4-component vector of float fval4}) +0:13 Constant: +0:13 2 (const uint) +0:13 true case is null +0:14 Test condition and select (temp void) +0:14 Condition +0:14 logical-or (temp bool) +0:14 Convert int to bool (temp bool) +0:14 ival: direct index for structure (layout(offset=0 ) uniform int) +0:14 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int ival, layout(offset=16 ) uniform 4-component vector of int ival4, layout(offset=32 ) uniform float fval, layout(offset=48 ) uniform 4-component vector of float fval4}) +0:14 Constant: +0:14 0 (const uint) +0:14 Convert int to bool (temp bool) +0:14 Convert float to int (temp int) +0:14 fval: direct index for structure (layout(offset=32 ) uniform float) +0:14 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int ival, layout(offset=16 ) uniform 4-component vector of int ival4, layout(offset=32 ) uniform float fval, layout(offset=48 ) uniform 4-component vector of float fval4}) +0:14 Constant: +0:14 2 (const uint) +0:14 true case is null +0:17 move second child to first child (temp 4-component vector of float) +0:17 Color: direct index for structure (temp 4-component vector of float) +0:17 'psout' (temp structure{temp 4-component vector of float Color}) +0:17 Constant: +0:17 0 (const int) +0:17 Constant: +0:17 1.000000 +0:17 1.000000 +0:17 1.000000 +0:17 1.000000 +0:18 Sequence +0:18 Sequence +0:18 move second child to first child (temp 4-component vector of float) +0:? 'Color' (layout(location=0 ) out 4-component vector of float) +0:18 Color: direct index for structure (temp 4-component vector of float) +0:18 'psout' (temp structure{temp 4-component vector of float Color}) +0:18 Constant: +0:18 0 (const int) +0:18 Branch: Return +0:? Linker Objects +0:? 'Color' (layout(location=0 ) out 4-component vector of float) +0:? 'anon@0' (uniform block{layout(offset=0 ) uniform int ival, layout(offset=16 ) uniform 4-component vector of int ival4, layout(offset=32 ) uniform float fval, layout(offset=48 ) uniform 4-component vector of float fval4}) + + +Linked fragment stage: + + +Shader version: 450 +gl_FragCoord origin is upper left +0:? Sequence +0:12 Function Definition: main( (temp structure{temp 4-component vector of float Color}) +0:12 Function Parameters: +0:? Sequence +0:13 Test condition and select (temp void) +0:13 Condition +0:13 logical-and (temp bool) +0:13 Convert int to bool (temp bool) +0:13 ival: direct index for structure (layout(offset=0 ) uniform int) +0:13 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int ival, layout(offset=16 ) uniform 4-component vector of int ival4, layout(offset=32 ) uniform float fval, layout(offset=48 ) uniform 4-component vector of float fval4}) +0:13 Constant: +0:13 0 (const uint) +0:13 Convert int to bool (temp bool) +0:13 Convert float to int (temp int) +0:13 fval: direct index for structure (layout(offset=32 ) uniform float) +0:13 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int ival, layout(offset=16 ) uniform 4-component vector of int ival4, layout(offset=32 ) uniform float fval, layout(offset=48 ) uniform 4-component vector of float fval4}) +0:13 Constant: +0:13 2 (const uint) +0:13 true case is null +0:14 Test condition and select (temp void) +0:14 Condition +0:14 logical-or (temp bool) +0:14 Convert int to bool (temp bool) +0:14 ival: direct index for structure (layout(offset=0 ) uniform int) +0:14 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int ival, layout(offset=16 ) uniform 4-component vector of int ival4, layout(offset=32 ) uniform float fval, layout(offset=48 ) uniform 4-component vector of float fval4}) +0:14 Constant: +0:14 0 (const uint) +0:14 Convert int to bool (temp bool) +0:14 Convert float to int (temp int) +0:14 fval: direct index for structure (layout(offset=32 ) uniform float) +0:14 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int ival, layout(offset=16 ) uniform 4-component vector of int ival4, layout(offset=32 ) uniform float fval, layout(offset=48 ) uniform 4-component vector of float fval4}) +0:14 Constant: +0:14 2 (const uint) +0:14 true case is null +0:17 move second child to first child (temp 4-component vector of float) +0:17 Color: direct index for structure (temp 4-component vector of float) +0:17 'psout' (temp structure{temp 4-component vector of float Color}) +0:17 Constant: +0:17 0 (const int) +0:17 Constant: +0:17 1.000000 +0:17 1.000000 +0:17 1.000000 +0:17 1.000000 +0:18 Sequence +0:18 Sequence +0:18 move second child to first child (temp 4-component vector of float) +0:? 'Color' (layout(location=0 ) out 4-component vector of float) +0:18 Color: direct index for structure (temp 4-component vector of float) +0:18 'psout' (temp structure{temp 4-component vector of float Color}) +0:18 Constant: +0:18 0 (const int) +0:18 Branch: Return +0:? Linker Objects +0:? 'Color' (layout(location=0 ) out 4-component vector of float) +0:? 'anon@0' (uniform block{layout(offset=0 ) uniform int ival, layout(offset=16 ) uniform 4-component vector of int ival4, layout(offset=32 ) uniform float fval, layout(offset=48 ) uniform 4-component vector of float fval4}) + +// Module Version 10000 +// Generated by (magic number): 80001 +// Id's are bound by 57 + + Capability Shader + 1: ExtInstImport "GLSL.std.450" + MemoryModel Logical GLSL450 + EntryPoint Fragment 4 "main" 53 + ExecutionMode 4 OriginUpperLeft + Name 4 "main" + Name 11 "$Global" + MemberName 11($Global) 0 "ival" + MemberName 11($Global) 1 "ival4" + MemberName 11($Global) 2 "fval" + MemberName 11($Global) 3 "fval4" + Name 13 "" + Name 45 "PS_OUTPUT" + MemberName 45(PS_OUTPUT) 0 "Color" + Name 47 "psout" + Name 53 "Color" + MemberDecorate 11($Global) 0 Offset 0 + MemberDecorate 11($Global) 1 Offset 16 + MemberDecorate 11($Global) 2 Offset 32 + MemberDecorate 11($Global) 3 Offset 48 + Decorate 11($Global) Block + Decorate 13 DescriptorSet 0 + Decorate 53(Color) Location 0 + 2: TypeVoid + 3: TypeFunction 2 + 6: TypeBool + 7: TypeInt 32 1 + 8: TypeVector 7(int) 4 + 9: TypeFloat 32 + 10: TypeVector 9(float) 4 + 11($Global): TypeStruct 7(int) 8(ivec4) 9(float) 10(fvec4) + 12: TypePointer Uniform 11($Global) + 13: 12(ptr) Variable Uniform + 14: 7(int) Constant 0 + 15: TypePointer Uniform 7(int) + 18: TypeInt 32 0 + 19: 18(int) Constant 0 + 23: 7(int) Constant 2 + 24: TypePointer Uniform 9(float) + 45(PS_OUTPUT): TypeStruct 10(fvec4) + 46: TypePointer Function 45(PS_OUTPUT) + 48: 9(float) Constant 1065353216 + 49: 10(fvec4) ConstantComposite 48 48 48 48 + 50: TypePointer Function 10(fvec4) + 52: TypePointer Output 10(fvec4) + 53(Color): 52(ptr) Variable Output + 4(main): 2 Function None 3 + 5: Label + 47(psout): 46(ptr) Variable Function + 16: 15(ptr) AccessChain 13 14 + 17: 7(int) Load 16 + 20: 6(bool) INotEqual 17 19 + SelectionMerge 22 None + BranchConditional 20 21 22 + 21: Label + 25: 24(ptr) AccessChain 13 23 + 26: 9(float) Load 25 + 27: 7(int) ConvertFToS 26 + 28: 6(bool) INotEqual 27 19 + Branch 22 + 22: Label + 29: 6(bool) Phi 20 5 28 21 + SelectionMerge 31 None + BranchConditional 29 30 31 + 30: Label + Branch 31 + 31: Label + 32: 15(ptr) AccessChain 13 14 + 33: 7(int) Load 32 + 34: 6(bool) INotEqual 33 19 + 35: 6(bool) LogicalNot 34 + SelectionMerge 37 None + BranchConditional 35 36 37 + 36: Label + 38: 24(ptr) AccessChain 13 23 + 39: 9(float) Load 38 + 40: 7(int) ConvertFToS 39 + 41: 6(bool) INotEqual 40 19 + Branch 37 + 37: Label + 42: 6(bool) Phi 34 31 41 36 + SelectionMerge 44 None + BranchConditional 42 43 44 + 43: Label + Branch 44 + 44: Label + 51: 50(ptr) AccessChain 47(psout) 14 + Store 51 49 + 54: 50(ptr) AccessChain 47(psout) 14 + 55: 10(fvec4) Load 54 + Store 53(Color) 55 + Return + FunctionEnd diff --git a/Test/baseResults/hlsl.logical.unary.frag.out b/Test/baseResults/hlsl.logical.unary.frag.out new file mode 100644 index 00000000..e3def3c0 --- /dev/null +++ b/Test/baseResults/hlsl.logical.unary.frag.out @@ -0,0 +1,292 @@ +hlsl.logical.unary.frag +Shader version: 450 +gl_FragCoord origin is upper left +0:? Sequence +0:12 Function Definition: main( (temp structure{temp 4-component vector of float Color}) +0:12 Function Parameters: +0:? Sequence +0:13 Negate conditional (temp bool) +0:13 Convert int to bool (temp bool) +0:13 ival: direct index for structure (layout(offset=0 ) uniform int) +0:13 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int ival, layout(offset=16 ) uniform 4-component vector of int ival4, layout(offset=32 ) uniform float fval, layout(offset=48 ) uniform 4-component vector of float fval4}) +0:13 Constant: +0:13 0 (const uint) +0:14 Negate conditional (temp 4-component vector of bool) +0:14 Convert int to bool (temp 4-component vector of bool) +0:14 ival4: direct index for structure (layout(offset=16 ) uniform 4-component vector of int) +0:14 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int ival, layout(offset=16 ) uniform 4-component vector of int ival4, layout(offset=32 ) uniform float fval, layout(offset=48 ) uniform 4-component vector of float fval4}) +0:14 Constant: +0:14 1 (const uint) +0:16 Negate conditional (temp bool) +0:16 Convert float to bool (temp bool) +0:16 fval: direct index for structure (layout(offset=32 ) uniform float) +0:16 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int ival, layout(offset=16 ) uniform 4-component vector of int ival4, layout(offset=32 ) uniform float fval, layout(offset=48 ) uniform 4-component vector of float fval4}) +0:16 Constant: +0:16 2 (const uint) +0:17 Negate conditional (temp 4-component vector of bool) +0:17 Convert float to bool (temp 4-component vector of bool) +0:17 fval4: direct index for structure (layout(offset=48 ) uniform 4-component vector of float) +0:17 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int ival, layout(offset=16 ) uniform 4-component vector of int ival4, layout(offset=32 ) uniform float fval, layout(offset=48 ) uniform 4-component vector of float fval4}) +0:17 Constant: +0:17 3 (const uint) +0:19 Test condition and select (temp void) +0:19 Condition +0:19 ival: direct index for structure (layout(offset=0 ) uniform int) +0:19 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int ival, layout(offset=16 ) uniform 4-component vector of int ival4, layout(offset=32 ) uniform float fval, layout(offset=48 ) uniform 4-component vector of float fval4}) +0:19 Constant: +0:19 0 (const uint) +0:19 true case is null +0:20 Test condition and select (temp void) +0:20 Condition +0:20 fval: direct index for structure (layout(offset=32 ) uniform float) +0:20 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int ival, layout(offset=16 ) uniform 4-component vector of int ival4, layout(offset=32 ) uniform float fval, layout(offset=48 ) uniform 4-component vector of float fval4}) +0:20 Constant: +0:20 2 (const uint) +0:20 true case is null +0:21 Test condition and select (temp void) +0:21 Condition +0:21 Negate conditional (temp bool) +0:21 Convert int to bool (temp bool) +0:21 ival: direct index for structure (layout(offset=0 ) uniform int) +0:21 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int ival, layout(offset=16 ) uniform 4-component vector of int ival4, layout(offset=32 ) uniform float fval, layout(offset=48 ) uniform 4-component vector of float fval4}) +0:21 Constant: +0:21 0 (const uint) +0:21 true case is null +0:22 Test condition and select (temp void) +0:22 Condition +0:22 Negate conditional (temp bool) +0:22 Convert float to bool (temp bool) +0:22 fval: direct index for structure (layout(offset=32 ) uniform float) +0:22 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int ival, layout(offset=16 ) uniform 4-component vector of int ival4, layout(offset=32 ) uniform float fval, layout(offset=48 ) uniform 4-component vector of float fval4}) +0:22 Constant: +0:22 2 (const uint) +0:22 true case is null +0:25 move second child to first child (temp 4-component vector of float) +0:25 Color: direct index for structure (temp 4-component vector of float) +0:25 'psout' (temp structure{temp 4-component vector of float Color}) +0:25 Constant: +0:25 0 (const int) +0:25 Constant: +0:25 1.000000 +0:25 1.000000 +0:25 1.000000 +0:25 1.000000 +0:26 Sequence +0:26 Sequence +0:26 move second child to first child (temp 4-component vector of float) +0:? 'Color' (layout(location=0 ) out 4-component vector of float) +0:26 Color: direct index for structure (temp 4-component vector of float) +0:26 'psout' (temp structure{temp 4-component vector of float Color}) +0:26 Constant: +0:26 0 (const int) +0:26 Branch: Return +0:? Linker Objects +0:? 'Color' (layout(location=0 ) out 4-component vector of float) +0:? 'anon@0' (uniform block{layout(offset=0 ) uniform int ival, layout(offset=16 ) uniform 4-component vector of int ival4, layout(offset=32 ) uniform float fval, layout(offset=48 ) uniform 4-component vector of float fval4}) + + +Linked fragment stage: + + +Shader version: 450 +gl_FragCoord origin is upper left +0:? Sequence +0:12 Function Definition: main( (temp structure{temp 4-component vector of float Color}) +0:12 Function Parameters: +0:? Sequence +0:13 Negate conditional (temp bool) +0:13 Convert int to bool (temp bool) +0:13 ival: direct index for structure (layout(offset=0 ) uniform int) +0:13 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int ival, layout(offset=16 ) uniform 4-component vector of int ival4, layout(offset=32 ) uniform float fval, layout(offset=48 ) uniform 4-component vector of float fval4}) +0:13 Constant: +0:13 0 (const uint) +0:14 Negate conditional (temp 4-component vector of bool) +0:14 Convert int to bool (temp 4-component vector of bool) +0:14 ival4: direct index for structure (layout(offset=16 ) uniform 4-component vector of int) +0:14 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int ival, layout(offset=16 ) uniform 4-component vector of int ival4, layout(offset=32 ) uniform float fval, layout(offset=48 ) uniform 4-component vector of float fval4}) +0:14 Constant: +0:14 1 (const uint) +0:16 Negate conditional (temp bool) +0:16 Convert float to bool (temp bool) +0:16 fval: direct index for structure (layout(offset=32 ) uniform float) +0:16 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int ival, layout(offset=16 ) uniform 4-component vector of int ival4, layout(offset=32 ) uniform float fval, layout(offset=48 ) uniform 4-component vector of float fval4}) +0:16 Constant: +0:16 2 (const uint) +0:17 Negate conditional (temp 4-component vector of bool) +0:17 Convert float to bool (temp 4-component vector of bool) +0:17 fval4: direct index for structure (layout(offset=48 ) uniform 4-component vector of float) +0:17 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int ival, layout(offset=16 ) uniform 4-component vector of int ival4, layout(offset=32 ) uniform float fval, layout(offset=48 ) uniform 4-component vector of float fval4}) +0:17 Constant: +0:17 3 (const uint) +0:19 Test condition and select (temp void) +0:19 Condition +0:19 ival: direct index for structure (layout(offset=0 ) uniform int) +0:19 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int ival, layout(offset=16 ) uniform 4-component vector of int ival4, layout(offset=32 ) uniform float fval, layout(offset=48 ) uniform 4-component vector of float fval4}) +0:19 Constant: +0:19 0 (const uint) +0:19 true case is null +0:20 Test condition and select (temp void) +0:20 Condition +0:20 fval: direct index for structure (layout(offset=32 ) uniform float) +0:20 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int ival, layout(offset=16 ) uniform 4-component vector of int ival4, layout(offset=32 ) uniform float fval, layout(offset=48 ) uniform 4-component vector of float fval4}) +0:20 Constant: +0:20 2 (const uint) +0:20 true case is null +0:21 Test condition and select (temp void) +0:21 Condition +0:21 Negate conditional (temp bool) +0:21 Convert int to bool (temp bool) +0:21 ival: direct index for structure (layout(offset=0 ) uniform int) +0:21 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int ival, layout(offset=16 ) uniform 4-component vector of int ival4, layout(offset=32 ) uniform float fval, layout(offset=48 ) uniform 4-component vector of float fval4}) +0:21 Constant: +0:21 0 (const uint) +0:21 true case is null +0:22 Test condition and select (temp void) +0:22 Condition +0:22 Negate conditional (temp bool) +0:22 Convert float to bool (temp bool) +0:22 fval: direct index for structure (layout(offset=32 ) uniform float) +0:22 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int ival, layout(offset=16 ) uniform 4-component vector of int ival4, layout(offset=32 ) uniform float fval, layout(offset=48 ) uniform 4-component vector of float fval4}) +0:22 Constant: +0:22 2 (const uint) +0:22 true case is null +0:25 move second child to first child (temp 4-component vector of float) +0:25 Color: direct index for structure (temp 4-component vector of float) +0:25 'psout' (temp structure{temp 4-component vector of float Color}) +0:25 Constant: +0:25 0 (const int) +0:25 Constant: +0:25 1.000000 +0:25 1.000000 +0:25 1.000000 +0:25 1.000000 +0:26 Sequence +0:26 Sequence +0:26 move second child to first child (temp 4-component vector of float) +0:? 'Color' (layout(location=0 ) out 4-component vector of float) +0:26 Color: direct index for structure (temp 4-component vector of float) +0:26 'psout' (temp structure{temp 4-component vector of float Color}) +0:26 Constant: +0:26 0 (const int) +0:26 Branch: Return +0:? Linker Objects +0:? 'Color' (layout(location=0 ) out 4-component vector of float) +0:? 'anon@0' (uniform block{layout(offset=0 ) uniform int ival, layout(offset=16 ) uniform 4-component vector of int ival4, layout(offset=32 ) uniform float fval, layout(offset=48 ) uniform 4-component vector of float fval4}) + +// Module Version 10000 +// Generated by (magic number): 80001 +// Id's are bound by 77 + + Capability Shader + 1: ExtInstImport "GLSL.std.450" + MemoryModel Logical GLSL450 + EntryPoint Fragment 4 "main" 73 + ExecutionMode 4 OriginUpperLeft + Name 4 "main" + Name 10 "$Global" + MemberName 10($Global) 0 "ival" + MemberName 10($Global) 1 "ival4" + MemberName 10($Global) 2 "fval" + MemberName 10($Global) 3 "fval4" + Name 12 "" + Name 65 "PS_OUTPUT" + MemberName 65(PS_OUTPUT) 0 "Color" + Name 67 "psout" + Name 73 "Color" + MemberDecorate 10($Global) 0 Offset 0 + MemberDecorate 10($Global) 1 Offset 16 + MemberDecorate 10($Global) 2 Offset 32 + MemberDecorate 10($Global) 3 Offset 48 + Decorate 10($Global) Block + Decorate 12 DescriptorSet 0 + Decorate 73(Color) Location 0 + 2: TypeVoid + 3: TypeFunction 2 + 6: TypeInt 32 1 + 7: TypeVector 6(int) 4 + 8: TypeFloat 32 + 9: TypeVector 8(float) 4 + 10($Global): TypeStruct 6(int) 7(ivec4) 8(float) 9(fvec4) + 11: TypePointer Uniform 10($Global) + 12: 11(ptr) Variable Uniform + 13: 6(int) Constant 0 + 14: TypePointer Uniform 6(int) + 17: TypeBool + 18: TypeInt 32 0 + 19: 18(int) Constant 0 + 22: 6(int) Constant 1 + 23: TypePointer Uniform 7(ivec4) + 26: TypeVector 17(bool) 4 + 27: TypeVector 18(int) 4 + 28: 27(ivec4) ConstantComposite 19 19 19 19 + 31: 6(int) Constant 2 + 32: TypePointer Uniform 8(float) + 35: 8(float) Constant 0 + 38: 6(int) Constant 3 + 39: TypePointer Uniform 9(fvec4) + 42: 9(fvec4) ConstantComposite 35 35 35 35 + 65(PS_OUTPUT): TypeStruct 9(fvec4) + 66: TypePointer Function 65(PS_OUTPUT) + 68: 8(float) Constant 1065353216 + 69: 9(fvec4) ConstantComposite 68 68 68 68 + 70: TypePointer Function 9(fvec4) + 72: TypePointer Output 9(fvec4) + 73(Color): 72(ptr) Variable Output + 4(main): 2 Function None 3 + 5: Label + 67(psout): 66(ptr) Variable Function + 15: 14(ptr) AccessChain 12 13 + 16: 6(int) Load 15 + 20: 17(bool) INotEqual 16 19 + 21: 17(bool) LogicalNot 20 + 24: 23(ptr) AccessChain 12 22 + 25: 7(ivec4) Load 24 + 29: 26(bvec4) INotEqual 25 28 + 30: 26(bvec4) LogicalNot 29 + 33: 32(ptr) AccessChain 12 31 + 34: 8(float) Load 33 + 36: 17(bool) FOrdNotEqual 34 35 + 37: 17(bool) LogicalNot 36 + 40: 39(ptr) AccessChain 12 38 + 41: 9(fvec4) Load 40 + 43: 26(bvec4) FOrdNotEqual 41 42 + 44: 26(bvec4) LogicalNot 43 + 45: 14(ptr) AccessChain 12 13 + 46: 6(int) Load 45 + SelectionMerge 48 None + BranchConditional 46 47 48 + 47: Label + Branch 48 + 48: Label + 49: 32(ptr) AccessChain 12 31 + 50: 8(float) Load 49 + SelectionMerge 52 None + BranchConditional 50 51 52 + 51: Label + Branch 52 + 52: Label + 53: 14(ptr) AccessChain 12 13 + 54: 6(int) Load 53 + 55: 17(bool) INotEqual 54 19 + 56: 17(bool) LogicalNot 55 + SelectionMerge 58 None + BranchConditional 56 57 58 + 57: Label + Branch 58 + 58: Label + 59: 32(ptr) AccessChain 12 31 + 60: 8(float) Load 59 + 61: 17(bool) FOrdNotEqual 60 35 + 62: 17(bool) LogicalNot 61 + SelectionMerge 64 None + BranchConditional 62 63 64 + 63: Label + Branch 64 + 64: Label + 71: 70(ptr) AccessChain 67(psout) 13 + Store 71 69 + 74: 70(ptr) AccessChain 67(psout) 13 + 75: 9(fvec4) Load 74 + Store 73(Color) 75 + Return + FunctionEnd diff --git a/Test/baseResults/hlsl.promote.binary.frag.out b/Test/baseResults/hlsl.promote.binary.frag.out new file mode 100644 index 00000000..a2e7176c --- /dev/null +++ b/Test/baseResults/hlsl.promote.binary.frag.out @@ -0,0 +1,280 @@ +hlsl.promote.binary.frag +Shader version: 450 +gl_FragCoord origin is upper left +0:? Sequence +0:14 Function Definition: main( (temp structure{temp 4-component vector of float Color}) +0:14 Function Parameters: +0:? Sequence +0:15 mod (temp float) +0:15 Convert int to float (temp float) +0:15 ival: direct index for structure (layout(offset=32 ) uniform int) +0:15 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform bool bval, layout(offset=16 ) uniform 4-component vector of bool bval4, layout(offset=32 ) uniform int ival, layout(offset=48 ) uniform 4-component vector of int ival4, layout(offset=64 ) uniform float fval, layout(offset=80 ) uniform 4-component vector of float fval4}) +0:15 Constant: +0:15 2 (const uint) +0:15 fval: direct index for structure (layout(offset=64 ) uniform float) +0:15 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform bool bval, layout(offset=16 ) uniform 4-component vector of bool bval4, layout(offset=32 ) uniform int ival, layout(offset=48 ) uniform 4-component vector of int ival4, layout(offset=64 ) uniform float fval, layout(offset=80 ) uniform 4-component vector of float fval4}) +0:15 Constant: +0:15 4 (const uint) +0:16 mod (temp 4-component vector of float) +0:16 Convert int to float (temp 4-component vector of float) +0:16 ival4: direct index for structure (layout(offset=48 ) uniform 4-component vector of int) +0:16 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform bool bval, layout(offset=16 ) uniform 4-component vector of bool bval4, layout(offset=32 ) uniform int ival, layout(offset=48 ) uniform 4-component vector of int ival4, layout(offset=64 ) uniform float fval, layout(offset=80 ) uniform 4-component vector of float fval4}) +0:16 Constant: +0:16 3 (const uint) +0:16 fval4: direct index for structure (layout(offset=80 ) uniform 4-component vector of float) +0:16 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform bool bval, layout(offset=16 ) uniform 4-component vector of bool bval4, layout(offset=32 ) uniform int ival, layout(offset=48 ) uniform 4-component vector of int ival4, layout(offset=64 ) uniform float fval, layout(offset=80 ) uniform 4-component vector of float fval4}) +0:16 Constant: +0:16 5 (const uint) +0:18 mod (temp float) +0:18 Convert bool to float (temp float) +0:18 bval: direct index for structure (layout(offset=0 ) uniform bool) +0:18 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform bool bval, layout(offset=16 ) uniform 4-component vector of bool bval4, layout(offset=32 ) uniform int ival, layout(offset=48 ) uniform 4-component vector of int ival4, layout(offset=64 ) uniform float fval, layout(offset=80 ) uniform 4-component vector of float fval4}) +0:18 Constant: +0:18 0 (const uint) +0:18 fval: direct index for structure (layout(offset=64 ) uniform float) +0:18 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform bool bval, layout(offset=16 ) uniform 4-component vector of bool bval4, layout(offset=32 ) uniform int ival, layout(offset=48 ) uniform 4-component vector of int ival4, layout(offset=64 ) uniform float fval, layout(offset=80 ) uniform 4-component vector of float fval4}) +0:18 Constant: +0:18 4 (const uint) +0:19 mod (temp 4-component vector of float) +0:19 Convert bool to float (temp 4-component vector of float) +0:19 bval4: direct index for structure (layout(offset=16 ) uniform 4-component vector of bool) +0:19 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform bool bval, layout(offset=16 ) uniform 4-component vector of bool bval4, layout(offset=32 ) uniform int ival, layout(offset=48 ) uniform 4-component vector of int ival4, layout(offset=64 ) uniform float fval, layout(offset=80 ) uniform 4-component vector of float fval4}) +0:19 Constant: +0:19 1 (const uint) +0:19 fval4: direct index for structure (layout(offset=80 ) uniform 4-component vector of float) +0:19 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform bool bval, layout(offset=16 ) uniform 4-component vector of bool bval4, layout(offset=32 ) uniform int ival, layout(offset=48 ) uniform 4-component vector of int ival4, layout(offset=64 ) uniform float fval, layout(offset=80 ) uniform 4-component vector of float fval4}) +0:19 Constant: +0:19 5 (const uint) +0:21 Sequence +0:21 move second child to first child (temp int) +0:21 'l_int' (temp int) +0:21 Constant: +0:21 1 (const int) +0:22 mod second child into first child (temp int) +0:22 'l_int' (temp int) +0:22 Convert float to int (temp int) +0:22 fval: direct index for structure (layout(offset=64 ) uniform float) +0:22 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform bool bval, layout(offset=16 ) uniform 4-component vector of bool bval4, layout(offset=32 ) uniform int ival, layout(offset=48 ) uniform 4-component vector of int ival4, layout(offset=64 ) uniform float fval, layout(offset=80 ) uniform 4-component vector of float fval4}) +0:22 Constant: +0:22 4 (const uint) +0:25 move second child to first child (temp 4-component vector of float) +0:25 Color: direct index for structure (temp 4-component vector of float) +0:25 'psout' (temp structure{temp 4-component vector of float Color}) +0:25 Constant: +0:25 0 (const int) +0:25 Constant: +0:25 0.000000 +0:25 0.000000 +0:25 0.000000 +0:25 0.000000 +0:26 Sequence +0:26 Sequence +0:26 move second child to first child (temp 4-component vector of float) +0:? 'Color' (layout(location=0 ) out 4-component vector of float) +0:26 Color: direct index for structure (temp 4-component vector of float) +0:26 'psout' (temp structure{temp 4-component vector of float Color}) +0:26 Constant: +0:26 0 (const int) +0:26 Branch: Return +0:? Linker Objects +0:? 'Color' (layout(location=0 ) out 4-component vector of float) +0:? 'anon@0' (uniform block{layout(offset=0 ) uniform bool bval, layout(offset=16 ) uniform 4-component vector of bool bval4, layout(offset=32 ) uniform int ival, layout(offset=48 ) uniform 4-component vector of int ival4, layout(offset=64 ) uniform float fval, layout(offset=80 ) uniform 4-component vector of float fval4}) + + +Linked fragment stage: + + +Shader version: 450 +gl_FragCoord origin is upper left +0:? Sequence +0:14 Function Definition: main( (temp structure{temp 4-component vector of float Color}) +0:14 Function Parameters: +0:? Sequence +0:15 mod (temp float) +0:15 Convert int to float (temp float) +0:15 ival: direct index for structure (layout(offset=32 ) uniform int) +0:15 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform bool bval, layout(offset=16 ) uniform 4-component vector of bool bval4, layout(offset=32 ) uniform int ival, layout(offset=48 ) uniform 4-component vector of int ival4, layout(offset=64 ) uniform float fval, layout(offset=80 ) uniform 4-component vector of float fval4}) +0:15 Constant: +0:15 2 (const uint) +0:15 fval: direct index for structure (layout(offset=64 ) uniform float) +0:15 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform bool bval, layout(offset=16 ) uniform 4-component vector of bool bval4, layout(offset=32 ) uniform int ival, layout(offset=48 ) uniform 4-component vector of int ival4, layout(offset=64 ) uniform float fval, layout(offset=80 ) uniform 4-component vector of float fval4}) +0:15 Constant: +0:15 4 (const uint) +0:16 mod (temp 4-component vector of float) +0:16 Convert int to float (temp 4-component vector of float) +0:16 ival4: direct index for structure (layout(offset=48 ) uniform 4-component vector of int) +0:16 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform bool bval, layout(offset=16 ) uniform 4-component vector of bool bval4, layout(offset=32 ) uniform int ival, layout(offset=48 ) uniform 4-component vector of int ival4, layout(offset=64 ) uniform float fval, layout(offset=80 ) uniform 4-component vector of float fval4}) +0:16 Constant: +0:16 3 (const uint) +0:16 fval4: direct index for structure (layout(offset=80 ) uniform 4-component vector of float) +0:16 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform bool bval, layout(offset=16 ) uniform 4-component vector of bool bval4, layout(offset=32 ) uniform int ival, layout(offset=48 ) uniform 4-component vector of int ival4, layout(offset=64 ) uniform float fval, layout(offset=80 ) uniform 4-component vector of float fval4}) +0:16 Constant: +0:16 5 (const uint) +0:18 mod (temp float) +0:18 Convert bool to float (temp float) +0:18 bval: direct index for structure (layout(offset=0 ) uniform bool) +0:18 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform bool bval, layout(offset=16 ) uniform 4-component vector of bool bval4, layout(offset=32 ) uniform int ival, layout(offset=48 ) uniform 4-component vector of int ival4, layout(offset=64 ) uniform float fval, layout(offset=80 ) uniform 4-component vector of float fval4}) +0:18 Constant: +0:18 0 (const uint) +0:18 fval: direct index for structure (layout(offset=64 ) uniform float) +0:18 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform bool bval, layout(offset=16 ) uniform 4-component vector of bool bval4, layout(offset=32 ) uniform int ival, layout(offset=48 ) uniform 4-component vector of int ival4, layout(offset=64 ) uniform float fval, layout(offset=80 ) uniform 4-component vector of float fval4}) +0:18 Constant: +0:18 4 (const uint) +0:19 mod (temp 4-component vector of float) +0:19 Convert bool to float (temp 4-component vector of float) +0:19 bval4: direct index for structure (layout(offset=16 ) uniform 4-component vector of bool) +0:19 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform bool bval, layout(offset=16 ) uniform 4-component vector of bool bval4, layout(offset=32 ) uniform int ival, layout(offset=48 ) uniform 4-component vector of int ival4, layout(offset=64 ) uniform float fval, layout(offset=80 ) uniform 4-component vector of float fval4}) +0:19 Constant: +0:19 1 (const uint) +0:19 fval4: direct index for structure (layout(offset=80 ) uniform 4-component vector of float) +0:19 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform bool bval, layout(offset=16 ) uniform 4-component vector of bool bval4, layout(offset=32 ) uniform int ival, layout(offset=48 ) uniform 4-component vector of int ival4, layout(offset=64 ) uniform float fval, layout(offset=80 ) uniform 4-component vector of float fval4}) +0:19 Constant: +0:19 5 (const uint) +0:21 Sequence +0:21 move second child to first child (temp int) +0:21 'l_int' (temp int) +0:21 Constant: +0:21 1 (const int) +0:22 mod second child into first child (temp int) +0:22 'l_int' (temp int) +0:22 Convert float to int (temp int) +0:22 fval: direct index for structure (layout(offset=64 ) uniform float) +0:22 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform bool bval, layout(offset=16 ) uniform 4-component vector of bool bval4, layout(offset=32 ) uniform int ival, layout(offset=48 ) uniform 4-component vector of int ival4, layout(offset=64 ) uniform float fval, layout(offset=80 ) uniform 4-component vector of float fval4}) +0:22 Constant: +0:22 4 (const uint) +0:25 move second child to first child (temp 4-component vector of float) +0:25 Color: direct index for structure (temp 4-component vector of float) +0:25 'psout' (temp structure{temp 4-component vector of float Color}) +0:25 Constant: +0:25 0 (const int) +0:25 Constant: +0:25 0.000000 +0:25 0.000000 +0:25 0.000000 +0:25 0.000000 +0:26 Sequence +0:26 Sequence +0:26 move second child to first child (temp 4-component vector of float) +0:? 'Color' (layout(location=0 ) out 4-component vector of float) +0:26 Color: direct index for structure (temp 4-component vector of float) +0:26 'psout' (temp structure{temp 4-component vector of float Color}) +0:26 Constant: +0:26 0 (const int) +0:26 Branch: Return +0:? Linker Objects +0:? 'Color' (layout(location=0 ) out 4-component vector of float) +0:? 'anon@0' (uniform block{layout(offset=0 ) uniform bool bval, layout(offset=16 ) uniform 4-component vector of bool bval4, layout(offset=32 ) uniform int ival, layout(offset=48 ) uniform 4-component vector of int ival4, layout(offset=64 ) uniform float fval, layout(offset=80 ) uniform 4-component vector of float fval4}) + +// Module Version 10000 +// Generated by (magic number): 80001 +// Id's are bound by 78 + + Capability Shader + 1: ExtInstImport "GLSL.std.450" + MemoryModel Logical GLSL450 + EntryPoint Fragment 4 "main" 74 + ExecutionMode 4 OriginUpperLeft + Name 4 "main" + Name 12 "$Global" + MemberName 12($Global) 0 "bval" + MemberName 12($Global) 1 "bval4" + MemberName 12($Global) 2 "ival" + MemberName 12($Global) 3 "ival4" + MemberName 12($Global) 4 "fval" + MemberName 12($Global) 5 "fval4" + Name 14 "" + Name 62 "l_int" + Name 68 "PS_OUTPUT" + MemberName 68(PS_OUTPUT) 0 "Color" + Name 70 "psout" + Name 74 "Color" + MemberDecorate 12($Global) 0 Offset 0 + MemberDecorate 12($Global) 1 Offset 16 + MemberDecorate 12($Global) 2 Offset 32 + MemberDecorate 12($Global) 3 Offset 48 + MemberDecorate 12($Global) 4 Offset 64 + MemberDecorate 12($Global) 5 Offset 80 + Decorate 12($Global) Block + Decorate 14 DescriptorSet 0 + Decorate 74(Color) Location 0 + 2: TypeVoid + 3: TypeFunction 2 + 6: TypeInt 32 0 + 7: TypeVector 6(int) 4 + 8: TypeInt 32 1 + 9: TypeVector 8(int) 4 + 10: TypeFloat 32 + 11: TypeVector 10(float) 4 + 12($Global): TypeStruct 6(int) 7(ivec4) 8(int) 9(ivec4) 10(float) 11(fvec4) + 13: TypePointer Uniform 12($Global) + 14: 13(ptr) Variable Uniform + 15: 8(int) Constant 2 + 16: TypePointer Uniform 8(int) + 20: 8(int) Constant 4 + 21: TypePointer Uniform 10(float) + 25: 8(int) Constant 3 + 26: TypePointer Uniform 9(ivec4) + 30: 8(int) Constant 5 + 31: TypePointer Uniform 11(fvec4) + 35: 8(int) Constant 0 + 36: TypePointer Uniform 6(int) + 39: TypeBool + 40: 6(int) Constant 0 + 42: 10(float) Constant 0 + 43: 10(float) Constant 1065353216 + 48: 8(int) Constant 1 + 49: TypePointer Uniform 7(ivec4) + 52: TypeVector 39(bool) 4 + 53: 7(ivec4) ConstantComposite 40 40 40 40 + 55: 11(fvec4) ConstantComposite 42 42 42 42 + 56: 11(fvec4) ConstantComposite 43 43 43 43 + 61: TypePointer Function 8(int) + 68(PS_OUTPUT): TypeStruct 11(fvec4) + 69: TypePointer Function 68(PS_OUTPUT) + 71: TypePointer Function 11(fvec4) + 73: TypePointer Output 11(fvec4) + 74(Color): 73(ptr) Variable Output + 4(main): 2 Function None 3 + 5: Label + 62(l_int): 61(ptr) Variable Function + 70(psout): 69(ptr) Variable Function + 17: 16(ptr) AccessChain 14 15 + 18: 8(int) Load 17 + 19: 10(float) ConvertSToF 18 + 22: 21(ptr) AccessChain 14 20 + 23: 10(float) Load 22 + 24: 10(float) FMod 19 23 + 27: 26(ptr) AccessChain 14 25 + 28: 9(ivec4) Load 27 + 29: 11(fvec4) ConvertSToF 28 + 32: 31(ptr) AccessChain 14 30 + 33: 11(fvec4) Load 32 + 34: 11(fvec4) FMod 29 33 + 37: 36(ptr) AccessChain 14 35 + 38: 6(int) Load 37 + 41: 39(bool) INotEqual 38 40 + 44: 10(float) Select 41 43 42 + 45: 21(ptr) AccessChain 14 20 + 46: 10(float) Load 45 + 47: 10(float) FMod 44 46 + 50: 49(ptr) AccessChain 14 48 + 51: 7(ivec4) Load 50 + 54: 52(bvec4) INotEqual 51 53 + 57: 11(fvec4) Select 54 56 55 + 58: 31(ptr) AccessChain 14 30 + 59: 11(fvec4) Load 58 + 60: 11(fvec4) FMod 57 59 + Store 62(l_int) 48 + 63: 21(ptr) AccessChain 14 20 + 64: 10(float) Load 63 + 65: 8(int) ConvertFToS 64 + 66: 8(int) Load 62(l_int) + 67: 8(int) SMod 66 65 + Store 62(l_int) 67 + 72: 71(ptr) AccessChain 70(psout) 35 + Store 72 55 + 75: 71(ptr) AccessChain 70(psout) 35 + 76: 11(fvec4) Load 75 + Store 74(Color) 76 + Return + FunctionEnd diff --git a/Test/hlsl.logical.binary.frag b/Test/hlsl.logical.binary.frag new file mode 100644 index 00000000..06bc9f2f --- /dev/null +++ b/Test/hlsl.logical.binary.frag @@ -0,0 +1,21 @@ +struct PS_OUTPUT +{ + float4 Color : SV_Target0; +}; + +uniform int ival; +uniform int4 ival4; +uniform float fval; +uniform float4 fval4; + +PS_OUTPUT main() +{ + if (ival && fval); + if (ival || fval); + + PS_OUTPUT psout; + psout.Color = 1.0; + return psout; +} + + diff --git a/Test/hlsl.logical.unary.frag b/Test/hlsl.logical.unary.frag new file mode 100644 index 00000000..cbcb3bfc --- /dev/null +++ b/Test/hlsl.logical.unary.frag @@ -0,0 +1,29 @@ +struct PS_OUTPUT +{ + float4 Color : SV_Target0; +}; + +uniform int ival; +uniform int4 ival4; +uniform float fval; +uniform float4 fval4; + +PS_OUTPUT main() +{ + !ival; // scalar int + !ival4; // vector int + + !fval; // scalar float + !fval4; // vector float + + if (ival); + if (fval); + if (!ival); + if (!fval); + + PS_OUTPUT psout; + psout.Color = 1.0; + return psout; +} + + diff --git a/Test/hlsl.promote.binary.frag b/Test/hlsl.promote.binary.frag new file mode 100644 index 00000000..0203bed9 --- /dev/null +++ b/Test/hlsl.promote.binary.frag @@ -0,0 +1,28 @@ +struct PS_OUTPUT +{ + float4 Color : SV_Target0; +}; + +uniform bool bval; +uniform bool4 bval4; +uniform int ival; +uniform int4 ival4; +uniform float fval; +uniform float4 fval4; + +PS_OUTPUT main() +{ + ival % fval; + ival4 % fval4; + + bval % fval; + bval4 % fval4; + + int l_int = 1; + l_int %= fval; + + PS_OUTPUT psout; + psout.Color = 0; + return psout; +} + diff --git a/glslang/Include/intermediate.h b/glslang/Include/intermediate.h index 27c798d1..fc267543 100644 --- a/glslang/Include/intermediate.h +++ b/glslang/Include/intermediate.h @@ -52,6 +52,8 @@ namespace glslang { +class TIntermediate; + // // Operators used by the high-level (parse tree) representation. // @@ -845,7 +847,7 @@ public: virtual TIntermOperator* getAsOperator() { return this; } virtual const TIntermOperator* getAsOperator() const { return this; } TOperator getOp() const { return op; } - virtual bool promote() { return true; } + virtual bool promote(TIntermediate&) { return true; } bool modifiesState() const; bool isConstructor() const; bool isTexture() const { return op > EOpTextureGuardBegin && op < EOpTextureGuardEnd; } @@ -1024,7 +1026,7 @@ public: virtual TIntermTyped* getRight() const { return right; } virtual TIntermBinary* getAsBinaryNode() { return this; } virtual const TIntermBinary* getAsBinaryNode() const { return this; } - virtual bool promote(); + virtual bool promote(TIntermediate&); virtual void updatePrecision(); protected: TIntermTyped* left; @@ -1044,7 +1046,7 @@ public: virtual const TIntermTyped* getOperand() const { return operand; } virtual TIntermUnary* getAsUnaryNode() { return this; } virtual const TIntermUnary* getAsUnaryNode() const { return this; } - virtual bool promote(); + virtual bool promote(TIntermediate&); virtual void updatePrecision(); protected: TIntermTyped* operand; diff --git a/glslang/MachineIndependent/Intermediate.cpp b/glslang/MachineIndependent/Intermediate.cpp index 8e80bbd2..1441c55b 100644 --- a/glslang/MachineIndependent/Intermediate.cpp +++ b/glslang/MachineIndependent/Intermediate.cpp @@ -137,7 +137,7 @@ TIntermTyped* TIntermediate::addBinaryMath(TOperator op, TIntermTyped* left, TIn // one and promote it to the right type. // TIntermBinary* node = addBinaryNode(op, left, right, loc); - if (! node->promote()) + if (! node->promote(*this)) return 0; node->updatePrecision(); @@ -246,7 +246,7 @@ TIntermTyped* TIntermediate::addAssign(TOperator op, TIntermTyped* left, TInterm // build the node TIntermBinary* node = addBinaryNode(op, left, right, loc); - if (! node->promote()) + if (! node->promote(*this)) return nullptr; node->updatePrecision(); @@ -282,6 +282,10 @@ TIntermTyped* TIntermediate::addUnaryMath(TOperator op, TIntermTyped* child, TSo switch (op) { case EOpLogicalNot: + if (source == EShSourceHlsl) { + break; // HLSL can promote logical not + } + if (child->getType().getBasicType() != EbtBool || child->getType().isMatrix() || child->getType().isArray() || child->getType().isVector()) { return 0; } @@ -349,7 +353,7 @@ TIntermTyped* TIntermediate::addUnaryMath(TOperator op, TIntermTyped* child, TSo // TIntermUnary* node = addUnaryNode(op, child, loc); - if (! node->promote()) + if (! node->promote(*this)) return 0; node->updatePrecision(); @@ -555,6 +559,10 @@ TIntermTyped* TIntermediate::addConversion(TOperator op, const TType& type, TInt case EOpAndAssign: case EOpInclusiveOrAssign: case EOpExclusiveOrAssign: + case EOpLogicalNot: + case EOpLogicalAnd: + case EOpLogicalOr: + case EOpLogicalXor: case EOpFunctionCall: case EOpReturn: @@ -841,6 +849,10 @@ bool TIntermediate::canImplicitlyPromote(TBasicType from, TBasicType to, TOperat case EOpModAssign: // ... case EOpReturn: // function returns can also perform arbitrary conversions case EOpFunctionCall: // conversion of a calling parameter + case EOpLogicalNot: + case EOpLogicalAnd: + case EOpLogicalOr: + case EOpLogicalXor: return true; default: break; @@ -873,6 +885,8 @@ bool TIntermediate::canImplicitlyPromote(TBasicType from, TBasicType to, TOperat case EbtFloat16: #endif return true; + case EbtBool: + return (source == EShSourceHlsl); default: return false; } @@ -1716,13 +1730,20 @@ bool TIntermOperator::isConstructor() const // // Returns false in nothing makes sense. // -bool TIntermUnary::promote() +bool TIntermUnary::promote(TIntermediate& intermediate) { switch (op) { case EOpLogicalNot: - if (operand->getBasicType() != EbtBool) + // Convert operand to a boolean type + if (operand->getBasicType() != EbtBool) { + // Add constructor to boolean type. If that fails, we can't do it, so return false. + TIntermTyped* converted = intermediate.convertToBasicType(op, EbtBool, operand); + if (converted == nullptr) + return false; - return false; + // Use the result of converting the node to a bool. + operand = converted; + } break; case EOpBitwiseNot: if (operand->getBasicType() != EbtInt && @@ -1774,13 +1795,31 @@ void TIntermUnary::updatePrecision() } } +// If it is not already, convert this node to the given basic type. +TIntermTyped* TIntermediate::convertToBasicType(TOperator op, TBasicType basicType, TIntermTyped* node) const +{ + if (node == nullptr) + return nullptr; + + // It's already this basic type: nothing needs to be done, so use the node directly. + if (node->getBasicType() == basicType) + return node; + + const TType& type = node->getType(); + const TType newType(basicType, type.getQualifier().storage, + type.getVectorSize(), type.getMatrixCols(), type.getMatrixRows(), type.isVector()); + + // Add constructor to the right vectorness of the right type. If that fails, we can't do it, so return nullptr. + return addConversion(op, newType, node); +} + // // Establishes the type of the resultant operation, as well as // makes the operator the correct one for the operands. // // Returns false if operator can't work on operands. // -bool TIntermBinary::promote() +bool TIntermBinary::promote(TIntermediate& intermediate) { // Arrays and structures have to be exact matches. if ((left->isArray() || right->isArray() || left->getBasicType() == EbtStruct || right->getBasicType() == EbtStruct) @@ -1843,6 +1882,15 @@ bool TIntermBinary::promote() case EOpLogicalAnd: case EOpLogicalOr: case EOpLogicalXor: + if (intermediate.getSource() == EShSourceHlsl) { + TIntermTyped* convertedL = intermediate.convertToBasicType(op, EbtBool, left); + TIntermTyped* convertedR = intermediate.convertToBasicType(op, EbtBool, right); + if (convertedL == nullptr || convertedR == nullptr) + return false; + left = convertedL; + right = convertedR; + } + // logical ops operate only on scalar Booleans and will promote to scalar Boolean. if (left->getBasicType() != EbtBool || left->isVector() || left->isMatrix()) return false; @@ -1864,6 +1912,9 @@ bool TIntermBinary::promote() case EOpAndAssign: case EOpInclusiveOrAssign: case EOpExclusiveOrAssign: + if (intermediate.getSource() == EShSourceHlsl) + break; + // Check for integer-only operands. if ((left->getBasicType() != EbtInt && left->getBasicType() != EbtUint && left->getBasicType() != EbtInt64 && left->getBasicType() != EbtUint64) || @@ -2051,6 +2102,7 @@ bool TIntermBinary::promote() case EOpAndAssign: case EOpInclusiveOrAssign: case EOpExclusiveOrAssign: + if ((left->isMatrix() && right->isVector()) || (left->isVector() && right->isMatrix()) || left->getBasicType() != right->getBasicType()) diff --git a/glslang/MachineIndependent/localintermediate.h b/glslang/MachineIndependent/localintermediate.h index aae22ecc..c8742cb4 100644 --- a/glslang/MachineIndependent/localintermediate.h +++ b/glslang/MachineIndependent/localintermediate.h @@ -246,6 +246,9 @@ public: TIntermUnary* addUnaryNode(TOperator op, TIntermTyped* child, TSourceLoc) const; TIntermUnary* addUnaryNode(TOperator op, TIntermTyped* child, TSourceLoc, const TType&) const; + // Add conversion from node's type to given basic type. + TIntermTyped* convertToBasicType(TOperator op, TBasicType basicType, TIntermTyped* node) const; + // Constant folding (in Constant.cpp) TIntermTyped* fold(TIntermAggregate* aggrNode); TIntermTyped* foldConstructor(TIntermAggregate* aggrNode); @@ -390,7 +393,7 @@ protected: bool userOutputUsed() const; static int getBaseAlignmentScalar(const TType&, int& size); bool isSpecializationOperation(const TIntermOperator&) const; - + const EShLanguage language; // stage, known at construction time EShSource source; // source language, known a bit later std::string entryPointName; diff --git a/gtests/Hlsl.FromFile.cpp b/gtests/Hlsl.FromFile.cpp index b50816a1..9c1a3eed 100644 --- a/gtests/Hlsl.FromFile.cpp +++ b/gtests/Hlsl.FromFile.cpp @@ -142,6 +142,8 @@ INSTANTIATE_TEST_CASE_P( {"hlsl.load.rwtexture.array.dx10.frag", "main"}, {"hlsl.load.offset.dx10.frag", "main"}, {"hlsl.load.offsetarray.dx10.frag", "main"}, + {"hlsl.logical.unary.frag", "main"}, + {"hlsl.logical.binary.frag", "main"}, {"hlsl.multiEntry.vert", "RealEntrypoint"}, {"hlsl.multiReturn.frag", "main"}, {"hlsl.matrixindex.frag", "main"}, @@ -149,6 +151,7 @@ INSTANTIATE_TEST_CASE_P( {"hlsl.overload.frag", "PixelShaderFunction"}, {"hlsl.pp.line.frag", "main"}, {"hlsl.precise.frag", "main"}, + {"hlsl.promote.binary.frag", "main"}, {"hlsl.promotions.frag", "main"}, {"hlsl.rw.bracket.frag", "main"}, {"hlsl.rw.scalar.bracket.frag", "main"}, @@ -179,7 +182,7 @@ INSTANTIATE_TEST_CASE_P( {"hlsl.samplelevel.basic.dx10.vert", "main"}, {"hlsl.samplelevel.offset.dx10.frag", "main"}, {"hlsl.samplelevel.offsetarray.dx10.frag", "main"}, - { "hlsl.sample.sub-vec4.dx10.frag", "main"}, + {"hlsl.sample.sub-vec4.dx10.frag", "main"}, {"hlsl.semicolons.frag", "main"}, {"hlsl.shapeConv.frag", "main"}, {"hlsl.shapeConvRet.frag", "main"}, diff --git a/hlsl/hlslGrammar.cpp b/hlsl/hlslGrammar.cpp index 7766f857..89465bff 100755 --- a/hlsl/hlslGrammar.cpp +++ b/hlsl/hlslGrammar.cpp @@ -1935,7 +1935,10 @@ bool HlslGrammar::acceptUnaryExpression(TIntermTyped*& node) return true; node = intermediate.addUnaryMath(unaryOp, node, loc); - node = parseContext.handleLvalue(loc, "unary operator", node); + + // These unary ops require lvalues + if (unaryOp == EOpPreIncrement || unaryOp == EOpPreDecrement) + node = parseContext.handleLvalue(loc, "unary operator", node); return node != nullptr; } diff --git a/hlsl/hlslParseables.cpp b/hlsl/hlslParseables.cpp index d33cfb89..7ab159dc 100755 --- a/hlsl/hlslParseables.cpp +++ b/hlsl/hlslParseables.cpp @@ -245,7 +245,6 @@ glslang::TString& AppendTypeName(glslang::TString& s, const char* argOrder, cons char order = *argOrder; if (UseHlslTypes) { - // TODO: handle sub-vec4 returns switch (type) { case '-': s += "void"; break; case 'F': s += "float"; break; @@ -832,8 +831,6 @@ void TBuiltInParseablesHlsl::initialize(int /*version*/, EProfile /*profile*/, c { "GatherCmpAlpha", /* O-4 */ "V4", nullptr, "%@,S,V,S,V,,,", "FIU,s,F,,I,,,", EShLangAll }, { "GatherCmpAlpha", /* O-4, status */"V4", nullptr, "%@,S,V,S,V,,,,S","FIU,s,F,,I,,,,U",EShLangAll }, - // TODO: Cmp forms - // Mark end of list, since we want to avoid a range-based for, as some compilers don't handle it yet. { nullptr, nullptr, nullptr, nullptr, nullptr, 0 }, }; -- cgit v1.2.3 From bb5c02fd23768adc51fe0ae72035e43120bc8200 Mon Sep 17 00:00:00 2001 From: David Neto Date: Wed, 19 Oct 2016 10:16:29 -0400 Subject: Add missing guard to code that uses AMD extensions Otherwise compilation fails when ENABLED_AMD_EXTENSIONS is off. --- SPIRV/GlslangToSpv.cpp | 2 ++ 1 file changed, 2 insertions(+) diff --git a/SPIRV/GlslangToSpv.cpp b/SPIRV/GlslangToSpv.cpp index 49bb0a17..3e0ad4f1 100755 --- a/SPIRV/GlslangToSpv.cpp +++ b/SPIRV/GlslangToSpv.cpp @@ -4133,10 +4133,12 @@ spv::Id TGlslangToSpvTraverser::createInvocationsOperation(glslang::TOperator op builder.addCapability(spv::CapabilitySubgroupBallotKHR); } else { builder.addCapability(spv::CapabilityGroups); +#ifdef AMD_EXTENSIONS if (op == glslang::EOpMinInvocationsNonUniform || op == glslang::EOpMaxInvocationsNonUniform || op == glslang::EOpAddInvocationsNonUniform) builder.addExtension(spv::E_SPV_AMD_shader_ballot); +#endif spvGroupOperands.push_back(builder.makeUintConstant(spv::ScopeSubgroup)); #ifdef AMD_EXTENSIONS -- cgit v1.2.3 From 22322361d69d08034eea769a2761038670918124 Mon Sep 17 00:00:00 2001 From: steve-lunarg Date: Wed, 19 Oct 2016 10:15:25 -0600 Subject: HLSL: phase 4 of rwtexture support: add image atomics This PR will turn Interlocked* intrinsics using rwtexture or rwbuffer object as the first parameter into the proper OpImageAtomic* operations. --- Test/baseResults/hlsl.rw.atomics.frag.out | 5261 +++++++++++++++++++++++++++++ Test/hlsl.rw.atomics.frag | 244 ++ gtests/Hlsl.FromFile.cpp | 1 + hlsl/hlslParseHelper.cpp | 94 +- 4 files changed, 5574 insertions(+), 26 deletions(-) create mode 100644 Test/baseResults/hlsl.rw.atomics.frag.out create mode 100644 Test/hlsl.rw.atomics.frag diff --git a/Test/baseResults/hlsl.rw.atomics.frag.out b/Test/baseResults/hlsl.rw.atomics.frag.out new file mode 100644 index 00000000..22716ef1 --- /dev/null +++ b/Test/baseResults/hlsl.rw.atomics.frag.out @@ -0,0 +1,5261 @@ +hlsl.rw.atomics.frag +Shader version: 450 +gl_FragCoord origin is upper left +0:? Sequence +0:45 Function Definition: main( (temp structure{temp 4-component vector of float Color}) +0:45 Function Parameters: +0:? Sequence +0:50 imageAtomicAdd (temp int) +0:50 'g_tTex1di1' (layout(r32i ) uniform iimage1D) +0:50 i1: direct index for structure (layout(offset=36 ) uniform int) +0:50 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:50 Constant: +0:50 5 (const uint) +0:50 i1b: direct index for structure (layout(offset=60 ) uniform int) +0:50 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:50 Constant: +0:50 8 (const uint) +0:51 move second child to first child (temp int) +0:51 'out_i1' (temp int) +0:51 imageAtomicAdd (temp int) +0:51 'g_tTex1di1' (layout(r32i ) uniform iimage1D) +0:51 i1: direct index for structure (layout(offset=36 ) uniform int) +0:51 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:51 Constant: +0:51 5 (const uint) +0:51 i1: direct index for structure (layout(offset=36 ) uniform int) +0:51 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:51 Constant: +0:51 5 (const uint) +0:52 imageAtomicAnd (temp int) +0:52 'g_tTex1di1' (layout(r32i ) uniform iimage1D) +0:52 i1: direct index for structure (layout(offset=36 ) uniform int) +0:52 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:52 Constant: +0:52 5 (const uint) +0:52 i1b: direct index for structure (layout(offset=60 ) uniform int) +0:52 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:52 Constant: +0:52 8 (const uint) +0:53 move second child to first child (temp int) +0:53 'out_i1' (temp int) +0:53 imageAtomicAnd (temp int) +0:53 'g_tTex1di1' (layout(r32i ) uniform iimage1D) +0:53 i1: direct index for structure (layout(offset=36 ) uniform int) +0:53 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:53 Constant: +0:53 5 (const uint) +0:53 i1: direct index for structure (layout(offset=36 ) uniform int) +0:53 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:53 Constant: +0:53 5 (const uint) +0:54 move second child to first child (temp int) +0:54 'out_i1' (temp int) +0:54 imageAtomicCompSwap (temp int) +0:54 'g_tTex1di1' (layout(r32i ) uniform iimage1D) +0:54 i1: direct index for structure (layout(offset=36 ) uniform int) +0:54 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:54 Constant: +0:54 5 (const uint) +0:54 i1b: direct index for structure (layout(offset=60 ) uniform int) +0:54 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:54 Constant: +0:54 8 (const uint) +0:54 i1c: direct index for structure (layout(offset=64 ) uniform int) +0:54 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:54 Constant: +0:54 9 (const uint) +0:55 move second child to first child (temp int) +0:55 'out_i1' (temp int) +0:55 imageAtomicExchange (temp int) +0:55 'g_tTex1di1' (layout(r32i ) uniform iimage1D) +0:55 i1: direct index for structure (layout(offset=36 ) uniform int) +0:55 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:55 Constant: +0:55 5 (const uint) +0:55 i1: direct index for structure (layout(offset=36 ) uniform int) +0:55 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:55 Constant: +0:55 5 (const uint) +0:56 imageAtomicMax (temp int) +0:56 'g_tTex1di1' (layout(r32i ) uniform iimage1D) +0:56 i1: direct index for structure (layout(offset=36 ) uniform int) +0:56 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:56 Constant: +0:56 5 (const uint) +0:56 i1b: direct index for structure (layout(offset=60 ) uniform int) +0:56 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:56 Constant: +0:56 8 (const uint) +0:57 move second child to first child (temp int) +0:57 'out_i1' (temp int) +0:57 imageAtomicMax (temp int) +0:57 'g_tTex1di1' (layout(r32i ) uniform iimage1D) +0:57 i1: direct index for structure (layout(offset=36 ) uniform int) +0:57 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:57 Constant: +0:57 5 (const uint) +0:57 i1: direct index for structure (layout(offset=36 ) uniform int) +0:57 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:57 Constant: +0:57 5 (const uint) +0:58 imageAtomicMin (temp int) +0:58 'g_tTex1di1' (layout(r32i ) uniform iimage1D) +0:58 i1: direct index for structure (layout(offset=36 ) uniform int) +0:58 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:58 Constant: +0:58 5 (const uint) +0:58 i1b: direct index for structure (layout(offset=60 ) uniform int) +0:58 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:58 Constant: +0:58 8 (const uint) +0:59 move second child to first child (temp int) +0:59 'out_i1' (temp int) +0:59 imageAtomicMin (temp int) +0:59 'g_tTex1di1' (layout(r32i ) uniform iimage1D) +0:59 i1: direct index for structure (layout(offset=36 ) uniform int) +0:59 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:59 Constant: +0:59 5 (const uint) +0:59 i1: direct index for structure (layout(offset=36 ) uniform int) +0:59 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:59 Constant: +0:59 5 (const uint) +0:60 imageAtomicOr (temp int) +0:60 'g_tTex1di1' (layout(r32i ) uniform iimage1D) +0:60 i1: direct index for structure (layout(offset=36 ) uniform int) +0:60 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:60 Constant: +0:60 5 (const uint) +0:60 i1b: direct index for structure (layout(offset=60 ) uniform int) +0:60 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:60 Constant: +0:60 8 (const uint) +0:61 move second child to first child (temp int) +0:61 'out_i1' (temp int) +0:61 imageAtomicOr (temp int) +0:61 'g_tTex1di1' (layout(r32i ) uniform iimage1D) +0:61 i1: direct index for structure (layout(offset=36 ) uniform int) +0:61 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:61 Constant: +0:61 5 (const uint) +0:61 i1: direct index for structure (layout(offset=36 ) uniform int) +0:61 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:61 Constant: +0:61 5 (const uint) +0:62 imageAtomicXor (temp int) +0:62 'g_tTex1di1' (layout(r32i ) uniform iimage1D) +0:62 i1: direct index for structure (layout(offset=36 ) uniform int) +0:62 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:62 Constant: +0:62 5 (const uint) +0:62 i1b: direct index for structure (layout(offset=60 ) uniform int) +0:62 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:62 Constant: +0:62 8 (const uint) +0:63 move second child to first child (temp int) +0:63 'out_i1' (temp int) +0:63 imageAtomicXor (temp int) +0:63 'g_tTex1di1' (layout(r32i ) uniform iimage1D) +0:63 i1: direct index for structure (layout(offset=36 ) uniform int) +0:63 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:63 Constant: +0:63 5 (const uint) +0:63 i1: direct index for structure (layout(offset=36 ) uniform int) +0:63 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:63 Constant: +0:63 5 (const uint) +0:66 imageAtomicAdd (temp uint) +0:66 'g_tTex1du1' (layout(r32ui ) uniform uimage1D) +0:66 u1: direct index for structure (layout(offset=0 ) uniform uint) +0:66 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:66 Constant: +0:66 0 (const uint) +0:66 u1: direct index for structure (layout(offset=0 ) uniform uint) +0:66 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:66 Constant: +0:66 0 (const uint) +0:67 move second child to first child (temp uint) +0:67 'out_u1' (temp uint) +0:67 imageAtomicAdd (temp uint) +0:67 'g_tTex1du1' (layout(r32ui ) uniform uimage1D) +0:67 u1: direct index for structure (layout(offset=0 ) uniform uint) +0:67 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:67 Constant: +0:67 0 (const uint) +0:67 u1: direct index for structure (layout(offset=0 ) uniform uint) +0:67 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:67 Constant: +0:67 0 (const uint) +0:68 imageAtomicAnd (temp uint) +0:68 'g_tTex1du1' (layout(r32ui ) uniform uimage1D) +0:68 u1: direct index for structure (layout(offset=0 ) uniform uint) +0:68 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:68 Constant: +0:68 0 (const uint) +0:68 u1: direct index for structure (layout(offset=0 ) uniform uint) +0:68 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:68 Constant: +0:68 0 (const uint) +0:69 move second child to first child (temp uint) +0:69 'out_u1' (temp uint) +0:69 imageAtomicAnd (temp uint) +0:69 'g_tTex1du1' (layout(r32ui ) uniform uimage1D) +0:69 u1: direct index for structure (layout(offset=0 ) uniform uint) +0:69 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:69 Constant: +0:69 0 (const uint) +0:69 u1: direct index for structure (layout(offset=0 ) uniform uint) +0:69 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:69 Constant: +0:69 0 (const uint) +0:70 move second child to first child (temp uint) +0:70 'out_u1' (temp uint) +0:70 imageAtomicCompSwap (temp uint) +0:70 'g_tTex1du1' (layout(r32ui ) uniform uimage1D) +0:70 u1: direct index for structure (layout(offset=0 ) uniform uint) +0:70 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:70 Constant: +0:70 0 (const uint) +0:70 u1b: direct index for structure (layout(offset=28 ) uniform uint) +0:70 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:70 Constant: +0:70 3 (const uint) +0:70 u1c: direct index for structure (layout(offset=32 ) uniform uint) +0:70 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:70 Constant: +0:70 4 (const uint) +0:71 move second child to first child (temp uint) +0:71 'out_u1' (temp uint) +0:71 imageAtomicExchange (temp uint) +0:71 'g_tTex1du1' (layout(r32ui ) uniform uimage1D) +0:71 u1: direct index for structure (layout(offset=0 ) uniform uint) +0:71 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:71 Constant: +0:71 0 (const uint) +0:71 u1: direct index for structure (layout(offset=0 ) uniform uint) +0:71 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:71 Constant: +0:71 0 (const uint) +0:72 imageAtomicMax (temp uint) +0:72 'g_tTex1du1' (layout(r32ui ) uniform uimage1D) +0:72 u1: direct index for structure (layout(offset=0 ) uniform uint) +0:72 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:72 Constant: +0:72 0 (const uint) +0:72 u1: direct index for structure (layout(offset=0 ) uniform uint) +0:72 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:72 Constant: +0:72 0 (const uint) +0:73 move second child to first child (temp uint) +0:73 'out_u1' (temp uint) +0:73 imageAtomicMax (temp uint) +0:73 'g_tTex1du1' (layout(r32ui ) uniform uimage1D) +0:73 u1: direct index for structure (layout(offset=0 ) uniform uint) +0:73 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:73 Constant: +0:73 0 (const uint) +0:73 u1: direct index for structure (layout(offset=0 ) uniform uint) +0:73 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:73 Constant: +0:73 0 (const uint) +0:74 imageAtomicMin (temp uint) +0:74 'g_tTex1du1' (layout(r32ui ) uniform uimage1D) +0:74 u1: direct index for structure (layout(offset=0 ) uniform uint) +0:74 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:74 Constant: +0:74 0 (const uint) +0:74 u1: direct index for structure (layout(offset=0 ) uniform uint) +0:74 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:74 Constant: +0:74 0 (const uint) +0:75 move second child to first child (temp uint) +0:75 'out_u1' (temp uint) +0:75 imageAtomicMin (temp uint) +0:75 'g_tTex1du1' (layout(r32ui ) uniform uimage1D) +0:75 u1: direct index for structure (layout(offset=0 ) uniform uint) +0:75 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:75 Constant: +0:75 0 (const uint) +0:75 u1: direct index for structure (layout(offset=0 ) uniform uint) +0:75 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:75 Constant: +0:75 0 (const uint) +0:76 imageAtomicOr (temp uint) +0:76 'g_tTex1du1' (layout(r32ui ) uniform uimage1D) +0:76 u1: direct index for structure (layout(offset=0 ) uniform uint) +0:76 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:76 Constant: +0:76 0 (const uint) +0:76 u1: direct index for structure (layout(offset=0 ) uniform uint) +0:76 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:76 Constant: +0:76 0 (const uint) +0:77 move second child to first child (temp uint) +0:77 'out_u1' (temp uint) +0:77 imageAtomicOr (temp uint) +0:77 'g_tTex1du1' (layout(r32ui ) uniform uimage1D) +0:77 u1: direct index for structure (layout(offset=0 ) uniform uint) +0:77 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:77 Constant: +0:77 0 (const uint) +0:77 u1: direct index for structure (layout(offset=0 ) uniform uint) +0:77 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:77 Constant: +0:77 0 (const uint) +0:78 imageAtomicXor (temp uint) +0:78 'g_tTex1du1' (layout(r32ui ) uniform uimage1D) +0:78 u1: direct index for structure (layout(offset=0 ) uniform uint) +0:78 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:78 Constant: +0:78 0 (const uint) +0:78 u1: direct index for structure (layout(offset=0 ) uniform uint) +0:78 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:78 Constant: +0:78 0 (const uint) +0:79 move second child to first child (temp uint) +0:79 'out_u1' (temp uint) +0:79 imageAtomicXor (temp uint) +0:79 'g_tTex1du1' (layout(r32ui ) uniform uimage1D) +0:79 u1: direct index for structure (layout(offset=0 ) uniform uint) +0:79 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:79 Constant: +0:79 0 (const uint) +0:79 u1: direct index for structure (layout(offset=0 ) uniform uint) +0:79 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:79 Constant: +0:79 0 (const uint) +0:82 imageAtomicAdd (temp int) +0:82 'g_tTex2di1' (layout(r32i ) uniform iimage2D) +0:82 i2: direct index for structure (layout(offset=40 ) uniform 2-component vector of int) +0:82 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:82 Constant: +0:82 6 (const uint) +0:82 i1b: direct index for structure (layout(offset=60 ) uniform int) +0:82 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:82 Constant: +0:82 8 (const uint) +0:83 move second child to first child (temp int) +0:83 'out_i1' (temp int) +0:83 imageAtomicAdd (temp int) +0:83 'g_tTex2di1' (layout(r32i ) uniform iimage2D) +0:83 i2: direct index for structure (layout(offset=40 ) uniform 2-component vector of int) +0:83 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:83 Constant: +0:83 6 (const uint) +0:83 i1: direct index for structure (layout(offset=36 ) uniform int) +0:83 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:83 Constant: +0:83 5 (const uint) +0:84 imageAtomicAnd (temp int) +0:84 'g_tTex2di1' (layout(r32i ) uniform iimage2D) +0:84 i2: direct index for structure (layout(offset=40 ) uniform 2-component vector of int) +0:84 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:84 Constant: +0:84 6 (const uint) +0:84 i1b: direct index for structure (layout(offset=60 ) uniform int) +0:84 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:84 Constant: +0:84 8 (const uint) +0:85 move second child to first child (temp int) +0:85 'out_i1' (temp int) +0:85 imageAtomicAnd (temp int) +0:85 'g_tTex2di1' (layout(r32i ) uniform iimage2D) +0:85 i2: direct index for structure (layout(offset=40 ) uniform 2-component vector of int) +0:85 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:85 Constant: +0:85 6 (const uint) +0:85 i1: direct index for structure (layout(offset=36 ) uniform int) +0:85 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:85 Constant: +0:85 5 (const uint) +0:86 move second child to first child (temp int) +0:86 'out_i1' (temp int) +0:86 imageAtomicCompSwap (temp int) +0:86 'g_tTex2di1' (layout(r32i ) uniform iimage2D) +0:86 i2: direct index for structure (layout(offset=40 ) uniform 2-component vector of int) +0:86 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:86 Constant: +0:86 6 (const uint) +0:86 i1b: direct index for structure (layout(offset=60 ) uniform int) +0:86 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:86 Constant: +0:86 8 (const uint) +0:86 i1c: direct index for structure (layout(offset=64 ) uniform int) +0:86 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:86 Constant: +0:86 9 (const uint) +0:87 move second child to first child (temp int) +0:87 'out_i1' (temp int) +0:87 imageAtomicExchange (temp int) +0:87 'g_tTex2di1' (layout(r32i ) uniform iimage2D) +0:87 i2: direct index for structure (layout(offset=40 ) uniform 2-component vector of int) +0:87 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:87 Constant: +0:87 6 (const uint) +0:87 i1: direct index for structure (layout(offset=36 ) uniform int) +0:87 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:87 Constant: +0:87 5 (const uint) +0:88 imageAtomicMax (temp int) +0:88 'g_tTex2di1' (layout(r32i ) uniform iimage2D) +0:88 i2: direct index for structure (layout(offset=40 ) uniform 2-component vector of int) +0:88 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:88 Constant: +0:88 6 (const uint) +0:88 i1b: direct index for structure (layout(offset=60 ) uniform int) +0:88 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:88 Constant: +0:88 8 (const uint) +0:89 move second child to first child (temp int) +0:89 'out_i1' (temp int) +0:89 imageAtomicMax (temp int) +0:89 'g_tTex2di1' (layout(r32i ) uniform iimage2D) +0:89 i2: direct index for structure (layout(offset=40 ) uniform 2-component vector of int) +0:89 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:89 Constant: +0:89 6 (const uint) +0:89 i1: direct index for structure (layout(offset=36 ) uniform int) +0:89 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:89 Constant: +0:89 5 (const uint) +0:90 imageAtomicMin (temp int) +0:90 'g_tTex2di1' (layout(r32i ) uniform iimage2D) +0:90 i2: direct index for structure (layout(offset=40 ) uniform 2-component vector of int) +0:90 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:90 Constant: +0:90 6 (const uint) +0:90 i1b: direct index for structure (layout(offset=60 ) uniform int) +0:90 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:90 Constant: +0:90 8 (const uint) +0:91 move second child to first child (temp int) +0:91 'out_i1' (temp int) +0:91 imageAtomicMin (temp int) +0:91 'g_tTex2di1' (layout(r32i ) uniform iimage2D) +0:91 i2: direct index for structure (layout(offset=40 ) uniform 2-component vector of int) +0:91 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:91 Constant: +0:91 6 (const uint) +0:91 i1: direct index for structure (layout(offset=36 ) uniform int) +0:91 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:91 Constant: +0:91 5 (const uint) +0:92 imageAtomicOr (temp int) +0:92 'g_tTex2di1' (layout(r32i ) uniform iimage2D) +0:92 i2: direct index for structure (layout(offset=40 ) uniform 2-component vector of int) +0:92 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:92 Constant: +0:92 6 (const uint) +0:92 i1b: direct index for structure (layout(offset=60 ) uniform int) +0:92 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:92 Constant: +0:92 8 (const uint) +0:93 move second child to first child (temp int) +0:93 'out_i1' (temp int) +0:93 imageAtomicOr (temp int) +0:93 'g_tTex2di1' (layout(r32i ) uniform iimage2D) +0:93 i2: direct index for structure (layout(offset=40 ) uniform 2-component vector of int) +0:93 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:93 Constant: +0:93 6 (const uint) +0:93 i1: direct index for structure (layout(offset=36 ) uniform int) +0:93 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:93 Constant: +0:93 5 (const uint) +0:94 imageAtomicXor (temp int) +0:94 'g_tTex2di1' (layout(r32i ) uniform iimage2D) +0:94 i2: direct index for structure (layout(offset=40 ) uniform 2-component vector of int) +0:94 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:94 Constant: +0:94 6 (const uint) +0:94 i1b: direct index for structure (layout(offset=60 ) uniform int) +0:94 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:94 Constant: +0:94 8 (const uint) +0:95 move second child to first child (temp int) +0:95 'out_i1' (temp int) +0:95 imageAtomicXor (temp int) +0:95 'g_tTex2di1' (layout(r32i ) uniform iimage2D) +0:95 i2: direct index for structure (layout(offset=40 ) uniform 2-component vector of int) +0:95 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:95 Constant: +0:95 6 (const uint) +0:95 i1: direct index for structure (layout(offset=36 ) uniform int) +0:95 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:95 Constant: +0:95 5 (const uint) +0:98 imageAtomicAdd (temp uint) +0:98 'g_tTex2du1' (layout(r32ui ) uniform uimage2D) +0:98 u2: direct index for structure (layout(offset=8 ) uniform 2-component vector of uint) +0:98 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:98 Constant: +0:98 1 (const uint) +0:98 u1: direct index for structure (layout(offset=0 ) uniform uint) +0:98 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:98 Constant: +0:98 0 (const uint) +0:99 move second child to first child (temp uint) +0:99 'out_u1' (temp uint) +0:99 imageAtomicAdd (temp uint) +0:99 'g_tTex2du1' (layout(r32ui ) uniform uimage2D) +0:99 u2: direct index for structure (layout(offset=8 ) uniform 2-component vector of uint) +0:99 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:99 Constant: +0:99 1 (const uint) +0:99 u1: direct index for structure (layout(offset=0 ) uniform uint) +0:99 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:99 Constant: +0:99 0 (const uint) +0:100 imageAtomicAnd (temp uint) +0:100 'g_tTex2du1' (layout(r32ui ) uniform uimage2D) +0:100 u2: direct index for structure (layout(offset=8 ) uniform 2-component vector of uint) +0:100 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:100 Constant: +0:100 1 (const uint) +0:100 u1: direct index for structure (layout(offset=0 ) uniform uint) +0:100 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:100 Constant: +0:100 0 (const uint) +0:101 move second child to first child (temp uint) +0:101 'out_u1' (temp uint) +0:101 imageAtomicAnd (temp uint) +0:101 'g_tTex2du1' (layout(r32ui ) uniform uimage2D) +0:101 u2: direct index for structure (layout(offset=8 ) uniform 2-component vector of uint) +0:101 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:101 Constant: +0:101 1 (const uint) +0:101 u1: direct index for structure (layout(offset=0 ) uniform uint) +0:101 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:101 Constant: +0:101 0 (const uint) +0:102 move second child to first child (temp uint) +0:102 'out_u1' (temp uint) +0:102 imageAtomicCompSwap (temp uint) +0:102 'g_tTex2du1' (layout(r32ui ) uniform uimage2D) +0:102 u2: direct index for structure (layout(offset=8 ) uniform 2-component vector of uint) +0:102 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:102 Constant: +0:102 1 (const uint) +0:102 u1b: direct index for structure (layout(offset=28 ) uniform uint) +0:102 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:102 Constant: +0:102 3 (const uint) +0:102 u1c: direct index for structure (layout(offset=32 ) uniform uint) +0:102 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:102 Constant: +0:102 4 (const uint) +0:103 move second child to first child (temp uint) +0:103 'out_u1' (temp uint) +0:103 imageAtomicExchange (temp uint) +0:103 'g_tTex2du1' (layout(r32ui ) uniform uimage2D) +0:103 u2: direct index for structure (layout(offset=8 ) uniform 2-component vector of uint) +0:103 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:103 Constant: +0:103 1 (const uint) +0:103 u1: direct index for structure (layout(offset=0 ) uniform uint) +0:103 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:103 Constant: +0:103 0 (const uint) +0:104 imageAtomicMax (temp uint) +0:104 'g_tTex2du1' (layout(r32ui ) uniform uimage2D) +0:104 u2: direct index for structure (layout(offset=8 ) uniform 2-component vector of uint) +0:104 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:104 Constant: +0:104 1 (const uint) +0:104 u1: direct index for structure (layout(offset=0 ) uniform uint) +0:104 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:104 Constant: +0:104 0 (const uint) +0:105 move second child to first child (temp uint) +0:105 'out_u1' (temp uint) +0:105 imageAtomicMax (temp uint) +0:105 'g_tTex2du1' (layout(r32ui ) uniform uimage2D) +0:105 u2: direct index for structure (layout(offset=8 ) uniform 2-component vector of uint) +0:105 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:105 Constant: +0:105 1 (const uint) +0:105 u1: direct index for structure (layout(offset=0 ) uniform uint) +0:105 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:105 Constant: +0:105 0 (const uint) +0:106 imageAtomicMin (temp uint) +0:106 'g_tTex2du1' (layout(r32ui ) uniform uimage2D) +0:106 u2: direct index for structure (layout(offset=8 ) uniform 2-component vector of uint) +0:106 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:106 Constant: +0:106 1 (const uint) +0:106 u1: direct index for structure (layout(offset=0 ) uniform uint) +0:106 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:106 Constant: +0:106 0 (const uint) +0:107 move second child to first child (temp uint) +0:107 'out_u1' (temp uint) +0:107 imageAtomicMin (temp uint) +0:107 'g_tTex2du1' (layout(r32ui ) uniform uimage2D) +0:107 u2: direct index for structure (layout(offset=8 ) uniform 2-component vector of uint) +0:107 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:107 Constant: +0:107 1 (const uint) +0:107 u1: direct index for structure (layout(offset=0 ) uniform uint) +0:107 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:107 Constant: +0:107 0 (const uint) +0:108 imageAtomicOr (temp uint) +0:108 'g_tTex2du1' (layout(r32ui ) uniform uimage2D) +0:108 u2: direct index for structure (layout(offset=8 ) uniform 2-component vector of uint) +0:108 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:108 Constant: +0:108 1 (const uint) +0:108 u1: direct index for structure (layout(offset=0 ) uniform uint) +0:108 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:108 Constant: +0:108 0 (const uint) +0:109 move second child to first child (temp uint) +0:109 'out_u1' (temp uint) +0:109 imageAtomicOr (temp uint) +0:109 'g_tTex2du1' (layout(r32ui ) uniform uimage2D) +0:109 u2: direct index for structure (layout(offset=8 ) uniform 2-component vector of uint) +0:109 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:109 Constant: +0:109 1 (const uint) +0:109 u1: direct index for structure (layout(offset=0 ) uniform uint) +0:109 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:109 Constant: +0:109 0 (const uint) +0:110 imageAtomicXor (temp uint) +0:110 'g_tTex2du1' (layout(r32ui ) uniform uimage2D) +0:110 u2: direct index for structure (layout(offset=8 ) uniform 2-component vector of uint) +0:110 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:110 Constant: +0:110 1 (const uint) +0:110 u1: direct index for structure (layout(offset=0 ) uniform uint) +0:110 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:110 Constant: +0:110 0 (const uint) +0:111 move second child to first child (temp uint) +0:111 'out_u1' (temp uint) +0:111 imageAtomicXor (temp uint) +0:111 'g_tTex2du1' (layout(r32ui ) uniform uimage2D) +0:111 u2: direct index for structure (layout(offset=8 ) uniform 2-component vector of uint) +0:111 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:111 Constant: +0:111 1 (const uint) +0:111 u1: direct index for structure (layout(offset=0 ) uniform uint) +0:111 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:111 Constant: +0:111 0 (const uint) +0:114 imageAtomicAdd (temp int) +0:114 'g_tTex3di1' (layout(r32i ) uniform iimage3D) +0:114 i3: direct index for structure (layout(offset=48 ) uniform 3-component vector of int) +0:114 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:114 Constant: +0:114 7 (const uint) +0:114 i1b: direct index for structure (layout(offset=60 ) uniform int) +0:114 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:114 Constant: +0:114 8 (const uint) +0:115 move second child to first child (temp int) +0:115 'out_i1' (temp int) +0:115 imageAtomicAdd (temp int) +0:115 'g_tTex3di1' (layout(r32i ) uniform iimage3D) +0:115 i3: direct index for structure (layout(offset=48 ) uniform 3-component vector of int) +0:115 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:115 Constant: +0:115 7 (const uint) +0:115 i1: direct index for structure (layout(offset=36 ) uniform int) +0:115 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:115 Constant: +0:115 5 (const uint) +0:116 imageAtomicAnd (temp int) +0:116 'g_tTex3di1' (layout(r32i ) uniform iimage3D) +0:116 i3: direct index for structure (layout(offset=48 ) uniform 3-component vector of int) +0:116 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:116 Constant: +0:116 7 (const uint) +0:116 i1b: direct index for structure (layout(offset=60 ) uniform int) +0:116 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:116 Constant: +0:116 8 (const uint) +0:117 move second child to first child (temp int) +0:117 'out_i1' (temp int) +0:117 imageAtomicAnd (temp int) +0:117 'g_tTex3di1' (layout(r32i ) uniform iimage3D) +0:117 i3: direct index for structure (layout(offset=48 ) uniform 3-component vector of int) +0:117 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:117 Constant: +0:117 7 (const uint) +0:117 i1: direct index for structure (layout(offset=36 ) uniform int) +0:117 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:117 Constant: +0:117 5 (const uint) +0:118 move second child to first child (temp int) +0:118 'out_i1' (temp int) +0:118 imageAtomicCompSwap (temp int) +0:118 'g_tTex3di1' (layout(r32i ) uniform iimage3D) +0:118 i3: direct index for structure (layout(offset=48 ) uniform 3-component vector of int) +0:118 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:118 Constant: +0:118 7 (const uint) +0:118 i1b: direct index for structure (layout(offset=60 ) uniform int) +0:118 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:118 Constant: +0:118 8 (const uint) +0:118 i1c: direct index for structure (layout(offset=64 ) uniform int) +0:118 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:118 Constant: +0:118 9 (const uint) +0:119 move second child to first child (temp int) +0:119 'out_i1' (temp int) +0:119 imageAtomicExchange (temp int) +0:119 'g_tTex3di1' (layout(r32i ) uniform iimage3D) +0:119 i3: direct index for structure (layout(offset=48 ) uniform 3-component vector of int) +0:119 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:119 Constant: +0:119 7 (const uint) +0:119 i1: direct index for structure (layout(offset=36 ) uniform int) +0:119 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:119 Constant: +0:119 5 (const uint) +0:120 imageAtomicMax (temp int) +0:120 'g_tTex3di1' (layout(r32i ) uniform iimage3D) +0:120 i3: direct index for structure (layout(offset=48 ) uniform 3-component vector of int) +0:120 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:120 Constant: +0:120 7 (const uint) +0:120 i1b: direct index for structure (layout(offset=60 ) uniform int) +0:120 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:120 Constant: +0:120 8 (const uint) +0:121 move second child to first child (temp int) +0:121 'out_i1' (temp int) +0:121 imageAtomicMax (temp int) +0:121 'g_tTex3di1' (layout(r32i ) uniform iimage3D) +0:121 i3: direct index for structure (layout(offset=48 ) uniform 3-component vector of int) +0:121 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:121 Constant: +0:121 7 (const uint) +0:121 i1: direct index for structure (layout(offset=36 ) uniform int) +0:121 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:121 Constant: +0:121 5 (const uint) +0:122 imageAtomicMin (temp int) +0:122 'g_tTex3di1' (layout(r32i ) uniform iimage3D) +0:122 i3: direct index for structure (layout(offset=48 ) uniform 3-component vector of int) +0:122 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:122 Constant: +0:122 7 (const uint) +0:122 i1b: direct index for structure (layout(offset=60 ) uniform int) +0:122 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:122 Constant: +0:122 8 (const uint) +0:123 move second child to first child (temp int) +0:123 'out_i1' (temp int) +0:123 imageAtomicMin (temp int) +0:123 'g_tTex3di1' (layout(r32i ) uniform iimage3D) +0:123 i3: direct index for structure (layout(offset=48 ) uniform 3-component vector of int) +0:123 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:123 Constant: +0:123 7 (const uint) +0:123 i1: direct index for structure (layout(offset=36 ) uniform int) +0:123 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:123 Constant: +0:123 5 (const uint) +0:124 imageAtomicOr (temp int) +0:124 'g_tTex3di1' (layout(r32i ) uniform iimage3D) +0:124 i3: direct index for structure (layout(offset=48 ) uniform 3-component vector of int) +0:124 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:124 Constant: +0:124 7 (const uint) +0:124 i1b: direct index for structure (layout(offset=60 ) uniform int) +0:124 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:124 Constant: +0:124 8 (const uint) +0:125 move second child to first child (temp int) +0:125 'out_i1' (temp int) +0:125 imageAtomicOr (temp int) +0:125 'g_tTex3di1' (layout(r32i ) uniform iimage3D) +0:125 i3: direct index for structure (layout(offset=48 ) uniform 3-component vector of int) +0:125 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:125 Constant: +0:125 7 (const uint) +0:125 i1: direct index for structure (layout(offset=36 ) uniform int) +0:125 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:125 Constant: +0:125 5 (const uint) +0:126 imageAtomicXor (temp int) +0:126 'g_tTex3di1' (layout(r32i ) uniform iimage3D) +0:126 i3: direct index for structure (layout(offset=48 ) uniform 3-component vector of int) +0:126 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:126 Constant: +0:126 7 (const uint) +0:126 i1b: direct index for structure (layout(offset=60 ) uniform int) +0:126 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:126 Constant: +0:126 8 (const uint) +0:127 move second child to first child (temp int) +0:127 'out_i1' (temp int) +0:127 imageAtomicXor (temp int) +0:127 'g_tTex3di1' (layout(r32i ) uniform iimage3D) +0:127 i3: direct index for structure (layout(offset=48 ) uniform 3-component vector of int) +0:127 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:127 Constant: +0:127 7 (const uint) +0:127 i1: direct index for structure (layout(offset=36 ) uniform int) +0:127 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:127 Constant: +0:127 5 (const uint) +0:130 imageAtomicAdd (temp uint) +0:130 'g_tTex3du1' (layout(r32ui ) uniform uimage3D) +0:130 u3: direct index for structure (layout(offset=16 ) uniform 3-component vector of uint) +0:130 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:130 Constant: +0:130 2 (const uint) +0:130 u1: direct index for structure (layout(offset=0 ) uniform uint) +0:130 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:130 Constant: +0:130 0 (const uint) +0:131 move second child to first child (temp uint) +0:131 'out_u1' (temp uint) +0:131 imageAtomicAdd (temp uint) +0:131 'g_tTex3du1' (layout(r32ui ) uniform uimage3D) +0:131 u3: direct index for structure (layout(offset=16 ) uniform 3-component vector of uint) +0:131 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:131 Constant: +0:131 2 (const uint) +0:131 u1: direct index for structure (layout(offset=0 ) uniform uint) +0:131 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:131 Constant: +0:131 0 (const uint) +0:132 imageAtomicAnd (temp uint) +0:132 'g_tTex3du1' (layout(r32ui ) uniform uimage3D) +0:132 u3: direct index for structure (layout(offset=16 ) uniform 3-component vector of uint) +0:132 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:132 Constant: +0:132 2 (const uint) +0:132 u1: direct index for structure (layout(offset=0 ) uniform uint) +0:132 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:132 Constant: +0:132 0 (const uint) +0:133 move second child to first child (temp uint) +0:133 'out_u1' (temp uint) +0:133 imageAtomicAnd (temp uint) +0:133 'g_tTex3du1' (layout(r32ui ) uniform uimage3D) +0:133 u3: direct index for structure (layout(offset=16 ) uniform 3-component vector of uint) +0:133 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:133 Constant: +0:133 2 (const uint) +0:133 u1: direct index for structure (layout(offset=0 ) uniform uint) +0:133 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:133 Constant: +0:133 0 (const uint) +0:134 move second child to first child (temp uint) +0:134 'out_u1' (temp uint) +0:134 imageAtomicCompSwap (temp uint) +0:134 'g_tTex3du1' (layout(r32ui ) uniform uimage3D) +0:134 u3: direct index for structure (layout(offset=16 ) uniform 3-component vector of uint) +0:134 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:134 Constant: +0:134 2 (const uint) +0:134 u1b: direct index for structure (layout(offset=28 ) uniform uint) +0:134 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:134 Constant: +0:134 3 (const uint) +0:134 u1c: direct index for structure (layout(offset=32 ) uniform uint) +0:134 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:134 Constant: +0:134 4 (const uint) +0:135 move second child to first child (temp uint) +0:135 'out_u1' (temp uint) +0:135 imageAtomicExchange (temp uint) +0:135 'g_tTex3du1' (layout(r32ui ) uniform uimage3D) +0:135 u3: direct index for structure (layout(offset=16 ) uniform 3-component vector of uint) +0:135 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:135 Constant: +0:135 2 (const uint) +0:135 u1: direct index for structure (layout(offset=0 ) uniform uint) +0:135 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:135 Constant: +0:135 0 (const uint) +0:136 imageAtomicMax (temp uint) +0:136 'g_tTex3du1' (layout(r32ui ) uniform uimage3D) +0:136 u3: direct index for structure (layout(offset=16 ) uniform 3-component vector of uint) +0:136 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:136 Constant: +0:136 2 (const uint) +0:136 u1: direct index for structure (layout(offset=0 ) uniform uint) +0:136 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:136 Constant: +0:136 0 (const uint) +0:137 move second child to first child (temp uint) +0:137 'out_u1' (temp uint) +0:137 imageAtomicMax (temp uint) +0:137 'g_tTex3du1' (layout(r32ui ) uniform uimage3D) +0:137 u3: direct index for structure (layout(offset=16 ) uniform 3-component vector of uint) +0:137 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:137 Constant: +0:137 2 (const uint) +0:137 u1: direct index for structure (layout(offset=0 ) uniform uint) +0:137 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:137 Constant: +0:137 0 (const uint) +0:138 imageAtomicMin (temp uint) +0:138 'g_tTex3du1' (layout(r32ui ) uniform uimage3D) +0:138 u3: direct index for structure (layout(offset=16 ) uniform 3-component vector of uint) +0:138 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:138 Constant: +0:138 2 (const uint) +0:138 u1: direct index for structure (layout(offset=0 ) uniform uint) +0:138 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:138 Constant: +0:138 0 (const uint) +0:139 move second child to first child (temp uint) +0:139 'out_u1' (temp uint) +0:139 imageAtomicMin (temp uint) +0:139 'g_tTex3du1' (layout(r32ui ) uniform uimage3D) +0:139 u3: direct index for structure (layout(offset=16 ) uniform 3-component vector of uint) +0:139 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:139 Constant: +0:139 2 (const uint) +0:139 u1: direct index for structure (layout(offset=0 ) uniform uint) +0:139 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:139 Constant: +0:139 0 (const uint) +0:140 imageAtomicOr (temp uint) +0:140 'g_tTex3du1' (layout(r32ui ) uniform uimage3D) +0:140 u3: direct index for structure (layout(offset=16 ) uniform 3-component vector of uint) +0:140 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:140 Constant: +0:140 2 (const uint) +0:140 u1: direct index for structure (layout(offset=0 ) uniform uint) +0:140 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:140 Constant: +0:140 0 (const uint) +0:141 move second child to first child (temp uint) +0:141 'out_u1' (temp uint) +0:141 imageAtomicOr (temp uint) +0:141 'g_tTex3du1' (layout(r32ui ) uniform uimage3D) +0:141 u3: direct index for structure (layout(offset=16 ) uniform 3-component vector of uint) +0:141 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:141 Constant: +0:141 2 (const uint) +0:141 u1: direct index for structure (layout(offset=0 ) uniform uint) +0:141 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:141 Constant: +0:141 0 (const uint) +0:142 imageAtomicXor (temp uint) +0:142 'g_tTex3du1' (layout(r32ui ) uniform uimage3D) +0:142 u3: direct index for structure (layout(offset=16 ) uniform 3-component vector of uint) +0:142 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:142 Constant: +0:142 2 (const uint) +0:142 u1: direct index for structure (layout(offset=0 ) uniform uint) +0:142 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:142 Constant: +0:142 0 (const uint) +0:143 move second child to first child (temp uint) +0:143 'out_u1' (temp uint) +0:143 imageAtomicXor (temp uint) +0:143 'g_tTex3du1' (layout(r32ui ) uniform uimage3D) +0:143 u3: direct index for structure (layout(offset=16 ) uniform 3-component vector of uint) +0:143 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:143 Constant: +0:143 2 (const uint) +0:143 u1: direct index for structure (layout(offset=0 ) uniform uint) +0:143 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:143 Constant: +0:143 0 (const uint) +0:146 imageAtomicAdd (temp int) +0:146 'g_tTex1di1a' (layout(r32i ) uniform iimage1DArray) +0:146 i2: direct index for structure (layout(offset=40 ) uniform 2-component vector of int) +0:146 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:146 Constant: +0:146 6 (const uint) +0:146 i1b: direct index for structure (layout(offset=60 ) uniform int) +0:146 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:146 Constant: +0:146 8 (const uint) +0:147 move second child to first child (temp int) +0:147 'out_i1' (temp int) +0:147 imageAtomicAdd (temp int) +0:147 'g_tTex1di1a' (layout(r32i ) uniform iimage1DArray) +0:147 i2: direct index for structure (layout(offset=40 ) uniform 2-component vector of int) +0:147 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:147 Constant: +0:147 6 (const uint) +0:147 i1: direct index for structure (layout(offset=36 ) uniform int) +0:147 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:147 Constant: +0:147 5 (const uint) +0:148 imageAtomicAnd (temp int) +0:148 'g_tTex1di1a' (layout(r32i ) uniform iimage1DArray) +0:148 i2: direct index for structure (layout(offset=40 ) uniform 2-component vector of int) +0:148 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:148 Constant: +0:148 6 (const uint) +0:148 i1b: direct index for structure (layout(offset=60 ) uniform int) +0:148 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:148 Constant: +0:148 8 (const uint) +0:149 move second child to first child (temp int) +0:149 'out_i1' (temp int) +0:149 imageAtomicAnd (temp int) +0:149 'g_tTex1di1a' (layout(r32i ) uniform iimage1DArray) +0:149 i2: direct index for structure (layout(offset=40 ) uniform 2-component vector of int) +0:149 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:149 Constant: +0:149 6 (const uint) +0:149 i1: direct index for structure (layout(offset=36 ) uniform int) +0:149 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:149 Constant: +0:149 5 (const uint) +0:150 move second child to first child (temp int) +0:150 'out_i1' (temp int) +0:150 imageAtomicCompSwap (temp int) +0:150 'g_tTex1di1a' (layout(r32i ) uniform iimage1DArray) +0:150 i2: direct index for structure (layout(offset=40 ) uniform 2-component vector of int) +0:150 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:150 Constant: +0:150 6 (const uint) +0:150 i1b: direct index for structure (layout(offset=60 ) uniform int) +0:150 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:150 Constant: +0:150 8 (const uint) +0:150 i1c: direct index for structure (layout(offset=64 ) uniform int) +0:150 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:150 Constant: +0:150 9 (const uint) +0:151 move second child to first child (temp int) +0:151 'out_i1' (temp int) +0:151 imageAtomicExchange (temp int) +0:151 'g_tTex1di1a' (layout(r32i ) uniform iimage1DArray) +0:151 i2: direct index for structure (layout(offset=40 ) uniform 2-component vector of int) +0:151 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:151 Constant: +0:151 6 (const uint) +0:151 i1: direct index for structure (layout(offset=36 ) uniform int) +0:151 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:151 Constant: +0:151 5 (const uint) +0:152 imageAtomicMax (temp int) +0:152 'g_tTex1di1a' (layout(r32i ) uniform iimage1DArray) +0:152 i2: direct index for structure (layout(offset=40 ) uniform 2-component vector of int) +0:152 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:152 Constant: +0:152 6 (const uint) +0:152 i1b: direct index for structure (layout(offset=60 ) uniform int) +0:152 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:152 Constant: +0:152 8 (const uint) +0:153 move second child to first child (temp int) +0:153 'out_i1' (temp int) +0:153 imageAtomicMax (temp int) +0:153 'g_tTex1di1a' (layout(r32i ) uniform iimage1DArray) +0:153 i2: direct index for structure (layout(offset=40 ) uniform 2-component vector of int) +0:153 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:153 Constant: +0:153 6 (const uint) +0:153 i1: direct index for structure (layout(offset=36 ) uniform int) +0:153 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:153 Constant: +0:153 5 (const uint) +0:154 imageAtomicMin (temp int) +0:154 'g_tTex1di1a' (layout(r32i ) uniform iimage1DArray) +0:154 i2: direct index for structure (layout(offset=40 ) uniform 2-component vector of int) +0:154 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:154 Constant: +0:154 6 (const uint) +0:154 i1b: direct index for structure (layout(offset=60 ) uniform int) +0:154 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:154 Constant: +0:154 8 (const uint) +0:155 move second child to first child (temp int) +0:155 'out_i1' (temp int) +0:155 imageAtomicMin (temp int) +0:155 'g_tTex1di1a' (layout(r32i ) uniform iimage1DArray) +0:155 i2: direct index for structure (layout(offset=40 ) uniform 2-component vector of int) +0:155 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:155 Constant: +0:155 6 (const uint) +0:155 i1: direct index for structure (layout(offset=36 ) uniform int) +0:155 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:155 Constant: +0:155 5 (const uint) +0:156 imageAtomicOr (temp int) +0:156 'g_tTex1di1a' (layout(r32i ) uniform iimage1DArray) +0:156 i2: direct index for structure (layout(offset=40 ) uniform 2-component vector of int) +0:156 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:156 Constant: +0:156 6 (const uint) +0:156 i1b: direct index for structure (layout(offset=60 ) uniform int) +0:156 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:156 Constant: +0:156 8 (const uint) +0:157 move second child to first child (temp int) +0:157 'out_i1' (temp int) +0:157 imageAtomicOr (temp int) +0:157 'g_tTex1di1a' (layout(r32i ) uniform iimage1DArray) +0:157 i2: direct index for structure (layout(offset=40 ) uniform 2-component vector of int) +0:157 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:157 Constant: +0:157 6 (const uint) +0:157 i1: direct index for structure (layout(offset=36 ) uniform int) +0:157 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:157 Constant: +0:157 5 (const uint) +0:158 imageAtomicXor (temp int) +0:158 'g_tTex1di1a' (layout(r32i ) uniform iimage1DArray) +0:158 i2: direct index for structure (layout(offset=40 ) uniform 2-component vector of int) +0:158 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:158 Constant: +0:158 6 (const uint) +0:158 i1b: direct index for structure (layout(offset=60 ) uniform int) +0:158 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:158 Constant: +0:158 8 (const uint) +0:159 move second child to first child (temp int) +0:159 'out_i1' (temp int) +0:159 imageAtomicXor (temp int) +0:159 'g_tTex1di1a' (layout(r32i ) uniform iimage1DArray) +0:159 i2: direct index for structure (layout(offset=40 ) uniform 2-component vector of int) +0:159 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:159 Constant: +0:159 6 (const uint) +0:159 i1: direct index for structure (layout(offset=36 ) uniform int) +0:159 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:159 Constant: +0:159 5 (const uint) +0:162 imageAtomicAdd (temp uint) +0:162 'g_tTex1du1a' (layout(r32ui ) uniform uimage1DArray) +0:162 u2: direct index for structure (layout(offset=8 ) uniform 2-component vector of uint) +0:162 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:162 Constant: +0:162 1 (const uint) +0:162 u1: direct index for structure (layout(offset=0 ) uniform uint) +0:162 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:162 Constant: +0:162 0 (const uint) +0:163 move second child to first child (temp uint) +0:163 'out_u1' (temp uint) +0:163 imageAtomicAdd (temp uint) +0:163 'g_tTex1du1a' (layout(r32ui ) uniform uimage1DArray) +0:163 u2: direct index for structure (layout(offset=8 ) uniform 2-component vector of uint) +0:163 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:163 Constant: +0:163 1 (const uint) +0:163 u1: direct index for structure (layout(offset=0 ) uniform uint) +0:163 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:163 Constant: +0:163 0 (const uint) +0:164 imageAtomicAnd (temp uint) +0:164 'g_tTex1du1a' (layout(r32ui ) uniform uimage1DArray) +0:164 u2: direct index for structure (layout(offset=8 ) uniform 2-component vector of uint) +0:164 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:164 Constant: +0:164 1 (const uint) +0:164 u1: direct index for structure (layout(offset=0 ) uniform uint) +0:164 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:164 Constant: +0:164 0 (const uint) +0:165 move second child to first child (temp uint) +0:165 'out_u1' (temp uint) +0:165 imageAtomicAnd (temp uint) +0:165 'g_tTex1du1a' (layout(r32ui ) uniform uimage1DArray) +0:165 u2: direct index for structure (layout(offset=8 ) uniform 2-component vector of uint) +0:165 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:165 Constant: +0:165 1 (const uint) +0:165 u1: direct index for structure (layout(offset=0 ) uniform uint) +0:165 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:165 Constant: +0:165 0 (const uint) +0:166 move second child to first child (temp uint) +0:166 'out_u1' (temp uint) +0:166 imageAtomicCompSwap (temp uint) +0:166 'g_tTex1du1a' (layout(r32ui ) uniform uimage1DArray) +0:166 u2: direct index for structure (layout(offset=8 ) uniform 2-component vector of uint) +0:166 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:166 Constant: +0:166 1 (const uint) +0:166 u1b: direct index for structure (layout(offset=28 ) uniform uint) +0:166 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:166 Constant: +0:166 3 (const uint) +0:166 u1c: direct index for structure (layout(offset=32 ) uniform uint) +0:166 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:166 Constant: +0:166 4 (const uint) +0:167 move second child to first child (temp uint) +0:167 'out_u1' (temp uint) +0:167 imageAtomicExchange (temp uint) +0:167 'g_tTex1du1a' (layout(r32ui ) uniform uimage1DArray) +0:167 u2: direct index for structure (layout(offset=8 ) uniform 2-component vector of uint) +0:167 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:167 Constant: +0:167 1 (const uint) +0:167 u1: direct index for structure (layout(offset=0 ) uniform uint) +0:167 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:167 Constant: +0:167 0 (const uint) +0:168 imageAtomicMax (temp uint) +0:168 'g_tTex1du1a' (layout(r32ui ) uniform uimage1DArray) +0:168 u2: direct index for structure (layout(offset=8 ) uniform 2-component vector of uint) +0:168 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:168 Constant: +0:168 1 (const uint) +0:168 u1: direct index for structure (layout(offset=0 ) uniform uint) +0:168 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:168 Constant: +0:168 0 (const uint) +0:169 move second child to first child (temp uint) +0:169 'out_u1' (temp uint) +0:169 imageAtomicMax (temp uint) +0:169 'g_tTex1du1a' (layout(r32ui ) uniform uimage1DArray) +0:169 u2: direct index for structure (layout(offset=8 ) uniform 2-component vector of uint) +0:169 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:169 Constant: +0:169 1 (const uint) +0:169 u1: direct index for structure (layout(offset=0 ) uniform uint) +0:169 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:169 Constant: +0:169 0 (const uint) +0:170 imageAtomicMin (temp uint) +0:170 'g_tTex1du1a' (layout(r32ui ) uniform uimage1DArray) +0:170 u2: direct index for structure (layout(offset=8 ) uniform 2-component vector of uint) +0:170 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:170 Constant: +0:170 1 (const uint) +0:170 u1: direct index for structure (layout(offset=0 ) uniform uint) +0:170 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:170 Constant: +0:170 0 (const uint) +0:171 move second child to first child (temp uint) +0:171 'out_u1' (temp uint) +0:171 imageAtomicMin (temp uint) +0:171 'g_tTex1du1a' (layout(r32ui ) uniform uimage1DArray) +0:171 u2: direct index for structure (layout(offset=8 ) uniform 2-component vector of uint) +0:171 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:171 Constant: +0:171 1 (const uint) +0:171 u1: direct index for structure (layout(offset=0 ) uniform uint) +0:171 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:171 Constant: +0:171 0 (const uint) +0:172 imageAtomicOr (temp uint) +0:172 'g_tTex1du1a' (layout(r32ui ) uniform uimage1DArray) +0:172 u2: direct index for structure (layout(offset=8 ) uniform 2-component vector of uint) +0:172 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:172 Constant: +0:172 1 (const uint) +0:172 u1: direct index for structure (layout(offset=0 ) uniform uint) +0:172 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:172 Constant: +0:172 0 (const uint) +0:173 move second child to first child (temp uint) +0:173 'out_u1' (temp uint) +0:173 imageAtomicOr (temp uint) +0:173 'g_tTex1du1a' (layout(r32ui ) uniform uimage1DArray) +0:173 u2: direct index for structure (layout(offset=8 ) uniform 2-component vector of uint) +0:173 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:173 Constant: +0:173 1 (const uint) +0:173 u1: direct index for structure (layout(offset=0 ) uniform uint) +0:173 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:173 Constant: +0:173 0 (const uint) +0:174 imageAtomicXor (temp uint) +0:174 'g_tTex1du1a' (layout(r32ui ) uniform uimage1DArray) +0:174 u2: direct index for structure (layout(offset=8 ) uniform 2-component vector of uint) +0:174 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:174 Constant: +0:174 1 (const uint) +0:174 u1: direct index for structure (layout(offset=0 ) uniform uint) +0:174 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:174 Constant: +0:174 0 (const uint) +0:175 move second child to first child (temp uint) +0:175 'out_u1' (temp uint) +0:175 imageAtomicXor (temp uint) +0:175 'g_tTex1du1a' (layout(r32ui ) uniform uimage1DArray) +0:175 u2: direct index for structure (layout(offset=8 ) uniform 2-component vector of uint) +0:175 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:175 Constant: +0:175 1 (const uint) +0:175 u1: direct index for structure (layout(offset=0 ) uniform uint) +0:175 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:175 Constant: +0:175 0 (const uint) +0:178 imageAtomicAdd (temp int) +0:178 'g_tTex1di1a' (layout(r32i ) uniform iimage1DArray) +0:178 i2: direct index for structure (layout(offset=40 ) uniform 2-component vector of int) +0:178 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:178 Constant: +0:178 6 (const uint) +0:178 i1b: direct index for structure (layout(offset=60 ) uniform int) +0:178 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:178 Constant: +0:178 8 (const uint) +0:179 move second child to first child (temp int) +0:179 'out_i1' (temp int) +0:179 imageAtomicAdd (temp int) +0:179 'g_tTex1di1a' (layout(r32i ) uniform iimage1DArray) +0:179 i2: direct index for structure (layout(offset=40 ) uniform 2-component vector of int) +0:179 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:179 Constant: +0:179 6 (const uint) +0:179 i1: direct index for structure (layout(offset=36 ) uniform int) +0:179 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:179 Constant: +0:179 5 (const uint) +0:180 imageAtomicAnd (temp int) +0:180 'g_tTex1di1a' (layout(r32i ) uniform iimage1DArray) +0:180 i2: direct index for structure (layout(offset=40 ) uniform 2-component vector of int) +0:180 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:180 Constant: +0:180 6 (const uint) +0:180 i1b: direct index for structure (layout(offset=60 ) uniform int) +0:180 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:180 Constant: +0:180 8 (const uint) +0:181 move second child to first child (temp int) +0:181 'out_i1' (temp int) +0:181 imageAtomicAnd (temp int) +0:181 'g_tTex1di1a' (layout(r32i ) uniform iimage1DArray) +0:181 i2: direct index for structure (layout(offset=40 ) uniform 2-component vector of int) +0:181 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:181 Constant: +0:181 6 (const uint) +0:181 i1: direct index for structure (layout(offset=36 ) uniform int) +0:181 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:181 Constant: +0:181 5 (const uint) +0:182 move second child to first child (temp int) +0:182 'out_i1' (temp int) +0:182 imageAtomicCompSwap (temp int) +0:182 'g_tTex1di1a' (layout(r32i ) uniform iimage1DArray) +0:182 i2: direct index for structure (layout(offset=40 ) uniform 2-component vector of int) +0:182 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:182 Constant: +0:182 6 (const uint) +0:182 i1b: direct index for structure (layout(offset=60 ) uniform int) +0:182 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:182 Constant: +0:182 8 (const uint) +0:182 i1c: direct index for structure (layout(offset=64 ) uniform int) +0:182 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:182 Constant: +0:182 9 (const uint) +0:183 move second child to first child (temp int) +0:183 'out_i1' (temp int) +0:183 imageAtomicExchange (temp int) +0:183 'g_tTex1di1a' (layout(r32i ) uniform iimage1DArray) +0:183 i2: direct index for structure (layout(offset=40 ) uniform 2-component vector of int) +0:183 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:183 Constant: +0:183 6 (const uint) +0:183 i1: direct index for structure (layout(offset=36 ) uniform int) +0:183 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:183 Constant: +0:183 5 (const uint) +0:184 imageAtomicMax (temp int) +0:184 'g_tTex1di1a' (layout(r32i ) uniform iimage1DArray) +0:184 i2: direct index for structure (layout(offset=40 ) uniform 2-component vector of int) +0:184 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:184 Constant: +0:184 6 (const uint) +0:184 i1b: direct index for structure (layout(offset=60 ) uniform int) +0:184 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:184 Constant: +0:184 8 (const uint) +0:185 move second child to first child (temp int) +0:185 'out_i1' (temp int) +0:185 imageAtomicMax (temp int) +0:185 'g_tTex1di1a' (layout(r32i ) uniform iimage1DArray) +0:185 i2: direct index for structure (layout(offset=40 ) uniform 2-component vector of int) +0:185 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:185 Constant: +0:185 6 (const uint) +0:185 i1: direct index for structure (layout(offset=36 ) uniform int) +0:185 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:185 Constant: +0:185 5 (const uint) +0:186 imageAtomicMin (temp int) +0:186 'g_tTex1di1a' (layout(r32i ) uniform iimage1DArray) +0:186 i2: direct index for structure (layout(offset=40 ) uniform 2-component vector of int) +0:186 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:186 Constant: +0:186 6 (const uint) +0:186 i1b: direct index for structure (layout(offset=60 ) uniform int) +0:186 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:186 Constant: +0:186 8 (const uint) +0:187 move second child to first child (temp int) +0:187 'out_i1' (temp int) +0:187 imageAtomicMin (temp int) +0:187 'g_tTex1di1a' (layout(r32i ) uniform iimage1DArray) +0:187 i2: direct index for structure (layout(offset=40 ) uniform 2-component vector of int) +0:187 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:187 Constant: +0:187 6 (const uint) +0:187 i1: direct index for structure (layout(offset=36 ) uniform int) +0:187 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:187 Constant: +0:187 5 (const uint) +0:188 imageAtomicOr (temp int) +0:188 'g_tTex1di1a' (layout(r32i ) uniform iimage1DArray) +0:188 i2: direct index for structure (layout(offset=40 ) uniform 2-component vector of int) +0:188 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:188 Constant: +0:188 6 (const uint) +0:188 i1b: direct index for structure (layout(offset=60 ) uniform int) +0:188 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:188 Constant: +0:188 8 (const uint) +0:189 move second child to first child (temp int) +0:189 'out_i1' (temp int) +0:189 imageAtomicOr (temp int) +0:189 'g_tTex1di1a' (layout(r32i ) uniform iimage1DArray) +0:189 i2: direct index for structure (layout(offset=40 ) uniform 2-component vector of int) +0:189 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:189 Constant: +0:189 6 (const uint) +0:189 i1: direct index for structure (layout(offset=36 ) uniform int) +0:189 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:189 Constant: +0:189 5 (const uint) +0:190 imageAtomicXor (temp int) +0:190 'g_tTex1di1a' (layout(r32i ) uniform iimage1DArray) +0:190 i2: direct index for structure (layout(offset=40 ) uniform 2-component vector of int) +0:190 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:190 Constant: +0:190 6 (const uint) +0:190 i1b: direct index for structure (layout(offset=60 ) uniform int) +0:190 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:190 Constant: +0:190 8 (const uint) +0:191 move second child to first child (temp int) +0:191 'out_i1' (temp int) +0:191 imageAtomicXor (temp int) +0:191 'g_tTex1di1a' (layout(r32i ) uniform iimage1DArray) +0:191 i2: direct index for structure (layout(offset=40 ) uniform 2-component vector of int) +0:191 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:191 Constant: +0:191 6 (const uint) +0:191 i1: direct index for structure (layout(offset=36 ) uniform int) +0:191 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:191 Constant: +0:191 5 (const uint) +0:194 imageAtomicAdd (temp uint) +0:194 'g_tTex1du1a' (layout(r32ui ) uniform uimage1DArray) +0:194 u2: direct index for structure (layout(offset=8 ) uniform 2-component vector of uint) +0:194 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:194 Constant: +0:194 1 (const uint) +0:194 u1: direct index for structure (layout(offset=0 ) uniform uint) +0:194 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:194 Constant: +0:194 0 (const uint) +0:195 move second child to first child (temp uint) +0:195 'out_u1' (temp uint) +0:195 imageAtomicAdd (temp uint) +0:195 'g_tTex1du1a' (layout(r32ui ) uniform uimage1DArray) +0:195 u2: direct index for structure (layout(offset=8 ) uniform 2-component vector of uint) +0:195 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:195 Constant: +0:195 1 (const uint) +0:195 u1: direct index for structure (layout(offset=0 ) uniform uint) +0:195 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:195 Constant: +0:195 0 (const uint) +0:196 imageAtomicAnd (temp uint) +0:196 'g_tTex1du1a' (layout(r32ui ) uniform uimage1DArray) +0:196 u2: direct index for structure (layout(offset=8 ) uniform 2-component vector of uint) +0:196 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:196 Constant: +0:196 1 (const uint) +0:196 u1: direct index for structure (layout(offset=0 ) uniform uint) +0:196 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:196 Constant: +0:196 0 (const uint) +0:197 move second child to first child (temp uint) +0:197 'out_u1' (temp uint) +0:197 imageAtomicAnd (temp uint) +0:197 'g_tTex1du1a' (layout(r32ui ) uniform uimage1DArray) +0:197 u2: direct index for structure (layout(offset=8 ) uniform 2-component vector of uint) +0:197 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:197 Constant: +0:197 1 (const uint) +0:197 u1: direct index for structure (layout(offset=0 ) uniform uint) +0:197 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:197 Constant: +0:197 0 (const uint) +0:198 move second child to first child (temp uint) +0:198 'out_u1' (temp uint) +0:198 imageAtomicCompSwap (temp uint) +0:198 'g_tTex1du1a' (layout(r32ui ) uniform uimage1DArray) +0:198 u2: direct index for structure (layout(offset=8 ) uniform 2-component vector of uint) +0:198 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:198 Constant: +0:198 1 (const uint) +0:198 u1b: direct index for structure (layout(offset=28 ) uniform uint) +0:198 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:198 Constant: +0:198 3 (const uint) +0:198 u1c: direct index for structure (layout(offset=32 ) uniform uint) +0:198 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:198 Constant: +0:198 4 (const uint) +0:199 move second child to first child (temp uint) +0:199 'out_u1' (temp uint) +0:199 imageAtomicExchange (temp uint) +0:199 'g_tTex1du1a' (layout(r32ui ) uniform uimage1DArray) +0:199 u2: direct index for structure (layout(offset=8 ) uniform 2-component vector of uint) +0:199 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:199 Constant: +0:199 1 (const uint) +0:199 u1: direct index for structure (layout(offset=0 ) uniform uint) +0:199 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:199 Constant: +0:199 0 (const uint) +0:200 imageAtomicMax (temp uint) +0:200 'g_tTex1du1a' (layout(r32ui ) uniform uimage1DArray) +0:200 u2: direct index for structure (layout(offset=8 ) uniform 2-component vector of uint) +0:200 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:200 Constant: +0:200 1 (const uint) +0:200 u1: direct index for structure (layout(offset=0 ) uniform uint) +0:200 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:200 Constant: +0:200 0 (const uint) +0:201 move second child to first child (temp uint) +0:201 'out_u1' (temp uint) +0:201 imageAtomicMax (temp uint) +0:201 'g_tTex1du1a' (layout(r32ui ) uniform uimage1DArray) +0:201 u2: direct index for structure (layout(offset=8 ) uniform 2-component vector of uint) +0:201 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:201 Constant: +0:201 1 (const uint) +0:201 u1: direct index for structure (layout(offset=0 ) uniform uint) +0:201 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:201 Constant: +0:201 0 (const uint) +0:202 imageAtomicMin (temp uint) +0:202 'g_tTex1du1a' (layout(r32ui ) uniform uimage1DArray) +0:202 u2: direct index for structure (layout(offset=8 ) uniform 2-component vector of uint) +0:202 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:202 Constant: +0:202 1 (const uint) +0:202 u1: direct index for structure (layout(offset=0 ) uniform uint) +0:202 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:202 Constant: +0:202 0 (const uint) +0:203 move second child to first child (temp uint) +0:203 'out_u1' (temp uint) +0:203 imageAtomicMin (temp uint) +0:203 'g_tTex1du1a' (layout(r32ui ) uniform uimage1DArray) +0:203 u2: direct index for structure (layout(offset=8 ) uniform 2-component vector of uint) +0:203 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:203 Constant: +0:203 1 (const uint) +0:203 u1: direct index for structure (layout(offset=0 ) uniform uint) +0:203 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:203 Constant: +0:203 0 (const uint) +0:204 imageAtomicOr (temp uint) +0:204 'g_tTex1du1a' (layout(r32ui ) uniform uimage1DArray) +0:204 u2: direct index for structure (layout(offset=8 ) uniform 2-component vector of uint) +0:204 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:204 Constant: +0:204 1 (const uint) +0:204 u1: direct index for structure (layout(offset=0 ) uniform uint) +0:204 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:204 Constant: +0:204 0 (const uint) +0:205 move second child to first child (temp uint) +0:205 'out_u1' (temp uint) +0:205 imageAtomicOr (temp uint) +0:205 'g_tTex1du1a' (layout(r32ui ) uniform uimage1DArray) +0:205 u2: direct index for structure (layout(offset=8 ) uniform 2-component vector of uint) +0:205 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:205 Constant: +0:205 1 (const uint) +0:205 u1: direct index for structure (layout(offset=0 ) uniform uint) +0:205 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:205 Constant: +0:205 0 (const uint) +0:206 imageAtomicXor (temp uint) +0:206 'g_tTex1du1a' (layout(r32ui ) uniform uimage1DArray) +0:206 u2: direct index for structure (layout(offset=8 ) uniform 2-component vector of uint) +0:206 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:206 Constant: +0:206 1 (const uint) +0:206 u1: direct index for structure (layout(offset=0 ) uniform uint) +0:206 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:206 Constant: +0:206 0 (const uint) +0:207 move second child to first child (temp uint) +0:207 'out_u1' (temp uint) +0:207 imageAtomicXor (temp uint) +0:207 'g_tTex1du1a' (layout(r32ui ) uniform uimage1DArray) +0:207 u2: direct index for structure (layout(offset=8 ) uniform 2-component vector of uint) +0:207 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:207 Constant: +0:207 1 (const uint) +0:207 u1: direct index for structure (layout(offset=0 ) uniform uint) +0:207 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:207 Constant: +0:207 0 (const uint) +0:210 imageAtomicAdd (temp int) +0:210 'g_tBuffI' (layout(r32i ) uniform iimageBuffer) +0:210 i1: direct index for structure (layout(offset=36 ) uniform int) +0:210 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:210 Constant: +0:210 5 (const uint) +0:210 i1b: direct index for structure (layout(offset=60 ) uniform int) +0:210 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:210 Constant: +0:210 8 (const uint) +0:211 move second child to first child (temp int) +0:211 'out_i1' (temp int) +0:211 imageAtomicAdd (temp int) +0:211 'g_tBuffI' (layout(r32i ) uniform iimageBuffer) +0:211 i1: direct index for structure (layout(offset=36 ) uniform int) +0:211 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:211 Constant: +0:211 5 (const uint) +0:211 i1: direct index for structure (layout(offset=36 ) uniform int) +0:211 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:211 Constant: +0:211 5 (const uint) +0:212 imageAtomicAnd (temp int) +0:212 'g_tBuffI' (layout(r32i ) uniform iimageBuffer) +0:212 i1: direct index for structure (layout(offset=36 ) uniform int) +0:212 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:212 Constant: +0:212 5 (const uint) +0:212 i1b: direct index for structure (layout(offset=60 ) uniform int) +0:212 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:212 Constant: +0:212 8 (const uint) +0:213 move second child to first child (temp int) +0:213 'out_i1' (temp int) +0:213 imageAtomicAnd (temp int) +0:213 'g_tBuffI' (layout(r32i ) uniform iimageBuffer) +0:213 i1: direct index for structure (layout(offset=36 ) uniform int) +0:213 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:213 Constant: +0:213 5 (const uint) +0:213 i1: direct index for structure (layout(offset=36 ) uniform int) +0:213 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:213 Constant: +0:213 5 (const uint) +0:214 move second child to first child (temp int) +0:214 'out_i1' (temp int) +0:214 imageAtomicCompSwap (temp int) +0:214 'g_tBuffI' (layout(r32i ) uniform iimageBuffer) +0:214 i1: direct index for structure (layout(offset=36 ) uniform int) +0:214 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:214 Constant: +0:214 5 (const uint) +0:214 i1b: direct index for structure (layout(offset=60 ) uniform int) +0:214 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:214 Constant: +0:214 8 (const uint) +0:214 i1c: direct index for structure (layout(offset=64 ) uniform int) +0:214 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:214 Constant: +0:214 9 (const uint) +0:215 move second child to first child (temp int) +0:215 'out_i1' (temp int) +0:215 imageAtomicExchange (temp int) +0:215 'g_tBuffI' (layout(r32i ) uniform iimageBuffer) +0:215 i1: direct index for structure (layout(offset=36 ) uniform int) +0:215 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:215 Constant: +0:215 5 (const uint) +0:215 i1: direct index for structure (layout(offset=36 ) uniform int) +0:215 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:215 Constant: +0:215 5 (const uint) +0:216 imageAtomicMax (temp int) +0:216 'g_tBuffI' (layout(r32i ) uniform iimageBuffer) +0:216 i1: direct index for structure (layout(offset=36 ) uniform int) +0:216 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:216 Constant: +0:216 5 (const uint) +0:216 i1b: direct index for structure (layout(offset=60 ) uniform int) +0:216 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:216 Constant: +0:216 8 (const uint) +0:217 move second child to first child (temp int) +0:217 'out_i1' (temp int) +0:217 imageAtomicMax (temp int) +0:217 'g_tBuffI' (layout(r32i ) uniform iimageBuffer) +0:217 i1: direct index for structure (layout(offset=36 ) uniform int) +0:217 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:217 Constant: +0:217 5 (const uint) +0:217 i1: direct index for structure (layout(offset=36 ) uniform int) +0:217 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:217 Constant: +0:217 5 (const uint) +0:218 imageAtomicMin (temp int) +0:218 'g_tBuffI' (layout(r32i ) uniform iimageBuffer) +0:218 i1: direct index for structure (layout(offset=36 ) uniform int) +0:218 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:218 Constant: +0:218 5 (const uint) +0:218 i1b: direct index for structure (layout(offset=60 ) uniform int) +0:218 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:218 Constant: +0:218 8 (const uint) +0:219 move second child to first child (temp int) +0:219 'out_i1' (temp int) +0:219 imageAtomicMin (temp int) +0:219 'g_tBuffI' (layout(r32i ) uniform iimageBuffer) +0:219 i1: direct index for structure (layout(offset=36 ) uniform int) +0:219 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:219 Constant: +0:219 5 (const uint) +0:219 i1: direct index for structure (layout(offset=36 ) uniform int) +0:219 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:219 Constant: +0:219 5 (const uint) +0:220 imageAtomicOr (temp int) +0:220 'g_tBuffI' (layout(r32i ) uniform iimageBuffer) +0:220 i1: direct index for structure (layout(offset=36 ) uniform int) +0:220 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:220 Constant: +0:220 5 (const uint) +0:220 i1b: direct index for structure (layout(offset=60 ) uniform int) +0:220 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:220 Constant: +0:220 8 (const uint) +0:221 move second child to first child (temp int) +0:221 'out_i1' (temp int) +0:221 imageAtomicOr (temp int) +0:221 'g_tBuffI' (layout(r32i ) uniform iimageBuffer) +0:221 i1: direct index for structure (layout(offset=36 ) uniform int) +0:221 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:221 Constant: +0:221 5 (const uint) +0:221 i1: direct index for structure (layout(offset=36 ) uniform int) +0:221 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:221 Constant: +0:221 5 (const uint) +0:222 imageAtomicXor (temp int) +0:222 'g_tBuffI' (layout(r32i ) uniform iimageBuffer) +0:222 i1: direct index for structure (layout(offset=36 ) uniform int) +0:222 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:222 Constant: +0:222 5 (const uint) +0:222 i1b: direct index for structure (layout(offset=60 ) uniform int) +0:222 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:222 Constant: +0:222 8 (const uint) +0:223 move second child to first child (temp int) +0:223 'out_i1' (temp int) +0:223 imageAtomicXor (temp int) +0:223 'g_tBuffI' (layout(r32i ) uniform iimageBuffer) +0:223 i1: direct index for structure (layout(offset=36 ) uniform int) +0:223 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:223 Constant: +0:223 5 (const uint) +0:223 i1: direct index for structure (layout(offset=36 ) uniform int) +0:223 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:223 Constant: +0:223 5 (const uint) +0:226 imageAtomicAdd (temp uint) +0:226 'g_tBuffU' (layout(r32ui ) uniform uimageBuffer) +0:226 u1: direct index for structure (layout(offset=0 ) uniform uint) +0:226 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:226 Constant: +0:226 0 (const uint) +0:226 u1: direct index for structure (layout(offset=0 ) uniform uint) +0:226 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:226 Constant: +0:226 0 (const uint) +0:227 move second child to first child (temp uint) +0:227 'out_u1' (temp uint) +0:227 imageAtomicAdd (temp uint) +0:227 'g_tBuffU' (layout(r32ui ) uniform uimageBuffer) +0:227 u1: direct index for structure (layout(offset=0 ) uniform uint) +0:227 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:227 Constant: +0:227 0 (const uint) +0:227 u1: direct index for structure (layout(offset=0 ) uniform uint) +0:227 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:227 Constant: +0:227 0 (const uint) +0:228 imageAtomicAnd (temp uint) +0:228 'g_tBuffU' (layout(r32ui ) uniform uimageBuffer) +0:228 u1: direct index for structure (layout(offset=0 ) uniform uint) +0:228 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:228 Constant: +0:228 0 (const uint) +0:228 u1: direct index for structure (layout(offset=0 ) uniform uint) +0:228 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:228 Constant: +0:228 0 (const uint) +0:229 move second child to first child (temp uint) +0:229 'out_u1' (temp uint) +0:229 imageAtomicAnd (temp uint) +0:229 'g_tBuffU' (layout(r32ui ) uniform uimageBuffer) +0:229 u1: direct index for structure (layout(offset=0 ) uniform uint) +0:229 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:229 Constant: +0:229 0 (const uint) +0:229 u1: direct index for structure (layout(offset=0 ) uniform uint) +0:229 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:229 Constant: +0:229 0 (const uint) +0:230 move second child to first child (temp uint) +0:230 'out_u1' (temp uint) +0:230 imageAtomicCompSwap (temp uint) +0:230 'g_tBuffU' (layout(r32ui ) uniform uimageBuffer) +0:230 u1: direct index for structure (layout(offset=0 ) uniform uint) +0:230 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:230 Constant: +0:230 0 (const uint) +0:230 u1b: direct index for structure (layout(offset=28 ) uniform uint) +0:230 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:230 Constant: +0:230 3 (const uint) +0:230 u1c: direct index for structure (layout(offset=32 ) uniform uint) +0:230 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:230 Constant: +0:230 4 (const uint) +0:231 move second child to first child (temp uint) +0:231 'out_u1' (temp uint) +0:231 imageAtomicExchange (temp uint) +0:231 'g_tBuffU' (layout(r32ui ) uniform uimageBuffer) +0:231 u1: direct index for structure (layout(offset=0 ) uniform uint) +0:231 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:231 Constant: +0:231 0 (const uint) +0:231 u1: direct index for structure (layout(offset=0 ) uniform uint) +0:231 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:231 Constant: +0:231 0 (const uint) +0:232 imageAtomicMax (temp uint) +0:232 'g_tBuffU' (layout(r32ui ) uniform uimageBuffer) +0:232 u1: direct index for structure (layout(offset=0 ) uniform uint) +0:232 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:232 Constant: +0:232 0 (const uint) +0:232 u1: direct index for structure (layout(offset=0 ) uniform uint) +0:232 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:232 Constant: +0:232 0 (const uint) +0:233 move second child to first child (temp uint) +0:233 'out_u1' (temp uint) +0:233 imageAtomicMax (temp uint) +0:233 'g_tBuffU' (layout(r32ui ) uniform uimageBuffer) +0:233 u1: direct index for structure (layout(offset=0 ) uniform uint) +0:233 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:233 Constant: +0:233 0 (const uint) +0:233 u1: direct index for structure (layout(offset=0 ) uniform uint) +0:233 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:233 Constant: +0:233 0 (const uint) +0:234 imageAtomicMin (temp uint) +0:234 'g_tBuffU' (layout(r32ui ) uniform uimageBuffer) +0:234 u1: direct index for structure (layout(offset=0 ) uniform uint) +0:234 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:234 Constant: +0:234 0 (const uint) +0:234 u1: direct index for structure (layout(offset=0 ) uniform uint) +0:234 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:234 Constant: +0:234 0 (const uint) +0:235 move second child to first child (temp uint) +0:235 'out_u1' (temp uint) +0:235 imageAtomicMin (temp uint) +0:235 'g_tBuffU' (layout(r32ui ) uniform uimageBuffer) +0:235 u1: direct index for structure (layout(offset=0 ) uniform uint) +0:235 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:235 Constant: +0:235 0 (const uint) +0:235 u1: direct index for structure (layout(offset=0 ) uniform uint) +0:235 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:235 Constant: +0:235 0 (const uint) +0:236 imageAtomicOr (temp uint) +0:236 'g_tBuffU' (layout(r32ui ) uniform uimageBuffer) +0:236 u1: direct index for structure (layout(offset=0 ) uniform uint) +0:236 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:236 Constant: +0:236 0 (const uint) +0:236 u1: direct index for structure (layout(offset=0 ) uniform uint) +0:236 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:236 Constant: +0:236 0 (const uint) +0:237 move second child to first child (temp uint) +0:237 'out_u1' (temp uint) +0:237 imageAtomicOr (temp uint) +0:237 'g_tBuffU' (layout(r32ui ) uniform uimageBuffer) +0:237 u1: direct index for structure (layout(offset=0 ) uniform uint) +0:237 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:237 Constant: +0:237 0 (const uint) +0:237 u1: direct index for structure (layout(offset=0 ) uniform uint) +0:237 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:237 Constant: +0:237 0 (const uint) +0:238 imageAtomicXor (temp uint) +0:238 'g_tBuffU' (layout(r32ui ) uniform uimageBuffer) +0:238 u1: direct index for structure (layout(offset=0 ) uniform uint) +0:238 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:238 Constant: +0:238 0 (const uint) +0:238 u1: direct index for structure (layout(offset=0 ) uniform uint) +0:238 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:238 Constant: +0:238 0 (const uint) +0:239 move second child to first child (temp uint) +0:239 'out_u1' (temp uint) +0:239 imageAtomicXor (temp uint) +0:239 'g_tBuffU' (layout(r32ui ) uniform uimageBuffer) +0:239 u1: direct index for structure (layout(offset=0 ) uniform uint) +0:239 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:239 Constant: +0:239 0 (const uint) +0:239 u1: direct index for structure (layout(offset=0 ) uniform uint) +0:239 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:239 Constant: +0:239 0 (const uint) +0:242 move second child to first child (temp 4-component vector of float) +0:242 Color: direct index for structure (temp 4-component vector of float) +0:242 'psout' (temp structure{temp 4-component vector of float Color}) +0:242 Constant: +0:242 0 (const int) +0:242 Constant: +0:242 1.000000 +0:242 1.000000 +0:242 1.000000 +0:242 1.000000 +0:243 Sequence +0:243 Sequence +0:243 move second child to first child (temp 4-component vector of float) +0:? 'Color' (layout(location=0 ) out 4-component vector of float) +0:243 Color: direct index for structure (temp 4-component vector of float) +0:243 'psout' (temp structure{temp 4-component vector of float Color}) +0:243 Constant: +0:243 0 (const int) +0:243 Branch: Return +0:? Linker Objects +0:? 'g_sSamp' (uniform sampler) +0:? 'g_tTex1df1' (layout(r32f ) uniform image1D) +0:? 'g_tTex1di1' (layout(r32i ) uniform iimage1D) +0:? 'g_tTex1du1' (layout(r32ui ) uniform uimage1D) +0:? 'g_tTex2df1' (layout(r32f ) uniform image2D) +0:? 'g_tTex2di1' (layout(r32i ) uniform iimage2D) +0:? 'g_tTex2du1' (layout(r32ui ) uniform uimage2D) +0:? 'g_tTex3df1' (layout(r32f ) uniform image3D) +0:? 'g_tTex3di1' (layout(r32i ) uniform iimage3D) +0:? 'g_tTex3du1' (layout(r32ui ) uniform uimage3D) +0:? 'g_tTex1df1a' (layout(r32f ) uniform image1DArray) +0:? 'g_tTex1di1a' (layout(r32i ) uniform iimage1DArray) +0:? 'g_tTex1du1a' (layout(r32ui ) uniform uimage1DArray) +0:? 'g_tTex2df1a' (layout(r32f ) uniform image2DArray) +0:? 'g_tTex2di1a' (layout(r32i ) uniform iimage2DArray) +0:? 'g_tTex2du1a' (layout(r32ui ) uniform uimage2DArray) +0:? 'g_tBuffF' (layout(r32f ) uniform imageBuffer) +0:? 'g_tBuffI' (layout(r32i ) uniform iimageBuffer) +0:? 'g_tBuffU' (layout(r32ui ) uniform uimageBuffer) +0:? 'Color' (layout(location=0 ) out 4-component vector of float) +0:? 'anon@0' (uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) + + +Linked fragment stage: + + +Shader version: 450 +gl_FragCoord origin is upper left +0:? Sequence +0:45 Function Definition: main( (temp structure{temp 4-component vector of float Color}) +0:45 Function Parameters: +0:? Sequence +0:50 imageAtomicAdd (temp int) +0:50 'g_tTex1di1' (layout(r32i ) uniform iimage1D) +0:50 i1: direct index for structure (layout(offset=36 ) uniform int) +0:50 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:50 Constant: +0:50 5 (const uint) +0:50 i1b: direct index for structure (layout(offset=60 ) uniform int) +0:50 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:50 Constant: +0:50 8 (const uint) +0:51 move second child to first child (temp int) +0:51 'out_i1' (temp int) +0:51 imageAtomicAdd (temp int) +0:51 'g_tTex1di1' (layout(r32i ) uniform iimage1D) +0:51 i1: direct index for structure (layout(offset=36 ) uniform int) +0:51 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:51 Constant: +0:51 5 (const uint) +0:51 i1: direct index for structure (layout(offset=36 ) uniform int) +0:51 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:51 Constant: +0:51 5 (const uint) +0:52 imageAtomicAnd (temp int) +0:52 'g_tTex1di1' (layout(r32i ) uniform iimage1D) +0:52 i1: direct index for structure (layout(offset=36 ) uniform int) +0:52 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:52 Constant: +0:52 5 (const uint) +0:52 i1b: direct index for structure (layout(offset=60 ) uniform int) +0:52 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:52 Constant: +0:52 8 (const uint) +0:53 move second child to first child (temp int) +0:53 'out_i1' (temp int) +0:53 imageAtomicAnd (temp int) +0:53 'g_tTex1di1' (layout(r32i ) uniform iimage1D) +0:53 i1: direct index for structure (layout(offset=36 ) uniform int) +0:53 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:53 Constant: +0:53 5 (const uint) +0:53 i1: direct index for structure (layout(offset=36 ) uniform int) +0:53 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:53 Constant: +0:53 5 (const uint) +0:54 move second child to first child (temp int) +0:54 'out_i1' (temp int) +0:54 imageAtomicCompSwap (temp int) +0:54 'g_tTex1di1' (layout(r32i ) uniform iimage1D) +0:54 i1: direct index for structure (layout(offset=36 ) uniform int) +0:54 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:54 Constant: +0:54 5 (const uint) +0:54 i1b: direct index for structure (layout(offset=60 ) uniform int) +0:54 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:54 Constant: +0:54 8 (const uint) +0:54 i1c: direct index for structure (layout(offset=64 ) uniform int) +0:54 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:54 Constant: +0:54 9 (const uint) +0:55 move second child to first child (temp int) +0:55 'out_i1' (temp int) +0:55 imageAtomicExchange (temp int) +0:55 'g_tTex1di1' (layout(r32i ) uniform iimage1D) +0:55 i1: direct index for structure (layout(offset=36 ) uniform int) +0:55 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:55 Constant: +0:55 5 (const uint) +0:55 i1: direct index for structure (layout(offset=36 ) uniform int) +0:55 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:55 Constant: +0:55 5 (const uint) +0:56 imageAtomicMax (temp int) +0:56 'g_tTex1di1' (layout(r32i ) uniform iimage1D) +0:56 i1: direct index for structure (layout(offset=36 ) uniform int) +0:56 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:56 Constant: +0:56 5 (const uint) +0:56 i1b: direct index for structure (layout(offset=60 ) uniform int) +0:56 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:56 Constant: +0:56 8 (const uint) +0:57 move second child to first child (temp int) +0:57 'out_i1' (temp int) +0:57 imageAtomicMax (temp int) +0:57 'g_tTex1di1' (layout(r32i ) uniform iimage1D) +0:57 i1: direct index for structure (layout(offset=36 ) uniform int) +0:57 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:57 Constant: +0:57 5 (const uint) +0:57 i1: direct index for structure (layout(offset=36 ) uniform int) +0:57 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:57 Constant: +0:57 5 (const uint) +0:58 imageAtomicMin (temp int) +0:58 'g_tTex1di1' (layout(r32i ) uniform iimage1D) +0:58 i1: direct index for structure (layout(offset=36 ) uniform int) +0:58 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:58 Constant: +0:58 5 (const uint) +0:58 i1b: direct index for structure (layout(offset=60 ) uniform int) +0:58 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:58 Constant: +0:58 8 (const uint) +0:59 move second child to first child (temp int) +0:59 'out_i1' (temp int) +0:59 imageAtomicMin (temp int) +0:59 'g_tTex1di1' (layout(r32i ) uniform iimage1D) +0:59 i1: direct index for structure (layout(offset=36 ) uniform int) +0:59 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:59 Constant: +0:59 5 (const uint) +0:59 i1: direct index for structure (layout(offset=36 ) uniform int) +0:59 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:59 Constant: +0:59 5 (const uint) +0:60 imageAtomicOr (temp int) +0:60 'g_tTex1di1' (layout(r32i ) uniform iimage1D) +0:60 i1: direct index for structure (layout(offset=36 ) uniform int) +0:60 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:60 Constant: +0:60 5 (const uint) +0:60 i1b: direct index for structure (layout(offset=60 ) uniform int) +0:60 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:60 Constant: +0:60 8 (const uint) +0:61 move second child to first child (temp int) +0:61 'out_i1' (temp int) +0:61 imageAtomicOr (temp int) +0:61 'g_tTex1di1' (layout(r32i ) uniform iimage1D) +0:61 i1: direct index for structure (layout(offset=36 ) uniform int) +0:61 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:61 Constant: +0:61 5 (const uint) +0:61 i1: direct index for structure (layout(offset=36 ) uniform int) +0:61 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:61 Constant: +0:61 5 (const uint) +0:62 imageAtomicXor (temp int) +0:62 'g_tTex1di1' (layout(r32i ) uniform iimage1D) +0:62 i1: direct index for structure (layout(offset=36 ) uniform int) +0:62 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:62 Constant: +0:62 5 (const uint) +0:62 i1b: direct index for structure (layout(offset=60 ) uniform int) +0:62 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:62 Constant: +0:62 8 (const uint) +0:63 move second child to first child (temp int) +0:63 'out_i1' (temp int) +0:63 imageAtomicXor (temp int) +0:63 'g_tTex1di1' (layout(r32i ) uniform iimage1D) +0:63 i1: direct index for structure (layout(offset=36 ) uniform int) +0:63 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:63 Constant: +0:63 5 (const uint) +0:63 i1: direct index for structure (layout(offset=36 ) uniform int) +0:63 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:63 Constant: +0:63 5 (const uint) +0:66 imageAtomicAdd (temp uint) +0:66 'g_tTex1du1' (layout(r32ui ) uniform uimage1D) +0:66 u1: direct index for structure (layout(offset=0 ) uniform uint) +0:66 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:66 Constant: +0:66 0 (const uint) +0:66 u1: direct index for structure (layout(offset=0 ) uniform uint) +0:66 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:66 Constant: +0:66 0 (const uint) +0:67 move second child to first child (temp uint) +0:67 'out_u1' (temp uint) +0:67 imageAtomicAdd (temp uint) +0:67 'g_tTex1du1' (layout(r32ui ) uniform uimage1D) +0:67 u1: direct index for structure (layout(offset=0 ) uniform uint) +0:67 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:67 Constant: +0:67 0 (const uint) +0:67 u1: direct index for structure (layout(offset=0 ) uniform uint) +0:67 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:67 Constant: +0:67 0 (const uint) +0:68 imageAtomicAnd (temp uint) +0:68 'g_tTex1du1' (layout(r32ui ) uniform uimage1D) +0:68 u1: direct index for structure (layout(offset=0 ) uniform uint) +0:68 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:68 Constant: +0:68 0 (const uint) +0:68 u1: direct index for structure (layout(offset=0 ) uniform uint) +0:68 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:68 Constant: +0:68 0 (const uint) +0:69 move second child to first child (temp uint) +0:69 'out_u1' (temp uint) +0:69 imageAtomicAnd (temp uint) +0:69 'g_tTex1du1' (layout(r32ui ) uniform uimage1D) +0:69 u1: direct index for structure (layout(offset=0 ) uniform uint) +0:69 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:69 Constant: +0:69 0 (const uint) +0:69 u1: direct index for structure (layout(offset=0 ) uniform uint) +0:69 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:69 Constant: +0:69 0 (const uint) +0:70 move second child to first child (temp uint) +0:70 'out_u1' (temp uint) +0:70 imageAtomicCompSwap (temp uint) +0:70 'g_tTex1du1' (layout(r32ui ) uniform uimage1D) +0:70 u1: direct index for structure (layout(offset=0 ) uniform uint) +0:70 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:70 Constant: +0:70 0 (const uint) +0:70 u1b: direct index for structure (layout(offset=28 ) uniform uint) +0:70 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:70 Constant: +0:70 3 (const uint) +0:70 u1c: direct index for structure (layout(offset=32 ) uniform uint) +0:70 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:70 Constant: +0:70 4 (const uint) +0:71 move second child to first child (temp uint) +0:71 'out_u1' (temp uint) +0:71 imageAtomicExchange (temp uint) +0:71 'g_tTex1du1' (layout(r32ui ) uniform uimage1D) +0:71 u1: direct index for structure (layout(offset=0 ) uniform uint) +0:71 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:71 Constant: +0:71 0 (const uint) +0:71 u1: direct index for structure (layout(offset=0 ) uniform uint) +0:71 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:71 Constant: +0:71 0 (const uint) +0:72 imageAtomicMax (temp uint) +0:72 'g_tTex1du1' (layout(r32ui ) uniform uimage1D) +0:72 u1: direct index for structure (layout(offset=0 ) uniform uint) +0:72 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:72 Constant: +0:72 0 (const uint) +0:72 u1: direct index for structure (layout(offset=0 ) uniform uint) +0:72 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:72 Constant: +0:72 0 (const uint) +0:73 move second child to first child (temp uint) +0:73 'out_u1' (temp uint) +0:73 imageAtomicMax (temp uint) +0:73 'g_tTex1du1' (layout(r32ui ) uniform uimage1D) +0:73 u1: direct index for structure (layout(offset=0 ) uniform uint) +0:73 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:73 Constant: +0:73 0 (const uint) +0:73 u1: direct index for structure (layout(offset=0 ) uniform uint) +0:73 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:73 Constant: +0:73 0 (const uint) +0:74 imageAtomicMin (temp uint) +0:74 'g_tTex1du1' (layout(r32ui ) uniform uimage1D) +0:74 u1: direct index for structure (layout(offset=0 ) uniform uint) +0:74 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:74 Constant: +0:74 0 (const uint) +0:74 u1: direct index for structure (layout(offset=0 ) uniform uint) +0:74 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:74 Constant: +0:74 0 (const uint) +0:75 move second child to first child (temp uint) +0:75 'out_u1' (temp uint) +0:75 imageAtomicMin (temp uint) +0:75 'g_tTex1du1' (layout(r32ui ) uniform uimage1D) +0:75 u1: direct index for structure (layout(offset=0 ) uniform uint) +0:75 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:75 Constant: +0:75 0 (const uint) +0:75 u1: direct index for structure (layout(offset=0 ) uniform uint) +0:75 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:75 Constant: +0:75 0 (const uint) +0:76 imageAtomicOr (temp uint) +0:76 'g_tTex1du1' (layout(r32ui ) uniform uimage1D) +0:76 u1: direct index for structure (layout(offset=0 ) uniform uint) +0:76 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:76 Constant: +0:76 0 (const uint) +0:76 u1: direct index for structure (layout(offset=0 ) uniform uint) +0:76 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:76 Constant: +0:76 0 (const uint) +0:77 move second child to first child (temp uint) +0:77 'out_u1' (temp uint) +0:77 imageAtomicOr (temp uint) +0:77 'g_tTex1du1' (layout(r32ui ) uniform uimage1D) +0:77 u1: direct index for structure (layout(offset=0 ) uniform uint) +0:77 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:77 Constant: +0:77 0 (const uint) +0:77 u1: direct index for structure (layout(offset=0 ) uniform uint) +0:77 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:77 Constant: +0:77 0 (const uint) +0:78 imageAtomicXor (temp uint) +0:78 'g_tTex1du1' (layout(r32ui ) uniform uimage1D) +0:78 u1: direct index for structure (layout(offset=0 ) uniform uint) +0:78 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:78 Constant: +0:78 0 (const uint) +0:78 u1: direct index for structure (layout(offset=0 ) uniform uint) +0:78 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:78 Constant: +0:78 0 (const uint) +0:79 move second child to first child (temp uint) +0:79 'out_u1' (temp uint) +0:79 imageAtomicXor (temp uint) +0:79 'g_tTex1du1' (layout(r32ui ) uniform uimage1D) +0:79 u1: direct index for structure (layout(offset=0 ) uniform uint) +0:79 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:79 Constant: +0:79 0 (const uint) +0:79 u1: direct index for structure (layout(offset=0 ) uniform uint) +0:79 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:79 Constant: +0:79 0 (const uint) +0:82 imageAtomicAdd (temp int) +0:82 'g_tTex2di1' (layout(r32i ) uniform iimage2D) +0:82 i2: direct index for structure (layout(offset=40 ) uniform 2-component vector of int) +0:82 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:82 Constant: +0:82 6 (const uint) +0:82 i1b: direct index for structure (layout(offset=60 ) uniform int) +0:82 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:82 Constant: +0:82 8 (const uint) +0:83 move second child to first child (temp int) +0:83 'out_i1' (temp int) +0:83 imageAtomicAdd (temp int) +0:83 'g_tTex2di1' (layout(r32i ) uniform iimage2D) +0:83 i2: direct index for structure (layout(offset=40 ) uniform 2-component vector of int) +0:83 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:83 Constant: +0:83 6 (const uint) +0:83 i1: direct index for structure (layout(offset=36 ) uniform int) +0:83 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:83 Constant: +0:83 5 (const uint) +0:84 imageAtomicAnd (temp int) +0:84 'g_tTex2di1' (layout(r32i ) uniform iimage2D) +0:84 i2: direct index for structure (layout(offset=40 ) uniform 2-component vector of int) +0:84 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:84 Constant: +0:84 6 (const uint) +0:84 i1b: direct index for structure (layout(offset=60 ) uniform int) +0:84 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:84 Constant: +0:84 8 (const uint) +0:85 move second child to first child (temp int) +0:85 'out_i1' (temp int) +0:85 imageAtomicAnd (temp int) +0:85 'g_tTex2di1' (layout(r32i ) uniform iimage2D) +0:85 i2: direct index for structure (layout(offset=40 ) uniform 2-component vector of int) +0:85 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:85 Constant: +0:85 6 (const uint) +0:85 i1: direct index for structure (layout(offset=36 ) uniform int) +0:85 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:85 Constant: +0:85 5 (const uint) +0:86 move second child to first child (temp int) +0:86 'out_i1' (temp int) +0:86 imageAtomicCompSwap (temp int) +0:86 'g_tTex2di1' (layout(r32i ) uniform iimage2D) +0:86 i2: direct index for structure (layout(offset=40 ) uniform 2-component vector of int) +0:86 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:86 Constant: +0:86 6 (const uint) +0:86 i1b: direct index for structure (layout(offset=60 ) uniform int) +0:86 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:86 Constant: +0:86 8 (const uint) +0:86 i1c: direct index for structure (layout(offset=64 ) uniform int) +0:86 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:86 Constant: +0:86 9 (const uint) +0:87 move second child to first child (temp int) +0:87 'out_i1' (temp int) +0:87 imageAtomicExchange (temp int) +0:87 'g_tTex2di1' (layout(r32i ) uniform iimage2D) +0:87 i2: direct index for structure (layout(offset=40 ) uniform 2-component vector of int) +0:87 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:87 Constant: +0:87 6 (const uint) +0:87 i1: direct index for structure (layout(offset=36 ) uniform int) +0:87 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:87 Constant: +0:87 5 (const uint) +0:88 imageAtomicMax (temp int) +0:88 'g_tTex2di1' (layout(r32i ) uniform iimage2D) +0:88 i2: direct index for structure (layout(offset=40 ) uniform 2-component vector of int) +0:88 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:88 Constant: +0:88 6 (const uint) +0:88 i1b: direct index for structure (layout(offset=60 ) uniform int) +0:88 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:88 Constant: +0:88 8 (const uint) +0:89 move second child to first child (temp int) +0:89 'out_i1' (temp int) +0:89 imageAtomicMax (temp int) +0:89 'g_tTex2di1' (layout(r32i ) uniform iimage2D) +0:89 i2: direct index for structure (layout(offset=40 ) uniform 2-component vector of int) +0:89 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:89 Constant: +0:89 6 (const uint) +0:89 i1: direct index for structure (layout(offset=36 ) uniform int) +0:89 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:89 Constant: +0:89 5 (const uint) +0:90 imageAtomicMin (temp int) +0:90 'g_tTex2di1' (layout(r32i ) uniform iimage2D) +0:90 i2: direct index for structure (layout(offset=40 ) uniform 2-component vector of int) +0:90 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:90 Constant: +0:90 6 (const uint) +0:90 i1b: direct index for structure (layout(offset=60 ) uniform int) +0:90 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:90 Constant: +0:90 8 (const uint) +0:91 move second child to first child (temp int) +0:91 'out_i1' (temp int) +0:91 imageAtomicMin (temp int) +0:91 'g_tTex2di1' (layout(r32i ) uniform iimage2D) +0:91 i2: direct index for structure (layout(offset=40 ) uniform 2-component vector of int) +0:91 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:91 Constant: +0:91 6 (const uint) +0:91 i1: direct index for structure (layout(offset=36 ) uniform int) +0:91 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:91 Constant: +0:91 5 (const uint) +0:92 imageAtomicOr (temp int) +0:92 'g_tTex2di1' (layout(r32i ) uniform iimage2D) +0:92 i2: direct index for structure (layout(offset=40 ) uniform 2-component vector of int) +0:92 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:92 Constant: +0:92 6 (const uint) +0:92 i1b: direct index for structure (layout(offset=60 ) uniform int) +0:92 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:92 Constant: +0:92 8 (const uint) +0:93 move second child to first child (temp int) +0:93 'out_i1' (temp int) +0:93 imageAtomicOr (temp int) +0:93 'g_tTex2di1' (layout(r32i ) uniform iimage2D) +0:93 i2: direct index for structure (layout(offset=40 ) uniform 2-component vector of int) +0:93 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:93 Constant: +0:93 6 (const uint) +0:93 i1: direct index for structure (layout(offset=36 ) uniform int) +0:93 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:93 Constant: +0:93 5 (const uint) +0:94 imageAtomicXor (temp int) +0:94 'g_tTex2di1' (layout(r32i ) uniform iimage2D) +0:94 i2: direct index for structure (layout(offset=40 ) uniform 2-component vector of int) +0:94 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:94 Constant: +0:94 6 (const uint) +0:94 i1b: direct index for structure (layout(offset=60 ) uniform int) +0:94 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:94 Constant: +0:94 8 (const uint) +0:95 move second child to first child (temp int) +0:95 'out_i1' (temp int) +0:95 imageAtomicXor (temp int) +0:95 'g_tTex2di1' (layout(r32i ) uniform iimage2D) +0:95 i2: direct index for structure (layout(offset=40 ) uniform 2-component vector of int) +0:95 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:95 Constant: +0:95 6 (const uint) +0:95 i1: direct index for structure (layout(offset=36 ) uniform int) +0:95 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:95 Constant: +0:95 5 (const uint) +0:98 imageAtomicAdd (temp uint) +0:98 'g_tTex2du1' (layout(r32ui ) uniform uimage2D) +0:98 u2: direct index for structure (layout(offset=8 ) uniform 2-component vector of uint) +0:98 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:98 Constant: +0:98 1 (const uint) +0:98 u1: direct index for structure (layout(offset=0 ) uniform uint) +0:98 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:98 Constant: +0:98 0 (const uint) +0:99 move second child to first child (temp uint) +0:99 'out_u1' (temp uint) +0:99 imageAtomicAdd (temp uint) +0:99 'g_tTex2du1' (layout(r32ui ) uniform uimage2D) +0:99 u2: direct index for structure (layout(offset=8 ) uniform 2-component vector of uint) +0:99 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:99 Constant: +0:99 1 (const uint) +0:99 u1: direct index for structure (layout(offset=0 ) uniform uint) +0:99 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:99 Constant: +0:99 0 (const uint) +0:100 imageAtomicAnd (temp uint) +0:100 'g_tTex2du1' (layout(r32ui ) uniform uimage2D) +0:100 u2: direct index for structure (layout(offset=8 ) uniform 2-component vector of uint) +0:100 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:100 Constant: +0:100 1 (const uint) +0:100 u1: direct index for structure (layout(offset=0 ) uniform uint) +0:100 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:100 Constant: +0:100 0 (const uint) +0:101 move second child to first child (temp uint) +0:101 'out_u1' (temp uint) +0:101 imageAtomicAnd (temp uint) +0:101 'g_tTex2du1' (layout(r32ui ) uniform uimage2D) +0:101 u2: direct index for structure (layout(offset=8 ) uniform 2-component vector of uint) +0:101 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:101 Constant: +0:101 1 (const uint) +0:101 u1: direct index for structure (layout(offset=0 ) uniform uint) +0:101 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:101 Constant: +0:101 0 (const uint) +0:102 move second child to first child (temp uint) +0:102 'out_u1' (temp uint) +0:102 imageAtomicCompSwap (temp uint) +0:102 'g_tTex2du1' (layout(r32ui ) uniform uimage2D) +0:102 u2: direct index for structure (layout(offset=8 ) uniform 2-component vector of uint) +0:102 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:102 Constant: +0:102 1 (const uint) +0:102 u1b: direct index for structure (layout(offset=28 ) uniform uint) +0:102 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:102 Constant: +0:102 3 (const uint) +0:102 u1c: direct index for structure (layout(offset=32 ) uniform uint) +0:102 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:102 Constant: +0:102 4 (const uint) +0:103 move second child to first child (temp uint) +0:103 'out_u1' (temp uint) +0:103 imageAtomicExchange (temp uint) +0:103 'g_tTex2du1' (layout(r32ui ) uniform uimage2D) +0:103 u2: direct index for structure (layout(offset=8 ) uniform 2-component vector of uint) +0:103 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:103 Constant: +0:103 1 (const uint) +0:103 u1: direct index for structure (layout(offset=0 ) uniform uint) +0:103 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:103 Constant: +0:103 0 (const uint) +0:104 imageAtomicMax (temp uint) +0:104 'g_tTex2du1' (layout(r32ui ) uniform uimage2D) +0:104 u2: direct index for structure (layout(offset=8 ) uniform 2-component vector of uint) +0:104 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:104 Constant: +0:104 1 (const uint) +0:104 u1: direct index for structure (layout(offset=0 ) uniform uint) +0:104 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:104 Constant: +0:104 0 (const uint) +0:105 move second child to first child (temp uint) +0:105 'out_u1' (temp uint) +0:105 imageAtomicMax (temp uint) +0:105 'g_tTex2du1' (layout(r32ui ) uniform uimage2D) +0:105 u2: direct index for structure (layout(offset=8 ) uniform 2-component vector of uint) +0:105 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:105 Constant: +0:105 1 (const uint) +0:105 u1: direct index for structure (layout(offset=0 ) uniform uint) +0:105 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:105 Constant: +0:105 0 (const uint) +0:106 imageAtomicMin (temp uint) +0:106 'g_tTex2du1' (layout(r32ui ) uniform uimage2D) +0:106 u2: direct index for structure (layout(offset=8 ) uniform 2-component vector of uint) +0:106 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:106 Constant: +0:106 1 (const uint) +0:106 u1: direct index for structure (layout(offset=0 ) uniform uint) +0:106 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:106 Constant: +0:106 0 (const uint) +0:107 move second child to first child (temp uint) +0:107 'out_u1' (temp uint) +0:107 imageAtomicMin (temp uint) +0:107 'g_tTex2du1' (layout(r32ui ) uniform uimage2D) +0:107 u2: direct index for structure (layout(offset=8 ) uniform 2-component vector of uint) +0:107 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:107 Constant: +0:107 1 (const uint) +0:107 u1: direct index for structure (layout(offset=0 ) uniform uint) +0:107 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:107 Constant: +0:107 0 (const uint) +0:108 imageAtomicOr (temp uint) +0:108 'g_tTex2du1' (layout(r32ui ) uniform uimage2D) +0:108 u2: direct index for structure (layout(offset=8 ) uniform 2-component vector of uint) +0:108 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:108 Constant: +0:108 1 (const uint) +0:108 u1: direct index for structure (layout(offset=0 ) uniform uint) +0:108 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:108 Constant: +0:108 0 (const uint) +0:109 move second child to first child (temp uint) +0:109 'out_u1' (temp uint) +0:109 imageAtomicOr (temp uint) +0:109 'g_tTex2du1' (layout(r32ui ) uniform uimage2D) +0:109 u2: direct index for structure (layout(offset=8 ) uniform 2-component vector of uint) +0:109 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:109 Constant: +0:109 1 (const uint) +0:109 u1: direct index for structure (layout(offset=0 ) uniform uint) +0:109 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:109 Constant: +0:109 0 (const uint) +0:110 imageAtomicXor (temp uint) +0:110 'g_tTex2du1' (layout(r32ui ) uniform uimage2D) +0:110 u2: direct index for structure (layout(offset=8 ) uniform 2-component vector of uint) +0:110 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:110 Constant: +0:110 1 (const uint) +0:110 u1: direct index for structure (layout(offset=0 ) uniform uint) +0:110 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:110 Constant: +0:110 0 (const uint) +0:111 move second child to first child (temp uint) +0:111 'out_u1' (temp uint) +0:111 imageAtomicXor (temp uint) +0:111 'g_tTex2du1' (layout(r32ui ) uniform uimage2D) +0:111 u2: direct index for structure (layout(offset=8 ) uniform 2-component vector of uint) +0:111 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:111 Constant: +0:111 1 (const uint) +0:111 u1: direct index for structure (layout(offset=0 ) uniform uint) +0:111 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:111 Constant: +0:111 0 (const uint) +0:114 imageAtomicAdd (temp int) +0:114 'g_tTex3di1' (layout(r32i ) uniform iimage3D) +0:114 i3: direct index for structure (layout(offset=48 ) uniform 3-component vector of int) +0:114 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:114 Constant: +0:114 7 (const uint) +0:114 i1b: direct index for structure (layout(offset=60 ) uniform int) +0:114 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:114 Constant: +0:114 8 (const uint) +0:115 move second child to first child (temp int) +0:115 'out_i1' (temp int) +0:115 imageAtomicAdd (temp int) +0:115 'g_tTex3di1' (layout(r32i ) uniform iimage3D) +0:115 i3: direct index for structure (layout(offset=48 ) uniform 3-component vector of int) +0:115 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:115 Constant: +0:115 7 (const uint) +0:115 i1: direct index for structure (layout(offset=36 ) uniform int) +0:115 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:115 Constant: +0:115 5 (const uint) +0:116 imageAtomicAnd (temp int) +0:116 'g_tTex3di1' (layout(r32i ) uniform iimage3D) +0:116 i3: direct index for structure (layout(offset=48 ) uniform 3-component vector of int) +0:116 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:116 Constant: +0:116 7 (const uint) +0:116 i1b: direct index for structure (layout(offset=60 ) uniform int) +0:116 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:116 Constant: +0:116 8 (const uint) +0:117 move second child to first child (temp int) +0:117 'out_i1' (temp int) +0:117 imageAtomicAnd (temp int) +0:117 'g_tTex3di1' (layout(r32i ) uniform iimage3D) +0:117 i3: direct index for structure (layout(offset=48 ) uniform 3-component vector of int) +0:117 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:117 Constant: +0:117 7 (const uint) +0:117 i1: direct index for structure (layout(offset=36 ) uniform int) +0:117 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:117 Constant: +0:117 5 (const uint) +0:118 move second child to first child (temp int) +0:118 'out_i1' (temp int) +0:118 imageAtomicCompSwap (temp int) +0:118 'g_tTex3di1' (layout(r32i ) uniform iimage3D) +0:118 i3: direct index for structure (layout(offset=48 ) uniform 3-component vector of int) +0:118 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:118 Constant: +0:118 7 (const uint) +0:118 i1b: direct index for structure (layout(offset=60 ) uniform int) +0:118 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:118 Constant: +0:118 8 (const uint) +0:118 i1c: direct index for structure (layout(offset=64 ) uniform int) +0:118 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:118 Constant: +0:118 9 (const uint) +0:119 move second child to first child (temp int) +0:119 'out_i1' (temp int) +0:119 imageAtomicExchange (temp int) +0:119 'g_tTex3di1' (layout(r32i ) uniform iimage3D) +0:119 i3: direct index for structure (layout(offset=48 ) uniform 3-component vector of int) +0:119 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:119 Constant: +0:119 7 (const uint) +0:119 i1: direct index for structure (layout(offset=36 ) uniform int) +0:119 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:119 Constant: +0:119 5 (const uint) +0:120 imageAtomicMax (temp int) +0:120 'g_tTex3di1' (layout(r32i ) uniform iimage3D) +0:120 i3: direct index for structure (layout(offset=48 ) uniform 3-component vector of int) +0:120 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:120 Constant: +0:120 7 (const uint) +0:120 i1b: direct index for structure (layout(offset=60 ) uniform int) +0:120 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:120 Constant: +0:120 8 (const uint) +0:121 move second child to first child (temp int) +0:121 'out_i1' (temp int) +0:121 imageAtomicMax (temp int) +0:121 'g_tTex3di1' (layout(r32i ) uniform iimage3D) +0:121 i3: direct index for structure (layout(offset=48 ) uniform 3-component vector of int) +0:121 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:121 Constant: +0:121 7 (const uint) +0:121 i1: direct index for structure (layout(offset=36 ) uniform int) +0:121 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:121 Constant: +0:121 5 (const uint) +0:122 imageAtomicMin (temp int) +0:122 'g_tTex3di1' (layout(r32i ) uniform iimage3D) +0:122 i3: direct index for structure (layout(offset=48 ) uniform 3-component vector of int) +0:122 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:122 Constant: +0:122 7 (const uint) +0:122 i1b: direct index for structure (layout(offset=60 ) uniform int) +0:122 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:122 Constant: +0:122 8 (const uint) +0:123 move second child to first child (temp int) +0:123 'out_i1' (temp int) +0:123 imageAtomicMin (temp int) +0:123 'g_tTex3di1' (layout(r32i ) uniform iimage3D) +0:123 i3: direct index for structure (layout(offset=48 ) uniform 3-component vector of int) +0:123 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:123 Constant: +0:123 7 (const uint) +0:123 i1: direct index for structure (layout(offset=36 ) uniform int) +0:123 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:123 Constant: +0:123 5 (const uint) +0:124 imageAtomicOr (temp int) +0:124 'g_tTex3di1' (layout(r32i ) uniform iimage3D) +0:124 i3: direct index for structure (layout(offset=48 ) uniform 3-component vector of int) +0:124 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:124 Constant: +0:124 7 (const uint) +0:124 i1b: direct index for structure (layout(offset=60 ) uniform int) +0:124 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:124 Constant: +0:124 8 (const uint) +0:125 move second child to first child (temp int) +0:125 'out_i1' (temp int) +0:125 imageAtomicOr (temp int) +0:125 'g_tTex3di1' (layout(r32i ) uniform iimage3D) +0:125 i3: direct index for structure (layout(offset=48 ) uniform 3-component vector of int) +0:125 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:125 Constant: +0:125 7 (const uint) +0:125 i1: direct index for structure (layout(offset=36 ) uniform int) +0:125 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:125 Constant: +0:125 5 (const uint) +0:126 imageAtomicXor (temp int) +0:126 'g_tTex3di1' (layout(r32i ) uniform iimage3D) +0:126 i3: direct index for structure (layout(offset=48 ) uniform 3-component vector of int) +0:126 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:126 Constant: +0:126 7 (const uint) +0:126 i1b: direct index for structure (layout(offset=60 ) uniform int) +0:126 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:126 Constant: +0:126 8 (const uint) +0:127 move second child to first child (temp int) +0:127 'out_i1' (temp int) +0:127 imageAtomicXor (temp int) +0:127 'g_tTex3di1' (layout(r32i ) uniform iimage3D) +0:127 i3: direct index for structure (layout(offset=48 ) uniform 3-component vector of int) +0:127 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:127 Constant: +0:127 7 (const uint) +0:127 i1: direct index for structure (layout(offset=36 ) uniform int) +0:127 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:127 Constant: +0:127 5 (const uint) +0:130 imageAtomicAdd (temp uint) +0:130 'g_tTex3du1' (layout(r32ui ) uniform uimage3D) +0:130 u3: direct index for structure (layout(offset=16 ) uniform 3-component vector of uint) +0:130 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:130 Constant: +0:130 2 (const uint) +0:130 u1: direct index for structure (layout(offset=0 ) uniform uint) +0:130 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:130 Constant: +0:130 0 (const uint) +0:131 move second child to first child (temp uint) +0:131 'out_u1' (temp uint) +0:131 imageAtomicAdd (temp uint) +0:131 'g_tTex3du1' (layout(r32ui ) uniform uimage3D) +0:131 u3: direct index for structure (layout(offset=16 ) uniform 3-component vector of uint) +0:131 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:131 Constant: +0:131 2 (const uint) +0:131 u1: direct index for structure (layout(offset=0 ) uniform uint) +0:131 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:131 Constant: +0:131 0 (const uint) +0:132 imageAtomicAnd (temp uint) +0:132 'g_tTex3du1' (layout(r32ui ) uniform uimage3D) +0:132 u3: direct index for structure (layout(offset=16 ) uniform 3-component vector of uint) +0:132 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:132 Constant: +0:132 2 (const uint) +0:132 u1: direct index for structure (layout(offset=0 ) uniform uint) +0:132 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:132 Constant: +0:132 0 (const uint) +0:133 move second child to first child (temp uint) +0:133 'out_u1' (temp uint) +0:133 imageAtomicAnd (temp uint) +0:133 'g_tTex3du1' (layout(r32ui ) uniform uimage3D) +0:133 u3: direct index for structure (layout(offset=16 ) uniform 3-component vector of uint) +0:133 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:133 Constant: +0:133 2 (const uint) +0:133 u1: direct index for structure (layout(offset=0 ) uniform uint) +0:133 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:133 Constant: +0:133 0 (const uint) +0:134 move second child to first child (temp uint) +0:134 'out_u1' (temp uint) +0:134 imageAtomicCompSwap (temp uint) +0:134 'g_tTex3du1' (layout(r32ui ) uniform uimage3D) +0:134 u3: direct index for structure (layout(offset=16 ) uniform 3-component vector of uint) +0:134 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:134 Constant: +0:134 2 (const uint) +0:134 u1b: direct index for structure (layout(offset=28 ) uniform uint) +0:134 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:134 Constant: +0:134 3 (const uint) +0:134 u1c: direct index for structure (layout(offset=32 ) uniform uint) +0:134 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:134 Constant: +0:134 4 (const uint) +0:135 move second child to first child (temp uint) +0:135 'out_u1' (temp uint) +0:135 imageAtomicExchange (temp uint) +0:135 'g_tTex3du1' (layout(r32ui ) uniform uimage3D) +0:135 u3: direct index for structure (layout(offset=16 ) uniform 3-component vector of uint) +0:135 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:135 Constant: +0:135 2 (const uint) +0:135 u1: direct index for structure (layout(offset=0 ) uniform uint) +0:135 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:135 Constant: +0:135 0 (const uint) +0:136 imageAtomicMax (temp uint) +0:136 'g_tTex3du1' (layout(r32ui ) uniform uimage3D) +0:136 u3: direct index for structure (layout(offset=16 ) uniform 3-component vector of uint) +0:136 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:136 Constant: +0:136 2 (const uint) +0:136 u1: direct index for structure (layout(offset=0 ) uniform uint) +0:136 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:136 Constant: +0:136 0 (const uint) +0:137 move second child to first child (temp uint) +0:137 'out_u1' (temp uint) +0:137 imageAtomicMax (temp uint) +0:137 'g_tTex3du1' (layout(r32ui ) uniform uimage3D) +0:137 u3: direct index for structure (layout(offset=16 ) uniform 3-component vector of uint) +0:137 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:137 Constant: +0:137 2 (const uint) +0:137 u1: direct index for structure (layout(offset=0 ) uniform uint) +0:137 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:137 Constant: +0:137 0 (const uint) +0:138 imageAtomicMin (temp uint) +0:138 'g_tTex3du1' (layout(r32ui ) uniform uimage3D) +0:138 u3: direct index for structure (layout(offset=16 ) uniform 3-component vector of uint) +0:138 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:138 Constant: +0:138 2 (const uint) +0:138 u1: direct index for structure (layout(offset=0 ) uniform uint) +0:138 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:138 Constant: +0:138 0 (const uint) +0:139 move second child to first child (temp uint) +0:139 'out_u1' (temp uint) +0:139 imageAtomicMin (temp uint) +0:139 'g_tTex3du1' (layout(r32ui ) uniform uimage3D) +0:139 u3: direct index for structure (layout(offset=16 ) uniform 3-component vector of uint) +0:139 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:139 Constant: +0:139 2 (const uint) +0:139 u1: direct index for structure (layout(offset=0 ) uniform uint) +0:139 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:139 Constant: +0:139 0 (const uint) +0:140 imageAtomicOr (temp uint) +0:140 'g_tTex3du1' (layout(r32ui ) uniform uimage3D) +0:140 u3: direct index for structure (layout(offset=16 ) uniform 3-component vector of uint) +0:140 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:140 Constant: +0:140 2 (const uint) +0:140 u1: direct index for structure (layout(offset=0 ) uniform uint) +0:140 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:140 Constant: +0:140 0 (const uint) +0:141 move second child to first child (temp uint) +0:141 'out_u1' (temp uint) +0:141 imageAtomicOr (temp uint) +0:141 'g_tTex3du1' (layout(r32ui ) uniform uimage3D) +0:141 u3: direct index for structure (layout(offset=16 ) uniform 3-component vector of uint) +0:141 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:141 Constant: +0:141 2 (const uint) +0:141 u1: direct index for structure (layout(offset=0 ) uniform uint) +0:141 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:141 Constant: +0:141 0 (const uint) +0:142 imageAtomicXor (temp uint) +0:142 'g_tTex3du1' (layout(r32ui ) uniform uimage3D) +0:142 u3: direct index for structure (layout(offset=16 ) uniform 3-component vector of uint) +0:142 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:142 Constant: +0:142 2 (const uint) +0:142 u1: direct index for structure (layout(offset=0 ) uniform uint) +0:142 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:142 Constant: +0:142 0 (const uint) +0:143 move second child to first child (temp uint) +0:143 'out_u1' (temp uint) +0:143 imageAtomicXor (temp uint) +0:143 'g_tTex3du1' (layout(r32ui ) uniform uimage3D) +0:143 u3: direct index for structure (layout(offset=16 ) uniform 3-component vector of uint) +0:143 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:143 Constant: +0:143 2 (const uint) +0:143 u1: direct index for structure (layout(offset=0 ) uniform uint) +0:143 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:143 Constant: +0:143 0 (const uint) +0:146 imageAtomicAdd (temp int) +0:146 'g_tTex1di1a' (layout(r32i ) uniform iimage1DArray) +0:146 i2: direct index for structure (layout(offset=40 ) uniform 2-component vector of int) +0:146 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:146 Constant: +0:146 6 (const uint) +0:146 i1b: direct index for structure (layout(offset=60 ) uniform int) +0:146 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:146 Constant: +0:146 8 (const uint) +0:147 move second child to first child (temp int) +0:147 'out_i1' (temp int) +0:147 imageAtomicAdd (temp int) +0:147 'g_tTex1di1a' (layout(r32i ) uniform iimage1DArray) +0:147 i2: direct index for structure (layout(offset=40 ) uniform 2-component vector of int) +0:147 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:147 Constant: +0:147 6 (const uint) +0:147 i1: direct index for structure (layout(offset=36 ) uniform int) +0:147 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:147 Constant: +0:147 5 (const uint) +0:148 imageAtomicAnd (temp int) +0:148 'g_tTex1di1a' (layout(r32i ) uniform iimage1DArray) +0:148 i2: direct index for structure (layout(offset=40 ) uniform 2-component vector of int) +0:148 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:148 Constant: +0:148 6 (const uint) +0:148 i1b: direct index for structure (layout(offset=60 ) uniform int) +0:148 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:148 Constant: +0:148 8 (const uint) +0:149 move second child to first child (temp int) +0:149 'out_i1' (temp int) +0:149 imageAtomicAnd (temp int) +0:149 'g_tTex1di1a' (layout(r32i ) uniform iimage1DArray) +0:149 i2: direct index for structure (layout(offset=40 ) uniform 2-component vector of int) +0:149 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:149 Constant: +0:149 6 (const uint) +0:149 i1: direct index for structure (layout(offset=36 ) uniform int) +0:149 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:149 Constant: +0:149 5 (const uint) +0:150 move second child to first child (temp int) +0:150 'out_i1' (temp int) +0:150 imageAtomicCompSwap (temp int) +0:150 'g_tTex1di1a' (layout(r32i ) uniform iimage1DArray) +0:150 i2: direct index for structure (layout(offset=40 ) uniform 2-component vector of int) +0:150 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:150 Constant: +0:150 6 (const uint) +0:150 i1b: direct index for structure (layout(offset=60 ) uniform int) +0:150 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:150 Constant: +0:150 8 (const uint) +0:150 i1c: direct index for structure (layout(offset=64 ) uniform int) +0:150 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:150 Constant: +0:150 9 (const uint) +0:151 move second child to first child (temp int) +0:151 'out_i1' (temp int) +0:151 imageAtomicExchange (temp int) +0:151 'g_tTex1di1a' (layout(r32i ) uniform iimage1DArray) +0:151 i2: direct index for structure (layout(offset=40 ) uniform 2-component vector of int) +0:151 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:151 Constant: +0:151 6 (const uint) +0:151 i1: direct index for structure (layout(offset=36 ) uniform int) +0:151 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:151 Constant: +0:151 5 (const uint) +0:152 imageAtomicMax (temp int) +0:152 'g_tTex1di1a' (layout(r32i ) uniform iimage1DArray) +0:152 i2: direct index for structure (layout(offset=40 ) uniform 2-component vector of int) +0:152 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:152 Constant: +0:152 6 (const uint) +0:152 i1b: direct index for structure (layout(offset=60 ) uniform int) +0:152 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:152 Constant: +0:152 8 (const uint) +0:153 move second child to first child (temp int) +0:153 'out_i1' (temp int) +0:153 imageAtomicMax (temp int) +0:153 'g_tTex1di1a' (layout(r32i ) uniform iimage1DArray) +0:153 i2: direct index for structure (layout(offset=40 ) uniform 2-component vector of int) +0:153 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:153 Constant: +0:153 6 (const uint) +0:153 i1: direct index for structure (layout(offset=36 ) uniform int) +0:153 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:153 Constant: +0:153 5 (const uint) +0:154 imageAtomicMin (temp int) +0:154 'g_tTex1di1a' (layout(r32i ) uniform iimage1DArray) +0:154 i2: direct index for structure (layout(offset=40 ) uniform 2-component vector of int) +0:154 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:154 Constant: +0:154 6 (const uint) +0:154 i1b: direct index for structure (layout(offset=60 ) uniform int) +0:154 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:154 Constant: +0:154 8 (const uint) +0:155 move second child to first child (temp int) +0:155 'out_i1' (temp int) +0:155 imageAtomicMin (temp int) +0:155 'g_tTex1di1a' (layout(r32i ) uniform iimage1DArray) +0:155 i2: direct index for structure (layout(offset=40 ) uniform 2-component vector of int) +0:155 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:155 Constant: +0:155 6 (const uint) +0:155 i1: direct index for structure (layout(offset=36 ) uniform int) +0:155 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:155 Constant: +0:155 5 (const uint) +0:156 imageAtomicOr (temp int) +0:156 'g_tTex1di1a' (layout(r32i ) uniform iimage1DArray) +0:156 i2: direct index for structure (layout(offset=40 ) uniform 2-component vector of int) +0:156 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:156 Constant: +0:156 6 (const uint) +0:156 i1b: direct index for structure (layout(offset=60 ) uniform int) +0:156 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:156 Constant: +0:156 8 (const uint) +0:157 move second child to first child (temp int) +0:157 'out_i1' (temp int) +0:157 imageAtomicOr (temp int) +0:157 'g_tTex1di1a' (layout(r32i ) uniform iimage1DArray) +0:157 i2: direct index for structure (layout(offset=40 ) uniform 2-component vector of int) +0:157 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:157 Constant: +0:157 6 (const uint) +0:157 i1: direct index for structure (layout(offset=36 ) uniform int) +0:157 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:157 Constant: +0:157 5 (const uint) +0:158 imageAtomicXor (temp int) +0:158 'g_tTex1di1a' (layout(r32i ) uniform iimage1DArray) +0:158 i2: direct index for structure (layout(offset=40 ) uniform 2-component vector of int) +0:158 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:158 Constant: +0:158 6 (const uint) +0:158 i1b: direct index for structure (layout(offset=60 ) uniform int) +0:158 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:158 Constant: +0:158 8 (const uint) +0:159 move second child to first child (temp int) +0:159 'out_i1' (temp int) +0:159 imageAtomicXor (temp int) +0:159 'g_tTex1di1a' (layout(r32i ) uniform iimage1DArray) +0:159 i2: direct index for structure (layout(offset=40 ) uniform 2-component vector of int) +0:159 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:159 Constant: +0:159 6 (const uint) +0:159 i1: direct index for structure (layout(offset=36 ) uniform int) +0:159 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:159 Constant: +0:159 5 (const uint) +0:162 imageAtomicAdd (temp uint) +0:162 'g_tTex1du1a' (layout(r32ui ) uniform uimage1DArray) +0:162 u2: direct index for structure (layout(offset=8 ) uniform 2-component vector of uint) +0:162 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:162 Constant: +0:162 1 (const uint) +0:162 u1: direct index for structure (layout(offset=0 ) uniform uint) +0:162 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:162 Constant: +0:162 0 (const uint) +0:163 move second child to first child (temp uint) +0:163 'out_u1' (temp uint) +0:163 imageAtomicAdd (temp uint) +0:163 'g_tTex1du1a' (layout(r32ui ) uniform uimage1DArray) +0:163 u2: direct index for structure (layout(offset=8 ) uniform 2-component vector of uint) +0:163 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:163 Constant: +0:163 1 (const uint) +0:163 u1: direct index for structure (layout(offset=0 ) uniform uint) +0:163 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:163 Constant: +0:163 0 (const uint) +0:164 imageAtomicAnd (temp uint) +0:164 'g_tTex1du1a' (layout(r32ui ) uniform uimage1DArray) +0:164 u2: direct index for structure (layout(offset=8 ) uniform 2-component vector of uint) +0:164 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:164 Constant: +0:164 1 (const uint) +0:164 u1: direct index for structure (layout(offset=0 ) uniform uint) +0:164 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:164 Constant: +0:164 0 (const uint) +0:165 move second child to first child (temp uint) +0:165 'out_u1' (temp uint) +0:165 imageAtomicAnd (temp uint) +0:165 'g_tTex1du1a' (layout(r32ui ) uniform uimage1DArray) +0:165 u2: direct index for structure (layout(offset=8 ) uniform 2-component vector of uint) +0:165 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:165 Constant: +0:165 1 (const uint) +0:165 u1: direct index for structure (layout(offset=0 ) uniform uint) +0:165 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:165 Constant: +0:165 0 (const uint) +0:166 move second child to first child (temp uint) +0:166 'out_u1' (temp uint) +0:166 imageAtomicCompSwap (temp uint) +0:166 'g_tTex1du1a' (layout(r32ui ) uniform uimage1DArray) +0:166 u2: direct index for structure (layout(offset=8 ) uniform 2-component vector of uint) +0:166 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:166 Constant: +0:166 1 (const uint) +0:166 u1b: direct index for structure (layout(offset=28 ) uniform uint) +0:166 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:166 Constant: +0:166 3 (const uint) +0:166 u1c: direct index for structure (layout(offset=32 ) uniform uint) +0:166 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:166 Constant: +0:166 4 (const uint) +0:167 move second child to first child (temp uint) +0:167 'out_u1' (temp uint) +0:167 imageAtomicExchange (temp uint) +0:167 'g_tTex1du1a' (layout(r32ui ) uniform uimage1DArray) +0:167 u2: direct index for structure (layout(offset=8 ) uniform 2-component vector of uint) +0:167 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:167 Constant: +0:167 1 (const uint) +0:167 u1: direct index for structure (layout(offset=0 ) uniform uint) +0:167 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:167 Constant: +0:167 0 (const uint) +0:168 imageAtomicMax (temp uint) +0:168 'g_tTex1du1a' (layout(r32ui ) uniform uimage1DArray) +0:168 u2: direct index for structure (layout(offset=8 ) uniform 2-component vector of uint) +0:168 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:168 Constant: +0:168 1 (const uint) +0:168 u1: direct index for structure (layout(offset=0 ) uniform uint) +0:168 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:168 Constant: +0:168 0 (const uint) +0:169 move second child to first child (temp uint) +0:169 'out_u1' (temp uint) +0:169 imageAtomicMax (temp uint) +0:169 'g_tTex1du1a' (layout(r32ui ) uniform uimage1DArray) +0:169 u2: direct index for structure (layout(offset=8 ) uniform 2-component vector of uint) +0:169 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:169 Constant: +0:169 1 (const uint) +0:169 u1: direct index for structure (layout(offset=0 ) uniform uint) +0:169 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:169 Constant: +0:169 0 (const uint) +0:170 imageAtomicMin (temp uint) +0:170 'g_tTex1du1a' (layout(r32ui ) uniform uimage1DArray) +0:170 u2: direct index for structure (layout(offset=8 ) uniform 2-component vector of uint) +0:170 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:170 Constant: +0:170 1 (const uint) +0:170 u1: direct index for structure (layout(offset=0 ) uniform uint) +0:170 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:170 Constant: +0:170 0 (const uint) +0:171 move second child to first child (temp uint) +0:171 'out_u1' (temp uint) +0:171 imageAtomicMin (temp uint) +0:171 'g_tTex1du1a' (layout(r32ui ) uniform uimage1DArray) +0:171 u2: direct index for structure (layout(offset=8 ) uniform 2-component vector of uint) +0:171 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:171 Constant: +0:171 1 (const uint) +0:171 u1: direct index for structure (layout(offset=0 ) uniform uint) +0:171 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:171 Constant: +0:171 0 (const uint) +0:172 imageAtomicOr (temp uint) +0:172 'g_tTex1du1a' (layout(r32ui ) uniform uimage1DArray) +0:172 u2: direct index for structure (layout(offset=8 ) uniform 2-component vector of uint) +0:172 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:172 Constant: +0:172 1 (const uint) +0:172 u1: direct index for structure (layout(offset=0 ) uniform uint) +0:172 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:172 Constant: +0:172 0 (const uint) +0:173 move second child to first child (temp uint) +0:173 'out_u1' (temp uint) +0:173 imageAtomicOr (temp uint) +0:173 'g_tTex1du1a' (layout(r32ui ) uniform uimage1DArray) +0:173 u2: direct index for structure (layout(offset=8 ) uniform 2-component vector of uint) +0:173 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:173 Constant: +0:173 1 (const uint) +0:173 u1: direct index for structure (layout(offset=0 ) uniform uint) +0:173 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:173 Constant: +0:173 0 (const uint) +0:174 imageAtomicXor (temp uint) +0:174 'g_tTex1du1a' (layout(r32ui ) uniform uimage1DArray) +0:174 u2: direct index for structure (layout(offset=8 ) uniform 2-component vector of uint) +0:174 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:174 Constant: +0:174 1 (const uint) +0:174 u1: direct index for structure (layout(offset=0 ) uniform uint) +0:174 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:174 Constant: +0:174 0 (const uint) +0:175 move second child to first child (temp uint) +0:175 'out_u1' (temp uint) +0:175 imageAtomicXor (temp uint) +0:175 'g_tTex1du1a' (layout(r32ui ) uniform uimage1DArray) +0:175 u2: direct index for structure (layout(offset=8 ) uniform 2-component vector of uint) +0:175 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:175 Constant: +0:175 1 (const uint) +0:175 u1: direct index for structure (layout(offset=0 ) uniform uint) +0:175 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:175 Constant: +0:175 0 (const uint) +0:178 imageAtomicAdd (temp int) +0:178 'g_tTex1di1a' (layout(r32i ) uniform iimage1DArray) +0:178 i2: direct index for structure (layout(offset=40 ) uniform 2-component vector of int) +0:178 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:178 Constant: +0:178 6 (const uint) +0:178 i1b: direct index for structure (layout(offset=60 ) uniform int) +0:178 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:178 Constant: +0:178 8 (const uint) +0:179 move second child to first child (temp int) +0:179 'out_i1' (temp int) +0:179 imageAtomicAdd (temp int) +0:179 'g_tTex1di1a' (layout(r32i ) uniform iimage1DArray) +0:179 i2: direct index for structure (layout(offset=40 ) uniform 2-component vector of int) +0:179 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:179 Constant: +0:179 6 (const uint) +0:179 i1: direct index for structure (layout(offset=36 ) uniform int) +0:179 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:179 Constant: +0:179 5 (const uint) +0:180 imageAtomicAnd (temp int) +0:180 'g_tTex1di1a' (layout(r32i ) uniform iimage1DArray) +0:180 i2: direct index for structure (layout(offset=40 ) uniform 2-component vector of int) +0:180 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:180 Constant: +0:180 6 (const uint) +0:180 i1b: direct index for structure (layout(offset=60 ) uniform int) +0:180 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:180 Constant: +0:180 8 (const uint) +0:181 move second child to first child (temp int) +0:181 'out_i1' (temp int) +0:181 imageAtomicAnd (temp int) +0:181 'g_tTex1di1a' (layout(r32i ) uniform iimage1DArray) +0:181 i2: direct index for structure (layout(offset=40 ) uniform 2-component vector of int) +0:181 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:181 Constant: +0:181 6 (const uint) +0:181 i1: direct index for structure (layout(offset=36 ) uniform int) +0:181 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:181 Constant: +0:181 5 (const uint) +0:182 move second child to first child (temp int) +0:182 'out_i1' (temp int) +0:182 imageAtomicCompSwap (temp int) +0:182 'g_tTex1di1a' (layout(r32i ) uniform iimage1DArray) +0:182 i2: direct index for structure (layout(offset=40 ) uniform 2-component vector of int) +0:182 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:182 Constant: +0:182 6 (const uint) +0:182 i1b: direct index for structure (layout(offset=60 ) uniform int) +0:182 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:182 Constant: +0:182 8 (const uint) +0:182 i1c: direct index for structure (layout(offset=64 ) uniform int) +0:182 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:182 Constant: +0:182 9 (const uint) +0:183 move second child to first child (temp int) +0:183 'out_i1' (temp int) +0:183 imageAtomicExchange (temp int) +0:183 'g_tTex1di1a' (layout(r32i ) uniform iimage1DArray) +0:183 i2: direct index for structure (layout(offset=40 ) uniform 2-component vector of int) +0:183 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:183 Constant: +0:183 6 (const uint) +0:183 i1: direct index for structure (layout(offset=36 ) uniform int) +0:183 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:183 Constant: +0:183 5 (const uint) +0:184 imageAtomicMax (temp int) +0:184 'g_tTex1di1a' (layout(r32i ) uniform iimage1DArray) +0:184 i2: direct index for structure (layout(offset=40 ) uniform 2-component vector of int) +0:184 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:184 Constant: +0:184 6 (const uint) +0:184 i1b: direct index for structure (layout(offset=60 ) uniform int) +0:184 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:184 Constant: +0:184 8 (const uint) +0:185 move second child to first child (temp int) +0:185 'out_i1' (temp int) +0:185 imageAtomicMax (temp int) +0:185 'g_tTex1di1a' (layout(r32i ) uniform iimage1DArray) +0:185 i2: direct index for structure (layout(offset=40 ) uniform 2-component vector of int) +0:185 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:185 Constant: +0:185 6 (const uint) +0:185 i1: direct index for structure (layout(offset=36 ) uniform int) +0:185 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:185 Constant: +0:185 5 (const uint) +0:186 imageAtomicMin (temp int) +0:186 'g_tTex1di1a' (layout(r32i ) uniform iimage1DArray) +0:186 i2: direct index for structure (layout(offset=40 ) uniform 2-component vector of int) +0:186 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:186 Constant: +0:186 6 (const uint) +0:186 i1b: direct index for structure (layout(offset=60 ) uniform int) +0:186 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:186 Constant: +0:186 8 (const uint) +0:187 move second child to first child (temp int) +0:187 'out_i1' (temp int) +0:187 imageAtomicMin (temp int) +0:187 'g_tTex1di1a' (layout(r32i ) uniform iimage1DArray) +0:187 i2: direct index for structure (layout(offset=40 ) uniform 2-component vector of int) +0:187 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:187 Constant: +0:187 6 (const uint) +0:187 i1: direct index for structure (layout(offset=36 ) uniform int) +0:187 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:187 Constant: +0:187 5 (const uint) +0:188 imageAtomicOr (temp int) +0:188 'g_tTex1di1a' (layout(r32i ) uniform iimage1DArray) +0:188 i2: direct index for structure (layout(offset=40 ) uniform 2-component vector of int) +0:188 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:188 Constant: +0:188 6 (const uint) +0:188 i1b: direct index for structure (layout(offset=60 ) uniform int) +0:188 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:188 Constant: +0:188 8 (const uint) +0:189 move second child to first child (temp int) +0:189 'out_i1' (temp int) +0:189 imageAtomicOr (temp int) +0:189 'g_tTex1di1a' (layout(r32i ) uniform iimage1DArray) +0:189 i2: direct index for structure (layout(offset=40 ) uniform 2-component vector of int) +0:189 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:189 Constant: +0:189 6 (const uint) +0:189 i1: direct index for structure (layout(offset=36 ) uniform int) +0:189 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:189 Constant: +0:189 5 (const uint) +0:190 imageAtomicXor (temp int) +0:190 'g_tTex1di1a' (layout(r32i ) uniform iimage1DArray) +0:190 i2: direct index for structure (layout(offset=40 ) uniform 2-component vector of int) +0:190 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:190 Constant: +0:190 6 (const uint) +0:190 i1b: direct index for structure (layout(offset=60 ) uniform int) +0:190 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:190 Constant: +0:190 8 (const uint) +0:191 move second child to first child (temp int) +0:191 'out_i1' (temp int) +0:191 imageAtomicXor (temp int) +0:191 'g_tTex1di1a' (layout(r32i ) uniform iimage1DArray) +0:191 i2: direct index for structure (layout(offset=40 ) uniform 2-component vector of int) +0:191 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:191 Constant: +0:191 6 (const uint) +0:191 i1: direct index for structure (layout(offset=36 ) uniform int) +0:191 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:191 Constant: +0:191 5 (const uint) +0:194 imageAtomicAdd (temp uint) +0:194 'g_tTex1du1a' (layout(r32ui ) uniform uimage1DArray) +0:194 u2: direct index for structure (layout(offset=8 ) uniform 2-component vector of uint) +0:194 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:194 Constant: +0:194 1 (const uint) +0:194 u1: direct index for structure (layout(offset=0 ) uniform uint) +0:194 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:194 Constant: +0:194 0 (const uint) +0:195 move second child to first child (temp uint) +0:195 'out_u1' (temp uint) +0:195 imageAtomicAdd (temp uint) +0:195 'g_tTex1du1a' (layout(r32ui ) uniform uimage1DArray) +0:195 u2: direct index for structure (layout(offset=8 ) uniform 2-component vector of uint) +0:195 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:195 Constant: +0:195 1 (const uint) +0:195 u1: direct index for structure (layout(offset=0 ) uniform uint) +0:195 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:195 Constant: +0:195 0 (const uint) +0:196 imageAtomicAnd (temp uint) +0:196 'g_tTex1du1a' (layout(r32ui ) uniform uimage1DArray) +0:196 u2: direct index for structure (layout(offset=8 ) uniform 2-component vector of uint) +0:196 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:196 Constant: +0:196 1 (const uint) +0:196 u1: direct index for structure (layout(offset=0 ) uniform uint) +0:196 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:196 Constant: +0:196 0 (const uint) +0:197 move second child to first child (temp uint) +0:197 'out_u1' (temp uint) +0:197 imageAtomicAnd (temp uint) +0:197 'g_tTex1du1a' (layout(r32ui ) uniform uimage1DArray) +0:197 u2: direct index for structure (layout(offset=8 ) uniform 2-component vector of uint) +0:197 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:197 Constant: +0:197 1 (const uint) +0:197 u1: direct index for structure (layout(offset=0 ) uniform uint) +0:197 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:197 Constant: +0:197 0 (const uint) +0:198 move second child to first child (temp uint) +0:198 'out_u1' (temp uint) +0:198 imageAtomicCompSwap (temp uint) +0:198 'g_tTex1du1a' (layout(r32ui ) uniform uimage1DArray) +0:198 u2: direct index for structure (layout(offset=8 ) uniform 2-component vector of uint) +0:198 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:198 Constant: +0:198 1 (const uint) +0:198 u1b: direct index for structure (layout(offset=28 ) uniform uint) +0:198 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:198 Constant: +0:198 3 (const uint) +0:198 u1c: direct index for structure (layout(offset=32 ) uniform uint) +0:198 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:198 Constant: +0:198 4 (const uint) +0:199 move second child to first child (temp uint) +0:199 'out_u1' (temp uint) +0:199 imageAtomicExchange (temp uint) +0:199 'g_tTex1du1a' (layout(r32ui ) uniform uimage1DArray) +0:199 u2: direct index for structure (layout(offset=8 ) uniform 2-component vector of uint) +0:199 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:199 Constant: +0:199 1 (const uint) +0:199 u1: direct index for structure (layout(offset=0 ) uniform uint) +0:199 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:199 Constant: +0:199 0 (const uint) +0:200 imageAtomicMax (temp uint) +0:200 'g_tTex1du1a' (layout(r32ui ) uniform uimage1DArray) +0:200 u2: direct index for structure (layout(offset=8 ) uniform 2-component vector of uint) +0:200 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:200 Constant: +0:200 1 (const uint) +0:200 u1: direct index for structure (layout(offset=0 ) uniform uint) +0:200 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:200 Constant: +0:200 0 (const uint) +0:201 move second child to first child (temp uint) +0:201 'out_u1' (temp uint) +0:201 imageAtomicMax (temp uint) +0:201 'g_tTex1du1a' (layout(r32ui ) uniform uimage1DArray) +0:201 u2: direct index for structure (layout(offset=8 ) uniform 2-component vector of uint) +0:201 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:201 Constant: +0:201 1 (const uint) +0:201 u1: direct index for structure (layout(offset=0 ) uniform uint) +0:201 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:201 Constant: +0:201 0 (const uint) +0:202 imageAtomicMin (temp uint) +0:202 'g_tTex1du1a' (layout(r32ui ) uniform uimage1DArray) +0:202 u2: direct index for structure (layout(offset=8 ) uniform 2-component vector of uint) +0:202 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:202 Constant: +0:202 1 (const uint) +0:202 u1: direct index for structure (layout(offset=0 ) uniform uint) +0:202 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:202 Constant: +0:202 0 (const uint) +0:203 move second child to first child (temp uint) +0:203 'out_u1' (temp uint) +0:203 imageAtomicMin (temp uint) +0:203 'g_tTex1du1a' (layout(r32ui ) uniform uimage1DArray) +0:203 u2: direct index for structure (layout(offset=8 ) uniform 2-component vector of uint) +0:203 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:203 Constant: +0:203 1 (const uint) +0:203 u1: direct index for structure (layout(offset=0 ) uniform uint) +0:203 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:203 Constant: +0:203 0 (const uint) +0:204 imageAtomicOr (temp uint) +0:204 'g_tTex1du1a' (layout(r32ui ) uniform uimage1DArray) +0:204 u2: direct index for structure (layout(offset=8 ) uniform 2-component vector of uint) +0:204 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:204 Constant: +0:204 1 (const uint) +0:204 u1: direct index for structure (layout(offset=0 ) uniform uint) +0:204 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:204 Constant: +0:204 0 (const uint) +0:205 move second child to first child (temp uint) +0:205 'out_u1' (temp uint) +0:205 imageAtomicOr (temp uint) +0:205 'g_tTex1du1a' (layout(r32ui ) uniform uimage1DArray) +0:205 u2: direct index for structure (layout(offset=8 ) uniform 2-component vector of uint) +0:205 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:205 Constant: +0:205 1 (const uint) +0:205 u1: direct index for structure (layout(offset=0 ) uniform uint) +0:205 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:205 Constant: +0:205 0 (const uint) +0:206 imageAtomicXor (temp uint) +0:206 'g_tTex1du1a' (layout(r32ui ) uniform uimage1DArray) +0:206 u2: direct index for structure (layout(offset=8 ) uniform 2-component vector of uint) +0:206 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:206 Constant: +0:206 1 (const uint) +0:206 u1: direct index for structure (layout(offset=0 ) uniform uint) +0:206 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:206 Constant: +0:206 0 (const uint) +0:207 move second child to first child (temp uint) +0:207 'out_u1' (temp uint) +0:207 imageAtomicXor (temp uint) +0:207 'g_tTex1du1a' (layout(r32ui ) uniform uimage1DArray) +0:207 u2: direct index for structure (layout(offset=8 ) uniform 2-component vector of uint) +0:207 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:207 Constant: +0:207 1 (const uint) +0:207 u1: direct index for structure (layout(offset=0 ) uniform uint) +0:207 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:207 Constant: +0:207 0 (const uint) +0:210 imageAtomicAdd (temp int) +0:210 'g_tBuffI' (layout(r32i ) uniform iimageBuffer) +0:210 i1: direct index for structure (layout(offset=36 ) uniform int) +0:210 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:210 Constant: +0:210 5 (const uint) +0:210 i1b: direct index for structure (layout(offset=60 ) uniform int) +0:210 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:210 Constant: +0:210 8 (const uint) +0:211 move second child to first child (temp int) +0:211 'out_i1' (temp int) +0:211 imageAtomicAdd (temp int) +0:211 'g_tBuffI' (layout(r32i ) uniform iimageBuffer) +0:211 i1: direct index for structure (layout(offset=36 ) uniform int) +0:211 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:211 Constant: +0:211 5 (const uint) +0:211 i1: direct index for structure (layout(offset=36 ) uniform int) +0:211 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:211 Constant: +0:211 5 (const uint) +0:212 imageAtomicAnd (temp int) +0:212 'g_tBuffI' (layout(r32i ) uniform iimageBuffer) +0:212 i1: direct index for structure (layout(offset=36 ) uniform int) +0:212 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:212 Constant: +0:212 5 (const uint) +0:212 i1b: direct index for structure (layout(offset=60 ) uniform int) +0:212 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:212 Constant: +0:212 8 (const uint) +0:213 move second child to first child (temp int) +0:213 'out_i1' (temp int) +0:213 imageAtomicAnd (temp int) +0:213 'g_tBuffI' (layout(r32i ) uniform iimageBuffer) +0:213 i1: direct index for structure (layout(offset=36 ) uniform int) +0:213 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:213 Constant: +0:213 5 (const uint) +0:213 i1: direct index for structure (layout(offset=36 ) uniform int) +0:213 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:213 Constant: +0:213 5 (const uint) +0:214 move second child to first child (temp int) +0:214 'out_i1' (temp int) +0:214 imageAtomicCompSwap (temp int) +0:214 'g_tBuffI' (layout(r32i ) uniform iimageBuffer) +0:214 i1: direct index for structure (layout(offset=36 ) uniform int) +0:214 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:214 Constant: +0:214 5 (const uint) +0:214 i1b: direct index for structure (layout(offset=60 ) uniform int) +0:214 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:214 Constant: +0:214 8 (const uint) +0:214 i1c: direct index for structure (layout(offset=64 ) uniform int) +0:214 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:214 Constant: +0:214 9 (const uint) +0:215 move second child to first child (temp int) +0:215 'out_i1' (temp int) +0:215 imageAtomicExchange (temp int) +0:215 'g_tBuffI' (layout(r32i ) uniform iimageBuffer) +0:215 i1: direct index for structure (layout(offset=36 ) uniform int) +0:215 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:215 Constant: +0:215 5 (const uint) +0:215 i1: direct index for structure (layout(offset=36 ) uniform int) +0:215 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:215 Constant: +0:215 5 (const uint) +0:216 imageAtomicMax (temp int) +0:216 'g_tBuffI' (layout(r32i ) uniform iimageBuffer) +0:216 i1: direct index for structure (layout(offset=36 ) uniform int) +0:216 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:216 Constant: +0:216 5 (const uint) +0:216 i1b: direct index for structure (layout(offset=60 ) uniform int) +0:216 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:216 Constant: +0:216 8 (const uint) +0:217 move second child to first child (temp int) +0:217 'out_i1' (temp int) +0:217 imageAtomicMax (temp int) +0:217 'g_tBuffI' (layout(r32i ) uniform iimageBuffer) +0:217 i1: direct index for structure (layout(offset=36 ) uniform int) +0:217 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:217 Constant: +0:217 5 (const uint) +0:217 i1: direct index for structure (layout(offset=36 ) uniform int) +0:217 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:217 Constant: +0:217 5 (const uint) +0:218 imageAtomicMin (temp int) +0:218 'g_tBuffI' (layout(r32i ) uniform iimageBuffer) +0:218 i1: direct index for structure (layout(offset=36 ) uniform int) +0:218 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:218 Constant: +0:218 5 (const uint) +0:218 i1b: direct index for structure (layout(offset=60 ) uniform int) +0:218 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:218 Constant: +0:218 8 (const uint) +0:219 move second child to first child (temp int) +0:219 'out_i1' (temp int) +0:219 imageAtomicMin (temp int) +0:219 'g_tBuffI' (layout(r32i ) uniform iimageBuffer) +0:219 i1: direct index for structure (layout(offset=36 ) uniform int) +0:219 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:219 Constant: +0:219 5 (const uint) +0:219 i1: direct index for structure (layout(offset=36 ) uniform int) +0:219 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:219 Constant: +0:219 5 (const uint) +0:220 imageAtomicOr (temp int) +0:220 'g_tBuffI' (layout(r32i ) uniform iimageBuffer) +0:220 i1: direct index for structure (layout(offset=36 ) uniform int) +0:220 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:220 Constant: +0:220 5 (const uint) +0:220 i1b: direct index for structure (layout(offset=60 ) uniform int) +0:220 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:220 Constant: +0:220 8 (const uint) +0:221 move second child to first child (temp int) +0:221 'out_i1' (temp int) +0:221 imageAtomicOr (temp int) +0:221 'g_tBuffI' (layout(r32i ) uniform iimageBuffer) +0:221 i1: direct index for structure (layout(offset=36 ) uniform int) +0:221 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:221 Constant: +0:221 5 (const uint) +0:221 i1: direct index for structure (layout(offset=36 ) uniform int) +0:221 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:221 Constant: +0:221 5 (const uint) +0:222 imageAtomicXor (temp int) +0:222 'g_tBuffI' (layout(r32i ) uniform iimageBuffer) +0:222 i1: direct index for structure (layout(offset=36 ) uniform int) +0:222 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:222 Constant: +0:222 5 (const uint) +0:222 i1b: direct index for structure (layout(offset=60 ) uniform int) +0:222 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:222 Constant: +0:222 8 (const uint) +0:223 move second child to first child (temp int) +0:223 'out_i1' (temp int) +0:223 imageAtomicXor (temp int) +0:223 'g_tBuffI' (layout(r32i ) uniform iimageBuffer) +0:223 i1: direct index for structure (layout(offset=36 ) uniform int) +0:223 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:223 Constant: +0:223 5 (const uint) +0:223 i1: direct index for structure (layout(offset=36 ) uniform int) +0:223 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:223 Constant: +0:223 5 (const uint) +0:226 imageAtomicAdd (temp uint) +0:226 'g_tBuffU' (layout(r32ui ) uniform uimageBuffer) +0:226 u1: direct index for structure (layout(offset=0 ) uniform uint) +0:226 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:226 Constant: +0:226 0 (const uint) +0:226 u1: direct index for structure (layout(offset=0 ) uniform uint) +0:226 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:226 Constant: +0:226 0 (const uint) +0:227 move second child to first child (temp uint) +0:227 'out_u1' (temp uint) +0:227 imageAtomicAdd (temp uint) +0:227 'g_tBuffU' (layout(r32ui ) uniform uimageBuffer) +0:227 u1: direct index for structure (layout(offset=0 ) uniform uint) +0:227 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:227 Constant: +0:227 0 (const uint) +0:227 u1: direct index for structure (layout(offset=0 ) uniform uint) +0:227 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:227 Constant: +0:227 0 (const uint) +0:228 imageAtomicAnd (temp uint) +0:228 'g_tBuffU' (layout(r32ui ) uniform uimageBuffer) +0:228 u1: direct index for structure (layout(offset=0 ) uniform uint) +0:228 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:228 Constant: +0:228 0 (const uint) +0:228 u1: direct index for structure (layout(offset=0 ) uniform uint) +0:228 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:228 Constant: +0:228 0 (const uint) +0:229 move second child to first child (temp uint) +0:229 'out_u1' (temp uint) +0:229 imageAtomicAnd (temp uint) +0:229 'g_tBuffU' (layout(r32ui ) uniform uimageBuffer) +0:229 u1: direct index for structure (layout(offset=0 ) uniform uint) +0:229 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:229 Constant: +0:229 0 (const uint) +0:229 u1: direct index for structure (layout(offset=0 ) uniform uint) +0:229 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:229 Constant: +0:229 0 (const uint) +0:230 move second child to first child (temp uint) +0:230 'out_u1' (temp uint) +0:230 imageAtomicCompSwap (temp uint) +0:230 'g_tBuffU' (layout(r32ui ) uniform uimageBuffer) +0:230 u1: direct index for structure (layout(offset=0 ) uniform uint) +0:230 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:230 Constant: +0:230 0 (const uint) +0:230 u1b: direct index for structure (layout(offset=28 ) uniform uint) +0:230 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:230 Constant: +0:230 3 (const uint) +0:230 u1c: direct index for structure (layout(offset=32 ) uniform uint) +0:230 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:230 Constant: +0:230 4 (const uint) +0:231 move second child to first child (temp uint) +0:231 'out_u1' (temp uint) +0:231 imageAtomicExchange (temp uint) +0:231 'g_tBuffU' (layout(r32ui ) uniform uimageBuffer) +0:231 u1: direct index for structure (layout(offset=0 ) uniform uint) +0:231 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:231 Constant: +0:231 0 (const uint) +0:231 u1: direct index for structure (layout(offset=0 ) uniform uint) +0:231 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:231 Constant: +0:231 0 (const uint) +0:232 imageAtomicMax (temp uint) +0:232 'g_tBuffU' (layout(r32ui ) uniform uimageBuffer) +0:232 u1: direct index for structure (layout(offset=0 ) uniform uint) +0:232 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:232 Constant: +0:232 0 (const uint) +0:232 u1: direct index for structure (layout(offset=0 ) uniform uint) +0:232 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:232 Constant: +0:232 0 (const uint) +0:233 move second child to first child (temp uint) +0:233 'out_u1' (temp uint) +0:233 imageAtomicMax (temp uint) +0:233 'g_tBuffU' (layout(r32ui ) uniform uimageBuffer) +0:233 u1: direct index for structure (layout(offset=0 ) uniform uint) +0:233 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:233 Constant: +0:233 0 (const uint) +0:233 u1: direct index for structure (layout(offset=0 ) uniform uint) +0:233 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:233 Constant: +0:233 0 (const uint) +0:234 imageAtomicMin (temp uint) +0:234 'g_tBuffU' (layout(r32ui ) uniform uimageBuffer) +0:234 u1: direct index for structure (layout(offset=0 ) uniform uint) +0:234 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:234 Constant: +0:234 0 (const uint) +0:234 u1: direct index for structure (layout(offset=0 ) uniform uint) +0:234 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:234 Constant: +0:234 0 (const uint) +0:235 move second child to first child (temp uint) +0:235 'out_u1' (temp uint) +0:235 imageAtomicMin (temp uint) +0:235 'g_tBuffU' (layout(r32ui ) uniform uimageBuffer) +0:235 u1: direct index for structure (layout(offset=0 ) uniform uint) +0:235 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:235 Constant: +0:235 0 (const uint) +0:235 u1: direct index for structure (layout(offset=0 ) uniform uint) +0:235 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:235 Constant: +0:235 0 (const uint) +0:236 imageAtomicOr (temp uint) +0:236 'g_tBuffU' (layout(r32ui ) uniform uimageBuffer) +0:236 u1: direct index for structure (layout(offset=0 ) uniform uint) +0:236 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:236 Constant: +0:236 0 (const uint) +0:236 u1: direct index for structure (layout(offset=0 ) uniform uint) +0:236 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:236 Constant: +0:236 0 (const uint) +0:237 move second child to first child (temp uint) +0:237 'out_u1' (temp uint) +0:237 imageAtomicOr (temp uint) +0:237 'g_tBuffU' (layout(r32ui ) uniform uimageBuffer) +0:237 u1: direct index for structure (layout(offset=0 ) uniform uint) +0:237 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:237 Constant: +0:237 0 (const uint) +0:237 u1: direct index for structure (layout(offset=0 ) uniform uint) +0:237 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:237 Constant: +0:237 0 (const uint) +0:238 imageAtomicXor (temp uint) +0:238 'g_tBuffU' (layout(r32ui ) uniform uimageBuffer) +0:238 u1: direct index for structure (layout(offset=0 ) uniform uint) +0:238 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:238 Constant: +0:238 0 (const uint) +0:238 u1: direct index for structure (layout(offset=0 ) uniform uint) +0:238 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:238 Constant: +0:238 0 (const uint) +0:239 move second child to first child (temp uint) +0:239 'out_u1' (temp uint) +0:239 imageAtomicXor (temp uint) +0:239 'g_tBuffU' (layout(r32ui ) uniform uimageBuffer) +0:239 u1: direct index for structure (layout(offset=0 ) uniform uint) +0:239 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:239 Constant: +0:239 0 (const uint) +0:239 u1: direct index for structure (layout(offset=0 ) uniform uint) +0:239 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:239 Constant: +0:239 0 (const uint) +0:242 move second child to first child (temp 4-component vector of float) +0:242 Color: direct index for structure (temp 4-component vector of float) +0:242 'psout' (temp structure{temp 4-component vector of float Color}) +0:242 Constant: +0:242 0 (const int) +0:242 Constant: +0:242 1.000000 +0:242 1.000000 +0:242 1.000000 +0:242 1.000000 +0:243 Sequence +0:243 Sequence +0:243 move second child to first child (temp 4-component vector of float) +0:? 'Color' (layout(location=0 ) out 4-component vector of float) +0:243 Color: direct index for structure (temp 4-component vector of float) +0:243 'psout' (temp structure{temp 4-component vector of float Color}) +0:243 Constant: +0:243 0 (const int) +0:243 Branch: Return +0:? Linker Objects +0:? 'g_sSamp' (uniform sampler) +0:? 'g_tTex1df1' (layout(r32f ) uniform image1D) +0:? 'g_tTex1di1' (layout(r32i ) uniform iimage1D) +0:? 'g_tTex1du1' (layout(r32ui ) uniform uimage1D) +0:? 'g_tTex2df1' (layout(r32f ) uniform image2D) +0:? 'g_tTex2di1' (layout(r32i ) uniform iimage2D) +0:? 'g_tTex2du1' (layout(r32ui ) uniform uimage2D) +0:? 'g_tTex3df1' (layout(r32f ) uniform image3D) +0:? 'g_tTex3di1' (layout(r32i ) uniform iimage3D) +0:? 'g_tTex3du1' (layout(r32ui ) uniform uimage3D) +0:? 'g_tTex1df1a' (layout(r32f ) uniform image1DArray) +0:? 'g_tTex1di1a' (layout(r32i ) uniform iimage1DArray) +0:? 'g_tTex1du1a' (layout(r32ui ) uniform uimage1DArray) +0:? 'g_tTex2df1a' (layout(r32f ) uniform image2DArray) +0:? 'g_tTex2di1a' (layout(r32i ) uniform iimage2DArray) +0:? 'g_tTex2du1a' (layout(r32ui ) uniform uimage2DArray) +0:? 'g_tBuffF' (layout(r32f ) uniform imageBuffer) +0:? 'g_tBuffI' (layout(r32i ) uniform iimageBuffer) +0:? 'g_tBuffU' (layout(r32ui ) uniform uimageBuffer) +0:? 'Color' (layout(location=0 ) out 4-component vector of float) +0:? 'anon@0' (uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) + +// Module Version 10000 +// Generated by (magic number): 80001 +// Id's are bound by 1142 + + Capability Shader + Capability Sampled1D + Capability SampledBuffer + 1: ExtInstImport "GLSL.std.450" + MemoryModel Logical GLSL450 + EntryPoint Fragment 4 "main" 1111 + ExecutionMode 4 OriginUpperLeft + Name 4 "main" + Name 9 "g_tTex1di1" + Name 15 "$Global" + MemberName 15($Global) 0 "u1" + MemberName 15($Global) 1 "u2" + MemberName 15($Global) 2 "u3" + MemberName 15($Global) 3 "u1b" + MemberName 15($Global) 4 "u1c" + MemberName 15($Global) 5 "i1" + MemberName 15($Global) 6 "i2" + MemberName 15($Global) 7 "i3" + MemberName 15($Global) 8 "i1b" + MemberName 15($Global) 9 "i1c" + Name 17 "" + Name 31 "out_i1" + Name 115 "g_tTex1du1" + Name 126 "out_u1" + Name 211 "g_tTex2di1" + Name 302 "g_tTex2du1" + Name 393 "g_tTex3di1" + Name 484 "g_tTex3du1" + Name 575 "g_tTex1di1a" + Name 664 "g_tTex1du1a" + Name 925 "g_tBuffI" + Name 1014 "g_tBuffU" + Name 1103 "PS_OUTPUT" + MemberName 1103(PS_OUTPUT) 0 "Color" + Name 1105 "psout" + Name 1111 "Color" + Name 1117 "g_sSamp" + Name 1120 "g_tTex1df1" + Name 1123 "g_tTex2df1" + Name 1126 "g_tTex3df1" + Name 1129 "g_tTex1df1a" + Name 1132 "g_tTex2df1a" + Name 1135 "g_tTex2di1a" + Name 1138 "g_tTex2du1a" + Name 1141 "g_tBuffF" + Decorate 9(g_tTex1di1) DescriptorSet 0 + MemberDecorate 15($Global) 0 Offset 0 + MemberDecorate 15($Global) 1 Offset 8 + MemberDecorate 15($Global) 2 Offset 16 + MemberDecorate 15($Global) 3 Offset 28 + MemberDecorate 15($Global) 4 Offset 32 + MemberDecorate 15($Global) 5 Offset 36 + MemberDecorate 15($Global) 6 Offset 40 + MemberDecorate 15($Global) 7 Offset 48 + MemberDecorate 15($Global) 8 Offset 60 + MemberDecorate 15($Global) 9 Offset 64 + Decorate 15($Global) Block + Decorate 17 DescriptorSet 0 + Decorate 115(g_tTex1du1) DescriptorSet 0 + Decorate 211(g_tTex2di1) DescriptorSet 0 + Decorate 302(g_tTex2du1) DescriptorSet 0 + Decorate 393(g_tTex3di1) DescriptorSet 0 + Decorate 484(g_tTex3du1) DescriptorSet 0 + Decorate 575(g_tTex1di1a) DescriptorSet 0 + Decorate 664(g_tTex1du1a) DescriptorSet 0 + Decorate 925(g_tBuffI) DescriptorSet 0 + Decorate 1014(g_tBuffU) DescriptorSet 0 + Decorate 1111(Color) Location 0 + Decorate 1117(g_sSamp) DescriptorSet 0 + Decorate 1120(g_tTex1df1) DescriptorSet 0 + Decorate 1123(g_tTex2df1) DescriptorSet 0 + Decorate 1126(g_tTex3df1) DescriptorSet 0 + Decorate 1129(g_tTex1df1a) DescriptorSet 0 + Decorate 1132(g_tTex2df1a) DescriptorSet 0 + Decorate 1135(g_tTex2di1a) DescriptorSet 0 + Decorate 1138(g_tTex2du1a) DescriptorSet 0 + Decorate 1141(g_tBuffF) DescriptorSet 0 + 2: TypeVoid + 3: TypeFunction 2 + 6: TypeInt 32 1 + 7: TypeImage 6(int) 1D nonsampled format:R32i + 8: TypePointer UniformConstant 7 + 9(g_tTex1di1): 8(ptr) Variable UniformConstant + 10: TypeInt 32 0 + 11: TypeVector 10(int) 2 + 12: TypeVector 10(int) 3 + 13: TypeVector 6(int) 2 + 14: TypeVector 6(int) 3 + 15($Global): TypeStruct 10(int) 11(ivec2) 12(ivec3) 10(int) 10(int) 6(int) 13(ivec2) 14(ivec3) 6(int) 6(int) + 16: TypePointer Uniform 15($Global) + 17: 16(ptr) Variable Uniform + 18: 6(int) Constant 5 + 19: TypePointer Uniform 6(int) + 22: 6(int) Constant 8 + 25: 10(int) Constant 0 + 26: TypePointer Image 6(int) + 28: 10(int) Constant 1 + 30: TypePointer Function 6(int) + 54: 6(int) Constant 9 + 113: TypeImage 10(int) 1D nonsampled format:R32ui + 114: TypePointer UniformConstant 113 + 115(g_tTex1du1): 114(ptr) Variable UniformConstant + 116: 6(int) Constant 0 + 117: TypePointer Uniform 10(int) + 122: TypePointer Image 10(int) + 125: TypePointer Function 10(int) + 147: 6(int) Constant 3 + 150: 6(int) Constant 4 + 209: TypeImage 6(int) 2D nonsampled format:R32i + 210: TypePointer UniformConstant 209 + 211(g_tTex2di1): 210(ptr) Variable UniformConstant + 212: 6(int) Constant 6 + 213: TypePointer Uniform 13(ivec2) + 300: TypeImage 10(int) 2D nonsampled format:R32ui + 301: TypePointer UniformConstant 300 + 302(g_tTex2du1): 301(ptr) Variable UniformConstant + 303: 6(int) Constant 1 + 304: TypePointer Uniform 11(ivec2) + 391: TypeImage 6(int) 3D nonsampled format:R32i + 392: TypePointer UniformConstant 391 + 393(g_tTex3di1): 392(ptr) Variable UniformConstant + 394: 6(int) Constant 7 + 395: TypePointer Uniform 14(ivec3) + 482: TypeImage 10(int) 3D nonsampled format:R32ui + 483: TypePointer UniformConstant 482 + 484(g_tTex3du1): 483(ptr) Variable UniformConstant + 485: 6(int) Constant 2 + 486: TypePointer Uniform 12(ivec3) + 573: TypeImage 6(int) 1D array nonsampled format:R32i + 574: TypePointer UniformConstant 573 +575(g_tTex1di1a): 574(ptr) Variable UniformConstant + 662: TypeImage 10(int) 1D array nonsampled format:R32ui + 663: TypePointer UniformConstant 662 +664(g_tTex1du1a): 663(ptr) Variable UniformConstant + 923: TypeImage 6(int) Buffer nonsampled format:R32i + 924: TypePointer UniformConstant 923 + 925(g_tBuffI): 924(ptr) Variable UniformConstant + 1012: TypeImage 10(int) Buffer nonsampled format:R32ui + 1013: TypePointer UniformConstant 1012 + 1014(g_tBuffU): 1013(ptr) Variable UniformConstant + 1101: TypeFloat 32 + 1102: TypeVector 1101(float) 4 + 1103(PS_OUTPUT): TypeStruct 1102(fvec4) + 1104: TypePointer Function 1103(PS_OUTPUT) + 1106: 1101(float) Constant 1065353216 + 1107: 1102(fvec4) ConstantComposite 1106 1106 1106 1106 + 1108: TypePointer Function 1102(fvec4) + 1110: TypePointer Output 1102(fvec4) + 1111(Color): 1110(ptr) Variable Output + 1115: TypeSampler + 1116: TypePointer UniformConstant 1115 + 1117(g_sSamp): 1116(ptr) Variable UniformConstant + 1118: TypeImage 1101(float) 1D nonsampled format:R32f + 1119: TypePointer UniformConstant 1118 +1120(g_tTex1df1): 1119(ptr) Variable UniformConstant + 1121: TypeImage 1101(float) 2D nonsampled format:R32f + 1122: TypePointer UniformConstant 1121 +1123(g_tTex2df1): 1122(ptr) Variable UniformConstant + 1124: TypeImage 1101(float) 3D nonsampled format:R32f + 1125: TypePointer UniformConstant 1124 +1126(g_tTex3df1): 1125(ptr) Variable UniformConstant + 1127: TypeImage 1101(float) 1D array nonsampled format:R32f + 1128: TypePointer UniformConstant 1127 +1129(g_tTex1df1a): 1128(ptr) Variable UniformConstant + 1130: TypeImage 1101(float) 2D array nonsampled format:R32f + 1131: TypePointer UniformConstant 1130 +1132(g_tTex2df1a): 1131(ptr) Variable UniformConstant + 1133: TypeImage 6(int) 2D array nonsampled format:R32i + 1134: TypePointer UniformConstant 1133 +1135(g_tTex2di1a): 1134(ptr) Variable UniformConstant + 1136: TypeImage 10(int) 2D array nonsampled format:R32ui + 1137: TypePointer UniformConstant 1136 +1138(g_tTex2du1a): 1137(ptr) Variable UniformConstant + 1139: TypeImage 1101(float) Buffer nonsampled format:R32f + 1140: TypePointer UniformConstant 1139 + 1141(g_tBuffF): 1140(ptr) Variable UniformConstant + 4(main): 2 Function None 3 + 5: Label + 31(out_i1): 30(ptr) Variable Function + 126(out_u1): 125(ptr) Variable Function + 1105(psout): 1104(ptr) Variable Function + 20: 19(ptr) AccessChain 17 18 + 21: 6(int) Load 20 + 23: 19(ptr) AccessChain 17 22 + 24: 6(int) Load 23 + 27: 26(ptr) ImageTexelPointer 9(g_tTex1di1) 21 25 + 29: 6(int) AtomicIAdd 27 28 25 24 + 32: 19(ptr) AccessChain 17 18 + 33: 6(int) Load 32 + 34: 19(ptr) AccessChain 17 18 + 35: 6(int) Load 34 + 36: 26(ptr) ImageTexelPointer 9(g_tTex1di1) 33 25 + 37: 6(int) AtomicIAdd 36 28 25 35 + Store 31(out_i1) 37 + 38: 19(ptr) AccessChain 17 18 + 39: 6(int) Load 38 + 40: 19(ptr) AccessChain 17 22 + 41: 6(int) Load 40 + 42: 26(ptr) ImageTexelPointer 9(g_tTex1di1) 39 25 + 43: 6(int) AtomicAnd 42 28 25 41 + 44: 19(ptr) AccessChain 17 18 + 45: 6(int) Load 44 + 46: 19(ptr) AccessChain 17 18 + 47: 6(int) Load 46 + 48: 26(ptr) ImageTexelPointer 9(g_tTex1di1) 45 25 + 49: 6(int) AtomicAnd 48 28 25 47 + Store 31(out_i1) 49 + 50: 19(ptr) AccessChain 17 18 + 51: 6(int) Load 50 + 52: 19(ptr) AccessChain 17 22 + 53: 6(int) Load 52 + 55: 19(ptr) AccessChain 17 54 + 56: 6(int) Load 55 + 57: 26(ptr) ImageTexelPointer 9(g_tTex1di1) 51 25 + 58: 6(int) AtomicCompareExchange 57 28 25 25 56 53 + Store 31(out_i1) 58 + 59: 19(ptr) AccessChain 17 18 + 60: 6(int) Load 59 + 61: 19(ptr) AccessChain 17 18 + 62: 6(int) Load 61 + 63: 26(ptr) ImageTexelPointer 9(g_tTex1di1) 60 25 + 64: 6(int) AtomicExchange 63 28 25 62 + Store 31(out_i1) 64 + 65: 19(ptr) AccessChain 17 18 + 66: 6(int) Load 65 + 67: 19(ptr) AccessChain 17 22 + 68: 6(int) Load 67 + 69: 26(ptr) ImageTexelPointer 9(g_tTex1di1) 66 25 + 70: 6(int) AtomicSMax 69 28 25 68 + 71: 19(ptr) AccessChain 17 18 + 72: 6(int) Load 71 + 73: 19(ptr) AccessChain 17 18 + 74: 6(int) Load 73 + 75: 26(ptr) ImageTexelPointer 9(g_tTex1di1) 72 25 + 76: 6(int) AtomicSMax 75 28 25 74 + Store 31(out_i1) 76 + 77: 19(ptr) AccessChain 17 18 + 78: 6(int) Load 77 + 79: 19(ptr) AccessChain 17 22 + 80: 6(int) Load 79 + 81: 26(ptr) ImageTexelPointer 9(g_tTex1di1) 78 25 + 82: 6(int) AtomicSMin 81 28 25 80 + 83: 19(ptr) AccessChain 17 18 + 84: 6(int) Load 83 + 85: 19(ptr) AccessChain 17 18 + 86: 6(int) Load 85 + 87: 26(ptr) ImageTexelPointer 9(g_tTex1di1) 84 25 + 88: 6(int) AtomicSMin 87 28 25 86 + Store 31(out_i1) 88 + 89: 19(ptr) AccessChain 17 18 + 90: 6(int) Load 89 + 91: 19(ptr) AccessChain 17 22 + 92: 6(int) Load 91 + 93: 26(ptr) ImageTexelPointer 9(g_tTex1di1) 90 25 + 94: 6(int) AtomicOr 93 28 25 92 + 95: 19(ptr) AccessChain 17 18 + 96: 6(int) Load 95 + 97: 19(ptr) AccessChain 17 18 + 98: 6(int) Load 97 + 99: 26(ptr) ImageTexelPointer 9(g_tTex1di1) 96 25 + 100: 6(int) AtomicOr 99 28 25 98 + Store 31(out_i1) 100 + 101: 19(ptr) AccessChain 17 18 + 102: 6(int) Load 101 + 103: 19(ptr) AccessChain 17 22 + 104: 6(int) Load 103 + 105: 26(ptr) ImageTexelPointer 9(g_tTex1di1) 102 25 + 106: 6(int) AtomicXor 105 28 25 104 + 107: 19(ptr) AccessChain 17 18 + 108: 6(int) Load 107 + 109: 19(ptr) AccessChain 17 18 + 110: 6(int) Load 109 + 111: 26(ptr) ImageTexelPointer 9(g_tTex1di1) 108 25 + 112: 6(int) AtomicXor 111 28 25 110 + Store 31(out_i1) 112 + 118: 117(ptr) AccessChain 17 116 + 119: 10(int) Load 118 + 120: 117(ptr) AccessChain 17 116 + 121: 10(int) Load 120 + 123: 122(ptr) ImageTexelPointer 115(g_tTex1du1) 119 25 + 124: 10(int) AtomicIAdd 123 28 25 121 + 127: 117(ptr) AccessChain 17 116 + 128: 10(int) Load 127 + 129: 117(ptr) AccessChain 17 116 + 130: 10(int) Load 129 + 131: 122(ptr) ImageTexelPointer 115(g_tTex1du1) 128 25 + 132: 10(int) AtomicIAdd 131 28 25 130 + Store 126(out_u1) 132 + 133: 117(ptr) AccessChain 17 116 + 134: 10(int) Load 133 + 135: 117(ptr) AccessChain 17 116 + 136: 10(int) Load 135 + 137: 122(ptr) ImageTexelPointer 115(g_tTex1du1) 134 25 + 138: 10(int) AtomicAnd 137 28 25 136 + 139: 117(ptr) AccessChain 17 116 + 140: 10(int) Load 139 + 141: 117(ptr) AccessChain 17 116 + 142: 10(int) Load 141 + 143: 122(ptr) ImageTexelPointer 115(g_tTex1du1) 140 25 + 144: 10(int) AtomicAnd 143 28 25 142 + Store 126(out_u1) 144 + 145: 117(ptr) AccessChain 17 116 + 146: 10(int) Load 145 + 148: 117(ptr) AccessChain 17 147 + 149: 10(int) Load 148 + 151: 117(ptr) AccessChain 17 150 + 152: 10(int) Load 151 + 153: 122(ptr) ImageTexelPointer 115(g_tTex1du1) 146 25 + 154: 10(int) AtomicCompareExchange 153 28 25 25 152 149 + Store 126(out_u1) 154 + 155: 117(ptr) AccessChain 17 116 + 156: 10(int) Load 155 + 157: 117(ptr) AccessChain 17 116 + 158: 10(int) Load 157 + 159: 122(ptr) ImageTexelPointer 115(g_tTex1du1) 156 25 + 160: 10(int) AtomicExchange 159 28 25 158 + Store 126(out_u1) 160 + 161: 117(ptr) AccessChain 17 116 + 162: 10(int) Load 161 + 163: 117(ptr) AccessChain 17 116 + 164: 10(int) Load 163 + 165: 122(ptr) ImageTexelPointer 115(g_tTex1du1) 162 25 + 166: 10(int) AtomicUMax 165 28 25 164 + 167: 117(ptr) AccessChain 17 116 + 168: 10(int) Load 167 + 169: 117(ptr) AccessChain 17 116 + 170: 10(int) Load 169 + 171: 122(ptr) ImageTexelPointer 115(g_tTex1du1) 168 25 + 172: 10(int) AtomicUMax 171 28 25 170 + Store 126(out_u1) 172 + 173: 117(ptr) AccessChain 17 116 + 174: 10(int) Load 173 + 175: 117(ptr) AccessChain 17 116 + 176: 10(int) Load 175 + 177: 122(ptr) ImageTexelPointer 115(g_tTex1du1) 174 25 + 178: 10(int) AtomicUMin 177 28 25 176 + 179: 117(ptr) AccessChain 17 116 + 180: 10(int) Load 179 + 181: 117(ptr) AccessChain 17 116 + 182: 10(int) Load 181 + 183: 122(ptr) ImageTexelPointer 115(g_tTex1du1) 180 25 + 184: 10(int) AtomicUMin 183 28 25 182 + Store 126(out_u1) 184 + 185: 117(ptr) AccessChain 17 116 + 186: 10(int) Load 185 + 187: 117(ptr) AccessChain 17 116 + 188: 10(int) Load 187 + 189: 122(ptr) ImageTexelPointer 115(g_tTex1du1) 186 25 + 190: 10(int) AtomicOr 189 28 25 188 + 191: 117(ptr) AccessChain 17 116 + 192: 10(int) Load 191 + 193: 117(ptr) AccessChain 17 116 + 194: 10(int) Load 193 + 195: 122(ptr) ImageTexelPointer 115(g_tTex1du1) 192 25 + 196: 10(int) AtomicOr 195 28 25 194 + Store 126(out_u1) 196 + 197: 117(ptr) AccessChain 17 116 + 198: 10(int) Load 197 + 199: 117(ptr) AccessChain 17 116 + 200: 10(int) Load 199 + 201: 122(ptr) ImageTexelPointer 115(g_tTex1du1) 198 25 + 202: 10(int) AtomicXor 201 28 25 200 + 203: 117(ptr) AccessChain 17 116 + 204: 10(int) Load 203 + 205: 117(ptr) AccessChain 17 116 + 206: 10(int) Load 205 + 207: 122(ptr) ImageTexelPointer 115(g_tTex1du1) 204 25 + 208: 10(int) AtomicXor 207 28 25 206 + Store 126(out_u1) 208 + 214: 213(ptr) AccessChain 17 212 + 215: 13(ivec2) Load 214 + 216: 19(ptr) AccessChain 17 22 + 217: 6(int) Load 216 + 218: 26(ptr) ImageTexelPointer 211(g_tTex2di1) 215 25 + 219: 6(int) AtomicIAdd 218 28 25 217 + 220: 213(ptr) AccessChain 17 212 + 221: 13(ivec2) Load 220 + 222: 19(ptr) AccessChain 17 18 + 223: 6(int) Load 222 + 224: 26(ptr) ImageTexelPointer 211(g_tTex2di1) 221 25 + 225: 6(int) AtomicIAdd 224 28 25 223 + Store 31(out_i1) 225 + 226: 213(ptr) AccessChain 17 212 + 227: 13(ivec2) Load 226 + 228: 19(ptr) AccessChain 17 22 + 229: 6(int) Load 228 + 230: 26(ptr) ImageTexelPointer 211(g_tTex2di1) 227 25 + 231: 6(int) AtomicAnd 230 28 25 229 + 232: 213(ptr) AccessChain 17 212 + 233: 13(ivec2) Load 232 + 234: 19(ptr) AccessChain 17 18 + 235: 6(int) Load 234 + 236: 26(ptr) ImageTexelPointer 211(g_tTex2di1) 233 25 + 237: 6(int) AtomicAnd 236 28 25 235 + Store 31(out_i1) 237 + 238: 213(ptr) AccessChain 17 212 + 239: 13(ivec2) Load 238 + 240: 19(ptr) AccessChain 17 22 + 241: 6(int) Load 240 + 242: 19(ptr) AccessChain 17 54 + 243: 6(int) Load 242 + 244: 26(ptr) ImageTexelPointer 211(g_tTex2di1) 239 25 + 245: 6(int) AtomicCompareExchange 244 28 25 25 243 241 + Store 31(out_i1) 245 + 246: 213(ptr) AccessChain 17 212 + 247: 13(ivec2) Load 246 + 248: 19(ptr) AccessChain 17 18 + 249: 6(int) Load 248 + 250: 26(ptr) ImageTexelPointer 211(g_tTex2di1) 247 25 + 251: 6(int) AtomicExchange 250 28 25 249 + Store 31(out_i1) 251 + 252: 213(ptr) AccessChain 17 212 + 253: 13(ivec2) Load 252 + 254: 19(ptr) AccessChain 17 22 + 255: 6(int) Load 254 + 256: 26(ptr) ImageTexelPointer 211(g_tTex2di1) 253 25 + 257: 6(int) AtomicSMax 256 28 25 255 + 258: 213(ptr) AccessChain 17 212 + 259: 13(ivec2) Load 258 + 260: 19(ptr) AccessChain 17 18 + 261: 6(int) Load 260 + 262: 26(ptr) ImageTexelPointer 211(g_tTex2di1) 259 25 + 263: 6(int) AtomicSMax 262 28 25 261 + Store 31(out_i1) 263 + 264: 213(ptr) AccessChain 17 212 + 265: 13(ivec2) Load 264 + 266: 19(ptr) AccessChain 17 22 + 267: 6(int) Load 266 + 268: 26(ptr) ImageTexelPointer 211(g_tTex2di1) 265 25 + 269: 6(int) AtomicSMin 268 28 25 267 + 270: 213(ptr) AccessChain 17 212 + 271: 13(ivec2) Load 270 + 272: 19(ptr) AccessChain 17 18 + 273: 6(int) Load 272 + 274: 26(ptr) ImageTexelPointer 211(g_tTex2di1) 271 25 + 275: 6(int) AtomicSMin 274 28 25 273 + Store 31(out_i1) 275 + 276: 213(ptr) AccessChain 17 212 + 277: 13(ivec2) Load 276 + 278: 19(ptr) AccessChain 17 22 + 279: 6(int) Load 278 + 280: 26(ptr) ImageTexelPointer 211(g_tTex2di1) 277 25 + 281: 6(int) AtomicOr 280 28 25 279 + 282: 213(ptr) AccessChain 17 212 + 283: 13(ivec2) Load 282 + 284: 19(ptr) AccessChain 17 18 + 285: 6(int) Load 284 + 286: 26(ptr) ImageTexelPointer 211(g_tTex2di1) 283 25 + 287: 6(int) AtomicOr 286 28 25 285 + Store 31(out_i1) 287 + 288: 213(ptr) AccessChain 17 212 + 289: 13(ivec2) Load 288 + 290: 19(ptr) AccessChain 17 22 + 291: 6(int) Load 290 + 292: 26(ptr) ImageTexelPointer 211(g_tTex2di1) 289 25 + 293: 6(int) AtomicXor 292 28 25 291 + 294: 213(ptr) AccessChain 17 212 + 295: 13(ivec2) Load 294 + 296: 19(ptr) AccessChain 17 18 + 297: 6(int) Load 296 + 298: 26(ptr) ImageTexelPointer 211(g_tTex2di1) 295 25 + 299: 6(int) AtomicXor 298 28 25 297 + Store 31(out_i1) 299 + 305: 304(ptr) AccessChain 17 303 + 306: 11(ivec2) Load 305 + 307: 117(ptr) AccessChain 17 116 + 308: 10(int) Load 307 + 309: 122(ptr) ImageTexelPointer 302(g_tTex2du1) 306 25 + 310: 10(int) AtomicIAdd 309 28 25 308 + 311: 304(ptr) AccessChain 17 303 + 312: 11(ivec2) Load 311 + 313: 117(ptr) AccessChain 17 116 + 314: 10(int) Load 313 + 315: 122(ptr) ImageTexelPointer 302(g_tTex2du1) 312 25 + 316: 10(int) AtomicIAdd 315 28 25 314 + Store 126(out_u1) 316 + 317: 304(ptr) AccessChain 17 303 + 318: 11(ivec2) Load 317 + 319: 117(ptr) AccessChain 17 116 + 320: 10(int) Load 319 + 321: 122(ptr) ImageTexelPointer 302(g_tTex2du1) 318 25 + 322: 10(int) AtomicAnd 321 28 25 320 + 323: 304(ptr) AccessChain 17 303 + 324: 11(ivec2) Load 323 + 325: 117(ptr) AccessChain 17 116 + 326: 10(int) Load 325 + 327: 122(ptr) ImageTexelPointer 302(g_tTex2du1) 324 25 + 328: 10(int) AtomicAnd 327 28 25 326 + Store 126(out_u1) 328 + 329: 304(ptr) AccessChain 17 303 + 330: 11(ivec2) Load 329 + 331: 117(ptr) AccessChain 17 147 + 332: 10(int) Load 331 + 333: 117(ptr) AccessChain 17 150 + 334: 10(int) Load 333 + 335: 122(ptr) ImageTexelPointer 302(g_tTex2du1) 330 25 + 336: 10(int) AtomicCompareExchange 335 28 25 25 334 332 + Store 126(out_u1) 336 + 337: 304(ptr) AccessChain 17 303 + 338: 11(ivec2) Load 337 + 339: 117(ptr) AccessChain 17 116 + 340: 10(int) Load 339 + 341: 122(ptr) ImageTexelPointer 302(g_tTex2du1) 338 25 + 342: 10(int) AtomicExchange 341 28 25 340 + Store 126(out_u1) 342 + 343: 304(ptr) AccessChain 17 303 + 344: 11(ivec2) Load 343 + 345: 117(ptr) AccessChain 17 116 + 346: 10(int) Load 345 + 347: 122(ptr) ImageTexelPointer 302(g_tTex2du1) 344 25 + 348: 10(int) AtomicUMax 347 28 25 346 + 349: 304(ptr) AccessChain 17 303 + 350: 11(ivec2) Load 349 + 351: 117(ptr) AccessChain 17 116 + 352: 10(int) Load 351 + 353: 122(ptr) ImageTexelPointer 302(g_tTex2du1) 350 25 + 354: 10(int) AtomicUMax 353 28 25 352 + Store 126(out_u1) 354 + 355: 304(ptr) AccessChain 17 303 + 356: 11(ivec2) Load 355 + 357: 117(ptr) AccessChain 17 116 + 358: 10(int) Load 357 + 359: 122(ptr) ImageTexelPointer 302(g_tTex2du1) 356 25 + 360: 10(int) AtomicUMin 359 28 25 358 + 361: 304(ptr) AccessChain 17 303 + 362: 11(ivec2) Load 361 + 363: 117(ptr) AccessChain 17 116 + 364: 10(int) Load 363 + 365: 122(ptr) ImageTexelPointer 302(g_tTex2du1) 362 25 + 366: 10(int) AtomicUMin 365 28 25 364 + Store 126(out_u1) 366 + 367: 304(ptr) AccessChain 17 303 + 368: 11(ivec2) Load 367 + 369: 117(ptr) AccessChain 17 116 + 370: 10(int) Load 369 + 371: 122(ptr) ImageTexelPointer 302(g_tTex2du1) 368 25 + 372: 10(int) AtomicOr 371 28 25 370 + 373: 304(ptr) AccessChain 17 303 + 374: 11(ivec2) Load 373 + 375: 117(ptr) AccessChain 17 116 + 376: 10(int) Load 375 + 377: 122(ptr) ImageTexelPointer 302(g_tTex2du1) 374 25 + 378: 10(int) AtomicOr 377 28 25 376 + Store 126(out_u1) 378 + 379: 304(ptr) AccessChain 17 303 + 380: 11(ivec2) Load 379 + 381: 117(ptr) AccessChain 17 116 + 382: 10(int) Load 381 + 383: 122(ptr) ImageTexelPointer 302(g_tTex2du1) 380 25 + 384: 10(int) AtomicXor 383 28 25 382 + 385: 304(ptr) AccessChain 17 303 + 386: 11(ivec2) Load 385 + 387: 117(ptr) AccessChain 17 116 + 388: 10(int) Load 387 + 389: 122(ptr) ImageTexelPointer 302(g_tTex2du1) 386 25 + 390: 10(int) AtomicXor 389 28 25 388 + Store 126(out_u1) 390 + 396: 395(ptr) AccessChain 17 394 + 397: 14(ivec3) Load 396 + 398: 19(ptr) AccessChain 17 22 + 399: 6(int) Load 398 + 400: 26(ptr) ImageTexelPointer 393(g_tTex3di1) 397 25 + 401: 6(int) AtomicIAdd 400 28 25 399 + 402: 395(ptr) AccessChain 17 394 + 403: 14(ivec3) Load 402 + 404: 19(ptr) AccessChain 17 18 + 405: 6(int) Load 404 + 406: 26(ptr) ImageTexelPointer 393(g_tTex3di1) 403 25 + 407: 6(int) AtomicIAdd 406 28 25 405 + Store 31(out_i1) 407 + 408: 395(ptr) AccessChain 17 394 + 409: 14(ivec3) Load 408 + 410: 19(ptr) AccessChain 17 22 + 411: 6(int) Load 410 + 412: 26(ptr) ImageTexelPointer 393(g_tTex3di1) 409 25 + 413: 6(int) AtomicAnd 412 28 25 411 + 414: 395(ptr) AccessChain 17 394 + 415: 14(ivec3) Load 414 + 416: 19(ptr) AccessChain 17 18 + 417: 6(int) Load 416 + 418: 26(ptr) ImageTexelPointer 393(g_tTex3di1) 415 25 + 419: 6(int) AtomicAnd 418 28 25 417 + Store 31(out_i1) 419 + 420: 395(ptr) AccessChain 17 394 + 421: 14(ivec3) Load 420 + 422: 19(ptr) AccessChain 17 22 + 423: 6(int) Load 422 + 424: 19(ptr) AccessChain 17 54 + 425: 6(int) Load 424 + 426: 26(ptr) ImageTexelPointer 393(g_tTex3di1) 421 25 + 427: 6(int) AtomicCompareExchange 426 28 25 25 425 423 + Store 31(out_i1) 427 + 428: 395(ptr) AccessChain 17 394 + 429: 14(ivec3) Load 428 + 430: 19(ptr) AccessChain 17 18 + 431: 6(int) Load 430 + 432: 26(ptr) ImageTexelPointer 393(g_tTex3di1) 429 25 + 433: 6(int) AtomicExchange 432 28 25 431 + Store 31(out_i1) 433 + 434: 395(ptr) AccessChain 17 394 + 435: 14(ivec3) Load 434 + 436: 19(ptr) AccessChain 17 22 + 437: 6(int) Load 436 + 438: 26(ptr) ImageTexelPointer 393(g_tTex3di1) 435 25 + 439: 6(int) AtomicSMax 438 28 25 437 + 440: 395(ptr) AccessChain 17 394 + 441: 14(ivec3) Load 440 + 442: 19(ptr) AccessChain 17 18 + 443: 6(int) Load 442 + 444: 26(ptr) ImageTexelPointer 393(g_tTex3di1) 441 25 + 445: 6(int) AtomicSMax 444 28 25 443 + Store 31(out_i1) 445 + 446: 395(ptr) AccessChain 17 394 + 447: 14(ivec3) Load 446 + 448: 19(ptr) AccessChain 17 22 + 449: 6(int) Load 448 + 450: 26(ptr) ImageTexelPointer 393(g_tTex3di1) 447 25 + 451: 6(int) AtomicSMin 450 28 25 449 + 452: 395(ptr) AccessChain 17 394 + 453: 14(ivec3) Load 452 + 454: 19(ptr) AccessChain 17 18 + 455: 6(int) Load 454 + 456: 26(ptr) ImageTexelPointer 393(g_tTex3di1) 453 25 + 457: 6(int) AtomicSMin 456 28 25 455 + Store 31(out_i1) 457 + 458: 395(ptr) AccessChain 17 394 + 459: 14(ivec3) Load 458 + 460: 19(ptr) AccessChain 17 22 + 461: 6(int) Load 460 + 462: 26(ptr) ImageTexelPointer 393(g_tTex3di1) 459 25 + 463: 6(int) AtomicOr 462 28 25 461 + 464: 395(ptr) AccessChain 17 394 + 465: 14(ivec3) Load 464 + 466: 19(ptr) AccessChain 17 18 + 467: 6(int) Load 466 + 468: 26(ptr) ImageTexelPointer 393(g_tTex3di1) 465 25 + 469: 6(int) AtomicOr 468 28 25 467 + Store 31(out_i1) 469 + 470: 395(ptr) AccessChain 17 394 + 471: 14(ivec3) Load 470 + 472: 19(ptr) AccessChain 17 22 + 473: 6(int) Load 472 + 474: 26(ptr) ImageTexelPointer 393(g_tTex3di1) 471 25 + 475: 6(int) AtomicXor 474 28 25 473 + 476: 395(ptr) AccessChain 17 394 + 477: 14(ivec3) Load 476 + 478: 19(ptr) AccessChain 17 18 + 479: 6(int) Load 478 + 480: 26(ptr) ImageTexelPointer 393(g_tTex3di1) 477 25 + 481: 6(int) AtomicXor 480 28 25 479 + Store 31(out_i1) 481 + 487: 486(ptr) AccessChain 17 485 + 488: 12(ivec3) Load 487 + 489: 117(ptr) AccessChain 17 116 + 490: 10(int) Load 489 + 491: 122(ptr) ImageTexelPointer 484(g_tTex3du1) 488 25 + 492: 10(int) AtomicIAdd 491 28 25 490 + 493: 486(ptr) AccessChain 17 485 + 494: 12(ivec3) Load 493 + 495: 117(ptr) AccessChain 17 116 + 496: 10(int) Load 495 + 497: 122(ptr) ImageTexelPointer 484(g_tTex3du1) 494 25 + 498: 10(int) AtomicIAdd 497 28 25 496 + Store 126(out_u1) 498 + 499: 486(ptr) AccessChain 17 485 + 500: 12(ivec3) Load 499 + 501: 117(ptr) AccessChain 17 116 + 502: 10(int) Load 501 + 503: 122(ptr) ImageTexelPointer 484(g_tTex3du1) 500 25 + 504: 10(int) AtomicAnd 503 28 25 502 + 505: 486(ptr) AccessChain 17 485 + 506: 12(ivec3) Load 505 + 507: 117(ptr) AccessChain 17 116 + 508: 10(int) Load 507 + 509: 122(ptr) ImageTexelPointer 484(g_tTex3du1) 506 25 + 510: 10(int) AtomicAnd 509 28 25 508 + Store 126(out_u1) 510 + 511: 486(ptr) AccessChain 17 485 + 512: 12(ivec3) Load 511 + 513: 117(ptr) AccessChain 17 147 + 514: 10(int) Load 513 + 515: 117(ptr) AccessChain 17 150 + 516: 10(int) Load 515 + 517: 122(ptr) ImageTexelPointer 484(g_tTex3du1) 512 25 + 518: 10(int) AtomicCompareExchange 517 28 25 25 516 514 + Store 126(out_u1) 518 + 519: 486(ptr) AccessChain 17 485 + 520: 12(ivec3) Load 519 + 521: 117(ptr) AccessChain 17 116 + 522: 10(int) Load 521 + 523: 122(ptr) ImageTexelPointer 484(g_tTex3du1) 520 25 + 524: 10(int) AtomicExchange 523 28 25 522 + Store 126(out_u1) 524 + 525: 486(ptr) AccessChain 17 485 + 526: 12(ivec3) Load 525 + 527: 117(ptr) AccessChain 17 116 + 528: 10(int) Load 527 + 529: 122(ptr) ImageTexelPointer 484(g_tTex3du1) 526 25 + 530: 10(int) AtomicUMax 529 28 25 528 + 531: 486(ptr) AccessChain 17 485 + 532: 12(ivec3) Load 531 + 533: 117(ptr) AccessChain 17 116 + 534: 10(int) Load 533 + 535: 122(ptr) ImageTexelPointer 484(g_tTex3du1) 532 25 + 536: 10(int) AtomicUMax 535 28 25 534 + Store 126(out_u1) 536 + 537: 486(ptr) AccessChain 17 485 + 538: 12(ivec3) Load 537 + 539: 117(ptr) AccessChain 17 116 + 540: 10(int) Load 539 + 541: 122(ptr) ImageTexelPointer 484(g_tTex3du1) 538 25 + 542: 10(int) AtomicUMin 541 28 25 540 + 543: 486(ptr) AccessChain 17 485 + 544: 12(ivec3) Load 543 + 545: 117(ptr) AccessChain 17 116 + 546: 10(int) Load 545 + 547: 122(ptr) ImageTexelPointer 484(g_tTex3du1) 544 25 + 548: 10(int) AtomicUMin 547 28 25 546 + Store 126(out_u1) 548 + 549: 486(ptr) AccessChain 17 485 + 550: 12(ivec3) Load 549 + 551: 117(ptr) AccessChain 17 116 + 552: 10(int) Load 551 + 553: 122(ptr) ImageTexelPointer 484(g_tTex3du1) 550 25 + 554: 10(int) AtomicOr 553 28 25 552 + 555: 486(ptr) AccessChain 17 485 + 556: 12(ivec3) Load 555 + 557: 117(ptr) AccessChain 17 116 + 558: 10(int) Load 557 + 559: 122(ptr) ImageTexelPointer 484(g_tTex3du1) 556 25 + 560: 10(int) AtomicOr 559 28 25 558 + Store 126(out_u1) 560 + 561: 486(ptr) AccessChain 17 485 + 562: 12(ivec3) Load 561 + 563: 117(ptr) AccessChain 17 116 + 564: 10(int) Load 563 + 565: 122(ptr) ImageTexelPointer 484(g_tTex3du1) 562 25 + 566: 10(int) AtomicXor 565 28 25 564 + 567: 486(ptr) AccessChain 17 485 + 568: 12(ivec3) Load 567 + 569: 117(ptr) AccessChain 17 116 + 570: 10(int) Load 569 + 571: 122(ptr) ImageTexelPointer 484(g_tTex3du1) 568 25 + 572: 10(int) AtomicXor 571 28 25 570 + Store 126(out_u1) 572 + 576: 213(ptr) AccessChain 17 212 + 577: 13(ivec2) Load 576 + 578: 19(ptr) AccessChain 17 22 + 579: 6(int) Load 578 + 580: 26(ptr) ImageTexelPointer 575(g_tTex1di1a) 577 25 + 581: 6(int) AtomicIAdd 580 28 25 579 + 582: 213(ptr) AccessChain 17 212 + 583: 13(ivec2) Load 582 + 584: 19(ptr) AccessChain 17 18 + 585: 6(int) Load 584 + 586: 26(ptr) ImageTexelPointer 575(g_tTex1di1a) 583 25 + 587: 6(int) AtomicIAdd 586 28 25 585 + Store 31(out_i1) 587 + 588: 213(ptr) AccessChain 17 212 + 589: 13(ivec2) Load 588 + 590: 19(ptr) AccessChain 17 22 + 591: 6(int) Load 590 + 592: 26(ptr) ImageTexelPointer 575(g_tTex1di1a) 589 25 + 593: 6(int) AtomicAnd 592 28 25 591 + 594: 213(ptr) AccessChain 17 212 + 595: 13(ivec2) Load 594 + 596: 19(ptr) AccessChain 17 18 + 597: 6(int) Load 596 + 598: 26(ptr) ImageTexelPointer 575(g_tTex1di1a) 595 25 + 599: 6(int) AtomicAnd 598 28 25 597 + Store 31(out_i1) 599 + 600: 213(ptr) AccessChain 17 212 + 601: 13(ivec2) Load 600 + 602: 19(ptr) AccessChain 17 22 + 603: 6(int) Load 602 + 604: 19(ptr) AccessChain 17 54 + 605: 6(int) Load 604 + 606: 26(ptr) ImageTexelPointer 575(g_tTex1di1a) 601 25 + 607: 6(int) AtomicCompareExchange 606 28 25 25 605 603 + Store 31(out_i1) 607 + 608: 213(ptr) AccessChain 17 212 + 609: 13(ivec2) Load 608 + 610: 19(ptr) AccessChain 17 18 + 611: 6(int) Load 610 + 612: 26(ptr) ImageTexelPointer 575(g_tTex1di1a) 609 25 + 613: 6(int) AtomicExchange 612 28 25 611 + Store 31(out_i1) 613 + 614: 213(ptr) AccessChain 17 212 + 615: 13(ivec2) Load 614 + 616: 19(ptr) AccessChain 17 22 + 617: 6(int) Load 616 + 618: 26(ptr) ImageTexelPointer 575(g_tTex1di1a) 615 25 + 619: 6(int) AtomicSMax 618 28 25 617 + 620: 213(ptr) AccessChain 17 212 + 621: 13(ivec2) Load 620 + 622: 19(ptr) AccessChain 17 18 + 623: 6(int) Load 622 + 624: 26(ptr) ImageTexelPointer 575(g_tTex1di1a) 621 25 + 625: 6(int) AtomicSMax 624 28 25 623 + Store 31(out_i1) 625 + 626: 213(ptr) AccessChain 17 212 + 627: 13(ivec2) Load 626 + 628: 19(ptr) AccessChain 17 22 + 629: 6(int) Load 628 + 630: 26(ptr) ImageTexelPointer 575(g_tTex1di1a) 627 25 + 631: 6(int) AtomicSMin 630 28 25 629 + 632: 213(ptr) AccessChain 17 212 + 633: 13(ivec2) Load 632 + 634: 19(ptr) AccessChain 17 18 + 635: 6(int) Load 634 + 636: 26(ptr) ImageTexelPointer 575(g_tTex1di1a) 633 25 + 637: 6(int) AtomicSMin 636 28 25 635 + Store 31(out_i1) 637 + 638: 213(ptr) AccessChain 17 212 + 639: 13(ivec2) Load 638 + 640: 19(ptr) AccessChain 17 22 + 641: 6(int) Load 640 + 642: 26(ptr) ImageTexelPointer 575(g_tTex1di1a) 639 25 + 643: 6(int) AtomicOr 642 28 25 641 + 644: 213(ptr) AccessChain 17 212 + 645: 13(ivec2) Load 644 + 646: 19(ptr) AccessChain 17 18 + 647: 6(int) Load 646 + 648: 26(ptr) ImageTexelPointer 575(g_tTex1di1a) 645 25 + 649: 6(int) AtomicOr 648 28 25 647 + Store 31(out_i1) 649 + 650: 213(ptr) AccessChain 17 212 + 651: 13(ivec2) Load 650 + 652: 19(ptr) AccessChain 17 22 + 653: 6(int) Load 652 + 654: 26(ptr) ImageTexelPointer 575(g_tTex1di1a) 651 25 + 655: 6(int) AtomicXor 654 28 25 653 + 656: 213(ptr) AccessChain 17 212 + 657: 13(ivec2) Load 656 + 658: 19(ptr) AccessChain 17 18 + 659: 6(int) Load 658 + 660: 26(ptr) ImageTexelPointer 575(g_tTex1di1a) 657 25 + 661: 6(int) AtomicXor 660 28 25 659 + Store 31(out_i1) 661 + 665: 304(ptr) AccessChain 17 303 + 666: 11(ivec2) Load 665 + 667: 117(ptr) AccessChain 17 116 + 668: 10(int) Load 667 + 669: 122(ptr) ImageTexelPointer 664(g_tTex1du1a) 666 25 + 670: 10(int) AtomicIAdd 669 28 25 668 + 671: 304(ptr) AccessChain 17 303 + 672: 11(ivec2) Load 671 + 673: 117(ptr) AccessChain 17 116 + 674: 10(int) Load 673 + 675: 122(ptr) ImageTexelPointer 664(g_tTex1du1a) 672 25 + 676: 10(int) AtomicIAdd 675 28 25 674 + Store 126(out_u1) 676 + 677: 304(ptr) AccessChain 17 303 + 678: 11(ivec2) Load 677 + 679: 117(ptr) AccessChain 17 116 + 680: 10(int) Load 679 + 681: 122(ptr) ImageTexelPointer 664(g_tTex1du1a) 678 25 + 682: 10(int) AtomicAnd 681 28 25 680 + 683: 304(ptr) AccessChain 17 303 + 684: 11(ivec2) Load 683 + 685: 117(ptr) AccessChain 17 116 + 686: 10(int) Load 685 + 687: 122(ptr) ImageTexelPointer 664(g_tTex1du1a) 684 25 + 688: 10(int) AtomicAnd 687 28 25 686 + Store 126(out_u1) 688 + 689: 304(ptr) AccessChain 17 303 + 690: 11(ivec2) Load 689 + 691: 117(ptr) AccessChain 17 147 + 692: 10(int) Load 691 + 693: 117(ptr) AccessChain 17 150 + 694: 10(int) Load 693 + 695: 122(ptr) ImageTexelPointer 664(g_tTex1du1a) 690 25 + 696: 10(int) AtomicCompareExchange 695 28 25 25 694 692 + Store 126(out_u1) 696 + 697: 304(ptr) AccessChain 17 303 + 698: 11(ivec2) Load 697 + 699: 117(ptr) AccessChain 17 116 + 700: 10(int) Load 699 + 701: 122(ptr) ImageTexelPointer 664(g_tTex1du1a) 698 25 + 702: 10(int) AtomicExchange 701 28 25 700 + Store 126(out_u1) 702 + 703: 304(ptr) AccessChain 17 303 + 704: 11(ivec2) Load 703 + 705: 117(ptr) AccessChain 17 116 + 706: 10(int) Load 705 + 707: 122(ptr) ImageTexelPointer 664(g_tTex1du1a) 704 25 + 708: 10(int) AtomicUMax 707 28 25 706 + 709: 304(ptr) AccessChain 17 303 + 710: 11(ivec2) Load 709 + 711: 117(ptr) AccessChain 17 116 + 712: 10(int) Load 711 + 713: 122(ptr) ImageTexelPointer 664(g_tTex1du1a) 710 25 + 714: 10(int) AtomicUMax 713 28 25 712 + Store 126(out_u1) 714 + 715: 304(ptr) AccessChain 17 303 + 716: 11(ivec2) Load 715 + 717: 117(ptr) AccessChain 17 116 + 718: 10(int) Load 717 + 719: 122(ptr) ImageTexelPointer 664(g_tTex1du1a) 716 25 + 720: 10(int) AtomicUMin 719 28 25 718 + 721: 304(ptr) AccessChain 17 303 + 722: 11(ivec2) Load 721 + 723: 117(ptr) AccessChain 17 116 + 724: 10(int) Load 723 + 725: 122(ptr) ImageTexelPointer 664(g_tTex1du1a) 722 25 + 726: 10(int) AtomicUMin 725 28 25 724 + Store 126(out_u1) 726 + 727: 304(ptr) AccessChain 17 303 + 728: 11(ivec2) Load 727 + 729: 117(ptr) AccessChain 17 116 + 730: 10(int) Load 729 + 731: 122(ptr) ImageTexelPointer 664(g_tTex1du1a) 728 25 + 732: 10(int) AtomicOr 731 28 25 730 + 733: 304(ptr) AccessChain 17 303 + 734: 11(ivec2) Load 733 + 735: 117(ptr) AccessChain 17 116 + 736: 10(int) Load 735 + 737: 122(ptr) ImageTexelPointer 664(g_tTex1du1a) 734 25 + 738: 10(int) AtomicOr 737 28 25 736 + Store 126(out_u1) 738 + 739: 304(ptr) AccessChain 17 303 + 740: 11(ivec2) Load 739 + 741: 117(ptr) AccessChain 17 116 + 742: 10(int) Load 741 + 743: 122(ptr) ImageTexelPointer 664(g_tTex1du1a) 740 25 + 744: 10(int) AtomicXor 743 28 25 742 + 745: 304(ptr) AccessChain 17 303 + 746: 11(ivec2) Load 745 + 747: 117(ptr) AccessChain 17 116 + 748: 10(int) Load 747 + 749: 122(ptr) ImageTexelPointer 664(g_tTex1du1a) 746 25 + 750: 10(int) AtomicXor 749 28 25 748 + Store 126(out_u1) 750 + 751: 213(ptr) AccessChain 17 212 + 752: 13(ivec2) Load 751 + 753: 19(ptr) AccessChain 17 22 + 754: 6(int) Load 753 + 755: 26(ptr) ImageTexelPointer 575(g_tTex1di1a) 752 25 + 756: 6(int) AtomicIAdd 755 28 25 754 + 757: 213(ptr) AccessChain 17 212 + 758: 13(ivec2) Load 757 + 759: 19(ptr) AccessChain 17 18 + 760: 6(int) Load 759 + 761: 26(ptr) ImageTexelPointer 575(g_tTex1di1a) 758 25 + 762: 6(int) AtomicIAdd 761 28 25 760 + Store 31(out_i1) 762 + 763: 213(ptr) AccessChain 17 212 + 764: 13(ivec2) Load 763 + 765: 19(ptr) AccessChain 17 22 + 766: 6(int) Load 765 + 767: 26(ptr) ImageTexelPointer 575(g_tTex1di1a) 764 25 + 768: 6(int) AtomicAnd 767 28 25 766 + 769: 213(ptr) AccessChain 17 212 + 770: 13(ivec2) Load 769 + 771: 19(ptr) AccessChain 17 18 + 772: 6(int) Load 771 + 773: 26(ptr) ImageTexelPointer 575(g_tTex1di1a) 770 25 + 774: 6(int) AtomicAnd 773 28 25 772 + Store 31(out_i1) 774 + 775: 213(ptr) AccessChain 17 212 + 776: 13(ivec2) Load 775 + 777: 19(ptr) AccessChain 17 22 + 778: 6(int) Load 777 + 779: 19(ptr) AccessChain 17 54 + 780: 6(int) Load 779 + 781: 26(ptr) ImageTexelPointer 575(g_tTex1di1a) 776 25 + 782: 6(int) AtomicCompareExchange 781 28 25 25 780 778 + Store 31(out_i1) 782 + 783: 213(ptr) AccessChain 17 212 + 784: 13(ivec2) Load 783 + 785: 19(ptr) AccessChain 17 18 + 786: 6(int) Load 785 + 787: 26(ptr) ImageTexelPointer 575(g_tTex1di1a) 784 25 + 788: 6(int) AtomicExchange 787 28 25 786 + Store 31(out_i1) 788 + 789: 213(ptr) AccessChain 17 212 + 790: 13(ivec2) Load 789 + 791: 19(ptr) AccessChain 17 22 + 792: 6(int) Load 791 + 793: 26(ptr) ImageTexelPointer 575(g_tTex1di1a) 790 25 + 794: 6(int) AtomicSMax 793 28 25 792 + 795: 213(ptr) AccessChain 17 212 + 796: 13(ivec2) Load 795 + 797: 19(ptr) AccessChain 17 18 + 798: 6(int) Load 797 + 799: 26(ptr) ImageTexelPointer 575(g_tTex1di1a) 796 25 + 800: 6(int) AtomicSMax 799 28 25 798 + Store 31(out_i1) 800 + 801: 213(ptr) AccessChain 17 212 + 802: 13(ivec2) Load 801 + 803: 19(ptr) AccessChain 17 22 + 804: 6(int) Load 803 + 805: 26(ptr) ImageTexelPointer 575(g_tTex1di1a) 802 25 + 806: 6(int) AtomicSMin 805 28 25 804 + 807: 213(ptr) AccessChain 17 212 + 808: 13(ivec2) Load 807 + 809: 19(ptr) AccessChain 17 18 + 810: 6(int) Load 809 + 811: 26(ptr) ImageTexelPointer 575(g_tTex1di1a) 808 25 + 812: 6(int) AtomicSMin 811 28 25 810 + Store 31(out_i1) 812 + 813: 213(ptr) AccessChain 17 212 + 814: 13(ivec2) Load 813 + 815: 19(ptr) AccessChain 17 22 + 816: 6(int) Load 815 + 817: 26(ptr) ImageTexelPointer 575(g_tTex1di1a) 814 25 + 818: 6(int) AtomicOr 817 28 25 816 + 819: 213(ptr) AccessChain 17 212 + 820: 13(ivec2) Load 819 + 821: 19(ptr) AccessChain 17 18 + 822: 6(int) Load 821 + 823: 26(ptr) ImageTexelPointer 575(g_tTex1di1a) 820 25 + 824: 6(int) AtomicOr 823 28 25 822 + Store 31(out_i1) 824 + 825: 213(ptr) AccessChain 17 212 + 826: 13(ivec2) Load 825 + 827: 19(ptr) AccessChain 17 22 + 828: 6(int) Load 827 + 829: 26(ptr) ImageTexelPointer 575(g_tTex1di1a) 826 25 + 830: 6(int) AtomicXor 829 28 25 828 + 831: 213(ptr) AccessChain 17 212 + 832: 13(ivec2) Load 831 + 833: 19(ptr) AccessChain 17 18 + 834: 6(int) Load 833 + 835: 26(ptr) ImageTexelPointer 575(g_tTex1di1a) 832 25 + 836: 6(int) AtomicXor 835 28 25 834 + Store 31(out_i1) 836 + 837: 304(ptr) AccessChain 17 303 + 838: 11(ivec2) Load 837 + 839: 117(ptr) AccessChain 17 116 + 840: 10(int) Load 839 + 841: 122(ptr) ImageTexelPointer 664(g_tTex1du1a) 838 25 + 842: 10(int) AtomicIAdd 841 28 25 840 + 843: 304(ptr) AccessChain 17 303 + 844: 11(ivec2) Load 843 + 845: 117(ptr) AccessChain 17 116 + 846: 10(int) Load 845 + 847: 122(ptr) ImageTexelPointer 664(g_tTex1du1a) 844 25 + 848: 10(int) AtomicIAdd 847 28 25 846 + Store 126(out_u1) 848 + 849: 304(ptr) AccessChain 17 303 + 850: 11(ivec2) Load 849 + 851: 117(ptr) AccessChain 17 116 + 852: 10(int) Load 851 + 853: 122(ptr) ImageTexelPointer 664(g_tTex1du1a) 850 25 + 854: 10(int) AtomicAnd 853 28 25 852 + 855: 304(ptr) AccessChain 17 303 + 856: 11(ivec2) Load 855 + 857: 117(ptr) AccessChain 17 116 + 858: 10(int) Load 857 + 859: 122(ptr) ImageTexelPointer 664(g_tTex1du1a) 856 25 + 860: 10(int) AtomicAnd 859 28 25 858 + Store 126(out_u1) 860 + 861: 304(ptr) AccessChain 17 303 + 862: 11(ivec2) Load 861 + 863: 117(ptr) AccessChain 17 147 + 864: 10(int) Load 863 + 865: 117(ptr) AccessChain 17 150 + 866: 10(int) Load 865 + 867: 122(ptr) ImageTexelPointer 664(g_tTex1du1a) 862 25 + 868: 10(int) AtomicCompareExchange 867 28 25 25 866 864 + Store 126(out_u1) 868 + 869: 304(ptr) AccessChain 17 303 + 870: 11(ivec2) Load 869 + 871: 117(ptr) AccessChain 17 116 + 872: 10(int) Load 871 + 873: 122(ptr) ImageTexelPointer 664(g_tTex1du1a) 870 25 + 874: 10(int) AtomicExchange 873 28 25 872 + Store 126(out_u1) 874 + 875: 304(ptr) AccessChain 17 303 + 876: 11(ivec2) Load 875 + 877: 117(ptr) AccessChain 17 116 + 878: 10(int) Load 877 + 879: 122(ptr) ImageTexelPointer 664(g_tTex1du1a) 876 25 + 880: 10(int) AtomicUMax 879 28 25 878 + 881: 304(ptr) AccessChain 17 303 + 882: 11(ivec2) Load 881 + 883: 117(ptr) AccessChain 17 116 + 884: 10(int) Load 883 + 885: 122(ptr) ImageTexelPointer 664(g_tTex1du1a) 882 25 + 886: 10(int) AtomicUMax 885 28 25 884 + Store 126(out_u1) 886 + 887: 304(ptr) AccessChain 17 303 + 888: 11(ivec2) Load 887 + 889: 117(ptr) AccessChain 17 116 + 890: 10(int) Load 889 + 891: 122(ptr) ImageTexelPointer 664(g_tTex1du1a) 888 25 + 892: 10(int) AtomicUMin 891 28 25 890 + 893: 304(ptr) AccessChain 17 303 + 894: 11(ivec2) Load 893 + 895: 117(ptr) AccessChain 17 116 + 896: 10(int) Load 895 + 897: 122(ptr) ImageTexelPointer 664(g_tTex1du1a) 894 25 + 898: 10(int) AtomicUMin 897 28 25 896 + Store 126(out_u1) 898 + 899: 304(ptr) AccessChain 17 303 + 900: 11(ivec2) Load 899 + 901: 117(ptr) AccessChain 17 116 + 902: 10(int) Load 901 + 903: 122(ptr) ImageTexelPointer 664(g_tTex1du1a) 900 25 + 904: 10(int) AtomicOr 903 28 25 902 + 905: 304(ptr) AccessChain 17 303 + 906: 11(ivec2) Load 905 + 907: 117(ptr) AccessChain 17 116 + 908: 10(int) Load 907 + 909: 122(ptr) ImageTexelPointer 664(g_tTex1du1a) 906 25 + 910: 10(int) AtomicOr 909 28 25 908 + Store 126(out_u1) 910 + 911: 304(ptr) AccessChain 17 303 + 912: 11(ivec2) Load 911 + 913: 117(ptr) AccessChain 17 116 + 914: 10(int) Load 913 + 915: 122(ptr) ImageTexelPointer 664(g_tTex1du1a) 912 25 + 916: 10(int) AtomicXor 915 28 25 914 + 917: 304(ptr) AccessChain 17 303 + 918: 11(ivec2) Load 917 + 919: 117(ptr) AccessChain 17 116 + 920: 10(int) Load 919 + 921: 122(ptr) ImageTexelPointer 664(g_tTex1du1a) 918 25 + 922: 10(int) AtomicXor 921 28 25 920 + Store 126(out_u1) 922 + 926: 19(ptr) AccessChain 17 18 + 927: 6(int) Load 926 + 928: 19(ptr) AccessChain 17 22 + 929: 6(int) Load 928 + 930: 26(ptr) ImageTexelPointer 925(g_tBuffI) 927 25 + 931: 6(int) AtomicIAdd 930 28 25 929 + 932: 19(ptr) AccessChain 17 18 + 933: 6(int) Load 932 + 934: 19(ptr) AccessChain 17 18 + 935: 6(int) Load 934 + 936: 26(ptr) ImageTexelPointer 925(g_tBuffI) 933 25 + 937: 6(int) AtomicIAdd 936 28 25 935 + Store 31(out_i1) 937 + 938: 19(ptr) AccessChain 17 18 + 939: 6(int) Load 938 + 940: 19(ptr) AccessChain 17 22 + 941: 6(int) Load 940 + 942: 26(ptr) ImageTexelPointer 925(g_tBuffI) 939 25 + 943: 6(int) AtomicAnd 942 28 25 941 + 944: 19(ptr) AccessChain 17 18 + 945: 6(int) Load 944 + 946: 19(ptr) AccessChain 17 18 + 947: 6(int) Load 946 + 948: 26(ptr) ImageTexelPointer 925(g_tBuffI) 945 25 + 949: 6(int) AtomicAnd 948 28 25 947 + Store 31(out_i1) 949 + 950: 19(ptr) AccessChain 17 18 + 951: 6(int) Load 950 + 952: 19(ptr) AccessChain 17 22 + 953: 6(int) Load 952 + 954: 19(ptr) AccessChain 17 54 + 955: 6(int) Load 954 + 956: 26(ptr) ImageTexelPointer 925(g_tBuffI) 951 25 + 957: 6(int) AtomicCompareExchange 956 28 25 25 955 953 + Store 31(out_i1) 957 + 958: 19(ptr) AccessChain 17 18 + 959: 6(int) Load 958 + 960: 19(ptr) AccessChain 17 18 + 961: 6(int) Load 960 + 962: 26(ptr) ImageTexelPointer 925(g_tBuffI) 959 25 + 963: 6(int) AtomicExchange 962 28 25 961 + Store 31(out_i1) 963 + 964: 19(ptr) AccessChain 17 18 + 965: 6(int) Load 964 + 966: 19(ptr) AccessChain 17 22 + 967: 6(int) Load 966 + 968: 26(ptr) ImageTexelPointer 925(g_tBuffI) 965 25 + 969: 6(int) AtomicSMax 968 28 25 967 + 970: 19(ptr) AccessChain 17 18 + 971: 6(int) Load 970 + 972: 19(ptr) AccessChain 17 18 + 973: 6(int) Load 972 + 974: 26(ptr) ImageTexelPointer 925(g_tBuffI) 971 25 + 975: 6(int) AtomicSMax 974 28 25 973 + Store 31(out_i1) 975 + 976: 19(ptr) AccessChain 17 18 + 977: 6(int) Load 976 + 978: 19(ptr) AccessChain 17 22 + 979: 6(int) Load 978 + 980: 26(ptr) ImageTexelPointer 925(g_tBuffI) 977 25 + 981: 6(int) AtomicSMin 980 28 25 979 + 982: 19(ptr) AccessChain 17 18 + 983: 6(int) Load 982 + 984: 19(ptr) AccessChain 17 18 + 985: 6(int) Load 984 + 986: 26(ptr) ImageTexelPointer 925(g_tBuffI) 983 25 + 987: 6(int) AtomicSMin 986 28 25 985 + Store 31(out_i1) 987 + 988: 19(ptr) AccessChain 17 18 + 989: 6(int) Load 988 + 990: 19(ptr) AccessChain 17 22 + 991: 6(int) Load 990 + 992: 26(ptr) ImageTexelPointer 925(g_tBuffI) 989 25 + 993: 6(int) AtomicOr 992 28 25 991 + 994: 19(ptr) AccessChain 17 18 + 995: 6(int) Load 994 + 996: 19(ptr) AccessChain 17 18 + 997: 6(int) Load 996 + 998: 26(ptr) ImageTexelPointer 925(g_tBuffI) 995 25 + 999: 6(int) AtomicOr 998 28 25 997 + Store 31(out_i1) 999 + 1000: 19(ptr) AccessChain 17 18 + 1001: 6(int) Load 1000 + 1002: 19(ptr) AccessChain 17 22 + 1003: 6(int) Load 1002 + 1004: 26(ptr) ImageTexelPointer 925(g_tBuffI) 1001 25 + 1005: 6(int) AtomicXor 1004 28 25 1003 + 1006: 19(ptr) AccessChain 17 18 + 1007: 6(int) Load 1006 + 1008: 19(ptr) AccessChain 17 18 + 1009: 6(int) Load 1008 + 1010: 26(ptr) ImageTexelPointer 925(g_tBuffI) 1007 25 + 1011: 6(int) AtomicXor 1010 28 25 1009 + Store 31(out_i1) 1011 + 1015: 117(ptr) AccessChain 17 116 + 1016: 10(int) Load 1015 + 1017: 117(ptr) AccessChain 17 116 + 1018: 10(int) Load 1017 + 1019: 122(ptr) ImageTexelPointer 1014(g_tBuffU) 1016 25 + 1020: 10(int) AtomicIAdd 1019 28 25 1018 + 1021: 117(ptr) AccessChain 17 116 + 1022: 10(int) Load 1021 + 1023: 117(ptr) AccessChain 17 116 + 1024: 10(int) Load 1023 + 1025: 122(ptr) ImageTexelPointer 1014(g_tBuffU) 1022 25 + 1026: 10(int) AtomicIAdd 1025 28 25 1024 + Store 126(out_u1) 1026 + 1027: 117(ptr) AccessChain 17 116 + 1028: 10(int) Load 1027 + 1029: 117(ptr) AccessChain 17 116 + 1030: 10(int) Load 1029 + 1031: 122(ptr) ImageTexelPointer 1014(g_tBuffU) 1028 25 + 1032: 10(int) AtomicAnd 1031 28 25 1030 + 1033: 117(ptr) AccessChain 17 116 + 1034: 10(int) Load 1033 + 1035: 117(ptr) AccessChain 17 116 + 1036: 10(int) Load 1035 + 1037: 122(ptr) ImageTexelPointer 1014(g_tBuffU) 1034 25 + 1038: 10(int) AtomicAnd 1037 28 25 1036 + Store 126(out_u1) 1038 + 1039: 117(ptr) AccessChain 17 116 + 1040: 10(int) Load 1039 + 1041: 117(ptr) AccessChain 17 147 + 1042: 10(int) Load 1041 + 1043: 117(ptr) AccessChain 17 150 + 1044: 10(int) Load 1043 + 1045: 122(ptr) ImageTexelPointer 1014(g_tBuffU) 1040 25 + 1046: 10(int) AtomicCompareExchange 1045 28 25 25 1044 1042 + Store 126(out_u1) 1046 + 1047: 117(ptr) AccessChain 17 116 + 1048: 10(int) Load 1047 + 1049: 117(ptr) AccessChain 17 116 + 1050: 10(int) Load 1049 + 1051: 122(ptr) ImageTexelPointer 1014(g_tBuffU) 1048 25 + 1052: 10(int) AtomicExchange 1051 28 25 1050 + Store 126(out_u1) 1052 + 1053: 117(ptr) AccessChain 17 116 + 1054: 10(int) Load 1053 + 1055: 117(ptr) AccessChain 17 116 + 1056: 10(int) Load 1055 + 1057: 122(ptr) ImageTexelPointer 1014(g_tBuffU) 1054 25 + 1058: 10(int) AtomicUMax 1057 28 25 1056 + 1059: 117(ptr) AccessChain 17 116 + 1060: 10(int) Load 1059 + 1061: 117(ptr) AccessChain 17 116 + 1062: 10(int) Load 1061 + 1063: 122(ptr) ImageTexelPointer 1014(g_tBuffU) 1060 25 + 1064: 10(int) AtomicUMax 1063 28 25 1062 + Store 126(out_u1) 1064 + 1065: 117(ptr) AccessChain 17 116 + 1066: 10(int) Load 1065 + 1067: 117(ptr) AccessChain 17 116 + 1068: 10(int) Load 1067 + 1069: 122(ptr) ImageTexelPointer 1014(g_tBuffU) 1066 25 + 1070: 10(int) AtomicUMin 1069 28 25 1068 + 1071: 117(ptr) AccessChain 17 116 + 1072: 10(int) Load 1071 + 1073: 117(ptr) AccessChain 17 116 + 1074: 10(int) Load 1073 + 1075: 122(ptr) ImageTexelPointer 1014(g_tBuffU) 1072 25 + 1076: 10(int) AtomicUMin 1075 28 25 1074 + Store 126(out_u1) 1076 + 1077: 117(ptr) AccessChain 17 116 + 1078: 10(int) Load 1077 + 1079: 117(ptr) AccessChain 17 116 + 1080: 10(int) Load 1079 + 1081: 122(ptr) ImageTexelPointer 1014(g_tBuffU) 1078 25 + 1082: 10(int) AtomicOr 1081 28 25 1080 + 1083: 117(ptr) AccessChain 17 116 + 1084: 10(int) Load 1083 + 1085: 117(ptr) AccessChain 17 116 + 1086: 10(int) Load 1085 + 1087: 122(ptr) ImageTexelPointer 1014(g_tBuffU) 1084 25 + 1088: 10(int) AtomicOr 1087 28 25 1086 + Store 126(out_u1) 1088 + 1089: 117(ptr) AccessChain 17 116 + 1090: 10(int) Load 1089 + 1091: 117(ptr) AccessChain 17 116 + 1092: 10(int) Load 1091 + 1093: 122(ptr) ImageTexelPointer 1014(g_tBuffU) 1090 25 + 1094: 10(int) AtomicXor 1093 28 25 1092 + 1095: 117(ptr) AccessChain 17 116 + 1096: 10(int) Load 1095 + 1097: 117(ptr) AccessChain 17 116 + 1098: 10(int) Load 1097 + 1099: 122(ptr) ImageTexelPointer 1014(g_tBuffU) 1096 25 + 1100: 10(int) AtomicXor 1099 28 25 1098 + Store 126(out_u1) 1100 + 1109: 1108(ptr) AccessChain 1105(psout) 116 + Store 1109 1107 + 1112: 1108(ptr) AccessChain 1105(psout) 116 + 1113: 1102(fvec4) Load 1112 + Store 1111(Color) 1113 + Return + FunctionEnd diff --git a/Test/hlsl.rw.atomics.frag b/Test/hlsl.rw.atomics.frag new file mode 100644 index 00000000..930d6501 --- /dev/null +++ b/Test/hlsl.rw.atomics.frag @@ -0,0 +1,244 @@ +SamplerState g_sSamp; + +RWTexture1D g_tTex1df1; +RWTexture1D g_tTex1di1; +RWTexture1D g_tTex1du1; + +RWTexture2D g_tTex2df1; +RWTexture2D g_tTex2di1; +RWTexture2D g_tTex2du1; + +RWTexture3D g_tTex3df1; +RWTexture3D g_tTex3di1; +RWTexture3D g_tTex3du1; + +RWTexture1DArray g_tTex1df1a; +RWTexture1DArray g_tTex1di1a; +RWTexture1DArray g_tTex1du1a; + +RWTexture2DArray g_tTex2df1a; +RWTexture2DArray g_tTex2di1a; +RWTexture2DArray g_tTex2du1a; + +RWBuffer g_tBuffF; +RWBuffer g_tBuffI; +RWBuffer g_tBuffU; + +struct PS_OUTPUT +{ + float4 Color : SV_Target0; +}; + +uniform uint u1; +uniform uint2 u2; +uniform uint3 u3; +uniform uint u1b; +uniform uint u1c; + +uniform int i1; +uniform int2 i2; +uniform int3 i3; +uniform int i1b; +uniform int i1c; + +PS_OUTPUT main() +{ + uint out_u1; + int out_i1; + + // 1D int + InterlockedAdd(g_tTex1di1[i1], i1b); + InterlockedAdd(g_tTex1di1[i1], i1, out_i1); + InterlockedAnd(g_tTex1di1[i1], i1b); + InterlockedAnd(g_tTex1di1[i1], i1, out_i1); + InterlockedCompareExchange(g_tTex1di1[i1], i1b, i1c, out_i1); + InterlockedExchange(g_tTex1di1[i1], i1, out_i1); + InterlockedMax(g_tTex1di1[i1], i1b); + InterlockedMax(g_tTex1di1[i1], i1, out_i1); + InterlockedMin(g_tTex1di1[i1], i1b); + InterlockedMin(g_tTex1di1[i1], i1, out_i1); + InterlockedOr(g_tTex1di1[i1], i1b); + InterlockedOr(g_tTex1di1[i1], i1, out_i1); + InterlockedXor(g_tTex1di1[i1], i1b); + InterlockedXor(g_tTex1di1[i1], i1, out_i1); + + // 1D uint + InterlockedAdd(g_tTex1du1[u1], u1); + InterlockedAdd(g_tTex1du1[u1], u1, out_u1); + InterlockedAnd(g_tTex1du1[u1], u1); + InterlockedAnd(g_tTex1du1[u1], u1, out_u1); + InterlockedCompareExchange(g_tTex1du1[u1], u1b, u1c, out_u1); + InterlockedExchange(g_tTex1du1[u1], u1, out_u1); + InterlockedMax(g_tTex1du1[u1], u1); + InterlockedMax(g_tTex1du1[u1], u1, out_u1); + InterlockedMin(g_tTex1du1[u1], u1); + InterlockedMin(g_tTex1du1[u1], u1, out_u1); + InterlockedOr(g_tTex1du1[u1], u1); + InterlockedOr(g_tTex1du1[u1], u1, out_u1); + InterlockedXor(g_tTex1du1[u1], u1); + InterlockedXor(g_tTex1du1[u1], u1, out_u1); + + // 2D int + InterlockedAdd(g_tTex2di1[i2], i1b); + InterlockedAdd(g_tTex2di1[i2], i1, out_i1); + InterlockedAnd(g_tTex2di1[i2], i1b); + InterlockedAnd(g_tTex2di1[i2], i1, out_i1); + InterlockedCompareExchange(g_tTex2di1[i2], i1b, i1c, out_i1); + InterlockedExchange(g_tTex2di1[i2], i1, out_i1); + InterlockedMax(g_tTex2di1[i2], i1b); + InterlockedMax(g_tTex2di1[i2], i1, out_i1); + InterlockedMin(g_tTex2di1[i2], i1b); + InterlockedMin(g_tTex2di1[i2], i1, out_i1); + InterlockedOr(g_tTex2di1[i2], i1b); + InterlockedOr(g_tTex2di1[i2], i1, out_i1); + InterlockedXor(g_tTex2di1[i2], i1b); + InterlockedXor(g_tTex2di1[i2], i1, out_i1); + + // 2D uint + InterlockedAdd(g_tTex2du1[u2], u1); + InterlockedAdd(g_tTex2du1[u2], u1, out_u1); + InterlockedAnd(g_tTex2du1[u2], u1); + InterlockedAnd(g_tTex2du1[u2], u1, out_u1); + InterlockedCompareExchange(g_tTex2du1[u2], u1b, u1c, out_u1); + InterlockedExchange(g_tTex2du1[u2], u1, out_u1); + InterlockedMax(g_tTex2du1[u2], u1); + InterlockedMax(g_tTex2du1[u2], u1, out_u1); + InterlockedMin(g_tTex2du1[u2], u1); + InterlockedMin(g_tTex2du1[u2], u1, out_u1); + InterlockedOr(g_tTex2du1[u2], u1); + InterlockedOr(g_tTex2du1[u2], u1, out_u1); + InterlockedXor(g_tTex2du1[u2], u1); + InterlockedXor(g_tTex2du1[u2], u1, out_u1); + + // 3D int + InterlockedAdd(g_tTex3di1[i3], i1b); + InterlockedAdd(g_tTex3di1[i3], i1, out_i1); + InterlockedAnd(g_tTex3di1[i3], i1b); + InterlockedAnd(g_tTex3di1[i3], i1, out_i1); + InterlockedCompareExchange(g_tTex3di1[i3], i1b, i1c, out_i1); + InterlockedExchange(g_tTex3di1[i3], i1, out_i1); + InterlockedMax(g_tTex3di1[i3], i1b); + InterlockedMax(g_tTex3di1[i3], i1, out_i1); + InterlockedMin(g_tTex3di1[i3], i1b); + InterlockedMin(g_tTex3di1[i3], i1, out_i1); + InterlockedOr(g_tTex3di1[i3], i1b); + InterlockedOr(g_tTex3di1[i3], i1, out_i1); + InterlockedXor(g_tTex3di1[i3], i1b); + InterlockedXor(g_tTex3di1[i3], i1, out_i1); + + // 3D uint + InterlockedAdd(g_tTex3du1[u3], u1); + InterlockedAdd(g_tTex3du1[u3], u1, out_u1); + InterlockedAnd(g_tTex3du1[u3], u1); + InterlockedAnd(g_tTex3du1[u3], u1, out_u1); + InterlockedCompareExchange(g_tTex3du1[u3], u1b, u1c, out_u1); + InterlockedExchange(g_tTex3du1[u3], u1, out_u1); + InterlockedMax(g_tTex3du1[u3], u1); + InterlockedMax(g_tTex3du1[u3], u1, out_u1); + InterlockedMin(g_tTex3du1[u3], u1); + InterlockedMin(g_tTex3du1[u3], u1, out_u1); + InterlockedOr(g_tTex3du1[u3], u1); + InterlockedOr(g_tTex3du1[u3], u1, out_u1); + InterlockedXor(g_tTex3du1[u3], u1); + InterlockedXor(g_tTex3du1[u3], u1, out_u1); + + // 1D array int + InterlockedAdd(g_tTex1di1a[i2], i1b); + InterlockedAdd(g_tTex1di1a[i2], i1, out_i1); + InterlockedAnd(g_tTex1di1a[i2], i1b); + InterlockedAnd(g_tTex1di1a[i2], i1, out_i1); + InterlockedCompareExchange(g_tTex1di1a[i2], i1b, i1c, out_i1); + InterlockedExchange(g_tTex1di1a[i2], i1, out_i1); + InterlockedMax(g_tTex1di1a[i2], i1b); + InterlockedMax(g_tTex1di1a[i2], i1, out_i1); + InterlockedMin(g_tTex1di1a[i2], i1b); + InterlockedMin(g_tTex1di1a[i2], i1, out_i1); + InterlockedOr(g_tTex1di1a[i2], i1b); + InterlockedOr(g_tTex1di1a[i2], i1, out_i1); + InterlockedXor(g_tTex1di1a[i2], i1b); + InterlockedXor(g_tTex1di1a[i2], i1, out_i1); + + // 1D array uint + InterlockedAdd(g_tTex1du1a[u2], u1); + InterlockedAdd(g_tTex1du1a[u2], u1, out_u1); + InterlockedAnd(g_tTex1du1a[u2], u1); + InterlockedAnd(g_tTex1du1a[u2], u1, out_u1); + InterlockedCompareExchange(g_tTex1du1a[u2], u1b, u1c, out_u1); + InterlockedExchange(g_tTex1du1a[u2], u1, out_u1); + InterlockedMax(g_tTex1du1a[u2], u1); + InterlockedMax(g_tTex1du1a[u2], u1, out_u1); + InterlockedMin(g_tTex1du1a[u2], u1); + InterlockedMin(g_tTex1du1a[u2], u1, out_u1); + InterlockedOr(g_tTex1du1a[u2], u1); + InterlockedOr(g_tTex1du1a[u2], u1, out_u1); + InterlockedXor(g_tTex1du1a[u2], u1); + InterlockedXor(g_tTex1du1a[u2], u1, out_u1); + + // 2D array int + InterlockedAdd(g_tTex1di1a[i2], i1b); + InterlockedAdd(g_tTex1di1a[i2], i1, out_i1); + InterlockedAnd(g_tTex1di1a[i2], i1b); + InterlockedAnd(g_tTex1di1a[i2], i1, out_i1); + InterlockedCompareExchange(g_tTex1di1a[i2], i1b, i1c, out_i1); + InterlockedExchange(g_tTex1di1a[i2], i1, out_i1); + InterlockedMax(g_tTex1di1a[i2], i1b); + InterlockedMax(g_tTex1di1a[i2], i1, out_i1); + InterlockedMin(g_tTex1di1a[i2], i1b); + InterlockedMin(g_tTex1di1a[i2], i1, out_i1); + InterlockedOr(g_tTex1di1a[i2], i1b); + InterlockedOr(g_tTex1di1a[i2], i1, out_i1); + InterlockedXor(g_tTex1di1a[i2], i1b); + InterlockedXor(g_tTex1di1a[i2], i1, out_i1); + + // 2D array uint + InterlockedAdd(g_tTex1du1a[u2], u1); + InterlockedAdd(g_tTex1du1a[u2], u1, out_u1); + InterlockedAnd(g_tTex1du1a[u2], u1); + InterlockedAnd(g_tTex1du1a[u2], u1, out_u1); + InterlockedCompareExchange(g_tTex1du1a[u2], u1b, u1c, out_u1); + InterlockedExchange(g_tTex1du1a[u2], u1, out_u1); + InterlockedMax(g_tTex1du1a[u2], u1); + InterlockedMax(g_tTex1du1a[u2], u1, out_u1); + InterlockedMin(g_tTex1du1a[u2], u1); + InterlockedMin(g_tTex1du1a[u2], u1, out_u1); + InterlockedOr(g_tTex1du1a[u2], u1); + InterlockedOr(g_tTex1du1a[u2], u1, out_u1); + InterlockedXor(g_tTex1du1a[u2], u1); + InterlockedXor(g_tTex1du1a[u2], u1, out_u1); + + // buffer int + InterlockedAdd(g_tBuffI[i1], i1b); + InterlockedAdd(g_tBuffI[i1], i1, out_i1); + InterlockedAnd(g_tBuffI[i1], i1b); + InterlockedAnd(g_tBuffI[i1], i1, out_i1); + InterlockedCompareExchange(g_tBuffI[i1], i1b, i1c, out_i1); + InterlockedExchange(g_tBuffI[i1], i1, out_i1); + InterlockedMax(g_tBuffI[i1], i1b); + InterlockedMax(g_tBuffI[i1], i1, out_i1); + InterlockedMin(g_tBuffI[i1], i1b); + InterlockedMin(g_tBuffI[i1], i1, out_i1); + InterlockedOr(g_tBuffI[i1], i1b); + InterlockedOr(g_tBuffI[i1], i1, out_i1); + InterlockedXor(g_tBuffI[i1], i1b); + InterlockedXor(g_tBuffI[i1], i1, out_i1); + + // buffer uint + InterlockedAdd(g_tBuffU[u1], u1); + InterlockedAdd(g_tBuffU[u1], u1, out_u1); + InterlockedAnd(g_tBuffU[u1], u1); + InterlockedAnd(g_tBuffU[u1], u1, out_u1); + InterlockedCompareExchange(g_tBuffU[u1], u1b, u1c, out_u1); + InterlockedExchange(g_tBuffU[u1], u1, out_u1); + InterlockedMax(g_tBuffU[u1], u1); + InterlockedMax(g_tBuffU[u1], u1, out_u1); + InterlockedMin(g_tBuffU[u1], u1); + InterlockedMin(g_tBuffU[u1], u1, out_u1); + InterlockedOr(g_tBuffU[u1], u1); + InterlockedOr(g_tBuffU[u1], u1, out_u1); + InterlockedXor(g_tBuffU[u1], u1); + InterlockedXor(g_tBuffU[u1], u1, out_u1); + + PS_OUTPUT psout; + psout.Color = 1.0; + return psout; +} diff --git a/gtests/Hlsl.FromFile.cpp b/gtests/Hlsl.FromFile.cpp index b50816a1..7891342a 100644 --- a/gtests/Hlsl.FromFile.cpp +++ b/gtests/Hlsl.FromFile.cpp @@ -150,6 +150,7 @@ INSTANTIATE_TEST_CASE_P( {"hlsl.pp.line.frag", "main"}, {"hlsl.precise.frag", "main"}, {"hlsl.promotions.frag", "main"}, + {"hlsl.rw.atomics.frag", "main"}, {"hlsl.rw.bracket.frag", "main"}, {"hlsl.rw.scalar.bracket.frag", "main"}, {"hlsl.rw.vec2.bracket.frag", "main"}, diff --git a/hlsl/hlslParseHelper.cpp b/hlsl/hlslParseHelper.cpp index b4c417d9..21c916b0 100755 --- a/hlsl/hlslParseHelper.cpp +++ b/hlsl/hlslParseHelper.cpp @@ -1397,13 +1397,13 @@ TIntermTyped* HlslParseContext::handleAssign(const TSourceLoc& loc, TOperator op TOperator HlslParseContext::mapAtomicOp(const TSourceLoc& loc, TOperator op, bool isImage) { switch (op) { - case EOpInterlockedAdd: return isImage ? EOpImageAtomicAdd : EOpAtomicAdd; - case EOpInterlockedAnd: return isImage ? EOpImageAtomicAnd : EOpAtomicAnd; + case EOpInterlockedAdd: return isImage ? EOpImageAtomicAdd : EOpAtomicAdd; + case EOpInterlockedAnd: return isImage ? EOpImageAtomicAnd : EOpAtomicAnd; case EOpInterlockedCompareExchange: return isImage ? EOpImageAtomicCompSwap : EOpAtomicCompSwap; - case EOpInterlockedMax: return isImage ? EOpImageAtomicMax : EOpAtomicMax; - case EOpInterlockedMin: return isImage ? EOpImageAtomicMin : EOpAtomicMin; - case EOpInterlockedOr: return isImage ? EOpImageAtomicOr : EOpAtomicOr; - case EOpInterlockedXor: return isImage ? EOpImageAtomicXor : EOpAtomicXor; + case EOpInterlockedMax: return isImage ? EOpImageAtomicMax : EOpAtomicMax; + case EOpInterlockedMin: return isImage ? EOpImageAtomicMin : EOpAtomicMin; + case EOpInterlockedOr: return isImage ? EOpImageAtomicOr : EOpAtomicOr; + case EOpInterlockedXor: return isImage ? EOpImageAtomicXor : EOpAtomicXor; case EOpInterlockedExchange: return isImage ? EOpImageAtomicExchange : EOpAtomicExchange; case EOpInterlockedCompareStore: // TODO: ... default: @@ -2052,6 +2052,27 @@ void HlslParseContext::decomposeSampleMethods(const TSourceLoc& loc, TIntermType // void HlslParseContext::decomposeIntrinsic(const TSourceLoc& loc, TIntermTyped*& node, TIntermNode* arguments) { + // Helper to find image data for image atomics: + // OpImageLoad(image[idx]) + // We take the image load apart and add its params to the atomic op aggregate node + const auto imageAtomicParams = [this, &loc, &node](TIntermAggregate* atomic, TIntermTyped* load) { + TIntermAggregate* loadOp = load->getAsAggregate(); + if (loadOp == nullptr) { + error(loc, "unknown image type in atomic operation", "", ""); + node = nullptr; + return; + } + + atomic->getSequence().push_back(loadOp->getSequence()[0]); + atomic->getSequence().push_back(loadOp->getSequence()[1]); + }; + + // Return true if this is an imageLoad, which we will change to an image atomic. + const auto isImageParam = [](TIntermTyped* image) { + TIntermAggregate* imageAggregate = image->getAsAggregate(); + return imageAggregate != nullptr && imageAggregate->getOp() == EOpImageLoad; + }; + // HLSL intrinsics can be pass through to native AST opcodes, or decomposed here to existing AST // opcodes for compatibility with existing software stacks. static const bool decomposeHlslIntrinsics = true; @@ -2232,27 +2253,43 @@ void HlslParseContext::decomposeIntrinsic(const TSourceLoc& loc, TIntermTyped*& case EOpInterlockedXor: // ... case EOpInterlockedExchange: // always has output arg { - TIntermTyped* arg0 = argAggregate->getSequence()[0]->getAsTyped(); - TIntermTyped* arg1 = argAggregate->getSequence()[1]->getAsTyped(); - - const bool isImage = arg0->getType().isImage(); - const TOperator atomicOp = mapAtomicOp(loc, op, isImage); + TIntermTyped* arg0 = argAggregate->getSequence()[0]->getAsTyped(); // dest + TIntermTyped* arg1 = argAggregate->getSequence()[1]->getAsTyped(); // value + TIntermTyped* arg2 = nullptr; - if (argAggregate->getSequence().size() > 2) { - // optional output param is present. return value goes to arg2. - TIntermTyped* arg2 = argAggregate->getSequence()[2]->getAsTyped(); + if (argAggregate->getSequence().size() > 2) + arg2 = argAggregate->getSequence()[2]->getAsTyped(); - TIntermAggregate* atomic = new TIntermAggregate(atomicOp); - atomic->getSequence().push_back(arg0); + const bool isImage = isImageParam(arg0); + const TOperator atomicOp = mapAtomicOp(loc, op, isImage); + TIntermAggregate* atomic = new TIntermAggregate(atomicOp); + atomic->setType(arg0->getType()); + atomic->getWritableType().getQualifier().makeTemporary(); + atomic->setLoc(loc); + + if (isImage) { + // orig_value = imageAtomicOp(image, loc, data) + imageAtomicParams(atomic, arg0); atomic->getSequence().push_back(arg1); - atomic->setLoc(loc); - atomic->setType(arg0->getType()); - atomic->getWritableType().getQualifier().makeTemporary(); - node = intermediate.addAssign(EOpAssign, arg2, atomic, loc); + if (argAggregate->getSequence().size() > 2) { + node = intermediate.addAssign(EOpAssign, arg2, atomic, loc); + } else { + node = atomic; // no assignment needed, as there was no out var. + } } else { - // Set the matching operator. Since output is absent, this is all we need to do. - node->getAsAggregate()->setOperator(atomicOp); + // Normal memory variable: + // arg0 = mem, arg1 = data, arg2(optional,out) = orig_value + if (argAggregate->getSequence().size() > 2) { + // optional output param is present. return value goes to arg2. + atomic->getSequence().push_back(arg0); + atomic->getSequence().push_back(arg1); + + node = intermediate.addAssign(EOpAssign, arg2, atomic, loc); + } else { + // Set the matching operator. Since output is absent, this is all we need to do. + node->getAsAggregate()->setOperator(atomicOp); + } } break; @@ -2265,15 +2302,20 @@ void HlslParseContext::decomposeIntrinsic(const TSourceLoc& loc, TIntermTyped*& TIntermTyped* arg2 = argAggregate->getSequence()[2]->getAsTyped(); // value TIntermTyped* arg3 = argAggregate->getSequence()[3]->getAsTyped(); // orig - const bool isImage = arg0->getType().isImage(); + const bool isImage = isImageParam(arg0); TIntermAggregate* atomic = new TIntermAggregate(mapAtomicOp(loc, op, isImage)); - atomic->getSequence().push_back(arg0); - atomic->getSequence().push_back(arg1); - atomic->getSequence().push_back(arg2); atomic->setLoc(loc); atomic->setType(arg2->getType()); atomic->getWritableType().getQualifier().makeTemporary(); + if (isImage) { + imageAtomicParams(atomic, arg0); + } else { + atomic->getSequence().push_back(arg0); + } + + atomic->getSequence().push_back(arg1); + atomic->getSequence().push_back(arg2); node = intermediate.addAssign(EOpAssign, arg3, atomic, loc); break; -- cgit v1.2.3 From 6cb1637f37d3907dc9e7eacb71065e3bacabff55 Mon Sep 17 00:00:00 2001 From: steve-lunarg Date: Wed, 19 Oct 2016 12:57:22 -0600 Subject: Move promote methods to TIntermediate class A need arose to use capabilities from TIntermediate during node promotion. These methods have been moved from virtual methods on the TIntermUnary and TIntermBinary nodes to methods on TIntermediate, so it is easy for them construct new nodes and so on. This is done as a separate commit to verify that no test results are changed as a result. --- glslang/Include/intermediate.h | 4 +- glslang/MachineIndependent/Intermediate.cpp | 118 +++++++++++++++---------- glslang/MachineIndependent/localintermediate.h | 3 + 3 files changed, 74 insertions(+), 51 deletions(-) diff --git a/glslang/Include/intermediate.h b/glslang/Include/intermediate.h index fc267543..f5a5a7b4 100644 --- a/glslang/Include/intermediate.h +++ b/glslang/Include/intermediate.h @@ -847,7 +847,7 @@ public: virtual TIntermOperator* getAsOperator() { return this; } virtual const TIntermOperator* getAsOperator() const { return this; } TOperator getOp() const { return op; } - virtual bool promote(TIntermediate&) { return true; } + void setOp(TOperator newOp) { op = newOp; } bool modifiesState() const; bool isConstructor() const; bool isTexture() const { return op > EOpTextureGuardBegin && op < EOpTextureGuardEnd; } @@ -1026,7 +1026,6 @@ public: virtual TIntermTyped* getRight() const { return right; } virtual TIntermBinary* getAsBinaryNode() { return this; } virtual const TIntermBinary* getAsBinaryNode() const { return this; } - virtual bool promote(TIntermediate&); virtual void updatePrecision(); protected: TIntermTyped* left; @@ -1046,7 +1045,6 @@ public: virtual const TIntermTyped* getOperand() const { return operand; } virtual TIntermUnary* getAsUnaryNode() { return this; } virtual const TIntermUnary* getAsUnaryNode() const { return this; } - virtual bool promote(TIntermediate&); virtual void updatePrecision(); protected: TIntermTyped* operand; diff --git a/glslang/MachineIndependent/Intermediate.cpp b/glslang/MachineIndependent/Intermediate.cpp index 1441c55b..758ae4f2 100644 --- a/glslang/MachineIndependent/Intermediate.cpp +++ b/glslang/MachineIndependent/Intermediate.cpp @@ -137,8 +137,8 @@ TIntermTyped* TIntermediate::addBinaryMath(TOperator op, TIntermTyped* left, TIn // one and promote it to the right type. // TIntermBinary* node = addBinaryNode(op, left, right, loc); - if (! node->promote(*this)) - return 0; + if (! promote(node)) + return nullptr; node->updatePrecision(); @@ -246,7 +246,7 @@ TIntermTyped* TIntermediate::addAssign(TOperator op, TIntermTyped* left, TInterm // build the node TIntermBinary* node = addBinaryNode(op, left, right, loc); - if (! node->promote(*this)) + if (! promote(node)) return nullptr; node->updatePrecision(); @@ -353,8 +353,8 @@ TIntermTyped* TIntermediate::addUnaryMath(TOperator op, TIntermTyped* child, TSo // TIntermUnary* node = addUnaryNode(op, child, loc); - if (! node->promote(*this)) - return 0; + if (! promote(node)) + return nullptr; node->updatePrecision(); @@ -1725,24 +1725,45 @@ bool TIntermOperator::isConstructor() const } // -// Make sure the type of a unary operator is appropriate for its -// combination of operation and operand type. +// Make sure the type of an operator is appropriate for its +// combination of operation and operand type. This will invoke +// promoteUnary, promoteBinary, etc as needed. // -// Returns false in nothing makes sense. +// Returns false if nothing makes sense. // -bool TIntermUnary::promote(TIntermediate& intermediate) +bool TIntermediate::promote(TIntermOperator* node) { + if (node == nullptr) + return false; + + if (node->getAsUnaryNode()) + return promoteUnary(*node->getAsUnaryNode()); + + if (node->getAsBinaryNode()) + return promoteBinary(*node->getAsBinaryNode()); + + return false; +} + +// +// See TIntermediate::promote +// +bool TIntermediate::promoteUnary(TIntermUnary& node) +{ + const TOperator op = node.getOp(); + TIntermTyped* operand = node.getOperand(); + switch (op) { case EOpLogicalNot: // Convert operand to a boolean type if (operand->getBasicType() != EbtBool) { // Add constructor to boolean type. If that fails, we can't do it, so return false. - TIntermTyped* converted = intermediate.convertToBasicType(op, EbtBool, operand); + TIntermTyped* converted = convertToBasicType(op, EbtBool, operand); if (converted == nullptr) return false; // Use the result of converting the node to a bool. - operand = converted; + node.setOperand(operand = converted); // also updates stack variable } break; case EOpBitwiseNot: @@ -1777,8 +1798,8 @@ bool TIntermUnary::promote(TIntermediate& intermediate) return false; } - setType(operand->getType()); - getWritableType().getQualifier().makeTemporary(); + node.setType(operand->getType()); + node.getWritableType().getQualifier().makeTemporary(); return true; } @@ -1814,13 +1835,14 @@ TIntermTyped* TIntermediate::convertToBasicType(TOperator op, TBasicType basicTy } // -// Establishes the type of the resultant operation, as well as -// makes the operator the correct one for the operands. +// See TIntermediate::promote // -// Returns false if operator can't work on operands. -// -bool TIntermBinary::promote(TIntermediate& intermediate) +bool TIntermediate::promoteBinary(TIntermBinary& node) { + TOperator op = node.getOp(); + TIntermTyped* left = node.getLeft(); + TIntermTyped* right = node.getRight(); + // Arrays and structures have to be exact matches. if ((left->isArray() || right->isArray() || left->getBasicType() == EbtStruct || right->getBasicType() == EbtStruct) && left->getType() != right->getType()) @@ -1828,8 +1850,8 @@ bool TIntermBinary::promote(TIntermediate& intermediate) // Base assumption: just make the type the same as the left // operand. Only deviations from this will be coded. - setType(left->getType()); - type.getQualifier().clear(); + node.setType(left->getType()); + node.getWritableType().getQualifier().clear(); // Composite and opaque types don't having pending operator changes, e.g., // array, structure, and samplers. Just establish final type and correctness. @@ -1842,7 +1864,7 @@ bool TIntermBinary::promote(TIntermediate& intermediate) return false; } else { // Promote to conditional - setType(TType(EbtBool)); + node.setType(TType(EbtBool)); } return true; @@ -1870,32 +1892,32 @@ bool TIntermBinary::promote(TIntermediate& intermediate) // Relational comparisons need numeric types and will promote to scalar Boolean. if (left->getBasicType() == EbtBool) return false; - setType(TType(EbtBool)); + node.setType(TType(EbtBool)); break; case EOpEqual: case EOpNotEqual: // All the above comparisons result in a bool (but not the vector compares) - setType(TType(EbtBool)); + node.setType(TType(EbtBool)); break; case EOpLogicalAnd: case EOpLogicalOr: case EOpLogicalXor: - if (intermediate.getSource() == EShSourceHlsl) { - TIntermTyped* convertedL = intermediate.convertToBasicType(op, EbtBool, left); - TIntermTyped* convertedR = intermediate.convertToBasicType(op, EbtBool, right); + if (getSource() == EShSourceHlsl) { + TIntermTyped* convertedL = convertToBasicType(op, EbtBool, left); + TIntermTyped* convertedR = convertToBasicType(op, EbtBool, right); if (convertedL == nullptr || convertedR == nullptr) return false; - left = convertedL; - right = convertedR; + node.setLeft(left = convertedL); // also updates stack variable + node.setRight(right = convertedR); // also updates stack variable } // logical ops operate only on scalar Booleans and will promote to scalar Boolean. if (left->getBasicType() != EbtBool || left->isVector() || left->isMatrix()) return false; - setType(TType(EbtBool)); + node.setType(TType(EbtBool)); break; case EOpRightShift: @@ -1912,7 +1934,7 @@ bool TIntermBinary::promote(TIntermediate& intermediate) case EOpAndAssign: case EOpInclusiveOrAssign: case EOpExclusiveOrAssign: - if (intermediate.getSource() == EShSourceHlsl) + if (getSource() == EShSourceHlsl) break; // Check for integer-only operands. @@ -2011,33 +2033,33 @@ bool TIntermBinary::promote(TIntermediate& intermediate) if (left->isVector()) { if (left->getVectorSize() != right->getMatrixRows()) return false; - op = EOpVectorTimesMatrix; - setType(TType(basicType, EvqTemporary, right->getMatrixCols())); + node.setOp(op = EOpVectorTimesMatrix); + node.setType(TType(basicType, EvqTemporary, right->getMatrixCols())); } else { - op = EOpMatrixTimesScalar; - setType(TType(basicType, EvqTemporary, 0, right->getMatrixCols(), right->getMatrixRows())); + node.setOp(op = EOpMatrixTimesScalar); + node.setType(TType(basicType, EvqTemporary, 0, right->getMatrixCols(), right->getMatrixRows())); } } else if (left->isMatrix() && !right->isMatrix()) { if (right->isVector()) { if (left->getMatrixCols() != right->getVectorSize()) return false; - op = EOpMatrixTimesVector; - setType(TType(basicType, EvqTemporary, left->getMatrixRows())); + node.setOp(op = EOpMatrixTimesVector); + node.setType(TType(basicType, EvqTemporary, left->getMatrixRows())); } else { - op = EOpMatrixTimesScalar; + node.setOp(op = EOpMatrixTimesScalar); } } else if (left->isMatrix() && right->isMatrix()) { if (left->getMatrixCols() != right->getMatrixRows()) return false; - op = EOpMatrixTimesMatrix; - setType(TType(basicType, EvqTemporary, 0, right->getMatrixCols(), left->getMatrixRows())); + node.setOp(op = EOpMatrixTimesMatrix); + node.setType(TType(basicType, EvqTemporary, 0, right->getMatrixCols(), left->getMatrixRows())); } else if (! left->isMatrix() && ! right->isMatrix()) { if (left->isVector() && right->isVector()) { ; // leave as component product } else if (left->isVector() || right->isVector()) { - op = EOpVectorTimesScalar; + node.setOp(op = EOpVectorTimesScalar); if (right->isVector()) - setType(TType(basicType, EvqTemporary, right->getVectorSize())); + node.setType(TType(basicType, EvqTemporary, right->getVectorSize())); } } else { return false; @@ -2048,7 +2070,7 @@ bool TIntermBinary::promote(TIntermediate& intermediate) if (left->isVector()) { if (left->getVectorSize() != right->getMatrixRows() || left->getVectorSize() != right->getMatrixCols()) return false; - op = EOpVectorTimesMatrixAssign; + node.setOp(op = EOpVectorTimesMatrixAssign); } else { return false; } @@ -2056,19 +2078,19 @@ bool TIntermBinary::promote(TIntermediate& intermediate) if (right->isVector()) { return false; } else { - op = EOpMatrixTimesScalarAssign; + node.setOp(op = EOpMatrixTimesScalarAssign); } } else if (left->isMatrix() && right->isMatrix()) { if (left->getMatrixCols() != left->getMatrixRows() || left->getMatrixCols() != right->getMatrixCols() || left->getMatrixCols() != right->getMatrixRows()) return false; - op = EOpMatrixTimesMatrixAssign; + node.setOp(op = EOpMatrixTimesMatrixAssign); } else if (!left->isMatrix() && !right->isMatrix()) { if (left->isVector() && right->isVector()) { // leave as component product } else if (left->isVector() || right->isVector()) { if (! left->isVector()) return false; - op = EOpVectorTimesScalarAssign; + node.setOp(op = EOpVectorTimesScalarAssign); } } else { return false; @@ -2112,8 +2134,8 @@ bool TIntermBinary::promote(TIntermediate& intermediate) if (left->isVector() && right->isVector() && left->getVectorSize() != right->getVectorSize()) return false; if (right->isVector() || right->isMatrix()) { - type.shallowCopy(right->getType()); - type.getQualifier().makeTemporary(); + node.getWritableType().shallowCopy(right->getType()); + node.getWritableType().getQualifier().makeTemporary(); } break; @@ -2137,7 +2159,7 @@ bool TIntermBinary::promote(TIntermediate& intermediate) case EOpExclusiveOrAssign: case EOpLeftShiftAssign: case EOpRightShiftAssign: - if (getType() != left->getType()) + if (node.getType() != left->getType()) return false; break; default: diff --git a/glslang/MachineIndependent/localintermediate.h b/glslang/MachineIndependent/localintermediate.h index c8742cb4..1dd14403 100644 --- a/glslang/MachineIndependent/localintermediate.h +++ b/glslang/MachineIndependent/localintermediate.h @@ -393,6 +393,9 @@ protected: bool userOutputUsed() const; static int getBaseAlignmentScalar(const TType&, int& size); bool isSpecializationOperation(const TIntermOperator&) const; + bool promote(TIntermOperator*); + bool promoteUnary(TIntermUnary&); + bool promoteBinary(TIntermBinary&); const EShLanguage language; // stage, known at construction time EShSource source; // source language, known a bit later -- cgit v1.2.3 From 6b596682c9687333aed894c9fbcb56591e5536c4 Mon Sep 17 00:00:00 2001 From: steve-lunarg Date: Thu, 20 Oct 2016 14:50:12 -0600 Subject: HLSL: fix defect in EOpMethodSampleCmp* texture decomposition HLSL holds the compare value in a separate intrinsic arg, but the AST wants a vector including the cmp val, except in the 4-dim coord case, where it doesn't fit and is in fact a separate AST parameter. This is awkward but necessary, given AST semantics. In the process, a new vector is constructed for the combined result, but this vector was not being given the correct TType, so was causing some downstream troubles. Now it is. A similar defect existed in OpTextureBias, and has also been fixed. --- .../baseResults/hlsl.samplecmp.array.dx10.frag.out | 517 ++++++++++---------- .../baseResults/hlsl.samplecmp.basic.dx10.frag.out | 502 ++++++++++---------- .../hlsl.samplecmp.offset.dx10.frag.out | 430 ++++++++--------- .../hlsl.samplecmp.offsetarray.dx10.frag.out | 423 +++++++++-------- .../hlsl.samplecmplevelzero.array.dx10.frag.out | 519 +++++++++++---------- .../hlsl.samplecmplevelzero.basic.dx10.frag.out | 504 ++++++++++---------- .../hlsl.samplecmplevelzero.offset.dx10.frag.out | 432 ++++++++--------- ...sl.samplecmplevelzero.offsetarray.dx10.frag.out | 425 +++++++++-------- hlsl/hlslParseHelper.cpp | 5 + 9 files changed, 1951 insertions(+), 1806 deletions(-) diff --git a/Test/baseResults/hlsl.samplecmp.array.dx10.frag.out b/Test/baseResults/hlsl.samplecmp.array.dx10.frag.out index 05f53c70..b05595d5 100644 --- a/Test/baseResults/hlsl.samplecmp.array.dx10.frag.out +++ b/Test/baseResults/hlsl.samplecmp.array.dx10.frag.out @@ -12,7 +12,7 @@ gl_FragCoord origin is upper left 0:42 Construct combined texture-sampler (temp sampler1DArrayShadow) 0:42 'g_tTex1df4a' (uniform texture1DArray) 0:42 'g_sSamp' (layout(binding=0 ) uniform sampler) -0:42 Construct vec3 (temp float) +0:42 Construct vec3 (temp 3-component vector of float) 0:? Constant: 0:? 0.100000 0:? 0.200000 @@ -25,7 +25,7 @@ gl_FragCoord origin is upper left 0:43 Construct combined texture-sampler (temp isampler1DArrayShadow) 0:43 'g_tTex1di4a' (uniform itexture1DArray) 0:43 'g_sSamp' (layout(binding=0 ) uniform sampler) -0:43 Construct vec3 (temp float) +0:43 Construct vec3 (temp 3-component vector of float) 0:? Constant: 0:? 0.100000 0:? 0.200000 @@ -38,7 +38,7 @@ gl_FragCoord origin is upper left 0:44 Construct combined texture-sampler (temp usampler1DArrayShadow) 0:44 'g_tTex1du4a' (uniform utexture1DArray) 0:44 'g_sSamp' (layout(binding=0 ) uniform sampler) -0:44 Construct vec3 (temp float) +0:44 Construct vec3 (temp 3-component vector of float) 0:? Constant: 0:? 0.100000 0:? 0.200000 @@ -51,7 +51,7 @@ gl_FragCoord origin is upper left 0:47 Construct combined texture-sampler (temp sampler2DArrayShadow) 0:47 'g_tTex2df4a' (uniform texture2DArray) 0:47 'g_sSamp' (layout(binding=0 ) uniform sampler) -0:47 Construct vec4 (temp float) +0:47 Construct vec4 (temp 4-component vector of float) 0:? Constant: 0:? 0.100000 0:? 0.200000 @@ -65,7 +65,7 @@ gl_FragCoord origin is upper left 0:48 Construct combined texture-sampler (temp isampler2DArrayShadow) 0:48 'g_tTex2di4a' (uniform itexture2DArray) 0:48 'g_sSamp' (layout(binding=0 ) uniform sampler) -0:48 Construct vec4 (temp float) +0:48 Construct vec4 (temp 4-component vector of float) 0:? Constant: 0:? 0.100000 0:? 0.200000 @@ -79,7 +79,7 @@ gl_FragCoord origin is upper left 0:49 Construct combined texture-sampler (temp usampler2DArrayShadow) 0:49 'g_tTex2du4a' (uniform utexture2DArray) 0:49 'g_sSamp' (layout(binding=0 ) uniform sampler) -0:49 Construct vec4 (temp float) +0:49 Construct vec4 (temp 4-component vector of float) 0:? Constant: 0:? 0.100000 0:? 0.200000 @@ -93,7 +93,7 @@ gl_FragCoord origin is upper left 0:52 Construct combined texture-sampler (temp samplerCubeArrayShadow) 0:52 'g_tTexcdf4a' (uniform textureCubeArray) 0:52 'g_sSamp' (layout(binding=0 ) uniform sampler) -0:52 Construct vec4 (temp float) +0:52 Construct vec4 (temp 4-component vector of float) 0:? Constant: 0:? 0.100000 0:? 0.200000 @@ -108,7 +108,7 @@ gl_FragCoord origin is upper left 0:53 Construct combined texture-sampler (temp isamplerCubeArrayShadow) 0:53 'g_tTexcdi4a' (uniform itextureCubeArray) 0:53 'g_sSamp' (layout(binding=0 ) uniform sampler) -0:53 Construct vec4 (temp float) +0:53 Construct vec4 (temp 4-component vector of float) 0:? Constant: 0:? 0.100000 0:? 0.200000 @@ -123,7 +123,7 @@ gl_FragCoord origin is upper left 0:54 Construct combined texture-sampler (temp usamplerCubeArrayShadow) 0:54 'g_tTexcdu4a' (uniform utextureCubeArray) 0:54 'g_sSamp' (layout(binding=0 ) uniform sampler) -0:54 Construct vec4 (temp float) +0:54 Construct vec4 (temp 4-component vector of float) 0:? Constant: 0:? 0.100000 0:? 0.200000 @@ -206,7 +206,7 @@ gl_FragCoord origin is upper left 0:42 Construct combined texture-sampler (temp sampler1DArrayShadow) 0:42 'g_tTex1df4a' (uniform texture1DArray) 0:42 'g_sSamp' (layout(binding=0 ) uniform sampler) -0:42 Construct vec3 (temp float) +0:42 Construct vec3 (temp 3-component vector of float) 0:? Constant: 0:? 0.100000 0:? 0.200000 @@ -219,7 +219,7 @@ gl_FragCoord origin is upper left 0:43 Construct combined texture-sampler (temp isampler1DArrayShadow) 0:43 'g_tTex1di4a' (uniform itexture1DArray) 0:43 'g_sSamp' (layout(binding=0 ) uniform sampler) -0:43 Construct vec3 (temp float) +0:43 Construct vec3 (temp 3-component vector of float) 0:? Constant: 0:? 0.100000 0:? 0.200000 @@ -232,7 +232,7 @@ gl_FragCoord origin is upper left 0:44 Construct combined texture-sampler (temp usampler1DArrayShadow) 0:44 'g_tTex1du4a' (uniform utexture1DArray) 0:44 'g_sSamp' (layout(binding=0 ) uniform sampler) -0:44 Construct vec3 (temp float) +0:44 Construct vec3 (temp 3-component vector of float) 0:? Constant: 0:? 0.100000 0:? 0.200000 @@ -245,7 +245,7 @@ gl_FragCoord origin is upper left 0:47 Construct combined texture-sampler (temp sampler2DArrayShadow) 0:47 'g_tTex2df4a' (uniform texture2DArray) 0:47 'g_sSamp' (layout(binding=0 ) uniform sampler) -0:47 Construct vec4 (temp float) +0:47 Construct vec4 (temp 4-component vector of float) 0:? Constant: 0:? 0.100000 0:? 0.200000 @@ -259,7 +259,7 @@ gl_FragCoord origin is upper left 0:48 Construct combined texture-sampler (temp isampler2DArrayShadow) 0:48 'g_tTex2di4a' (uniform itexture2DArray) 0:48 'g_sSamp' (layout(binding=0 ) uniform sampler) -0:48 Construct vec4 (temp float) +0:48 Construct vec4 (temp 4-component vector of float) 0:? Constant: 0:? 0.100000 0:? 0.200000 @@ -273,7 +273,7 @@ gl_FragCoord origin is upper left 0:49 Construct combined texture-sampler (temp usampler2DArrayShadow) 0:49 'g_tTex2du4a' (uniform utexture2DArray) 0:49 'g_sSamp' (layout(binding=0 ) uniform sampler) -0:49 Construct vec4 (temp float) +0:49 Construct vec4 (temp 4-component vector of float) 0:? Constant: 0:? 0.100000 0:? 0.200000 @@ -287,7 +287,7 @@ gl_FragCoord origin is upper left 0:52 Construct combined texture-sampler (temp samplerCubeArrayShadow) 0:52 'g_tTexcdf4a' (uniform textureCubeArray) 0:52 'g_sSamp' (layout(binding=0 ) uniform sampler) -0:52 Construct vec4 (temp float) +0:52 Construct vec4 (temp 4-component vector of float) 0:? Constant: 0:? 0.100000 0:? 0.200000 @@ -302,7 +302,7 @@ gl_FragCoord origin is upper left 0:53 Construct combined texture-sampler (temp isamplerCubeArrayShadow) 0:53 'g_tTexcdi4a' (uniform itextureCubeArray) 0:53 'g_sSamp' (layout(binding=0 ) uniform sampler) -0:53 Construct vec4 (temp float) +0:53 Construct vec4 (temp 4-component vector of float) 0:? Constant: 0:? 0.100000 0:? 0.200000 @@ -317,7 +317,7 @@ gl_FragCoord origin is upper left 0:54 Construct combined texture-sampler (temp usamplerCubeArrayShadow) 0:54 'g_tTexcdu4a' (uniform utextureCubeArray) 0:54 'g_sSamp' (layout(binding=0 ) uniform sampler) -0:54 Construct vec4 (temp float) +0:54 Construct vec4 (temp 4-component vector of float) 0:? Constant: 0:? 0.100000 0:? 0.200000 @@ -385,79 +385,79 @@ gl_FragCoord origin is upper left // Module Version 10000 // Generated by (magic number): 80001 -// Id's are bound by 184 +// Id's are bound by 211 Capability Shader Capability Sampled1D Capability SampledCubeArray 1: ExtInstImport "GLSL.std.450" MemoryModel Logical GLSL450 - EntryPoint Fragment 4 "main" 140 144 + EntryPoint Fragment 4 "main" 167 171 ExecutionMode 4 OriginUpperLeft Name 4 "main" Name 8 "r10" Name 11 "g_tTex1df4a" Name 15 "g_sSamp" - Name 28 "r12" - Name 32 "g_tTex1di4a" - Name 41 "r14" - Name 45 "g_tTex1du4a" - Name 54 "r30" - Name 57 "g_tTex2df4a" - Name 69 "r32" - Name 72 "g_tTex2di4a" - Name 81 "r34" - Name 84 "g_tTex2du4a" - Name 93 "r60" - Name 96 "g_tTexcdf4a" - Name 107 "r62" - Name 110 "g_tTexcdi4a" - Name 118 "r64" - Name 121 "g_tTexcdu4a" - Name 129 "PS_OUTPUT" - MemberName 129(PS_OUTPUT) 0 "Color" - MemberName 129(PS_OUTPUT) 1 "Depth" - Name 131 "psout" - Name 140 "Color" - Name 144 "Depth" - Name 150 "g_tTex1df4" - Name 153 "g_tTex1di4" - Name 156 "g_tTex1du4" - Name 159 "g_tTex2df4" - Name 162 "g_tTex2di4" - Name 165 "g_tTex2du4" - Name 168 "g_tTex3df4" - Name 171 "g_tTex3di4" - Name 174 "g_tTex3du4" - Name 177 "g_tTexcdf4" - Name 180 "g_tTexcdi4" - Name 183 "g_tTexcdu4" + Name 31 "r12" + Name 35 "g_tTex1di4a" + Name 46 "r14" + Name 50 "g_tTex1du4a" + Name 61 "r30" + Name 64 "g_tTex2df4a" + Name 79 "r32" + Name 82 "g_tTex2di4a" + Name 94 "r34" + Name 97 "g_tTex2du4a" + Name 109 "r60" + Name 112 "g_tTexcdf4a" + Name 126 "r62" + Name 129 "g_tTexcdi4a" + Name 141 "r64" + Name 144 "g_tTexcdu4a" + Name 156 "PS_OUTPUT" + MemberName 156(PS_OUTPUT) 0 "Color" + MemberName 156(PS_OUTPUT) 1 "Depth" + Name 158 "psout" + Name 167 "Color" + Name 171 "Depth" + Name 177 "g_tTex1df4" + Name 180 "g_tTex1di4" + Name 183 "g_tTex1du4" + Name 186 "g_tTex2df4" + Name 189 "g_tTex2di4" + Name 192 "g_tTex2du4" + Name 195 "g_tTex3df4" + Name 198 "g_tTex3di4" + Name 201 "g_tTex3du4" + Name 204 "g_tTexcdf4" + Name 207 "g_tTexcdi4" + Name 210 "g_tTexcdu4" Decorate 11(g_tTex1df4a) DescriptorSet 0 Decorate 15(g_sSamp) DescriptorSet 0 Decorate 15(g_sSamp) Binding 0 - Decorate 32(g_tTex1di4a) DescriptorSet 0 - Decorate 45(g_tTex1du4a) DescriptorSet 0 - Decorate 57(g_tTex2df4a) DescriptorSet 0 - Decorate 72(g_tTex2di4a) DescriptorSet 0 - Decorate 84(g_tTex2du4a) DescriptorSet 0 - Decorate 96(g_tTexcdf4a) DescriptorSet 0 - Decorate 110(g_tTexcdi4a) DescriptorSet 0 - Decorate 121(g_tTexcdu4a) DescriptorSet 0 - Decorate 140(Color) Location 0 - Decorate 144(Depth) BuiltIn FragDepth - Decorate 150(g_tTex1df4) DescriptorSet 0 - Decorate 150(g_tTex1df4) Binding 0 - Decorate 153(g_tTex1di4) DescriptorSet 0 - Decorate 156(g_tTex1du4) DescriptorSet 0 - Decorate 159(g_tTex2df4) DescriptorSet 0 - Decorate 162(g_tTex2di4) DescriptorSet 0 - Decorate 165(g_tTex2du4) DescriptorSet 0 - Decorate 168(g_tTex3df4) DescriptorSet 0 - Decorate 171(g_tTex3di4) DescriptorSet 0 - Decorate 174(g_tTex3du4) DescriptorSet 0 - Decorate 177(g_tTexcdf4) DescriptorSet 0 - Decorate 180(g_tTexcdi4) DescriptorSet 0 - Decorate 183(g_tTexcdu4) DescriptorSet 0 + Decorate 35(g_tTex1di4a) DescriptorSet 0 + Decorate 50(g_tTex1du4a) DescriptorSet 0 + Decorate 64(g_tTex2df4a) DescriptorSet 0 + Decorate 82(g_tTex2di4a) DescriptorSet 0 + Decorate 97(g_tTex2du4a) DescriptorSet 0 + Decorate 112(g_tTexcdf4a) DescriptorSet 0 + Decorate 129(g_tTexcdi4a) DescriptorSet 0 + Decorate 144(g_tTexcdu4a) DescriptorSet 0 + Decorate 167(Color) Location 0 + Decorate 171(Depth) BuiltIn FragDepth + Decorate 177(g_tTex1df4) DescriptorSet 0 + Decorate 177(g_tTex1df4) Binding 0 + Decorate 180(g_tTex1di4) DescriptorSet 0 + Decorate 183(g_tTex1du4) DescriptorSet 0 + Decorate 186(g_tTex2df4) DescriptorSet 0 + Decorate 189(g_tTex2di4) DescriptorSet 0 + Decorate 192(g_tTex2du4) DescriptorSet 0 + Decorate 195(g_tTex3df4) DescriptorSet 0 + Decorate 198(g_tTex3di4) DescriptorSet 0 + Decorate 201(g_tTex3du4) DescriptorSet 0 + Decorate 204(g_tTexcdf4) DescriptorSet 0 + Decorate 207(g_tTexcdi4) DescriptorSet 0 + Decorate 210(g_tTexcdu4) DescriptorSet 0 2: TypeVoid 3: TypeFunction 2 6: TypeFloat 32 @@ -475,182 +475,209 @@ gl_FragCoord origin is upper left 22: 6(float) Constant 1045220557 23: 20(fvec2) ConstantComposite 21 22 24: 6(float) Constant 1061158912 - 29: TypeInt 32 1 - 30: TypeImage 29(int) 1D array sampled format:Unknown - 31: TypePointer UniformConstant 30 - 32(g_tTex1di4a): 31(ptr) Variable UniformConstant - 35: TypeImage 29(int) 1D depth array sampled format:Unknown - 36: TypeSampledImage 35 - 42: TypeInt 32 0 - 43: TypeImage 42(int) 1D array sampled format:Unknown - 44: TypePointer UniformConstant 43 - 45(g_tTex1du4a): 44(ptr) Variable UniformConstant - 48: TypeImage 42(int) 1D depth array sampled format:Unknown - 49: TypeSampledImage 48 - 55: TypeImage 6(float) 2D array sampled format:Unknown - 56: TypePointer UniformConstant 55 - 57(g_tTex2df4a): 56(ptr) Variable UniformConstant - 60: TypeImage 6(float) 2D depth array sampled format:Unknown - 61: TypeSampledImage 60 - 63: TypeVector 6(float) 3 - 64: 6(float) Constant 1050253722 - 65: 63(fvec3) ConstantComposite 21 22 64 - 70: TypeImage 29(int) 2D array sampled format:Unknown - 71: TypePointer UniformConstant 70 - 72(g_tTex2di4a): 71(ptr) Variable UniformConstant - 75: TypeImage 29(int) 2D depth array sampled format:Unknown - 76: TypeSampledImage 75 - 82: TypeImage 42(int) 2D array sampled format:Unknown - 83: TypePointer UniformConstant 82 - 84(g_tTex2du4a): 83(ptr) Variable UniformConstant - 87: TypeImage 42(int) 2D depth array sampled format:Unknown - 88: TypeSampledImage 87 - 94: TypeImage 6(float) Cube array sampled format:Unknown - 95: TypePointer UniformConstant 94 - 96(g_tTexcdf4a): 95(ptr) Variable UniformConstant - 99: TypeImage 6(float) Cube depth array sampled format:Unknown - 100: TypeSampledImage 99 - 102: TypeVector 6(float) 4 - 103: 6(float) Constant 1053609165 - 104: 102(fvec4) ConstantComposite 21 22 64 103 - 108: TypeImage 29(int) Cube array sampled format:Unknown - 109: TypePointer UniformConstant 108 -110(g_tTexcdi4a): 109(ptr) Variable UniformConstant - 113: TypeImage 29(int) Cube depth array sampled format:Unknown - 114: TypeSampledImage 113 - 119: TypeImage 42(int) Cube array sampled format:Unknown - 120: TypePointer UniformConstant 119 -121(g_tTexcdu4a): 120(ptr) Variable UniformConstant - 124: TypeImage 42(int) Cube depth array sampled format:Unknown - 125: TypeSampledImage 124 - 129(PS_OUTPUT): TypeStruct 102(fvec4) 6(float) - 130: TypePointer Function 129(PS_OUTPUT) - 132: 29(int) Constant 0 - 133: 6(float) Constant 1065353216 - 134: 102(fvec4) ConstantComposite 133 133 133 133 - 135: TypePointer Function 102(fvec4) - 137: 29(int) Constant 1 - 139: TypePointer Output 102(fvec4) - 140(Color): 139(ptr) Variable Output - 143: TypePointer Output 6(float) - 144(Depth): 143(ptr) Variable Output - 148: TypeImage 6(float) 1D sampled format:Unknown - 149: TypePointer UniformConstant 148 - 150(g_tTex1df4): 149(ptr) Variable UniformConstant - 151: TypeImage 29(int) 1D sampled format:Unknown - 152: TypePointer UniformConstant 151 - 153(g_tTex1di4): 152(ptr) Variable UniformConstant - 154: TypeImage 42(int) 1D sampled format:Unknown - 155: TypePointer UniformConstant 154 - 156(g_tTex1du4): 155(ptr) Variable UniformConstant - 157: TypeImage 6(float) 2D sampled format:Unknown - 158: TypePointer UniformConstant 157 - 159(g_tTex2df4): 158(ptr) Variable UniformConstant - 160: TypeImage 29(int) 2D sampled format:Unknown - 161: TypePointer UniformConstant 160 - 162(g_tTex2di4): 161(ptr) Variable UniformConstant - 163: TypeImage 42(int) 2D sampled format:Unknown - 164: TypePointer UniformConstant 163 - 165(g_tTex2du4): 164(ptr) Variable UniformConstant - 166: TypeImage 6(float) 3D sampled format:Unknown - 167: TypePointer UniformConstant 166 - 168(g_tTex3df4): 167(ptr) Variable UniformConstant - 169: TypeImage 29(int) 3D sampled format:Unknown - 170: TypePointer UniformConstant 169 - 171(g_tTex3di4): 170(ptr) Variable UniformConstant - 172: TypeImage 42(int) 3D sampled format:Unknown - 173: TypePointer UniformConstant 172 - 174(g_tTex3du4): 173(ptr) Variable UniformConstant - 175: TypeImage 6(float) Cube sampled format:Unknown + 25: TypeVector 6(float) 3 + 32: TypeInt 32 1 + 33: TypeImage 32(int) 1D array sampled format:Unknown + 34: TypePointer UniformConstant 33 + 35(g_tTex1di4a): 34(ptr) Variable UniformConstant + 38: TypeImage 32(int) 1D depth array sampled format:Unknown + 39: TypeSampledImage 38 + 47: TypeInt 32 0 + 48: TypeImage 47(int) 1D array sampled format:Unknown + 49: TypePointer UniformConstant 48 + 50(g_tTex1du4a): 49(ptr) Variable UniformConstant + 53: TypeImage 47(int) 1D depth array sampled format:Unknown + 54: TypeSampledImage 53 + 62: TypeImage 6(float) 2D array sampled format:Unknown + 63: TypePointer UniformConstant 62 + 64(g_tTex2df4a): 63(ptr) Variable UniformConstant + 67: TypeImage 6(float) 2D depth array sampled format:Unknown + 68: TypeSampledImage 67 + 70: 6(float) Constant 1050253722 + 71: 25(fvec3) ConstantComposite 21 22 70 + 72: TypeVector 6(float) 4 + 80: TypeImage 32(int) 2D array sampled format:Unknown + 81: TypePointer UniformConstant 80 + 82(g_tTex2di4a): 81(ptr) Variable UniformConstant + 85: TypeImage 32(int) 2D depth array sampled format:Unknown + 86: TypeSampledImage 85 + 95: TypeImage 47(int) 2D array sampled format:Unknown + 96: TypePointer UniformConstant 95 + 97(g_tTex2du4a): 96(ptr) Variable UniformConstant + 100: TypeImage 47(int) 2D depth array sampled format:Unknown + 101: TypeSampledImage 100 + 110: TypeImage 6(float) Cube array sampled format:Unknown + 111: TypePointer UniformConstant 110 +112(g_tTexcdf4a): 111(ptr) Variable UniformConstant + 115: TypeImage 6(float) Cube depth array sampled format:Unknown + 116: TypeSampledImage 115 + 118: 6(float) Constant 1053609165 + 119: 72(fvec4) ConstantComposite 21 22 70 118 + 127: TypeImage 32(int) Cube array sampled format:Unknown + 128: TypePointer UniformConstant 127 +129(g_tTexcdi4a): 128(ptr) Variable UniformConstant + 132: TypeImage 32(int) Cube depth array sampled format:Unknown + 133: TypeSampledImage 132 + 142: TypeImage 47(int) Cube array sampled format:Unknown + 143: TypePointer UniformConstant 142 +144(g_tTexcdu4a): 143(ptr) Variable UniformConstant + 147: TypeImage 47(int) Cube depth array sampled format:Unknown + 148: TypeSampledImage 147 + 156(PS_OUTPUT): TypeStruct 72(fvec4) 6(float) + 157: TypePointer Function 156(PS_OUTPUT) + 159: 32(int) Constant 0 + 160: 6(float) Constant 1065353216 + 161: 72(fvec4) ConstantComposite 160 160 160 160 + 162: TypePointer Function 72(fvec4) + 164: 32(int) Constant 1 + 166: TypePointer Output 72(fvec4) + 167(Color): 166(ptr) Variable Output + 170: TypePointer Output 6(float) + 171(Depth): 170(ptr) Variable Output + 175: TypeImage 6(float) 1D sampled format:Unknown 176: TypePointer UniformConstant 175 - 177(g_tTexcdf4): 176(ptr) Variable UniformConstant - 178: TypeImage 29(int) Cube sampled format:Unknown + 177(g_tTex1df4): 176(ptr) Variable UniformConstant + 178: TypeImage 32(int) 1D sampled format:Unknown 179: TypePointer UniformConstant 178 - 180(g_tTexcdi4): 179(ptr) Variable UniformConstant - 181: TypeImage 42(int) Cube sampled format:Unknown + 180(g_tTex1di4): 179(ptr) Variable UniformConstant + 181: TypeImage 47(int) 1D sampled format:Unknown 182: TypePointer UniformConstant 181 - 183(g_tTexcdu4): 182(ptr) Variable UniformConstant + 183(g_tTex1du4): 182(ptr) Variable UniformConstant + 184: TypeImage 6(float) 2D sampled format:Unknown + 185: TypePointer UniformConstant 184 + 186(g_tTex2df4): 185(ptr) Variable UniformConstant + 187: TypeImage 32(int) 2D sampled format:Unknown + 188: TypePointer UniformConstant 187 + 189(g_tTex2di4): 188(ptr) Variable UniformConstant + 190: TypeImage 47(int) 2D sampled format:Unknown + 191: TypePointer UniformConstant 190 + 192(g_tTex2du4): 191(ptr) Variable UniformConstant + 193: TypeImage 6(float) 3D sampled format:Unknown + 194: TypePointer UniformConstant 193 + 195(g_tTex3df4): 194(ptr) Variable UniformConstant + 196: TypeImage 32(int) 3D sampled format:Unknown + 197: TypePointer UniformConstant 196 + 198(g_tTex3di4): 197(ptr) Variable UniformConstant + 199: TypeImage 47(int) 3D sampled format:Unknown + 200: TypePointer UniformConstant 199 + 201(g_tTex3du4): 200(ptr) Variable UniformConstant + 202: TypeImage 6(float) Cube sampled format:Unknown + 203: TypePointer UniformConstant 202 + 204(g_tTexcdf4): 203(ptr) Variable UniformConstant + 205: TypeImage 32(int) Cube sampled format:Unknown + 206: TypePointer UniformConstant 205 + 207(g_tTexcdi4): 206(ptr) Variable UniformConstant + 208: TypeImage 47(int) Cube sampled format:Unknown + 209: TypePointer UniformConstant 208 + 210(g_tTexcdu4): 209(ptr) Variable UniformConstant 4(main): 2 Function None 3 5: Label 8(r10): 7(ptr) Variable Function - 28(r12): 7(ptr) Variable Function - 41(r14): 7(ptr) Variable Function - 54(r30): 7(ptr) Variable Function - 69(r32): 7(ptr) Variable Function - 81(r34): 7(ptr) Variable Function - 93(r60): 7(ptr) Variable Function - 107(r62): 7(ptr) Variable Function - 118(r64): 7(ptr) Variable Function - 131(psout): 130(ptr) Variable Function + 31(r12): 7(ptr) Variable Function + 46(r14): 7(ptr) Variable Function + 61(r30): 7(ptr) Variable Function + 79(r32): 7(ptr) Variable Function + 94(r34): 7(ptr) Variable Function + 109(r60): 7(ptr) Variable Function + 126(r62): 7(ptr) Variable Function + 141(r64): 7(ptr) Variable Function + 158(psout): 157(ptr) Variable Function 12: 9 Load 11(g_tTex1df4a) 16: 13 Load 15(g_sSamp) 19: 18 SampledImage 12 16 - 25: 6(float) CompositeExtract 23 0 - 26: 6(float) CompositeExtract 25 0 - 27: 6(float) ImageSampleDrefImplicitLod 19 25 26 - Store 8(r10) 27 - 33: 30 Load 32(g_tTex1di4a) - 34: 13 Load 15(g_sSamp) - 37: 36 SampledImage 33 34 - 38: 6(float) CompositeExtract 23 0 - 39: 6(float) CompositeExtract 38 0 - 40: 6(float) ImageSampleDrefImplicitLod 37 38 39 - Store 28(r12) 40 - 46: 43 Load 45(g_tTex1du4a) - 47: 13 Load 15(g_sSamp) - 50: 49 SampledImage 46 47 - 51: 6(float) CompositeExtract 23 0 - 52: 6(float) CompositeExtract 51 0 - 53: 6(float) ImageSampleDrefImplicitLod 50 51 52 - Store 41(r14) 53 - 58: 55 Load 57(g_tTex2df4a) - 59: 13 Load 15(g_sSamp) - 62: 61 SampledImage 58 59 - 66: 6(float) CompositeExtract 65 0 - 67: 6(float) CompositeExtract 66 0 - 68: 6(float) ImageSampleDrefImplicitLod 62 66 67 - Store 54(r30) 68 - 73: 70 Load 72(g_tTex2di4a) - 74: 13 Load 15(g_sSamp) - 77: 76 SampledImage 73 74 - 78: 6(float) CompositeExtract 65 0 - 79: 6(float) CompositeExtract 78 0 - 80: 6(float) ImageSampleDrefImplicitLod 77 78 79 - Store 69(r32) 80 - 85: 82 Load 84(g_tTex2du4a) - 86: 13 Load 15(g_sSamp) - 89: 88 SampledImage 85 86 - 90: 6(float) CompositeExtract 65 0 - 91: 6(float) CompositeExtract 90 0 - 92: 6(float) ImageSampleDrefImplicitLod 89 90 91 - Store 81(r34) 92 - 97: 94 Load 96(g_tTexcdf4a) - 98: 13 Load 15(g_sSamp) - 101: 100 SampledImage 97 98 - 105: 6(float) CompositeExtract 104 0 - 106: 6(float) ImageSampleDrefImplicitLod 101 105 24 - Store 93(r60) 106 - 111: 108 Load 110(g_tTexcdi4a) - 112: 13 Load 15(g_sSamp) - 115: 114 SampledImage 111 112 - 116: 6(float) CompositeExtract 104 0 - 117: 6(float) ImageSampleDrefImplicitLod 115 116 24 - Store 107(r62) 117 - 122: 119 Load 121(g_tTexcdu4a) - 123: 13 Load 15(g_sSamp) - 126: 125 SampledImage 122 123 - 127: 6(float) CompositeExtract 104 0 - 128: 6(float) ImageSampleDrefImplicitLod 126 127 24 - Store 118(r64) 128 - 136: 135(ptr) AccessChain 131(psout) 132 - Store 136 134 - 138: 7(ptr) AccessChain 131(psout) 137 - Store 138 133 - 141: 135(ptr) AccessChain 131(psout) 132 - 142: 102(fvec4) Load 141 - Store 140(Color) 142 - 145: 7(ptr) AccessChain 131(psout) 137 - 146: 6(float) Load 145 - Store 144(Depth) 146 + 26: 6(float) CompositeExtract 23 0 + 27: 6(float) CompositeExtract 23 1 + 28: 25(fvec3) CompositeConstruct 26 27 24 + 29: 6(float) CompositeExtract 28 2 + 30: 6(float) ImageSampleDrefImplicitLod 19 28 29 + Store 8(r10) 30 + 36: 33 Load 35(g_tTex1di4a) + 37: 13 Load 15(g_sSamp) + 40: 39 SampledImage 36 37 + 41: 6(float) CompositeExtract 23 0 + 42: 6(float) CompositeExtract 23 1 + 43: 25(fvec3) CompositeConstruct 41 42 24 + 44: 6(float) CompositeExtract 43 2 + 45: 6(float) ImageSampleDrefImplicitLod 40 43 44 + Store 31(r12) 45 + 51: 48 Load 50(g_tTex1du4a) + 52: 13 Load 15(g_sSamp) + 55: 54 SampledImage 51 52 + 56: 6(float) CompositeExtract 23 0 + 57: 6(float) CompositeExtract 23 1 + 58: 25(fvec3) CompositeConstruct 56 57 24 + 59: 6(float) CompositeExtract 58 2 + 60: 6(float) ImageSampleDrefImplicitLod 55 58 59 + Store 46(r14) 60 + 65: 62 Load 64(g_tTex2df4a) + 66: 13 Load 15(g_sSamp) + 69: 68 SampledImage 65 66 + 73: 6(float) CompositeExtract 71 0 + 74: 6(float) CompositeExtract 71 1 + 75: 6(float) CompositeExtract 71 2 + 76: 72(fvec4) CompositeConstruct 73 74 75 24 + 77: 6(float) CompositeExtract 76 3 + 78: 6(float) ImageSampleDrefImplicitLod 69 76 77 + Store 61(r30) 78 + 83: 80 Load 82(g_tTex2di4a) + 84: 13 Load 15(g_sSamp) + 87: 86 SampledImage 83 84 + 88: 6(float) CompositeExtract 71 0 + 89: 6(float) CompositeExtract 71 1 + 90: 6(float) CompositeExtract 71 2 + 91: 72(fvec4) CompositeConstruct 88 89 90 24 + 92: 6(float) CompositeExtract 91 3 + 93: 6(float) ImageSampleDrefImplicitLod 87 91 92 + Store 79(r32) 93 + 98: 95 Load 97(g_tTex2du4a) + 99: 13 Load 15(g_sSamp) + 102: 101 SampledImage 98 99 + 103: 6(float) CompositeExtract 71 0 + 104: 6(float) CompositeExtract 71 1 + 105: 6(float) CompositeExtract 71 2 + 106: 72(fvec4) CompositeConstruct 103 104 105 24 + 107: 6(float) CompositeExtract 106 3 + 108: 6(float) ImageSampleDrefImplicitLod 102 106 107 + Store 94(r34) 108 + 113: 110 Load 112(g_tTexcdf4a) + 114: 13 Load 15(g_sSamp) + 117: 116 SampledImage 113 114 + 120: 6(float) CompositeExtract 119 0 + 121: 6(float) CompositeExtract 119 1 + 122: 6(float) CompositeExtract 119 2 + 123: 6(float) CompositeExtract 119 3 + 124: 72(fvec4) CompositeConstruct 120 121 122 123 + 125: 6(float) ImageSampleDrefImplicitLod 117 124 24 + Store 109(r60) 125 + 130: 127 Load 129(g_tTexcdi4a) + 131: 13 Load 15(g_sSamp) + 134: 133 SampledImage 130 131 + 135: 6(float) CompositeExtract 119 0 + 136: 6(float) CompositeExtract 119 1 + 137: 6(float) CompositeExtract 119 2 + 138: 6(float) CompositeExtract 119 3 + 139: 72(fvec4) CompositeConstruct 135 136 137 138 + 140: 6(float) ImageSampleDrefImplicitLod 134 139 24 + Store 126(r62) 140 + 145: 142 Load 144(g_tTexcdu4a) + 146: 13 Load 15(g_sSamp) + 149: 148 SampledImage 145 146 + 150: 6(float) CompositeExtract 119 0 + 151: 6(float) CompositeExtract 119 1 + 152: 6(float) CompositeExtract 119 2 + 153: 6(float) CompositeExtract 119 3 + 154: 72(fvec4) CompositeConstruct 150 151 152 153 + 155: 6(float) ImageSampleDrefImplicitLod 149 154 24 + Store 141(r64) 155 + 163: 162(ptr) AccessChain 158(psout) 159 + Store 163 161 + 165: 7(ptr) AccessChain 158(psout) 164 + Store 165 160 + 168: 162(ptr) AccessChain 158(psout) 159 + 169: 72(fvec4) Load 168 + Store 167(Color) 169 + 172: 7(ptr) AccessChain 158(psout) 164 + 173: 6(float) Load 172 + Store 171(Depth) 173 Return FunctionEnd diff --git a/Test/baseResults/hlsl.samplecmp.basic.dx10.frag.out b/Test/baseResults/hlsl.samplecmp.basic.dx10.frag.out index d7a6b2f3..aa9b3795 100644 --- a/Test/baseResults/hlsl.samplecmp.basic.dx10.frag.out +++ b/Test/baseResults/hlsl.samplecmp.basic.dx10.frag.out @@ -12,7 +12,7 @@ gl_FragCoord origin is upper left 0:42 Construct combined texture-sampler (temp sampler1DShadow) 0:42 'g_tTex1df4' (layout(binding=0 ) uniform texture1D) 0:42 'g_sSamp' (layout(binding=0 ) uniform sampler) -0:42 Construct vec2 (temp float) +0:42 Construct vec2 (temp 2-component vector of float) 0:42 Constant: 0:42 0.100000 0:42 Constant: @@ -24,7 +24,7 @@ gl_FragCoord origin is upper left 0:43 Construct combined texture-sampler (temp isampler1DShadow) 0:43 'g_tTex1di4' (uniform itexture1D) 0:43 'g_sSamp' (layout(binding=0 ) uniform sampler) -0:43 Construct vec2 (temp float) +0:43 Construct vec2 (temp 2-component vector of float) 0:43 Constant: 0:43 0.100000 0:43 Constant: @@ -36,7 +36,7 @@ gl_FragCoord origin is upper left 0:44 Construct combined texture-sampler (temp usampler1DShadow) 0:44 'g_tTex1du4' (uniform utexture1D) 0:44 'g_sSamp' (layout(binding=0 ) uniform sampler) -0:44 Construct vec2 (temp float) +0:44 Construct vec2 (temp 2-component vector of float) 0:44 Constant: 0:44 0.100000 0:44 Constant: @@ -48,7 +48,7 @@ gl_FragCoord origin is upper left 0:47 Construct combined texture-sampler (temp sampler2DShadow) 0:47 'g_tTex2df4' (uniform texture2D) 0:47 'g_sSamp' (layout(binding=0 ) uniform sampler) -0:47 Construct vec3 (temp float) +0:47 Construct vec3 (temp 3-component vector of float) 0:? Constant: 0:? 0.100000 0:? 0.200000 @@ -61,7 +61,7 @@ gl_FragCoord origin is upper left 0:48 Construct combined texture-sampler (temp isampler2DShadow) 0:48 'g_tTex2di4' (uniform itexture2D) 0:48 'g_sSamp' (layout(binding=0 ) uniform sampler) -0:48 Construct vec3 (temp float) +0:48 Construct vec3 (temp 3-component vector of float) 0:? Constant: 0:? 0.100000 0:? 0.200000 @@ -74,7 +74,7 @@ gl_FragCoord origin is upper left 0:49 Construct combined texture-sampler (temp usampler2DShadow) 0:49 'g_tTex2du4' (uniform utexture2D) 0:49 'g_sSamp' (layout(binding=0 ) uniform sampler) -0:49 Construct vec3 (temp float) +0:49 Construct vec3 (temp 3-component vector of float) 0:? Constant: 0:? 0.100000 0:? 0.200000 @@ -87,7 +87,7 @@ gl_FragCoord origin is upper left 0:53 Construct combined texture-sampler (temp samplerCubeShadow) 0:53 'g_tTexcdf4' (uniform textureCube) 0:53 'g_sSamp' (layout(binding=0 ) uniform sampler) -0:53 Construct vec4 (temp float) +0:53 Construct vec4 (temp 4-component vector of float) 0:? Constant: 0:? 0.100000 0:? 0.200000 @@ -101,7 +101,7 @@ gl_FragCoord origin is upper left 0:54 Construct combined texture-sampler (temp isamplerCubeShadow) 0:54 'g_tTexcdi4' (uniform itextureCube) 0:54 'g_sSamp' (layout(binding=0 ) uniform sampler) -0:54 Construct vec4 (temp float) +0:54 Construct vec4 (temp 4-component vector of float) 0:? Constant: 0:? 0.100000 0:? 0.200000 @@ -115,7 +115,7 @@ gl_FragCoord origin is upper left 0:55 Construct combined texture-sampler (temp usamplerCubeShadow) 0:55 'g_tTexcdu4' (uniform utextureCube) 0:55 'g_sSamp' (layout(binding=0 ) uniform sampler) -0:55 Construct vec4 (temp float) +0:55 Construct vec4 (temp 4-component vector of float) 0:? Constant: 0:? 0.100000 0:? 0.200000 @@ -197,7 +197,7 @@ gl_FragCoord origin is upper left 0:42 Construct combined texture-sampler (temp sampler1DShadow) 0:42 'g_tTex1df4' (layout(binding=0 ) uniform texture1D) 0:42 'g_sSamp' (layout(binding=0 ) uniform sampler) -0:42 Construct vec2 (temp float) +0:42 Construct vec2 (temp 2-component vector of float) 0:42 Constant: 0:42 0.100000 0:42 Constant: @@ -209,7 +209,7 @@ gl_FragCoord origin is upper left 0:43 Construct combined texture-sampler (temp isampler1DShadow) 0:43 'g_tTex1di4' (uniform itexture1D) 0:43 'g_sSamp' (layout(binding=0 ) uniform sampler) -0:43 Construct vec2 (temp float) +0:43 Construct vec2 (temp 2-component vector of float) 0:43 Constant: 0:43 0.100000 0:43 Constant: @@ -221,7 +221,7 @@ gl_FragCoord origin is upper left 0:44 Construct combined texture-sampler (temp usampler1DShadow) 0:44 'g_tTex1du4' (uniform utexture1D) 0:44 'g_sSamp' (layout(binding=0 ) uniform sampler) -0:44 Construct vec2 (temp float) +0:44 Construct vec2 (temp 2-component vector of float) 0:44 Constant: 0:44 0.100000 0:44 Constant: @@ -233,7 +233,7 @@ gl_FragCoord origin is upper left 0:47 Construct combined texture-sampler (temp sampler2DShadow) 0:47 'g_tTex2df4' (uniform texture2D) 0:47 'g_sSamp' (layout(binding=0 ) uniform sampler) -0:47 Construct vec3 (temp float) +0:47 Construct vec3 (temp 3-component vector of float) 0:? Constant: 0:? 0.100000 0:? 0.200000 @@ -246,7 +246,7 @@ gl_FragCoord origin is upper left 0:48 Construct combined texture-sampler (temp isampler2DShadow) 0:48 'g_tTex2di4' (uniform itexture2D) 0:48 'g_sSamp' (layout(binding=0 ) uniform sampler) -0:48 Construct vec3 (temp float) +0:48 Construct vec3 (temp 3-component vector of float) 0:? Constant: 0:? 0.100000 0:? 0.200000 @@ -259,7 +259,7 @@ gl_FragCoord origin is upper left 0:49 Construct combined texture-sampler (temp usampler2DShadow) 0:49 'g_tTex2du4' (uniform utexture2D) 0:49 'g_sSamp' (layout(binding=0 ) uniform sampler) -0:49 Construct vec3 (temp float) +0:49 Construct vec3 (temp 3-component vector of float) 0:? Constant: 0:? 0.100000 0:? 0.200000 @@ -272,7 +272,7 @@ gl_FragCoord origin is upper left 0:53 Construct combined texture-sampler (temp samplerCubeShadow) 0:53 'g_tTexcdf4' (uniform textureCube) 0:53 'g_sSamp' (layout(binding=0 ) uniform sampler) -0:53 Construct vec4 (temp float) +0:53 Construct vec4 (temp 4-component vector of float) 0:? Constant: 0:? 0.100000 0:? 0.200000 @@ -286,7 +286,7 @@ gl_FragCoord origin is upper left 0:54 Construct combined texture-sampler (temp isamplerCubeShadow) 0:54 'g_tTexcdi4' (uniform itextureCube) 0:54 'g_sSamp' (layout(binding=0 ) uniform sampler) -0:54 Construct vec4 (temp float) +0:54 Construct vec4 (temp 4-component vector of float) 0:? Constant: 0:? 0.100000 0:? 0.200000 @@ -300,7 +300,7 @@ gl_FragCoord origin is upper left 0:55 Construct combined texture-sampler (temp usamplerCubeShadow) 0:55 'g_tTexcdu4' (uniform utextureCube) 0:55 'g_sSamp' (layout(binding=0 ) uniform sampler) -0:55 Construct vec4 (temp float) +0:55 Construct vec4 (temp 4-component vector of float) 0:? Constant: 0:? 0.100000 0:? 0.200000 @@ -367,79 +367,79 @@ gl_FragCoord origin is upper left // Module Version 10000 // Generated by (magic number): 80001 -// Id's are bound by 182 +// Id's are bound by 200 Capability Shader Capability Sampled1D Capability SampledCubeArray 1: ExtInstImport "GLSL.std.450" MemoryModel Logical GLSL450 - EntryPoint Fragment 4 "main" 138 142 + EntryPoint Fragment 4 "main" 156 160 ExecutionMode 4 OriginUpperLeft Name 4 "main" Name 8 "r00" Name 11 "g_tTex1df4" Name 15 "g_sSamp" - Name 24 "r02" - Name 28 "g_tTex1di4" - Name 36 "r04" - Name 40 "g_tTex1du4" - Name 48 "r20" - Name 51 "g_tTex2df4" - Name 63 "r22" - Name 66 "g_tTex2di4" - Name 75 "r24" - Name 78 "g_tTex2du4" - Name 87 "r50" - Name 90 "g_tTexcdf4" - Name 102 "r52" - Name 105 "g_tTexcdi4" - Name 114 "r54" - Name 117 "g_tTexcdu4" - Name 127 "PS_OUTPUT" - MemberName 127(PS_OUTPUT) 0 "Color" - MemberName 127(PS_OUTPUT) 1 "Depth" - Name 129 "psout" - Name 138 "Color" - Name 142 "Depth" - Name 148 "g_tTex3df4" - Name 151 "g_tTex3di4" - Name 154 "g_tTex3du4" - Name 157 "g_tTex1df4a" - Name 160 "g_tTex1di4a" - Name 163 "g_tTex1du4a" - Name 166 "g_tTex2df4a" - Name 169 "g_tTex2di4a" - Name 172 "g_tTex2du4a" - Name 175 "g_tTexcdf4a" - Name 178 "g_tTexcdi4a" - Name 181 "g_tTexcdu4a" + Name 26 "r02" + Name 30 "g_tTex1di4" + Name 39 "r04" + Name 43 "g_tTex1du4" + Name 52 "r20" + Name 55 "g_tTex2df4" + Name 69 "r22" + Name 72 "g_tTex2di4" + Name 83 "r24" + Name 86 "g_tTex2du4" + Name 97 "r50" + Name 100 "g_tTexcdf4" + Name 115 "r52" + Name 118 "g_tTexcdi4" + Name 130 "r54" + Name 133 "g_tTexcdu4" + Name 145 "PS_OUTPUT" + MemberName 145(PS_OUTPUT) 0 "Color" + MemberName 145(PS_OUTPUT) 1 "Depth" + Name 147 "psout" + Name 156 "Color" + Name 160 "Depth" + Name 166 "g_tTex3df4" + Name 169 "g_tTex3di4" + Name 172 "g_tTex3du4" + Name 175 "g_tTex1df4a" + Name 178 "g_tTex1di4a" + Name 181 "g_tTex1du4a" + Name 184 "g_tTex2df4a" + Name 187 "g_tTex2di4a" + Name 190 "g_tTex2du4a" + Name 193 "g_tTexcdf4a" + Name 196 "g_tTexcdi4a" + Name 199 "g_tTexcdu4a" Decorate 11(g_tTex1df4) DescriptorSet 0 Decorate 11(g_tTex1df4) Binding 0 Decorate 15(g_sSamp) DescriptorSet 0 Decorate 15(g_sSamp) Binding 0 - Decorate 28(g_tTex1di4) DescriptorSet 0 - Decorate 40(g_tTex1du4) DescriptorSet 0 - Decorate 51(g_tTex2df4) DescriptorSet 0 - Decorate 66(g_tTex2di4) DescriptorSet 0 - Decorate 78(g_tTex2du4) DescriptorSet 0 - Decorate 90(g_tTexcdf4) DescriptorSet 0 - Decorate 105(g_tTexcdi4) DescriptorSet 0 - Decorate 117(g_tTexcdu4) DescriptorSet 0 - Decorate 138(Color) Location 0 - Decorate 142(Depth) BuiltIn FragDepth - Decorate 148(g_tTex3df4) DescriptorSet 0 - Decorate 151(g_tTex3di4) DescriptorSet 0 - Decorate 154(g_tTex3du4) DescriptorSet 0 - Decorate 157(g_tTex1df4a) DescriptorSet 0 - Decorate 160(g_tTex1di4a) DescriptorSet 0 - Decorate 163(g_tTex1du4a) DescriptorSet 0 - Decorate 166(g_tTex2df4a) DescriptorSet 0 - Decorate 169(g_tTex2di4a) DescriptorSet 0 - Decorate 172(g_tTex2du4a) DescriptorSet 0 - Decorate 175(g_tTexcdf4a) DescriptorSet 0 - Decorate 178(g_tTexcdi4a) DescriptorSet 0 - Decorate 181(g_tTexcdu4a) DescriptorSet 0 + Decorate 30(g_tTex1di4) DescriptorSet 0 + Decorate 43(g_tTex1du4) DescriptorSet 0 + Decorate 55(g_tTex2df4) DescriptorSet 0 + Decorate 72(g_tTex2di4) DescriptorSet 0 + Decorate 86(g_tTex2du4) DescriptorSet 0 + Decorate 100(g_tTexcdf4) DescriptorSet 0 + Decorate 118(g_tTexcdi4) DescriptorSet 0 + Decorate 133(g_tTexcdu4) DescriptorSet 0 + Decorate 156(Color) Location 0 + Decorate 160(Depth) BuiltIn FragDepth + Decorate 166(g_tTex3df4) DescriptorSet 0 + Decorate 169(g_tTex3di4) DescriptorSet 0 + Decorate 172(g_tTex3du4) DescriptorSet 0 + Decorate 175(g_tTex1df4a) DescriptorSet 0 + Decorate 178(g_tTex1di4a) DescriptorSet 0 + Decorate 181(g_tTex1du4a) DescriptorSet 0 + Decorate 184(g_tTex2df4a) DescriptorSet 0 + Decorate 187(g_tTex2di4a) DescriptorSet 0 + Decorate 190(g_tTex2du4a) DescriptorSet 0 + Decorate 193(g_tTexcdf4a) DescriptorSet 0 + Decorate 196(g_tTexcdi4a) DescriptorSet 0 + Decorate 199(g_tTexcdu4a) DescriptorSet 0 2: TypeVoid 3: TypeFunction 2 6: TypeFloat 32 @@ -454,183 +454,201 @@ gl_FragCoord origin is upper left 18: TypeSampledImage 17 20: 6(float) Constant 1036831949 21: 6(float) Constant 1061158912 - 25: TypeInt 32 1 - 26: TypeImage 25(int) 1D sampled format:Unknown - 27: TypePointer UniformConstant 26 - 28(g_tTex1di4): 27(ptr) Variable UniformConstant - 31: TypeImage 25(int) 1D depth sampled format:Unknown - 32: TypeSampledImage 31 - 37: TypeInt 32 0 - 38: TypeImage 37(int) 1D sampled format:Unknown - 39: TypePointer UniformConstant 38 - 40(g_tTex1du4): 39(ptr) Variable UniformConstant - 43: TypeImage 37(int) 1D depth sampled format:Unknown - 44: TypeSampledImage 43 - 49: TypeImage 6(float) 2D sampled format:Unknown - 50: TypePointer UniformConstant 49 - 51(g_tTex2df4): 50(ptr) Variable UniformConstant - 54: TypeImage 6(float) 2D depth sampled format:Unknown - 55: TypeSampledImage 54 - 57: TypeVector 6(float) 2 - 58: 6(float) Constant 1045220557 - 59: 57(fvec2) ConstantComposite 20 58 - 64: TypeImage 25(int) 2D sampled format:Unknown - 65: TypePointer UniformConstant 64 - 66(g_tTex2di4): 65(ptr) Variable UniformConstant - 69: TypeImage 25(int) 2D depth sampled format:Unknown - 70: TypeSampledImage 69 - 76: TypeImage 37(int) 2D sampled format:Unknown - 77: TypePointer UniformConstant 76 - 78(g_tTex2du4): 77(ptr) Variable UniformConstant - 81: TypeImage 37(int) 2D depth sampled format:Unknown - 82: TypeSampledImage 81 - 88: TypeImage 6(float) Cube sampled format:Unknown - 89: TypePointer UniformConstant 88 - 90(g_tTexcdf4): 89(ptr) Variable UniformConstant - 93: TypeImage 6(float) Cube depth sampled format:Unknown - 94: TypeSampledImage 93 - 96: TypeVector 6(float) 3 - 97: 6(float) Constant 1050253722 - 98: 96(fvec3) ConstantComposite 20 58 97 - 103: TypeImage 25(int) Cube sampled format:Unknown - 104: TypePointer UniformConstant 103 - 105(g_tTexcdi4): 104(ptr) Variable UniformConstant - 108: TypeImage 25(int) Cube depth sampled format:Unknown - 109: TypeSampledImage 108 - 115: TypeImage 37(int) Cube sampled format:Unknown - 116: TypePointer UniformConstant 115 - 117(g_tTexcdu4): 116(ptr) Variable UniformConstant - 120: TypeImage 37(int) Cube depth sampled format:Unknown - 121: TypeSampledImage 120 - 126: TypeVector 6(float) 4 - 127(PS_OUTPUT): TypeStruct 126(fvec4) 6(float) - 128: TypePointer Function 127(PS_OUTPUT) - 130: 25(int) Constant 0 - 131: 6(float) Constant 1065353216 - 132: 126(fvec4) ConstantComposite 131 131 131 131 - 133: TypePointer Function 126(fvec4) - 135: 25(int) Constant 1 - 137: TypePointer Output 126(fvec4) - 138(Color): 137(ptr) Variable Output - 141: TypePointer Output 6(float) - 142(Depth): 141(ptr) Variable Output - 146: TypeImage 6(float) 3D sampled format:Unknown - 147: TypePointer UniformConstant 146 - 148(g_tTex3df4): 147(ptr) Variable UniformConstant - 149: TypeImage 25(int) 3D sampled format:Unknown - 150: TypePointer UniformConstant 149 - 151(g_tTex3di4): 150(ptr) Variable UniformConstant - 152: TypeImage 37(int) 3D sampled format:Unknown - 153: TypePointer UniformConstant 152 - 154(g_tTex3du4): 153(ptr) Variable UniformConstant - 155: TypeImage 6(float) 1D array sampled format:Unknown - 156: TypePointer UniformConstant 155 -157(g_tTex1df4a): 156(ptr) Variable UniformConstant - 158: TypeImage 25(int) 1D array sampled format:Unknown - 159: TypePointer UniformConstant 158 -160(g_tTex1di4a): 159(ptr) Variable UniformConstant - 161: TypeImage 37(int) 1D array sampled format:Unknown - 162: TypePointer UniformConstant 161 -163(g_tTex1du4a): 162(ptr) Variable UniformConstant - 164: TypeImage 6(float) 2D array sampled format:Unknown + 22: TypeVector 6(float) 2 + 27: TypeInt 32 1 + 28: TypeImage 27(int) 1D sampled format:Unknown + 29: TypePointer UniformConstant 28 + 30(g_tTex1di4): 29(ptr) Variable UniformConstant + 33: TypeImage 27(int) 1D depth sampled format:Unknown + 34: TypeSampledImage 33 + 40: TypeInt 32 0 + 41: TypeImage 40(int) 1D sampled format:Unknown + 42: TypePointer UniformConstant 41 + 43(g_tTex1du4): 42(ptr) Variable UniformConstant + 46: TypeImage 40(int) 1D depth sampled format:Unknown + 47: TypeSampledImage 46 + 53: TypeImage 6(float) 2D sampled format:Unknown + 54: TypePointer UniformConstant 53 + 55(g_tTex2df4): 54(ptr) Variable UniformConstant + 58: TypeImage 6(float) 2D depth sampled format:Unknown + 59: TypeSampledImage 58 + 61: 6(float) Constant 1045220557 + 62: 22(fvec2) ConstantComposite 20 61 + 63: TypeVector 6(float) 3 + 70: TypeImage 27(int) 2D sampled format:Unknown + 71: TypePointer UniformConstant 70 + 72(g_tTex2di4): 71(ptr) Variable UniformConstant + 75: TypeImage 27(int) 2D depth sampled format:Unknown + 76: TypeSampledImage 75 + 84: TypeImage 40(int) 2D sampled format:Unknown + 85: TypePointer UniformConstant 84 + 86(g_tTex2du4): 85(ptr) Variable UniformConstant + 89: TypeImage 40(int) 2D depth sampled format:Unknown + 90: TypeSampledImage 89 + 98: TypeImage 6(float) Cube sampled format:Unknown + 99: TypePointer UniformConstant 98 + 100(g_tTexcdf4): 99(ptr) Variable UniformConstant + 103: TypeImage 6(float) Cube depth sampled format:Unknown + 104: TypeSampledImage 103 + 106: 6(float) Constant 1050253722 + 107: 63(fvec3) ConstantComposite 20 61 106 + 108: TypeVector 6(float) 4 + 116: TypeImage 27(int) Cube sampled format:Unknown + 117: TypePointer UniformConstant 116 + 118(g_tTexcdi4): 117(ptr) Variable UniformConstant + 121: TypeImage 27(int) Cube depth sampled format:Unknown + 122: TypeSampledImage 121 + 131: TypeImage 40(int) Cube sampled format:Unknown + 132: TypePointer UniformConstant 131 + 133(g_tTexcdu4): 132(ptr) Variable UniformConstant + 136: TypeImage 40(int) Cube depth sampled format:Unknown + 137: TypeSampledImage 136 + 145(PS_OUTPUT): TypeStruct 108(fvec4) 6(float) + 146: TypePointer Function 145(PS_OUTPUT) + 148: 27(int) Constant 0 + 149: 6(float) Constant 1065353216 + 150: 108(fvec4) ConstantComposite 149 149 149 149 + 151: TypePointer Function 108(fvec4) + 153: 27(int) Constant 1 + 155: TypePointer Output 108(fvec4) + 156(Color): 155(ptr) Variable Output + 159: TypePointer Output 6(float) + 160(Depth): 159(ptr) Variable Output + 164: TypeImage 6(float) 3D sampled format:Unknown 165: TypePointer UniformConstant 164 -166(g_tTex2df4a): 165(ptr) Variable UniformConstant - 167: TypeImage 25(int) 2D array sampled format:Unknown + 166(g_tTex3df4): 165(ptr) Variable UniformConstant + 167: TypeImage 27(int) 3D sampled format:Unknown 168: TypePointer UniformConstant 167 -169(g_tTex2di4a): 168(ptr) Variable UniformConstant - 170: TypeImage 37(int) 2D array sampled format:Unknown + 169(g_tTex3di4): 168(ptr) Variable UniformConstant + 170: TypeImage 40(int) 3D sampled format:Unknown 171: TypePointer UniformConstant 170 -172(g_tTex2du4a): 171(ptr) Variable UniformConstant - 173: TypeImage 6(float) Cube array sampled format:Unknown + 172(g_tTex3du4): 171(ptr) Variable UniformConstant + 173: TypeImage 6(float) 1D array sampled format:Unknown 174: TypePointer UniformConstant 173 -175(g_tTexcdf4a): 174(ptr) Variable UniformConstant - 176: TypeImage 25(int) Cube array sampled format:Unknown +175(g_tTex1df4a): 174(ptr) Variable UniformConstant + 176: TypeImage 27(int) 1D array sampled format:Unknown 177: TypePointer UniformConstant 176 -178(g_tTexcdi4a): 177(ptr) Variable UniformConstant - 179: TypeImage 37(int) Cube array sampled format:Unknown +178(g_tTex1di4a): 177(ptr) Variable UniformConstant + 179: TypeImage 40(int) 1D array sampled format:Unknown 180: TypePointer UniformConstant 179 -181(g_tTexcdu4a): 180(ptr) Variable UniformConstant +181(g_tTex1du4a): 180(ptr) Variable UniformConstant + 182: TypeImage 6(float) 2D array sampled format:Unknown + 183: TypePointer UniformConstant 182 +184(g_tTex2df4a): 183(ptr) Variable UniformConstant + 185: TypeImage 27(int) 2D array sampled format:Unknown + 186: TypePointer UniformConstant 185 +187(g_tTex2di4a): 186(ptr) Variable UniformConstant + 188: TypeImage 40(int) 2D array sampled format:Unknown + 189: TypePointer UniformConstant 188 +190(g_tTex2du4a): 189(ptr) Variable UniformConstant + 191: TypeImage 6(float) Cube array sampled format:Unknown + 192: TypePointer UniformConstant 191 +193(g_tTexcdf4a): 192(ptr) Variable UniformConstant + 194: TypeImage 27(int) Cube array sampled format:Unknown + 195: TypePointer UniformConstant 194 +196(g_tTexcdi4a): 195(ptr) Variable UniformConstant + 197: TypeImage 40(int) Cube array sampled format:Unknown + 198: TypePointer UniformConstant 197 +199(g_tTexcdu4a): 198(ptr) Variable UniformConstant 4(main): 2 Function None 3 5: Label 8(r00): 7(ptr) Variable Function - 24(r02): 7(ptr) Variable Function - 36(r04): 7(ptr) Variable Function - 48(r20): 7(ptr) Variable Function - 63(r22): 7(ptr) Variable Function - 75(r24): 7(ptr) Variable Function - 87(r50): 7(ptr) Variable Function - 102(r52): 7(ptr) Variable Function - 114(r54): 7(ptr) Variable Function - 129(psout): 128(ptr) Variable Function + 26(r02): 7(ptr) Variable Function + 39(r04): 7(ptr) Variable Function + 52(r20): 7(ptr) Variable Function + 69(r22): 7(ptr) Variable Function + 83(r24): 7(ptr) Variable Function + 97(r50): 7(ptr) Variable Function + 115(r52): 7(ptr) Variable Function + 130(r54): 7(ptr) Variable Function + 147(psout): 146(ptr) Variable Function 12: 9 Load 11(g_tTex1df4) 16: 13 Load 15(g_sSamp) 19: 18 SampledImage 12 16 - 22: 6(float) CompositeExtract 20 0 - 23: 6(float) ImageSampleDrefImplicitLod 19 20 22 - Store 8(r00) 23 - 29: 26 Load 28(g_tTex1di4) - 30: 13 Load 15(g_sSamp) - 33: 32 SampledImage 29 30 - 34: 6(float) CompositeExtract 20 0 - 35: 6(float) ImageSampleDrefImplicitLod 33 20 34 - Store 24(r02) 35 - 41: 38 Load 40(g_tTex1du4) - 42: 13 Load 15(g_sSamp) - 45: 44 SampledImage 41 42 - 46: 6(float) CompositeExtract 20 0 - 47: 6(float) ImageSampleDrefImplicitLod 45 20 46 - Store 36(r04) 47 - 52: 49 Load 51(g_tTex2df4) - 53: 13 Load 15(g_sSamp) - 56: 55 SampledImage 52 53 - 60: 6(float) CompositeExtract 59 0 - 61: 6(float) CompositeExtract 60 0 - 62: 6(float) ImageSampleDrefImplicitLod 56 60 61 - Store 48(r20) 62 - 67: 64 Load 66(g_tTex2di4) - 68: 13 Load 15(g_sSamp) - 71: 70 SampledImage 67 68 - 72: 6(float) CompositeExtract 59 0 - 73: 6(float) CompositeExtract 72 0 - 74: 6(float) ImageSampleDrefImplicitLod 71 72 73 - Store 63(r22) 74 - 79: 76 Load 78(g_tTex2du4) - 80: 13 Load 15(g_sSamp) - 83: 82 SampledImage 79 80 - 84: 6(float) CompositeExtract 59 0 - 85: 6(float) CompositeExtract 84 0 - 86: 6(float) ImageSampleDrefImplicitLod 83 84 85 - Store 75(r24) 86 - 91: 88 Load 90(g_tTexcdf4) - 92: 13 Load 15(g_sSamp) - 95: 94 SampledImage 91 92 - 99: 6(float) CompositeExtract 98 0 - 100: 6(float) CompositeExtract 99 0 - 101: 6(float) ImageSampleDrefImplicitLod 95 99 100 - Store 87(r50) 101 - 106: 103 Load 105(g_tTexcdi4) - 107: 13 Load 15(g_sSamp) - 110: 109 SampledImage 106 107 - 111: 6(float) CompositeExtract 98 0 - 112: 6(float) CompositeExtract 111 0 - 113: 6(float) ImageSampleDrefImplicitLod 110 111 112 - Store 102(r52) 113 - 118: 115 Load 117(g_tTexcdu4) - 119: 13 Load 15(g_sSamp) - 122: 121 SampledImage 118 119 - 123: 6(float) CompositeExtract 98 0 - 124: 6(float) CompositeExtract 123 0 - 125: 6(float) ImageSampleDrefImplicitLod 122 123 124 - Store 114(r54) 125 - 134: 133(ptr) AccessChain 129(psout) 130 - Store 134 132 - 136: 7(ptr) AccessChain 129(psout) 135 - Store 136 131 - 139: 133(ptr) AccessChain 129(psout) 130 - 140: 126(fvec4) Load 139 - Store 138(Color) 140 - 143: 7(ptr) AccessChain 129(psout) 135 - 144: 6(float) Load 143 - Store 142(Depth) 144 + 23: 22(fvec2) CompositeConstruct 20 21 + 24: 6(float) CompositeExtract 23 1 + 25: 6(float) ImageSampleDrefImplicitLod 19 23 24 + Store 8(r00) 25 + 31: 28 Load 30(g_tTex1di4) + 32: 13 Load 15(g_sSamp) + 35: 34 SampledImage 31 32 + 36: 22(fvec2) CompositeConstruct 20 21 + 37: 6(float) CompositeExtract 36 1 + 38: 6(float) ImageSampleDrefImplicitLod 35 36 37 + Store 26(r02) 38 + 44: 41 Load 43(g_tTex1du4) + 45: 13 Load 15(g_sSamp) + 48: 47 SampledImage 44 45 + 49: 22(fvec2) CompositeConstruct 20 21 + 50: 6(float) CompositeExtract 49 1 + 51: 6(float) ImageSampleDrefImplicitLod 48 49 50 + Store 39(r04) 51 + 56: 53 Load 55(g_tTex2df4) + 57: 13 Load 15(g_sSamp) + 60: 59 SampledImage 56 57 + 64: 6(float) CompositeExtract 62 0 + 65: 6(float) CompositeExtract 62 1 + 66: 63(fvec3) CompositeConstruct 64 65 21 + 67: 6(float) CompositeExtract 66 2 + 68: 6(float) ImageSampleDrefImplicitLod 60 66 67 + Store 52(r20) 68 + 73: 70 Load 72(g_tTex2di4) + 74: 13 Load 15(g_sSamp) + 77: 76 SampledImage 73 74 + 78: 6(float) CompositeExtract 62 0 + 79: 6(float) CompositeExtract 62 1 + 80: 63(fvec3) CompositeConstruct 78 79 21 + 81: 6(float) CompositeExtract 80 2 + 82: 6(float) ImageSampleDrefImplicitLod 77 80 81 + Store 69(r22) 82 + 87: 84 Load 86(g_tTex2du4) + 88: 13 Load 15(g_sSamp) + 91: 90 SampledImage 87 88 + 92: 6(float) CompositeExtract 62 0 + 93: 6(float) CompositeExtract 62 1 + 94: 63(fvec3) CompositeConstruct 92 93 21 + 95: 6(float) CompositeExtract 94 2 + 96: 6(float) ImageSampleDrefImplicitLod 91 94 95 + Store 83(r24) 96 + 101: 98 Load 100(g_tTexcdf4) + 102: 13 Load 15(g_sSamp) + 105: 104 SampledImage 101 102 + 109: 6(float) CompositeExtract 107 0 + 110: 6(float) CompositeExtract 107 1 + 111: 6(float) CompositeExtract 107 2 + 112: 108(fvec4) CompositeConstruct 109 110 111 21 + 113: 6(float) CompositeExtract 112 3 + 114: 6(float) ImageSampleDrefImplicitLod 105 112 113 + Store 97(r50) 114 + 119: 116 Load 118(g_tTexcdi4) + 120: 13 Load 15(g_sSamp) + 123: 122 SampledImage 119 120 + 124: 6(float) CompositeExtract 107 0 + 125: 6(float) CompositeExtract 107 1 + 126: 6(float) CompositeExtract 107 2 + 127: 108(fvec4) CompositeConstruct 124 125 126 21 + 128: 6(float) CompositeExtract 127 3 + 129: 6(float) ImageSampleDrefImplicitLod 123 127 128 + Store 115(r52) 129 + 134: 131 Load 133(g_tTexcdu4) + 135: 13 Load 15(g_sSamp) + 138: 137 SampledImage 134 135 + 139: 6(float) CompositeExtract 107 0 + 140: 6(float) CompositeExtract 107 1 + 141: 6(float) CompositeExtract 107 2 + 142: 108(fvec4) CompositeConstruct 139 140 141 21 + 143: 6(float) CompositeExtract 142 3 + 144: 6(float) ImageSampleDrefImplicitLod 138 142 143 + Store 130(r54) 144 + 152: 151(ptr) AccessChain 147(psout) 148 + Store 152 150 + 154: 7(ptr) AccessChain 147(psout) 153 + Store 154 149 + 157: 151(ptr) AccessChain 147(psout) 148 + 158: 108(fvec4) Load 157 + Store 156(Color) 158 + 161: 7(ptr) AccessChain 147(psout) 153 + 162: 6(float) Load 161 + Store 160(Depth) 162 Return FunctionEnd diff --git a/Test/baseResults/hlsl.samplecmp.offset.dx10.frag.out b/Test/baseResults/hlsl.samplecmp.offset.dx10.frag.out index 021e08f6..fd3250f5 100644 --- a/Test/baseResults/hlsl.samplecmp.offset.dx10.frag.out +++ b/Test/baseResults/hlsl.samplecmp.offset.dx10.frag.out @@ -12,7 +12,7 @@ gl_FragCoord origin is upper left 0:42 Construct combined texture-sampler (temp sampler1DShadow) 0:42 'g_tTex1df4' (layout(binding=0 ) uniform texture1D) 0:42 'g_sSamp' (layout(binding=0 ) uniform sampler) -0:42 Construct vec2 (temp float) +0:42 Construct vec2 (temp 2-component vector of float) 0:42 Constant: 0:42 0.100000 0:42 Constant: @@ -26,7 +26,7 @@ gl_FragCoord origin is upper left 0:43 Construct combined texture-sampler (temp isampler1DShadow) 0:43 'g_tTex1di4' (uniform itexture1D) 0:43 'g_sSamp' (layout(binding=0 ) uniform sampler) -0:43 Construct vec2 (temp float) +0:43 Construct vec2 (temp 2-component vector of float) 0:43 Constant: 0:43 0.100000 0:43 Constant: @@ -40,7 +40,7 @@ gl_FragCoord origin is upper left 0:44 Construct combined texture-sampler (temp usampler1DShadow) 0:44 'g_tTex1du4' (uniform utexture1D) 0:44 'g_sSamp' (layout(binding=0 ) uniform sampler) -0:44 Construct vec2 (temp float) +0:44 Construct vec2 (temp 2-component vector of float) 0:44 Constant: 0:44 0.100000 0:44 Constant: @@ -54,7 +54,7 @@ gl_FragCoord origin is upper left 0:47 Construct combined texture-sampler (temp sampler2DShadow) 0:47 'g_tTex2df4' (uniform texture2D) 0:47 'g_sSamp' (layout(binding=0 ) uniform sampler) -0:47 Construct vec3 (temp float) +0:47 Construct vec3 (temp 3-component vector of float) 0:? Constant: 0:? 0.100000 0:? 0.200000 @@ -70,7 +70,7 @@ gl_FragCoord origin is upper left 0:48 Construct combined texture-sampler (temp isampler2DShadow) 0:48 'g_tTex2di4' (uniform itexture2D) 0:48 'g_sSamp' (layout(binding=0 ) uniform sampler) -0:48 Construct vec3 (temp float) +0:48 Construct vec3 (temp 3-component vector of float) 0:? Constant: 0:? 0.100000 0:? 0.200000 @@ -86,7 +86,7 @@ gl_FragCoord origin is upper left 0:49 Construct combined texture-sampler (temp usampler2DShadow) 0:49 'g_tTex2du4' (uniform utexture2D) 0:49 'g_sSamp' (layout(binding=0 ) uniform sampler) -0:49 Construct vec3 (temp float) +0:49 Construct vec3 (temp 3-component vector of float) 0:? Constant: 0:? 0.100000 0:? 0.200000 @@ -170,7 +170,7 @@ gl_FragCoord origin is upper left 0:42 Construct combined texture-sampler (temp sampler1DShadow) 0:42 'g_tTex1df4' (layout(binding=0 ) uniform texture1D) 0:42 'g_sSamp' (layout(binding=0 ) uniform sampler) -0:42 Construct vec2 (temp float) +0:42 Construct vec2 (temp 2-component vector of float) 0:42 Constant: 0:42 0.100000 0:42 Constant: @@ -184,7 +184,7 @@ gl_FragCoord origin is upper left 0:43 Construct combined texture-sampler (temp isampler1DShadow) 0:43 'g_tTex1di4' (uniform itexture1D) 0:43 'g_sSamp' (layout(binding=0 ) uniform sampler) -0:43 Construct vec2 (temp float) +0:43 Construct vec2 (temp 2-component vector of float) 0:43 Constant: 0:43 0.100000 0:43 Constant: @@ -198,7 +198,7 @@ gl_FragCoord origin is upper left 0:44 Construct combined texture-sampler (temp usampler1DShadow) 0:44 'g_tTex1du4' (uniform utexture1D) 0:44 'g_sSamp' (layout(binding=0 ) uniform sampler) -0:44 Construct vec2 (temp float) +0:44 Construct vec2 (temp 2-component vector of float) 0:44 Constant: 0:44 0.100000 0:44 Constant: @@ -212,7 +212,7 @@ gl_FragCoord origin is upper left 0:47 Construct combined texture-sampler (temp sampler2DShadow) 0:47 'g_tTex2df4' (uniform texture2D) 0:47 'g_sSamp' (layout(binding=0 ) uniform sampler) -0:47 Construct vec3 (temp float) +0:47 Construct vec3 (temp 3-component vector of float) 0:? Constant: 0:? 0.100000 0:? 0.200000 @@ -228,7 +228,7 @@ gl_FragCoord origin is upper left 0:48 Construct combined texture-sampler (temp isampler2DShadow) 0:48 'g_tTex2di4' (uniform itexture2D) 0:48 'g_sSamp' (layout(binding=0 ) uniform sampler) -0:48 Construct vec3 (temp float) +0:48 Construct vec3 (temp 3-component vector of float) 0:? Constant: 0:? 0.100000 0:? 0.200000 @@ -244,7 +244,7 @@ gl_FragCoord origin is upper left 0:49 Construct combined texture-sampler (temp usampler2DShadow) 0:49 'g_tTex2du4' (uniform utexture2D) 0:49 'g_sSamp' (layout(binding=0 ) uniform sampler) -0:49 Construct vec3 (temp float) +0:49 Construct vec3 (temp 3-component vector of float) 0:? Constant: 0:? 0.100000 0:? 0.200000 @@ -313,76 +313,76 @@ gl_FragCoord origin is upper left // Module Version 10000 // Generated by (magic number): 80001 -// Id's are bound by 156 +// Id's are bound by 166 Capability Shader Capability Sampled1D Capability SampledCubeArray 1: ExtInstImport "GLSL.std.450" MemoryModel Logical GLSL450 - EntryPoint Fragment 4 "main" 103 107 + EntryPoint Fragment 4 "main" 113 117 ExecutionMode 4 OriginUpperLeft Name 4 "main" Name 8 "r01" Name 11 "g_tTex1df4" Name 15 "g_sSamp" - Name 26 "r03" - Name 29 "g_tTex1di4" - Name 37 "r05" - Name 41 "g_tTex1du4" - Name 49 "r21" - Name 52 "g_tTex2df4" - Name 67 "r23" - Name 70 "g_tTex2di4" - Name 79 "r25" - Name 82 "g_tTex2du4" - Name 92 "PS_OUTPUT" - MemberName 92(PS_OUTPUT) 0 "Color" - MemberName 92(PS_OUTPUT) 1 "Depth" - Name 94 "psout" - Name 103 "Color" - Name 107 "Depth" - Name 113 "g_tTex3df4" - Name 116 "g_tTex3di4" - Name 119 "g_tTex3du4" - Name 122 "g_tTexcdf4" - Name 125 "g_tTexcdi4" - Name 128 "g_tTexcdu4" - Name 131 "g_tTex1df4a" - Name 134 "g_tTex1di4a" - Name 137 "g_tTex1du4a" - Name 140 "g_tTex2df4a" - Name 143 "g_tTex2di4a" - Name 146 "g_tTex2du4a" - Name 149 "g_tTexcdf4a" - Name 152 "g_tTexcdi4a" - Name 155 "g_tTexcdu4a" + Name 28 "r03" + Name 31 "g_tTex1di4" + Name 40 "r05" + Name 44 "g_tTex1du4" + Name 53 "r21" + Name 56 "g_tTex2df4" + Name 73 "r23" + Name 76 "g_tTex2di4" + Name 87 "r25" + Name 90 "g_tTex2du4" + Name 102 "PS_OUTPUT" + MemberName 102(PS_OUTPUT) 0 "Color" + MemberName 102(PS_OUTPUT) 1 "Depth" + Name 104 "psout" + Name 113 "Color" + Name 117 "Depth" + Name 123 "g_tTex3df4" + Name 126 "g_tTex3di4" + Name 129 "g_tTex3du4" + Name 132 "g_tTexcdf4" + Name 135 "g_tTexcdi4" + Name 138 "g_tTexcdu4" + Name 141 "g_tTex1df4a" + Name 144 "g_tTex1di4a" + Name 147 "g_tTex1du4a" + Name 150 "g_tTex2df4a" + Name 153 "g_tTex2di4a" + Name 156 "g_tTex2du4a" + Name 159 "g_tTexcdf4a" + Name 162 "g_tTexcdi4a" + Name 165 "g_tTexcdu4a" Decorate 11(g_tTex1df4) DescriptorSet 0 Decorate 11(g_tTex1df4) Binding 0 Decorate 15(g_sSamp) DescriptorSet 0 Decorate 15(g_sSamp) Binding 0 - Decorate 29(g_tTex1di4) DescriptorSet 0 - Decorate 41(g_tTex1du4) DescriptorSet 0 - Decorate 52(g_tTex2df4) DescriptorSet 0 - Decorate 70(g_tTex2di4) DescriptorSet 0 - Decorate 82(g_tTex2du4) DescriptorSet 0 - Decorate 103(Color) Location 0 - Decorate 107(Depth) BuiltIn FragDepth - Decorate 113(g_tTex3df4) DescriptorSet 0 - Decorate 116(g_tTex3di4) DescriptorSet 0 - Decorate 119(g_tTex3du4) DescriptorSet 0 - Decorate 122(g_tTexcdf4) DescriptorSet 0 - Decorate 125(g_tTexcdi4) DescriptorSet 0 - Decorate 128(g_tTexcdu4) DescriptorSet 0 - Decorate 131(g_tTex1df4a) DescriptorSet 0 - Decorate 134(g_tTex1di4a) DescriptorSet 0 - Decorate 137(g_tTex1du4a) DescriptorSet 0 - Decorate 140(g_tTex2df4a) DescriptorSet 0 - Decorate 143(g_tTex2di4a) DescriptorSet 0 - Decorate 146(g_tTex2du4a) DescriptorSet 0 - Decorate 149(g_tTexcdf4a) DescriptorSet 0 - Decorate 152(g_tTexcdi4a) DescriptorSet 0 - Decorate 155(g_tTexcdu4a) DescriptorSet 0 + Decorate 31(g_tTex1di4) DescriptorSet 0 + Decorate 44(g_tTex1du4) DescriptorSet 0 + Decorate 56(g_tTex2df4) DescriptorSet 0 + Decorate 76(g_tTex2di4) DescriptorSet 0 + Decorate 90(g_tTex2du4) DescriptorSet 0 + Decorate 113(Color) Location 0 + Decorate 117(Depth) BuiltIn FragDepth + Decorate 123(g_tTex3df4) DescriptorSet 0 + Decorate 126(g_tTex3di4) DescriptorSet 0 + Decorate 129(g_tTex3du4) DescriptorSet 0 + Decorate 132(g_tTexcdf4) DescriptorSet 0 + Decorate 135(g_tTexcdi4) DescriptorSet 0 + Decorate 138(g_tTexcdu4) DescriptorSet 0 + Decorate 141(g_tTex1df4a) DescriptorSet 0 + Decorate 144(g_tTex1di4a) DescriptorSet 0 + Decorate 147(g_tTex1du4a) DescriptorSet 0 + Decorate 150(g_tTex2df4a) DescriptorSet 0 + Decorate 153(g_tTex2di4a) DescriptorSet 0 + Decorate 156(g_tTex2du4a) DescriptorSet 0 + Decorate 159(g_tTexcdf4a) DescriptorSet 0 + Decorate 162(g_tTexcdi4a) DescriptorSet 0 + Decorate 165(g_tTexcdu4a) DescriptorSet 0 2: TypeVoid 3: TypeFunction 2 6: TypeFloat 32 @@ -397,154 +397,164 @@ gl_FragCoord origin is upper left 18: TypeSampledImage 17 20: 6(float) Constant 1036831949 21: 6(float) Constant 1061158912 - 22: TypeInt 32 1 - 23: 22(int) Constant 2 - 27: TypeImage 22(int) 1D sampled format:Unknown - 28: TypePointer UniformConstant 27 - 29(g_tTex1di4): 28(ptr) Variable UniformConstant - 32: TypeImage 22(int) 1D depth sampled format:Unknown - 33: TypeSampledImage 32 - 38: TypeInt 32 0 - 39: TypeImage 38(int) 1D sampled format:Unknown - 40: TypePointer UniformConstant 39 - 41(g_tTex1du4): 40(ptr) Variable UniformConstant - 44: TypeImage 38(int) 1D depth sampled format:Unknown - 45: TypeSampledImage 44 - 50: TypeImage 6(float) 2D sampled format:Unknown - 51: TypePointer UniformConstant 50 - 52(g_tTex2df4): 51(ptr) Variable UniformConstant - 55: TypeImage 6(float) 2D depth sampled format:Unknown - 56: TypeSampledImage 55 - 58: TypeVector 6(float) 2 - 59: 6(float) Constant 1045220557 - 60: 58(fvec2) ConstantComposite 20 59 - 62: TypeVector 22(int) 2 - 63: 22(int) Constant 3 - 64: 62(ivec2) ConstantComposite 23 63 - 68: TypeImage 22(int) 2D sampled format:Unknown - 69: TypePointer UniformConstant 68 - 70(g_tTex2di4): 69(ptr) Variable UniformConstant - 73: TypeImage 22(int) 2D depth sampled format:Unknown - 74: TypeSampledImage 73 - 80: TypeImage 38(int) 2D sampled format:Unknown - 81: TypePointer UniformConstant 80 - 82(g_tTex2du4): 81(ptr) Variable UniformConstant - 85: TypeImage 38(int) 2D depth sampled format:Unknown - 86: TypeSampledImage 85 - 91: TypeVector 6(float) 4 - 92(PS_OUTPUT): TypeStruct 91(fvec4) 6(float) - 93: TypePointer Function 92(PS_OUTPUT) - 95: 22(int) Constant 0 - 96: 6(float) Constant 1065353216 - 97: 91(fvec4) ConstantComposite 96 96 96 96 - 98: TypePointer Function 91(fvec4) - 100: 22(int) Constant 1 - 102: TypePointer Output 91(fvec4) - 103(Color): 102(ptr) Variable Output - 106: TypePointer Output 6(float) - 107(Depth): 106(ptr) Variable Output - 111: TypeImage 6(float) 3D sampled format:Unknown - 112: TypePointer UniformConstant 111 - 113(g_tTex3df4): 112(ptr) Variable UniformConstant - 114: TypeImage 22(int) 3D sampled format:Unknown - 115: TypePointer UniformConstant 114 - 116(g_tTex3di4): 115(ptr) Variable UniformConstant - 117: TypeImage 38(int) 3D sampled format:Unknown - 118: TypePointer UniformConstant 117 - 119(g_tTex3du4): 118(ptr) Variable UniformConstant - 120: TypeImage 6(float) Cube sampled format:Unknown - 121: TypePointer UniformConstant 120 - 122(g_tTexcdf4): 121(ptr) Variable UniformConstant - 123: TypeImage 22(int) Cube sampled format:Unknown - 124: TypePointer UniformConstant 123 - 125(g_tTexcdi4): 124(ptr) Variable UniformConstant - 126: TypeImage 38(int) Cube sampled format:Unknown - 127: TypePointer UniformConstant 126 - 128(g_tTexcdu4): 127(ptr) Variable UniformConstant - 129: TypeImage 6(float) 1D array sampled format:Unknown - 130: TypePointer UniformConstant 129 -131(g_tTex1df4a): 130(ptr) Variable UniformConstant - 132: TypeImage 22(int) 1D array sampled format:Unknown - 133: TypePointer UniformConstant 132 -134(g_tTex1di4a): 133(ptr) Variable UniformConstant - 135: TypeImage 38(int) 1D array sampled format:Unknown - 136: TypePointer UniformConstant 135 -137(g_tTex1du4a): 136(ptr) Variable UniformConstant - 138: TypeImage 6(float) 2D array sampled format:Unknown - 139: TypePointer UniformConstant 138 -140(g_tTex2df4a): 139(ptr) Variable UniformConstant - 141: TypeImage 22(int) 2D array sampled format:Unknown - 142: TypePointer UniformConstant 141 -143(g_tTex2di4a): 142(ptr) Variable UniformConstant - 144: TypeImage 38(int) 2D array sampled format:Unknown - 145: TypePointer UniformConstant 144 -146(g_tTex2du4a): 145(ptr) Variable UniformConstant - 147: TypeImage 6(float) Cube array sampled format:Unknown - 148: TypePointer UniformConstant 147 -149(g_tTexcdf4a): 148(ptr) Variable UniformConstant - 150: TypeImage 22(int) Cube array sampled format:Unknown - 151: TypePointer UniformConstant 150 -152(g_tTexcdi4a): 151(ptr) Variable UniformConstant - 153: TypeImage 38(int) Cube array sampled format:Unknown - 154: TypePointer UniformConstant 153 -155(g_tTexcdu4a): 154(ptr) Variable UniformConstant + 22: TypeVector 6(float) 2 + 24: TypeInt 32 1 + 25: 24(int) Constant 2 + 29: TypeImage 24(int) 1D sampled format:Unknown + 30: TypePointer UniformConstant 29 + 31(g_tTex1di4): 30(ptr) Variable UniformConstant + 34: TypeImage 24(int) 1D depth sampled format:Unknown + 35: TypeSampledImage 34 + 41: TypeInt 32 0 + 42: TypeImage 41(int) 1D sampled format:Unknown + 43: TypePointer UniformConstant 42 + 44(g_tTex1du4): 43(ptr) Variable UniformConstant + 47: TypeImage 41(int) 1D depth sampled format:Unknown + 48: TypeSampledImage 47 + 54: TypeImage 6(float) 2D sampled format:Unknown + 55: TypePointer UniformConstant 54 + 56(g_tTex2df4): 55(ptr) Variable UniformConstant + 59: TypeImage 6(float) 2D depth sampled format:Unknown + 60: TypeSampledImage 59 + 62: 6(float) Constant 1045220557 + 63: 22(fvec2) ConstantComposite 20 62 + 64: TypeVector 6(float) 3 + 68: TypeVector 24(int) 2 + 69: 24(int) Constant 3 + 70: 68(ivec2) ConstantComposite 25 69 + 74: TypeImage 24(int) 2D sampled format:Unknown + 75: TypePointer UniformConstant 74 + 76(g_tTex2di4): 75(ptr) Variable UniformConstant + 79: TypeImage 24(int) 2D depth sampled format:Unknown + 80: TypeSampledImage 79 + 88: TypeImage 41(int) 2D sampled format:Unknown + 89: TypePointer UniformConstant 88 + 90(g_tTex2du4): 89(ptr) Variable UniformConstant + 93: TypeImage 41(int) 2D depth sampled format:Unknown + 94: TypeSampledImage 93 + 101: TypeVector 6(float) 4 + 102(PS_OUTPUT): TypeStruct 101(fvec4) 6(float) + 103: TypePointer Function 102(PS_OUTPUT) + 105: 24(int) Constant 0 + 106: 6(float) Constant 1065353216 + 107: 101(fvec4) ConstantComposite 106 106 106 106 + 108: TypePointer Function 101(fvec4) + 110: 24(int) Constant 1 + 112: TypePointer Output 101(fvec4) + 113(Color): 112(ptr) Variable Output + 116: TypePointer Output 6(float) + 117(Depth): 116(ptr) Variable Output + 121: TypeImage 6(float) 3D sampled format:Unknown + 122: TypePointer UniformConstant 121 + 123(g_tTex3df4): 122(ptr) Variable UniformConstant + 124: TypeImage 24(int) 3D sampled format:Unknown + 125: TypePointer UniformConstant 124 + 126(g_tTex3di4): 125(ptr) Variable UniformConstant + 127: TypeImage 41(int) 3D sampled format:Unknown + 128: TypePointer UniformConstant 127 + 129(g_tTex3du4): 128(ptr) Variable UniformConstant + 130: TypeImage 6(float) Cube sampled format:Unknown + 131: TypePointer UniformConstant 130 + 132(g_tTexcdf4): 131(ptr) Variable UniformConstant + 133: TypeImage 24(int) Cube sampled format:Unknown + 134: TypePointer UniformConstant 133 + 135(g_tTexcdi4): 134(ptr) Variable UniformConstant + 136: TypeImage 41(int) Cube sampled format:Unknown + 137: TypePointer UniformConstant 136 + 138(g_tTexcdu4): 137(ptr) Variable UniformConstant + 139: TypeImage 6(float) 1D array sampled format:Unknown + 140: TypePointer UniformConstant 139 +141(g_tTex1df4a): 140(ptr) Variable UniformConstant + 142: TypeImage 24(int) 1D array sampled format:Unknown + 143: TypePointer UniformConstant 142 +144(g_tTex1di4a): 143(ptr) Variable UniformConstant + 145: TypeImage 41(int) 1D array sampled format:Unknown + 146: TypePointer UniformConstant 145 +147(g_tTex1du4a): 146(ptr) Variable UniformConstant + 148: TypeImage 6(float) 2D array sampled format:Unknown + 149: TypePointer UniformConstant 148 +150(g_tTex2df4a): 149(ptr) Variable UniformConstant + 151: TypeImage 24(int) 2D array sampled format:Unknown + 152: TypePointer UniformConstant 151 +153(g_tTex2di4a): 152(ptr) Variable UniformConstant + 154: TypeImage 41(int) 2D array sampled format:Unknown + 155: TypePointer UniformConstant 154 +156(g_tTex2du4a): 155(ptr) Variable UniformConstant + 157: TypeImage 6(float) Cube array sampled format:Unknown + 158: TypePointer UniformConstant 157 +159(g_tTexcdf4a): 158(ptr) Variable UniformConstant + 160: TypeImage 24(int) Cube array sampled format:Unknown + 161: TypePointer UniformConstant 160 +162(g_tTexcdi4a): 161(ptr) Variable UniformConstant + 163: TypeImage 41(int) Cube array sampled format:Unknown + 164: TypePointer UniformConstant 163 +165(g_tTexcdu4a): 164(ptr) Variable UniformConstant 4(main): 2 Function None 3 5: Label 8(r01): 7(ptr) Variable Function - 26(r03): 7(ptr) Variable Function - 37(r05): 7(ptr) Variable Function - 49(r21): 7(ptr) Variable Function - 67(r23): 7(ptr) Variable Function - 79(r25): 7(ptr) Variable Function - 94(psout): 93(ptr) Variable Function + 28(r03): 7(ptr) Variable Function + 40(r05): 7(ptr) Variable Function + 53(r21): 7(ptr) Variable Function + 73(r23): 7(ptr) Variable Function + 87(r25): 7(ptr) Variable Function + 104(psout): 103(ptr) Variable Function 12: 9 Load 11(g_tTex1df4) 16: 13 Load 15(g_sSamp) 19: 18 SampledImage 12 16 - 24: 6(float) CompositeExtract 20 0 - 25: 6(float) ImageSampleDrefImplicitLod 19 20 24 ConstOffset 23 - Store 8(r01) 25 - 30: 27 Load 29(g_tTex1di4) - 31: 13 Load 15(g_sSamp) - 34: 33 SampledImage 30 31 - 35: 6(float) CompositeExtract 20 0 - 36: 6(float) ImageSampleDrefImplicitLod 34 20 35 ConstOffset 23 - Store 26(r03) 36 - 42: 39 Load 41(g_tTex1du4) - 43: 13 Load 15(g_sSamp) - 46: 45 SampledImage 42 43 - 47: 6(float) CompositeExtract 20 0 - 48: 6(float) ImageSampleDrefImplicitLod 46 20 47 ConstOffset 23 - Store 37(r05) 48 - 53: 50 Load 52(g_tTex2df4) - 54: 13 Load 15(g_sSamp) - 57: 56 SampledImage 53 54 - 61: 6(float) CompositeExtract 60 0 - 65: 6(float) CompositeExtract 61 0 - 66: 6(float) ImageSampleDrefImplicitLod 57 61 65 ConstOffset 64 - Store 49(r21) 66 - 71: 68 Load 70(g_tTex2di4) - 72: 13 Load 15(g_sSamp) - 75: 74 SampledImage 71 72 - 76: 6(float) CompositeExtract 60 0 - 77: 6(float) CompositeExtract 76 0 - 78: 6(float) ImageSampleDrefImplicitLod 75 76 77 ConstOffset 64 - Store 67(r23) 78 - 83: 80 Load 82(g_tTex2du4) - 84: 13 Load 15(g_sSamp) - 87: 86 SampledImage 83 84 - 88: 6(float) CompositeExtract 60 0 - 89: 6(float) CompositeExtract 88 0 - 90: 6(float) ImageSampleDrefImplicitLod 87 88 89 ConstOffset 64 - Store 79(r25) 90 - 99: 98(ptr) AccessChain 94(psout) 95 - Store 99 97 - 101: 7(ptr) AccessChain 94(psout) 100 - Store 101 96 - 104: 98(ptr) AccessChain 94(psout) 95 - 105: 91(fvec4) Load 104 - Store 103(Color) 105 - 108: 7(ptr) AccessChain 94(psout) 100 - 109: 6(float) Load 108 - Store 107(Depth) 109 + 23: 22(fvec2) CompositeConstruct 20 21 + 26: 6(float) CompositeExtract 23 1 + 27: 6(float) ImageSampleDrefImplicitLod 19 23 26 ConstOffset 25 + Store 8(r01) 27 + 32: 29 Load 31(g_tTex1di4) + 33: 13 Load 15(g_sSamp) + 36: 35 SampledImage 32 33 + 37: 22(fvec2) CompositeConstruct 20 21 + 38: 6(float) CompositeExtract 37 1 + 39: 6(float) ImageSampleDrefImplicitLod 36 37 38 ConstOffset 25 + Store 28(r03) 39 + 45: 42 Load 44(g_tTex1du4) + 46: 13 Load 15(g_sSamp) + 49: 48 SampledImage 45 46 + 50: 22(fvec2) CompositeConstruct 20 21 + 51: 6(float) CompositeExtract 50 1 + 52: 6(float) ImageSampleDrefImplicitLod 49 50 51 ConstOffset 25 + Store 40(r05) 52 + 57: 54 Load 56(g_tTex2df4) + 58: 13 Load 15(g_sSamp) + 61: 60 SampledImage 57 58 + 65: 6(float) CompositeExtract 63 0 + 66: 6(float) CompositeExtract 63 1 + 67: 64(fvec3) CompositeConstruct 65 66 21 + 71: 6(float) CompositeExtract 67 2 + 72: 6(float) ImageSampleDrefImplicitLod 61 67 71 ConstOffset 70 + Store 53(r21) 72 + 77: 74 Load 76(g_tTex2di4) + 78: 13 Load 15(g_sSamp) + 81: 80 SampledImage 77 78 + 82: 6(float) CompositeExtract 63 0 + 83: 6(float) CompositeExtract 63 1 + 84: 64(fvec3) CompositeConstruct 82 83 21 + 85: 6(float) CompositeExtract 84 2 + 86: 6(float) ImageSampleDrefImplicitLod 81 84 85 ConstOffset 70 + Store 73(r23) 86 + 91: 88 Load 90(g_tTex2du4) + 92: 13 Load 15(g_sSamp) + 95: 94 SampledImage 91 92 + 96: 6(float) CompositeExtract 63 0 + 97: 6(float) CompositeExtract 63 1 + 98: 64(fvec3) CompositeConstruct 96 97 21 + 99: 6(float) CompositeExtract 98 2 + 100: 6(float) ImageSampleDrefImplicitLod 95 98 99 ConstOffset 70 + Store 87(r25) 100 + 109: 108(ptr) AccessChain 104(psout) 105 + Store 109 107 + 111: 7(ptr) AccessChain 104(psout) 110 + Store 111 106 + 114: 108(ptr) AccessChain 104(psout) 105 + 115: 101(fvec4) Load 114 + Store 113(Color) 115 + 118: 7(ptr) AccessChain 104(psout) 110 + 119: 6(float) Load 118 + Store 117(Depth) 119 Return FunctionEnd diff --git a/Test/baseResults/hlsl.samplecmp.offsetarray.dx10.frag.out b/Test/baseResults/hlsl.samplecmp.offsetarray.dx10.frag.out index 73a2a89b..05695ed4 100644 --- a/Test/baseResults/hlsl.samplecmp.offsetarray.dx10.frag.out +++ b/Test/baseResults/hlsl.samplecmp.offsetarray.dx10.frag.out @@ -12,7 +12,7 @@ gl_FragCoord origin is upper left 0:42 Construct combined texture-sampler (temp sampler1DArrayShadow) 0:42 'g_tTex1df4a' (uniform texture1DArray) 0:42 'g_sSamp' (layout(binding=0 ) uniform sampler) -0:42 Construct vec3 (temp float) +0:42 Construct vec3 (temp 3-component vector of float) 0:? Constant: 0:? 0.100000 0:? 0.200000 @@ -27,7 +27,7 @@ gl_FragCoord origin is upper left 0:43 Construct combined texture-sampler (temp isampler1DArrayShadow) 0:43 'g_tTex1di4a' (uniform itexture1DArray) 0:43 'g_sSamp' (layout(binding=0 ) uniform sampler) -0:43 Construct vec3 (temp float) +0:43 Construct vec3 (temp 3-component vector of float) 0:? Constant: 0:? 0.100000 0:? 0.200000 @@ -42,7 +42,7 @@ gl_FragCoord origin is upper left 0:44 Construct combined texture-sampler (temp usampler1DArrayShadow) 0:44 'g_tTex1du4a' (uniform utexture1DArray) 0:44 'g_sSamp' (layout(binding=0 ) uniform sampler) -0:44 Construct vec3 (temp float) +0:44 Construct vec3 (temp 3-component vector of float) 0:? Constant: 0:? 0.100000 0:? 0.200000 @@ -57,7 +57,7 @@ gl_FragCoord origin is upper left 0:47 Construct combined texture-sampler (temp sampler2DArrayShadow) 0:47 'g_tTex2df4a' (uniform texture2DArray) 0:47 'g_sSamp' (layout(binding=0 ) uniform sampler) -0:47 Construct vec4 (temp float) +0:47 Construct vec4 (temp 4-component vector of float) 0:? Constant: 0:? 0.100000 0:? 0.200000 @@ -74,7 +74,7 @@ gl_FragCoord origin is upper left 0:48 Construct combined texture-sampler (temp isampler2DArrayShadow) 0:48 'g_tTex2di4a' (uniform itexture2DArray) 0:48 'g_sSamp' (layout(binding=0 ) uniform sampler) -0:48 Construct vec4 (temp float) +0:48 Construct vec4 (temp 4-component vector of float) 0:? Constant: 0:? 0.100000 0:? 0.200000 @@ -91,7 +91,7 @@ gl_FragCoord origin is upper left 0:49 Construct combined texture-sampler (temp usampler2DArrayShadow) 0:49 'g_tTex2du4a' (uniform utexture2DArray) 0:49 'g_sSamp' (layout(binding=0 ) uniform sampler) -0:49 Construct vec4 (temp float) +0:49 Construct vec4 (temp 4-component vector of float) 0:? Constant: 0:? 0.100000 0:? 0.200000 @@ -176,7 +176,7 @@ gl_FragCoord origin is upper left 0:42 Construct combined texture-sampler (temp sampler1DArrayShadow) 0:42 'g_tTex1df4a' (uniform texture1DArray) 0:42 'g_sSamp' (layout(binding=0 ) uniform sampler) -0:42 Construct vec3 (temp float) +0:42 Construct vec3 (temp 3-component vector of float) 0:? Constant: 0:? 0.100000 0:? 0.200000 @@ -191,7 +191,7 @@ gl_FragCoord origin is upper left 0:43 Construct combined texture-sampler (temp isampler1DArrayShadow) 0:43 'g_tTex1di4a' (uniform itexture1DArray) 0:43 'g_sSamp' (layout(binding=0 ) uniform sampler) -0:43 Construct vec3 (temp float) +0:43 Construct vec3 (temp 3-component vector of float) 0:? Constant: 0:? 0.100000 0:? 0.200000 @@ -206,7 +206,7 @@ gl_FragCoord origin is upper left 0:44 Construct combined texture-sampler (temp usampler1DArrayShadow) 0:44 'g_tTex1du4a' (uniform utexture1DArray) 0:44 'g_sSamp' (layout(binding=0 ) uniform sampler) -0:44 Construct vec3 (temp float) +0:44 Construct vec3 (temp 3-component vector of float) 0:? Constant: 0:? 0.100000 0:? 0.200000 @@ -221,7 +221,7 @@ gl_FragCoord origin is upper left 0:47 Construct combined texture-sampler (temp sampler2DArrayShadow) 0:47 'g_tTex2df4a' (uniform texture2DArray) 0:47 'g_sSamp' (layout(binding=0 ) uniform sampler) -0:47 Construct vec4 (temp float) +0:47 Construct vec4 (temp 4-component vector of float) 0:? Constant: 0:? 0.100000 0:? 0.200000 @@ -238,7 +238,7 @@ gl_FragCoord origin is upper left 0:48 Construct combined texture-sampler (temp isampler2DArrayShadow) 0:48 'g_tTex2di4a' (uniform itexture2DArray) 0:48 'g_sSamp' (layout(binding=0 ) uniform sampler) -0:48 Construct vec4 (temp float) +0:48 Construct vec4 (temp 4-component vector of float) 0:? Constant: 0:? 0.100000 0:? 0.200000 @@ -255,7 +255,7 @@ gl_FragCoord origin is upper left 0:49 Construct combined texture-sampler (temp usampler2DArrayShadow) 0:49 'g_tTex2du4a' (uniform utexture2DArray) 0:49 'g_sSamp' (layout(binding=0 ) uniform sampler) -0:49 Construct vec4 (temp float) +0:49 Construct vec4 (temp 4-component vector of float) 0:? Constant: 0:? 0.100000 0:? 0.200000 @@ -325,76 +325,76 @@ gl_FragCoord origin is upper left // Module Version 10000 // Generated by (magic number): 80001 -// Id's are bound by 162 +// Id's are bound by 177 Capability Shader Capability Sampled1D Capability SampledCubeArray 1: ExtInstImport "GLSL.std.450" MemoryModel Logical GLSL450 - EntryPoint Fragment 4 "main" 109 113 + EntryPoint Fragment 4 "main" 124 128 ExecutionMode 4 OriginUpperLeft Name 4 "main" Name 8 "r11" Name 11 "g_tTex1df4a" Name 15 "g_sSamp" - Name 30 "r13" - Name 33 "g_tTex1di4a" - Name 42 "r15" - Name 46 "g_tTex1du4a" - Name 55 "r31" - Name 58 "g_tTex2df4a" - Name 73 "r33" - Name 76 "g_tTex2di4a" - Name 85 "r35" - Name 88 "g_tTex2du4a" - Name 98 "PS_OUTPUT" - MemberName 98(PS_OUTPUT) 0 "Color" - MemberName 98(PS_OUTPUT) 1 "Depth" - Name 100 "psout" - Name 109 "Color" - Name 113 "Depth" - Name 119 "g_tTex1df4" - Name 122 "g_tTex1di4" - Name 125 "g_tTex1du4" - Name 128 "g_tTex2df4" - Name 131 "g_tTex2di4" - Name 134 "g_tTex2du4" - Name 137 "g_tTex3df4" - Name 140 "g_tTex3di4" - Name 143 "g_tTex3du4" - Name 146 "g_tTexcdf4" - Name 149 "g_tTexcdi4" - Name 152 "g_tTexcdu4" - Name 155 "g_tTexcdf4a" - Name 158 "g_tTexcdi4a" - Name 161 "g_tTexcdu4a" + Name 33 "r13" + Name 36 "g_tTex1di4a" + Name 47 "r15" + Name 51 "g_tTex1du4a" + Name 62 "r31" + Name 65 "g_tTex2df4a" + Name 83 "r33" + Name 86 "g_tTex2di4a" + Name 98 "r35" + Name 101 "g_tTex2du4a" + Name 113 "PS_OUTPUT" + MemberName 113(PS_OUTPUT) 0 "Color" + MemberName 113(PS_OUTPUT) 1 "Depth" + Name 115 "psout" + Name 124 "Color" + Name 128 "Depth" + Name 134 "g_tTex1df4" + Name 137 "g_tTex1di4" + Name 140 "g_tTex1du4" + Name 143 "g_tTex2df4" + Name 146 "g_tTex2di4" + Name 149 "g_tTex2du4" + Name 152 "g_tTex3df4" + Name 155 "g_tTex3di4" + Name 158 "g_tTex3du4" + Name 161 "g_tTexcdf4" + Name 164 "g_tTexcdi4" + Name 167 "g_tTexcdu4" + Name 170 "g_tTexcdf4a" + Name 173 "g_tTexcdi4a" + Name 176 "g_tTexcdu4a" Decorate 11(g_tTex1df4a) DescriptorSet 0 Decorate 15(g_sSamp) DescriptorSet 0 Decorate 15(g_sSamp) Binding 0 - Decorate 33(g_tTex1di4a) DescriptorSet 0 - Decorate 46(g_tTex1du4a) DescriptorSet 0 - Decorate 58(g_tTex2df4a) DescriptorSet 0 - Decorate 76(g_tTex2di4a) DescriptorSet 0 - Decorate 88(g_tTex2du4a) DescriptorSet 0 - Decorate 109(Color) Location 0 - Decorate 113(Depth) BuiltIn FragDepth - Decorate 119(g_tTex1df4) DescriptorSet 0 - Decorate 119(g_tTex1df4) Binding 0 - Decorate 122(g_tTex1di4) DescriptorSet 0 - Decorate 125(g_tTex1du4) DescriptorSet 0 - Decorate 128(g_tTex2df4) DescriptorSet 0 - Decorate 131(g_tTex2di4) DescriptorSet 0 - Decorate 134(g_tTex2du4) DescriptorSet 0 - Decorate 137(g_tTex3df4) DescriptorSet 0 - Decorate 140(g_tTex3di4) DescriptorSet 0 - Decorate 143(g_tTex3du4) DescriptorSet 0 - Decorate 146(g_tTexcdf4) DescriptorSet 0 - Decorate 149(g_tTexcdi4) DescriptorSet 0 - Decorate 152(g_tTexcdu4) DescriptorSet 0 - Decorate 155(g_tTexcdf4a) DescriptorSet 0 - Decorate 158(g_tTexcdi4a) DescriptorSet 0 - Decorate 161(g_tTexcdu4a) DescriptorSet 0 + Decorate 36(g_tTex1di4a) DescriptorSet 0 + Decorate 51(g_tTex1du4a) DescriptorSet 0 + Decorate 65(g_tTex2df4a) DescriptorSet 0 + Decorate 86(g_tTex2di4a) DescriptorSet 0 + Decorate 101(g_tTex2du4a) DescriptorSet 0 + Decorate 124(Color) Location 0 + Decorate 128(Depth) BuiltIn FragDepth + Decorate 134(g_tTex1df4) DescriptorSet 0 + Decorate 134(g_tTex1df4) Binding 0 + Decorate 137(g_tTex1di4) DescriptorSet 0 + Decorate 140(g_tTex1du4) DescriptorSet 0 + Decorate 143(g_tTex2df4) DescriptorSet 0 + Decorate 146(g_tTex2di4) DescriptorSet 0 + Decorate 149(g_tTex2du4) DescriptorSet 0 + Decorate 152(g_tTex3df4) DescriptorSet 0 + Decorate 155(g_tTex3di4) DescriptorSet 0 + Decorate 158(g_tTex3du4) DescriptorSet 0 + Decorate 161(g_tTexcdf4) DescriptorSet 0 + Decorate 164(g_tTexcdi4) DescriptorSet 0 + Decorate 167(g_tTexcdu4) DescriptorSet 0 + Decorate 170(g_tTexcdf4a) DescriptorSet 0 + Decorate 173(g_tTexcdi4a) DescriptorSet 0 + Decorate 176(g_tTexcdu4a) DescriptorSet 0 2: TypeVoid 3: TypeFunction 2 6: TypeFloat 32 @@ -412,157 +412,172 @@ gl_FragCoord origin is upper left 22: 6(float) Constant 1045220557 23: 20(fvec2) ConstantComposite 21 22 24: 6(float) Constant 1061158912 - 26: TypeInt 32 1 - 27: 26(int) Constant 2 - 31: TypeImage 26(int) 1D array sampled format:Unknown - 32: TypePointer UniformConstant 31 - 33(g_tTex1di4a): 32(ptr) Variable UniformConstant - 36: TypeImage 26(int) 1D depth array sampled format:Unknown - 37: TypeSampledImage 36 - 43: TypeInt 32 0 - 44: TypeImage 43(int) 1D array sampled format:Unknown - 45: TypePointer UniformConstant 44 - 46(g_tTex1du4a): 45(ptr) Variable UniformConstant - 49: TypeImage 43(int) 1D depth array sampled format:Unknown - 50: TypeSampledImage 49 - 56: TypeImage 6(float) 2D array sampled format:Unknown - 57: TypePointer UniformConstant 56 - 58(g_tTex2df4a): 57(ptr) Variable UniformConstant - 61: TypeImage 6(float) 2D depth array sampled format:Unknown - 62: TypeSampledImage 61 - 64: TypeVector 6(float) 3 - 65: 6(float) Constant 1050253722 - 66: 64(fvec3) ConstantComposite 21 22 65 - 68: TypeVector 26(int) 2 - 69: 26(int) Constant 3 - 70: 68(ivec2) ConstantComposite 27 69 - 74: TypeImage 26(int) 2D array sampled format:Unknown - 75: TypePointer UniformConstant 74 - 76(g_tTex2di4a): 75(ptr) Variable UniformConstant - 79: TypeImage 26(int) 2D depth array sampled format:Unknown - 80: TypeSampledImage 79 - 86: TypeImage 43(int) 2D array sampled format:Unknown - 87: TypePointer UniformConstant 86 - 88(g_tTex2du4a): 87(ptr) Variable UniformConstant - 91: TypeImage 43(int) 2D depth array sampled format:Unknown - 92: TypeSampledImage 91 - 97: TypeVector 6(float) 4 - 98(PS_OUTPUT): TypeStruct 97(fvec4) 6(float) - 99: TypePointer Function 98(PS_OUTPUT) - 101: 26(int) Constant 0 - 102: 6(float) Constant 1065353216 - 103: 97(fvec4) ConstantComposite 102 102 102 102 - 104: TypePointer Function 97(fvec4) - 106: 26(int) Constant 1 - 108: TypePointer Output 97(fvec4) - 109(Color): 108(ptr) Variable Output - 112: TypePointer Output 6(float) - 113(Depth): 112(ptr) Variable Output - 117: TypeImage 6(float) 1D sampled format:Unknown - 118: TypePointer UniformConstant 117 - 119(g_tTex1df4): 118(ptr) Variable UniformConstant - 120: TypeImage 26(int) 1D sampled format:Unknown - 121: TypePointer UniformConstant 120 - 122(g_tTex1di4): 121(ptr) Variable UniformConstant - 123: TypeImage 43(int) 1D sampled format:Unknown - 124: TypePointer UniformConstant 123 - 125(g_tTex1du4): 124(ptr) Variable UniformConstant - 126: TypeImage 6(float) 2D sampled format:Unknown - 127: TypePointer UniformConstant 126 - 128(g_tTex2df4): 127(ptr) Variable UniformConstant - 129: TypeImage 26(int) 2D sampled format:Unknown - 130: TypePointer UniformConstant 129 - 131(g_tTex2di4): 130(ptr) Variable UniformConstant - 132: TypeImage 43(int) 2D sampled format:Unknown + 25: TypeVector 6(float) 3 + 29: TypeInt 32 1 + 30: 29(int) Constant 2 + 34: TypeImage 29(int) 1D array sampled format:Unknown + 35: TypePointer UniformConstant 34 + 36(g_tTex1di4a): 35(ptr) Variable UniformConstant + 39: TypeImage 29(int) 1D depth array sampled format:Unknown + 40: TypeSampledImage 39 + 48: TypeInt 32 0 + 49: TypeImage 48(int) 1D array sampled format:Unknown + 50: TypePointer UniformConstant 49 + 51(g_tTex1du4a): 50(ptr) Variable UniformConstant + 54: TypeImage 48(int) 1D depth array sampled format:Unknown + 55: TypeSampledImage 54 + 63: TypeImage 6(float) 2D array sampled format:Unknown + 64: TypePointer UniformConstant 63 + 65(g_tTex2df4a): 64(ptr) Variable UniformConstant + 68: TypeImage 6(float) 2D depth array sampled format:Unknown + 69: TypeSampledImage 68 + 71: 6(float) Constant 1050253722 + 72: 25(fvec3) ConstantComposite 21 22 71 + 73: TypeVector 6(float) 4 + 78: TypeVector 29(int) 2 + 79: 29(int) Constant 3 + 80: 78(ivec2) ConstantComposite 30 79 + 84: TypeImage 29(int) 2D array sampled format:Unknown + 85: TypePointer UniformConstant 84 + 86(g_tTex2di4a): 85(ptr) Variable UniformConstant + 89: TypeImage 29(int) 2D depth array sampled format:Unknown + 90: TypeSampledImage 89 + 99: TypeImage 48(int) 2D array sampled format:Unknown + 100: TypePointer UniformConstant 99 +101(g_tTex2du4a): 100(ptr) Variable UniformConstant + 104: TypeImage 48(int) 2D depth array sampled format:Unknown + 105: TypeSampledImage 104 + 113(PS_OUTPUT): TypeStruct 73(fvec4) 6(float) + 114: TypePointer Function 113(PS_OUTPUT) + 116: 29(int) Constant 0 + 117: 6(float) Constant 1065353216 + 118: 73(fvec4) ConstantComposite 117 117 117 117 + 119: TypePointer Function 73(fvec4) + 121: 29(int) Constant 1 + 123: TypePointer Output 73(fvec4) + 124(Color): 123(ptr) Variable Output + 127: TypePointer Output 6(float) + 128(Depth): 127(ptr) Variable Output + 132: TypeImage 6(float) 1D sampled format:Unknown 133: TypePointer UniformConstant 132 - 134(g_tTex2du4): 133(ptr) Variable UniformConstant - 135: TypeImage 6(float) 3D sampled format:Unknown + 134(g_tTex1df4): 133(ptr) Variable UniformConstant + 135: TypeImage 29(int) 1D sampled format:Unknown 136: TypePointer UniformConstant 135 - 137(g_tTex3df4): 136(ptr) Variable UniformConstant - 138: TypeImage 26(int) 3D sampled format:Unknown + 137(g_tTex1di4): 136(ptr) Variable UniformConstant + 138: TypeImage 48(int) 1D sampled format:Unknown 139: TypePointer UniformConstant 138 - 140(g_tTex3di4): 139(ptr) Variable UniformConstant - 141: TypeImage 43(int) 3D sampled format:Unknown + 140(g_tTex1du4): 139(ptr) Variable UniformConstant + 141: TypeImage 6(float) 2D sampled format:Unknown 142: TypePointer UniformConstant 141 - 143(g_tTex3du4): 142(ptr) Variable UniformConstant - 144: TypeImage 6(float) Cube sampled format:Unknown + 143(g_tTex2df4): 142(ptr) Variable UniformConstant + 144: TypeImage 29(int) 2D sampled format:Unknown 145: TypePointer UniformConstant 144 - 146(g_tTexcdf4): 145(ptr) Variable UniformConstant - 147: TypeImage 26(int) Cube sampled format:Unknown + 146(g_tTex2di4): 145(ptr) Variable UniformConstant + 147: TypeImage 48(int) 2D sampled format:Unknown 148: TypePointer UniformConstant 147 - 149(g_tTexcdi4): 148(ptr) Variable UniformConstant - 150: TypeImage 43(int) Cube sampled format:Unknown + 149(g_tTex2du4): 148(ptr) Variable UniformConstant + 150: TypeImage 6(float) 3D sampled format:Unknown 151: TypePointer UniformConstant 150 - 152(g_tTexcdu4): 151(ptr) Variable UniformConstant - 153: TypeImage 6(float) Cube array sampled format:Unknown + 152(g_tTex3df4): 151(ptr) Variable UniformConstant + 153: TypeImage 29(int) 3D sampled format:Unknown 154: TypePointer UniformConstant 153 -155(g_tTexcdf4a): 154(ptr) Variable UniformConstant - 156: TypeImage 26(int) Cube array sampled format:Unknown + 155(g_tTex3di4): 154(ptr) Variable UniformConstant + 156: TypeImage 48(int) 3D sampled format:Unknown 157: TypePointer UniformConstant 156 -158(g_tTexcdi4a): 157(ptr) Variable UniformConstant - 159: TypeImage 43(int) Cube array sampled format:Unknown + 158(g_tTex3du4): 157(ptr) Variable UniformConstant + 159: TypeImage 6(float) Cube sampled format:Unknown 160: TypePointer UniformConstant 159 -161(g_tTexcdu4a): 160(ptr) Variable UniformConstant + 161(g_tTexcdf4): 160(ptr) Variable UniformConstant + 162: TypeImage 29(int) Cube sampled format:Unknown + 163: TypePointer UniformConstant 162 + 164(g_tTexcdi4): 163(ptr) Variable UniformConstant + 165: TypeImage 48(int) Cube sampled format:Unknown + 166: TypePointer UniformConstant 165 + 167(g_tTexcdu4): 166(ptr) Variable UniformConstant + 168: TypeImage 6(float) Cube array sampled format:Unknown + 169: TypePointer UniformConstant 168 +170(g_tTexcdf4a): 169(ptr) Variable UniformConstant + 171: TypeImage 29(int) Cube array sampled format:Unknown + 172: TypePointer UniformConstant 171 +173(g_tTexcdi4a): 172(ptr) Variable UniformConstant + 174: TypeImage 48(int) Cube array sampled format:Unknown + 175: TypePointer UniformConstant 174 +176(g_tTexcdu4a): 175(ptr) Variable UniformConstant 4(main): 2 Function None 3 5: Label 8(r11): 7(ptr) Variable Function - 30(r13): 7(ptr) Variable Function - 42(r15): 7(ptr) Variable Function - 55(r31): 7(ptr) Variable Function - 73(r33): 7(ptr) Variable Function - 85(r35): 7(ptr) Variable Function - 100(psout): 99(ptr) Variable Function + 33(r13): 7(ptr) Variable Function + 47(r15): 7(ptr) Variable Function + 62(r31): 7(ptr) Variable Function + 83(r33): 7(ptr) Variable Function + 98(r35): 7(ptr) Variable Function + 115(psout): 114(ptr) Variable Function 12: 9 Load 11(g_tTex1df4a) 16: 13 Load 15(g_sSamp) 19: 18 SampledImage 12 16 - 25: 6(float) CompositeExtract 23 0 - 28: 6(float) CompositeExtract 25 0 - 29: 6(float) ImageSampleDrefImplicitLod 19 25 28 ConstOffset 27 - Store 8(r11) 29 - 34: 31 Load 33(g_tTex1di4a) - 35: 13 Load 15(g_sSamp) - 38: 37 SampledImage 34 35 - 39: 6(float) CompositeExtract 23 0 - 40: 6(float) CompositeExtract 39 0 - 41: 6(float) ImageSampleDrefImplicitLod 38 39 40 ConstOffset 27 - Store 30(r13) 41 - 47: 44 Load 46(g_tTex1du4a) - 48: 13 Load 15(g_sSamp) - 51: 50 SampledImage 47 48 - 52: 6(float) CompositeExtract 23 0 - 53: 6(float) CompositeExtract 52 0 - 54: 6(float) ImageSampleDrefImplicitLod 51 52 53 ConstOffset 27 - Store 42(r15) 54 - 59: 56 Load 58(g_tTex2df4a) - 60: 13 Load 15(g_sSamp) - 63: 62 SampledImage 59 60 - 67: 6(float) CompositeExtract 66 0 - 71: 6(float) CompositeExtract 67 0 - 72: 6(float) ImageSampleDrefImplicitLod 63 67 71 ConstOffset 70 - Store 55(r31) 72 - 77: 74 Load 76(g_tTex2di4a) - 78: 13 Load 15(g_sSamp) - 81: 80 SampledImage 77 78 - 82: 6(float) CompositeExtract 66 0 - 83: 6(float) CompositeExtract 82 0 - 84: 6(float) ImageSampleDrefImplicitLod 81 82 83 ConstOffset 70 - Store 73(r33) 84 - 89: 86 Load 88(g_tTex2du4a) - 90: 13 Load 15(g_sSamp) - 93: 92 SampledImage 89 90 - 94: 6(float) CompositeExtract 66 0 - 95: 6(float) CompositeExtract 94 0 - 96: 6(float) ImageSampleDrefImplicitLod 93 94 95 ConstOffset 70 - Store 85(r35) 96 - 105: 104(ptr) AccessChain 100(psout) 101 - Store 105 103 - 107: 7(ptr) AccessChain 100(psout) 106 - Store 107 102 - 110: 104(ptr) AccessChain 100(psout) 101 - 111: 97(fvec4) Load 110 - Store 109(Color) 111 - 114: 7(ptr) AccessChain 100(psout) 106 - 115: 6(float) Load 114 - Store 113(Depth) 115 + 26: 6(float) CompositeExtract 23 0 + 27: 6(float) CompositeExtract 23 1 + 28: 25(fvec3) CompositeConstruct 26 27 24 + 31: 6(float) CompositeExtract 28 2 + 32: 6(float) ImageSampleDrefImplicitLod 19 28 31 ConstOffset 30 + Store 8(r11) 32 + 37: 34 Load 36(g_tTex1di4a) + 38: 13 Load 15(g_sSamp) + 41: 40 SampledImage 37 38 + 42: 6(float) CompositeExtract 23 0 + 43: 6(float) CompositeExtract 23 1 + 44: 25(fvec3) CompositeConstruct 42 43 24 + 45: 6(float) CompositeExtract 44 2 + 46: 6(float) ImageSampleDrefImplicitLod 41 44 45 ConstOffset 30 + Store 33(r13) 46 + 52: 49 Load 51(g_tTex1du4a) + 53: 13 Load 15(g_sSamp) + 56: 55 SampledImage 52 53 + 57: 6(float) CompositeExtract 23 0 + 58: 6(float) CompositeExtract 23 1 + 59: 25(fvec3) CompositeConstruct 57 58 24 + 60: 6(float) CompositeExtract 59 2 + 61: 6(float) ImageSampleDrefImplicitLod 56 59 60 ConstOffset 30 + Store 47(r15) 61 + 66: 63 Load 65(g_tTex2df4a) + 67: 13 Load 15(g_sSamp) + 70: 69 SampledImage 66 67 + 74: 6(float) CompositeExtract 72 0 + 75: 6(float) CompositeExtract 72 1 + 76: 6(float) CompositeExtract 72 2 + 77: 73(fvec4) CompositeConstruct 74 75 76 24 + 81: 6(float) CompositeExtract 77 3 + 82: 6(float) ImageSampleDrefImplicitLod 70 77 81 ConstOffset 80 + Store 62(r31) 82 + 87: 84 Load 86(g_tTex2di4a) + 88: 13 Load 15(g_sSamp) + 91: 90 SampledImage 87 88 + 92: 6(float) CompositeExtract 72 0 + 93: 6(float) CompositeExtract 72 1 + 94: 6(float) CompositeExtract 72 2 + 95: 73(fvec4) CompositeConstruct 92 93 94 24 + 96: 6(float) CompositeExtract 95 3 + 97: 6(float) ImageSampleDrefImplicitLod 91 95 96 ConstOffset 80 + Store 83(r33) 97 + 102: 99 Load 101(g_tTex2du4a) + 103: 13 Load 15(g_sSamp) + 106: 105 SampledImage 102 103 + 107: 6(float) CompositeExtract 72 0 + 108: 6(float) CompositeExtract 72 1 + 109: 6(float) CompositeExtract 72 2 + 110: 73(fvec4) CompositeConstruct 107 108 109 24 + 111: 6(float) CompositeExtract 110 3 + 112: 6(float) ImageSampleDrefImplicitLod 106 110 111 ConstOffset 80 + Store 98(r35) 112 + 120: 119(ptr) AccessChain 115(psout) 116 + Store 120 118 + 122: 7(ptr) AccessChain 115(psout) 121 + Store 122 117 + 125: 119(ptr) AccessChain 115(psout) 116 + 126: 73(fvec4) Load 125 + Store 124(Color) 126 + 129: 7(ptr) AccessChain 115(psout) 121 + 130: 6(float) Load 129 + Store 128(Depth) 130 Return FunctionEnd diff --git a/Test/baseResults/hlsl.samplecmplevelzero.array.dx10.frag.out b/Test/baseResults/hlsl.samplecmplevelzero.array.dx10.frag.out index c5009ff3..40546103 100644 --- a/Test/baseResults/hlsl.samplecmplevelzero.array.dx10.frag.out +++ b/Test/baseResults/hlsl.samplecmplevelzero.array.dx10.frag.out @@ -12,7 +12,7 @@ gl_FragCoord origin is upper left 0:42 Construct combined texture-sampler (temp sampler1DArrayShadow) 0:42 'g_tTex1df4a' (uniform texture1DArray) 0:42 'g_sSamp' (layout(binding=0 ) uniform sampler) -0:42 Construct vec3 (temp float) +0:42 Construct vec3 (temp 3-component vector of float) 0:? Constant: 0:? 0.100000 0:? 0.200000 @@ -27,7 +27,7 @@ gl_FragCoord origin is upper left 0:43 Construct combined texture-sampler (temp isampler1DArrayShadow) 0:43 'g_tTex1di4a' (uniform itexture1DArray) 0:43 'g_sSamp' (layout(binding=0 ) uniform sampler) -0:43 Construct vec3 (temp float) +0:43 Construct vec3 (temp 3-component vector of float) 0:? Constant: 0:? 0.100000 0:? 0.200000 @@ -42,7 +42,7 @@ gl_FragCoord origin is upper left 0:44 Construct combined texture-sampler (temp usampler1DArrayShadow) 0:44 'g_tTex1du4a' (uniform utexture1DArray) 0:44 'g_sSamp' (layout(binding=0 ) uniform sampler) -0:44 Construct vec3 (temp float) +0:44 Construct vec3 (temp 3-component vector of float) 0:? Constant: 0:? 0.100000 0:? 0.200000 @@ -57,7 +57,7 @@ gl_FragCoord origin is upper left 0:47 Construct combined texture-sampler (temp sampler2DArrayShadow) 0:47 'g_tTex2df4a' (uniform texture2DArray) 0:47 'g_sSamp' (layout(binding=0 ) uniform sampler) -0:47 Construct vec4 (temp float) +0:47 Construct vec4 (temp 4-component vector of float) 0:? Constant: 0:? 0.100000 0:? 0.200000 @@ -73,7 +73,7 @@ gl_FragCoord origin is upper left 0:48 Construct combined texture-sampler (temp isampler2DArrayShadow) 0:48 'g_tTex2di4a' (uniform itexture2DArray) 0:48 'g_sSamp' (layout(binding=0 ) uniform sampler) -0:48 Construct vec4 (temp float) +0:48 Construct vec4 (temp 4-component vector of float) 0:? Constant: 0:? 0.100000 0:? 0.200000 @@ -89,7 +89,7 @@ gl_FragCoord origin is upper left 0:49 Construct combined texture-sampler (temp usampler2DArrayShadow) 0:49 'g_tTex2du4a' (uniform utexture2DArray) 0:49 'g_sSamp' (layout(binding=0 ) uniform sampler) -0:49 Construct vec4 (temp float) +0:49 Construct vec4 (temp 4-component vector of float) 0:? Constant: 0:? 0.100000 0:? 0.200000 @@ -105,7 +105,7 @@ gl_FragCoord origin is upper left 0:52 Construct combined texture-sampler (temp samplerCubeArrayShadow) 0:52 'g_tTexcdf4a' (uniform textureCubeArray) 0:52 'g_sSamp' (layout(binding=0 ) uniform sampler) -0:52 Construct vec4 (temp float) +0:52 Construct vec4 (temp 4-component vector of float) 0:? Constant: 0:? 0.100000 0:? 0.200000 @@ -122,7 +122,7 @@ gl_FragCoord origin is upper left 0:53 Construct combined texture-sampler (temp isamplerCubeArrayShadow) 0:53 'g_tTexcdi4a' (uniform itextureCubeArray) 0:53 'g_sSamp' (layout(binding=0 ) uniform sampler) -0:53 Construct vec4 (temp float) +0:53 Construct vec4 (temp 4-component vector of float) 0:? Constant: 0:? 0.100000 0:? 0.200000 @@ -139,7 +139,7 @@ gl_FragCoord origin is upper left 0:54 Construct combined texture-sampler (temp usamplerCubeArrayShadow) 0:54 'g_tTexcdu4a' (uniform utextureCubeArray) 0:54 'g_sSamp' (layout(binding=0 ) uniform sampler) -0:54 Construct vec4 (temp float) +0:54 Construct vec4 (temp 4-component vector of float) 0:? Constant: 0:? 0.100000 0:? 0.200000 @@ -224,7 +224,7 @@ gl_FragCoord origin is upper left 0:42 Construct combined texture-sampler (temp sampler1DArrayShadow) 0:42 'g_tTex1df4a' (uniform texture1DArray) 0:42 'g_sSamp' (layout(binding=0 ) uniform sampler) -0:42 Construct vec3 (temp float) +0:42 Construct vec3 (temp 3-component vector of float) 0:? Constant: 0:? 0.100000 0:? 0.200000 @@ -239,7 +239,7 @@ gl_FragCoord origin is upper left 0:43 Construct combined texture-sampler (temp isampler1DArrayShadow) 0:43 'g_tTex1di4a' (uniform itexture1DArray) 0:43 'g_sSamp' (layout(binding=0 ) uniform sampler) -0:43 Construct vec3 (temp float) +0:43 Construct vec3 (temp 3-component vector of float) 0:? Constant: 0:? 0.100000 0:? 0.200000 @@ -254,7 +254,7 @@ gl_FragCoord origin is upper left 0:44 Construct combined texture-sampler (temp usampler1DArrayShadow) 0:44 'g_tTex1du4a' (uniform utexture1DArray) 0:44 'g_sSamp' (layout(binding=0 ) uniform sampler) -0:44 Construct vec3 (temp float) +0:44 Construct vec3 (temp 3-component vector of float) 0:? Constant: 0:? 0.100000 0:? 0.200000 @@ -269,7 +269,7 @@ gl_FragCoord origin is upper left 0:47 Construct combined texture-sampler (temp sampler2DArrayShadow) 0:47 'g_tTex2df4a' (uniform texture2DArray) 0:47 'g_sSamp' (layout(binding=0 ) uniform sampler) -0:47 Construct vec4 (temp float) +0:47 Construct vec4 (temp 4-component vector of float) 0:? Constant: 0:? 0.100000 0:? 0.200000 @@ -285,7 +285,7 @@ gl_FragCoord origin is upper left 0:48 Construct combined texture-sampler (temp isampler2DArrayShadow) 0:48 'g_tTex2di4a' (uniform itexture2DArray) 0:48 'g_sSamp' (layout(binding=0 ) uniform sampler) -0:48 Construct vec4 (temp float) +0:48 Construct vec4 (temp 4-component vector of float) 0:? Constant: 0:? 0.100000 0:? 0.200000 @@ -301,7 +301,7 @@ gl_FragCoord origin is upper left 0:49 Construct combined texture-sampler (temp usampler2DArrayShadow) 0:49 'g_tTex2du4a' (uniform utexture2DArray) 0:49 'g_sSamp' (layout(binding=0 ) uniform sampler) -0:49 Construct vec4 (temp float) +0:49 Construct vec4 (temp 4-component vector of float) 0:? Constant: 0:? 0.100000 0:? 0.200000 @@ -317,7 +317,7 @@ gl_FragCoord origin is upper left 0:52 Construct combined texture-sampler (temp samplerCubeArrayShadow) 0:52 'g_tTexcdf4a' (uniform textureCubeArray) 0:52 'g_sSamp' (layout(binding=0 ) uniform sampler) -0:52 Construct vec4 (temp float) +0:52 Construct vec4 (temp 4-component vector of float) 0:? Constant: 0:? 0.100000 0:? 0.200000 @@ -334,7 +334,7 @@ gl_FragCoord origin is upper left 0:53 Construct combined texture-sampler (temp isamplerCubeArrayShadow) 0:53 'g_tTexcdi4a' (uniform itextureCubeArray) 0:53 'g_sSamp' (layout(binding=0 ) uniform sampler) -0:53 Construct vec4 (temp float) +0:53 Construct vec4 (temp 4-component vector of float) 0:? Constant: 0:? 0.100000 0:? 0.200000 @@ -351,7 +351,7 @@ gl_FragCoord origin is upper left 0:54 Construct combined texture-sampler (temp usamplerCubeArrayShadow) 0:54 'g_tTexcdu4a' (uniform utextureCubeArray) 0:54 'g_sSamp' (layout(binding=0 ) uniform sampler) -0:54 Construct vec4 (temp float) +0:54 Construct vec4 (temp 4-component vector of float) 0:? Constant: 0:? 0.100000 0:? 0.200000 @@ -421,79 +421,79 @@ gl_FragCoord origin is upper left // Module Version 10000 // Generated by (magic number): 80001 -// Id's are bound by 185 +// Id's are bound by 212 Capability Shader Capability Sampled1D Capability SampledCubeArray 1: ExtInstImport "GLSL.std.450" MemoryModel Logical GLSL450 - EntryPoint Fragment 4 "main" 141 145 + EntryPoint Fragment 4 "main" 168 172 ExecutionMode 4 OriginUpperLeft Name 4 "main" Name 8 "r10" Name 11 "g_tTex1df4a" Name 15 "g_sSamp" - Name 29 "r12" - Name 33 "g_tTex1di4a" - Name 42 "r14" - Name 46 "g_tTex1du4a" - Name 55 "r30" - Name 58 "g_tTex2df4a" - Name 70 "r32" - Name 73 "g_tTex2di4a" - Name 82 "r34" - Name 85 "g_tTex2du4a" - Name 94 "r60" - Name 97 "g_tTexcdf4a" - Name 108 "r62" - Name 111 "g_tTexcdi4a" - Name 119 "r64" - Name 122 "g_tTexcdu4a" - Name 130 "PS_OUTPUT" - MemberName 130(PS_OUTPUT) 0 "Color" - MemberName 130(PS_OUTPUT) 1 "Depth" - Name 132 "psout" - Name 141 "Color" - Name 145 "Depth" - Name 151 "g_tTex1df4" - Name 154 "g_tTex1di4" - Name 157 "g_tTex1du4" - Name 160 "g_tTex2df4" - Name 163 "g_tTex2di4" - Name 166 "g_tTex2du4" - Name 169 "g_tTex3df4" - Name 172 "g_tTex3di4" - Name 175 "g_tTex3du4" - Name 178 "g_tTexcdf4" - Name 181 "g_tTexcdi4" - Name 184 "g_tTexcdu4" + Name 32 "r12" + Name 36 "g_tTex1di4a" + Name 47 "r14" + Name 51 "g_tTex1du4a" + Name 62 "r30" + Name 65 "g_tTex2df4a" + Name 80 "r32" + Name 83 "g_tTex2di4a" + Name 95 "r34" + Name 98 "g_tTex2du4a" + Name 110 "r60" + Name 113 "g_tTexcdf4a" + Name 127 "r62" + Name 130 "g_tTexcdi4a" + Name 142 "r64" + Name 145 "g_tTexcdu4a" + Name 157 "PS_OUTPUT" + MemberName 157(PS_OUTPUT) 0 "Color" + MemberName 157(PS_OUTPUT) 1 "Depth" + Name 159 "psout" + Name 168 "Color" + Name 172 "Depth" + Name 178 "g_tTex1df4" + Name 181 "g_tTex1di4" + Name 184 "g_tTex1du4" + Name 187 "g_tTex2df4" + Name 190 "g_tTex2di4" + Name 193 "g_tTex2du4" + Name 196 "g_tTex3df4" + Name 199 "g_tTex3di4" + Name 202 "g_tTex3du4" + Name 205 "g_tTexcdf4" + Name 208 "g_tTexcdi4" + Name 211 "g_tTexcdu4" Decorate 11(g_tTex1df4a) DescriptorSet 0 Decorate 15(g_sSamp) DescriptorSet 0 Decorate 15(g_sSamp) Binding 0 - Decorate 33(g_tTex1di4a) DescriptorSet 0 - Decorate 46(g_tTex1du4a) DescriptorSet 0 - Decorate 58(g_tTex2df4a) DescriptorSet 0 - Decorate 73(g_tTex2di4a) DescriptorSet 0 - Decorate 85(g_tTex2du4a) DescriptorSet 0 - Decorate 97(g_tTexcdf4a) DescriptorSet 0 - Decorate 111(g_tTexcdi4a) DescriptorSet 0 - Decorate 122(g_tTexcdu4a) DescriptorSet 0 - Decorate 141(Color) Location 0 - Decorate 145(Depth) BuiltIn FragDepth - Decorate 151(g_tTex1df4) DescriptorSet 0 - Decorate 151(g_tTex1df4) Binding 0 - Decorate 154(g_tTex1di4) DescriptorSet 0 - Decorate 157(g_tTex1du4) DescriptorSet 0 - Decorate 160(g_tTex2df4) DescriptorSet 0 - Decorate 163(g_tTex2di4) DescriptorSet 0 - Decorate 166(g_tTex2du4) DescriptorSet 0 - Decorate 169(g_tTex3df4) DescriptorSet 0 - Decorate 172(g_tTex3di4) DescriptorSet 0 - Decorate 175(g_tTex3du4) DescriptorSet 0 - Decorate 178(g_tTexcdf4) DescriptorSet 0 - Decorate 181(g_tTexcdi4) DescriptorSet 0 - Decorate 184(g_tTexcdu4) DescriptorSet 0 + Decorate 36(g_tTex1di4a) DescriptorSet 0 + Decorate 51(g_tTex1du4a) DescriptorSet 0 + Decorate 65(g_tTex2df4a) DescriptorSet 0 + Decorate 83(g_tTex2di4a) DescriptorSet 0 + Decorate 98(g_tTex2du4a) DescriptorSet 0 + Decorate 113(g_tTexcdf4a) DescriptorSet 0 + Decorate 130(g_tTexcdi4a) DescriptorSet 0 + Decorate 145(g_tTexcdu4a) DescriptorSet 0 + Decorate 168(Color) Location 0 + Decorate 172(Depth) BuiltIn FragDepth + Decorate 178(g_tTex1df4) DescriptorSet 0 + Decorate 178(g_tTex1df4) Binding 0 + Decorate 181(g_tTex1di4) DescriptorSet 0 + Decorate 184(g_tTex1du4) DescriptorSet 0 + Decorate 187(g_tTex2df4) DescriptorSet 0 + Decorate 190(g_tTex2di4) DescriptorSet 0 + Decorate 193(g_tTex2du4) DescriptorSet 0 + Decorate 196(g_tTex3df4) DescriptorSet 0 + Decorate 199(g_tTex3di4) DescriptorSet 0 + Decorate 202(g_tTex3du4) DescriptorSet 0 + Decorate 205(g_tTexcdf4) DescriptorSet 0 + Decorate 208(g_tTexcdi4) DescriptorSet 0 + Decorate 211(g_tTexcdu4) DescriptorSet 0 2: TypeVoid 3: TypeFunction 2 6: TypeFloat 32 @@ -511,183 +511,210 @@ gl_FragCoord origin is upper left 22: 6(float) Constant 1045220557 23: 20(fvec2) ConstantComposite 21 22 24: 6(float) Constant 1061158912 - 26: 6(float) Constant 0 - 30: TypeInt 32 1 - 31: TypeImage 30(int) 1D array sampled format:Unknown - 32: TypePointer UniformConstant 31 - 33(g_tTex1di4a): 32(ptr) Variable UniformConstant - 36: TypeImage 30(int) 1D depth array sampled format:Unknown - 37: TypeSampledImage 36 - 43: TypeInt 32 0 - 44: TypeImage 43(int) 1D array sampled format:Unknown - 45: TypePointer UniformConstant 44 - 46(g_tTex1du4a): 45(ptr) Variable UniformConstant - 49: TypeImage 43(int) 1D depth array sampled format:Unknown - 50: TypeSampledImage 49 - 56: TypeImage 6(float) 2D array sampled format:Unknown - 57: TypePointer UniformConstant 56 - 58(g_tTex2df4a): 57(ptr) Variable UniformConstant - 61: TypeImage 6(float) 2D depth array sampled format:Unknown - 62: TypeSampledImage 61 - 64: TypeVector 6(float) 3 - 65: 6(float) Constant 1050253722 - 66: 64(fvec3) ConstantComposite 21 22 65 - 71: TypeImage 30(int) 2D array sampled format:Unknown - 72: TypePointer UniformConstant 71 - 73(g_tTex2di4a): 72(ptr) Variable UniformConstant - 76: TypeImage 30(int) 2D depth array sampled format:Unknown - 77: TypeSampledImage 76 - 83: TypeImage 43(int) 2D array sampled format:Unknown - 84: TypePointer UniformConstant 83 - 85(g_tTex2du4a): 84(ptr) Variable UniformConstant - 88: TypeImage 43(int) 2D depth array sampled format:Unknown - 89: TypeSampledImage 88 - 95: TypeImage 6(float) Cube array sampled format:Unknown - 96: TypePointer UniformConstant 95 - 97(g_tTexcdf4a): 96(ptr) Variable UniformConstant - 100: TypeImage 6(float) Cube depth array sampled format:Unknown - 101: TypeSampledImage 100 - 103: TypeVector 6(float) 4 - 104: 6(float) Constant 1053609165 - 105: 103(fvec4) ConstantComposite 21 22 65 104 - 109: TypeImage 30(int) Cube array sampled format:Unknown - 110: TypePointer UniformConstant 109 -111(g_tTexcdi4a): 110(ptr) Variable UniformConstant - 114: TypeImage 30(int) Cube depth array sampled format:Unknown - 115: TypeSampledImage 114 - 120: TypeImage 43(int) Cube array sampled format:Unknown - 121: TypePointer UniformConstant 120 -122(g_tTexcdu4a): 121(ptr) Variable UniformConstant - 125: TypeImage 43(int) Cube depth array sampled format:Unknown - 126: TypeSampledImage 125 - 130(PS_OUTPUT): TypeStruct 103(fvec4) 6(float) - 131: TypePointer Function 130(PS_OUTPUT) - 133: 30(int) Constant 0 - 134: 6(float) Constant 1065353216 - 135: 103(fvec4) ConstantComposite 134 134 134 134 - 136: TypePointer Function 103(fvec4) - 138: 30(int) Constant 1 - 140: TypePointer Output 103(fvec4) - 141(Color): 140(ptr) Variable Output - 144: TypePointer Output 6(float) - 145(Depth): 144(ptr) Variable Output - 149: TypeImage 6(float) 1D sampled format:Unknown - 150: TypePointer UniformConstant 149 - 151(g_tTex1df4): 150(ptr) Variable UniformConstant - 152: TypeImage 30(int) 1D sampled format:Unknown - 153: TypePointer UniformConstant 152 - 154(g_tTex1di4): 153(ptr) Variable UniformConstant - 155: TypeImage 43(int) 1D sampled format:Unknown - 156: TypePointer UniformConstant 155 - 157(g_tTex1du4): 156(ptr) Variable UniformConstant - 158: TypeImage 6(float) 2D sampled format:Unknown - 159: TypePointer UniformConstant 158 - 160(g_tTex2df4): 159(ptr) Variable UniformConstant - 161: TypeImage 30(int) 2D sampled format:Unknown - 162: TypePointer UniformConstant 161 - 163(g_tTex2di4): 162(ptr) Variable UniformConstant - 164: TypeImage 43(int) 2D sampled format:Unknown - 165: TypePointer UniformConstant 164 - 166(g_tTex2du4): 165(ptr) Variable UniformConstant - 167: TypeImage 6(float) 3D sampled format:Unknown - 168: TypePointer UniformConstant 167 - 169(g_tTex3df4): 168(ptr) Variable UniformConstant - 170: TypeImage 30(int) 3D sampled format:Unknown - 171: TypePointer UniformConstant 170 - 172(g_tTex3di4): 171(ptr) Variable UniformConstant - 173: TypeImage 43(int) 3D sampled format:Unknown - 174: TypePointer UniformConstant 173 - 175(g_tTex3du4): 174(ptr) Variable UniformConstant - 176: TypeImage 6(float) Cube sampled format:Unknown + 25: TypeVector 6(float) 3 + 29: 6(float) Constant 0 + 33: TypeInt 32 1 + 34: TypeImage 33(int) 1D array sampled format:Unknown + 35: TypePointer UniformConstant 34 + 36(g_tTex1di4a): 35(ptr) Variable UniformConstant + 39: TypeImage 33(int) 1D depth array sampled format:Unknown + 40: TypeSampledImage 39 + 48: TypeInt 32 0 + 49: TypeImage 48(int) 1D array sampled format:Unknown + 50: TypePointer UniformConstant 49 + 51(g_tTex1du4a): 50(ptr) Variable UniformConstant + 54: TypeImage 48(int) 1D depth array sampled format:Unknown + 55: TypeSampledImage 54 + 63: TypeImage 6(float) 2D array sampled format:Unknown + 64: TypePointer UniformConstant 63 + 65(g_tTex2df4a): 64(ptr) Variable UniformConstant + 68: TypeImage 6(float) 2D depth array sampled format:Unknown + 69: TypeSampledImage 68 + 71: 6(float) Constant 1050253722 + 72: 25(fvec3) ConstantComposite 21 22 71 + 73: TypeVector 6(float) 4 + 81: TypeImage 33(int) 2D array sampled format:Unknown + 82: TypePointer UniformConstant 81 + 83(g_tTex2di4a): 82(ptr) Variable UniformConstant + 86: TypeImage 33(int) 2D depth array sampled format:Unknown + 87: TypeSampledImage 86 + 96: TypeImage 48(int) 2D array sampled format:Unknown + 97: TypePointer UniformConstant 96 + 98(g_tTex2du4a): 97(ptr) Variable UniformConstant + 101: TypeImage 48(int) 2D depth array sampled format:Unknown + 102: TypeSampledImage 101 + 111: TypeImage 6(float) Cube array sampled format:Unknown + 112: TypePointer UniformConstant 111 +113(g_tTexcdf4a): 112(ptr) Variable UniformConstant + 116: TypeImage 6(float) Cube depth array sampled format:Unknown + 117: TypeSampledImage 116 + 119: 6(float) Constant 1053609165 + 120: 73(fvec4) ConstantComposite 21 22 71 119 + 128: TypeImage 33(int) Cube array sampled format:Unknown + 129: TypePointer UniformConstant 128 +130(g_tTexcdi4a): 129(ptr) Variable UniformConstant + 133: TypeImage 33(int) Cube depth array sampled format:Unknown + 134: TypeSampledImage 133 + 143: TypeImage 48(int) Cube array sampled format:Unknown + 144: TypePointer UniformConstant 143 +145(g_tTexcdu4a): 144(ptr) Variable UniformConstant + 148: TypeImage 48(int) Cube depth array sampled format:Unknown + 149: TypeSampledImage 148 + 157(PS_OUTPUT): TypeStruct 73(fvec4) 6(float) + 158: TypePointer Function 157(PS_OUTPUT) + 160: 33(int) Constant 0 + 161: 6(float) Constant 1065353216 + 162: 73(fvec4) ConstantComposite 161 161 161 161 + 163: TypePointer Function 73(fvec4) + 165: 33(int) Constant 1 + 167: TypePointer Output 73(fvec4) + 168(Color): 167(ptr) Variable Output + 171: TypePointer Output 6(float) + 172(Depth): 171(ptr) Variable Output + 176: TypeImage 6(float) 1D sampled format:Unknown 177: TypePointer UniformConstant 176 - 178(g_tTexcdf4): 177(ptr) Variable UniformConstant - 179: TypeImage 30(int) Cube sampled format:Unknown + 178(g_tTex1df4): 177(ptr) Variable UniformConstant + 179: TypeImage 33(int) 1D sampled format:Unknown 180: TypePointer UniformConstant 179 - 181(g_tTexcdi4): 180(ptr) Variable UniformConstant - 182: TypeImage 43(int) Cube sampled format:Unknown + 181(g_tTex1di4): 180(ptr) Variable UniformConstant + 182: TypeImage 48(int) 1D sampled format:Unknown 183: TypePointer UniformConstant 182 - 184(g_tTexcdu4): 183(ptr) Variable UniformConstant + 184(g_tTex1du4): 183(ptr) Variable UniformConstant + 185: TypeImage 6(float) 2D sampled format:Unknown + 186: TypePointer UniformConstant 185 + 187(g_tTex2df4): 186(ptr) Variable UniformConstant + 188: TypeImage 33(int) 2D sampled format:Unknown + 189: TypePointer UniformConstant 188 + 190(g_tTex2di4): 189(ptr) Variable UniformConstant + 191: TypeImage 48(int) 2D sampled format:Unknown + 192: TypePointer UniformConstant 191 + 193(g_tTex2du4): 192(ptr) Variable UniformConstant + 194: TypeImage 6(float) 3D sampled format:Unknown + 195: TypePointer UniformConstant 194 + 196(g_tTex3df4): 195(ptr) Variable UniformConstant + 197: TypeImage 33(int) 3D sampled format:Unknown + 198: TypePointer UniformConstant 197 + 199(g_tTex3di4): 198(ptr) Variable UniformConstant + 200: TypeImage 48(int) 3D sampled format:Unknown + 201: TypePointer UniformConstant 200 + 202(g_tTex3du4): 201(ptr) Variable UniformConstant + 203: TypeImage 6(float) Cube sampled format:Unknown + 204: TypePointer UniformConstant 203 + 205(g_tTexcdf4): 204(ptr) Variable UniformConstant + 206: TypeImage 33(int) Cube sampled format:Unknown + 207: TypePointer UniformConstant 206 + 208(g_tTexcdi4): 207(ptr) Variable UniformConstant + 209: TypeImage 48(int) Cube sampled format:Unknown + 210: TypePointer UniformConstant 209 + 211(g_tTexcdu4): 210(ptr) Variable UniformConstant 4(main): 2 Function None 3 5: Label 8(r10): 7(ptr) Variable Function - 29(r12): 7(ptr) Variable Function - 42(r14): 7(ptr) Variable Function - 55(r30): 7(ptr) Variable Function - 70(r32): 7(ptr) Variable Function - 82(r34): 7(ptr) Variable Function - 94(r60): 7(ptr) Variable Function - 108(r62): 7(ptr) Variable Function - 119(r64): 7(ptr) Variable Function - 132(psout): 131(ptr) Variable Function + 32(r12): 7(ptr) Variable Function + 47(r14): 7(ptr) Variable Function + 62(r30): 7(ptr) Variable Function + 80(r32): 7(ptr) Variable Function + 95(r34): 7(ptr) Variable Function + 110(r60): 7(ptr) Variable Function + 127(r62): 7(ptr) Variable Function + 142(r64): 7(ptr) Variable Function + 159(psout): 158(ptr) Variable Function 12: 9 Load 11(g_tTex1df4a) 16: 13 Load 15(g_sSamp) 19: 18 SampledImage 12 16 - 25: 6(float) CompositeExtract 23 0 - 27: 6(float) CompositeExtract 25 0 - 28: 6(float) ImageSampleDrefExplicitLod 19 25 27 Lod 26 - Store 8(r10) 28 - 34: 31 Load 33(g_tTex1di4a) - 35: 13 Load 15(g_sSamp) - 38: 37 SampledImage 34 35 - 39: 6(float) CompositeExtract 23 0 - 40: 6(float) CompositeExtract 39 0 - 41: 6(float) ImageSampleDrefExplicitLod 38 39 40 Lod 26 - Store 29(r12) 41 - 47: 44 Load 46(g_tTex1du4a) - 48: 13 Load 15(g_sSamp) - 51: 50 SampledImage 47 48 - 52: 6(float) CompositeExtract 23 0 - 53: 6(float) CompositeExtract 52 0 - 54: 6(float) ImageSampleDrefExplicitLod 51 52 53 Lod 26 - Store 42(r14) 54 - 59: 56 Load 58(g_tTex2df4a) - 60: 13 Load 15(g_sSamp) - 63: 62 SampledImage 59 60 - 67: 6(float) CompositeExtract 66 0 - 68: 6(float) CompositeExtract 67 0 - 69: 6(float) ImageSampleDrefExplicitLod 63 67 68 Lod 26 - Store 55(r30) 69 - 74: 71 Load 73(g_tTex2di4a) - 75: 13 Load 15(g_sSamp) - 78: 77 SampledImage 74 75 - 79: 6(float) CompositeExtract 66 0 - 80: 6(float) CompositeExtract 79 0 - 81: 6(float) ImageSampleDrefExplicitLod 78 79 80 Lod 26 - Store 70(r32) 81 - 86: 83 Load 85(g_tTex2du4a) - 87: 13 Load 15(g_sSamp) - 90: 89 SampledImage 86 87 - 91: 6(float) CompositeExtract 66 0 - 92: 6(float) CompositeExtract 91 0 - 93: 6(float) ImageSampleDrefExplicitLod 90 91 92 Lod 26 - Store 82(r34) 93 - 98: 95 Load 97(g_tTexcdf4a) - 99: 13 Load 15(g_sSamp) - 102: 101 SampledImage 98 99 - 106: 6(float) CompositeExtract 105 0 - 107: 6(float) ImageSampleDrefExplicitLod 102 106 24 Lod 24 - Store 94(r60) 107 - 112: 109 Load 111(g_tTexcdi4a) - 113: 13 Load 15(g_sSamp) - 116: 115 SampledImage 112 113 - 117: 6(float) CompositeExtract 105 0 - 118: 6(float) ImageSampleDrefExplicitLod 116 117 24 Lod 24 - Store 108(r62) 118 - 123: 120 Load 122(g_tTexcdu4a) - 124: 13 Load 15(g_sSamp) - 127: 126 SampledImage 123 124 - 128: 6(float) CompositeExtract 105 0 - 129: 6(float) ImageSampleDrefExplicitLod 127 128 24 Lod 24 - Store 119(r64) 129 - 137: 136(ptr) AccessChain 132(psout) 133 - Store 137 135 - 139: 7(ptr) AccessChain 132(psout) 138 - Store 139 134 - 142: 136(ptr) AccessChain 132(psout) 133 - 143: 103(fvec4) Load 142 - Store 141(Color) 143 - 146: 7(ptr) AccessChain 132(psout) 138 - 147: 6(float) Load 146 - Store 145(Depth) 147 + 26: 6(float) CompositeExtract 23 0 + 27: 6(float) CompositeExtract 23 1 + 28: 25(fvec3) CompositeConstruct 26 27 24 + 30: 6(float) CompositeExtract 28 2 + 31: 6(float) ImageSampleDrefExplicitLod 19 28 30 Lod 29 + Store 8(r10) 31 + 37: 34 Load 36(g_tTex1di4a) + 38: 13 Load 15(g_sSamp) + 41: 40 SampledImage 37 38 + 42: 6(float) CompositeExtract 23 0 + 43: 6(float) CompositeExtract 23 1 + 44: 25(fvec3) CompositeConstruct 42 43 24 + 45: 6(float) CompositeExtract 44 2 + 46: 6(float) ImageSampleDrefExplicitLod 41 44 45 Lod 29 + Store 32(r12) 46 + 52: 49 Load 51(g_tTex1du4a) + 53: 13 Load 15(g_sSamp) + 56: 55 SampledImage 52 53 + 57: 6(float) CompositeExtract 23 0 + 58: 6(float) CompositeExtract 23 1 + 59: 25(fvec3) CompositeConstruct 57 58 24 + 60: 6(float) CompositeExtract 59 2 + 61: 6(float) ImageSampleDrefExplicitLod 56 59 60 Lod 29 + Store 47(r14) 61 + 66: 63 Load 65(g_tTex2df4a) + 67: 13 Load 15(g_sSamp) + 70: 69 SampledImage 66 67 + 74: 6(float) CompositeExtract 72 0 + 75: 6(float) CompositeExtract 72 1 + 76: 6(float) CompositeExtract 72 2 + 77: 73(fvec4) CompositeConstruct 74 75 76 24 + 78: 6(float) CompositeExtract 77 3 + 79: 6(float) ImageSampleDrefExplicitLod 70 77 78 Lod 29 + Store 62(r30) 79 + 84: 81 Load 83(g_tTex2di4a) + 85: 13 Load 15(g_sSamp) + 88: 87 SampledImage 84 85 + 89: 6(float) CompositeExtract 72 0 + 90: 6(float) CompositeExtract 72 1 + 91: 6(float) CompositeExtract 72 2 + 92: 73(fvec4) CompositeConstruct 89 90 91 24 + 93: 6(float) CompositeExtract 92 3 + 94: 6(float) ImageSampleDrefExplicitLod 88 92 93 Lod 29 + Store 80(r32) 94 + 99: 96 Load 98(g_tTex2du4a) + 100: 13 Load 15(g_sSamp) + 103: 102 SampledImage 99 100 + 104: 6(float) CompositeExtract 72 0 + 105: 6(float) CompositeExtract 72 1 + 106: 6(float) CompositeExtract 72 2 + 107: 73(fvec4) CompositeConstruct 104 105 106 24 + 108: 6(float) CompositeExtract 107 3 + 109: 6(float) ImageSampleDrefExplicitLod 103 107 108 Lod 29 + Store 95(r34) 109 + 114: 111 Load 113(g_tTexcdf4a) + 115: 13 Load 15(g_sSamp) + 118: 117 SampledImage 114 115 + 121: 6(float) CompositeExtract 120 0 + 122: 6(float) CompositeExtract 120 1 + 123: 6(float) CompositeExtract 120 2 + 124: 6(float) CompositeExtract 120 3 + 125: 73(fvec4) CompositeConstruct 121 122 123 124 + 126: 6(float) ImageSampleDrefExplicitLod 118 125 24 Lod 24 + Store 110(r60) 126 + 131: 128 Load 130(g_tTexcdi4a) + 132: 13 Load 15(g_sSamp) + 135: 134 SampledImage 131 132 + 136: 6(float) CompositeExtract 120 0 + 137: 6(float) CompositeExtract 120 1 + 138: 6(float) CompositeExtract 120 2 + 139: 6(float) CompositeExtract 120 3 + 140: 73(fvec4) CompositeConstruct 136 137 138 139 + 141: 6(float) ImageSampleDrefExplicitLod 135 140 24 Lod 24 + Store 127(r62) 141 + 146: 143 Load 145(g_tTexcdu4a) + 147: 13 Load 15(g_sSamp) + 150: 149 SampledImage 146 147 + 151: 6(float) CompositeExtract 120 0 + 152: 6(float) CompositeExtract 120 1 + 153: 6(float) CompositeExtract 120 2 + 154: 6(float) CompositeExtract 120 3 + 155: 73(fvec4) CompositeConstruct 151 152 153 154 + 156: 6(float) ImageSampleDrefExplicitLod 150 155 24 Lod 24 + Store 142(r64) 156 + 164: 163(ptr) AccessChain 159(psout) 160 + Store 164 162 + 166: 7(ptr) AccessChain 159(psout) 165 + Store 166 161 + 169: 163(ptr) AccessChain 159(psout) 160 + 170: 73(fvec4) Load 169 + Store 168(Color) 170 + 173: 7(ptr) AccessChain 159(psout) 165 + 174: 6(float) Load 173 + Store 172(Depth) 174 Return FunctionEnd diff --git a/Test/baseResults/hlsl.samplecmplevelzero.basic.dx10.frag.out b/Test/baseResults/hlsl.samplecmplevelzero.basic.dx10.frag.out index b8f55b8e..a5923367 100644 --- a/Test/baseResults/hlsl.samplecmplevelzero.basic.dx10.frag.out +++ b/Test/baseResults/hlsl.samplecmplevelzero.basic.dx10.frag.out @@ -12,7 +12,7 @@ gl_FragCoord origin is upper left 0:42 Construct combined texture-sampler (temp sampler1DShadow) 0:42 'g_tTex1df4' (layout(binding=0 ) uniform texture1D) 0:42 'g_sSamp' (layout(binding=0 ) uniform sampler) -0:42 Construct vec2 (temp float) +0:42 Construct vec2 (temp 2-component vector of float) 0:42 Constant: 0:42 0.100000 0:42 Constant: @@ -26,7 +26,7 @@ gl_FragCoord origin is upper left 0:43 Construct combined texture-sampler (temp isampler1DShadow) 0:43 'g_tTex1di4' (uniform itexture1D) 0:43 'g_sSamp' (layout(binding=0 ) uniform sampler) -0:43 Construct vec2 (temp float) +0:43 Construct vec2 (temp 2-component vector of float) 0:43 Constant: 0:43 0.100000 0:43 Constant: @@ -40,7 +40,7 @@ gl_FragCoord origin is upper left 0:44 Construct combined texture-sampler (temp usampler1DShadow) 0:44 'g_tTex1du4' (uniform utexture1D) 0:44 'g_sSamp' (layout(binding=0 ) uniform sampler) -0:44 Construct vec2 (temp float) +0:44 Construct vec2 (temp 2-component vector of float) 0:44 Constant: 0:44 0.100000 0:44 Constant: @@ -54,7 +54,7 @@ gl_FragCoord origin is upper left 0:47 Construct combined texture-sampler (temp sampler2DShadow) 0:47 'g_tTex2df4' (uniform texture2D) 0:47 'g_sSamp' (layout(binding=0 ) uniform sampler) -0:47 Construct vec3 (temp float) +0:47 Construct vec3 (temp 3-component vector of float) 0:? Constant: 0:? 0.100000 0:? 0.200000 @@ -69,7 +69,7 @@ gl_FragCoord origin is upper left 0:48 Construct combined texture-sampler (temp isampler2DShadow) 0:48 'g_tTex2di4' (uniform itexture2D) 0:48 'g_sSamp' (layout(binding=0 ) uniform sampler) -0:48 Construct vec3 (temp float) +0:48 Construct vec3 (temp 3-component vector of float) 0:? Constant: 0:? 0.100000 0:? 0.200000 @@ -84,7 +84,7 @@ gl_FragCoord origin is upper left 0:49 Construct combined texture-sampler (temp usampler2DShadow) 0:49 'g_tTex2du4' (uniform utexture2D) 0:49 'g_sSamp' (layout(binding=0 ) uniform sampler) -0:49 Construct vec3 (temp float) +0:49 Construct vec3 (temp 3-component vector of float) 0:? Constant: 0:? 0.100000 0:? 0.200000 @@ -99,7 +99,7 @@ gl_FragCoord origin is upper left 0:53 Construct combined texture-sampler (temp samplerCubeShadow) 0:53 'g_tTexcdf4' (uniform textureCube) 0:53 'g_sSamp' (layout(binding=0 ) uniform sampler) -0:53 Construct vec4 (temp float) +0:53 Construct vec4 (temp 4-component vector of float) 0:? Constant: 0:? 0.100000 0:? 0.200000 @@ -115,7 +115,7 @@ gl_FragCoord origin is upper left 0:54 Construct combined texture-sampler (temp isamplerCubeShadow) 0:54 'g_tTexcdi4' (uniform itextureCube) 0:54 'g_sSamp' (layout(binding=0 ) uniform sampler) -0:54 Construct vec4 (temp float) +0:54 Construct vec4 (temp 4-component vector of float) 0:? Constant: 0:? 0.100000 0:? 0.200000 @@ -131,7 +131,7 @@ gl_FragCoord origin is upper left 0:55 Construct combined texture-sampler (temp usamplerCubeShadow) 0:55 'g_tTexcdu4' (uniform utextureCube) 0:55 'g_sSamp' (layout(binding=0 ) uniform sampler) -0:55 Construct vec4 (temp float) +0:55 Construct vec4 (temp 4-component vector of float) 0:? Constant: 0:? 0.100000 0:? 0.200000 @@ -215,7 +215,7 @@ gl_FragCoord origin is upper left 0:42 Construct combined texture-sampler (temp sampler1DShadow) 0:42 'g_tTex1df4' (layout(binding=0 ) uniform texture1D) 0:42 'g_sSamp' (layout(binding=0 ) uniform sampler) -0:42 Construct vec2 (temp float) +0:42 Construct vec2 (temp 2-component vector of float) 0:42 Constant: 0:42 0.100000 0:42 Constant: @@ -229,7 +229,7 @@ gl_FragCoord origin is upper left 0:43 Construct combined texture-sampler (temp isampler1DShadow) 0:43 'g_tTex1di4' (uniform itexture1D) 0:43 'g_sSamp' (layout(binding=0 ) uniform sampler) -0:43 Construct vec2 (temp float) +0:43 Construct vec2 (temp 2-component vector of float) 0:43 Constant: 0:43 0.100000 0:43 Constant: @@ -243,7 +243,7 @@ gl_FragCoord origin is upper left 0:44 Construct combined texture-sampler (temp usampler1DShadow) 0:44 'g_tTex1du4' (uniform utexture1D) 0:44 'g_sSamp' (layout(binding=0 ) uniform sampler) -0:44 Construct vec2 (temp float) +0:44 Construct vec2 (temp 2-component vector of float) 0:44 Constant: 0:44 0.100000 0:44 Constant: @@ -257,7 +257,7 @@ gl_FragCoord origin is upper left 0:47 Construct combined texture-sampler (temp sampler2DShadow) 0:47 'g_tTex2df4' (uniform texture2D) 0:47 'g_sSamp' (layout(binding=0 ) uniform sampler) -0:47 Construct vec3 (temp float) +0:47 Construct vec3 (temp 3-component vector of float) 0:? Constant: 0:? 0.100000 0:? 0.200000 @@ -272,7 +272,7 @@ gl_FragCoord origin is upper left 0:48 Construct combined texture-sampler (temp isampler2DShadow) 0:48 'g_tTex2di4' (uniform itexture2D) 0:48 'g_sSamp' (layout(binding=0 ) uniform sampler) -0:48 Construct vec3 (temp float) +0:48 Construct vec3 (temp 3-component vector of float) 0:? Constant: 0:? 0.100000 0:? 0.200000 @@ -287,7 +287,7 @@ gl_FragCoord origin is upper left 0:49 Construct combined texture-sampler (temp usampler2DShadow) 0:49 'g_tTex2du4' (uniform utexture2D) 0:49 'g_sSamp' (layout(binding=0 ) uniform sampler) -0:49 Construct vec3 (temp float) +0:49 Construct vec3 (temp 3-component vector of float) 0:? Constant: 0:? 0.100000 0:? 0.200000 @@ -302,7 +302,7 @@ gl_FragCoord origin is upper left 0:53 Construct combined texture-sampler (temp samplerCubeShadow) 0:53 'g_tTexcdf4' (uniform textureCube) 0:53 'g_sSamp' (layout(binding=0 ) uniform sampler) -0:53 Construct vec4 (temp float) +0:53 Construct vec4 (temp 4-component vector of float) 0:? Constant: 0:? 0.100000 0:? 0.200000 @@ -318,7 +318,7 @@ gl_FragCoord origin is upper left 0:54 Construct combined texture-sampler (temp isamplerCubeShadow) 0:54 'g_tTexcdi4' (uniform itextureCube) 0:54 'g_sSamp' (layout(binding=0 ) uniform sampler) -0:54 Construct vec4 (temp float) +0:54 Construct vec4 (temp 4-component vector of float) 0:? Constant: 0:? 0.100000 0:? 0.200000 @@ -334,7 +334,7 @@ gl_FragCoord origin is upper left 0:55 Construct combined texture-sampler (temp usamplerCubeShadow) 0:55 'g_tTexcdu4' (uniform utextureCube) 0:55 'g_sSamp' (layout(binding=0 ) uniform sampler) -0:55 Construct vec4 (temp float) +0:55 Construct vec4 (temp 4-component vector of float) 0:? Constant: 0:? 0.100000 0:? 0.200000 @@ -403,79 +403,79 @@ gl_FragCoord origin is upper left // Module Version 10000 // Generated by (magic number): 80001 -// Id's are bound by 183 +// Id's are bound by 201 Capability Shader Capability Sampled1D Capability SampledCubeArray 1: ExtInstImport "GLSL.std.450" MemoryModel Logical GLSL450 - EntryPoint Fragment 4 "main" 139 143 + EntryPoint Fragment 4 "main" 157 161 ExecutionMode 4 OriginUpperLeft Name 4 "main" Name 8 "r00" Name 11 "g_tTex1df4" Name 15 "g_sSamp" - Name 25 "r02" - Name 29 "g_tTex1di4" - Name 37 "r04" - Name 41 "g_tTex1du4" - Name 49 "r20" - Name 52 "g_tTex2df4" - Name 64 "r22" - Name 67 "g_tTex2di4" - Name 76 "r24" - Name 79 "g_tTex2du4" - Name 88 "r50" - Name 91 "g_tTexcdf4" - Name 103 "r52" - Name 106 "g_tTexcdi4" - Name 115 "r54" - Name 118 "g_tTexcdu4" - Name 128 "PS_OUTPUT" - MemberName 128(PS_OUTPUT) 0 "Color" - MemberName 128(PS_OUTPUT) 1 "Depth" - Name 130 "psout" - Name 139 "Color" - Name 143 "Depth" - Name 149 "g_tTex3df4" - Name 152 "g_tTex3di4" - Name 155 "g_tTex3du4" - Name 158 "g_tTex1df4a" - Name 161 "g_tTex1di4a" - Name 164 "g_tTex1du4a" - Name 167 "g_tTex2df4a" - Name 170 "g_tTex2di4a" - Name 173 "g_tTex2du4a" - Name 176 "g_tTexcdf4a" - Name 179 "g_tTexcdi4a" - Name 182 "g_tTexcdu4a" + Name 27 "r02" + Name 31 "g_tTex1di4" + Name 40 "r04" + Name 44 "g_tTex1du4" + Name 53 "r20" + Name 56 "g_tTex2df4" + Name 70 "r22" + Name 73 "g_tTex2di4" + Name 84 "r24" + Name 87 "g_tTex2du4" + Name 98 "r50" + Name 101 "g_tTexcdf4" + Name 116 "r52" + Name 119 "g_tTexcdi4" + Name 131 "r54" + Name 134 "g_tTexcdu4" + Name 146 "PS_OUTPUT" + MemberName 146(PS_OUTPUT) 0 "Color" + MemberName 146(PS_OUTPUT) 1 "Depth" + Name 148 "psout" + Name 157 "Color" + Name 161 "Depth" + Name 167 "g_tTex3df4" + Name 170 "g_tTex3di4" + Name 173 "g_tTex3du4" + Name 176 "g_tTex1df4a" + Name 179 "g_tTex1di4a" + Name 182 "g_tTex1du4a" + Name 185 "g_tTex2df4a" + Name 188 "g_tTex2di4a" + Name 191 "g_tTex2du4a" + Name 194 "g_tTexcdf4a" + Name 197 "g_tTexcdi4a" + Name 200 "g_tTexcdu4a" Decorate 11(g_tTex1df4) DescriptorSet 0 Decorate 11(g_tTex1df4) Binding 0 Decorate 15(g_sSamp) DescriptorSet 0 Decorate 15(g_sSamp) Binding 0 - Decorate 29(g_tTex1di4) DescriptorSet 0 - Decorate 41(g_tTex1du4) DescriptorSet 0 - Decorate 52(g_tTex2df4) DescriptorSet 0 - Decorate 67(g_tTex2di4) DescriptorSet 0 - Decorate 79(g_tTex2du4) DescriptorSet 0 - Decorate 91(g_tTexcdf4) DescriptorSet 0 - Decorate 106(g_tTexcdi4) DescriptorSet 0 - Decorate 118(g_tTexcdu4) DescriptorSet 0 - Decorate 139(Color) Location 0 - Decorate 143(Depth) BuiltIn FragDepth - Decorate 149(g_tTex3df4) DescriptorSet 0 - Decorate 152(g_tTex3di4) DescriptorSet 0 - Decorate 155(g_tTex3du4) DescriptorSet 0 - Decorate 158(g_tTex1df4a) DescriptorSet 0 - Decorate 161(g_tTex1di4a) DescriptorSet 0 - Decorate 164(g_tTex1du4a) DescriptorSet 0 - Decorate 167(g_tTex2df4a) DescriptorSet 0 - Decorate 170(g_tTex2di4a) DescriptorSet 0 - Decorate 173(g_tTex2du4a) DescriptorSet 0 - Decorate 176(g_tTexcdf4a) DescriptorSet 0 - Decorate 179(g_tTexcdi4a) DescriptorSet 0 - Decorate 182(g_tTexcdu4a) DescriptorSet 0 + Decorate 31(g_tTex1di4) DescriptorSet 0 + Decorate 44(g_tTex1du4) DescriptorSet 0 + Decorate 56(g_tTex2df4) DescriptorSet 0 + Decorate 73(g_tTex2di4) DescriptorSet 0 + Decorate 87(g_tTex2du4) DescriptorSet 0 + Decorate 101(g_tTexcdf4) DescriptorSet 0 + Decorate 119(g_tTexcdi4) DescriptorSet 0 + Decorate 134(g_tTexcdu4) DescriptorSet 0 + Decorate 157(Color) Location 0 + Decorate 161(Depth) BuiltIn FragDepth + Decorate 167(g_tTex3df4) DescriptorSet 0 + Decorate 170(g_tTex3di4) DescriptorSet 0 + Decorate 173(g_tTex3du4) DescriptorSet 0 + Decorate 176(g_tTex1df4a) DescriptorSet 0 + Decorate 179(g_tTex1di4a) DescriptorSet 0 + Decorate 182(g_tTex1du4a) DescriptorSet 0 + Decorate 185(g_tTex2df4a) DescriptorSet 0 + Decorate 188(g_tTex2di4a) DescriptorSet 0 + Decorate 191(g_tTex2du4a) DescriptorSet 0 + Decorate 194(g_tTexcdf4a) DescriptorSet 0 + Decorate 197(g_tTexcdi4a) DescriptorSet 0 + Decorate 200(g_tTexcdu4a) DescriptorSet 0 2: TypeVoid 3: TypeFunction 2 6: TypeFloat 32 @@ -490,184 +490,202 @@ gl_FragCoord origin is upper left 18: TypeSampledImage 17 20: 6(float) Constant 1036831949 21: 6(float) Constant 1061158912 - 22: 6(float) Constant 0 - 26: TypeInt 32 1 - 27: TypeImage 26(int) 1D sampled format:Unknown - 28: TypePointer UniformConstant 27 - 29(g_tTex1di4): 28(ptr) Variable UniformConstant - 32: TypeImage 26(int) 1D depth sampled format:Unknown - 33: TypeSampledImage 32 - 38: TypeInt 32 0 - 39: TypeImage 38(int) 1D sampled format:Unknown - 40: TypePointer UniformConstant 39 - 41(g_tTex1du4): 40(ptr) Variable UniformConstant - 44: TypeImage 38(int) 1D depth sampled format:Unknown - 45: TypeSampledImage 44 - 50: TypeImage 6(float) 2D sampled format:Unknown - 51: TypePointer UniformConstant 50 - 52(g_tTex2df4): 51(ptr) Variable UniformConstant - 55: TypeImage 6(float) 2D depth sampled format:Unknown - 56: TypeSampledImage 55 - 58: TypeVector 6(float) 2 - 59: 6(float) Constant 1045220557 - 60: 58(fvec2) ConstantComposite 20 59 - 65: TypeImage 26(int) 2D sampled format:Unknown - 66: TypePointer UniformConstant 65 - 67(g_tTex2di4): 66(ptr) Variable UniformConstant - 70: TypeImage 26(int) 2D depth sampled format:Unknown - 71: TypeSampledImage 70 - 77: TypeImage 38(int) 2D sampled format:Unknown - 78: TypePointer UniformConstant 77 - 79(g_tTex2du4): 78(ptr) Variable UniformConstant - 82: TypeImage 38(int) 2D depth sampled format:Unknown - 83: TypeSampledImage 82 - 89: TypeImage 6(float) Cube sampled format:Unknown - 90: TypePointer UniformConstant 89 - 91(g_tTexcdf4): 90(ptr) Variable UniformConstant - 94: TypeImage 6(float) Cube depth sampled format:Unknown - 95: TypeSampledImage 94 - 97: TypeVector 6(float) 3 - 98: 6(float) Constant 1050253722 - 99: 97(fvec3) ConstantComposite 20 59 98 - 104: TypeImage 26(int) Cube sampled format:Unknown - 105: TypePointer UniformConstant 104 - 106(g_tTexcdi4): 105(ptr) Variable UniformConstant - 109: TypeImage 26(int) Cube depth sampled format:Unknown - 110: TypeSampledImage 109 - 116: TypeImage 38(int) Cube sampled format:Unknown - 117: TypePointer UniformConstant 116 - 118(g_tTexcdu4): 117(ptr) Variable UniformConstant - 121: TypeImage 38(int) Cube depth sampled format:Unknown - 122: TypeSampledImage 121 - 127: TypeVector 6(float) 4 - 128(PS_OUTPUT): TypeStruct 127(fvec4) 6(float) - 129: TypePointer Function 128(PS_OUTPUT) - 131: 26(int) Constant 0 - 132: 6(float) Constant 1065353216 - 133: 127(fvec4) ConstantComposite 132 132 132 132 - 134: TypePointer Function 127(fvec4) - 136: 26(int) Constant 1 - 138: TypePointer Output 127(fvec4) - 139(Color): 138(ptr) Variable Output - 142: TypePointer Output 6(float) - 143(Depth): 142(ptr) Variable Output - 147: TypeImage 6(float) 3D sampled format:Unknown - 148: TypePointer UniformConstant 147 - 149(g_tTex3df4): 148(ptr) Variable UniformConstant - 150: TypeImage 26(int) 3D sampled format:Unknown - 151: TypePointer UniformConstant 150 - 152(g_tTex3di4): 151(ptr) Variable UniformConstant - 153: TypeImage 38(int) 3D sampled format:Unknown - 154: TypePointer UniformConstant 153 - 155(g_tTex3du4): 154(ptr) Variable UniformConstant - 156: TypeImage 6(float) 1D array sampled format:Unknown - 157: TypePointer UniformConstant 156 -158(g_tTex1df4a): 157(ptr) Variable UniformConstant - 159: TypeImage 26(int) 1D array sampled format:Unknown - 160: TypePointer UniformConstant 159 -161(g_tTex1di4a): 160(ptr) Variable UniformConstant - 162: TypeImage 38(int) 1D array sampled format:Unknown - 163: TypePointer UniformConstant 162 -164(g_tTex1du4a): 163(ptr) Variable UniformConstant - 165: TypeImage 6(float) 2D array sampled format:Unknown + 22: TypeVector 6(float) 2 + 24: 6(float) Constant 0 + 28: TypeInt 32 1 + 29: TypeImage 28(int) 1D sampled format:Unknown + 30: TypePointer UniformConstant 29 + 31(g_tTex1di4): 30(ptr) Variable UniformConstant + 34: TypeImage 28(int) 1D depth sampled format:Unknown + 35: TypeSampledImage 34 + 41: TypeInt 32 0 + 42: TypeImage 41(int) 1D sampled format:Unknown + 43: TypePointer UniformConstant 42 + 44(g_tTex1du4): 43(ptr) Variable UniformConstant + 47: TypeImage 41(int) 1D depth sampled format:Unknown + 48: TypeSampledImage 47 + 54: TypeImage 6(float) 2D sampled format:Unknown + 55: TypePointer UniformConstant 54 + 56(g_tTex2df4): 55(ptr) Variable UniformConstant + 59: TypeImage 6(float) 2D depth sampled format:Unknown + 60: TypeSampledImage 59 + 62: 6(float) Constant 1045220557 + 63: 22(fvec2) ConstantComposite 20 62 + 64: TypeVector 6(float) 3 + 71: TypeImage 28(int) 2D sampled format:Unknown + 72: TypePointer UniformConstant 71 + 73(g_tTex2di4): 72(ptr) Variable UniformConstant + 76: TypeImage 28(int) 2D depth sampled format:Unknown + 77: TypeSampledImage 76 + 85: TypeImage 41(int) 2D sampled format:Unknown + 86: TypePointer UniformConstant 85 + 87(g_tTex2du4): 86(ptr) Variable UniformConstant + 90: TypeImage 41(int) 2D depth sampled format:Unknown + 91: TypeSampledImage 90 + 99: TypeImage 6(float) Cube sampled format:Unknown + 100: TypePointer UniformConstant 99 + 101(g_tTexcdf4): 100(ptr) Variable UniformConstant + 104: TypeImage 6(float) Cube depth sampled format:Unknown + 105: TypeSampledImage 104 + 107: 6(float) Constant 1050253722 + 108: 64(fvec3) ConstantComposite 20 62 107 + 109: TypeVector 6(float) 4 + 117: TypeImage 28(int) Cube sampled format:Unknown + 118: TypePointer UniformConstant 117 + 119(g_tTexcdi4): 118(ptr) Variable UniformConstant + 122: TypeImage 28(int) Cube depth sampled format:Unknown + 123: TypeSampledImage 122 + 132: TypeImage 41(int) Cube sampled format:Unknown + 133: TypePointer UniformConstant 132 + 134(g_tTexcdu4): 133(ptr) Variable UniformConstant + 137: TypeImage 41(int) Cube depth sampled format:Unknown + 138: TypeSampledImage 137 + 146(PS_OUTPUT): TypeStruct 109(fvec4) 6(float) + 147: TypePointer Function 146(PS_OUTPUT) + 149: 28(int) Constant 0 + 150: 6(float) Constant 1065353216 + 151: 109(fvec4) ConstantComposite 150 150 150 150 + 152: TypePointer Function 109(fvec4) + 154: 28(int) Constant 1 + 156: TypePointer Output 109(fvec4) + 157(Color): 156(ptr) Variable Output + 160: TypePointer Output 6(float) + 161(Depth): 160(ptr) Variable Output + 165: TypeImage 6(float) 3D sampled format:Unknown 166: TypePointer UniformConstant 165 -167(g_tTex2df4a): 166(ptr) Variable UniformConstant - 168: TypeImage 26(int) 2D array sampled format:Unknown + 167(g_tTex3df4): 166(ptr) Variable UniformConstant + 168: TypeImage 28(int) 3D sampled format:Unknown 169: TypePointer UniformConstant 168 -170(g_tTex2di4a): 169(ptr) Variable UniformConstant - 171: TypeImage 38(int) 2D array sampled format:Unknown + 170(g_tTex3di4): 169(ptr) Variable UniformConstant + 171: TypeImage 41(int) 3D sampled format:Unknown 172: TypePointer UniformConstant 171 -173(g_tTex2du4a): 172(ptr) Variable UniformConstant - 174: TypeImage 6(float) Cube array sampled format:Unknown + 173(g_tTex3du4): 172(ptr) Variable UniformConstant + 174: TypeImage 6(float) 1D array sampled format:Unknown 175: TypePointer UniformConstant 174 -176(g_tTexcdf4a): 175(ptr) Variable UniformConstant - 177: TypeImage 26(int) Cube array sampled format:Unknown +176(g_tTex1df4a): 175(ptr) Variable UniformConstant + 177: TypeImage 28(int) 1D array sampled format:Unknown 178: TypePointer UniformConstant 177 -179(g_tTexcdi4a): 178(ptr) Variable UniformConstant - 180: TypeImage 38(int) Cube array sampled format:Unknown +179(g_tTex1di4a): 178(ptr) Variable UniformConstant + 180: TypeImage 41(int) 1D array sampled format:Unknown 181: TypePointer UniformConstant 180 -182(g_tTexcdu4a): 181(ptr) Variable UniformConstant +182(g_tTex1du4a): 181(ptr) Variable UniformConstant + 183: TypeImage 6(float) 2D array sampled format:Unknown + 184: TypePointer UniformConstant 183 +185(g_tTex2df4a): 184(ptr) Variable UniformConstant + 186: TypeImage 28(int) 2D array sampled format:Unknown + 187: TypePointer UniformConstant 186 +188(g_tTex2di4a): 187(ptr) Variable UniformConstant + 189: TypeImage 41(int) 2D array sampled format:Unknown + 190: TypePointer UniformConstant 189 +191(g_tTex2du4a): 190(ptr) Variable UniformConstant + 192: TypeImage 6(float) Cube array sampled format:Unknown + 193: TypePointer UniformConstant 192 +194(g_tTexcdf4a): 193(ptr) Variable UniformConstant + 195: TypeImage 28(int) Cube array sampled format:Unknown + 196: TypePointer UniformConstant 195 +197(g_tTexcdi4a): 196(ptr) Variable UniformConstant + 198: TypeImage 41(int) Cube array sampled format:Unknown + 199: TypePointer UniformConstant 198 +200(g_tTexcdu4a): 199(ptr) Variable UniformConstant 4(main): 2 Function None 3 5: Label 8(r00): 7(ptr) Variable Function - 25(r02): 7(ptr) Variable Function - 37(r04): 7(ptr) Variable Function - 49(r20): 7(ptr) Variable Function - 64(r22): 7(ptr) Variable Function - 76(r24): 7(ptr) Variable Function - 88(r50): 7(ptr) Variable Function - 103(r52): 7(ptr) Variable Function - 115(r54): 7(ptr) Variable Function - 130(psout): 129(ptr) Variable Function + 27(r02): 7(ptr) Variable Function + 40(r04): 7(ptr) Variable Function + 53(r20): 7(ptr) Variable Function + 70(r22): 7(ptr) Variable Function + 84(r24): 7(ptr) Variable Function + 98(r50): 7(ptr) Variable Function + 116(r52): 7(ptr) Variable Function + 131(r54): 7(ptr) Variable Function + 148(psout): 147(ptr) Variable Function 12: 9 Load 11(g_tTex1df4) 16: 13 Load 15(g_sSamp) 19: 18 SampledImage 12 16 - 23: 6(float) CompositeExtract 20 0 - 24: 6(float) ImageSampleDrefExplicitLod 19 20 23 Lod 22 - Store 8(r00) 24 - 30: 27 Load 29(g_tTex1di4) - 31: 13 Load 15(g_sSamp) - 34: 33 SampledImage 30 31 - 35: 6(float) CompositeExtract 20 0 - 36: 6(float) ImageSampleDrefExplicitLod 34 20 35 Lod 22 - Store 25(r02) 36 - 42: 39 Load 41(g_tTex1du4) - 43: 13 Load 15(g_sSamp) - 46: 45 SampledImage 42 43 - 47: 6(float) CompositeExtract 20 0 - 48: 6(float) ImageSampleDrefExplicitLod 46 20 47 Lod 22 - Store 37(r04) 48 - 53: 50 Load 52(g_tTex2df4) - 54: 13 Load 15(g_sSamp) - 57: 56 SampledImage 53 54 - 61: 6(float) CompositeExtract 60 0 - 62: 6(float) CompositeExtract 61 0 - 63: 6(float) ImageSampleDrefExplicitLod 57 61 62 Lod 22 - Store 49(r20) 63 - 68: 65 Load 67(g_tTex2di4) - 69: 13 Load 15(g_sSamp) - 72: 71 SampledImage 68 69 - 73: 6(float) CompositeExtract 60 0 - 74: 6(float) CompositeExtract 73 0 - 75: 6(float) ImageSampleDrefExplicitLod 72 73 74 Lod 22 - Store 64(r22) 75 - 80: 77 Load 79(g_tTex2du4) - 81: 13 Load 15(g_sSamp) - 84: 83 SampledImage 80 81 - 85: 6(float) CompositeExtract 60 0 - 86: 6(float) CompositeExtract 85 0 - 87: 6(float) ImageSampleDrefExplicitLod 84 85 86 Lod 22 - Store 76(r24) 87 - 92: 89 Load 91(g_tTexcdf4) - 93: 13 Load 15(g_sSamp) - 96: 95 SampledImage 92 93 - 100: 6(float) CompositeExtract 99 0 - 101: 6(float) CompositeExtract 100 0 - 102: 6(float) ImageSampleDrefExplicitLod 96 100 101 Lod 22 - Store 88(r50) 102 - 107: 104 Load 106(g_tTexcdi4) - 108: 13 Load 15(g_sSamp) - 111: 110 SampledImage 107 108 - 112: 6(float) CompositeExtract 99 0 - 113: 6(float) CompositeExtract 112 0 - 114: 6(float) ImageSampleDrefExplicitLod 111 112 113 Lod 22 - Store 103(r52) 114 - 119: 116 Load 118(g_tTexcdu4) - 120: 13 Load 15(g_sSamp) - 123: 122 SampledImage 119 120 - 124: 6(float) CompositeExtract 99 0 - 125: 6(float) CompositeExtract 124 0 - 126: 6(float) ImageSampleDrefExplicitLod 123 124 125 Lod 22 - Store 115(r54) 126 - 135: 134(ptr) AccessChain 130(psout) 131 - Store 135 133 - 137: 7(ptr) AccessChain 130(psout) 136 - Store 137 132 - 140: 134(ptr) AccessChain 130(psout) 131 - 141: 127(fvec4) Load 140 - Store 139(Color) 141 - 144: 7(ptr) AccessChain 130(psout) 136 - 145: 6(float) Load 144 - Store 143(Depth) 145 + 23: 22(fvec2) CompositeConstruct 20 21 + 25: 6(float) CompositeExtract 23 1 + 26: 6(float) ImageSampleDrefExplicitLod 19 23 25 Lod 24 + Store 8(r00) 26 + 32: 29 Load 31(g_tTex1di4) + 33: 13 Load 15(g_sSamp) + 36: 35 SampledImage 32 33 + 37: 22(fvec2) CompositeConstruct 20 21 + 38: 6(float) CompositeExtract 37 1 + 39: 6(float) ImageSampleDrefExplicitLod 36 37 38 Lod 24 + Store 27(r02) 39 + 45: 42 Load 44(g_tTex1du4) + 46: 13 Load 15(g_sSamp) + 49: 48 SampledImage 45 46 + 50: 22(fvec2) CompositeConstruct 20 21 + 51: 6(float) CompositeExtract 50 1 + 52: 6(float) ImageSampleDrefExplicitLod 49 50 51 Lod 24 + Store 40(r04) 52 + 57: 54 Load 56(g_tTex2df4) + 58: 13 Load 15(g_sSamp) + 61: 60 SampledImage 57 58 + 65: 6(float) CompositeExtract 63 0 + 66: 6(float) CompositeExtract 63 1 + 67: 64(fvec3) CompositeConstruct 65 66 21 + 68: 6(float) CompositeExtract 67 2 + 69: 6(float) ImageSampleDrefExplicitLod 61 67 68 Lod 24 + Store 53(r20) 69 + 74: 71 Load 73(g_tTex2di4) + 75: 13 Load 15(g_sSamp) + 78: 77 SampledImage 74 75 + 79: 6(float) CompositeExtract 63 0 + 80: 6(float) CompositeExtract 63 1 + 81: 64(fvec3) CompositeConstruct 79 80 21 + 82: 6(float) CompositeExtract 81 2 + 83: 6(float) ImageSampleDrefExplicitLod 78 81 82 Lod 24 + Store 70(r22) 83 + 88: 85 Load 87(g_tTex2du4) + 89: 13 Load 15(g_sSamp) + 92: 91 SampledImage 88 89 + 93: 6(float) CompositeExtract 63 0 + 94: 6(float) CompositeExtract 63 1 + 95: 64(fvec3) CompositeConstruct 93 94 21 + 96: 6(float) CompositeExtract 95 2 + 97: 6(float) ImageSampleDrefExplicitLod 92 95 96 Lod 24 + Store 84(r24) 97 + 102: 99 Load 101(g_tTexcdf4) + 103: 13 Load 15(g_sSamp) + 106: 105 SampledImage 102 103 + 110: 6(float) CompositeExtract 108 0 + 111: 6(float) CompositeExtract 108 1 + 112: 6(float) CompositeExtract 108 2 + 113: 109(fvec4) CompositeConstruct 110 111 112 21 + 114: 6(float) CompositeExtract 113 3 + 115: 6(float) ImageSampleDrefExplicitLod 106 113 114 Lod 24 + Store 98(r50) 115 + 120: 117 Load 119(g_tTexcdi4) + 121: 13 Load 15(g_sSamp) + 124: 123 SampledImage 120 121 + 125: 6(float) CompositeExtract 108 0 + 126: 6(float) CompositeExtract 108 1 + 127: 6(float) CompositeExtract 108 2 + 128: 109(fvec4) CompositeConstruct 125 126 127 21 + 129: 6(float) CompositeExtract 128 3 + 130: 6(float) ImageSampleDrefExplicitLod 124 128 129 Lod 24 + Store 116(r52) 130 + 135: 132 Load 134(g_tTexcdu4) + 136: 13 Load 15(g_sSamp) + 139: 138 SampledImage 135 136 + 140: 6(float) CompositeExtract 108 0 + 141: 6(float) CompositeExtract 108 1 + 142: 6(float) CompositeExtract 108 2 + 143: 109(fvec4) CompositeConstruct 140 141 142 21 + 144: 6(float) CompositeExtract 143 3 + 145: 6(float) ImageSampleDrefExplicitLod 139 143 144 Lod 24 + Store 131(r54) 145 + 153: 152(ptr) AccessChain 148(psout) 149 + Store 153 151 + 155: 7(ptr) AccessChain 148(psout) 154 + Store 155 150 + 158: 152(ptr) AccessChain 148(psout) 149 + 159: 109(fvec4) Load 158 + Store 157(Color) 159 + 162: 7(ptr) AccessChain 148(psout) 154 + 163: 6(float) Load 162 + Store 161(Depth) 163 Return FunctionEnd diff --git a/Test/baseResults/hlsl.samplecmplevelzero.offset.dx10.frag.out b/Test/baseResults/hlsl.samplecmplevelzero.offset.dx10.frag.out index b30a252e..bfbfbb29 100644 --- a/Test/baseResults/hlsl.samplecmplevelzero.offset.dx10.frag.out +++ b/Test/baseResults/hlsl.samplecmplevelzero.offset.dx10.frag.out @@ -12,7 +12,7 @@ gl_FragCoord origin is upper left 0:42 Construct combined texture-sampler (temp sampler1DShadow) 0:42 'g_tTex1df4' (layout(binding=0 ) uniform texture1D) 0:42 'g_sSamp' (layout(binding=0 ) uniform sampler) -0:42 Construct vec2 (temp float) +0:42 Construct vec2 (temp 2-component vector of float) 0:42 Constant: 0:42 0.100000 0:42 Constant: @@ -28,7 +28,7 @@ gl_FragCoord origin is upper left 0:43 Construct combined texture-sampler (temp isampler1DShadow) 0:43 'g_tTex1di4' (uniform itexture1D) 0:43 'g_sSamp' (layout(binding=0 ) uniform sampler) -0:43 Construct vec2 (temp float) +0:43 Construct vec2 (temp 2-component vector of float) 0:43 Constant: 0:43 0.100000 0:43 Constant: @@ -44,7 +44,7 @@ gl_FragCoord origin is upper left 0:44 Construct combined texture-sampler (temp usampler1DShadow) 0:44 'g_tTex1du4' (uniform utexture1D) 0:44 'g_sSamp' (layout(binding=0 ) uniform sampler) -0:44 Construct vec2 (temp float) +0:44 Construct vec2 (temp 2-component vector of float) 0:44 Constant: 0:44 0.100000 0:44 Constant: @@ -60,7 +60,7 @@ gl_FragCoord origin is upper left 0:47 Construct combined texture-sampler (temp sampler2DShadow) 0:47 'g_tTex2df4' (uniform texture2D) 0:47 'g_sSamp' (layout(binding=0 ) uniform sampler) -0:47 Construct vec3 (temp float) +0:47 Construct vec3 (temp 3-component vector of float) 0:? Constant: 0:? 0.100000 0:? 0.200000 @@ -78,7 +78,7 @@ gl_FragCoord origin is upper left 0:48 Construct combined texture-sampler (temp isampler2DShadow) 0:48 'g_tTex2di4' (uniform itexture2D) 0:48 'g_sSamp' (layout(binding=0 ) uniform sampler) -0:48 Construct vec3 (temp float) +0:48 Construct vec3 (temp 3-component vector of float) 0:? Constant: 0:? 0.100000 0:? 0.200000 @@ -96,7 +96,7 @@ gl_FragCoord origin is upper left 0:49 Construct combined texture-sampler (temp usampler2DShadow) 0:49 'g_tTex2du4' (uniform utexture2D) 0:49 'g_sSamp' (layout(binding=0 ) uniform sampler) -0:49 Construct vec3 (temp float) +0:49 Construct vec3 (temp 3-component vector of float) 0:? Constant: 0:? 0.100000 0:? 0.200000 @@ -182,7 +182,7 @@ gl_FragCoord origin is upper left 0:42 Construct combined texture-sampler (temp sampler1DShadow) 0:42 'g_tTex1df4' (layout(binding=0 ) uniform texture1D) 0:42 'g_sSamp' (layout(binding=0 ) uniform sampler) -0:42 Construct vec2 (temp float) +0:42 Construct vec2 (temp 2-component vector of float) 0:42 Constant: 0:42 0.100000 0:42 Constant: @@ -198,7 +198,7 @@ gl_FragCoord origin is upper left 0:43 Construct combined texture-sampler (temp isampler1DShadow) 0:43 'g_tTex1di4' (uniform itexture1D) 0:43 'g_sSamp' (layout(binding=0 ) uniform sampler) -0:43 Construct vec2 (temp float) +0:43 Construct vec2 (temp 2-component vector of float) 0:43 Constant: 0:43 0.100000 0:43 Constant: @@ -214,7 +214,7 @@ gl_FragCoord origin is upper left 0:44 Construct combined texture-sampler (temp usampler1DShadow) 0:44 'g_tTex1du4' (uniform utexture1D) 0:44 'g_sSamp' (layout(binding=0 ) uniform sampler) -0:44 Construct vec2 (temp float) +0:44 Construct vec2 (temp 2-component vector of float) 0:44 Constant: 0:44 0.100000 0:44 Constant: @@ -230,7 +230,7 @@ gl_FragCoord origin is upper left 0:47 Construct combined texture-sampler (temp sampler2DShadow) 0:47 'g_tTex2df4' (uniform texture2D) 0:47 'g_sSamp' (layout(binding=0 ) uniform sampler) -0:47 Construct vec3 (temp float) +0:47 Construct vec3 (temp 3-component vector of float) 0:? Constant: 0:? 0.100000 0:? 0.200000 @@ -248,7 +248,7 @@ gl_FragCoord origin is upper left 0:48 Construct combined texture-sampler (temp isampler2DShadow) 0:48 'g_tTex2di4' (uniform itexture2D) 0:48 'g_sSamp' (layout(binding=0 ) uniform sampler) -0:48 Construct vec3 (temp float) +0:48 Construct vec3 (temp 3-component vector of float) 0:? Constant: 0:? 0.100000 0:? 0.200000 @@ -266,7 +266,7 @@ gl_FragCoord origin is upper left 0:49 Construct combined texture-sampler (temp usampler2DShadow) 0:49 'g_tTex2du4' (uniform utexture2D) 0:49 'g_sSamp' (layout(binding=0 ) uniform sampler) -0:49 Construct vec3 (temp float) +0:49 Construct vec3 (temp 3-component vector of float) 0:? Constant: 0:? 0.100000 0:? 0.200000 @@ -337,76 +337,76 @@ gl_FragCoord origin is upper left // Module Version 10000 // Generated by (magic number): 80001 -// Id's are bound by 157 +// Id's are bound by 167 Capability Shader Capability Sampled1D Capability SampledCubeArray 1: ExtInstImport "GLSL.std.450" MemoryModel Logical GLSL450 - EntryPoint Fragment 4 "main" 104 108 + EntryPoint Fragment 4 "main" 114 118 ExecutionMode 4 OriginUpperLeft Name 4 "main" Name 8 "r01" Name 11 "g_tTex1df4" Name 15 "g_sSamp" - Name 27 "r03" - Name 30 "g_tTex1di4" - Name 38 "r05" - Name 42 "g_tTex1du4" - Name 50 "r21" - Name 53 "g_tTex2df4" - Name 68 "r23" - Name 71 "g_tTex2di4" - Name 80 "r25" - Name 83 "g_tTex2du4" - Name 93 "PS_OUTPUT" - MemberName 93(PS_OUTPUT) 0 "Color" - MemberName 93(PS_OUTPUT) 1 "Depth" - Name 95 "psout" - Name 104 "Color" - Name 108 "Depth" - Name 114 "g_tTex3df4" - Name 117 "g_tTex3di4" - Name 120 "g_tTex3du4" - Name 123 "g_tTexcdf4" - Name 126 "g_tTexcdi4" - Name 129 "g_tTexcdu4" - Name 132 "g_tTex1df4a" - Name 135 "g_tTex1di4a" - Name 138 "g_tTex1du4a" - Name 141 "g_tTex2df4a" - Name 144 "g_tTex2di4a" - Name 147 "g_tTex2du4a" - Name 150 "g_tTexcdf4a" - Name 153 "g_tTexcdi4a" - Name 156 "g_tTexcdu4a" + Name 29 "r03" + Name 32 "g_tTex1di4" + Name 41 "r05" + Name 45 "g_tTex1du4" + Name 54 "r21" + Name 57 "g_tTex2df4" + Name 74 "r23" + Name 77 "g_tTex2di4" + Name 88 "r25" + Name 91 "g_tTex2du4" + Name 103 "PS_OUTPUT" + MemberName 103(PS_OUTPUT) 0 "Color" + MemberName 103(PS_OUTPUT) 1 "Depth" + Name 105 "psout" + Name 114 "Color" + Name 118 "Depth" + Name 124 "g_tTex3df4" + Name 127 "g_tTex3di4" + Name 130 "g_tTex3du4" + Name 133 "g_tTexcdf4" + Name 136 "g_tTexcdi4" + Name 139 "g_tTexcdu4" + Name 142 "g_tTex1df4a" + Name 145 "g_tTex1di4a" + Name 148 "g_tTex1du4a" + Name 151 "g_tTex2df4a" + Name 154 "g_tTex2di4a" + Name 157 "g_tTex2du4a" + Name 160 "g_tTexcdf4a" + Name 163 "g_tTexcdi4a" + Name 166 "g_tTexcdu4a" Decorate 11(g_tTex1df4) DescriptorSet 0 Decorate 11(g_tTex1df4) Binding 0 Decorate 15(g_sSamp) DescriptorSet 0 Decorate 15(g_sSamp) Binding 0 - Decorate 30(g_tTex1di4) DescriptorSet 0 - Decorate 42(g_tTex1du4) DescriptorSet 0 - Decorate 53(g_tTex2df4) DescriptorSet 0 - Decorate 71(g_tTex2di4) DescriptorSet 0 - Decorate 83(g_tTex2du4) DescriptorSet 0 - Decorate 104(Color) Location 0 - Decorate 108(Depth) BuiltIn FragDepth - Decorate 114(g_tTex3df4) DescriptorSet 0 - Decorate 117(g_tTex3di4) DescriptorSet 0 - Decorate 120(g_tTex3du4) DescriptorSet 0 - Decorate 123(g_tTexcdf4) DescriptorSet 0 - Decorate 126(g_tTexcdi4) DescriptorSet 0 - Decorate 129(g_tTexcdu4) DescriptorSet 0 - Decorate 132(g_tTex1df4a) DescriptorSet 0 - Decorate 135(g_tTex1di4a) DescriptorSet 0 - Decorate 138(g_tTex1du4a) DescriptorSet 0 - Decorate 141(g_tTex2df4a) DescriptorSet 0 - Decorate 144(g_tTex2di4a) DescriptorSet 0 - Decorate 147(g_tTex2du4a) DescriptorSet 0 - Decorate 150(g_tTexcdf4a) DescriptorSet 0 - Decorate 153(g_tTexcdi4a) DescriptorSet 0 - Decorate 156(g_tTexcdu4a) DescriptorSet 0 + Decorate 32(g_tTex1di4) DescriptorSet 0 + Decorate 45(g_tTex1du4) DescriptorSet 0 + Decorate 57(g_tTex2df4) DescriptorSet 0 + Decorate 77(g_tTex2di4) DescriptorSet 0 + Decorate 91(g_tTex2du4) DescriptorSet 0 + Decorate 114(Color) Location 0 + Decorate 118(Depth) BuiltIn FragDepth + Decorate 124(g_tTex3df4) DescriptorSet 0 + Decorate 127(g_tTex3di4) DescriptorSet 0 + Decorate 130(g_tTex3du4) DescriptorSet 0 + Decorate 133(g_tTexcdf4) DescriptorSet 0 + Decorate 136(g_tTexcdi4) DescriptorSet 0 + Decorate 139(g_tTexcdu4) DescriptorSet 0 + Decorate 142(g_tTex1df4a) DescriptorSet 0 + Decorate 145(g_tTex1di4a) DescriptorSet 0 + Decorate 148(g_tTex1du4a) DescriptorSet 0 + Decorate 151(g_tTex2df4a) DescriptorSet 0 + Decorate 154(g_tTex2di4a) DescriptorSet 0 + Decorate 157(g_tTex2du4a) DescriptorSet 0 + Decorate 160(g_tTexcdf4a) DescriptorSet 0 + Decorate 163(g_tTexcdi4a) DescriptorSet 0 + Decorate 166(g_tTexcdu4a) DescriptorSet 0 2: TypeVoid 3: TypeFunction 2 6: TypeFloat 32 @@ -421,155 +421,165 @@ gl_FragCoord origin is upper left 18: TypeSampledImage 17 20: 6(float) Constant 1036831949 21: 6(float) Constant 1061158912 - 22: 6(float) Constant 0 - 23: TypeInt 32 1 - 24: 23(int) Constant 2 - 28: TypeImage 23(int) 1D sampled format:Unknown - 29: TypePointer UniformConstant 28 - 30(g_tTex1di4): 29(ptr) Variable UniformConstant - 33: TypeImage 23(int) 1D depth sampled format:Unknown - 34: TypeSampledImage 33 - 39: TypeInt 32 0 - 40: TypeImage 39(int) 1D sampled format:Unknown - 41: TypePointer UniformConstant 40 - 42(g_tTex1du4): 41(ptr) Variable UniformConstant - 45: TypeImage 39(int) 1D depth sampled format:Unknown - 46: TypeSampledImage 45 - 51: TypeImage 6(float) 2D sampled format:Unknown - 52: TypePointer UniformConstant 51 - 53(g_tTex2df4): 52(ptr) Variable UniformConstant - 56: TypeImage 6(float) 2D depth sampled format:Unknown - 57: TypeSampledImage 56 - 59: TypeVector 6(float) 2 - 60: 6(float) Constant 1045220557 - 61: 59(fvec2) ConstantComposite 20 60 - 63: TypeVector 23(int) 2 - 64: 23(int) Constant 3 - 65: 63(ivec2) ConstantComposite 24 64 - 69: TypeImage 23(int) 2D sampled format:Unknown - 70: TypePointer UniformConstant 69 - 71(g_tTex2di4): 70(ptr) Variable UniformConstant - 74: TypeImage 23(int) 2D depth sampled format:Unknown - 75: TypeSampledImage 74 - 81: TypeImage 39(int) 2D sampled format:Unknown - 82: TypePointer UniformConstant 81 - 83(g_tTex2du4): 82(ptr) Variable UniformConstant - 86: TypeImage 39(int) 2D depth sampled format:Unknown - 87: TypeSampledImage 86 - 92: TypeVector 6(float) 4 - 93(PS_OUTPUT): TypeStruct 92(fvec4) 6(float) - 94: TypePointer Function 93(PS_OUTPUT) - 96: 23(int) Constant 0 - 97: 6(float) Constant 1065353216 - 98: 92(fvec4) ConstantComposite 97 97 97 97 - 99: TypePointer Function 92(fvec4) - 101: 23(int) Constant 1 - 103: TypePointer Output 92(fvec4) - 104(Color): 103(ptr) Variable Output - 107: TypePointer Output 6(float) - 108(Depth): 107(ptr) Variable Output - 112: TypeImage 6(float) 3D sampled format:Unknown - 113: TypePointer UniformConstant 112 - 114(g_tTex3df4): 113(ptr) Variable UniformConstant - 115: TypeImage 23(int) 3D sampled format:Unknown - 116: TypePointer UniformConstant 115 - 117(g_tTex3di4): 116(ptr) Variable UniformConstant - 118: TypeImage 39(int) 3D sampled format:Unknown - 119: TypePointer UniformConstant 118 - 120(g_tTex3du4): 119(ptr) Variable UniformConstant - 121: TypeImage 6(float) Cube sampled format:Unknown - 122: TypePointer UniformConstant 121 - 123(g_tTexcdf4): 122(ptr) Variable UniformConstant - 124: TypeImage 23(int) Cube sampled format:Unknown - 125: TypePointer UniformConstant 124 - 126(g_tTexcdi4): 125(ptr) Variable UniformConstant - 127: TypeImage 39(int) Cube sampled format:Unknown - 128: TypePointer UniformConstant 127 - 129(g_tTexcdu4): 128(ptr) Variable UniformConstant - 130: TypeImage 6(float) 1D array sampled format:Unknown - 131: TypePointer UniformConstant 130 -132(g_tTex1df4a): 131(ptr) Variable UniformConstant - 133: TypeImage 23(int) 1D array sampled format:Unknown - 134: TypePointer UniformConstant 133 -135(g_tTex1di4a): 134(ptr) Variable UniformConstant - 136: TypeImage 39(int) 1D array sampled format:Unknown - 137: TypePointer UniformConstant 136 -138(g_tTex1du4a): 137(ptr) Variable UniformConstant - 139: TypeImage 6(float) 2D array sampled format:Unknown - 140: TypePointer UniformConstant 139 -141(g_tTex2df4a): 140(ptr) Variable UniformConstant - 142: TypeImage 23(int) 2D array sampled format:Unknown - 143: TypePointer UniformConstant 142 -144(g_tTex2di4a): 143(ptr) Variable UniformConstant - 145: TypeImage 39(int) 2D array sampled format:Unknown - 146: TypePointer UniformConstant 145 -147(g_tTex2du4a): 146(ptr) Variable UniformConstant - 148: TypeImage 6(float) Cube array sampled format:Unknown - 149: TypePointer UniformConstant 148 -150(g_tTexcdf4a): 149(ptr) Variable UniformConstant - 151: TypeImage 23(int) Cube array sampled format:Unknown - 152: TypePointer UniformConstant 151 -153(g_tTexcdi4a): 152(ptr) Variable UniformConstant - 154: TypeImage 39(int) Cube array sampled format:Unknown - 155: TypePointer UniformConstant 154 -156(g_tTexcdu4a): 155(ptr) Variable UniformConstant + 22: TypeVector 6(float) 2 + 24: 6(float) Constant 0 + 25: TypeInt 32 1 + 26: 25(int) Constant 2 + 30: TypeImage 25(int) 1D sampled format:Unknown + 31: TypePointer UniformConstant 30 + 32(g_tTex1di4): 31(ptr) Variable UniformConstant + 35: TypeImage 25(int) 1D depth sampled format:Unknown + 36: TypeSampledImage 35 + 42: TypeInt 32 0 + 43: TypeImage 42(int) 1D sampled format:Unknown + 44: TypePointer UniformConstant 43 + 45(g_tTex1du4): 44(ptr) Variable UniformConstant + 48: TypeImage 42(int) 1D depth sampled format:Unknown + 49: TypeSampledImage 48 + 55: TypeImage 6(float) 2D sampled format:Unknown + 56: TypePointer UniformConstant 55 + 57(g_tTex2df4): 56(ptr) Variable UniformConstant + 60: TypeImage 6(float) 2D depth sampled format:Unknown + 61: TypeSampledImage 60 + 63: 6(float) Constant 1045220557 + 64: 22(fvec2) ConstantComposite 20 63 + 65: TypeVector 6(float) 3 + 69: TypeVector 25(int) 2 + 70: 25(int) Constant 3 + 71: 69(ivec2) ConstantComposite 26 70 + 75: TypeImage 25(int) 2D sampled format:Unknown + 76: TypePointer UniformConstant 75 + 77(g_tTex2di4): 76(ptr) Variable UniformConstant + 80: TypeImage 25(int) 2D depth sampled format:Unknown + 81: TypeSampledImage 80 + 89: TypeImage 42(int) 2D sampled format:Unknown + 90: TypePointer UniformConstant 89 + 91(g_tTex2du4): 90(ptr) Variable UniformConstant + 94: TypeImage 42(int) 2D depth sampled format:Unknown + 95: TypeSampledImage 94 + 102: TypeVector 6(float) 4 + 103(PS_OUTPUT): TypeStruct 102(fvec4) 6(float) + 104: TypePointer Function 103(PS_OUTPUT) + 106: 25(int) Constant 0 + 107: 6(float) Constant 1065353216 + 108: 102(fvec4) ConstantComposite 107 107 107 107 + 109: TypePointer Function 102(fvec4) + 111: 25(int) Constant 1 + 113: TypePointer Output 102(fvec4) + 114(Color): 113(ptr) Variable Output + 117: TypePointer Output 6(float) + 118(Depth): 117(ptr) Variable Output + 122: TypeImage 6(float) 3D sampled format:Unknown + 123: TypePointer UniformConstant 122 + 124(g_tTex3df4): 123(ptr) Variable UniformConstant + 125: TypeImage 25(int) 3D sampled format:Unknown + 126: TypePointer UniformConstant 125 + 127(g_tTex3di4): 126(ptr) Variable UniformConstant + 128: TypeImage 42(int) 3D sampled format:Unknown + 129: TypePointer UniformConstant 128 + 130(g_tTex3du4): 129(ptr) Variable UniformConstant + 131: TypeImage 6(float) Cube sampled format:Unknown + 132: TypePointer UniformConstant 131 + 133(g_tTexcdf4): 132(ptr) Variable UniformConstant + 134: TypeImage 25(int) Cube sampled format:Unknown + 135: TypePointer UniformConstant 134 + 136(g_tTexcdi4): 135(ptr) Variable UniformConstant + 137: TypeImage 42(int) Cube sampled format:Unknown + 138: TypePointer UniformConstant 137 + 139(g_tTexcdu4): 138(ptr) Variable UniformConstant + 140: TypeImage 6(float) 1D array sampled format:Unknown + 141: TypePointer UniformConstant 140 +142(g_tTex1df4a): 141(ptr) Variable UniformConstant + 143: TypeImage 25(int) 1D array sampled format:Unknown + 144: TypePointer UniformConstant 143 +145(g_tTex1di4a): 144(ptr) Variable UniformConstant + 146: TypeImage 42(int) 1D array sampled format:Unknown + 147: TypePointer UniformConstant 146 +148(g_tTex1du4a): 147(ptr) Variable UniformConstant + 149: TypeImage 6(float) 2D array sampled format:Unknown + 150: TypePointer UniformConstant 149 +151(g_tTex2df4a): 150(ptr) Variable UniformConstant + 152: TypeImage 25(int) 2D array sampled format:Unknown + 153: TypePointer UniformConstant 152 +154(g_tTex2di4a): 153(ptr) Variable UniformConstant + 155: TypeImage 42(int) 2D array sampled format:Unknown + 156: TypePointer UniformConstant 155 +157(g_tTex2du4a): 156(ptr) Variable UniformConstant + 158: TypeImage 6(float) Cube array sampled format:Unknown + 159: TypePointer UniformConstant 158 +160(g_tTexcdf4a): 159(ptr) Variable UniformConstant + 161: TypeImage 25(int) Cube array sampled format:Unknown + 162: TypePointer UniformConstant 161 +163(g_tTexcdi4a): 162(ptr) Variable UniformConstant + 164: TypeImage 42(int) Cube array sampled format:Unknown + 165: TypePointer UniformConstant 164 +166(g_tTexcdu4a): 165(ptr) Variable UniformConstant 4(main): 2 Function None 3 5: Label 8(r01): 7(ptr) Variable Function - 27(r03): 7(ptr) Variable Function - 38(r05): 7(ptr) Variable Function - 50(r21): 7(ptr) Variable Function - 68(r23): 7(ptr) Variable Function - 80(r25): 7(ptr) Variable Function - 95(psout): 94(ptr) Variable Function + 29(r03): 7(ptr) Variable Function + 41(r05): 7(ptr) Variable Function + 54(r21): 7(ptr) Variable Function + 74(r23): 7(ptr) Variable Function + 88(r25): 7(ptr) Variable Function + 105(psout): 104(ptr) Variable Function 12: 9 Load 11(g_tTex1df4) 16: 13 Load 15(g_sSamp) 19: 18 SampledImage 12 16 - 25: 6(float) CompositeExtract 20 0 - 26: 6(float) ImageSampleDrefExplicitLod 19 20 25 Lod ConstOffset 22 24 - Store 8(r01) 26 - 31: 28 Load 30(g_tTex1di4) - 32: 13 Load 15(g_sSamp) - 35: 34 SampledImage 31 32 - 36: 6(float) CompositeExtract 20 0 - 37: 6(float) ImageSampleDrefExplicitLod 35 20 36 Lod ConstOffset 22 24 - Store 27(r03) 37 - 43: 40 Load 42(g_tTex1du4) - 44: 13 Load 15(g_sSamp) - 47: 46 SampledImage 43 44 - 48: 6(float) CompositeExtract 20 0 - 49: 6(float) ImageSampleDrefExplicitLod 47 20 48 Lod ConstOffset 22 24 - Store 38(r05) 49 - 54: 51 Load 53(g_tTex2df4) - 55: 13 Load 15(g_sSamp) - 58: 57 SampledImage 54 55 - 62: 6(float) CompositeExtract 61 0 - 66: 6(float) CompositeExtract 62 0 - 67: 6(float) ImageSampleDrefExplicitLod 58 62 66 Lod ConstOffset 22 65 - Store 50(r21) 67 - 72: 69 Load 71(g_tTex2di4) - 73: 13 Load 15(g_sSamp) - 76: 75 SampledImage 72 73 - 77: 6(float) CompositeExtract 61 0 - 78: 6(float) CompositeExtract 77 0 - 79: 6(float) ImageSampleDrefExplicitLod 76 77 78 Lod ConstOffset 22 65 - Store 68(r23) 79 - 84: 81 Load 83(g_tTex2du4) - 85: 13 Load 15(g_sSamp) - 88: 87 SampledImage 84 85 - 89: 6(float) CompositeExtract 61 0 - 90: 6(float) CompositeExtract 89 0 - 91: 6(float) ImageSampleDrefExplicitLod 88 89 90 Lod ConstOffset 22 65 - Store 80(r25) 91 - 100: 99(ptr) AccessChain 95(psout) 96 - Store 100 98 - 102: 7(ptr) AccessChain 95(psout) 101 - Store 102 97 - 105: 99(ptr) AccessChain 95(psout) 96 - 106: 92(fvec4) Load 105 - Store 104(Color) 106 - 109: 7(ptr) AccessChain 95(psout) 101 - 110: 6(float) Load 109 - Store 108(Depth) 110 + 23: 22(fvec2) CompositeConstruct 20 21 + 27: 6(float) CompositeExtract 23 1 + 28: 6(float) ImageSampleDrefExplicitLod 19 23 27 Lod ConstOffset 24 26 + Store 8(r01) 28 + 33: 30 Load 32(g_tTex1di4) + 34: 13 Load 15(g_sSamp) + 37: 36 SampledImage 33 34 + 38: 22(fvec2) CompositeConstruct 20 21 + 39: 6(float) CompositeExtract 38 1 + 40: 6(float) ImageSampleDrefExplicitLod 37 38 39 Lod ConstOffset 24 26 + Store 29(r03) 40 + 46: 43 Load 45(g_tTex1du4) + 47: 13 Load 15(g_sSamp) + 50: 49 SampledImage 46 47 + 51: 22(fvec2) CompositeConstruct 20 21 + 52: 6(float) CompositeExtract 51 1 + 53: 6(float) ImageSampleDrefExplicitLod 50 51 52 Lod ConstOffset 24 26 + Store 41(r05) 53 + 58: 55 Load 57(g_tTex2df4) + 59: 13 Load 15(g_sSamp) + 62: 61 SampledImage 58 59 + 66: 6(float) CompositeExtract 64 0 + 67: 6(float) CompositeExtract 64 1 + 68: 65(fvec3) CompositeConstruct 66 67 21 + 72: 6(float) CompositeExtract 68 2 + 73: 6(float) ImageSampleDrefExplicitLod 62 68 72 Lod ConstOffset 24 71 + Store 54(r21) 73 + 78: 75 Load 77(g_tTex2di4) + 79: 13 Load 15(g_sSamp) + 82: 81 SampledImage 78 79 + 83: 6(float) CompositeExtract 64 0 + 84: 6(float) CompositeExtract 64 1 + 85: 65(fvec3) CompositeConstruct 83 84 21 + 86: 6(float) CompositeExtract 85 2 + 87: 6(float) ImageSampleDrefExplicitLod 82 85 86 Lod ConstOffset 24 71 + Store 74(r23) 87 + 92: 89 Load 91(g_tTex2du4) + 93: 13 Load 15(g_sSamp) + 96: 95 SampledImage 92 93 + 97: 6(float) CompositeExtract 64 0 + 98: 6(float) CompositeExtract 64 1 + 99: 65(fvec3) CompositeConstruct 97 98 21 + 100: 6(float) CompositeExtract 99 2 + 101: 6(float) ImageSampleDrefExplicitLod 96 99 100 Lod ConstOffset 24 71 + Store 88(r25) 101 + 110: 109(ptr) AccessChain 105(psout) 106 + Store 110 108 + 112: 7(ptr) AccessChain 105(psout) 111 + Store 112 107 + 115: 109(ptr) AccessChain 105(psout) 106 + 116: 102(fvec4) Load 115 + Store 114(Color) 116 + 119: 7(ptr) AccessChain 105(psout) 111 + 120: 6(float) Load 119 + Store 118(Depth) 120 Return FunctionEnd diff --git a/Test/baseResults/hlsl.samplecmplevelzero.offsetarray.dx10.frag.out b/Test/baseResults/hlsl.samplecmplevelzero.offsetarray.dx10.frag.out index 19d262ad..0e38a7d6 100644 --- a/Test/baseResults/hlsl.samplecmplevelzero.offsetarray.dx10.frag.out +++ b/Test/baseResults/hlsl.samplecmplevelzero.offsetarray.dx10.frag.out @@ -12,7 +12,7 @@ gl_FragCoord origin is upper left 0:42 Construct combined texture-sampler (temp sampler1DArrayShadow) 0:42 'g_tTex1df4a' (uniform texture1DArray) 0:42 'g_sSamp' (layout(binding=0 ) uniform sampler) -0:42 Construct vec3 (temp float) +0:42 Construct vec3 (temp 3-component vector of float) 0:? Constant: 0:? 0.100000 0:? 0.200000 @@ -29,7 +29,7 @@ gl_FragCoord origin is upper left 0:43 Construct combined texture-sampler (temp isampler1DArrayShadow) 0:43 'g_tTex1di4a' (uniform itexture1DArray) 0:43 'g_sSamp' (layout(binding=0 ) uniform sampler) -0:43 Construct vec3 (temp float) +0:43 Construct vec3 (temp 3-component vector of float) 0:? Constant: 0:? 0.100000 0:? 0.200000 @@ -46,7 +46,7 @@ gl_FragCoord origin is upper left 0:44 Construct combined texture-sampler (temp usampler1DArrayShadow) 0:44 'g_tTex1du4a' (uniform utexture1DArray) 0:44 'g_sSamp' (layout(binding=0 ) uniform sampler) -0:44 Construct vec3 (temp float) +0:44 Construct vec3 (temp 3-component vector of float) 0:? Constant: 0:? 0.100000 0:? 0.200000 @@ -63,7 +63,7 @@ gl_FragCoord origin is upper left 0:47 Construct combined texture-sampler (temp sampler2DArrayShadow) 0:47 'g_tTex2df4a' (uniform texture2DArray) 0:47 'g_sSamp' (layout(binding=0 ) uniform sampler) -0:47 Construct vec4 (temp float) +0:47 Construct vec4 (temp 4-component vector of float) 0:? Constant: 0:? 0.100000 0:? 0.200000 @@ -82,7 +82,7 @@ gl_FragCoord origin is upper left 0:48 Construct combined texture-sampler (temp isampler2DArrayShadow) 0:48 'g_tTex2di4a' (uniform itexture2DArray) 0:48 'g_sSamp' (layout(binding=0 ) uniform sampler) -0:48 Construct vec4 (temp float) +0:48 Construct vec4 (temp 4-component vector of float) 0:? Constant: 0:? 0.100000 0:? 0.200000 @@ -101,7 +101,7 @@ gl_FragCoord origin is upper left 0:49 Construct combined texture-sampler (temp usampler2DArrayShadow) 0:49 'g_tTex2du4a' (uniform utexture2DArray) 0:49 'g_sSamp' (layout(binding=0 ) uniform sampler) -0:49 Construct vec4 (temp float) +0:49 Construct vec4 (temp 4-component vector of float) 0:? Constant: 0:? 0.100000 0:? 0.200000 @@ -188,7 +188,7 @@ gl_FragCoord origin is upper left 0:42 Construct combined texture-sampler (temp sampler1DArrayShadow) 0:42 'g_tTex1df4a' (uniform texture1DArray) 0:42 'g_sSamp' (layout(binding=0 ) uniform sampler) -0:42 Construct vec3 (temp float) +0:42 Construct vec3 (temp 3-component vector of float) 0:? Constant: 0:? 0.100000 0:? 0.200000 @@ -205,7 +205,7 @@ gl_FragCoord origin is upper left 0:43 Construct combined texture-sampler (temp isampler1DArrayShadow) 0:43 'g_tTex1di4a' (uniform itexture1DArray) 0:43 'g_sSamp' (layout(binding=0 ) uniform sampler) -0:43 Construct vec3 (temp float) +0:43 Construct vec3 (temp 3-component vector of float) 0:? Constant: 0:? 0.100000 0:? 0.200000 @@ -222,7 +222,7 @@ gl_FragCoord origin is upper left 0:44 Construct combined texture-sampler (temp usampler1DArrayShadow) 0:44 'g_tTex1du4a' (uniform utexture1DArray) 0:44 'g_sSamp' (layout(binding=0 ) uniform sampler) -0:44 Construct vec3 (temp float) +0:44 Construct vec3 (temp 3-component vector of float) 0:? Constant: 0:? 0.100000 0:? 0.200000 @@ -239,7 +239,7 @@ gl_FragCoord origin is upper left 0:47 Construct combined texture-sampler (temp sampler2DArrayShadow) 0:47 'g_tTex2df4a' (uniform texture2DArray) 0:47 'g_sSamp' (layout(binding=0 ) uniform sampler) -0:47 Construct vec4 (temp float) +0:47 Construct vec4 (temp 4-component vector of float) 0:? Constant: 0:? 0.100000 0:? 0.200000 @@ -258,7 +258,7 @@ gl_FragCoord origin is upper left 0:48 Construct combined texture-sampler (temp isampler2DArrayShadow) 0:48 'g_tTex2di4a' (uniform itexture2DArray) 0:48 'g_sSamp' (layout(binding=0 ) uniform sampler) -0:48 Construct vec4 (temp float) +0:48 Construct vec4 (temp 4-component vector of float) 0:? Constant: 0:? 0.100000 0:? 0.200000 @@ -277,7 +277,7 @@ gl_FragCoord origin is upper left 0:49 Construct combined texture-sampler (temp usampler2DArrayShadow) 0:49 'g_tTex2du4a' (uniform utexture2DArray) 0:49 'g_sSamp' (layout(binding=0 ) uniform sampler) -0:49 Construct vec4 (temp float) +0:49 Construct vec4 (temp 4-component vector of float) 0:? Constant: 0:? 0.100000 0:? 0.200000 @@ -349,76 +349,76 @@ gl_FragCoord origin is upper left // Module Version 10000 // Generated by (magic number): 80001 -// Id's are bound by 163 +// Id's are bound by 178 Capability Shader Capability Sampled1D Capability SampledCubeArray 1: ExtInstImport "GLSL.std.450" MemoryModel Logical GLSL450 - EntryPoint Fragment 4 "main" 110 114 + EntryPoint Fragment 4 "main" 125 129 ExecutionMode 4 OriginUpperLeft Name 4 "main" Name 8 "r11" Name 11 "g_tTex1df4a" Name 15 "g_sSamp" - Name 31 "r13" - Name 34 "g_tTex1di4a" - Name 43 "r15" - Name 47 "g_tTex1du4a" - Name 56 "r31" - Name 59 "g_tTex2df4a" - Name 74 "r33" - Name 77 "g_tTex2di4a" - Name 86 "r35" - Name 89 "g_tTex2du4a" - Name 99 "PS_OUTPUT" - MemberName 99(PS_OUTPUT) 0 "Color" - MemberName 99(PS_OUTPUT) 1 "Depth" - Name 101 "psout" - Name 110 "Color" - Name 114 "Depth" - Name 120 "g_tTex1df4" - Name 123 "g_tTex1di4" - Name 126 "g_tTex1du4" - Name 129 "g_tTex2df4" - Name 132 "g_tTex2di4" - Name 135 "g_tTex2du4" - Name 138 "g_tTex3df4" - Name 141 "g_tTex3di4" - Name 144 "g_tTex3du4" - Name 147 "g_tTexcdf4" - Name 150 "g_tTexcdi4" - Name 153 "g_tTexcdu4" - Name 156 "g_tTexcdf4a" - Name 159 "g_tTexcdi4a" - Name 162 "g_tTexcdu4a" + Name 34 "r13" + Name 37 "g_tTex1di4a" + Name 48 "r15" + Name 52 "g_tTex1du4a" + Name 63 "r31" + Name 66 "g_tTex2df4a" + Name 84 "r33" + Name 87 "g_tTex2di4a" + Name 99 "r35" + Name 102 "g_tTex2du4a" + Name 114 "PS_OUTPUT" + MemberName 114(PS_OUTPUT) 0 "Color" + MemberName 114(PS_OUTPUT) 1 "Depth" + Name 116 "psout" + Name 125 "Color" + Name 129 "Depth" + Name 135 "g_tTex1df4" + Name 138 "g_tTex1di4" + Name 141 "g_tTex1du4" + Name 144 "g_tTex2df4" + Name 147 "g_tTex2di4" + Name 150 "g_tTex2du4" + Name 153 "g_tTex3df4" + Name 156 "g_tTex3di4" + Name 159 "g_tTex3du4" + Name 162 "g_tTexcdf4" + Name 165 "g_tTexcdi4" + Name 168 "g_tTexcdu4" + Name 171 "g_tTexcdf4a" + Name 174 "g_tTexcdi4a" + Name 177 "g_tTexcdu4a" Decorate 11(g_tTex1df4a) DescriptorSet 0 Decorate 15(g_sSamp) DescriptorSet 0 Decorate 15(g_sSamp) Binding 0 - Decorate 34(g_tTex1di4a) DescriptorSet 0 - Decorate 47(g_tTex1du4a) DescriptorSet 0 - Decorate 59(g_tTex2df4a) DescriptorSet 0 - Decorate 77(g_tTex2di4a) DescriptorSet 0 - Decorate 89(g_tTex2du4a) DescriptorSet 0 - Decorate 110(Color) Location 0 - Decorate 114(Depth) BuiltIn FragDepth - Decorate 120(g_tTex1df4) DescriptorSet 0 - Decorate 120(g_tTex1df4) Binding 0 - Decorate 123(g_tTex1di4) DescriptorSet 0 - Decorate 126(g_tTex1du4) DescriptorSet 0 - Decorate 129(g_tTex2df4) DescriptorSet 0 - Decorate 132(g_tTex2di4) DescriptorSet 0 - Decorate 135(g_tTex2du4) DescriptorSet 0 - Decorate 138(g_tTex3df4) DescriptorSet 0 - Decorate 141(g_tTex3di4) DescriptorSet 0 - Decorate 144(g_tTex3du4) DescriptorSet 0 - Decorate 147(g_tTexcdf4) DescriptorSet 0 - Decorate 150(g_tTexcdi4) DescriptorSet 0 - Decorate 153(g_tTexcdu4) DescriptorSet 0 - Decorate 156(g_tTexcdf4a) DescriptorSet 0 - Decorate 159(g_tTexcdi4a) DescriptorSet 0 - Decorate 162(g_tTexcdu4a) DescriptorSet 0 + Decorate 37(g_tTex1di4a) DescriptorSet 0 + Decorate 52(g_tTex1du4a) DescriptorSet 0 + Decorate 66(g_tTex2df4a) DescriptorSet 0 + Decorate 87(g_tTex2di4a) DescriptorSet 0 + Decorate 102(g_tTex2du4a) DescriptorSet 0 + Decorate 125(Color) Location 0 + Decorate 129(Depth) BuiltIn FragDepth + Decorate 135(g_tTex1df4) DescriptorSet 0 + Decorate 135(g_tTex1df4) Binding 0 + Decorate 138(g_tTex1di4) DescriptorSet 0 + Decorate 141(g_tTex1du4) DescriptorSet 0 + Decorate 144(g_tTex2df4) DescriptorSet 0 + Decorate 147(g_tTex2di4) DescriptorSet 0 + Decorate 150(g_tTex2du4) DescriptorSet 0 + Decorate 153(g_tTex3df4) DescriptorSet 0 + Decorate 156(g_tTex3di4) DescriptorSet 0 + Decorate 159(g_tTex3du4) DescriptorSet 0 + Decorate 162(g_tTexcdf4) DescriptorSet 0 + Decorate 165(g_tTexcdi4) DescriptorSet 0 + Decorate 168(g_tTexcdu4) DescriptorSet 0 + Decorate 171(g_tTexcdf4a) DescriptorSet 0 + Decorate 174(g_tTexcdi4a) DescriptorSet 0 + Decorate 177(g_tTexcdu4a) DescriptorSet 0 2: TypeVoid 3: TypeFunction 2 6: TypeFloat 32 @@ -436,158 +436,173 @@ gl_FragCoord origin is upper left 22: 6(float) Constant 1045220557 23: 20(fvec2) ConstantComposite 21 22 24: 6(float) Constant 1061158912 - 26: 6(float) Constant 0 - 27: TypeInt 32 1 - 28: 27(int) Constant 2 - 32: TypeImage 27(int) 1D array sampled format:Unknown - 33: TypePointer UniformConstant 32 - 34(g_tTex1di4a): 33(ptr) Variable UniformConstant - 37: TypeImage 27(int) 1D depth array sampled format:Unknown - 38: TypeSampledImage 37 - 44: TypeInt 32 0 - 45: TypeImage 44(int) 1D array sampled format:Unknown - 46: TypePointer UniformConstant 45 - 47(g_tTex1du4a): 46(ptr) Variable UniformConstant - 50: TypeImage 44(int) 1D depth array sampled format:Unknown - 51: TypeSampledImage 50 - 57: TypeImage 6(float) 2D array sampled format:Unknown - 58: TypePointer UniformConstant 57 - 59(g_tTex2df4a): 58(ptr) Variable UniformConstant - 62: TypeImage 6(float) 2D depth array sampled format:Unknown - 63: TypeSampledImage 62 - 65: TypeVector 6(float) 3 - 66: 6(float) Constant 1050253722 - 67: 65(fvec3) ConstantComposite 21 22 66 - 69: TypeVector 27(int) 2 - 70: 27(int) Constant 3 - 71: 69(ivec2) ConstantComposite 28 70 - 75: TypeImage 27(int) 2D array sampled format:Unknown - 76: TypePointer UniformConstant 75 - 77(g_tTex2di4a): 76(ptr) Variable UniformConstant - 80: TypeImage 27(int) 2D depth array sampled format:Unknown - 81: TypeSampledImage 80 - 87: TypeImage 44(int) 2D array sampled format:Unknown - 88: TypePointer UniformConstant 87 - 89(g_tTex2du4a): 88(ptr) Variable UniformConstant - 92: TypeImage 44(int) 2D depth array sampled format:Unknown - 93: TypeSampledImage 92 - 98: TypeVector 6(float) 4 - 99(PS_OUTPUT): TypeStruct 98(fvec4) 6(float) - 100: TypePointer Function 99(PS_OUTPUT) - 102: 27(int) Constant 0 - 103: 6(float) Constant 1065353216 - 104: 98(fvec4) ConstantComposite 103 103 103 103 - 105: TypePointer Function 98(fvec4) - 107: 27(int) Constant 1 - 109: TypePointer Output 98(fvec4) - 110(Color): 109(ptr) Variable Output - 113: TypePointer Output 6(float) - 114(Depth): 113(ptr) Variable Output - 118: TypeImage 6(float) 1D sampled format:Unknown - 119: TypePointer UniformConstant 118 - 120(g_tTex1df4): 119(ptr) Variable UniformConstant - 121: TypeImage 27(int) 1D sampled format:Unknown - 122: TypePointer UniformConstant 121 - 123(g_tTex1di4): 122(ptr) Variable UniformConstant - 124: TypeImage 44(int) 1D sampled format:Unknown - 125: TypePointer UniformConstant 124 - 126(g_tTex1du4): 125(ptr) Variable UniformConstant - 127: TypeImage 6(float) 2D sampled format:Unknown - 128: TypePointer UniformConstant 127 - 129(g_tTex2df4): 128(ptr) Variable UniformConstant - 130: TypeImage 27(int) 2D sampled format:Unknown - 131: TypePointer UniformConstant 130 - 132(g_tTex2di4): 131(ptr) Variable UniformConstant - 133: TypeImage 44(int) 2D sampled format:Unknown + 25: TypeVector 6(float) 3 + 29: 6(float) Constant 0 + 30: TypeInt 32 1 + 31: 30(int) Constant 2 + 35: TypeImage 30(int) 1D array sampled format:Unknown + 36: TypePointer UniformConstant 35 + 37(g_tTex1di4a): 36(ptr) Variable UniformConstant + 40: TypeImage 30(int) 1D depth array sampled format:Unknown + 41: TypeSampledImage 40 + 49: TypeInt 32 0 + 50: TypeImage 49(int) 1D array sampled format:Unknown + 51: TypePointer UniformConstant 50 + 52(g_tTex1du4a): 51(ptr) Variable UniformConstant + 55: TypeImage 49(int) 1D depth array sampled format:Unknown + 56: TypeSampledImage 55 + 64: TypeImage 6(float) 2D array sampled format:Unknown + 65: TypePointer UniformConstant 64 + 66(g_tTex2df4a): 65(ptr) Variable UniformConstant + 69: TypeImage 6(float) 2D depth array sampled format:Unknown + 70: TypeSampledImage 69 + 72: 6(float) Constant 1050253722 + 73: 25(fvec3) ConstantComposite 21 22 72 + 74: TypeVector 6(float) 4 + 79: TypeVector 30(int) 2 + 80: 30(int) Constant 3 + 81: 79(ivec2) ConstantComposite 31 80 + 85: TypeImage 30(int) 2D array sampled format:Unknown + 86: TypePointer UniformConstant 85 + 87(g_tTex2di4a): 86(ptr) Variable UniformConstant + 90: TypeImage 30(int) 2D depth array sampled format:Unknown + 91: TypeSampledImage 90 + 100: TypeImage 49(int) 2D array sampled format:Unknown + 101: TypePointer UniformConstant 100 +102(g_tTex2du4a): 101(ptr) Variable UniformConstant + 105: TypeImage 49(int) 2D depth array sampled format:Unknown + 106: TypeSampledImage 105 + 114(PS_OUTPUT): TypeStruct 74(fvec4) 6(float) + 115: TypePointer Function 114(PS_OUTPUT) + 117: 30(int) Constant 0 + 118: 6(float) Constant 1065353216 + 119: 74(fvec4) ConstantComposite 118 118 118 118 + 120: TypePointer Function 74(fvec4) + 122: 30(int) Constant 1 + 124: TypePointer Output 74(fvec4) + 125(Color): 124(ptr) Variable Output + 128: TypePointer Output 6(float) + 129(Depth): 128(ptr) Variable Output + 133: TypeImage 6(float) 1D sampled format:Unknown 134: TypePointer UniformConstant 133 - 135(g_tTex2du4): 134(ptr) Variable UniformConstant - 136: TypeImage 6(float) 3D sampled format:Unknown + 135(g_tTex1df4): 134(ptr) Variable UniformConstant + 136: TypeImage 30(int) 1D sampled format:Unknown 137: TypePointer UniformConstant 136 - 138(g_tTex3df4): 137(ptr) Variable UniformConstant - 139: TypeImage 27(int) 3D sampled format:Unknown + 138(g_tTex1di4): 137(ptr) Variable UniformConstant + 139: TypeImage 49(int) 1D sampled format:Unknown 140: TypePointer UniformConstant 139 - 141(g_tTex3di4): 140(ptr) Variable UniformConstant - 142: TypeImage 44(int) 3D sampled format:Unknown + 141(g_tTex1du4): 140(ptr) Variable UniformConstant + 142: TypeImage 6(float) 2D sampled format:Unknown 143: TypePointer UniformConstant 142 - 144(g_tTex3du4): 143(ptr) Variable UniformConstant - 145: TypeImage 6(float) Cube sampled format:Unknown + 144(g_tTex2df4): 143(ptr) Variable UniformConstant + 145: TypeImage 30(int) 2D sampled format:Unknown 146: TypePointer UniformConstant 145 - 147(g_tTexcdf4): 146(ptr) Variable UniformConstant - 148: TypeImage 27(int) Cube sampled format:Unknown + 147(g_tTex2di4): 146(ptr) Variable UniformConstant + 148: TypeImage 49(int) 2D sampled format:Unknown 149: TypePointer UniformConstant 148 - 150(g_tTexcdi4): 149(ptr) Variable UniformConstant - 151: TypeImage 44(int) Cube sampled format:Unknown + 150(g_tTex2du4): 149(ptr) Variable UniformConstant + 151: TypeImage 6(float) 3D sampled format:Unknown 152: TypePointer UniformConstant 151 - 153(g_tTexcdu4): 152(ptr) Variable UniformConstant - 154: TypeImage 6(float) Cube array sampled format:Unknown + 153(g_tTex3df4): 152(ptr) Variable UniformConstant + 154: TypeImage 30(int) 3D sampled format:Unknown 155: TypePointer UniformConstant 154 -156(g_tTexcdf4a): 155(ptr) Variable UniformConstant - 157: TypeImage 27(int) Cube array sampled format:Unknown + 156(g_tTex3di4): 155(ptr) Variable UniformConstant + 157: TypeImage 49(int) 3D sampled format:Unknown 158: TypePointer UniformConstant 157 -159(g_tTexcdi4a): 158(ptr) Variable UniformConstant - 160: TypeImage 44(int) Cube array sampled format:Unknown + 159(g_tTex3du4): 158(ptr) Variable UniformConstant + 160: TypeImage 6(float) Cube sampled format:Unknown 161: TypePointer UniformConstant 160 -162(g_tTexcdu4a): 161(ptr) Variable UniformConstant + 162(g_tTexcdf4): 161(ptr) Variable UniformConstant + 163: TypeImage 30(int) Cube sampled format:Unknown + 164: TypePointer UniformConstant 163 + 165(g_tTexcdi4): 164(ptr) Variable UniformConstant + 166: TypeImage 49(int) Cube sampled format:Unknown + 167: TypePointer UniformConstant 166 + 168(g_tTexcdu4): 167(ptr) Variable UniformConstant + 169: TypeImage 6(float) Cube array sampled format:Unknown + 170: TypePointer UniformConstant 169 +171(g_tTexcdf4a): 170(ptr) Variable UniformConstant + 172: TypeImage 30(int) Cube array sampled format:Unknown + 173: TypePointer UniformConstant 172 +174(g_tTexcdi4a): 173(ptr) Variable UniformConstant + 175: TypeImage 49(int) Cube array sampled format:Unknown + 176: TypePointer UniformConstant 175 +177(g_tTexcdu4a): 176(ptr) Variable UniformConstant 4(main): 2 Function None 3 5: Label 8(r11): 7(ptr) Variable Function - 31(r13): 7(ptr) Variable Function - 43(r15): 7(ptr) Variable Function - 56(r31): 7(ptr) Variable Function - 74(r33): 7(ptr) Variable Function - 86(r35): 7(ptr) Variable Function - 101(psout): 100(ptr) Variable Function + 34(r13): 7(ptr) Variable Function + 48(r15): 7(ptr) Variable Function + 63(r31): 7(ptr) Variable Function + 84(r33): 7(ptr) Variable Function + 99(r35): 7(ptr) Variable Function + 116(psout): 115(ptr) Variable Function 12: 9 Load 11(g_tTex1df4a) 16: 13 Load 15(g_sSamp) 19: 18 SampledImage 12 16 - 25: 6(float) CompositeExtract 23 0 - 29: 6(float) CompositeExtract 25 0 - 30: 6(float) ImageSampleDrefExplicitLod 19 25 29 Lod ConstOffset 26 28 - Store 8(r11) 30 - 35: 32 Load 34(g_tTex1di4a) - 36: 13 Load 15(g_sSamp) - 39: 38 SampledImage 35 36 - 40: 6(float) CompositeExtract 23 0 - 41: 6(float) CompositeExtract 40 0 - 42: 6(float) ImageSampleDrefExplicitLod 39 40 41 Lod ConstOffset 26 28 - Store 31(r13) 42 - 48: 45 Load 47(g_tTex1du4a) - 49: 13 Load 15(g_sSamp) - 52: 51 SampledImage 48 49 - 53: 6(float) CompositeExtract 23 0 - 54: 6(float) CompositeExtract 53 0 - 55: 6(float) ImageSampleDrefExplicitLod 52 53 54 Lod ConstOffset 26 28 - Store 43(r15) 55 - 60: 57 Load 59(g_tTex2df4a) - 61: 13 Load 15(g_sSamp) - 64: 63 SampledImage 60 61 - 68: 6(float) CompositeExtract 67 0 - 72: 6(float) CompositeExtract 68 0 - 73: 6(float) ImageSampleDrefExplicitLod 64 68 72 Lod ConstOffset 26 71 - Store 56(r31) 73 - 78: 75 Load 77(g_tTex2di4a) - 79: 13 Load 15(g_sSamp) - 82: 81 SampledImage 78 79 - 83: 6(float) CompositeExtract 67 0 - 84: 6(float) CompositeExtract 83 0 - 85: 6(float) ImageSampleDrefExplicitLod 82 83 84 Lod ConstOffset 26 71 - Store 74(r33) 85 - 90: 87 Load 89(g_tTex2du4a) - 91: 13 Load 15(g_sSamp) - 94: 93 SampledImage 90 91 - 95: 6(float) CompositeExtract 67 0 - 96: 6(float) CompositeExtract 95 0 - 97: 6(float) ImageSampleDrefExplicitLod 94 95 96 Lod ConstOffset 26 71 - Store 86(r35) 97 - 106: 105(ptr) AccessChain 101(psout) 102 - Store 106 104 - 108: 7(ptr) AccessChain 101(psout) 107 - Store 108 103 - 111: 105(ptr) AccessChain 101(psout) 102 - 112: 98(fvec4) Load 111 - Store 110(Color) 112 - 115: 7(ptr) AccessChain 101(psout) 107 - 116: 6(float) Load 115 - Store 114(Depth) 116 + 26: 6(float) CompositeExtract 23 0 + 27: 6(float) CompositeExtract 23 1 + 28: 25(fvec3) CompositeConstruct 26 27 24 + 32: 6(float) CompositeExtract 28 2 + 33: 6(float) ImageSampleDrefExplicitLod 19 28 32 Lod ConstOffset 29 31 + Store 8(r11) 33 + 38: 35 Load 37(g_tTex1di4a) + 39: 13 Load 15(g_sSamp) + 42: 41 SampledImage 38 39 + 43: 6(float) CompositeExtract 23 0 + 44: 6(float) CompositeExtract 23 1 + 45: 25(fvec3) CompositeConstruct 43 44 24 + 46: 6(float) CompositeExtract 45 2 + 47: 6(float) ImageSampleDrefExplicitLod 42 45 46 Lod ConstOffset 29 31 + Store 34(r13) 47 + 53: 50 Load 52(g_tTex1du4a) + 54: 13 Load 15(g_sSamp) + 57: 56 SampledImage 53 54 + 58: 6(float) CompositeExtract 23 0 + 59: 6(float) CompositeExtract 23 1 + 60: 25(fvec3) CompositeConstruct 58 59 24 + 61: 6(float) CompositeExtract 60 2 + 62: 6(float) ImageSampleDrefExplicitLod 57 60 61 Lod ConstOffset 29 31 + Store 48(r15) 62 + 67: 64 Load 66(g_tTex2df4a) + 68: 13 Load 15(g_sSamp) + 71: 70 SampledImage 67 68 + 75: 6(float) CompositeExtract 73 0 + 76: 6(float) CompositeExtract 73 1 + 77: 6(float) CompositeExtract 73 2 + 78: 74(fvec4) CompositeConstruct 75 76 77 24 + 82: 6(float) CompositeExtract 78 3 + 83: 6(float) ImageSampleDrefExplicitLod 71 78 82 Lod ConstOffset 29 81 + Store 63(r31) 83 + 88: 85 Load 87(g_tTex2di4a) + 89: 13 Load 15(g_sSamp) + 92: 91 SampledImage 88 89 + 93: 6(float) CompositeExtract 73 0 + 94: 6(float) CompositeExtract 73 1 + 95: 6(float) CompositeExtract 73 2 + 96: 74(fvec4) CompositeConstruct 93 94 95 24 + 97: 6(float) CompositeExtract 96 3 + 98: 6(float) ImageSampleDrefExplicitLod 92 96 97 Lod ConstOffset 29 81 + Store 84(r33) 98 + 103: 100 Load 102(g_tTex2du4a) + 104: 13 Load 15(g_sSamp) + 107: 106 SampledImage 103 104 + 108: 6(float) CompositeExtract 73 0 + 109: 6(float) CompositeExtract 73 1 + 110: 6(float) CompositeExtract 73 2 + 111: 74(fvec4) CompositeConstruct 108 109 110 24 + 112: 6(float) CompositeExtract 111 3 + 113: 6(float) ImageSampleDrefExplicitLod 107 111 112 Lod ConstOffset 29 81 + Store 99(r35) 113 + 121: 120(ptr) AccessChain 116(psout) 117 + Store 121 119 + 123: 7(ptr) AccessChain 116(psout) 122 + Store 123 118 + 126: 120(ptr) AccessChain 116(psout) 117 + 127: 74(fvec4) Load 126 + Store 125(Color) 127 + 130: 7(ptr) AccessChain 116(psout) 122 + 131: 6(float) Load 130 + Store 129(Depth) 131 Return FunctionEnd diff --git a/hlsl/hlslParseHelper.cpp b/hlsl/hlslParseHelper.cpp index b4c417d9..e6bf43d9 100755 --- a/hlsl/hlslParseHelper.cpp +++ b/hlsl/hlslParseHelper.cpp @@ -1496,6 +1496,10 @@ void HlslParseContext::decomposeSampleMethods(const TSourceLoc& loc, TIntermType constructCoord->getSequence().push_back(arg1); constructCoord->setLoc(loc); + // The input vector should never be less than 2, since there's always a bias. + // The max is for safety, and should be a no-op. + constructCoord->setType(TType(arg1->getBasicType(), EvqTemporary, std::max(arg1->getVectorSize() - 1, 0))); + TIntermAggregate* tex = new TIntermAggregate(EOpTexture); tex->getSequence().push_back(arg0); // sampler tex->getSequence().push_back(constructCoord); // coordinate @@ -1725,6 +1729,7 @@ void HlslParseContext::decomposeSampleMethods(const TSourceLoc& loc, TIntermType if (coordDimWithCmpVal != 5) // cube array shadow is special. coordWithCmp->getSequence().push_back(argCmpVal); coordWithCmp->setLoc(loc); + coordWithCmp->setType(TType(argCoord->getBasicType(), EvqTemporary, std::min(coordDimWithCmpVal, 4))); TOperator textureOp = (op == EOpMethodSampleCmpLevelZero ? EOpTextureLod : EOpTexture); if (argOffset != nullptr) -- cgit v1.2.3 From 8e1e717cae690e789c975b914a33f346e97799d3 Mon Sep 17 00:00:00 2001 From: Johannes van Waveren Date: Fri, 21 Oct 2016 17:21:12 +0900 Subject: fixed MSVC 2015 compile warnings --- SPIRV/GlslangToSpv.h | 4 ++++ glslang/Include/Common.h | 4 ++++ glslang/Include/intermediate.h | 5 +++++ 3 files changed, 13 insertions(+) diff --git a/SPIRV/GlslangToSpv.h b/SPIRV/GlslangToSpv.h index 97b280ca..428cfb6a 100644 --- a/SPIRV/GlslangToSpv.h +++ b/SPIRV/GlslangToSpv.h @@ -32,6 +32,10 @@ //ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE //POSSIBILITY OF SUCH DAMAGE. +#if _MSC_VER >= 1900 + #pragma warning(disable : 4464) // relative include path contains '..' +#endif + #include "../glslang/Include/intermediate.h" #include diff --git a/glslang/Include/Common.h b/glslang/Include/Common.h index efb78d44..368d8746 100644 --- a/glslang/Include/Common.h +++ b/glslang/Include/Common.h @@ -81,6 +81,10 @@ inline long long int atoll (const char* str) #pragma warning(disable : 4201) // nameless union #endif +#if _MSC_VER >= 1900 + #pragma warning(disable : 4464) // relative include path contains '..' +#endif + #include #include #include diff --git a/glslang/Include/intermediate.h b/glslang/Include/intermediate.h index d9982a3a..06869e59 100644 --- a/glslang/Include/intermediate.h +++ b/glslang/Include/intermediate.h @@ -46,6 +46,11 @@ #ifndef __INTERMEDIATE_H #define __INTERMEDIATE_H +#if _MSC_VER >= 1900 + #pragma warning( disable : 4464 ) // relative include path contains '..' + #pragma warning( disable : 5026 ) // 'glslang::TIntermUnary': move constructor was implicitly defined as deleted +#endif + #include "../Include/Common.h" #include "../Include/Types.h" #include "../Include/ConstantUnion.h" -- cgit v1.2.3 From d1300753f723925bdf2706ad038c067fd88ec728 Mon Sep 17 00:00:00 2001 From: Johannes van Waveren Date: Fri, 21 Oct 2016 17:30:50 +0900 Subject: update --- glslang/Include/Common.h | 4 ---- glslang/Include/intermediate.h | 4 ++-- 2 files changed, 2 insertions(+), 6 deletions(-) diff --git a/glslang/Include/Common.h b/glslang/Include/Common.h index 6a695d09..e082356c 100644 --- a/glslang/Include/Common.h +++ b/glslang/Include/Common.h @@ -85,10 +85,6 @@ inline long long int atoll (const char* str) #pragma warning(disable : 4201) // nameless union #endif -#if _MSC_VER >= 1900 - #pragma warning(disable : 4464) // relative include path contains '..' -#endif - #include #include #include diff --git a/glslang/Include/intermediate.h b/glslang/Include/intermediate.h index 397a8326..db61b750 100644 --- a/glslang/Include/intermediate.h +++ b/glslang/Include/intermediate.h @@ -47,8 +47,8 @@ #define __INTERMEDIATE_H #if _MSC_VER >= 1900 - #pragma warning( disable : 4464 ) // relative include path contains '..' - #pragma warning( disable : 5026 ) // 'glslang::TIntermUnary': move constructor was implicitly defined as deleted + #pragma warning(disable : 4464) // relative include path contains '..' + #pragma warning(disable : 5026) // 'glslang::TIntermUnary': move constructor was implicitly defined as deleted #endif #include "../Include/Common.h" -- cgit v1.2.3 From c8e60e28b7e50326b9675b83214206d27674c2aa Mon Sep 17 00:00:00 2001 From: Jeremy Hayes Date: Thu, 20 Oct 2016 16:12:36 -0600 Subject: WIP: apply unused variable I happened upon numArgs while hunting for unused variables. I suspect the intent was to apply it as shown in this patch. However, I am not a compiler dude. Someone more appropriate should grok this change. --- glslang/MachineIndependent/ParseHelper.cpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/glslang/MachineIndependent/ParseHelper.cpp b/glslang/MachineIndependent/ParseHelper.cpp index 71ee4f38..965cb07c 100644 --- a/glslang/MachineIndependent/ParseHelper.cpp +++ b/glslang/MachineIndependent/ParseHelper.cpp @@ -1216,7 +1216,7 @@ void TParseContext::computeBuiltinPrecisions(TIntermTyped& node, const TFunction function.getType().getQualifier().precision; } else if (TIntermAggregate* agg = node.getAsAggregate()) { TIntermSequence& sequence = agg->getSequence(); - int numArgs = (int)sequence.size(); + unsigned int numArgs = (unsigned int)sequence.size(); switch (agg->getOp()) { case EOpBitfieldExtract: numArgs = 1; @@ -1233,7 +1233,7 @@ void TParseContext::computeBuiltinPrecisions(TIntermTyped& node, const TFunction break; } // find the maximum precision from the arguments and parameters - for (unsigned int arg = 0; arg < sequence.size(); ++arg) { + for (unsigned int arg = 0; arg < numArgs; ++arg) { operationPrecision = std::max(operationPrecision, sequence[arg]->getAsTyped()->getQualifier().precision); operationPrecision = std::max(operationPrecision, function[arg].type->getQualifier().precision); } -- cgit v1.2.3 From 4e3dd2087c4b2c4b6aae9205d5cc8655bddf95d9 Mon Sep 17 00:00:00 2001 From: steve-lunarg Date: Thu, 20 Oct 2016 23:56:45 -0600 Subject: WIP: avoid strtok --- StandAlone/ResourceLimits.cpp | 220 ++++++++++++++++++++++-------------------- 1 file changed, 115 insertions(+), 105 deletions(-) diff --git a/StandAlone/ResourceLimits.cpp b/StandAlone/ResourceLimits.cpp index 8a5e6f37..10ede096 100644 --- a/StandAlone/ResourceLimits.cpp +++ b/StandAlone/ResourceLimits.cpp @@ -35,6 +35,7 @@ #include #include #include +#include #include "ResourceLimits.h" @@ -240,208 +241,217 @@ std::string GetDefaultTBuiltInResourceString() void DecodeResourceLimits(TBuiltInResource* resources, char* config) { - const char* delims = " \t\n\r"; -#pragma warning(suppress: 4996) - const char* token = strtok(config, delims); - while (token) { -#pragma warning(suppress: 4996) - const char* valueStr = strtok(0, delims); - if (valueStr == 0 || ! (valueStr[0] == '-' || (valueStr[0] >= '0' && valueStr[0] <= '9'))) { - printf("Error: '%s' bad .conf file. Each name must be followed by one number.\n", valueStr ? valueStr : ""); + static const char* delims = " \t\n\r"; + + size_t pos = 0; + std::string configStr(config); + + while ((pos = configStr.find_first_not_of(delims, pos)) != std::string::npos) { + const size_t token_s = pos; + const size_t token_e = configStr.find_first_of(delims, token_s); + const size_t value_s = configStr.find_first_not_of(delims, token_e); + const size_t value_e = configStr.find_first_of(delims, value_s); + pos = value_e; + + // Faster to use compare(), but prefering readability. + const std::string tokenStr = configStr.substr(token_s, token_e-token_s); + const std::string valueStr = configStr.substr(value_s, value_e-value_s); + + if (value_s == std::string::npos || ! (valueStr[0] == '-' || isdigit(valueStr[0]))) { + printf("Error: '%s' bad .conf file. Each name must be followed by one number.\n", + valueStr.c_str()); return; } - int value = atoi(valueStr); - if (strcmp(token, "MaxLights") == 0) + const int value = std::stoi(valueStr); + + if (tokenStr == "MaxLights") resources->maxLights = value; - else if (strcmp(token, "MaxClipPlanes") == 0) + else if (tokenStr == "MaxClipPlanes") resources->maxClipPlanes = value; - else if (strcmp(token, "MaxTextureUnits") == 0) + else if (tokenStr == "MaxTextureUnits") resources->maxTextureUnits = value; - else if (strcmp(token, "MaxTextureCoords") == 0) + else if (tokenStr == "MaxTextureCoords") resources->maxTextureCoords = value; - else if (strcmp(token, "MaxVertexAttribs") == 0) + else if (tokenStr == "MaxVertexAttribs") resources->maxVertexAttribs = value; - else if (strcmp(token, "MaxVertexUniformComponents") == 0) + else if (tokenStr == "MaxVertexUniformComponents") resources->maxVertexUniformComponents = value; - else if (strcmp(token, "MaxVaryingFloats") == 0) + else if (tokenStr == "MaxVaryingFloats") resources->maxVaryingFloats = value; - else if (strcmp(token, "MaxVertexTextureImageUnits") == 0) + else if (tokenStr == "MaxVertexTextureImageUnits") resources->maxVertexTextureImageUnits = value; - else if (strcmp(token, "MaxCombinedTextureImageUnits") == 0) + else if (tokenStr == "MaxCombinedTextureImageUnits") resources->maxCombinedTextureImageUnits = value; - else if (strcmp(token, "MaxTextureImageUnits") == 0) + else if (tokenStr == "MaxTextureImageUnits") resources->maxTextureImageUnits = value; - else if (strcmp(token, "MaxFragmentUniformComponents") == 0) + else if (tokenStr == "MaxFragmentUniformComponents") resources->maxFragmentUniformComponents = value; - else if (strcmp(token, "MaxDrawBuffers") == 0) + else if (tokenStr == "MaxDrawBuffers") resources->maxDrawBuffers = value; - else if (strcmp(token, "MaxVertexUniformVectors") == 0) + else if (tokenStr == "MaxVertexUniformVectors") resources->maxVertexUniformVectors = value; - else if (strcmp(token, "MaxVaryingVectors") == 0) + else if (tokenStr == "MaxVaryingVectors") resources->maxVaryingVectors = value; - else if (strcmp(token, "MaxFragmentUniformVectors") == 0) + else if (tokenStr == "MaxFragmentUniformVectors") resources->maxFragmentUniformVectors = value; - else if (strcmp(token, "MaxVertexOutputVectors") == 0) + else if (tokenStr == "MaxVertexOutputVectors") resources->maxVertexOutputVectors = value; - else if (strcmp(token, "MaxFragmentInputVectors") == 0) + else if (tokenStr == "MaxFragmentInputVectors") resources->maxFragmentInputVectors = value; - else if (strcmp(token, "MinProgramTexelOffset") == 0) + else if (tokenStr == "MinProgramTexelOffset") resources->minProgramTexelOffset = value; - else if (strcmp(token, "MaxProgramTexelOffset") == 0) + else if (tokenStr == "MaxProgramTexelOffset") resources->maxProgramTexelOffset = value; - else if (strcmp(token, "MaxClipDistances") == 0) + else if (tokenStr == "MaxClipDistances") resources->maxClipDistances = value; - else if (strcmp(token, "MaxComputeWorkGroupCountX") == 0) + else if (tokenStr == "MaxComputeWorkGroupCountX") resources->maxComputeWorkGroupCountX = value; - else if (strcmp(token, "MaxComputeWorkGroupCountY") == 0) + else if (tokenStr == "MaxComputeWorkGroupCountY") resources->maxComputeWorkGroupCountY = value; - else if (strcmp(token, "MaxComputeWorkGroupCountZ") == 0) + else if (tokenStr == "MaxComputeWorkGroupCountZ") resources->maxComputeWorkGroupCountZ = value; - else if (strcmp(token, "MaxComputeWorkGroupSizeX") == 0) + else if (tokenStr == "MaxComputeWorkGroupSizeX") resources->maxComputeWorkGroupSizeX = value; - else if (strcmp(token, "MaxComputeWorkGroupSizeY") == 0) + else if (tokenStr == "MaxComputeWorkGroupSizeY") resources->maxComputeWorkGroupSizeY = value; - else if (strcmp(token, "MaxComputeWorkGroupSizeZ") == 0) + else if (tokenStr == "MaxComputeWorkGroupSizeZ") resources->maxComputeWorkGroupSizeZ = value; - else if (strcmp(token, "MaxComputeUniformComponents") == 0) + else if (tokenStr == "MaxComputeUniformComponents") resources->maxComputeUniformComponents = value; - else if (strcmp(token, "MaxComputeTextureImageUnits") == 0) + else if (tokenStr == "MaxComputeTextureImageUnits") resources->maxComputeTextureImageUnits = value; - else if (strcmp(token, "MaxComputeImageUniforms") == 0) + else if (tokenStr == "MaxComputeImageUniforms") resources->maxComputeImageUniforms = value; - else if (strcmp(token, "MaxComputeAtomicCounters") == 0) + else if (tokenStr == "MaxComputeAtomicCounters") resources->maxComputeAtomicCounters = value; - else if (strcmp(token, "MaxComputeAtomicCounterBuffers") == 0) + else if (tokenStr == "MaxComputeAtomicCounterBuffers") resources->maxComputeAtomicCounterBuffers = value; - else if (strcmp(token, "MaxVaryingComponents") == 0) + else if (tokenStr == "MaxVaryingComponents") resources->maxVaryingComponents = value; - else if (strcmp(token, "MaxVertexOutputComponents") == 0) + else if (tokenStr == "MaxVertexOutputComponents") resources->maxVertexOutputComponents = value; - else if (strcmp(token, "MaxGeometryInputComponents") == 0) + else if (tokenStr == "MaxGeometryInputComponents") resources->maxGeometryInputComponents = value; - else if (strcmp(token, "MaxGeometryOutputComponents") == 0) + else if (tokenStr == "MaxGeometryOutputComponents") resources->maxGeometryOutputComponents = value; - else if (strcmp(token, "MaxFragmentInputComponents") == 0) + else if (tokenStr == "MaxFragmentInputComponents") resources->maxFragmentInputComponents = value; - else if (strcmp(token, "MaxImageUnits") == 0) + else if (tokenStr == "MaxImageUnits") resources->maxImageUnits = value; - else if (strcmp(token, "MaxCombinedImageUnitsAndFragmentOutputs") == 0) + else if (tokenStr == "MaxCombinedImageUnitsAndFragmentOutputs") resources->maxCombinedImageUnitsAndFragmentOutputs = value; - else if (strcmp(token, "MaxCombinedShaderOutputResources") == 0) + else if (tokenStr == "MaxCombinedShaderOutputResources") resources->maxCombinedShaderOutputResources = value; - else if (strcmp(token, "MaxImageSamples") == 0) + else if (tokenStr == "MaxImageSamples") resources->maxImageSamples = value; - else if (strcmp(token, "MaxVertexImageUniforms") == 0) + else if (tokenStr == "MaxVertexImageUniforms") resources->maxVertexImageUniforms = value; - else if (strcmp(token, "MaxTessControlImageUniforms") == 0) + else if (tokenStr == "MaxTessControlImageUniforms") resources->maxTessControlImageUniforms = value; - else if (strcmp(token, "MaxTessEvaluationImageUniforms") == 0) + else if (tokenStr == "MaxTessEvaluationImageUniforms") resources->maxTessEvaluationImageUniforms = value; - else if (strcmp(token, "MaxGeometryImageUniforms") == 0) + else if (tokenStr == "MaxGeometryImageUniforms") resources->maxGeometryImageUniforms = value; - else if (strcmp(token, "MaxFragmentImageUniforms") == 0) + else if (tokenStr == "MaxFragmentImageUniforms") resources->maxFragmentImageUniforms = value; - else if (strcmp(token, "MaxCombinedImageUniforms") == 0) + else if (tokenStr == "MaxCombinedImageUniforms") resources->maxCombinedImageUniforms = value; - else if (strcmp(token, "MaxGeometryTextureImageUnits") == 0) + else if (tokenStr == "MaxGeometryTextureImageUnits") resources->maxGeometryTextureImageUnits = value; - else if (strcmp(token, "MaxGeometryOutputVertices") == 0) + else if (tokenStr == "MaxGeometryOutputVertices") resources->maxGeometryOutputVertices = value; - else if (strcmp(token, "MaxGeometryTotalOutputComponents") == 0) + else if (tokenStr == "MaxGeometryTotalOutputComponents") resources->maxGeometryTotalOutputComponents = value; - else if (strcmp(token, "MaxGeometryUniformComponents") == 0) + else if (tokenStr == "MaxGeometryUniformComponents") resources->maxGeometryUniformComponents = value; - else if (strcmp(token, "MaxGeometryVaryingComponents") == 0) + else if (tokenStr == "MaxGeometryVaryingComponents") resources->maxGeometryVaryingComponents = value; - else if (strcmp(token, "MaxTessControlInputComponents") == 0) + else if (tokenStr == "MaxTessControlInputComponents") resources->maxTessControlInputComponents = value; - else if (strcmp(token, "MaxTessControlOutputComponents") == 0) + else if (tokenStr == "MaxTessControlOutputComponents") resources->maxTessControlOutputComponents = value; - else if (strcmp(token, "MaxTessControlTextureImageUnits") == 0) + else if (tokenStr == "MaxTessControlTextureImageUnits") resources->maxTessControlTextureImageUnits = value; - else if (strcmp(token, "MaxTessControlUniformComponents") == 0) + else if (tokenStr == "MaxTessControlUniformComponents") resources->maxTessControlUniformComponents = value; - else if (strcmp(token, "MaxTessControlTotalOutputComponents") == 0) + else if (tokenStr == "MaxTessControlTotalOutputComponents") resources->maxTessControlTotalOutputComponents = value; - else if (strcmp(token, "MaxTessEvaluationInputComponents") == 0) + else if (tokenStr == "MaxTessEvaluationInputComponents") resources->maxTessEvaluationInputComponents = value; - else if (strcmp(token, "MaxTessEvaluationOutputComponents") == 0) + else if (tokenStr == "MaxTessEvaluationOutputComponents") resources->maxTessEvaluationOutputComponents = value; - else if (strcmp(token, "MaxTessEvaluationTextureImageUnits") == 0) + else if (tokenStr == "MaxTessEvaluationTextureImageUnits") resources->maxTessEvaluationTextureImageUnits = value; - else if (strcmp(token, "MaxTessEvaluationUniformComponents") == 0) + else if (tokenStr == "MaxTessEvaluationUniformComponents") resources->maxTessEvaluationUniformComponents = value; - else if (strcmp(token, "MaxTessPatchComponents") == 0) + else if (tokenStr == "MaxTessPatchComponents") resources->maxTessPatchComponents = value; - else if (strcmp(token, "MaxPatchVertices") == 0) + else if (tokenStr == "MaxPatchVertices") resources->maxPatchVertices = value; - else if (strcmp(token, "MaxTessGenLevel") == 0) + else if (tokenStr == "MaxTessGenLevel") resources->maxTessGenLevel = value; - else if (strcmp(token, "MaxViewports") == 0) + else if (tokenStr == "MaxViewports") resources->maxViewports = value; - else if (strcmp(token, "MaxVertexAtomicCounters") == 0) + else if (tokenStr == "MaxVertexAtomicCounters") resources->maxVertexAtomicCounters = value; - else if (strcmp(token, "MaxTessControlAtomicCounters") == 0) + else if (tokenStr == "MaxTessControlAtomicCounters") resources->maxTessControlAtomicCounters = value; - else if (strcmp(token, "MaxTessEvaluationAtomicCounters") == 0) + else if (tokenStr == "MaxTessEvaluationAtomicCounters") resources->maxTessEvaluationAtomicCounters = value; - else if (strcmp(token, "MaxGeometryAtomicCounters") == 0) + else if (tokenStr == "MaxGeometryAtomicCounters") resources->maxGeometryAtomicCounters = value; - else if (strcmp(token, "MaxFragmentAtomicCounters") == 0) + else if (tokenStr == "MaxFragmentAtomicCounters") resources->maxFragmentAtomicCounters = value; - else if (strcmp(token, "MaxCombinedAtomicCounters") == 0) + else if (tokenStr == "MaxCombinedAtomicCounters") resources->maxCombinedAtomicCounters = value; - else if (strcmp(token, "MaxAtomicCounterBindings") == 0) + else if (tokenStr == "MaxAtomicCounterBindings") resources->maxAtomicCounterBindings = value; - else if (strcmp(token, "MaxVertexAtomicCounterBuffers") == 0) + else if (tokenStr == "MaxVertexAtomicCounterBuffers") resources->maxVertexAtomicCounterBuffers = value; - else if (strcmp(token, "MaxTessControlAtomicCounterBuffers") == 0) + else if (tokenStr == "MaxTessControlAtomicCounterBuffers") resources->maxTessControlAtomicCounterBuffers = value; - else if (strcmp(token, "MaxTessEvaluationAtomicCounterBuffers") == 0) + else if (tokenStr == "MaxTessEvaluationAtomicCounterBuffers") resources->maxTessEvaluationAtomicCounterBuffers = value; - else if (strcmp(token, "MaxGeometryAtomicCounterBuffers") == 0) + else if (tokenStr == "MaxGeometryAtomicCounterBuffers") resources->maxGeometryAtomicCounterBuffers = value; - else if (strcmp(token, "MaxFragmentAtomicCounterBuffers") == 0) + else if (tokenStr == "MaxFragmentAtomicCounterBuffers") resources->maxFragmentAtomicCounterBuffers = value; - else if (strcmp(token, "MaxCombinedAtomicCounterBuffers") == 0) + else if (tokenStr == "MaxCombinedAtomicCounterBuffers") resources->maxCombinedAtomicCounterBuffers = value; - else if (strcmp(token, "MaxAtomicCounterBufferSize") == 0) + else if (tokenStr == "MaxAtomicCounterBufferSize") resources->maxAtomicCounterBufferSize = value; - else if (strcmp(token, "MaxTransformFeedbackBuffers") == 0) + else if (tokenStr == "MaxTransformFeedbackBuffers") resources->maxTransformFeedbackBuffers = value; - else if (strcmp(token, "MaxTransformFeedbackInterleavedComponents") == 0) + else if (tokenStr == "MaxTransformFeedbackInterleavedComponents") resources->maxTransformFeedbackInterleavedComponents = value; - else if (strcmp(token, "MaxCullDistances") == 0) + else if (tokenStr == "MaxCullDistances") resources->maxCullDistances = value; - else if (strcmp(token, "MaxCombinedClipAndCullDistances") == 0) + else if (tokenStr == "MaxCombinedClipAndCullDistances") resources->maxCombinedClipAndCullDistances = value; - else if (strcmp(token, "MaxSamples") == 0) + else if (tokenStr == "MaxSamples") resources->maxSamples = value; - - else if (strcmp(token, "nonInductiveForLoops") == 0) + else if (tokenStr == "nonInductiveForLoops") resources->limits.nonInductiveForLoops = (value != 0); - else if (strcmp(token, "whileLoops") == 0) + else if (tokenStr == "whileLoops") resources->limits.whileLoops = (value != 0); - else if (strcmp(token, "doWhileLoops") == 0) + else if (tokenStr == "doWhileLoops") resources->limits.doWhileLoops = (value != 0); - else if (strcmp(token, "generalUniformIndexing") == 0) + else if (tokenStr == "generalUniformIndexing") resources->limits.generalUniformIndexing = (value != 0); - else if (strcmp(token, "generalAttributeMatrixVectorIndexing") == 0) + else if (tokenStr == "generalAttributeMatrixVectorIndexing") resources->limits.generalAttributeMatrixVectorIndexing = (value != 0); - else if (strcmp(token, "generalVaryingIndexing") == 0) + else if (tokenStr == "generalVaryingIndexing") resources->limits.generalVaryingIndexing = (value != 0); - else if (strcmp(token, "generalSamplerIndexing") == 0) + else if (tokenStr == "generalSamplerIndexing") resources->limits.generalSamplerIndexing = (value != 0); - else if (strcmp(token, "generalVariableIndexing") == 0) + else if (tokenStr == "generalVariableIndexing") resources->limits.generalVariableIndexing = (value != 0); - else if (strcmp(token, "generalConstantMatrixVectorIndexing") == 0) + else if (tokenStr == "generalConstantMatrixVectorIndexing") resources->limits.generalConstantMatrixVectorIndexing = (value != 0); else - printf("Warning: unrecognized limit (%s) in configuration file.\n", token); + printf("Warning: unrecognized limit (%s) in configuration file.\n", tokenStr.c_str()); -#pragma warning(suppress: 4996) - token = strtok(0, delims); } } -- cgit v1.2.3 From 85244d74860c9c9c381a951dd8c11572e5d804da Mon Sep 17 00:00:00 2001 From: steve-lunarg Date: Fri, 21 Oct 2016 16:43:38 -0600 Subject: HLSL: Enable component-wise vector comparisons from operators This PR only changes a few lines of code, but is subtle. In HLSL, comparison operators (<,>,<=,>=,==,!=) operate component-wise when given a vector operand. If a whole vector equality or inequality is desired, then all() or any() can be used on the resulting bool vector. This PR enables this change. Existing shape conversion is used when one of the two arguments is a vector and one is a scalar. Some existing HLSL tests had assumed == and != meant vector-wise instead of component-wise comparisons. These tests have been changed to add an explicit any() or all() to the test source. This verifably does not change the final SPIR-V binary relative to the old behavior for == and !=. The AST does change for the (now explicit, formerly implicit) any() and all(). Also, a few tests changes where they previously had the return type wrong, e.g, from a vec < vec comparison in hlsl.shapeConv.frag. Promotion of comparison opcodes to vector forms (EOpEqual->EOpVectorEqual) is handled in promoteBinary(), as is setting the proper vector type of the result. EOpVectorEqual and EOpVectorNotEqual are now accepted as either aggregate or binary nodes, similar to how the other operators are handled. Partial support already existed for this: it has been fleshed out in the printing functions in intermOut.cpp. There is an existing defect around shape conversion with 1-vectors, but that is orthogonal to this PR and not addressed by it. --- Test/baseResults/hlsl.comparison.vec.frag.out | 401 ++++++++++++++++++++++++++ Test/baseResults/hlsl.doLoop.frag.out | 14 +- Test/baseResults/hlsl.forLoop.frag.out | 42 +-- Test/baseResults/hlsl.if.frag.out | 84 +++--- Test/baseResults/hlsl.shapeConv.frag.out | 151 +++++----- Test/baseResults/hlsl.whileLoop.frag.out | 14 +- Test/hlsl.comparison.vec.frag | 34 +++ Test/hlsl.doLoop.frag | 2 +- Test/hlsl.forLoop.frag | 6 +- Test/hlsl.if.frag | 12 +- Test/hlsl.shapeConv.frag | 4 +- Test/hlsl.whileLoop.frag | 2 +- glslang/MachineIndependent/Intermediate.cpp | 21 +- glslang/MachineIndependent/intermOut.cpp | 2 + gtests/Hlsl.FromFile.cpp | 1 + 15 files changed, 635 insertions(+), 155 deletions(-) create mode 100644 Test/baseResults/hlsl.comparison.vec.frag.out create mode 100644 Test/hlsl.comparison.vec.frag diff --git a/Test/baseResults/hlsl.comparison.vec.frag.out b/Test/baseResults/hlsl.comparison.vec.frag.out new file mode 100644 index 00000000..8a31f63f --- /dev/null +++ b/Test/baseResults/hlsl.comparison.vec.frag.out @@ -0,0 +1,401 @@ +hlsl.comparison.vec.frag +Shader version: 450 +gl_FragCoord origin is upper left +0:? Sequence +0:4 Function Definition: Bug1(vf4; (temp void) +0:4 Function Parameters: +0:4 'a' (in 4-component vector of float) +0:? Sequence +0:5 Sequence +0:5 move second child to first child (temp 4-component vector of float) +0:5 'v04' (temp 4-component vector of float) +0:? Constant: +0:? 0.000000 +0:? 0.000000 +0:? 0.000000 +0:? 0.000000 +0:6 Sequence +0:6 move second child to first child (temp float) +0:6 'v01' (temp float) +0:6 Constant: +0:6 0.000000 +0:8 Sequence +0:8 move second child to first child (temp 4-component vector of bool) +0:8 'r00' (temp 4-component vector of bool) +0:8 Equal (temp 4-component vector of bool) +0:8 'a' (in 4-component vector of float) +0:8 'v04' (temp 4-component vector of float) +0:9 Sequence +0:9 move second child to first child (temp 4-component vector of bool) +0:9 'r01' (temp 4-component vector of bool) +0:9 NotEqual (temp 4-component vector of bool) +0:9 'a' (in 4-component vector of float) +0:9 'v04' (temp 4-component vector of float) +0:10 Sequence +0:10 move second child to first child (temp 4-component vector of bool) +0:10 'r02' (temp 4-component vector of bool) +0:10 Compare Less Than (temp 4-component vector of bool) +0:10 'a' (in 4-component vector of float) +0:10 'v04' (temp 4-component vector of float) +0:11 Sequence +0:11 move second child to first child (temp 4-component vector of bool) +0:11 'r03' (temp 4-component vector of bool) +0:11 Compare Greater Than (temp 4-component vector of bool) +0:11 'a' (in 4-component vector of float) +0:11 'v04' (temp 4-component vector of float) +0:13 Sequence +0:13 move second child to first child (temp 4-component vector of bool) +0:13 'r10' (temp 4-component vector of bool) +0:13 Equal (temp 4-component vector of bool) +0:13 'a' (in 4-component vector of float) +0:13 Construct vec4 (in 4-component vector of float) +0:13 'v01' (temp float) +0:14 Sequence +0:14 move second child to first child (temp 4-component vector of bool) +0:14 'r11' (temp 4-component vector of bool) +0:14 NotEqual (temp 4-component vector of bool) +0:14 'a' (in 4-component vector of float) +0:14 Construct vec4 (in 4-component vector of float) +0:14 'v01' (temp float) +0:15 Sequence +0:15 move second child to first child (temp 4-component vector of bool) +0:15 'r12' (temp 4-component vector of bool) +0:15 Compare Less Than (temp 4-component vector of bool) +0:15 'a' (in 4-component vector of float) +0:15 Construct vec4 (in 4-component vector of float) +0:15 'v01' (temp float) +0:16 Sequence +0:16 move second child to first child (temp 4-component vector of bool) +0:16 'r13' (temp 4-component vector of bool) +0:16 Compare Greater Than (temp 4-component vector of bool) +0:16 'a' (in 4-component vector of float) +0:16 Construct vec4 (in 4-component vector of float) +0:16 'v01' (temp float) +0:18 Sequence +0:18 move second child to first child (temp 4-component vector of bool) +0:18 'r20' (temp 4-component vector of bool) +0:18 Equal (temp 4-component vector of bool) +0:18 Construct vec4 (in 4-component vector of float) +0:18 'v01' (temp float) +0:18 'a' (in 4-component vector of float) +0:19 Sequence +0:19 move second child to first child (temp 4-component vector of bool) +0:19 'r21' (temp 4-component vector of bool) +0:19 NotEqual (temp 4-component vector of bool) +0:19 Construct vec4 (in 4-component vector of float) +0:19 'v01' (temp float) +0:19 'a' (in 4-component vector of float) +0:20 Sequence +0:20 move second child to first child (temp 4-component vector of bool) +0:20 'r22' (temp 4-component vector of bool) +0:20 Compare Less Than (temp 4-component vector of bool) +0:20 Construct vec4 (in 4-component vector of float) +0:20 'v01' (temp float) +0:20 'a' (in 4-component vector of float) +0:21 Sequence +0:21 move second child to first child (temp 4-component vector of bool) +0:21 'r23' (temp 4-component vector of bool) +0:21 Compare Greater Than (temp 4-component vector of bool) +0:21 Construct vec4 (in 4-component vector of float) +0:21 'v01' (temp float) +0:21 'a' (in 4-component vector of float) +0:30 Function Definition: main( (temp structure{temp 4-component vector of float Color}) +0:30 Function Parameters: +0:? Sequence +0:32 move second child to first child (temp 4-component vector of float) +0:32 Color: direct index for structure (temp 4-component vector of float) +0:32 'psout' (temp structure{temp 4-component vector of float Color}) +0:32 Constant: +0:32 0 (const int) +0:32 Constant: +0:32 0.000000 +0:32 0.000000 +0:32 0.000000 +0:32 0.000000 +0:33 Sequence +0:33 Sequence +0:33 move second child to first child (temp 4-component vector of float) +0:? 'Color' (layout(location=0 ) out 4-component vector of float) +0:33 Color: direct index for structure (temp 4-component vector of float) +0:33 'psout' (temp structure{temp 4-component vector of float Color}) +0:33 Constant: +0:33 0 (const int) +0:33 Branch: Return +0:? Linker Objects +0:? 'anon@0' (uniform block{layout(offset=0 ) uniform 4-component vector of float uf4}) +0:? 'Color' (layout(location=0 ) out 4-component vector of float) + + +Linked fragment stage: + + +Shader version: 450 +gl_FragCoord origin is upper left +0:? Sequence +0:4 Function Definition: Bug1(vf4; (temp void) +0:4 Function Parameters: +0:4 'a' (in 4-component vector of float) +0:? Sequence +0:5 Sequence +0:5 move second child to first child (temp 4-component vector of float) +0:5 'v04' (temp 4-component vector of float) +0:? Constant: +0:? 0.000000 +0:? 0.000000 +0:? 0.000000 +0:? 0.000000 +0:6 Sequence +0:6 move second child to first child (temp float) +0:6 'v01' (temp float) +0:6 Constant: +0:6 0.000000 +0:8 Sequence +0:8 move second child to first child (temp 4-component vector of bool) +0:8 'r00' (temp 4-component vector of bool) +0:8 Equal (temp 4-component vector of bool) +0:8 'a' (in 4-component vector of float) +0:8 'v04' (temp 4-component vector of float) +0:9 Sequence +0:9 move second child to first child (temp 4-component vector of bool) +0:9 'r01' (temp 4-component vector of bool) +0:9 NotEqual (temp 4-component vector of bool) +0:9 'a' (in 4-component vector of float) +0:9 'v04' (temp 4-component vector of float) +0:10 Sequence +0:10 move second child to first child (temp 4-component vector of bool) +0:10 'r02' (temp 4-component vector of bool) +0:10 Compare Less Than (temp 4-component vector of bool) +0:10 'a' (in 4-component vector of float) +0:10 'v04' (temp 4-component vector of float) +0:11 Sequence +0:11 move second child to first child (temp 4-component vector of bool) +0:11 'r03' (temp 4-component vector of bool) +0:11 Compare Greater Than (temp 4-component vector of bool) +0:11 'a' (in 4-component vector of float) +0:11 'v04' (temp 4-component vector of float) +0:13 Sequence +0:13 move second child to first child (temp 4-component vector of bool) +0:13 'r10' (temp 4-component vector of bool) +0:13 Equal (temp 4-component vector of bool) +0:13 'a' (in 4-component vector of float) +0:13 Construct vec4 (in 4-component vector of float) +0:13 'v01' (temp float) +0:14 Sequence +0:14 move second child to first child (temp 4-component vector of bool) +0:14 'r11' (temp 4-component vector of bool) +0:14 NotEqual (temp 4-component vector of bool) +0:14 'a' (in 4-component vector of float) +0:14 Construct vec4 (in 4-component vector of float) +0:14 'v01' (temp float) +0:15 Sequence +0:15 move second child to first child (temp 4-component vector of bool) +0:15 'r12' (temp 4-component vector of bool) +0:15 Compare Less Than (temp 4-component vector of bool) +0:15 'a' (in 4-component vector of float) +0:15 Construct vec4 (in 4-component vector of float) +0:15 'v01' (temp float) +0:16 Sequence +0:16 move second child to first child (temp 4-component vector of bool) +0:16 'r13' (temp 4-component vector of bool) +0:16 Compare Greater Than (temp 4-component vector of bool) +0:16 'a' (in 4-component vector of float) +0:16 Construct vec4 (in 4-component vector of float) +0:16 'v01' (temp float) +0:18 Sequence +0:18 move second child to first child (temp 4-component vector of bool) +0:18 'r20' (temp 4-component vector of bool) +0:18 Equal (temp 4-component vector of bool) +0:18 Construct vec4 (in 4-component vector of float) +0:18 'v01' (temp float) +0:18 'a' (in 4-component vector of float) +0:19 Sequence +0:19 move second child to first child (temp 4-component vector of bool) +0:19 'r21' (temp 4-component vector of bool) +0:19 NotEqual (temp 4-component vector of bool) +0:19 Construct vec4 (in 4-component vector of float) +0:19 'v01' (temp float) +0:19 'a' (in 4-component vector of float) +0:20 Sequence +0:20 move second child to first child (temp 4-component vector of bool) +0:20 'r22' (temp 4-component vector of bool) +0:20 Compare Less Than (temp 4-component vector of bool) +0:20 Construct vec4 (in 4-component vector of float) +0:20 'v01' (temp float) +0:20 'a' (in 4-component vector of float) +0:21 Sequence +0:21 move second child to first child (temp 4-component vector of bool) +0:21 'r23' (temp 4-component vector of bool) +0:21 Compare Greater Than (temp 4-component vector of bool) +0:21 Construct vec4 (in 4-component vector of float) +0:21 'v01' (temp float) +0:21 'a' (in 4-component vector of float) +0:30 Function Definition: main( (temp structure{temp 4-component vector of float Color}) +0:30 Function Parameters: +0:? Sequence +0:32 move second child to first child (temp 4-component vector of float) +0:32 Color: direct index for structure (temp 4-component vector of float) +0:32 'psout' (temp structure{temp 4-component vector of float Color}) +0:32 Constant: +0:32 0 (const int) +0:32 Constant: +0:32 0.000000 +0:32 0.000000 +0:32 0.000000 +0:32 0.000000 +0:33 Sequence +0:33 Sequence +0:33 move second child to first child (temp 4-component vector of float) +0:? 'Color' (layout(location=0 ) out 4-component vector of float) +0:33 Color: direct index for structure (temp 4-component vector of float) +0:33 'psout' (temp structure{temp 4-component vector of float Color}) +0:33 Constant: +0:33 0 (const int) +0:33 Branch: Return +0:? Linker Objects +0:? 'anon@0' (uniform block{layout(offset=0 ) uniform 4-component vector of float uf4}) +0:? 'Color' (layout(location=0 ) out 4-component vector of float) + +// Module Version 10000 +// Generated by (magic number): 80001 +// Id's are bound by 91 + + Capability Shader + 1: ExtInstImport "GLSL.std.450" + MemoryModel Logical GLSL450 + EntryPoint Fragment 4 "main" 84 + ExecutionMode 4 OriginUpperLeft + Name 4 "main" + Name 11 "Bug1(vf4;" + Name 10 "a" + Name 13 "v04" + Name 17 "v01" + Name 21 "r00" + Name 25 "r01" + Name 29 "r02" + Name 33 "r03" + Name 37 "r10" + Name 42 "r11" + Name 47 "r12" + Name 52 "r13" + Name 57 "r20" + Name 62 "r21" + Name 67 "r22" + Name 72 "r23" + Name 77 "PS_OUTPUT" + MemberName 77(PS_OUTPUT) 0 "Color" + Name 79 "psout" + Name 84 "Color" + Name 88 "$Global" + MemberName 88($Global) 0 "uf4" + Name 90 "" + Decorate 84(Color) Location 0 + Decorate 88($Global) Block + Decorate 90 DescriptorSet 0 + 2: TypeVoid + 3: TypeFunction 2 + 6: TypeFloat 32 + 7: TypeVector 6(float) 4 + 8: TypePointer Function 7(fvec4) + 9: TypeFunction 2 8(ptr) + 14: 6(float) Constant 0 + 15: 7(fvec4) ConstantComposite 14 14 14 14 + 16: TypePointer Function 6(float) + 18: TypeBool + 19: TypeVector 18(bool) 4 + 20: TypePointer Function 19(bvec4) + 77(PS_OUTPUT): TypeStruct 7(fvec4) + 78: TypePointer Function 77(PS_OUTPUT) + 80: TypeInt 32 1 + 81: 80(int) Constant 0 + 83: TypePointer Output 7(fvec4) + 84(Color): 83(ptr) Variable Output + 88($Global): TypeStruct 7(fvec4) + 89: TypePointer Uniform 88($Global) + 90: 89(ptr) Variable Uniform + 4(main): 2 Function None 3 + 5: Label + 79(psout): 78(ptr) Variable Function + 82: 8(ptr) AccessChain 79(psout) 81 + Store 82 15 + 85: 8(ptr) AccessChain 79(psout) 81 + 86: 7(fvec4) Load 85 + Store 84(Color) 86 + Return + FunctionEnd + 11(Bug1(vf4;): 2 Function None 9 + 10(a): 8(ptr) FunctionParameter + 12: Label + 13(v04): 8(ptr) Variable Function + 17(v01): 16(ptr) Variable Function + 21(r00): 20(ptr) Variable Function + 25(r01): 20(ptr) Variable Function + 29(r02): 20(ptr) Variable Function + 33(r03): 20(ptr) Variable Function + 37(r10): 20(ptr) Variable Function + 42(r11): 20(ptr) Variable Function + 47(r12): 20(ptr) Variable Function + 52(r13): 20(ptr) Variable Function + 57(r20): 20(ptr) Variable Function + 62(r21): 20(ptr) Variable Function + 67(r22): 20(ptr) Variable Function + 72(r23): 20(ptr) Variable Function + Store 13(v04) 15 + Store 17(v01) 14 + 22: 7(fvec4) Load 10(a) + 23: 7(fvec4) Load 13(v04) + 24: 19(bvec4) FOrdEqual 22 23 + Store 21(r00) 24 + 26: 7(fvec4) Load 10(a) + 27: 7(fvec4) Load 13(v04) + 28: 19(bvec4) FOrdNotEqual 26 27 + Store 25(r01) 28 + 30: 7(fvec4) Load 10(a) + 31: 7(fvec4) Load 13(v04) + 32: 19(bvec4) FOrdLessThan 30 31 + Store 29(r02) 32 + 34: 7(fvec4) Load 10(a) + 35: 7(fvec4) Load 13(v04) + 36: 19(bvec4) FOrdGreaterThan 34 35 + Store 33(r03) 36 + 38: 7(fvec4) Load 10(a) + 39: 6(float) Load 17(v01) + 40: 7(fvec4) CompositeConstruct 39 39 39 39 + 41: 19(bvec4) FOrdEqual 38 40 + Store 37(r10) 41 + 43: 7(fvec4) Load 10(a) + 44: 6(float) Load 17(v01) + 45: 7(fvec4) CompositeConstruct 44 44 44 44 + 46: 19(bvec4) FOrdNotEqual 43 45 + Store 42(r11) 46 + 48: 7(fvec4) Load 10(a) + 49: 6(float) Load 17(v01) + 50: 7(fvec4) CompositeConstruct 49 49 49 49 + 51: 19(bvec4) FOrdLessThan 48 50 + Store 47(r12) 51 + 53: 7(fvec4) Load 10(a) + 54: 6(float) Load 17(v01) + 55: 7(fvec4) CompositeConstruct 54 54 54 54 + 56: 19(bvec4) FOrdGreaterThan 53 55 + Store 52(r13) 56 + 58: 6(float) Load 17(v01) + 59: 7(fvec4) CompositeConstruct 58 58 58 58 + 60: 7(fvec4) Load 10(a) + 61: 19(bvec4) FOrdEqual 59 60 + Store 57(r20) 61 + 63: 6(float) Load 17(v01) + 64: 7(fvec4) CompositeConstruct 63 63 63 63 + 65: 7(fvec4) Load 10(a) + 66: 19(bvec4) FOrdNotEqual 64 65 + Store 62(r21) 66 + 68: 6(float) Load 17(v01) + 69: 7(fvec4) CompositeConstruct 68 68 68 68 + 70: 7(fvec4) Load 10(a) + 71: 19(bvec4) FOrdLessThan 69 70 + Store 67(r22) 71 + 73: 6(float) Load 17(v01) + 74: 7(fvec4) CompositeConstruct 73 73 73 73 + 75: 7(fvec4) Load 10(a) + 76: 19(bvec4) FOrdGreaterThan 74 75 + Store 72(r23) 76 + Return + FunctionEnd diff --git a/Test/baseResults/hlsl.doLoop.frag.out b/Test/baseResults/hlsl.doLoop.frag.out index 2d5a8fbf..0e49caf1 100755 --- a/Test/baseResults/hlsl.doLoop.frag.out +++ b/Test/baseResults/hlsl.doLoop.frag.out @@ -18,9 +18,10 @@ gl_FragCoord origin is upper left 0:4 No loop body 0:5 Loop with condition not tested first 0:5 Loop Condition -0:5 Compare Equal (temp bool) -0:5 'input' (layout(location=0 ) in 4-component vector of float) -0:5 'input' (layout(location=0 ) in 4-component vector of float) +0:5 all (global bool) +0:5 Equal (temp 4-component vector of bool) +0:5 'input' (layout(location=0 ) in 4-component vector of float) +0:5 'input' (layout(location=0 ) in 4-component vector of float) 0:5 Loop Body 0:5 Sequence 0:5 move second child to first child (temp 4-component vector of float) @@ -54,9 +55,10 @@ gl_FragCoord origin is upper left 0:4 No loop body 0:5 Loop with condition not tested first 0:5 Loop Condition -0:5 Compare Equal (temp bool) -0:5 'input' (layout(location=0 ) in 4-component vector of float) -0:5 'input' (layout(location=0 ) in 4-component vector of float) +0:5 all (global bool) +0:5 Equal (temp 4-component vector of bool) +0:5 'input' (layout(location=0 ) in 4-component vector of float) +0:5 'input' (layout(location=0 ) in 4-component vector of float) 0:5 Loop Body 0:5 Sequence 0:5 move second child to first child (temp 4-component vector of float) diff --git a/Test/baseResults/hlsl.forLoop.frag.out b/Test/baseResults/hlsl.forLoop.frag.out index cc475784..26697725 100755 --- a/Test/baseResults/hlsl.forLoop.frag.out +++ b/Test/baseResults/hlsl.forLoop.frag.out @@ -19,16 +19,18 @@ gl_FragCoord origin is upper left 0:? Sequence 0:5 Loop with condition tested first 0:5 Loop Condition -0:5 Compare Not Equal (temp bool) -0:5 'input' (layout(location=0 ) in 4-component vector of float) -0:5 'input' (layout(location=0 ) in 4-component vector of float) +0:5 any (global bool) +0:5 NotEqual (temp 4-component vector of bool) +0:5 'input' (layout(location=0 ) in 4-component vector of float) +0:5 'input' (layout(location=0 ) in 4-component vector of float) 0:5 No loop body 0:? Sequence 0:6 Loop with condition tested first 0:6 Loop Condition -0:6 Compare Not Equal (temp bool) -0:6 'input' (layout(location=0 ) in 4-component vector of float) -0:6 'input' (layout(location=0 ) in 4-component vector of float) +0:6 any (global bool) +0:6 NotEqual (temp 4-component vector of bool) +0:6 'input' (layout(location=0 ) in 4-component vector of float) +0:6 'input' (layout(location=0 ) in 4-component vector of float) 0:6 Loop Body 0:? Sequence 0:6 Sequence @@ -42,9 +44,10 @@ gl_FragCoord origin is upper left 0:7 'input' (layout(location=0 ) in 4-component vector of float) 0:7 Loop with condition tested first 0:7 Loop Condition -0:7 Compare Not Equal (temp bool) -0:7 'input' (layout(location=0 ) in 4-component vector of float) -0:7 'input' (layout(location=0 ) in 4-component vector of float) +0:7 any (global bool) +0:7 NotEqual (temp 4-component vector of bool) +0:7 'input' (layout(location=0 ) in 4-component vector of float) +0:7 'input' (layout(location=0 ) in 4-component vector of float) 0:7 Loop Body 0:? Sequence 0:7 Sequence @@ -141,16 +144,18 @@ gl_FragCoord origin is upper left 0:? Sequence 0:5 Loop with condition tested first 0:5 Loop Condition -0:5 Compare Not Equal (temp bool) -0:5 'input' (layout(location=0 ) in 4-component vector of float) -0:5 'input' (layout(location=0 ) in 4-component vector of float) +0:5 any (global bool) +0:5 NotEqual (temp 4-component vector of bool) +0:5 'input' (layout(location=0 ) in 4-component vector of float) +0:5 'input' (layout(location=0 ) in 4-component vector of float) 0:5 No loop body 0:? Sequence 0:6 Loop with condition tested first 0:6 Loop Condition -0:6 Compare Not Equal (temp bool) -0:6 'input' (layout(location=0 ) in 4-component vector of float) -0:6 'input' (layout(location=0 ) in 4-component vector of float) +0:6 any (global bool) +0:6 NotEqual (temp 4-component vector of bool) +0:6 'input' (layout(location=0 ) in 4-component vector of float) +0:6 'input' (layout(location=0 ) in 4-component vector of float) 0:6 Loop Body 0:? Sequence 0:6 Sequence @@ -164,9 +169,10 @@ gl_FragCoord origin is upper left 0:7 'input' (layout(location=0 ) in 4-component vector of float) 0:7 Loop with condition tested first 0:7 Loop Condition -0:7 Compare Not Equal (temp bool) -0:7 'input' (layout(location=0 ) in 4-component vector of float) -0:7 'input' (layout(location=0 ) in 4-component vector of float) +0:7 any (global bool) +0:7 NotEqual (temp 4-component vector of bool) +0:7 'input' (layout(location=0 ) in 4-component vector of float) +0:7 'input' (layout(location=0 ) in 4-component vector of float) 0:7 Loop Body 0:? Sequence 0:7 Sequence diff --git a/Test/baseResults/hlsl.if.frag.out b/Test/baseResults/hlsl.if.frag.out index 3b329ae1..ce9b5619 100755 --- a/Test/baseResults/hlsl.if.frag.out +++ b/Test/baseResults/hlsl.if.frag.out @@ -8,9 +8,10 @@ gl_FragCoord origin is upper left 0:? Sequence 0:3 Test condition and select (temp void) 0:3 Condition -0:3 Compare Equal (temp bool) -0:3 'input' (layout(location=0 ) in 4-component vector of float) -0:3 'input' (layout(location=0 ) in 4-component vector of float) +0:3 all (global bool) +0:3 Equal (temp 4-component vector of bool) +0:3 'input' (layout(location=0 ) in 4-component vector of float) +0:3 'input' (layout(location=0 ) in 4-component vector of float) 0:3 true case 0:4 Sequence 0:4 move second child to first child (temp 4-component vector of float) @@ -19,9 +20,10 @@ gl_FragCoord origin is upper left 0:4 Branch: Return 0:6 Test condition and select (temp void) 0:6 Condition -0:6 Compare Equal (temp bool) -0:6 'input' (layout(location=0 ) in 4-component vector of float) -0:6 'input' (layout(location=0 ) in 4-component vector of float) +0:6 all (global bool) +0:6 Equal (temp 4-component vector of bool) +0:6 'input' (layout(location=0 ) in 4-component vector of float) +0:6 'input' (layout(location=0 ) in 4-component vector of float) 0:6 true case 0:7 Sequence 0:7 move second child to first child (temp 4-component vector of float) @@ -37,21 +39,24 @@ gl_FragCoord origin is upper left 0:9 Branch: Return 0:11 Test condition and select (temp void) 0:11 Condition -0:11 Compare Equal (temp bool) -0:11 'input' (layout(location=0 ) in 4-component vector of float) -0:11 'input' (layout(location=0 ) in 4-component vector of float) +0:11 all (global bool) +0:11 Equal (temp 4-component vector of bool) +0:11 'input' (layout(location=0 ) in 4-component vector of float) +0:11 'input' (layout(location=0 ) in 4-component vector of float) 0:11 true case is null 0:14 Test condition and select (temp void) 0:14 Condition -0:14 Compare Equal (temp bool) -0:14 'input' (layout(location=0 ) in 4-component vector of float) -0:14 'input' (layout(location=0 ) in 4-component vector of float) +0:14 all (global bool) +0:14 Equal (temp 4-component vector of bool) +0:14 'input' (layout(location=0 ) in 4-component vector of float) +0:14 'input' (layout(location=0 ) in 4-component vector of float) 0:14 true case is null 0:19 Test condition and select (temp void) 0:19 Condition -0:19 Compare Equal (temp bool) -0:19 'input' (layout(location=0 ) in 4-component vector of float) -0:19 'input' (layout(location=0 ) in 4-component vector of float) +0:19 all (global bool) +0:19 Equal (temp 4-component vector of bool) +0:19 'input' (layout(location=0 ) in 4-component vector of float) +0:19 'input' (layout(location=0 ) in 4-component vector of float) 0:19 true case 0:? Sequence 0:20 Sequence @@ -61,9 +66,10 @@ gl_FragCoord origin is upper left 0:20 Branch: Return 0:23 Test condition and select (temp void) 0:23 Condition -0:23 Compare Equal (temp bool) -0:23 'input' (layout(location=0 ) in 4-component vector of float) -0:23 'input' (layout(location=0 ) in 4-component vector of float) +0:23 all (global bool) +0:23 Equal (temp 4-component vector of bool) +0:23 'input' (layout(location=0 ) in 4-component vector of float) +0:23 'input' (layout(location=0 ) in 4-component vector of float) 0:23 true case 0:? Sequence 0:24 Sequence @@ -109,9 +115,10 @@ gl_FragCoord origin is upper left 0:? Sequence 0:3 Test condition and select (temp void) 0:3 Condition -0:3 Compare Equal (temp bool) -0:3 'input' (layout(location=0 ) in 4-component vector of float) -0:3 'input' (layout(location=0 ) in 4-component vector of float) +0:3 all (global bool) +0:3 Equal (temp 4-component vector of bool) +0:3 'input' (layout(location=0 ) in 4-component vector of float) +0:3 'input' (layout(location=0 ) in 4-component vector of float) 0:3 true case 0:4 Sequence 0:4 move second child to first child (temp 4-component vector of float) @@ -120,9 +127,10 @@ gl_FragCoord origin is upper left 0:4 Branch: Return 0:6 Test condition and select (temp void) 0:6 Condition -0:6 Compare Equal (temp bool) -0:6 'input' (layout(location=0 ) in 4-component vector of float) -0:6 'input' (layout(location=0 ) in 4-component vector of float) +0:6 all (global bool) +0:6 Equal (temp 4-component vector of bool) +0:6 'input' (layout(location=0 ) in 4-component vector of float) +0:6 'input' (layout(location=0 ) in 4-component vector of float) 0:6 true case 0:7 Sequence 0:7 move second child to first child (temp 4-component vector of float) @@ -138,21 +146,24 @@ gl_FragCoord origin is upper left 0:9 Branch: Return 0:11 Test condition and select (temp void) 0:11 Condition -0:11 Compare Equal (temp bool) -0:11 'input' (layout(location=0 ) in 4-component vector of float) -0:11 'input' (layout(location=0 ) in 4-component vector of float) +0:11 all (global bool) +0:11 Equal (temp 4-component vector of bool) +0:11 'input' (layout(location=0 ) in 4-component vector of float) +0:11 'input' (layout(location=0 ) in 4-component vector of float) 0:11 true case is null 0:14 Test condition and select (temp void) 0:14 Condition -0:14 Compare Equal (temp bool) -0:14 'input' (layout(location=0 ) in 4-component vector of float) -0:14 'input' (layout(location=0 ) in 4-component vector of float) +0:14 all (global bool) +0:14 Equal (temp 4-component vector of bool) +0:14 'input' (layout(location=0 ) in 4-component vector of float) +0:14 'input' (layout(location=0 ) in 4-component vector of float) 0:14 true case is null 0:19 Test condition and select (temp void) 0:19 Condition -0:19 Compare Equal (temp bool) -0:19 'input' (layout(location=0 ) in 4-component vector of float) -0:19 'input' (layout(location=0 ) in 4-component vector of float) +0:19 all (global bool) +0:19 Equal (temp 4-component vector of bool) +0:19 'input' (layout(location=0 ) in 4-component vector of float) +0:19 'input' (layout(location=0 ) in 4-component vector of float) 0:19 true case 0:? Sequence 0:20 Sequence @@ -162,9 +173,10 @@ gl_FragCoord origin is upper left 0:20 Branch: Return 0:23 Test condition and select (temp void) 0:23 Condition -0:23 Compare Equal (temp bool) -0:23 'input' (layout(location=0 ) in 4-component vector of float) -0:23 'input' (layout(location=0 ) in 4-component vector of float) +0:23 all (global bool) +0:23 Equal (temp 4-component vector of bool) +0:23 'input' (layout(location=0 ) in 4-component vector of float) +0:23 'input' (layout(location=0 ) in 4-component vector of float) 0:23 true case 0:? Sequence 0:24 Sequence diff --git a/Test/baseResults/hlsl.shapeConv.frag.out b/Test/baseResults/hlsl.shapeConv.frag.out index 9ea4f839..0f2f9448 100755 --- a/Test/baseResults/hlsl.shapeConv.frag.out +++ b/Test/baseResults/hlsl.shapeConv.frag.out @@ -58,41 +58,43 @@ gl_FragCoord origin is upper left 0:13 'MyVal' (temp 3-component vector of float) 0:13 Construct vec3 (temp 3-component vector of float) 0:13 'V' (temp float) -0:16 Compare Greater Than (temp bool) +0:16 Compare Greater Than (temp 3-component vector of bool) 0:16 'foo' (temp 3-component vector of float) 0:16 Constant: 0:16 4.000000 0:16 4.000000 0:16 4.000000 -0:17 Compare Greater Than or Equal (temp bool) +0:17 Compare Greater Than or Equal (temp 3-component vector of bool) 0:17 'foo' (temp 3-component vector of float) 0:17 Constant: 0:17 5.000000 0:17 5.000000 0:17 5.000000 -0:18 Compare Less Than (temp bool) +0:18 Compare Less Than (temp 3-component vector of bool) 0:18 Constant: 0:18 6.000000 0:18 6.000000 0:18 6.000000 0:18 'foo' (temp 3-component vector of float) -0:19 Compare Less Than or Equal (temp bool) +0:19 Compare Less Than or Equal (temp 3-component vector of bool) 0:19 Constant: 0:19 7.000000 0:19 7.000000 0:19 7.000000 0:19 'foo' (temp 3-component vector of float) -0:21 Compare Equal (temp bool) -0:21 Construct vec4 (temp 4-component vector of float) -0:21 direct index (temp float) -0:21 'v' (temp 4-component vector of float) -0:21 Constant: -0:21 0 (const int) -0:21 'v' (temp 4-component vector of float) -0:22 Compare Not Equal (temp bool) -0:22 Construct vec4 (temp 4-component vector of float) -0:22 'f' (in float) -0:22 'v' (temp 4-component vector of float) +0:21 all (global bool) +0:21 Equal (temp 4-component vector of bool) +0:21 Construct vec4 (temp 4-component vector of float) +0:21 direct index (temp float) +0:21 'v' (temp 4-component vector of float) +0:21 Constant: +0:21 0 (const int) +0:21 'v' (temp 4-component vector of float) +0:22 any (global bool) +0:22 NotEqual (temp 4-component vector of bool) +0:22 Construct vec4 (temp 4-component vector of float) +0:22 'f' (in float) +0:22 'v' (temp 4-component vector of float) 0:26 Compare Equal (temp bool) 0:26 'f1' (temp 1-component vector of float) 0:26 Construct float (temp 1-component vector of float) @@ -173,41 +175,43 @@ gl_FragCoord origin is upper left 0:13 'MyVal' (temp 3-component vector of float) 0:13 Construct vec3 (temp 3-component vector of float) 0:13 'V' (temp float) -0:16 Compare Greater Than (temp bool) +0:16 Compare Greater Than (temp 3-component vector of bool) 0:16 'foo' (temp 3-component vector of float) 0:16 Constant: 0:16 4.000000 0:16 4.000000 0:16 4.000000 -0:17 Compare Greater Than or Equal (temp bool) +0:17 Compare Greater Than or Equal (temp 3-component vector of bool) 0:17 'foo' (temp 3-component vector of float) 0:17 Constant: 0:17 5.000000 0:17 5.000000 0:17 5.000000 -0:18 Compare Less Than (temp bool) +0:18 Compare Less Than (temp 3-component vector of bool) 0:18 Constant: 0:18 6.000000 0:18 6.000000 0:18 6.000000 0:18 'foo' (temp 3-component vector of float) -0:19 Compare Less Than or Equal (temp bool) +0:19 Compare Less Than or Equal (temp 3-component vector of bool) 0:19 Constant: 0:19 7.000000 0:19 7.000000 0:19 7.000000 0:19 'foo' (temp 3-component vector of float) -0:21 Compare Equal (temp bool) -0:21 Construct vec4 (temp 4-component vector of float) -0:21 direct index (temp float) -0:21 'v' (temp 4-component vector of float) -0:21 Constant: -0:21 0 (const int) -0:21 'v' (temp 4-component vector of float) -0:22 Compare Not Equal (temp bool) -0:22 Construct vec4 (temp 4-component vector of float) -0:22 'f' (in float) -0:22 'v' (temp 4-component vector of float) +0:21 all (global bool) +0:21 Equal (temp 4-component vector of bool) +0:21 Construct vec4 (temp 4-component vector of float) +0:21 direct index (temp float) +0:21 'v' (temp 4-component vector of float) +0:21 Constant: +0:21 0 (const int) +0:21 'v' (temp 4-component vector of float) +0:22 any (global bool) +0:22 NotEqual (temp 4-component vector of bool) +0:22 Construct vec4 (temp 4-component vector of float) +0:22 'f' (in float) +0:22 'v' (temp 4-component vector of float) 0:26 Compare Equal (temp bool) 0:26 'f1' (temp 1-component vector of float) 0:26 Construct float (temp 1-component vector of float) @@ -227,7 +231,7 @@ gl_FragCoord origin is upper left // Module Version 10000 // Generated by (magic number): 80001 -// Id's are bound by 84 +// Id's are bound by 85 Capability Shader 1: ExtInstImport "GLSL.std.450" @@ -244,7 +248,7 @@ gl_FragCoord origin is upper left Name 33 "V" Name 34 "MyVal" Name 37 "foo" - Name 69 "f1" + Name 70 "f1" 2: TypeVoid 3: TypeFunction 2 6: TypeFloat 32 @@ -266,15 +270,16 @@ gl_FragCoord origin is upper left 39: 6(float) Constant 1082130432 40: 22(fvec3) ConstantComposite 39 39 39 41: TypeBool - 44: 6(float) Constant 1084227584 - 45: 22(fvec3) ConstantComposite 44 44 44 - 47: 6(float) Constant 1086324736 - 48: 22(fvec3) ConstantComposite 47 47 47 - 51: 6(float) Constant 1088421888 - 52: 22(fvec3) ConstantComposite 51 51 51 - 55: TypeInt 32 0 - 56: 55(int) Constant 0 - 61: TypeVector 41(bool) 4 + 42: TypeVector 41(bool) 3 + 45: 6(float) Constant 1084227584 + 46: 22(fvec3) ConstantComposite 45 45 45 + 48: 6(float) Constant 1086324736 + 49: 22(fvec3) ConstantComposite 48 48 48 + 52: 6(float) Constant 1088421888 + 53: 22(fvec3) ConstantComposite 52 52 52 + 56: TypeInt 32 0 + 57: 56(int) Constant 0 + 62: TypeVector 41(bool) 4 4(main): 2 Function None 3 5: Label FunctionEnd @@ -288,7 +293,7 @@ gl_FragCoord origin is upper left 33(V): 9(ptr) Variable Function 34(MyVal): 23(ptr) Variable Function 37(foo): 23(ptr) Variable Function - 69(f1): 9(ptr) Variable Function + 70(f1): 9(ptr) Variable Function Store 15(v) 17 Store 15(v) 19 20: 6(float) Load 12(f) @@ -305,35 +310,35 @@ gl_FragCoord origin is upper left 36: 22(fvec3) CompositeConstruct 35 35 35 Store 34(MyVal) 36 38: 22(fvec3) Load 37(foo) - 42: 41(bool) FOrdGreaterThan 38 40 - 43: 22(fvec3) Load 37(foo) - 46: 41(bool) FOrdGreaterThanEqual 43 45 - 49: 22(fvec3) Load 37(foo) - 50: 41(bool) FOrdLessThan 48 49 - 53: 22(fvec3) Load 37(foo) - 54: 41(bool) FOrdLessThanEqual 52 53 - 57: 9(ptr) AccessChain 15(v) 56 - 58: 6(float) Load 57 - 59: 7(fvec4) CompositeConstruct 58 58 58 58 - 60: 7(fvec4) Load 15(v) - 62: 61(bvec4) FOrdEqual 59 60 - 63: 41(bool) All 62 - 64: 6(float) Load 12(f) - 65: 7(fvec4) CompositeConstruct 64 64 64 64 - 66: 7(fvec4) Load 15(v) - 67: 61(bvec4) FOrdNotEqual 65 66 - 68: 41(bool) Any 67 - 70: 6(float) Load 69(f1) - 71: 7(fvec4) Load 15(v) - 72: 6(float) CompositeExtract 71 0 - 73: 41(bool) FOrdEqual 70 72 - 74: 7(fvec4) Load 15(v) - 75: 6(float) CompositeExtract 74 0 - 76: 6(float) Load 69(f1) - 77: 41(bool) FOrdLessThan 75 76 - 78: 6(float) Load 69(f1) - 79: 6(float) Load 69(f1) - 80: 22(fvec3) CompositeConstruct 79 79 79 - 81: 7(fvec4) Load 11(input) - ReturnValue 81 + 43: 42(bvec3) FOrdGreaterThan 38 40 + 44: 22(fvec3) Load 37(foo) + 47: 42(bvec3) FOrdGreaterThanEqual 44 46 + 50: 22(fvec3) Load 37(foo) + 51: 42(bvec3) FOrdLessThan 49 50 + 54: 22(fvec3) Load 37(foo) + 55: 42(bvec3) FOrdLessThanEqual 53 54 + 58: 9(ptr) AccessChain 15(v) 57 + 59: 6(float) Load 58 + 60: 7(fvec4) CompositeConstruct 59 59 59 59 + 61: 7(fvec4) Load 15(v) + 63: 62(bvec4) FOrdEqual 60 61 + 64: 41(bool) All 63 + 65: 6(float) Load 12(f) + 66: 7(fvec4) CompositeConstruct 65 65 65 65 + 67: 7(fvec4) Load 15(v) + 68: 62(bvec4) FOrdNotEqual 66 67 + 69: 41(bool) Any 68 + 71: 6(float) Load 70(f1) + 72: 7(fvec4) Load 15(v) + 73: 6(float) CompositeExtract 72 0 + 74: 41(bool) FOrdEqual 71 73 + 75: 7(fvec4) Load 15(v) + 76: 6(float) CompositeExtract 75 0 + 77: 6(float) Load 70(f1) + 78: 41(bool) FOrdLessThan 76 77 + 79: 6(float) Load 70(f1) + 80: 6(float) Load 70(f1) + 81: 22(fvec3) CompositeConstruct 80 80 80 + 82: 7(fvec4) Load 11(input) + ReturnValue 82 FunctionEnd diff --git a/Test/baseResults/hlsl.whileLoop.frag.out b/Test/baseResults/hlsl.whileLoop.frag.out index 28e326d2..eab2ba5c 100755 --- a/Test/baseResults/hlsl.whileLoop.frag.out +++ b/Test/baseResults/hlsl.whileLoop.frag.out @@ -8,9 +8,10 @@ gl_FragCoord origin is upper left 0:? Sequence 0:3 Loop with condition tested first 0:3 Loop Condition -0:3 Compare Not Equal (temp bool) -0:3 'input' (layout(location=0 ) in 4-component vector of float) -0:3 'input' (layout(location=0 ) in 4-component vector of float) +0:3 any (global bool) +0:3 NotEqual (temp 4-component vector of bool) +0:3 'input' (layout(location=0 ) in 4-component vector of float) +0:3 'input' (layout(location=0 ) in 4-component vector of float) 0:3 Loop Body 0:? Sequence 0:3 Sequence @@ -50,9 +51,10 @@ gl_FragCoord origin is upper left 0:? Sequence 0:3 Loop with condition tested first 0:3 Loop Condition -0:3 Compare Not Equal (temp bool) -0:3 'input' (layout(location=0 ) in 4-component vector of float) -0:3 'input' (layout(location=0 ) in 4-component vector of float) +0:3 any (global bool) +0:3 NotEqual (temp 4-component vector of bool) +0:3 'input' (layout(location=0 ) in 4-component vector of float) +0:3 'input' (layout(location=0 ) in 4-component vector of float) 0:3 Loop Body 0:? Sequence 0:3 Sequence diff --git a/Test/hlsl.comparison.vec.frag b/Test/hlsl.comparison.vec.frag new file mode 100644 index 00000000..b8f93c9f --- /dev/null +++ b/Test/hlsl.comparison.vec.frag @@ -0,0 +1,34 @@ +uniform float4 uf4; + +void Bug1( float4 a ) +{ + float4 v04 = float4( 0.0, 0.0, 0.0, 0.0 ); + float v01 = 0.0; + + bool4 r00 = a == v04; + bool4 r01 = a != v04; + bool4 r02 = a < v04; + bool4 r03 = a > v04; + + bool4 r10 = a == v01; + bool4 r11 = a != v01; + bool4 r12 = a < v01; + bool4 r13 = a > v01; + + bool4 r20 = v01 == a; + bool4 r21 = v01 != a; + bool4 r22 = v01 < a; + bool4 r23 = v01 > a; +} + +struct PS_OUTPUT +{ + float4 Color : SV_Target0; +}; + +PS_OUTPUT main() +{ + PS_OUTPUT psout; + psout.Color = 0; + return psout; +} diff --git a/Test/hlsl.doLoop.frag b/Test/hlsl.doLoop.frag index 546b2c2c..251a8c12 100644 --- a/Test/hlsl.doLoop.frag +++ b/Test/hlsl.doLoop.frag @@ -2,5 +2,5 @@ float4 PixelShaderFunction(float4 input) : COLOR0 { [unroll] do {} while (false); [unroll] do {;} while (false); - do { return input; } while (input == input); + do { return input; } while (all(input == input)); } diff --git a/Test/hlsl.forLoop.frag b/Test/hlsl.forLoop.frag index 2495e6e1..93789967 100644 --- a/Test/hlsl.forLoop.frag +++ b/Test/hlsl.forLoop.frag @@ -2,9 +2,9 @@ float4 PixelShaderFunction(float4 input) : COLOR0 { for (;;) ; for (++input; ; ) ; - [unroll] for (; input != input; ) {} - for (; input != input; ) { return -input; } - for (--input; input != input; input += 2) { return -input; } + [unroll] for (; any(input != input); ) {} + for (; any(input != input); ) { return -input; } + for (--input; any(input != input); input += 2) { return -input; } for (;;) if (input.x > 2.0) break; for (;;) if (input.x > 2.0) continue; float ii; diff --git a/Test/hlsl.if.frag b/Test/hlsl.if.frag index 1f6dc415..ba659e6d 100644 --- a/Test/hlsl.if.frag +++ b/Test/hlsl.if.frag @@ -1,26 +1,26 @@ float4 PixelShaderFunction(float4 input) : COLOR0 { - if (input == input) + if (all(input == input)) return input; - if (input == input) + if (all(input == input)) return input; else return -input; - if (input == input) + if (all(input == input)) ; - if (input == input) + if (all(input == input)) ; else ; - [flatten] if (input == input) { + [flatten] if (all(input == input)) { return input; } - if (input == input) { + if (all(input == input)) { return input; } else { return -input; diff --git a/Test/hlsl.shapeConv.frag b/Test/hlsl.shapeConv.frag index 0485b4a5..adb170ea 100644 --- a/Test/hlsl.shapeConv.frag +++ b/Test/hlsl.shapeConv.frag @@ -18,8 +18,8 @@ float4 PixelShaderFunction(float4 input, float f) : COLOR0 6.0 < foo; 7.0 <= foo; - v.x == v; - f != v; + all(v.x == v); + any(f != v); float1 f1; diff --git a/Test/hlsl.whileLoop.frag b/Test/hlsl.whileLoop.frag index f282375d..e4084ae7 100644 --- a/Test/hlsl.whileLoop.frag +++ b/Test/hlsl.whileLoop.frag @@ -1,6 +1,6 @@ float4 PixelShaderFunction(float4 input) : COLOR0 { - while (input != input) { return input; } + while (any(input != input)) { return input; } while (false) ; [unroll] while (false) { } while ((false)) { } diff --git a/glslang/MachineIndependent/Intermediate.cpp b/glslang/MachineIndependent/Intermediate.cpp index 758ae4f2..a313b54d 100644 --- a/glslang/MachineIndependent/Intermediate.cpp +++ b/glslang/MachineIndependent/Intermediate.cpp @@ -1892,13 +1892,26 @@ bool TIntermediate::promoteBinary(TIntermBinary& node) // Relational comparisons need numeric types and will promote to scalar Boolean. if (left->getBasicType() == EbtBool) return false; - node.setType(TType(EbtBool)); + + node.setType(TType(EbtBool, EvqTemporary, left->getVectorSize())); break; case EOpEqual: case EOpNotEqual: - // All the above comparisons result in a bool (but not the vector compares) - node.setType(TType(EbtBool)); + if (getSource() == EShSourceHlsl) { + const int resultWidth = std::max(left->getVectorSize(), right->getVectorSize()); + + // In HLSL, == or != on vectors means component-wise comparison. + if (resultWidth > 1) { + op = (op == EOpEqual) ? EOpVectorEqual : EOpVectorNotEqual; + node.setOp(op); + } + + node.setType(TType(EbtBool, EvqTemporary, resultWidth)); + } else { + // All the above comparisons result in a bool (but not the vector compares) + node.setType(TType(EbtBool)); + } break; case EOpLogicalAnd: @@ -1973,6 +1986,8 @@ bool TIntermediate::promoteBinary(TIntermBinary& node) case EOpEqual: case EOpNotEqual: + case EOpVectorEqual: + case EOpVectorNotEqual: case EOpLogicalAnd: case EOpLogicalOr: diff --git a/glslang/MachineIndependent/intermOut.cpp b/glslang/MachineIndependent/intermOut.cpp index bd64f199..f8c963b7 100644 --- a/glslang/MachineIndependent/intermOut.cpp +++ b/glslang/MachineIndependent/intermOut.cpp @@ -163,6 +163,8 @@ bool TOutputTraverser::visitBinary(TVisit /* visit */, TIntermBinary* node) case EOpGreaterThan: out.debug << "Compare Greater Than"; break; case EOpLessThanEqual: out.debug << "Compare Less Than or Equal"; break; case EOpGreaterThanEqual: out.debug << "Compare Greater Than or Equal"; break; + case EOpVectorEqual: out.debug << "Equal"; break; + case EOpVectorNotEqual: out.debug << "NotEqual"; break; case EOpVectorTimesScalar: out.debug << "vector-scale"; break; case EOpVectorTimesMatrix: out.debug << "vector-times-matrix"; break; diff --git a/gtests/Hlsl.FromFile.cpp b/gtests/Hlsl.FromFile.cpp index 0291b040..24ef4813 100644 --- a/gtests/Hlsl.FromFile.cpp +++ b/gtests/Hlsl.FromFile.cpp @@ -91,6 +91,7 @@ INSTANTIATE_TEST_CASE_P( {"hlsl.calculatelod.dx10.frag", "main"}, {"hlsl.calculatelodunclamped.dx10.frag", "main"}, {"hlsl.cast.frag", "PixelShaderFunction"}, + {"hlsl.comparison.vec.frag", "main"}, {"hlsl.conditional.frag", "PixelShaderFunction"}, {"hlsl.constructexpr.frag", "main"}, {"hlsl.depthGreater.frag", "PixelShaderFunction"}, -- cgit v1.2.3 From 27939caa86b1191ef87eebc3d952e19479ca23b1 Mon Sep 17 00:00:00 2001 From: steve-lunarg Date: Wed, 26 Oct 2016 12:42:49 -0600 Subject: HLSL: allow component-wise operations for logical || and &&. HLSL || and && can operate component-wise. --- Test/baseResults/hlsl.logical.binary.vec.frag.out | 412 ++++++++++++++++++++++ Test/hlsl.logical.binary.vec.frag | 24 ++ glslang/MachineIndependent/Intermediate.cpp | 12 +- gtests/Hlsl.FromFile.cpp | 1 + 4 files changed, 445 insertions(+), 4 deletions(-) create mode 100644 Test/baseResults/hlsl.logical.binary.vec.frag.out create mode 100644 Test/hlsl.logical.binary.vec.frag diff --git a/Test/baseResults/hlsl.logical.binary.vec.frag.out b/Test/baseResults/hlsl.logical.binary.vec.frag.out new file mode 100644 index 00000000..2ada44a3 --- /dev/null +++ b/Test/baseResults/hlsl.logical.binary.vec.frag.out @@ -0,0 +1,412 @@ +hlsl.logical.binary.vec.frag +Shader version: 450 +gl_FragCoord origin is upper left +0:? Sequence +0:10 Function Definition: main( (temp structure{temp 4-component vector of float Color}) +0:10 Function Parameters: +0:? Sequence +0:11 Sequence +0:11 move second child to first child (temp 4-component vector of bool) +0:11 'r00' (temp 4-component vector of bool) +0:11 Negate conditional (temp 4-component vector of bool) +0:11 b4a: direct index for structure (layout(offset=0 ) uniform 4-component vector of bool) +0:11 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 4-component vector of bool b4a, layout(offset=16 ) uniform 4-component vector of bool b4b, layout(offset=32 ) uniform bool b1a, layout(offset=36 ) uniform bool b1b}) +0:11 Constant: +0:11 0 (const uint) +0:12 Sequence +0:12 move second child to first child (temp 4-component vector of bool) +0:12 'r01' (temp 4-component vector of bool) +0:12 logical-and (temp 4-component vector of bool) +0:12 b4a: direct index for structure (layout(offset=0 ) uniform 4-component vector of bool) +0:12 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 4-component vector of bool b4a, layout(offset=16 ) uniform 4-component vector of bool b4b, layout(offset=32 ) uniform bool b1a, layout(offset=36 ) uniform bool b1b}) +0:12 Constant: +0:12 0 (const uint) +0:12 b4b: direct index for structure (layout(offset=16 ) uniform 4-component vector of bool) +0:12 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 4-component vector of bool b4a, layout(offset=16 ) uniform 4-component vector of bool b4b, layout(offset=32 ) uniform bool b1a, layout(offset=36 ) uniform bool b1b}) +0:12 Constant: +0:12 1 (const uint) +0:13 Sequence +0:13 move second child to first child (temp 4-component vector of bool) +0:13 'r02' (temp 4-component vector of bool) +0:13 logical-or (temp 4-component vector of bool) +0:13 b4a: direct index for structure (layout(offset=0 ) uniform 4-component vector of bool) +0:13 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 4-component vector of bool b4a, layout(offset=16 ) uniform 4-component vector of bool b4b, layout(offset=32 ) uniform bool b1a, layout(offset=36 ) uniform bool b1b}) +0:13 Constant: +0:13 0 (const uint) +0:13 b4b: direct index for structure (layout(offset=16 ) uniform 4-component vector of bool) +0:13 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 4-component vector of bool b4a, layout(offset=16 ) uniform 4-component vector of bool b4b, layout(offset=32 ) uniform bool b1a, layout(offset=36 ) uniform bool b1b}) +0:13 Constant: +0:13 1 (const uint) +0:15 Sequence +0:15 move second child to first child (temp 4-component vector of bool) +0:15 'r10' (temp 4-component vector of bool) +0:15 logical-and (temp 4-component vector of bool) +0:15 Construct bvec4 (layout(offset=16 ) uniform 4-component vector of bool) +0:15 b1a: direct index for structure (layout(offset=32 ) uniform bool) +0:15 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 4-component vector of bool b4a, layout(offset=16 ) uniform 4-component vector of bool b4b, layout(offset=32 ) uniform bool b1a, layout(offset=36 ) uniform bool b1b}) +0:15 Constant: +0:15 2 (const uint) +0:15 b4b: direct index for structure (layout(offset=16 ) uniform 4-component vector of bool) +0:15 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 4-component vector of bool b4a, layout(offset=16 ) uniform 4-component vector of bool b4b, layout(offset=32 ) uniform bool b1a, layout(offset=36 ) uniform bool b1b}) +0:15 Constant: +0:15 1 (const uint) +0:16 Sequence +0:16 move second child to first child (temp 4-component vector of bool) +0:16 'r11' (temp 4-component vector of bool) +0:16 logical-or (temp 4-component vector of bool) +0:16 Construct bvec4 (layout(offset=16 ) uniform 4-component vector of bool) +0:16 b1a: direct index for structure (layout(offset=32 ) uniform bool) +0:16 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 4-component vector of bool b4a, layout(offset=16 ) uniform 4-component vector of bool b4b, layout(offset=32 ) uniform bool b1a, layout(offset=36 ) uniform bool b1b}) +0:16 Constant: +0:16 2 (const uint) +0:16 b4b: direct index for structure (layout(offset=16 ) uniform 4-component vector of bool) +0:16 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 4-component vector of bool b4a, layout(offset=16 ) uniform 4-component vector of bool b4b, layout(offset=32 ) uniform bool b1a, layout(offset=36 ) uniform bool b1b}) +0:16 Constant: +0:16 1 (const uint) +0:18 Sequence +0:18 move second child to first child (temp 4-component vector of bool) +0:18 'r20' (temp 4-component vector of bool) +0:18 logical-and (temp 4-component vector of bool) +0:18 b4a: direct index for structure (layout(offset=0 ) uniform 4-component vector of bool) +0:18 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 4-component vector of bool b4a, layout(offset=16 ) uniform 4-component vector of bool b4b, layout(offset=32 ) uniform bool b1a, layout(offset=36 ) uniform bool b1b}) +0:18 Constant: +0:18 0 (const uint) +0:18 Construct bvec4 (layout(offset=0 ) uniform 4-component vector of bool) +0:18 b1b: direct index for structure (layout(offset=36 ) uniform bool) +0:18 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 4-component vector of bool b4a, layout(offset=16 ) uniform 4-component vector of bool b4b, layout(offset=32 ) uniform bool b1a, layout(offset=36 ) uniform bool b1b}) +0:18 Constant: +0:18 3 (const uint) +0:19 Sequence +0:19 move second child to first child (temp 4-component vector of bool) +0:19 'r21' (temp 4-component vector of bool) +0:19 logical-or (temp 4-component vector of bool) +0:19 b4a: direct index for structure (layout(offset=0 ) uniform 4-component vector of bool) +0:19 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 4-component vector of bool b4a, layout(offset=16 ) uniform 4-component vector of bool b4b, layout(offset=32 ) uniform bool b1a, layout(offset=36 ) uniform bool b1b}) +0:19 Constant: +0:19 0 (const uint) +0:19 Construct bvec4 (layout(offset=0 ) uniform 4-component vector of bool) +0:19 b1b: direct index for structure (layout(offset=36 ) uniform bool) +0:19 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 4-component vector of bool b4a, layout(offset=16 ) uniform 4-component vector of bool b4b, layout(offset=32 ) uniform bool b1a, layout(offset=36 ) uniform bool b1b}) +0:19 Constant: +0:19 3 (const uint) +0:22 move second child to first child (temp 4-component vector of float) +0:22 Color: direct index for structure (temp 4-component vector of float) +0:22 'psout' (temp structure{temp 4-component vector of float Color}) +0:22 Constant: +0:22 0 (const int) +0:22 Convert bool to float (temp 4-component vector of float) +0:22 logical-or (temp 4-component vector of bool) +0:22 logical-or (temp 4-component vector of bool) +0:22 logical-or (temp 4-component vector of bool) +0:22 logical-or (temp 4-component vector of bool) +0:22 logical-or (temp 4-component vector of bool) +0:22 logical-or (temp 4-component vector of bool) +0:22 'r00' (temp 4-component vector of bool) +0:22 'r01' (temp 4-component vector of bool) +0:22 'r02' (temp 4-component vector of bool) +0:22 'r10' (temp 4-component vector of bool) +0:22 'r11' (temp 4-component vector of bool) +0:22 'r20' (temp 4-component vector of bool) +0:22 'r21' (temp 4-component vector of bool) +0:23 Sequence +0:23 Sequence +0:23 move second child to first child (temp 4-component vector of float) +0:? 'Color' (layout(location=0 ) out 4-component vector of float) +0:23 Color: direct index for structure (temp 4-component vector of float) +0:23 'psout' (temp structure{temp 4-component vector of float Color}) +0:23 Constant: +0:23 0 (const int) +0:23 Branch: Return +0:? Linker Objects +0:? 'Color' (layout(location=0 ) out 4-component vector of float) +0:? 'anon@0' (uniform block{layout(offset=0 ) uniform 4-component vector of bool b4a, layout(offset=16 ) uniform 4-component vector of bool b4b, layout(offset=32 ) uniform bool b1a, layout(offset=36 ) uniform bool b1b}) + + +Linked fragment stage: + + +Shader version: 450 +gl_FragCoord origin is upper left +0:? Sequence +0:10 Function Definition: main( (temp structure{temp 4-component vector of float Color}) +0:10 Function Parameters: +0:? Sequence +0:11 Sequence +0:11 move second child to first child (temp 4-component vector of bool) +0:11 'r00' (temp 4-component vector of bool) +0:11 Negate conditional (temp 4-component vector of bool) +0:11 b4a: direct index for structure (layout(offset=0 ) uniform 4-component vector of bool) +0:11 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 4-component vector of bool b4a, layout(offset=16 ) uniform 4-component vector of bool b4b, layout(offset=32 ) uniform bool b1a, layout(offset=36 ) uniform bool b1b}) +0:11 Constant: +0:11 0 (const uint) +0:12 Sequence +0:12 move second child to first child (temp 4-component vector of bool) +0:12 'r01' (temp 4-component vector of bool) +0:12 logical-and (temp 4-component vector of bool) +0:12 b4a: direct index for structure (layout(offset=0 ) uniform 4-component vector of bool) +0:12 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 4-component vector of bool b4a, layout(offset=16 ) uniform 4-component vector of bool b4b, layout(offset=32 ) uniform bool b1a, layout(offset=36 ) uniform bool b1b}) +0:12 Constant: +0:12 0 (const uint) +0:12 b4b: direct index for structure (layout(offset=16 ) uniform 4-component vector of bool) +0:12 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 4-component vector of bool b4a, layout(offset=16 ) uniform 4-component vector of bool b4b, layout(offset=32 ) uniform bool b1a, layout(offset=36 ) uniform bool b1b}) +0:12 Constant: +0:12 1 (const uint) +0:13 Sequence +0:13 move second child to first child (temp 4-component vector of bool) +0:13 'r02' (temp 4-component vector of bool) +0:13 logical-or (temp 4-component vector of bool) +0:13 b4a: direct index for structure (layout(offset=0 ) uniform 4-component vector of bool) +0:13 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 4-component vector of bool b4a, layout(offset=16 ) uniform 4-component vector of bool b4b, layout(offset=32 ) uniform bool b1a, layout(offset=36 ) uniform bool b1b}) +0:13 Constant: +0:13 0 (const uint) +0:13 b4b: direct index for structure (layout(offset=16 ) uniform 4-component vector of bool) +0:13 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 4-component vector of bool b4a, layout(offset=16 ) uniform 4-component vector of bool b4b, layout(offset=32 ) uniform bool b1a, layout(offset=36 ) uniform bool b1b}) +0:13 Constant: +0:13 1 (const uint) +0:15 Sequence +0:15 move second child to first child (temp 4-component vector of bool) +0:15 'r10' (temp 4-component vector of bool) +0:15 logical-and (temp 4-component vector of bool) +0:15 Construct bvec4 (layout(offset=16 ) uniform 4-component vector of bool) +0:15 b1a: direct index for structure (layout(offset=32 ) uniform bool) +0:15 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 4-component vector of bool b4a, layout(offset=16 ) uniform 4-component vector of bool b4b, layout(offset=32 ) uniform bool b1a, layout(offset=36 ) uniform bool b1b}) +0:15 Constant: +0:15 2 (const uint) +0:15 b4b: direct index for structure (layout(offset=16 ) uniform 4-component vector of bool) +0:15 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 4-component vector of bool b4a, layout(offset=16 ) uniform 4-component vector of bool b4b, layout(offset=32 ) uniform bool b1a, layout(offset=36 ) uniform bool b1b}) +0:15 Constant: +0:15 1 (const uint) +0:16 Sequence +0:16 move second child to first child (temp 4-component vector of bool) +0:16 'r11' (temp 4-component vector of bool) +0:16 logical-or (temp 4-component vector of bool) +0:16 Construct bvec4 (layout(offset=16 ) uniform 4-component vector of bool) +0:16 b1a: direct index for structure (layout(offset=32 ) uniform bool) +0:16 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 4-component vector of bool b4a, layout(offset=16 ) uniform 4-component vector of bool b4b, layout(offset=32 ) uniform bool b1a, layout(offset=36 ) uniform bool b1b}) +0:16 Constant: +0:16 2 (const uint) +0:16 b4b: direct index for structure (layout(offset=16 ) uniform 4-component vector of bool) +0:16 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 4-component vector of bool b4a, layout(offset=16 ) uniform 4-component vector of bool b4b, layout(offset=32 ) uniform bool b1a, layout(offset=36 ) uniform bool b1b}) +0:16 Constant: +0:16 1 (const uint) +0:18 Sequence +0:18 move second child to first child (temp 4-component vector of bool) +0:18 'r20' (temp 4-component vector of bool) +0:18 logical-and (temp 4-component vector of bool) +0:18 b4a: direct index for structure (layout(offset=0 ) uniform 4-component vector of bool) +0:18 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 4-component vector of bool b4a, layout(offset=16 ) uniform 4-component vector of bool b4b, layout(offset=32 ) uniform bool b1a, layout(offset=36 ) uniform bool b1b}) +0:18 Constant: +0:18 0 (const uint) +0:18 Construct bvec4 (layout(offset=0 ) uniform 4-component vector of bool) +0:18 b1b: direct index for structure (layout(offset=36 ) uniform bool) +0:18 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 4-component vector of bool b4a, layout(offset=16 ) uniform 4-component vector of bool b4b, layout(offset=32 ) uniform bool b1a, layout(offset=36 ) uniform bool b1b}) +0:18 Constant: +0:18 3 (const uint) +0:19 Sequence +0:19 move second child to first child (temp 4-component vector of bool) +0:19 'r21' (temp 4-component vector of bool) +0:19 logical-or (temp 4-component vector of bool) +0:19 b4a: direct index for structure (layout(offset=0 ) uniform 4-component vector of bool) +0:19 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 4-component vector of bool b4a, layout(offset=16 ) uniform 4-component vector of bool b4b, layout(offset=32 ) uniform bool b1a, layout(offset=36 ) uniform bool b1b}) +0:19 Constant: +0:19 0 (const uint) +0:19 Construct bvec4 (layout(offset=0 ) uniform 4-component vector of bool) +0:19 b1b: direct index for structure (layout(offset=36 ) uniform bool) +0:19 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 4-component vector of bool b4a, layout(offset=16 ) uniform 4-component vector of bool b4b, layout(offset=32 ) uniform bool b1a, layout(offset=36 ) uniform bool b1b}) +0:19 Constant: +0:19 3 (const uint) +0:22 move second child to first child (temp 4-component vector of float) +0:22 Color: direct index for structure (temp 4-component vector of float) +0:22 'psout' (temp structure{temp 4-component vector of float Color}) +0:22 Constant: +0:22 0 (const int) +0:22 Convert bool to float (temp 4-component vector of float) +0:22 logical-or (temp 4-component vector of bool) +0:22 logical-or (temp 4-component vector of bool) +0:22 logical-or (temp 4-component vector of bool) +0:22 logical-or (temp 4-component vector of bool) +0:22 logical-or (temp 4-component vector of bool) +0:22 logical-or (temp 4-component vector of bool) +0:22 'r00' (temp 4-component vector of bool) +0:22 'r01' (temp 4-component vector of bool) +0:22 'r02' (temp 4-component vector of bool) +0:22 'r10' (temp 4-component vector of bool) +0:22 'r11' (temp 4-component vector of bool) +0:22 'r20' (temp 4-component vector of bool) +0:22 'r21' (temp 4-component vector of bool) +0:23 Sequence +0:23 Sequence +0:23 move second child to first child (temp 4-component vector of float) +0:? 'Color' (layout(location=0 ) out 4-component vector of float) +0:23 Color: direct index for structure (temp 4-component vector of float) +0:23 'psout' (temp structure{temp 4-component vector of float Color}) +0:23 Constant: +0:23 0 (const int) +0:23 Branch: Return +0:? Linker Objects +0:? 'Color' (layout(location=0 ) out 4-component vector of float) +0:? 'anon@0' (uniform block{layout(offset=0 ) uniform 4-component vector of bool b4a, layout(offset=16 ) uniform 4-component vector of bool b4b, layout(offset=32 ) uniform bool b1a, layout(offset=36 ) uniform bool b1b}) + +// Module Version 10000 +// Generated by (magic number): 80001 +// Id's are bound by 115 + + Capability Shader + 1: ExtInstImport "GLSL.std.450" + MemoryModel Logical GLSL450 + EntryPoint Fragment 4 "main" 111 + ExecutionMode 4 OriginUpperLeft + Name 4 "main" + Name 9 "r00" + Name 12 "$Global" + MemberName 12($Global) 0 "b4a" + MemberName 12($Global) 1 "b4b" + MemberName 12($Global) 2 "b1a" + MemberName 12($Global) 3 "b1b" + Name 14 "" + Name 24 "r01" + Name 33 "r02" + Name 41 "r10" + Name 52 "r11" + Name 61 "r20" + Name 73 "r21" + Name 87 "PS_OUTPUT" + MemberName 87(PS_OUTPUT) 0 "Color" + Name 89 "psout" + Name 111 "Color" + MemberDecorate 12($Global) 0 Offset 0 + MemberDecorate 12($Global) 1 Offset 16 + MemberDecorate 12($Global) 2 Offset 32 + MemberDecorate 12($Global) 3 Offset 36 + Decorate 12($Global) Block + Decorate 14 DescriptorSet 0 + Decorate 111(Color) Location 0 + 2: TypeVoid + 3: TypeFunction 2 + 6: TypeBool + 7: TypeVector 6(bool) 4 + 8: TypePointer Function 7(bvec4) + 10: TypeInt 32 0 + 11: TypeVector 10(int) 4 + 12($Global): TypeStruct 11(ivec4) 11(ivec4) 10(int) 10(int) + 13: TypePointer Uniform 12($Global) + 14: 13(ptr) Variable Uniform + 15: TypeInt 32 1 + 16: 15(int) Constant 0 + 17: TypePointer Uniform 11(ivec4) + 20: 10(int) Constant 0 + 21: 11(ivec4) ConstantComposite 20 20 20 20 + 28: 15(int) Constant 1 + 42: 15(int) Constant 2 + 43: TypePointer Uniform 10(int) + 67: 15(int) Constant 3 + 85: TypeFloat 32 + 86: TypeVector 85(float) 4 + 87(PS_OUTPUT): TypeStruct 86(fvec4) + 88: TypePointer Function 87(PS_OUTPUT) + 103: 85(float) Constant 0 + 104: 85(float) Constant 1065353216 + 105: 86(fvec4) ConstantComposite 103 103 103 103 + 106: 86(fvec4) ConstantComposite 104 104 104 104 + 108: TypePointer Function 86(fvec4) + 110: TypePointer Output 86(fvec4) + 111(Color): 110(ptr) Variable Output + 4(main): 2 Function None 3 + 5: Label + 9(r00): 8(ptr) Variable Function + 24(r01): 8(ptr) Variable Function + 33(r02): 8(ptr) Variable Function + 41(r10): 8(ptr) Variable Function + 52(r11): 8(ptr) Variable Function + 61(r20): 8(ptr) Variable Function + 73(r21): 8(ptr) Variable Function + 89(psout): 88(ptr) Variable Function + 18: 17(ptr) AccessChain 14 16 + 19: 11(ivec4) Load 18 + 22: 7(bvec4) INotEqual 19 21 + 23: 7(bvec4) LogicalNot 22 + Store 9(r00) 23 + 25: 17(ptr) AccessChain 14 16 + 26: 11(ivec4) Load 25 + 27: 7(bvec4) INotEqual 26 21 + 29: 17(ptr) AccessChain 14 28 + 30: 11(ivec4) Load 29 + 31: 7(bvec4) INotEqual 30 21 + 32: 7(bvec4) LogicalAnd 27 31 + Store 24(r01) 32 + 34: 17(ptr) AccessChain 14 16 + 35: 11(ivec4) Load 34 + 36: 7(bvec4) INotEqual 35 21 + 37: 17(ptr) AccessChain 14 28 + 38: 11(ivec4) Load 37 + 39: 7(bvec4) INotEqual 38 21 + 40: 7(bvec4) LogicalOr 36 39 + Store 33(r02) 40 + 44: 43(ptr) AccessChain 14 42 + 45: 10(int) Load 44 + 46: 6(bool) INotEqual 45 20 + 47: 7(bvec4) CompositeConstruct 46 46 46 46 + 48: 17(ptr) AccessChain 14 28 + 49: 11(ivec4) Load 48 + 50: 7(bvec4) INotEqual 49 21 + 51: 7(bvec4) LogicalAnd 47 50 + Store 41(r10) 51 + 53: 43(ptr) AccessChain 14 42 + 54: 10(int) Load 53 + 55: 6(bool) INotEqual 54 20 + 56: 7(bvec4) CompositeConstruct 55 55 55 55 + 57: 17(ptr) AccessChain 14 28 + 58: 11(ivec4) Load 57 + 59: 7(bvec4) INotEqual 58 21 + 60: 7(bvec4) LogicalOr 56 59 + Store 52(r11) 60 + 62: 17(ptr) AccessChain 14 16 + 63: 11(ivec4) Load 62 + 64: 7(bvec4) INotEqual 63 21 + SelectionMerge 66 None + BranchConditional 64 65 66 + 65: Label + 68: 43(ptr) AccessChain 14 67 + 69: 10(int) Load 68 + 70: 6(bool) INotEqual 69 20 + 71: 7(bvec4) CompositeConstruct 70 70 70 70 + Branch 66 + 66: Label + 72: 6(bool) Phi 64 5 71 65 + Store 61(r20) 72 + 74: 17(ptr) AccessChain 14 16 + 75: 11(ivec4) Load 74 + 76: 7(bvec4) INotEqual 75 21 + 77: 6(bool) LogicalNot 76 + SelectionMerge 79 None + BranchConditional 77 78 79 + 78: Label + 80: 43(ptr) AccessChain 14 67 + 81: 10(int) Load 80 + 82: 6(bool) INotEqual 81 20 + 83: 7(bvec4) CompositeConstruct 82 82 82 82 + Branch 79 + 79: Label + 84: 6(bool) Phi 76 66 83 78 + Store 73(r21) 84 + 90: 7(bvec4) Load 9(r00) + 91: 7(bvec4) Load 24(r01) + 92: 7(bvec4) LogicalOr 90 91 + 93: 7(bvec4) Load 33(r02) + 94: 7(bvec4) LogicalOr 92 93 + 95: 7(bvec4) Load 41(r10) + 96: 7(bvec4) LogicalOr 94 95 + 97: 7(bvec4) Load 52(r11) + 98: 7(bvec4) LogicalOr 96 97 + 99: 7(bvec4) Load 61(r20) + 100: 7(bvec4) LogicalOr 98 99 + 101: 7(bvec4) Load 73(r21) + 102: 7(bvec4) LogicalOr 100 101 + 107: 86(fvec4) Select 102 106 105 + 109: 108(ptr) AccessChain 89(psout) 16 + Store 109 107 + 112: 108(ptr) AccessChain 89(psout) 16 + 113: 86(fvec4) Load 112 + Store 111(Color) 113 + Return + FunctionEnd diff --git a/Test/hlsl.logical.binary.vec.frag b/Test/hlsl.logical.binary.vec.frag new file mode 100644 index 00000000..e94c8f5b --- /dev/null +++ b/Test/hlsl.logical.binary.vec.frag @@ -0,0 +1,24 @@ +struct PS_OUTPUT +{ + float4 Color : SV_Target0; +}; + +uniform bool4 b4a, b4b; +uniform bool b1a, b1b; + +PS_OUTPUT main() +{ + bool4 r00 = !b4a; + bool4 r01 = b4a && b4b; // vec, vec + bool4 r02 = b4a || b4b; // vec, vec + + bool4 r10 = b1a && b4b; // scalar, vec + bool4 r11 = b1a || b4b; // scalar, vec + + bool4 r20 = b4a && b1b; // vec, scalar + bool4 r21 = b4a || b1b; // vec, scalar + + PS_OUTPUT psout; + psout.Color = r00 || r01 || r02 || r10 || r11 || r20 || r21; + return psout; +} diff --git a/glslang/MachineIndependent/Intermediate.cpp b/glslang/MachineIndependent/Intermediate.cpp index 758ae4f2..7ff51edc 100644 --- a/glslang/MachineIndependent/Intermediate.cpp +++ b/glslang/MachineIndependent/Intermediate.cpp @@ -797,6 +797,9 @@ TIntermTyped* TIntermediate::addShapeConversion(TOperator op, const TType& type, case EOpNotEqual: case EOpFunctionCall: case EOpReturn: + case EOpLogicalAnd: + case EOpLogicalOr: + case EOpLogicalXor: break; default: return node; @@ -1911,13 +1914,14 @@ bool TIntermediate::promoteBinary(TIntermBinary& node) return false; node.setLeft(left = convertedL); // also updates stack variable node.setRight(right = convertedR); // also updates stack variable + } else { + // logical ops operate only on scalar Booleans and will promote to scalar Boolean. + if (left->getBasicType() != EbtBool || left->isVector() || left->isMatrix()) + return false; } - // logical ops operate only on scalar Booleans and will promote to scalar Boolean. - if (left->getBasicType() != EbtBool || left->isVector() || left->isMatrix()) - return false; + node.setType(TType(EbtBool, EvqTemporary, left->getVectorSize())); - node.setType(TType(EbtBool)); break; case EOpRightShift: diff --git a/gtests/Hlsl.FromFile.cpp b/gtests/Hlsl.FromFile.cpp index 0291b040..72875679 100644 --- a/gtests/Hlsl.FromFile.cpp +++ b/gtests/Hlsl.FromFile.cpp @@ -144,6 +144,7 @@ INSTANTIATE_TEST_CASE_P( {"hlsl.load.offsetarray.dx10.frag", "main"}, {"hlsl.logical.unary.frag", "main"}, {"hlsl.logical.binary.frag", "main"}, + {"hlsl.logical.binary.vec.frag", "main"}, {"hlsl.multiEntry.vert", "RealEntrypoint"}, {"hlsl.multiReturn.frag", "main"}, {"hlsl.matrixindex.frag", "main"}, -- cgit v1.2.3 From c2016a52d2ece7c775da4d4b58aad8ea701c8817 Mon Sep 17 00:00:00 2001 From: "t.jung" Date: Thu, 27 Oct 2016 15:45:02 +0200 Subject: New uniform mapping handling - add optional callback to handle mapping of uniform variables in linking phase - if no resolver is provided, it uses the internal default resolver with all shifts and auto bind settings Change-Id: Icfe38a9eabe8bfc8f8bb6d8150c06f7ed38bb762 --- .../spv.register.autoassign.rangetest.frag.out | 4 - glslang/MachineIndependent/ShaderLang.cpp | 4 +- glslang/MachineIndependent/iomapper.cpp | 408 +++++++++++++-------- glslang/MachineIndependent/iomapper.h | 2 +- glslang/Public/ShaderLang.h | 35 +- 5 files changed, 297 insertions(+), 156 deletions(-) diff --git a/Test/baseResults/spv.register.autoassign.rangetest.frag.out b/Test/baseResults/spv.register.autoassign.rangetest.frag.out index a521a13b..94933fba 100644 --- a/Test/baseResults/spv.register.autoassign.rangetest.frag.out +++ b/Test/baseResults/spv.register.autoassign.rangetest.frag.out @@ -2,10 +2,6 @@ spv.register.autoassign.rangetest.frag Linked fragment stage: -INTERNAL ERROR: mapped binding out of range: g_tScene -INTERNAL ERROR: mapped binding out of range: g_tSamp -INTERNAL ERROR: mapped binding out of range: g_tScene -INTERNAL ERROR: mapped binding out of range: g_tSamp INTERNAL ERROR: mapped binding out of range: g_tSamp INTERNAL ERROR: mapped binding out of range: g_tScene diff --git a/glslang/MachineIndependent/ShaderLang.cpp b/glslang/MachineIndependent/ShaderLang.cpp index 6d044452..eb4a17d4 100644 --- a/glslang/MachineIndependent/ShaderLang.cpp +++ b/glslang/MachineIndependent/ShaderLang.cpp @@ -1716,7 +1716,7 @@ void TProgram::dumpReflection() { reflection->dump(); } // // I/O mapping implementation. // -bool TProgram::mapIO() +bool TProgram::mapIO(TIoMapResolver* resolver) { if (! linked || ioMapper) return false; @@ -1725,7 +1725,7 @@ bool TProgram::mapIO() for (int s = 0; s < EShLangCount; ++s) { if (intermediate[s]) { - if (! ioMapper->addStage((EShLanguage)s, *intermediate[s], *infoSink)) + if (! ioMapper->addStage((EShLanguage)s, *intermediate[s], *infoSink, resolver)) return false; } } diff --git a/glslang/MachineIndependent/iomapper.cpp b/glslang/MachineIndependent/iomapper.cpp index 15847ddb..8ea4506f 100644 --- a/glslang/MachineIndependent/iomapper.cpp +++ b/glslang/MachineIndependent/iomapper.cpp @@ -61,177 +61,278 @@ // c. implicit dead bindings are left un-bound. // - -namespace glslang { -// Map of IDs to bindings -typedef std::unordered_map TBindingMap; -typedef std::unordered_set TUsedBindings; +namespace glslang { +struct TVarEntryInfo +{ + int id; + TIntermSymbol* symbol; + bool live; + int newBinding; + int newSet; -// This traverses the AST to determine which bindings are used, and which are implicit -// (for subsequent auto-numbering) -class TBindingTraverser : public TLiveTraverser { -public: - TBindingTraverser(const TIntermediate& i, TBindingMap& bindingMap, TUsedBindings& usedBindings, - bool traverseDeadCode = false) : - TLiveTraverser(i, traverseDeadCode, true, true, false), - bindingMap(bindingMap), - usedBindings(usedBindings) - { } - -protected: - virtual void visitSymbol(TIntermSymbol* base) { - if (base->getQualifier().storage == EvqUniform) - addUniform(*base); - } + struct TOrderById + { + inline bool operator()(const TVarEntryInfo& l, const TVarEntryInfo& r) + { + return l.id < r.id; + } + }; - // Return the right binding base given the variable type. - int getBindingBase(const TType& type) { - if (type.getBasicType() == EbtSampler) { - const TSampler& sampler = type.getSampler(); - if (sampler.isPureSampler()) - return intermediate.getShiftSamplerBinding(); - if (sampler.isTexture()) - return intermediate.getShiftTextureBinding(); + struct TOrderByPriority + { + // ordering: + // 1) has both binding and set + // 2) has binding but no set + // 3) has no binding but set + // 4) has no binding and no set + inline bool operator()(const TVarEntryInfo& l, const TVarEntryInfo& r) + { + const TQualifier& lq = l.symbol->getQualifier(); + const TQualifier& rq = r.symbol->getQualifier(); + + // simple rules: + // has binding gives 2 points + // has set gives 1 point + // who has the most points is more important. + int lPoints = (lq.hasBinding() ? 2 : 0) + (lq.hasSet() ? 1 : 0); + int rPoints = (rq.hasBinding() ? 2 : 0) + (rq.hasSet() ? 1 : 0); + + if (lPoints == rPoints) + return l.id < r.id; + return lPoints > rPoints; } + }; +}; - if (type.getQualifier().isUniformOrBuffer()) - return intermediate.getShiftUboBinding(); - - return -1; // not a type with a binding - } - // Mark a given base symbol ID as being bound to 'binding' - void markBinding(const TIntermSymbol& base, int binding) { - bindingMap[base.getId()] = binding; - if (binding >= 0) { - // const TType& type = base.getType(); - const unsigned int size = 1; // type.isArray() ? type.getCumulativeArraySize() : 1; +typedef std::vector TVarLiveMap; - for (unsigned int offset=0; offsetgetQualifier().storage == EvqUniform) { + TVarEntryInfo ent = { base->getId(), base, !traverseAll }; + TVarLiveMap::iterator at = std::lower_bound(varLiveList.begin(), varLiveList.end(), ent, TVarEntryInfo::TOrderById()); + if (at != varLiveList.end() && at->id == ent.id) + at->live = at->live || !traverseAll; // update live state + else + varLiveList.insert(at, ent); } } - TBindingMap& bindingMap; - TUsedBindings& usedBindings; + private: + TVarLiveMap& varLiveList; }; - -// This traverses the AST and applies binding maps it's given. -class TIoMappingTraverser : public TBindingTraverser { +class TVarSetTraverser : public TLiveTraverser +{ public: - TIoMappingTraverser(TIntermediate& i, TBindingMap& bindingMap, TUsedBindings& usedBindings, - TInfoSink& infoSink, bool traverseDeadCode) : - TBindingTraverser(i, bindingMap, usedBindings, traverseDeadCode), - infoSink(infoSink), - assignError(false) - { } - - bool success() const { return !assignError; } - -protected: - unsigned checkBindingRange(const TIntermSymbol& base, unsigned binding) + TVarSetTraverser(const TIntermediate& i, const TVarLiveMap& vars) + : TLiveTraverser(i, true, true, true, false) + , varLiveList(vars) { - if (binding >= TQualifier::layoutBindingEnd) { - TString err = "mapped binding out of range: "; - err += base.getName(); - - infoSink.info.message(EPrefixInternalError, err.c_str()); - assignError = true; - - return 0; - } - - return binding; } - void addUniform(TIntermSymbol& base) override + + virtual void visitSymbol(TIntermSymbol* base) { - // Skip things we don't intend to bind. - if (bindingMap.find(base.getId()) == bindingMap.end()) + TVarEntryInfo ent = { base->getId() }; + TVarLiveMap::const_iterator at = std::lower_bound(varLiveList.begin(), varLiveList.end(), ent, TVarEntryInfo::TOrderById()); + if (at == varLiveList.end()) return; - - const int existingBinding = bindingMap[base.getId()]; - - // Apply existing binding, if we were given one or already made one up. - if (existingBinding != -1) { - base.getWritableType().getQualifier().layoutBinding = checkBindingRange(base, existingBinding); + if (!(at->id == ent.id)) return; - } - if (intermediate.getAutoMapBindings()) { - // Otherwise, find a free spot for it. - const int freeBinding = getFreeBinding(base.getType(), getBindingBase(base.getType())); + if (at->newBinding != -1) + base->getWritableType().getQualifier().layoutBinding = at->newBinding; + if (at->newSet != -1) + base->getWritableType().getQualifier().layoutSet = at->newSet; + } + + private: + const TVarLiveMap& varLiveList; +}; - markBinding(base, freeBinding); - base.getWritableType().getQualifier().layoutBinding = checkBindingRange(base, freeBinding); +struct TResolverAdaptor +{ + TResolverAdaptor(EShLanguage s, TIoMapResolver& r, TInfoSink& i, bool& e) + : resolver(r) + , stage(s) + , infoSink(i) + , error(e) + { + } + inline void operator()(TVarEntryInfo& ent) + { + bool isValid = resolver.validateBinding(stage, ent.symbol->getName().c_str(), ent.symbol->getType(), ent.live); + if (isValid) { + ent.newBinding = resolver.resolveBinding(stage, ent.symbol->getName().c_str(), ent.symbol->getType(), ent.live); + ent.newSet = resolver.resolveSet(stage, ent.symbol->getName().c_str(), ent.symbol->getType(), ent.live); + + if (ent.newBinding != -1) { + if (ent.newBinding >= TQualifier::layoutBindingEnd) { + TString err = "mapped binding out of range: " + ent.symbol->getName(); + + infoSink.info.message(EPrefixInternalError, err.c_str()); + error = true; + } + } + if (ent.newSet != -1) { + if (ent.newSet >= TQualifier::layoutSetEnd) { + TString err = "mapped set out of range: " + ent.symbol->getName(); + + infoSink.info.message(EPrefixInternalError, err.c_str()); + error = true; + } + } + } else { + TString errorMsg = "Invalid binding: " + ent.symbol->getName(); + infoSink.info.message(EPrefixInternalError, errorMsg.c_str()); + error = true; } } + EShLanguage stage; + TIoMapResolver& resolver; + TInfoSink& infoSink; + bool& error; +}; - // Search for N free consecutive binding slots in [base, base+required). - // E.g, if we want to reserve consecutive bindings for flattened arrays. - bool hasNFreeSlots(int base, int required) { - for (int binding = base; binding < (base + required); ++binding) - if (usedBindings.find(binding) != usedBindings.end()) - return false; - - return true; +/* + * Basic implementation of glslang::TIoMapResolver that replaces the + * previous offset behaviour. + * It does the same, uses the offsets for th corresponding uniform + * types. Also respects the EOptionAutoMapBindings flag and binds + * them if needed. + */ +struct TDefaultIoResolver : public glslang::TIoMapResolver +{ + int baseSamplerBinding; + int baseTextureBinding; + int baseUboBinding; + bool doAutoMapping; + typedef std::vector TSlotSet; + typedef std::unordered_map TSlotSetMap; + TSlotSetMap slots; + TSlotSet::iterator findSlot(int set, int slot) + { + return std::lower_bound(slots[set].begin(), slots[set].end(), slot); + } + bool checkEmpty(int set, int slot) + { + TSlotSet::iterator at = findSlot(set, slot); + return !(at != slots[set].end() && *at == slot); + } + int reserveSlot(int set, int slot) + { + TSlotSet::iterator at = findSlot(set, slot); + slots[set].insert(at, slot); + return slot; + } + int getFreeSlot(int set, int base) + { + TSlotSet::iterator at = findSlot(set, base); + if (at == slots[set].end()) + return reserveSlot(set, base); + + // look in locksteps, if they not match, then there is a free slot + for (; at != slots[set].end(); ++at, ++base) + if (*at != base) + break; + return reserveSlot(set, base); + } + bool validateBinding(EShLanguage stage, const char* /*name*/, const glslang::TType& type, bool /*is_live*/) override + { + if (type.getQualifier().hasBinding()) { + int set; + if (type.getQualifier().hasSet()) + set = type.getQualifier().layoutSet; + else + set = 0; + + if (type.getBasicType() == glslang::EbtSampler) { + const glslang::TSampler& sampler = type.getSampler(); + if (sampler.isPureSampler()) + return checkEmpty(set, baseSamplerBinding + type.getQualifier().layoutBinding); + + if (sampler.isTexture()) + return checkEmpty(set, baseTextureBinding + type.getQualifier().layoutBinding); + } + + if (type.getQualifier().isUniformOrBuffer()) + return checkEmpty(set, baseUboBinding + type.getQualifier().layoutBinding); } - - // Find a free binding spot - int getFreeBinding(const TType&, int nextBinding) { - while (!hasNFreeSlots(nextBinding, 1)) - ++nextBinding; - - return nextBinding; + return true; + } + int resolveBinding(EShLanguage stage, const char* /*name*/, const glslang::TType& type, bool is_live) override + { + int set; + if (type.getQualifier().hasSet()) + set = type.getQualifier().layoutSet; + else + set = 0; + + if (type.getQualifier().hasBinding()) { + if (type.getBasicType() == glslang::EbtSampler) { + const glslang::TSampler& sampler = type.getSampler(); + if (sampler.isPureSampler()) + return reserveSlot(set, baseSamplerBinding + type.getQualifier().layoutBinding); + + if (sampler.isTexture()) + return reserveSlot(set, baseTextureBinding + type.getQualifier().layoutBinding); + } + + if (type.getQualifier().isUniformOrBuffer()) + return reserveSlot(set, baseUboBinding + type.getQualifier().layoutBinding); + } else if (is_live && doAutoMapping) { + // find free slot, the caller did make sure it passes all vars with binding + // first and now all are passed that do not have a binding and needs one + if (type.getBasicType() == glslang::EbtSampler) { + const glslang::TSampler& sampler = type.getSampler(); + if (sampler.isPureSampler()) + return getFreeSlot(set, baseSamplerBinding); + + if (sampler.isTexture()) + return getFreeSlot(set, baseTextureBinding); + } + + if (type.getQualifier().isUniformOrBuffer()) + return getFreeSlot(set, baseUboBinding); } -private: - bool assignError; // true if there was an error assigning the bindings - TInfoSink& infoSink; + return -1; + } + int resolveSet(EShLanguage /*stage*/, const char* /*name*/, const glslang::TType& type, bool /*is_live*/) override + { + if (type.getQualifier().hasSet()) + return type.getQualifier().layoutSet; + return 0; + } }; // Map I/O variables to provided offsets, and make bindings for // unbound but live variables. // // Returns false if the input is too malformed to do this. -bool TIoMapper::addStage(EShLanguage, TIntermediate& intermediate, TInfoSink& infoSink) +bool TIoMapper::addStage(EShLanguage stage, TIntermediate &intermediate, TInfoSink &infoSink, TIoMapResolver *resolver) { // Trivial return if there is nothing to do. if (intermediate.getShiftSamplerBinding() == 0 && intermediate.getShiftTextureBinding() == 0 && intermediate.getShiftUboBinding() == 0 && - intermediate.getAutoMapBindings() == false) + intermediate.getAutoMapBindings() == false && + resolver == NULL) return true; if (intermediate.getNumEntryPoints() != 1 || intermediate.isRecursive()) @@ -241,30 +342,43 @@ bool TIoMapper::addStage(EShLanguage, TIntermediate& intermediate, TInfoSink& in if (root == nullptr) return false; - // The lifetime of this data spans several passes. - TBindingMap bindingMap; - TUsedBindings usedBindings; + // if no resolver is provided, use the default resolver with the given shifts and auto map settings + TDefaultIoResolver defaultResolver; + if (resolver == NULL) { + defaultResolver.baseSamplerBinding = intermediate.getShiftSamplerBinding(); + defaultResolver.baseTextureBinding = intermediate.getShiftTextureBinding(); + defaultResolver.baseUboBinding = intermediate.getShiftUboBinding(); + defaultResolver.doAutoMapping = intermediate.getAutoMapBindings(); - TBindingTraverser it_binding_all(intermediate, bindingMap, usedBindings, true); - TBindingTraverser it_binding_live(intermediate, bindingMap, usedBindings, false); - TIoMappingTraverser it_iomap(intermediate, bindingMap, usedBindings, infoSink, true); + resolver = &defaultResolver; + } - // Traverse all (live+dead) code to find explicit bindings, so we can avoid those. - root->traverse(&it_binding_all); + TVarLiveMap varMap; + TVarGatherTraverser iter_binding_all(intermediate, varMap, true); + TVarGatherTraverser iter_binding_live(intermediate, varMap, false); - // Traverse just live code to find things that need implicit bindings. - it_binding_live.pushFunction(intermediate.getEntryPointMangledName().c_str()); + root->traverse(&iter_binding_all); + iter_binding_live.pushFunction(intermediate.getEntryPointMangledName().c_str()); - while (! it_binding_live.functions.empty()) { - TIntermNode* function = it_binding_live.functions.back(); - it_binding_live.functions.pop_back(); - function->traverse(&it_binding_live); + while (!iter_binding_live.functions.empty()) { + TIntermNode* function = iter_binding_live.functions.back(); + iter_binding_live.functions.pop_back(); + function->traverse(&iter_binding_live); } - - // Bind everything that needs a binding and doesn't have one. - root->traverse(&it_iomap); - - return it_iomap.success(); + // sort entries by priority. see TVarEntryInfo::TOrderByPriority for info. + std::sort(varMap.begin(), varMap.end(), TVarEntryInfo::TOrderByPriority()); + + bool hadError = false; + TResolverAdaptor doResolve(stage, *resolver, infoSink, hadError); + std::for_each(varMap.begin(), varMap.end(), doResolve); + + if (!hadError) { + // sort by id again, so we can use lower bound to find entries + std::sort(varMap.begin(), varMap.end(), TVarEntryInfo::TOrderById()); + TVarSetTraverser iter_iomap(intermediate, varMap); + root->traverse(&iter_iomap); + } + return !hadError; } } // end namespace glslang diff --git a/glslang/MachineIndependent/iomapper.h b/glslang/MachineIndependent/iomapper.h index 68dec776..ff47543d 100644 --- a/glslang/MachineIndependent/iomapper.h +++ b/glslang/MachineIndependent/iomapper.h @@ -55,7 +55,7 @@ public: virtual ~TIoMapper() {} // grow the reflection stage by stage - bool addStage(EShLanguage, TIntermediate&, TInfoSink&); + bool addStage(EShLanguage, TIntermediate&, TInfoSink&, TIoMapResolver*); }; } // end namespace glslang diff --git a/glslang/Public/ShaderLang.h b/glslang/Public/ShaderLang.h index e5e8b4d7..acde8b01 100644 --- a/glslang/Public/ShaderLang.h +++ b/glslang/Public/ShaderLang.h @@ -445,7 +445,36 @@ private: class TReflection; class TIoMapper; -// Make one TProgram per set of shaders that will get linked together. Add all +// Allows to customize the binding layout after linking. +// All used uniform variables will invoke at least validateBinding. +// If validateBinding returned true then the other resolveBinding +// and resolveSet are invoked to resolve the binding and descriptor +// set index respectively. +// Invocations happen in a particular order: +// 1) var with binding and set already defined +// 2) var with binding but no set defined +// 3) var with set but no binding defined +// 4) var with no binding and no set defined +// +// NOTE: that still limit checks are applied to bindings and sets +// and may result in an error. +class TIoMapResolver +{ +public: + virtual ~TIoMapResolver() {} + + // Should return true if the resulting/current binding would be ok. + // Basic idea is to do aliasing binding checks with this. + virtual bool validateBinding(EShLanguage stage, const char* name, const TType& type, bool is_live) = 0; + // Should return a value >= 0 if the current binding should be overridden. + // Return -1 if the current binding (including no binding) should be kept. + virtual int resolveBinding(EShLanguage stage, const char* name, const TType& type, bool is_live) = 0; + // Should return a value >= 0 if the current set should be overriden. + // Return -1 if the current set (including no set) should be kept. + virtual int resolveSet(EShLanguage stage, const char* name, const TType& type, bool is_live) = 0; +}; + +// Make one TProgram per set of shaders that will get linked together. Add all // the shaders that are to be linked together. After calling shader.parse() // for all shaders, call link(). // @@ -485,7 +514,9 @@ public: void dumpReflection(); // I/O mapping: apply base offsets and map live unbound variables - bool mapIO(); + // If resolver is not provided it uses the previous approach + // and respects auto assignment and offsets. + bool mapIO(TIoMapResolver* resolver = NULL); protected: bool linkStage(EShLanguage, EShMessages); -- cgit v1.2.3 From ca7357044708cdc15b46124d72e86727fee09300 Mon Sep 17 00:00:00 2001 From: baldurk Date: Fri, 28 Oct 2016 17:57:25 +0200 Subject: Add explicit lambda return types, for compilers without C++14 support --- hlsl/hlslParseHelper.cpp | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/hlsl/hlslParseHelper.cpp b/hlsl/hlslParseHelper.cpp index 4b9f7e38..a9e3a107 100755 --- a/hlsl/hlslParseHelper.cpp +++ b/hlsl/hlslParseHelper.cpp @@ -154,7 +154,7 @@ TLayoutFormat HlslParseContext::getLayoutFromTxType(const TSourceLoc& loc, const { const int components = txType.getVectorSize(); - const auto selectFormat = [this,&components](TLayoutFormat v1, TLayoutFormat v2, TLayoutFormat v4) { + const auto selectFormat = [this,&components](TLayoutFormat v1, TLayoutFormat v2, TLayoutFormat v4) -> TLayoutFormat { if (intermediate.getNoStorageFormat()) return ElfNone; @@ -260,7 +260,7 @@ TIntermTyped* HlslParseContext::handleLvalue(const TSourceLoc& loc, const char* }; // Helper to complete sequence by adding trailing variable, so we evaluate to the right value. - const auto finishSequence = [&](TIntermSymbol* rhsTmp, const TType& derefType) { + const auto finishSequence = [&](TIntermSymbol* rhsTmp, const TType& derefType) -> TIntermAggregate* { // Add a trailing use of the temp, so the sequence returns the proper value. sequence = intermediate.growAggregate(sequence, intermediate.addSymbol(*rhsTmp)); sequence->setOperator(EOpSequence); @@ -279,7 +279,7 @@ TIntermTyped* HlslParseContext::handleLvalue(const TSourceLoc& loc, const char* }; // helper to create a temporary variable - const auto addTmpVar = [&](const char* name, const TType& derefType) { + const auto addTmpVar = [&](const char* name, const TType& derefType) -> TIntermSymbol* { TVariable* tmpVar = makeInternalVariable(name, derefType); tmpVar->getWritableType().getQualifier().makeTemporary(); return intermediate.addSymbol(*tmpVar, loc); @@ -1440,7 +1440,7 @@ void HlslParseContext::decomposeSampleMethods(const TSourceLoc& loc, TIntermType if (!node || !node->getAsOperator()) return; - const auto clampReturn = [&loc, &node, this](TIntermTyped* result, const TSampler& sampler) { + const auto clampReturn = [&loc, &node, this](TIntermTyped* result, const TSampler& sampler) -> TIntermTyped* { // Sampler return must always be a vec4, but we can construct a shorter vector result->setType(TType(node->getType().getBasicType(), EvqTemporary, node->getVectorSize())); @@ -2073,7 +2073,7 @@ void HlslParseContext::decomposeIntrinsic(const TSourceLoc& loc, TIntermTyped*& }; // Return true if this is an imageLoad, which we will change to an image atomic. - const auto isImageParam = [](TIntermTyped* image) { + const auto isImageParam = [](TIntermTyped* image) -> bool { TIntermAggregate* imageAggregate = image->getAsAggregate(); return imageAggregate != nullptr && imageAggregate->getOp() == EOpImageLoad; }; -- cgit v1.2.3 From 1868b14435fb2ddd997e4913a99b3791ce22db47 Mon Sep 17 00:00:00 2001 From: steve-lunarg Date: Thu, 20 Oct 2016 13:07:10 -0600 Subject: HLSL: implement numthreads for compute shaders This PR adds handling of the numthreads attribute for compute shaders, as well as a general infrastructure for returning attribute values from acceptAttributes, which may be needed in other cases, e.g, unroll(x), or merely to know if some attribute without params was given. A map of enum values from TAttributeType to TIntermAggregate nodes is built and returned. It can be queried with operator[] on the map. In the future there may be a need to also handle strings (e.g, for patchconstantfunc), and those can be easily added into the class if needed. New test is in hlsl.numthreads.comp. --- Test/baseResults/hlsl.numthreads.comp.out | 60 +++++++++++++++++ Test/hlsl.numthreads.comp | 14 ++++ gtests/Hlsl.FromFile.cpp | 1 + hlsl/CMakeLists.txt | 4 +- hlsl/hlslAttributes.cpp | 108 ++++++++++++++++++++++++++++++ hlsl/hlslAttributes.h | 96 ++++++++++++++++++++++++++ hlsl/hlslGrammar.cpp | 70 +++++++++++++------ hlsl/hlslGrammar.h | 6 +- hlsl/hlslParseHelper.cpp | 13 +++- hlsl/hlslParseHelper.h | 4 +- 10 files changed, 352 insertions(+), 24 deletions(-) create mode 100644 Test/baseResults/hlsl.numthreads.comp.out create mode 100644 Test/hlsl.numthreads.comp create mode 100644 hlsl/hlslAttributes.cpp create mode 100644 hlsl/hlslAttributes.h diff --git a/Test/baseResults/hlsl.numthreads.comp.out b/Test/baseResults/hlsl.numthreads.comp.out new file mode 100644 index 00000000..76e95c8f --- /dev/null +++ b/Test/baseResults/hlsl.numthreads.comp.out @@ -0,0 +1,60 @@ +hlsl.numthreads.comp +Shader version: 450 +local_size = (4, 4, 2) +0:? Sequence +0:4 Function Definition: main(vu3; (temp void) +0:4 Function Parameters: +0:4 'tid' (in 3-component vector of uint) +0:9 Function Definition: main_aux1(vu3; (temp void) +0:9 Function Parameters: +0:9 'tid' (in 3-component vector of uint LocalInvocationID) +0:? Linker Objects +0:? 'tid' (in 3-component vector of uint LocalInvocationID) + + +Linked compute stage: + + +Shader version: 450 +local_size = (4, 4, 2) +0:? Sequence +0:4 Function Definition: main(vu3; (temp void) +0:4 Function Parameters: +0:4 'tid' (in 3-component vector of uint) +0:9 Function Definition: main_aux1(vu3; (temp void) +0:9 Function Parameters: +0:9 'tid' (in 3-component vector of uint LocalInvocationID) +0:? Linker Objects +0:? 'tid' (in 3-component vector of uint LocalInvocationID) + +// Module Version 10000 +// Generated by (magic number): 80001 +// Id's are bound by 15 + + Capability Shader + 1: ExtInstImport "GLSL.std.450" + MemoryModel Logical GLSL450 + EntryPoint GLCompute 4 "main_aux1" 14 + ExecutionMode 4 LocalSize 4 4 2 + Name 4 "main_aux1" + Name 11 "main(vu3;" + Name 10 "tid" + Name 14 "tid" + Decorate 14(tid) BuiltIn LocalInvocationId + 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: TypePointer Input 7(ivec3) + 14(tid): 13(ptr) Variable Input + 4(main_aux1): 2 Function None 3 + 5: Label + Return + FunctionEnd + 11(main(vu3;): 2 Function None 9 + 10(tid): 8(ptr) FunctionParameter + 12: Label + Return + FunctionEnd diff --git a/Test/hlsl.numthreads.comp b/Test/hlsl.numthreads.comp new file mode 100644 index 00000000..fcc97f37 --- /dev/null +++ b/Test/hlsl.numthreads.comp @@ -0,0 +1,14 @@ + +[numthreads(8,8,1)] +void main(uint3 tid : SV_DispatchThreadID ) +{ +} + +[numTHreaDs(4,4,2)] // case insensitive +void main_aux1(uint3 tid : SV_DispatchThreadID ) +{ +} + +[numthreads(1,4,8)] +void main_aux2(uint3 tid : SV_DispatchThreadID ); + diff --git a/gtests/Hlsl.FromFile.cpp b/gtests/Hlsl.FromFile.cpp index 4d2e792f..a7ef178b 100644 --- a/gtests/Hlsl.FromFile.cpp +++ b/gtests/Hlsl.FromFile.cpp @@ -150,6 +150,7 @@ INSTANTIATE_TEST_CASE_P( {"hlsl.multiReturn.frag", "main"}, {"hlsl.matrixindex.frag", "main"}, {"hlsl.numericsuffixes.frag", "main"}, + {"hlsl.numthreads.comp", "main_aux1"}, {"hlsl.overload.frag", "PixelShaderFunction"}, {"hlsl.pp.line.frag", "main"}, {"hlsl.precise.frag", "main"}, diff --git a/hlsl/CMakeLists.txt b/hlsl/CMakeLists.txt index c7537e27..ec5f1a56 100755 --- a/hlsl/CMakeLists.txt +++ b/hlsl/CMakeLists.txt @@ -1,4 +1,5 @@ set(SOURCES + hlslAttributes.cpp hlslParseHelper.cpp hlslScanContext.cpp hlslOpMap.cpp @@ -6,7 +7,8 @@ set(SOURCES hlslGrammar.cpp hlslParseables.cpp) -set(HEADERS + set(HEADERS + hlslAttributes.h hlslParseHelper.h hlslTokens.h hlslScanContext.h diff --git a/hlsl/hlslAttributes.cpp b/hlsl/hlslAttributes.cpp new file mode 100644 index 00000000..957f282e --- /dev/null +++ b/hlsl/hlslAttributes.cpp @@ -0,0 +1,108 @@ +// +//Copyright (C) 2016 LunarG, Inc. +// +//All rights reserved. +// +//Redistribution and use in source and binary forms, with or without +//modification, are permitted provided that the following conditions +//are met: +// +// Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// +// Redistributions in binary form must reproduce the above +// copyright notice, this list of conditions and the following +// disclaimer in the documentation and/or other materials provided +// with the distribution. +// +// Neither the name of Google, Inc., nor the names of its +// contributors may be used to endorse or promote products derived +// from this software without specific prior written permission. +// +//THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +//"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +//LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS +//FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE +//COPYRIGHT HOLDERS OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, +//INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, +//BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; +//LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER +//CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +//LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN +//ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE +//POSSIBILITY OF SUCH DAMAGE. +// + +#include "hlslAttributes.h" +#include +#include + +namespace glslang { + // Map the given string to an attribute enum from TAttributeType, + // or EatNone if invalid. + TAttributeType TAttributeMap::attributeFromName(const TString& name) + { + // These are case insensitive. + TString lowername(name); + std::transform(lowername.begin(), lowername.end(), lowername.begin(), ::tolower); + + if (lowername == "allow_uav_condition") + return EatAllow_uav_condition; + else if (lowername == "branch") + return EatBranch; + else if (lowername == "call") + return EatCall; + else if (lowername == "domain") + return EatDomain; + else if (lowername == "earlydepthstencil") + return EatEarlydepthstencil; + else if (lowername == "fastopt") + return EatFastopt; + else if (lowername == "flatten") + return EatFlatten; + else if (lowername == "forcecase") + return EatForcecase; + else if (lowername == "instance") + return EatInstance; + else if (lowername == "maxtessfactor") + return EatMaxtessfactor; + else if (lowername == "numthreads") + return EatNumthreads; + else if (lowername == "outputcontrolpoints") + return EatOutputcontrolpoints; + else if (lowername == "outputtopology") + return EatOutputtopology; + else if (lowername == "partitioning") + return EatPartitioning; + else if (lowername == "patchconstantfunc") + return EatPatchconstantfunc; + else if (lowername == "unroll") + return EatUnroll; + else + return EatNone; + } + + // Look up entry, inserting if it's not there, and if name is a valid attribute name + // as known by attributeFromName. + TAttributeType TAttributeMap::setAttribute(const TString* name, TIntermAggregate* value) + { + if (name == nullptr) + return EatNone; + + const TAttributeType attr = attributeFromName(*name); + + if (attr != EatNone) + attributes[attr] = value; + + return attr; + } + + // Look up entry (const version), and return aggregate node. This cannot change the map. + const TIntermAggregate* TAttributeMap::operator[](TAttributeType attr) const + { + const auto entry = attributes.find(attr); + + return (entry == attributes.end()) ? nullptr : entry->second; + } + +} // end namespace glslang diff --git a/hlsl/hlslAttributes.h b/hlsl/hlslAttributes.h new file mode 100644 index 00000000..da5ee5ef --- /dev/null +++ b/hlsl/hlslAttributes.h @@ -0,0 +1,96 @@ +// +//Copyright (C) 2016 LunarG, Inc. +// +//All rights reserved. +// +//Redistribution and use in source and binary forms, with or without +//modification, are permitted provided that the following conditions +//are met: +// +// Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// +// Redistributions in binary form must reproduce the above +// copyright notice, this list of conditions and the following +// disclaimer in the documentation and/or other materials provided +// with the distribution. +// +// Neither the name of Google, Inc., nor the names of its +// contributors may be used to endorse or promote products derived +// from this software without specific prior written permission. +// +//THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +//"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +//LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS +//FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE +//COPYRIGHT HOLDERS OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, +//INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, +//BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; +//LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER +//CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +//LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN +//ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE +//POSSIBILITY OF SUCH DAMAGE. +// + +#ifndef HLSLATTRIBUTES_H_ +#define HLSLATTRIBUTES_H_ + +#include +#include +#include "hlslScanContext.h" +#include "../glslang/Include/Common.h" + +namespace glslang { + enum TAttributeType { + EatNone, + EatAllow_uav_condition, + EatBranch, + EatCall, + EatDomain, + EatEarlydepthstencil, + EatFastopt, + EatFlatten, + EatForcecase, + EatInstance, + EatMaxtessfactor, + EatNumthreads, + EatOutputcontrolpoints, + EatOutputtopology, + EatPartitioning, + EatPatchconstantfunc, + EatUnroll, + }; +} + +namespace std { + // Allow use of TAttributeType enum in hash_map without calling code having to cast. + template <> struct hash { + std::size_t operator()(glslang::TAttributeType attr) const { + return std::hash()(int(attr)); + } + }; +} // end namespace std + +namespace glslang { + class TIntermAggregate; + + class TAttributeMap { + public: + // Search for and potentially add the attribute into the map. Return the + // attribute type enum for it, if found, else EatNone. + TAttributeType setAttribute(const TString* name, TIntermAggregate* value); + + // Const lookup: search for (but do not modify) the attribute in the map. + const TIntermAggregate* operator[](TAttributeType) const; + + protected: + // Find an attribute enum given its name. + static TAttributeType attributeFromName(const TString&); + + std::unordered_map attributes; + }; +} // end namespace glslang + + +#endif // HLSLATTRIBUTES_H_ diff --git a/hlsl/hlslGrammar.cpp b/hlsl/hlslGrammar.cpp index 89465bff..a0cd4161 100755 --- a/hlsl/hlslGrammar.cpp +++ b/hlsl/hlslGrammar.cpp @@ -53,6 +53,7 @@ #include "hlslTokens.h" #include "hlslGrammar.h" +#include "hlslAttributes.h" namespace glslang { @@ -268,6 +269,10 @@ bool HlslGrammar::acceptDeclaration(TIntermNode*& node) node = nullptr; bool list = false; + // attributes + TAttributeMap attributes; + acceptAttributes(attributes); + // typedef bool typedefDecl = acceptTokenClass(EHTokTypedef); @@ -302,7 +307,7 @@ bool HlslGrammar::acceptDeclaration(TIntermNode*& node) parseContext.error(idToken.loc, "function body can't be in a declarator list", "{", ""); if (typedefDecl) parseContext.error(idToken.loc, "function body can't be in a typedef", "{", ""); - return acceptFunctionDefinition(function, node); + return acceptFunctionDefinition(function, node, attributes); } else { if (typedefDecl) parseContext.error(idToken.loc, "function typedefs not implemented", "{", ""); @@ -1594,13 +1599,13 @@ bool HlslGrammar::acceptParameterDeclaration(TFunction& function) // Do the work to create the function definition in addition to // parsing the body (compound_statement). -bool HlslGrammar::acceptFunctionDefinition(TFunction& function, TIntermNode*& node) +bool HlslGrammar::acceptFunctionDefinition(TFunction& function, TIntermNode*& node, const TAttributeMap& attributes) { TFunction& functionDeclarator = parseContext.handleFunctionDeclarator(token.loc, function, false /* not prototype */); TSourceLoc loc = token.loc; // This does a pushScope() - node = parseContext.handleFunctionDefinition(loc, functionDeclarator); + node = parseContext.handleFunctionDefinition(loc, functionDeclarator, attributes); // compound_statement TIntermNode* functionBody = nullptr; @@ -2251,7 +2256,8 @@ bool HlslGrammar::acceptStatement(TIntermNode*& statement) statement = nullptr; // attributes - acceptAttributes(); + TAttributeMap attributes; + acceptAttributes(attributes); // attributed_statement switch (peek()) { @@ -2324,42 +2330,68 @@ bool HlslGrammar::acceptStatement(TIntermNode*& statement) // | FLATTEN // | FORCECASE // | CALL -// -void HlslGrammar::acceptAttributes() +// | DOMAIN +// | EARLYDEPTHSTENCIL +// | INSTANCE +// | MAXTESSFACTOR +// | OUTPUTCONTROLPOINTS +// | OUTPUTTOPOLOGY +// | PARTITIONING +// | PATCHCONSTANTFUNC +// | NUMTHREADS LEFT_PAREN x_size, y_size,z z_size RIGHT_PAREN +// +void HlslGrammar::acceptAttributes(TAttributeMap& attributes) { - // For now, accept the [ XXX(X) ] syntax, but drop. + // For now, accept the [ XXX(X) ] syntax, but drop all but + // numthreads, which is used to set the CS local size. // TODO: subset to correct set? Pass on? do { + HlslToken idToken; + // LEFT_BRACKET? if (! acceptTokenClass(EHTokLeftBracket)) return; // attribute - if (peekTokenClass(EHTokIdentifier)) { - // 'token.string' is the attribute - advanceToken(); + if (acceptIdentifier(idToken)) { + // 'idToken.string' is the attribute } else if (! peekTokenClass(EHTokRightBracket)) { expected("identifier"); advanceToken(); } - // (x) + TIntermAggregate* literals = nullptr; + + // (x, ...) if (acceptTokenClass(EHTokLeftParen)) { + literals = new TIntermAggregate; + TIntermTyped* node; - if (! acceptLiteral(node)) - expected("literal"); - // 'node' has the literal in it + bool expectingLiteral = false; + + while (acceptLiteral(node)) { + expectingLiteral = false; + literals->getSequence().push_back(node); + if (acceptTokenClass(EHTokComma)) + expectingLiteral = true; + } + + // 'literals' is an aggregate with the literals in it if (! acceptTokenClass(EHTokRightParen)) expected(")"); + if (expectingLiteral || literals->getSequence().empty()) + expected("literal"); } // RIGHT_BRACKET - if (acceptTokenClass(EHTokRightBracket)) - continue; - - expected("]"); - return; + if (!acceptTokenClass(EHTokRightBracket)) { + expected("]"); + return; + } + // Add any values we found into the attribute map. This accepts + // (and ignores) values not mapping to a known TAttributeType; + attributes.setAttribute(idToken.string, literals); } while (true); } diff --git a/hlsl/hlslGrammar.h b/hlsl/hlslGrammar.h index 992eb5e9..c3e42f67 100755 --- a/hlsl/hlslGrammar.h +++ b/hlsl/hlslGrammar.h @@ -43,6 +43,8 @@ namespace glslang { + class TAttributeMap; // forward declare + // Should just be the grammar aspect of HLSL. // Described in more detail in hlslGrammar.cpp. @@ -80,7 +82,7 @@ namespace glslang { bool acceptStructDeclarationList(TTypeList*&); bool acceptFunctionParameters(TFunction&); bool acceptParameterDeclaration(TFunction&); - bool acceptFunctionDefinition(TFunction&, TIntermNode*&); + bool acceptFunctionDefinition(TFunction&, TIntermNode*&, const TAttributeMap&); bool acceptParenExpression(TIntermTyped*&); bool acceptExpression(TIntermTyped*&); bool acceptInitializer(TIntermTyped*&); @@ -98,7 +100,7 @@ namespace glslang { bool acceptScopedStatement(TIntermNode*&); bool acceptScopedCompoundStatement(TIntermNode*&); bool acceptNestedStatement(TIntermNode*&); - void acceptAttributes(); + void acceptAttributes(TAttributeMap&); bool acceptSelectionStatement(TIntermNode*&); bool acceptSwitchStatement(TIntermNode*&); bool acceptIterationStatement(TIntermNode*&); diff --git a/hlsl/hlslParseHelper.cpp b/hlsl/hlslParseHelper.cpp index a9e3a107..cf97ec7e 100755 --- a/hlsl/hlslParseHelper.cpp +++ b/hlsl/hlslParseHelper.cpp @@ -37,6 +37,7 @@ #include "hlslParseHelper.h" #include "hlslScanContext.h" #include "hlslGrammar.h" +#include "hlslAttributes.h" #include "../glslang/MachineIndependent/Scan.h" #include "../glslang/MachineIndependent/preprocessor/PpContext.h" @@ -1045,7 +1046,8 @@ TFunction& HlslParseContext::handleFunctionDeclarator(const TSourceLoc& loc, TFu // Handle seeing the function prototype in front of a function definition in the grammar. // The body is handled after this function returns. // -TIntermAggregate* HlslParseContext::handleFunctionDefinition(const TSourceLoc& loc, TFunction& function) +TIntermAggregate* HlslParseContext::handleFunctionDefinition(const TSourceLoc& loc, TFunction& function, + const TAttributeMap& attributes) { currentCaller = function.getMangledName(); TSymbol* symbol = symbolTable.find(function.getMangledName()); @@ -1134,6 +1136,15 @@ TIntermAggregate* HlslParseContext::handleFunctionDefinition(const TSourceLoc& l controlFlowNestingLevel = 0; postMainReturn = false; + // Handle function attributes + const TIntermAggregate* numThreadliterals = attributes[EatNumthreads]; + if (numThreadliterals != nullptr && inEntryPoint) { + const TIntermSequence& sequence = numThreadliterals->getSequence(); + + for (int lid = 0; lid < int(sequence.size()); ++lid) + intermediate.setLocalSize(lid, sequence[lid]->getAsConstantUnion()->getConstArray()[0].getIConst()); + } + return paramNodes; } diff --git a/hlsl/hlslParseHelper.h b/hlsl/hlslParseHelper.h index 2eeba5ac..8410c344 100755 --- a/hlsl/hlslParseHelper.h +++ b/hlsl/hlslParseHelper.h @@ -41,6 +41,8 @@ namespace glslang { +class TAttributeMap; // forward declare + class HlslParseContext : public TParseContextBase { public: HlslParseContext(TSymbolTable&, TIntermediate&, bool parsingBuiltins, @@ -69,7 +71,7 @@ public: TIntermTyped* handleDotDereference(const TSourceLoc&, TIntermTyped* base, const TString& field); void assignLocations(TVariable& variable); TFunction& handleFunctionDeclarator(const TSourceLoc&, TFunction& function, bool prototype); - TIntermAggregate* handleFunctionDefinition(const TSourceLoc&, TFunction&); + TIntermAggregate* handleFunctionDefinition(const TSourceLoc&, TFunction&, const TAttributeMap&); void handleFunctionBody(const TSourceLoc&, TFunction&, TIntermNode* functionBody, TIntermNode*& node); void remapEntryPointIO(TFunction& function); void remapNonEntryPointIO(TFunction& function); -- cgit v1.2.3 From 3226b0835ca34e363fc66939e3a20b8753e07bd7 Mon Sep 17 00:00:00 2001 From: steve-lunarg Date: Wed, 26 Oct 2016 19:18:55 -0600 Subject: HLSL: Add min*{float,int,uint} types These HLSL types are guaranteed to have at least the given number of bits, but may have more. min{16,10}float is mapped to EbtFloat at medium precision -> SPIRV RelaxedPrecision min{16,12}int and min16uint are mapped to mediump -> SPIR-V RelaxedPrecision --- Test/baseResults/hlsl.mintypes.frag.out | 222 ++++++++++++++++++++++++++++++++ Test/hlsl.mintypes.frag | 49 +++++++ gtests/Hlsl.FromFile.cpp | 1 + hlsl/hlslGrammar.cpp | 95 +++++++++++++- hlsl/hlslScanContext.cpp | 43 ++++++- hlsl/hlslTokens.h | 20 +++ 6 files changed, 428 insertions(+), 2 deletions(-) create mode 100644 Test/baseResults/hlsl.mintypes.frag.out create mode 100644 Test/hlsl.mintypes.frag diff --git a/Test/baseResults/hlsl.mintypes.frag.out b/Test/baseResults/hlsl.mintypes.frag.out new file mode 100644 index 00000000..34d326e0 --- /dev/null +++ b/Test/baseResults/hlsl.mintypes.frag.out @@ -0,0 +1,222 @@ +hlsl.mintypes.frag +Shader version: 450 +gl_FragCoord origin is upper left +0:? Sequence +0:9 Function Definition: main( (temp structure{temp 4-component vector of float Color}) +0:9 Function Parameters: +0:? Sequence +0:40 add (temp mediump 2-component vector of float) +0:40 'mf16_2' (temp mediump 2-component vector of float) +0:40 'mf16' (temp mediump float) +0:41 add (temp mediump 2-component vector of float) +0:41 'mf10_2' (temp mediump 2-component vector of float) +0:41 'mf10' (temp mediump float) +0:42 add (temp mediump 2-component vector of int) +0:42 'mi16_2' (temp mediump 2-component vector of int) +0:42 'mi16' (temp mediump int) +0:43 add (temp mediump 2-component vector of int) +0:43 'mi12_2' (temp mediump 2-component vector of int) +0:43 'mi12' (temp mediump int) +0:44 add (temp mediump 2-component vector of uint) +0:44 'mu16_2' (temp mediump 2-component vector of uint) +0:44 'mu16' (temp mediump uint) +0:47 move second child to first child (temp 4-component vector of float) +0:47 Color: direct index for structure (temp 4-component vector of float) +0:47 'psout' (temp structure{temp 4-component vector of float Color}) +0:47 Constant: +0:47 0 (const int) +0:47 Constant: +0:47 0.000000 +0:47 0.000000 +0:47 0.000000 +0:47 0.000000 +0:48 Sequence +0:48 Sequence +0:48 move second child to first child (temp 4-component vector of float) +0:? 'Color' (layout(location=0 ) out 4-component vector of float) +0:48 Color: direct index for structure (temp 4-component vector of float) +0:48 'psout' (temp structure{temp 4-component vector of float Color}) +0:48 Constant: +0:48 0 (const int) +0:48 Branch: Return +0:? Linker Objects +0:? 'Color' (layout(location=0 ) out 4-component vector of float) +0:? 'anon@0' (uniform block{layout(offset=0 ) uniform mediump float b1a, layout(offset=4 ) uniform mediump float b1b}) + + +Linked fragment stage: + + +Shader version: 450 +gl_FragCoord origin is upper left +0:? Sequence +0:9 Function Definition: main( (temp structure{temp 4-component vector of float Color}) +0:9 Function Parameters: +0:? Sequence +0:40 add (temp mediump 2-component vector of float) +0:40 'mf16_2' (temp mediump 2-component vector of float) +0:40 'mf16' (temp mediump float) +0:41 add (temp mediump 2-component vector of float) +0:41 'mf10_2' (temp mediump 2-component vector of float) +0:41 'mf10' (temp mediump float) +0:42 add (temp mediump 2-component vector of int) +0:42 'mi16_2' (temp mediump 2-component vector of int) +0:42 'mi16' (temp mediump int) +0:43 add (temp mediump 2-component vector of int) +0:43 'mi12_2' (temp mediump 2-component vector of int) +0:43 'mi12' (temp mediump int) +0:44 add (temp mediump 2-component vector of uint) +0:44 'mu16_2' (temp mediump 2-component vector of uint) +0:44 'mu16' (temp mediump uint) +0:47 move second child to first child (temp 4-component vector of float) +0:47 Color: direct index for structure (temp 4-component vector of float) +0:47 'psout' (temp structure{temp 4-component vector of float Color}) +0:47 Constant: +0:47 0 (const int) +0:47 Constant: +0:47 0.000000 +0:47 0.000000 +0:47 0.000000 +0:47 0.000000 +0:48 Sequence +0:48 Sequence +0:48 move second child to first child (temp 4-component vector of float) +0:? 'Color' (layout(location=0 ) out 4-component vector of float) +0:48 Color: direct index for structure (temp 4-component vector of float) +0:48 'psout' (temp structure{temp 4-component vector of float Color}) +0:48 Constant: +0:48 0 (const int) +0:48 Branch: Return +0:? Linker Objects +0:? 'Color' (layout(location=0 ) out 4-component vector of float) +0:? 'anon@0' (uniform block{layout(offset=0 ) uniform mediump float b1a, layout(offset=4 ) uniform mediump float b1b}) + +// Module Version 10000 +// Generated by (magic number): 80001 +// Id's are bound by 65 + + Capability Shader + 1: ExtInstImport "GLSL.std.450" + MemoryModel Logical GLSL450 + EntryPoint Fragment 4 "main" 58 + ExecutionMode 4 OriginUpperLeft + Name 4 "main" + Name 9 "mf16_2" + Name 12 "mf16" + Name 16 "mf10_2" + Name 18 "mf10" + Name 25 "mi16_2" + Name 28 "mi16" + Name 32 "mi12_2" + Name 34 "mi12" + Name 41 "mu16_2" + Name 44 "mu16" + Name 49 "PS_OUTPUT" + MemberName 49(PS_OUTPUT) 0 "Color" + Name 51 "psout" + Name 58 "Color" + Name 62 "$Global" + MemberName 62($Global) 0 "b1a" + MemberName 62($Global) 1 "b1b" + Name 64 "" + Decorate 9(mf16_2) RelaxedPrecision + Decorate 10 RelaxedPrecision + Decorate 12(mf16) RelaxedPrecision + Decorate 13 RelaxedPrecision + Decorate 14 RelaxedPrecision + Decorate 15 RelaxedPrecision + Decorate 16(mf10_2) RelaxedPrecision + Decorate 17 RelaxedPrecision + Decorate 18(mf10) RelaxedPrecision + Decorate 19 RelaxedPrecision + Decorate 20 RelaxedPrecision + Decorate 21 RelaxedPrecision + Decorate 25(mi16_2) RelaxedPrecision + Decorate 26 RelaxedPrecision + Decorate 28(mi16) RelaxedPrecision + Decorate 29 RelaxedPrecision + Decorate 30 RelaxedPrecision + Decorate 31 RelaxedPrecision + Decorate 32(mi12_2) RelaxedPrecision + Decorate 33 RelaxedPrecision + Decorate 34(mi12) RelaxedPrecision + Decorate 35 RelaxedPrecision + Decorate 36 RelaxedPrecision + Decorate 37 RelaxedPrecision + Decorate 41(mu16_2) RelaxedPrecision + Decorate 42 RelaxedPrecision + Decorate 44(mu16) RelaxedPrecision + Decorate 45 RelaxedPrecision + Decorate 46 RelaxedPrecision + Decorate 47 RelaxedPrecision + Decorate 58(Color) Location 0 + MemberDecorate 62($Global) 0 RelaxedPrecision + MemberDecorate 62($Global) 1 RelaxedPrecision + Decorate 62($Global) Block + Decorate 64 DescriptorSet 0 + 2: TypeVoid + 3: TypeFunction 2 + 6: TypeFloat 32 + 7: TypeVector 6(float) 2 + 8: TypePointer Function 7(fvec2) + 11: TypePointer Function 6(float) + 22: TypeInt 32 1 + 23: TypeVector 22(int) 2 + 24: TypePointer Function 23(ivec2) + 27: TypePointer Function 22(int) + 38: TypeInt 32 0 + 39: TypeVector 38(int) 2 + 40: TypePointer Function 39(ivec2) + 43: TypePointer Function 38(int) + 48: TypeVector 6(float) 4 + 49(PS_OUTPUT): TypeStruct 48(fvec4) + 50: TypePointer Function 49(PS_OUTPUT) + 52: 22(int) Constant 0 + 53: 6(float) Constant 0 + 54: 48(fvec4) ConstantComposite 53 53 53 53 + 55: TypePointer Function 48(fvec4) + 57: TypePointer Output 48(fvec4) + 58(Color): 57(ptr) Variable Output + 62($Global): TypeStruct 6(float) 6(float) + 63: TypePointer Uniform 62($Global) + 64: 63(ptr) Variable Uniform + 4(main): 2 Function None 3 + 5: Label + 9(mf16_2): 8(ptr) Variable Function + 12(mf16): 11(ptr) Variable Function + 16(mf10_2): 8(ptr) Variable Function + 18(mf10): 11(ptr) Variable Function + 25(mi16_2): 24(ptr) Variable Function + 28(mi16): 27(ptr) Variable Function + 32(mi12_2): 24(ptr) Variable Function + 34(mi12): 27(ptr) Variable Function + 41(mu16_2): 40(ptr) Variable Function + 44(mu16): 43(ptr) Variable Function + 51(psout): 50(ptr) Variable Function + 10: 7(fvec2) Load 9(mf16_2) + 13: 6(float) Load 12(mf16) + 14: 7(fvec2) CompositeConstruct 13 13 + 15: 7(fvec2) FAdd 10 14 + 17: 7(fvec2) Load 16(mf10_2) + 19: 6(float) Load 18(mf10) + 20: 7(fvec2) CompositeConstruct 19 19 + 21: 7(fvec2) FAdd 17 20 + 26: 23(ivec2) Load 25(mi16_2) + 29: 22(int) Load 28(mi16) + 30: 23(ivec2) CompositeConstruct 29 29 + 31: 23(ivec2) IAdd 26 30 + 33: 23(ivec2) Load 32(mi12_2) + 35: 22(int) Load 34(mi12) + 36: 23(ivec2) CompositeConstruct 35 35 + 37: 23(ivec2) IAdd 33 36 + 42: 39(ivec2) Load 41(mu16_2) + 45: 38(int) Load 44(mu16) + 46: 39(ivec2) CompositeConstruct 45 45 + 47: 39(ivec2) IAdd 42 46 + 56: 55(ptr) AccessChain 51(psout) 52 + Store 56 54 + 59: 55(ptr) AccessChain 51(psout) 52 + 60: 48(fvec4) Load 59 + Store 58(Color) 60 + Return + FunctionEnd diff --git a/Test/hlsl.mintypes.frag b/Test/hlsl.mintypes.frag new file mode 100644 index 00000000..ad47e68e --- /dev/null +++ b/Test/hlsl.mintypes.frag @@ -0,0 +1,49 @@ +struct PS_OUTPUT +{ + float4 Color : SV_Target0; +}; + +uniform min16float b1a, b1b; + +PS_OUTPUT main() +{ + min16float mf16; + min16float1 mf16_1; + min16float2 mf16_2; + min16float3 mf16_3; + min16float4 mf16_4; + + min10float mf10; + min10float1 mf10_1; + min10float2 mf10_2; + min10float3 mf10_3; + min10float4 mf12_4; + + min16int mi16; + min16int1 mi16_1; + min16int2 mi16_2; + min16int3 mi16_3; + min16int4 mi16_4; + + min12int mi12; + min12int1 mi12_1; + min12int2 mi12_2; + min12int3 mi12_3; + min12int4 mi12_4; + + min16uint mu16; + min16uint1 mu16_1; + min16uint2 mu16_2; + min16uint3 mu16_3; + min16uint4 mu16_4; + + mf16_2 + mf16; + mf10_2 + mf10; + mi16_2 + mi16; + mi12_2 + mi12; + mu16_2 + mu16; + + PS_OUTPUT psout; + psout.Color = 0; + return psout; +} diff --git a/gtests/Hlsl.FromFile.cpp b/gtests/Hlsl.FromFile.cpp index 4d2e792f..9a6072a3 100644 --- a/gtests/Hlsl.FromFile.cpp +++ b/gtests/Hlsl.FromFile.cpp @@ -146,6 +146,7 @@ INSTANTIATE_TEST_CASE_P( {"hlsl.logical.unary.frag", "main"}, {"hlsl.logical.binary.frag", "main"}, {"hlsl.logical.binary.vec.frag", "main"}, + {"hlsl.mintypes.frag", "main"}, {"hlsl.multiEntry.vert", "RealEntrypoint"}, {"hlsl.multiReturn.frag", "main"}, {"hlsl.matrixindex.frag", "main"}, diff --git a/hlsl/hlslGrammar.cpp b/hlsl/hlslGrammar.cpp index 89465bff..4b2d6a23 100755 --- a/hlsl/hlslGrammar.cpp +++ b/hlsl/hlslGrammar.cpp @@ -465,7 +465,7 @@ bool HlslGrammar::acceptFullySpecifiedType(TType& type) // whatever comes from acceptQualifier. assert(qualifier.layoutFormat == ElfNone); qualifier.layoutFormat = type.getQualifier().layoutFormat; - + qualifier.precision = type.getQualifier().precision; type.getQualifier() = qualifier; } @@ -967,6 +967,14 @@ bool HlslGrammar::acceptTextureType(TType& type) // Otherwise, return false, and don't advance bool HlslGrammar::acceptType(TType& type) { + // Basic types for min* types, broken out here in case of future + // changes, e.g, to use native halfs. + static const TBasicType min16float_bt = EbtFloat; + static const TBasicType min10float_bt = EbtFloat; + static const TBasicType min16int_bt = EbtInt; + static const TBasicType min12int_bt = EbtInt; + static const TBasicType min16uint_bt = EbtUint; + switch (peek()) { case EHTokVector: return acceptVectorTemplateType(type); @@ -1118,6 +1126,91 @@ bool HlslGrammar::acceptType(TType& type) new(&type) TType(EbtBool, EvqTemporary, 4); break; + case EHTokMin16float: + new(&type) TType(min16float_bt, EvqTemporary, EpqMedium); + break; + case EHTokMin16float1: + new(&type) TType(min16float_bt, EvqTemporary, EpqMedium); + type.makeVector(); + break; + case EHTokMin16float2: + new(&type) TType(min16float_bt, EvqTemporary, EpqMedium, 2); + break; + case EHTokMin16float3: + new(&type) TType(min16float_bt, EvqTemporary, EpqMedium, 3); + break; + case EHTokMin16float4: + new(&type) TType(min16float_bt, EvqTemporary, EpqMedium, 4); + break; + + case EHTokMin10float: + new(&type) TType(min10float_bt, EvqTemporary, EpqMedium); + break; + case EHTokMin10float1: + new(&type) TType(min10float_bt, EvqTemporary, EpqMedium); + type.makeVector(); + break; + case EHTokMin10float2: + new(&type) TType(min10float_bt, EvqTemporary, EpqMedium, 2); + break; + case EHTokMin10float3: + new(&type) TType(min10float_bt, EvqTemporary, EpqMedium, 3); + break; + case EHTokMin10float4: + new(&type) TType(min10float_bt, EvqTemporary, EpqMedium, 4); + break; + + case EHTokMin16int: + new(&type) TType(min16int_bt, EvqTemporary, EpqMedium); + break; + case EHTokMin16int1: + new(&type) TType(min16int_bt, EvqTemporary, EpqMedium); + type.makeVector(); + break; + case EHTokMin16int2: + new(&type) TType(min16int_bt, EvqTemporary, EpqMedium, 2); + break; + case EHTokMin16int3: + new(&type) TType(min16int_bt, EvqTemporary, EpqMedium, 3); + break; + case EHTokMin16int4: + new(&type) TType(min16int_bt, EvqTemporary, EpqMedium, 4); + break; + + case EHTokMin12int: + new(&type) TType(min12int_bt, EvqTemporary, EpqMedium); + break; + case EHTokMin12int1: + new(&type) TType(min12int_bt, EvqTemporary, EpqMedium); + type.makeVector(); + break; + case EHTokMin12int2: + new(&type) TType(min12int_bt, EvqTemporary, EpqMedium, 2); + break; + case EHTokMin12int3: + new(&type) TType(min12int_bt, EvqTemporary, EpqMedium, 3); + break; + case EHTokMin12int4: + new(&type) TType(min12int_bt, EvqTemporary, EpqMedium, 4); + break; + + case EHTokMin16uint: + new(&type) TType(min16uint_bt, EvqTemporary, EpqMedium); + break; + case EHTokMin16uint1: + new(&type) TType(min16uint_bt, EvqTemporary, EpqMedium); + type.makeVector(); + break; + case EHTokMin16uint2: + new(&type) TType(min16uint_bt, EvqTemporary, EpqMedium, 2); + break; + case EHTokMin16uint3: + new(&type) TType(min16uint_bt, EvqTemporary, EpqMedium, 3); + break; + case EHTokMin16uint4: + new(&type) TType(min16uint_bt, EvqTemporary, EpqMedium, 4); + break; + case EHTokInt1x1: new(&type) TType(EbtInt, EvqTemporary, 0, 1, 1); break; diff --git a/hlsl/hlslScanContext.cpp b/hlsl/hlslScanContext.cpp index f25bdd8c..e7cd1fcf 100755 --- a/hlsl/hlslScanContext.cpp +++ b/hlsl/hlslScanContext.cpp @@ -136,7 +136,7 @@ void HlslScanContext::fillInKeywordMap() (*KeywordMap)["min10float"] = EHTokMin10float; (*KeywordMap)["min16int"] = EHTokMin16int; (*KeywordMap)["min12int"] = EHTokMin12int; - (*KeywordMap)["min16uint"] = EHTokMin16int; + (*KeywordMap)["min16uint"] = EHTokMin16uint; (*KeywordMap)["bool1"] = EHTokBool1; (*KeywordMap)["bool2"] = EHTokBool2; @@ -159,6 +159,27 @@ void HlslScanContext::fillInKeywordMap() (*KeywordMap)["uint3"] = EHTokUint3; (*KeywordMap)["uint4"] = EHTokUint4; + (*KeywordMap)["min16float1"] = EHTokMin16float1; + (*KeywordMap)["min16float2"] = EHTokMin16float2; + (*KeywordMap)["min16float3"] = EHTokMin16float3; + (*KeywordMap)["min16float4"] = EHTokMin16float4; + (*KeywordMap)["min10float1"] = EHTokMin10float1; + (*KeywordMap)["min10float2"] = EHTokMin10float2; + (*KeywordMap)["min10float3"] = EHTokMin10float3; + (*KeywordMap)["min10float4"] = EHTokMin10float4; + (*KeywordMap)["min16int1"] = EHTokMin16int1; + (*KeywordMap)["min16int2"] = EHTokMin16int2; + (*KeywordMap)["min16int3"] = EHTokMin16int3; + (*KeywordMap)["min16int4"] = EHTokMin16int4; + (*KeywordMap)["min12int1"] = EHTokMin12int1; + (*KeywordMap)["min12int2"] = EHTokMin12int2; + (*KeywordMap)["min12int3"] = EHTokMin12int3; + (*KeywordMap)["min12int4"] = EHTokMin12int4; + (*KeywordMap)["min16uint1"] = EHTokMin16uint1; + (*KeywordMap)["min16uint2"] = EHTokMin16uint2; + (*KeywordMap)["min16uint3"] = EHTokMin16uint3; + (*KeywordMap)["min16uint4"] = EHTokMin16uint4; + (*KeywordMap)["int1x1"] = EHTokInt1x1; (*KeywordMap)["int1x2"] = EHTokInt1x2; (*KeywordMap)["int1x3"] = EHTokInt1x3; @@ -518,6 +539,26 @@ EHlslTokenClass HlslScanContext::tokenizeIdentifier() case EHTokUint2: case EHTokUint3: case EHTokUint4: + case EHTokMin16float1: + case EHTokMin16float2: + case EHTokMin16float3: + case EHTokMin16float4: + case EHTokMin10float1: + case EHTokMin10float2: + case EHTokMin10float3: + case EHTokMin10float4: + case EHTokMin16int1: + case EHTokMin16int2: + case EHTokMin16int3: + case EHTokMin16int4: + case EHTokMin12int1: + case EHTokMin12int2: + case EHTokMin12int3: + case EHTokMin12int4: + case EHTokMin16uint1: + case EHTokMin16uint2: + case EHTokMin16uint3: + case EHTokMin16uint4: // matrix types case EHTokInt1x1: diff --git a/hlsl/hlslTokens.h b/hlsl/hlslTokens.h index 2994001d..d634c8ee 100755 --- a/hlsl/hlslTokens.h +++ b/hlsl/hlslTokens.h @@ -108,6 +108,26 @@ enum EHlslTokenClass { EHTokUint2, EHTokUint3, EHTokUint4, + EHTokMin16float1, + EHTokMin16float2, + EHTokMin16float3, + EHTokMin16float4, + EHTokMin10float1, + EHTokMin10float2, + EHTokMin10float3, + EHTokMin10float4, + EHTokMin16int1, + EHTokMin16int2, + EHTokMin16int3, + EHTokMin16int4, + EHTokMin12int1, + EHTokMin12int2, + EHTokMin12int3, + EHTokMin12int4, + EHTokMin16uint1, + EHTokMin16uint2, + EHTokMin16uint3, + EHTokMin16uint4, // matrix types EHTokInt1x1, -- cgit v1.2.3 From e301f67828efa18b37ee3d2144951ab434402767 Mon Sep 17 00:00:00 2001 From: David Neto Date: Mon, 31 Oct 2016 17:02:45 -0400 Subject: Use std::atoi instead of std::stoi Some Android cross cross-compilers don't have std::stoi. E.g. i686-linux-android-g++ from Android NDK r10e don't have std::stoi. --- StandAlone/ResourceLimits.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/StandAlone/ResourceLimits.cpp b/StandAlone/ResourceLimits.cpp index 10ede096..e22ec801 100644 --- a/StandAlone/ResourceLimits.cpp +++ b/StandAlone/ResourceLimits.cpp @@ -263,7 +263,7 @@ void DecodeResourceLimits(TBuiltInResource* resources, char* config) return; } - const int value = std::stoi(valueStr); + const int value = std::atoi(valueStr.c_str()); if (tokenStr == "MaxLights") resources->maxLights = value; -- cgit v1.2.3 From 5b2d667fea549481e534033bc046caf2a13b0d8f Mon Sep 17 00:00:00 2001 From: steve-lunarg Date: Tue, 1 Nov 2016 08:51:46 -0600 Subject: Fix build warnings in remapper, re-indent for glslang standard This has no functional changes. --- glslang/MachineIndependent/iomapper.cpp | 227 +++++++++++++++++--------------- 1 file changed, 119 insertions(+), 108 deletions(-) diff --git a/glslang/MachineIndependent/iomapper.cpp b/glslang/MachineIndependent/iomapper.cpp index 8ea4506f..2ee6caef 100644 --- a/glslang/MachineIndependent/iomapper.cpp +++ b/glslang/MachineIndependent/iomapper.cpp @@ -132,7 +132,7 @@ public: } } - private: +private: TVarLiveMap& varLiveList; }; @@ -174,15 +174,16 @@ struct TResolverAdaptor , error(e) { } + inline void operator()(TVarEntryInfo& ent) { - bool isValid = resolver.validateBinding(stage, ent.symbol->getName().c_str(), ent.symbol->getType(), ent.live); + const bool isValid = resolver.validateBinding(stage, ent.symbol->getName().c_str(), ent.symbol->getType(), ent.live); if (isValid) { ent.newBinding = resolver.resolveBinding(stage, ent.symbol->getName().c_str(), ent.symbol->getType(), ent.live); ent.newSet = resolver.resolveSet(stage, ent.symbol->getName().c_str(), ent.symbol->getType(), ent.live); if (ent.newBinding != -1) { - if (ent.newBinding >= TQualifier::layoutBindingEnd) { + if (ent.newBinding >= int(TQualifier::layoutBindingEnd)) { TString err = "mapped binding out of range: " + ent.symbol->getName(); infoSink.info.message(EPrefixInternalError, err.c_str()); @@ -190,7 +191,7 @@ struct TResolverAdaptor } } if (ent.newSet != -1) { - if (ent.newSet >= TQualifier::layoutSetEnd) { + if (ent.newSet >= int(TQualifier::layoutSetEnd)) { TString err = "mapped set out of range: " + ent.symbol->getName(); infoSink.info.message(EPrefixInternalError, err.c_str()); @@ -203,6 +204,7 @@ struct TResolverAdaptor error = true; } } + EShLanguage stage; TIoMapResolver& resolver; TInfoSink& infoSink; @@ -218,107 +220,114 @@ struct TResolverAdaptor */ struct TDefaultIoResolver : public glslang::TIoMapResolver { - int baseSamplerBinding; - int baseTextureBinding; - int baseUboBinding; - bool doAutoMapping; - typedef std::vector TSlotSet; - typedef std::unordered_map TSlotSetMap; - TSlotSetMap slots; - TSlotSet::iterator findSlot(int set, int slot) - { - return std::lower_bound(slots[set].begin(), slots[set].end(), slot); - } - bool checkEmpty(int set, int slot) - { - TSlotSet::iterator at = findSlot(set, slot); - return !(at != slots[set].end() && *at == slot); - } - int reserveSlot(int set, int slot) - { - TSlotSet::iterator at = findSlot(set, slot); - slots[set].insert(at, slot); - return slot; - } - int getFreeSlot(int set, int base) - { - TSlotSet::iterator at = findSlot(set, base); - if (at == slots[set].end()) - return reserveSlot(set, base); - - // look in locksteps, if they not match, then there is a free slot - for (; at != slots[set].end(); ++at, ++base) - if (*at != base) - break; - return reserveSlot(set, base); - } - bool validateBinding(EShLanguage stage, const char* /*name*/, const glslang::TType& type, bool /*is_live*/) override - { - if (type.getQualifier().hasBinding()) { - int set; - if (type.getQualifier().hasSet()) - set = type.getQualifier().layoutSet; - else - set = 0; - - if (type.getBasicType() == glslang::EbtSampler) { - const glslang::TSampler& sampler = type.getSampler(); - if (sampler.isPureSampler()) - return checkEmpty(set, baseSamplerBinding + type.getQualifier().layoutBinding); - - if (sampler.isTexture()) - return checkEmpty(set, baseTextureBinding + type.getQualifier().layoutBinding); - } + int baseSamplerBinding; + int baseTextureBinding; + int baseUboBinding; + bool doAutoMapping; + typedef std::vector TSlotSet; + typedef std::unordered_map TSlotSetMap; + TSlotSetMap slots; + + TSlotSet::iterator findSlot(int set, int slot) + { + return std::lower_bound(slots[set].begin(), slots[set].end(), slot); + } - if (type.getQualifier().isUniformOrBuffer()) - return checkEmpty(set, baseUboBinding + type.getQualifier().layoutBinding); + bool checkEmpty(int set, int slot) + { + TSlotSet::iterator at = findSlot(set, slot); + return !(at != slots[set].end() && *at == slot); } - return true; - } - int resolveBinding(EShLanguage stage, const char* /*name*/, const glslang::TType& type, bool is_live) override - { - int set; - if (type.getQualifier().hasSet()) - set = type.getQualifier().layoutSet; - else - set = 0; - - if (type.getQualifier().hasBinding()) { - if (type.getBasicType() == glslang::EbtSampler) { - const glslang::TSampler& sampler = type.getSampler(); - if (sampler.isPureSampler()) - return reserveSlot(set, baseSamplerBinding + type.getQualifier().layoutBinding); - - if (sampler.isTexture()) - return reserveSlot(set, baseTextureBinding + type.getQualifier().layoutBinding); - } - if (type.getQualifier().isUniformOrBuffer()) - return reserveSlot(set, baseUboBinding + type.getQualifier().layoutBinding); - } else if (is_live && doAutoMapping) { - // find free slot, the caller did make sure it passes all vars with binding - // first and now all are passed that do not have a binding and needs one - if (type.getBasicType() == glslang::EbtSampler) { - const glslang::TSampler& sampler = type.getSampler(); - if (sampler.isPureSampler()) - return getFreeSlot(set, baseSamplerBinding); - - if (sampler.isTexture()) - return getFreeSlot(set, baseTextureBinding); - } + int reserveSlot(int set, int slot) + { + TSlotSet::iterator at = findSlot(set, slot); + slots[set].insert(at, slot); + return slot; + } - if (type.getQualifier().isUniformOrBuffer()) - return getFreeSlot(set, baseUboBinding); + int getFreeSlot(int set, int base) + { + TSlotSet::iterator at = findSlot(set, base); + if (at == slots[set].end()) + return reserveSlot(set, base); + + // look in locksteps, if they not match, then there is a free slot + for (; at != slots[set].end(); ++at, ++base) + if (*at != base) + break; + return reserveSlot(set, base); } - return -1; - } - int resolveSet(EShLanguage /*stage*/, const char* /*name*/, const glslang::TType& type, bool /*is_live*/) override - { - if (type.getQualifier().hasSet()) - return type.getQualifier().layoutSet; - return 0; - } + bool validateBinding(EShLanguage /*stage*/, const char* /*name*/, const glslang::TType& type, bool /*is_live*/) override + { + if (type.getQualifier().hasBinding()) { + int set; + if (type.getQualifier().hasSet()) + set = type.getQualifier().layoutSet; + else + set = 0; + + if (type.getBasicType() == glslang::EbtSampler) { + const glslang::TSampler& sampler = type.getSampler(); + if (sampler.isPureSampler()) + return checkEmpty(set, baseSamplerBinding + type.getQualifier().layoutBinding); + + if (sampler.isTexture()) + return checkEmpty(set, baseTextureBinding + type.getQualifier().layoutBinding); + } + + if (type.getQualifier().isUniformOrBuffer()) + return checkEmpty(set, baseUboBinding + type.getQualifier().layoutBinding); + } + return true; + } + + int resolveBinding(EShLanguage /*stage*/, const char* /*name*/, const glslang::TType& type, bool is_live) override + { + int set; + if (type.getQualifier().hasSet()) + set = type.getQualifier().layoutSet; + else + set = 0; + + if (type.getQualifier().hasBinding()) { + if (type.getBasicType() == glslang::EbtSampler) { + const glslang::TSampler& sampler = type.getSampler(); + if (sampler.isPureSampler()) + return reserveSlot(set, baseSamplerBinding + type.getQualifier().layoutBinding); + + if (sampler.isTexture()) + return reserveSlot(set, baseTextureBinding + type.getQualifier().layoutBinding); + } + + if (type.getQualifier().isUniformOrBuffer()) + return reserveSlot(set, baseUboBinding + type.getQualifier().layoutBinding); + } else if (is_live && doAutoMapping) { + // find free slot, the caller did make sure it passes all vars with binding + // first and now all are passed that do not have a binding and needs one + if (type.getBasicType() == glslang::EbtSampler) { + const glslang::TSampler& sampler = type.getSampler(); + if (sampler.isPureSampler()) + return getFreeSlot(set, baseSamplerBinding); + + if (sampler.isTexture()) + return getFreeSlot(set, baseTextureBinding); + } + + if (type.getQualifier().isUniformOrBuffer()) + return getFreeSlot(set, baseUboBinding); + } + + return -1; + } + + int resolveSet(EShLanguage /*stage*/, const char* /*name*/, const glslang::TType& type, bool /*is_live*/) override + { + if (type.getQualifier().hasSet()) + return type.getQualifier().layoutSet; + return 0; + } }; // Map I/O variables to provided offsets, and make bindings for @@ -345,12 +354,12 @@ bool TIoMapper::addStage(EShLanguage stage, TIntermediate &intermediate, TInfoSi // if no resolver is provided, use the default resolver with the given shifts and auto map settings TDefaultIoResolver defaultResolver; if (resolver == NULL) { - defaultResolver.baseSamplerBinding = intermediate.getShiftSamplerBinding(); - defaultResolver.baseTextureBinding = intermediate.getShiftTextureBinding(); - defaultResolver.baseUboBinding = intermediate.getShiftUboBinding(); - defaultResolver.doAutoMapping = intermediate.getAutoMapBindings(); + defaultResolver.baseSamplerBinding = intermediate.getShiftSamplerBinding(); + defaultResolver.baseTextureBinding = intermediate.getShiftTextureBinding(); + defaultResolver.baseUboBinding = intermediate.getShiftUboBinding(); + defaultResolver.doAutoMapping = intermediate.getAutoMapBindings(); - resolver = &defaultResolver; + resolver = &defaultResolver; } TVarLiveMap varMap; @@ -365,6 +374,7 @@ bool TIoMapper::addStage(EShLanguage stage, TIntermediate &intermediate, TInfoSi iter_binding_live.functions.pop_back(); function->traverse(&iter_binding_live); } + // sort entries by priority. see TVarEntryInfo::TOrderByPriority for info. std::sort(varMap.begin(), varMap.end(), TVarEntryInfo::TOrderByPriority()); @@ -373,11 +383,12 @@ bool TIoMapper::addStage(EShLanguage stage, TIntermediate &intermediate, TInfoSi std::for_each(varMap.begin(), varMap.end(), doResolve); if (!hadError) { - // sort by id again, so we can use lower bound to find entries - std::sort(varMap.begin(), varMap.end(), TVarEntryInfo::TOrderById()); - TVarSetTraverser iter_iomap(intermediate, varMap); - root->traverse(&iter_iomap); + // sort by id again, so we can use lower bound to find entries + std::sort(varMap.begin(), varMap.end(), TVarEntryInfo::TOrderById()); + TVarSetTraverser iter_iomap(intermediate, varMap); + root->traverse(&iter_iomap); } + return !hadError; } -- cgit v1.2.3 From 9088be4c0738b4dd4dd3bc91aac5eeed602f47a5 Mon Sep 17 00:00:00 2001 From: steve-lunarg Date: Tue, 1 Nov 2016 10:31:42 -0600 Subject: Add UAV (image) binding offset and HLSL register support This PR adds: 1. The "u" register class for RW* objects. 2. --shift-image-bindings (== --sib), analogous to --shift-texture-bindings etc. 3. Case insensitive reg classes. 4. Tests for above. --- StandAlone/StandAlone.cpp | 10 ++ Test/baseResults/hlsl.rw.register.frag.out | 158 +++++++++++++++++++++++++ Test/baseResults/spv.rw.autoassign.frag.out | 70 +++++++++++ Test/hlsl.rw.register.frag | 18 +++ Test/spv.rw.autoassign.frag | 18 +++ glslang/MachineIndependent/ShaderLang.cpp | 1 + glslang/MachineIndependent/iomapper.cpp | 13 +- glslang/MachineIndependent/localintermediate.h | 4 + glslang/Public/ShaderLang.h | 1 + gtests/Hlsl.FromFile.cpp | 1 + gtests/Spv.FromFile.cpp | 16 ++- gtests/TestFixture.h | 5 +- hlsl/hlslParseHelper.cpp | 4 +- 13 files changed, 309 insertions(+), 10 deletions(-) create mode 100644 Test/baseResults/hlsl.rw.register.frag.out create mode 100644 Test/baseResults/spv.rw.autoassign.frag.out create mode 100644 Test/hlsl.rw.register.frag create mode 100644 Test/spv.rw.autoassign.frag diff --git a/StandAlone/StandAlone.cpp b/StandAlone/StandAlone.cpp index 0ac72d3b..377e7cb3 100644 --- a/StandAlone/StandAlone.cpp +++ b/StandAlone/StandAlone.cpp @@ -164,6 +164,7 @@ const char* shaderStageName = nullptr; std::array baseSamplerBinding; std::array baseTextureBinding; +std::array baseImageBinding; std::array baseUboBinding; // @@ -252,6 +253,7 @@ void ProcessArguments(int argc, char* argv[]) { baseSamplerBinding.fill(0); baseTextureBinding.fill(0); + baseImageBinding.fill(0); baseUboBinding.fill(0); ExecutableName = argv[0]; @@ -279,6 +281,10 @@ void ProcessArguments(int argc, char* argv[]) lowerword == "shift-texture-binding" || lowerword == "stb") { ProcessBindingBase(argc, argv, baseTextureBinding); + } else if (lowerword == "shift-image-bindings" || // synonyms + lowerword == "shift-image-binding" || + lowerword == "sib") { + ProcessBindingBase(argc, argv, baseImageBinding); } else if (lowerword == "shift-ubo-bindings" || // synonyms lowerword == "shift-ubo-binding" || lowerword == "sub") { @@ -544,6 +550,7 @@ void CompileAndLinkShaderUnits(std::vector compUnits) shader->setShiftSamplerBinding(baseSamplerBinding[compUnit.stage]); shader->setShiftTextureBinding(baseTextureBinding[compUnit.stage]); + shader->setShiftImageBinding(baseImageBinding[compUnit.stage]); shader->setShiftUboBinding(baseUboBinding[compUnit.stage]); shader->setFlattenUniformArrays((Options & EOptionFlattenUniformArrays) != 0); shader->setNoStorageFormat((Options & EOptionNoStorageFormat) != 0); @@ -941,6 +948,9 @@ void usage() " --shift-texture-binding [stage] num set base binding number for textures\n" " --stb [stage] num synonym for --shift-texture-binding\n" "\n" + " --shift-image-binding [stage] num set base binding number for images (uav)\n" + " --sib [stage] num synonym for --shift-image-binding\n" + "\n" " --shift-UBO-binding [stage] num set base binding number for UBOs\n" " --sub [stage] num synonym for --shift-UBO-binding\n" "\n" diff --git a/Test/baseResults/hlsl.rw.register.frag.out b/Test/baseResults/hlsl.rw.register.frag.out new file mode 100644 index 00000000..b2d8f299 --- /dev/null +++ b/Test/baseResults/hlsl.rw.register.frag.out @@ -0,0 +1,158 @@ +hlsl.rw.register.frag +Shader version: 450 +gl_FragCoord origin is upper left +0:? Sequence +0:11 Function Definition: main( (temp structure{temp 4-component vector of float Color}) +0:11 Function Parameters: +0:? Sequence +0:12 Sequence +0:12 move second child to first child (temp float) +0:12 'r00' (temp float) +0:12 imageLoad (temp float) +0:12 'g_tTex1df1' (layout(binding=2 r32f ) uniform image1D) +0:12 Constant: +0:12 0 (const int) +0:13 Sequence +0:13 move second child to first child (temp uint) +0:13 'r01' (temp uint) +0:13 imageLoad (temp uint) +0:13 'g_tBuf1du1' (layout(binding=3 r32ui ) uniform uimageBuffer) +0:13 Constant: +0:13 0 (const int) +0:16 move second child to first child (temp 4-component vector of float) +0:16 Color: direct index for structure (temp 4-component vector of float) +0:16 'psout' (temp structure{temp 4-component vector of float Color}) +0:16 Constant: +0:16 0 (const int) +0:16 Constant: +0:16 1.000000 +0:16 1.000000 +0:16 1.000000 +0:16 1.000000 +0:17 Sequence +0:17 Sequence +0:17 move second child to first child (temp 4-component vector of float) +0:? 'Color' (layout(location=0 ) out 4-component vector of float) +0:17 Color: direct index for structure (temp 4-component vector of float) +0:17 'psout' (temp structure{temp 4-component vector of float Color}) +0:17 Constant: +0:17 0 (const int) +0:17 Branch: Return +0:? Linker Objects +0:? 'g_tTex1df1' (layout(binding=2 r32f ) uniform image1D) +0:? 'g_tBuf1du1' (layout(binding=3 r32ui ) uniform uimageBuffer) +0:? 'Color' (layout(location=0 ) out 4-component vector of float) + + +Linked fragment stage: + + +Shader version: 450 +gl_FragCoord origin is upper left +0:? Sequence +0:11 Function Definition: main( (temp structure{temp 4-component vector of float Color}) +0:11 Function Parameters: +0:? Sequence +0:12 Sequence +0:12 move second child to first child (temp float) +0:12 'r00' (temp float) +0:12 imageLoad (temp float) +0:12 'g_tTex1df1' (layout(binding=2 r32f ) uniform image1D) +0:12 Constant: +0:12 0 (const int) +0:13 Sequence +0:13 move second child to first child (temp uint) +0:13 'r01' (temp uint) +0:13 imageLoad (temp uint) +0:13 'g_tBuf1du1' (layout(binding=3 r32ui ) uniform uimageBuffer) +0:13 Constant: +0:13 0 (const int) +0:16 move second child to first child (temp 4-component vector of float) +0:16 Color: direct index for structure (temp 4-component vector of float) +0:16 'psout' (temp structure{temp 4-component vector of float Color}) +0:16 Constant: +0:16 0 (const int) +0:16 Constant: +0:16 1.000000 +0:16 1.000000 +0:16 1.000000 +0:16 1.000000 +0:17 Sequence +0:17 Sequence +0:17 move second child to first child (temp 4-component vector of float) +0:? 'Color' (layout(location=0 ) out 4-component vector of float) +0:17 Color: direct index for structure (temp 4-component vector of float) +0:17 'psout' (temp structure{temp 4-component vector of float Color}) +0:17 Constant: +0:17 0 (const int) +0:17 Branch: Return +0:? Linker Objects +0:? 'g_tTex1df1' (layout(binding=2 r32f ) uniform image1D) +0:? 'g_tBuf1du1' (layout(binding=3 r32ui ) uniform uimageBuffer) +0:? 'Color' (layout(location=0 ) out 4-component vector of float) + +// Module Version 10000 +// Generated by (magic number): 80001 +// Id's are bound by 37 + + Capability Shader + Capability Sampled1D + Capability SampledBuffer + 1: ExtInstImport "GLSL.std.450" + MemoryModel Logical GLSL450 + EntryPoint Fragment 4 "main" 33 + ExecutionMode 4 OriginUpperLeft + Name 4 "main" + Name 8 "r00" + Name 11 "g_tTex1df1" + Name 18 "r01" + Name 21 "g_tBuf1du1" + Name 25 "PS_OUTPUT" + MemberName 25(PS_OUTPUT) 0 "Color" + Name 27 "psout" + Name 33 "Color" + Decorate 11(g_tTex1df1) DescriptorSet 0 + Decorate 11(g_tTex1df1) Binding 2 + Decorate 21(g_tBuf1du1) DescriptorSet 0 + Decorate 21(g_tBuf1du1) Binding 3 + Decorate 33(Color) Location 0 + 2: TypeVoid + 3: TypeFunction 2 + 6: TypeFloat 32 + 7: TypePointer Function 6(float) + 9: TypeImage 6(float) 1D nonsampled format:R32f + 10: TypePointer UniformConstant 9 + 11(g_tTex1df1): 10(ptr) Variable UniformConstant + 13: TypeInt 32 1 + 14: 13(int) Constant 0 + 16: TypeInt 32 0 + 17: TypePointer Function 16(int) + 19: TypeImage 16(int) Buffer nonsampled format:R32ui + 20: TypePointer UniformConstant 19 + 21(g_tBuf1du1): 20(ptr) Variable UniformConstant + 24: TypeVector 6(float) 4 + 25(PS_OUTPUT): TypeStruct 24(fvec4) + 26: TypePointer Function 25(PS_OUTPUT) + 28: 6(float) Constant 1065353216 + 29: 24(fvec4) ConstantComposite 28 28 28 28 + 30: TypePointer Function 24(fvec4) + 32: TypePointer Output 24(fvec4) + 33(Color): 32(ptr) Variable Output + 4(main): 2 Function None 3 + 5: Label + 8(r00): 7(ptr) Variable Function + 18(r01): 17(ptr) Variable Function + 27(psout): 26(ptr) Variable Function + 12: 9 Load 11(g_tTex1df1) + 15: 6(float) ImageRead 12 14 + Store 8(r00) 15 + 22: 19 Load 21(g_tBuf1du1) + 23: 16(int) ImageRead 22 14 + Store 18(r01) 23 + 31: 30(ptr) AccessChain 27(psout) 14 + Store 31 29 + 34: 30(ptr) AccessChain 27(psout) 14 + 35: 24(fvec4) Load 34 + Store 33(Color) 35 + Return + FunctionEnd diff --git a/Test/baseResults/spv.rw.autoassign.frag.out b/Test/baseResults/spv.rw.autoassign.frag.out new file mode 100644 index 00000000..851ef463 --- /dev/null +++ b/Test/baseResults/spv.rw.autoassign.frag.out @@ -0,0 +1,70 @@ +spv.rw.autoassign.frag + +Linked fragment stage: + + +// Module Version 10000 +// Generated by (magic number): 80001 +// Id's are bound by 37 + + Capability Shader + Capability Sampled1D + Capability SampledBuffer + 1: ExtInstImport "GLSL.std.450" + MemoryModel Logical GLSL450 + EntryPoint Fragment 4 "main" 33 + ExecutionMode 4 OriginUpperLeft + Name 4 "main" + Name 8 "r00" + Name 11 "g_tTex1df1" + Name 18 "r01" + Name 21 "g_tBuf1du1" + Name 25 "PS_OUTPUT" + MemberName 25(PS_OUTPUT) 0 "Color" + Name 27 "psout" + Name 33 "Color" + Decorate 11(g_tTex1df1) DescriptorSet 0 + Decorate 11(g_tTex1df1) Binding 20 + Decorate 21(g_tBuf1du1) DescriptorSet 0 + Decorate 21(g_tBuf1du1) Binding 21 + Decorate 33(Color) Location 0 + 2: TypeVoid + 3: TypeFunction 2 + 6: TypeFloat 32 + 7: TypePointer Function 6(float) + 9: TypeImage 6(float) 1D nonsampled format:R32f + 10: TypePointer UniformConstant 9 + 11(g_tTex1df1): 10(ptr) Variable UniformConstant + 13: TypeInt 32 1 + 14: 13(int) Constant 0 + 16: TypeInt 32 0 + 17: TypePointer Function 16(int) + 19: TypeImage 16(int) Buffer nonsampled format:R32ui + 20: TypePointer UniformConstant 19 + 21(g_tBuf1du1): 20(ptr) Variable UniformConstant + 24: TypeVector 6(float) 4 + 25(PS_OUTPUT): TypeStruct 24(fvec4) + 26: TypePointer Function 25(PS_OUTPUT) + 28: 6(float) Constant 0 + 29: 24(fvec4) ConstantComposite 28 28 28 28 + 30: TypePointer Function 24(fvec4) + 32: TypePointer Output 24(fvec4) + 33(Color): 32(ptr) Variable Output + 4(main): 2 Function None 3 + 5: Label + 8(r00): 7(ptr) Variable Function + 18(r01): 17(ptr) Variable Function + 27(psout): 26(ptr) Variable Function + 12: 9 Load 11(g_tTex1df1) + 15: 6(float) ImageRead 12 14 + Store 8(r00) 15 + 22: 19 Load 21(g_tBuf1du1) + 23: 16(int) ImageRead 22 14 + Store 18(r01) 23 + 31: 30(ptr) AccessChain 27(psout) 14 + Store 31 29 + 34: 30(ptr) AccessChain 27(psout) 14 + 35: 24(fvec4) Load 34 + Store 33(Color) 35 + Return + FunctionEnd diff --git a/Test/hlsl.rw.register.frag b/Test/hlsl.rw.register.frag new file mode 100644 index 00000000..e82e419a --- /dev/null +++ b/Test/hlsl.rw.register.frag @@ -0,0 +1,18 @@ + +RWTexture1D g_tTex1df1 : register(u2); +RWBuffer g_tBuf1du1 : register(U3); + +struct PS_OUTPUT +{ + float4 Color : SV_Target0; +}; + +PS_OUTPUT main() +{ + float r00 = g_tTex1df1[0]; + uint r01 = g_tBuf1du1[0]; + + PS_OUTPUT psout; + psout.Color = 1.0; + return psout; +} diff --git a/Test/spv.rw.autoassign.frag b/Test/spv.rw.autoassign.frag new file mode 100644 index 00000000..5c7d0d3f --- /dev/null +++ b/Test/spv.rw.autoassign.frag @@ -0,0 +1,18 @@ + +RWTexture1D g_tTex1df1; +RWBuffer g_tBuf1du1; + +struct PS_OUTPUT +{ + float4 Color : SV_Target0; +}; + +PS_OUTPUT main() +{ + float r00 = g_tTex1df1[0]; + uint r01 = g_tBuf1du1[0]; + + PS_OUTPUT psout; + psout.Color = 0; + return psout; +} diff --git a/glslang/MachineIndependent/ShaderLang.cpp b/glslang/MachineIndependent/ShaderLang.cpp index eb4a17d4..b7152a65 100644 --- a/glslang/MachineIndependent/ShaderLang.cpp +++ b/glslang/MachineIndependent/ShaderLang.cpp @@ -1494,6 +1494,7 @@ void TShader::setEntryPoint(const char* entryPoint) void TShader::setShiftSamplerBinding(unsigned int base) { intermediate->setShiftSamplerBinding(base); } void TShader::setShiftTextureBinding(unsigned int base) { intermediate->setShiftTextureBinding(base); } +void TShader::setShiftImageBinding(unsigned int base) { intermediate->setShiftImageBinding(base); } void TShader::setShiftUboBinding(unsigned int base) { intermediate->setShiftUboBinding(base); } void TShader::setAutoMapBindings(bool map) { intermediate->setAutoMapBindings(map); } void TShader::setFlattenUniformArrays(bool flatten) { intermediate->setFlattenUniformArrays(flatten); } diff --git a/glslang/MachineIndependent/iomapper.cpp b/glslang/MachineIndependent/iomapper.cpp index 2ee6caef..269d6549 100644 --- a/glslang/MachineIndependent/iomapper.cpp +++ b/glslang/MachineIndependent/iomapper.cpp @@ -222,6 +222,7 @@ struct TDefaultIoResolver : public glslang::TIoMapResolver { int baseSamplerBinding; int baseTextureBinding; + int baseImageBinding; int baseUboBinding; bool doAutoMapping; typedef std::vector TSlotSet; @@ -294,6 +295,9 @@ struct TDefaultIoResolver : public glslang::TIoMapResolver if (type.getQualifier().hasBinding()) { if (type.getBasicType() == glslang::EbtSampler) { const glslang::TSampler& sampler = type.getSampler(); + if (sampler.isImage()) + return reserveSlot(set, baseImageBinding + type.getQualifier().layoutBinding); + if (sampler.isPureSampler()) return reserveSlot(set, baseSamplerBinding + type.getQualifier().layoutBinding); @@ -308,6 +312,9 @@ struct TDefaultIoResolver : public glslang::TIoMapResolver // first and now all are passed that do not have a binding and needs one if (type.getBasicType() == glslang::EbtSampler) { const glslang::TSampler& sampler = type.getSampler(); + if (sampler.isImage()) + return getFreeSlot(set, baseImageBinding); + if (sampler.isPureSampler()) return getFreeSlot(set, baseSamplerBinding); @@ -339,9 +346,10 @@ bool TIoMapper::addStage(EShLanguage stage, TIntermediate &intermediate, TInfoSi // Trivial return if there is nothing to do. if (intermediate.getShiftSamplerBinding() == 0 && intermediate.getShiftTextureBinding() == 0 && + intermediate.getShiftImageBinding() == 0 && intermediate.getShiftUboBinding() == 0 && intermediate.getAutoMapBindings() == false && - resolver == NULL) + resolver == nullptr) return true; if (intermediate.getNumEntryPoints() != 1 || intermediate.isRecursive()) @@ -353,9 +361,10 @@ bool TIoMapper::addStage(EShLanguage stage, TIntermediate &intermediate, TInfoSi // if no resolver is provided, use the default resolver with the given shifts and auto map settings TDefaultIoResolver defaultResolver; - if (resolver == NULL) { + if (resolver == nullptr) { defaultResolver.baseSamplerBinding = intermediate.getShiftSamplerBinding(); defaultResolver.baseTextureBinding = intermediate.getShiftTextureBinding(); + defaultResolver.baseImageBinding = intermediate.getShiftImageBinding(); defaultResolver.baseUboBinding = intermediate.getShiftUboBinding(); defaultResolver.doAutoMapping = intermediate.getAutoMapBindings(); diff --git a/glslang/MachineIndependent/localintermediate.h b/glslang/MachineIndependent/localintermediate.h index 1dd14403..53c03ac8 100644 --- a/glslang/MachineIndependent/localintermediate.h +++ b/glslang/MachineIndependent/localintermediate.h @@ -144,6 +144,7 @@ public: multiStream(false), xfbMode(false), shiftSamplerBinding(0), shiftTextureBinding(0), + shiftImageBinding(0), shiftUboBinding(0), autoMapBindings(false), flattenUniformArrays(false), @@ -174,6 +175,8 @@ public: unsigned int getShiftSamplerBinding() const { return shiftSamplerBinding; } void setShiftTextureBinding(unsigned int shift) { shiftTextureBinding = shift; } unsigned int getShiftTextureBinding() const { return shiftTextureBinding; } + void setShiftImageBinding(unsigned int shift) { shiftImageBinding = shift; } + unsigned int getShiftImageBinding() const { return shiftImageBinding; } void setShiftUboBinding(unsigned int shift) { shiftUboBinding = shift; } unsigned int getShiftUboBinding() const { return shiftUboBinding; } void setAutoMapBindings(bool map) { autoMapBindings = map; } @@ -403,6 +406,7 @@ protected: std::string entryPointMangledName; unsigned int shiftSamplerBinding; unsigned int shiftTextureBinding; + unsigned int shiftImageBinding; unsigned int shiftUboBinding; bool autoMapBindings; bool flattenUniformArrays; diff --git a/glslang/Public/ShaderLang.h b/glslang/Public/ShaderLang.h index acde8b01..9a76b40a 100644 --- a/glslang/Public/ShaderLang.h +++ b/glslang/Public/ShaderLang.h @@ -306,6 +306,7 @@ public: void setEntryPoint(const char* entryPoint); void setShiftSamplerBinding(unsigned int base); void setShiftTextureBinding(unsigned int base); + void setShiftImageBinding(unsigned int base); void setShiftUboBinding(unsigned int base); void setAutoMapBindings(bool map); void setFlattenUniformArrays(bool flatten); diff --git a/gtests/Hlsl.FromFile.cpp b/gtests/Hlsl.FromFile.cpp index 66fba2e7..918a431b 100644 --- a/gtests/Hlsl.FromFile.cpp +++ b/gtests/Hlsl.FromFile.cpp @@ -159,6 +159,7 @@ INSTANTIATE_TEST_CASE_P( {"hlsl.promotions.frag", "main"}, {"hlsl.rw.atomics.frag", "main"}, {"hlsl.rw.bracket.frag", "main"}, + {"hlsl.rw.register.frag", "main"}, {"hlsl.rw.scalar.bracket.frag", "main"}, {"hlsl.rw.vec2.bracket.frag", "main"}, {"hlsl.sample.array.dx10.frag", "main"}, diff --git a/gtests/Spv.FromFile.cpp b/gtests/Spv.FromFile.cpp index a55af518..1e0f7976 100644 --- a/gtests/Spv.FromFile.cpp +++ b/gtests/Spv.FromFile.cpp @@ -46,6 +46,7 @@ struct IoMapData { const char* entryPoint; int baseSamplerBinding; int baseTextureBinding; + int baseImageBinding; int baseUboBinding; bool autoMapBindings; bool flattenUniforms; @@ -123,6 +124,7 @@ TEST_P(HlslIoMap, FromFile) Target::Spv, GetParam().entryPoint, GetParam().baseSamplerBinding, GetParam().baseTextureBinding, + GetParam().baseImageBinding, GetParam().baseUboBinding, GetParam().autoMapBindings, GetParam().flattenUniforms); @@ -136,6 +138,7 @@ TEST_P(GlslIoMap, FromFile) Target::Spv, GetParam().entryPoint, GetParam().baseSamplerBinding, GetParam().baseTextureBinding, + GetParam().baseImageBinding, GetParam().baseUboBinding, GetParam().autoMapBindings, GetParam().flattenUniforms); @@ -283,10 +286,11 @@ INSTANTIATE_TEST_CASE_P( INSTANTIATE_TEST_CASE_P( Hlsl, HlslIoMap, ::testing::ValuesIn(std::vector{ - { "spv.register.autoassign.frag", "main_ep", 5, 10, 20, true, false }, - { "spv.register.noautoassign.frag", "main_ep", 5, 10, 15, false, false }, - { "spv.register.autoassign-2.frag", "main", 5, 10, 15, true, true }, - { "spv.buffer.autoassign.frag", "main", 5, 10, 15, true, true }, + { "spv.register.autoassign.frag", "main_ep", 5, 10, 0, 20, true, false }, + { "spv.register.noautoassign.frag", "main_ep", 5, 10, 0, 15, false, false }, + { "spv.register.autoassign-2.frag", "main", 5, 10, 0, 15, true, true }, + { "spv.buffer.autoassign.frag", "main", 5, 10, 0, 15, true, true }, + { "spv.rw.autoassign.frag", "main", 5, 10, 20, 15, true, true }, { "spv.register.autoassign.rangetest.frag", "main", glslang::TQualifier::layoutBindingEnd-2, glslang::TQualifier::layoutBindingEnd+5, @@ -299,8 +303,8 @@ INSTANTIATE_TEST_CASE_P( INSTANTIATE_TEST_CASE_P( Hlsl, GlslIoMap, ::testing::ValuesIn(std::vector{ - { "spv.glsl.register.autoassign.frag", "main", 5, 10, 20, true, false }, - { "spv.glsl.register.noautoassign.frag", "main", 5, 10, 15, false, false }, + { "spv.glsl.register.autoassign.frag", "main", 5, 10, 0, 20, true, false }, + { "spv.glsl.register.noautoassign.frag", "main", 5, 10, 0, 15, false, false }, }), FileNameAsCustomTestSuffixIoMap ); diff --git a/gtests/TestFixture.h b/gtests/TestFixture.h index c08c6cc5..e795e8dc 100644 --- a/gtests/TestFixture.h +++ b/gtests/TestFixture.h @@ -239,6 +239,7 @@ public: const std::string& entryPointName, EShMessages controls, int baseSamplerBinding, int baseTextureBinding, + int baseImageBinding, int baseUboBinding, bool autoMapBindings, bool flattenUniformArrays) @@ -248,6 +249,7 @@ public: glslang::TShader shader(kind); shader.setShiftSamplerBinding(baseSamplerBinding); shader.setShiftTextureBinding(baseTextureBinding); + shader.setShiftImageBinding(baseImageBinding); shader.setShiftUboBinding(baseUboBinding); shader.setAutoMapBindings(autoMapBindings); shader.setFlattenUniformArrays(flattenUniformArrays); @@ -426,6 +428,7 @@ public: const std::string& entryPointName, int baseSamplerBinding, int baseTextureBinding, + int baseImageBinding, int baseUboBinding, bool autoMapBindings, bool flattenUniformArrays) @@ -440,7 +443,7 @@ public: const EShMessages controls = DeriveOptions(source, semantics, target); GlslangResult result = compileLinkIoMap(testName, input, entryPointName, controls, - baseSamplerBinding, baseTextureBinding, baseUboBinding, + baseSamplerBinding, baseTextureBinding, baseImageBinding, baseUboBinding, autoMapBindings, flattenUniformArrays); diff --git a/hlsl/hlslParseHelper.cpp b/hlsl/hlslParseHelper.cpp index cf97ec7e..5bca3ec9 100755 --- a/hlsl/hlslParseHelper.cpp +++ b/hlsl/hlslParseHelper.cpp @@ -45,6 +45,7 @@ #include "../glslang/OSDependent/osinclude.h" #include +#include namespace glslang { @@ -3085,11 +3086,12 @@ void HlslParseContext::handleRegister(const TSourceLoc& loc, TQualifier& qualifi } // TODO: learn what all these really mean and how they interact with regNumber and subComponent - switch (desc[0]) { + switch (std::tolower(desc[0])) { case 'b': case 't': case 'c': case 's': + case 'u': qualifier.layoutBinding = regNumber + subComponent; break; default: -- cgit v1.2.3 From d3f1122a4430563cd47f60060956e88dc559ba22 Mon Sep 17 00:00:00 2001 From: John Kessenich Date: Sat, 5 Nov 2016 10:15:53 -0600 Subject: Whole stack: Fix stale types in the AST linker object nodes, fixing #557. Rationalizes the entire tracking of the linker object nodes, effecting GLSL, HLSL, and SPIR-V, to allow tracked objects to be fully edited before their type snapshot for linker objects. Should only effect things when the rest of the AST contained no reference to the symbol, because normal AST nodes were not stale. Also will only effect such objects when their types were edited. --- Test/baseResults/100.frag.out | 16 +-- Test/baseResults/120.vert.out | 2 - Test/baseResults/130.frag.out | 6 +- Test/baseResults/140.frag.out | 2 - Test/baseResults/140.vert.out | 6 -- Test/baseResults/150.frag.out | 2 - Test/baseResults/300.vert.out | 12 +-- Test/baseResults/310.frag.out | 2 - Test/baseResults/400.frag.out | 4 - Test/baseResults/420.frag.out | 2 - Test/baseResults/hlsl.amend.frag.out | 4 +- Test/baseResults/hlsl.array.flatten.frag.out | 8 +- Test/baseResults/hlsl.array.frag.out | 4 +- Test/baseResults/hlsl.array.multidim.frag.out | 4 +- Test/baseResults/hlsl.basic.comp.out | 4 +- Test/baseResults/hlsl.buffer.frag.out | 8 +- Test/baseResults/hlsl.calculatelod.dx10.frag.out | 8 +- .../hlsl.calculatelodunclamped.dx10.frag.out | 8 +- Test/baseResults/hlsl.comparison.vec.frag.out | 5 +- Test/baseResults/hlsl.float4.frag.out | 4 +- Test/baseResults/hlsl.gather.array.dx10.frag.out | 8 +- Test/baseResults/hlsl.gather.basic.dx10.frag.out | 8 +- Test/baseResults/hlsl.gather.basic.dx10.vert.out | 4 +- Test/baseResults/hlsl.gather.offset.dx10.frag.out | 8 +- .../hlsl.gather.offsetarray.dx10.frag.out | 8 +- .../hlsl.gatherRGBA.array.dx10.frag.out | 12 +-- .../hlsl.gatherRGBA.basic.dx10.frag.out | 12 +-- .../hlsl.gatherRGBA.offset.dx10.frag.out | 12 +-- .../hlsl.gatherRGBA.offsetarray.dx10.frag.out | 12 +-- Test/baseResults/hlsl.getdimensions.dx10.frag.out | 8 +- Test/baseResults/hlsl.getdimensions.dx10.vert.out | 4 +- .../hlsl.getdimensions.rw.dx10.frag.out | 20 ++-- .../hlsl.getsampleposition.dx10.frag.out | 8 +- Test/baseResults/hlsl.init.frag.out | 8 +- Test/baseResults/hlsl.intrinsics.comp.out | 24 ++--- Test/baseResults/hlsl.intrinsics.frag.out | 4 +- Test/baseResults/hlsl.intrinsics.negative.vert.out | 116 ++++++++++----------- Test/baseResults/hlsl.load.2dms.dx10.frag.out | 12 +-- Test/baseResults/hlsl.load.array.dx10.frag.out | 12 +-- Test/baseResults/hlsl.load.basic.dx10.frag.out | 12 +-- Test/baseResults/hlsl.load.basic.dx10.vert.out | 8 +- Test/baseResults/hlsl.load.buffer.dx10.frag.out | 12 +-- .../hlsl.load.buffer.float.dx10.frag.out | 12 +-- Test/baseResults/hlsl.load.offset.dx10.frag.out | 12 +-- .../hlsl.load.offsetarray.dx10.frag.out | 12 +-- Test/baseResults/hlsl.load.rwbuffer.dx10.frag.out | 8 +- .../hlsl.load.rwtexture.array.dx10.frag.out | 12 +-- Test/baseResults/hlsl.load.rwtexture.dx10.frag.out | 12 +-- Test/baseResults/hlsl.logical.binary.frag.out | 4 +- Test/baseResults/hlsl.logical.binary.vec.frag.out | 4 +- Test/baseResults/hlsl.logical.unary.frag.out | 4 +- Test/baseResults/hlsl.matType.frag.out | 20 +++- Test/baseResults/hlsl.matrixindex.frag.out | 4 +- Test/baseResults/hlsl.mintypes.frag.out | 6 +- Test/baseResults/hlsl.multiEntry.vert.out | 4 +- Test/baseResults/hlsl.precise.frag.out | 4 +- Test/baseResults/hlsl.promote.binary.frag.out | 4 +- Test/baseResults/hlsl.promotions.frag.out | 4 +- Test/baseResults/hlsl.rw.atomics.frag.out | 8 +- Test/baseResults/hlsl.rw.bracket.frag.out | 8 +- Test/baseResults/hlsl.rw.scalar.bracket.frag.out | 8 +- Test/baseResults/hlsl.rw.vec2.bracket.frag.out | 8 +- Test/baseResults/hlsl.sample.array.dx10.frag.out | 8 +- Test/baseResults/hlsl.sample.basic.dx10.frag.out | 8 +- Test/baseResults/hlsl.sample.offset.dx10.frag.out | 8 +- .../hlsl.sample.offsetarray.dx10.frag.out | 8 +- .../baseResults/hlsl.sample.sub-vec4.dx10.frag.out | 4 +- .../hlsl.samplebias.array.dx10.frag.out | 8 +- .../hlsl.samplebias.basic.dx10.frag.out | 8 +- .../hlsl.samplebias.offset.dx10.frag.out | 8 +- .../hlsl.samplebias.offsetarray.dx10.frag.out | 8 +- .../baseResults/hlsl.samplecmp.array.dx10.frag.out | 8 +- .../baseResults/hlsl.samplecmp.basic.dx10.frag.out | 8 +- .../hlsl.samplecmp.offset.dx10.frag.out | 8 +- .../hlsl.samplecmp.offsetarray.dx10.frag.out | 8 +- .../hlsl.samplecmplevelzero.array.dx10.frag.out | 8 +- .../hlsl.samplecmplevelzero.basic.dx10.frag.out | 8 +- .../hlsl.samplecmplevelzero.offset.dx10.frag.out | 8 +- ...sl.samplecmplevelzero.offsetarray.dx10.frag.out | 8 +- .../hlsl.samplegrad.array.dx10.frag.out | 8 +- .../hlsl.samplegrad.basic.dx10.frag.out | 8 +- .../hlsl.samplegrad.basic.dx10.vert.out | 4 +- .../hlsl.samplegrad.offset.dx10.frag.out | 8 +- .../hlsl.samplegrad.offsetarray.dx10.frag.out | 8 +- .../hlsl.samplelevel.array.dx10.frag.out | 8 +- .../hlsl.samplelevel.basic.dx10.frag.out | 8 +- .../hlsl.samplelevel.basic.dx10.vert.out | 4 +- .../hlsl.samplelevel.offset.dx10.frag.out | 8 +- .../hlsl.samplelevel.offsetarray.dx10.frag.out | 8 +- Test/baseResults/hlsl.stringtoken.frag.out | 9 +- Test/baseResults/hlsl.struct.frag.out | 116 +++++++++++---------- Test/baseResults/hlsl.tx.bracket.frag.out | 8 +- Test/baseResults/maxClipDistances.vert.out | 2 - Test/baseResults/specExamples.frag.out | 6 -- Test/baseResults/specExamples.vert.out | 6 +- Test/baseResults/spv.noWorkgroup.comp.out | 34 ++++++ Test/baseResults/varyingArray.frag.out | 2 - Test/baseResults/varyingArrayIndirect.frag.out | 2 - Test/spv.noWorkgroup.comp | 7 ++ glslang/MachineIndependent/ParseContextBase.cpp | 41 +++++++- glslang/MachineIndependent/ParseHelper.cpp | 60 ++++++----- glslang/MachineIndependent/ParseHelper.h | 28 +++-- glslang/MachineIndependent/ShaderLang.cpp | 1 - glslang/MachineIndependent/localintermediate.h | 2 +- gtests/Spv.FromFile.cpp | 1 + hlsl/hlslParseHelper.cpp | 54 ++++------ hlsl/hlslParseHelper.h | 6 +- 107 files changed, 630 insertions(+), 560 deletions(-) create mode 100755 Test/baseResults/spv.noWorkgroup.comp.out create mode 100644 Test/spv.noWorkgroup.comp diff --git a/Test/baseResults/100.frag.out b/Test/baseResults/100.frag.out index edd65ab2..74a597ff 100644 --- a/Test/baseResults/100.frag.out +++ b/Test/baseResults/100.frag.out @@ -393,13 +393,13 @@ ERROR: node is still EOpNull! 0:? 'a' (global 3-element array of mediump int) 0:? 'uint' (global mediump int) 0:? 'v' (smooth in 3-element array of mediump 4-component vector of float) -0:? 'f' (global mediump float) +0:? 'f' (invariant global mediump float) 0:? 'anon@0' (layout(column_major shared ) uniform block{layout(column_major shared ) uniform mediump int x}) 0:? 'fa' (global implicitly-sized array of mediump float) -0:? 'f13' (global mediump float) +0:? 'f13' (invariant global mediump float) 0:? 'fi' (invariant temp mediump float) -0:? 'av' (smooth in mediump 4-component vector of float) -0:? 'uv2' (uniform mediump 2-component vector of float) +0:? 'av' (invariant smooth in mediump 4-component vector of float) +0:? 'uv2' (invariant uniform mediump 2-component vector of float) 0:? 'uv3' (invariant uniform mediump 3-component vector of float) 0:? 'glob2D' (global lowp sampler2D) 0:? 'vary2D' (smooth in lowp sampler2D) @@ -731,13 +731,13 @@ ERROR: node is still EOpNull! 0:? 'a' (global 3-element array of mediump int) 0:? 'uint' (global mediump int) 0:? 'v' (smooth in 3-element array of mediump 4-component vector of float) -0:? 'f' (global mediump float) +0:? 'f' (invariant global mediump float) 0:? 'anon@0' (layout(column_major shared ) uniform block{layout(column_major shared ) uniform mediump int x}) 0:? 'fa' (global 1-element array of mediump float) -0:? 'f13' (global mediump float) +0:? 'f13' (invariant global mediump float) 0:? 'fi' (invariant temp mediump float) -0:? 'av' (smooth in mediump 4-component vector of float) -0:? 'uv2' (uniform mediump 2-component vector of float) +0:? 'av' (invariant smooth in mediump 4-component vector of float) +0:? 'uv2' (invariant uniform mediump 2-component vector of float) 0:? 'uv3' (invariant uniform mediump 3-component vector of float) 0:? 'glob2D' (global lowp sampler2D) 0:? 'vary2D' (smooth in lowp sampler2D) diff --git a/Test/baseResults/120.vert.out b/Test/baseResults/120.vert.out index 73ced6a1..18fb221d 100644 --- a/Test/baseResults/120.vert.out +++ b/Test/baseResults/120.vert.out @@ -420,7 +420,6 @@ ERROR: node is still EOpNull! 0:? 'concall' (const float) 0:? 0.295520 0:? 'gl_TexCoord' (smooth out 35-element array of 4-component vector of float TexCoord) -0:? 'gl_TexCoord' (smooth out 35-element array of 4-component vector of float TexCoord) 0:? 'c' (uniform int) 0:? 'x' (in 2-component vector of int) 0:? 'v2a' (in 2-component vector of float) @@ -772,7 +771,6 @@ ERROR: node is still EOpNull! 0:? 'concall' (const float) 0:? 0.295520 0:? 'gl_TexCoord' (smooth out 35-element array of 4-component vector of float TexCoord) -0:? 'gl_TexCoord' (smooth out 35-element array of 4-component vector of float TexCoord) 0:? 'c' (uniform int) 0:? 'x' (in 2-component vector of int) 0:? 'v2a' (in 2-component vector of float) diff --git a/Test/baseResults/130.frag.out b/Test/baseResults/130.frag.out index b2b4dd06..a28908ea 100644 --- a/Test/baseResults/130.frag.out +++ b/Test/baseResults/130.frag.out @@ -383,8 +383,7 @@ ERROR: node is still EOpNull! 0:? 'fnop' (noperspective in float) 0:? 'gl_ClipDistance' (smooth in implicitly-sized array of float ClipDistance) 0:? 'sampC' (uniform samplerCube) -0:? 'gl_Color' (smooth in 4-component vector of float Color) -0:? 'gl_Color' (flat in 4-component vector of float Color) +0:? 'gl_Color' (in 4-component vector of float Color) 0:? 'samp2D' (uniform sampler2D) 0:? 'samp2DS' (uniform sampler2DShadow) 0:? 'samp2DR' (uniform sampler2DRect) @@ -759,8 +758,7 @@ ERROR: node is still EOpNull! 0:? 'fnop' (noperspective in float) 0:? 'gl_ClipDistance' (smooth in 4-element array of float ClipDistance) 0:? 'sampC' (uniform samplerCube) -0:? 'gl_Color' (smooth in 4-component vector of float Color) -0:? 'gl_Color' (flat in 4-component vector of float Color) +0:? 'gl_Color' (in 4-component vector of float Color) 0:? 'samp2D' (uniform sampler2D) 0:? 'samp2DS' (uniform sampler2DShadow) 0:? 'samp2DR' (uniform sampler2DRect) diff --git a/Test/baseResults/140.frag.out b/Test/baseResults/140.frag.out index fbeee83a..38c3b9f4 100644 --- a/Test/baseResults/140.frag.out +++ b/Test/baseResults/140.frag.out @@ -104,7 +104,6 @@ ERROR: node is still EOpNull! 0:? 'i' (smooth in 4-component vector of float) 0:? 'o' (out 4-component vector of float) 0:? 'gl_ClipDistance' (smooth in 5-element array of float ClipDistance) -0:? 'gl_ClipDistance' (smooth in 5-element array of float ClipDistance) 0:? 's' (smooth in structure{global float f}) 0:? 'patch' (global float) 0:? 'vl' (layout(location=3 ) smooth in 4-component vector of float) @@ -211,7 +210,6 @@ ERROR: node is still EOpNull! 0:? 'i' (smooth in 4-component vector of float) 0:? 'o' (out 4-component vector of float) 0:? 'gl_ClipDistance' (smooth in 5-element array of float ClipDistance) -0:? 'gl_ClipDistance' (smooth in 5-element array of float ClipDistance) 0:? 's' (smooth in structure{global float f}) 0:? 'patch' (global float) 0:? 'vl' (layout(location=3 ) smooth in 4-component vector of float) diff --git a/Test/baseResults/140.vert.out b/Test/baseResults/140.vert.out index 634458cd..365a0aae 100644 --- a/Test/baseResults/140.vert.out +++ b/Test/baseResults/140.vert.out @@ -124,11 +124,8 @@ ERROR: node is still EOpNull! 0:? 'locBad' (layout(location=9 ) in 4-component vector of float) 0:? 'loc' (layout(location=9 ) in 4-component vector of float) 0:? 'gl_PointSize' (gl_PointSize float PointSize) -0:? 'gl_PointSize' (gl_PointSize float PointSize) -0:? 'gl_ClipVertex' (gl_ClipVertex 4-component vector of float ClipVertex) 0:? 'gl_ClipVertex' (gl_ClipVertex 4-component vector of float ClipVertex) 0:? 'gl_FogFragCoord' (smooth out float FogFragCoord) -0:? 'gl_FogFragCoord' (smooth out float FogFragCoord) 0:? 's2dr' (uniform sampler2DRect) 0:? 's2drs' (uniform sampler2DRectShadow) 0:? 'itloc2' (in 2-component vector of int) @@ -254,11 +251,8 @@ ERROR: node is still EOpNull! 0:? 'locBad' (layout(location=9 ) in 4-component vector of float) 0:? 'loc' (layout(location=9 ) in 4-component vector of float) 0:? 'gl_PointSize' (gl_PointSize float PointSize) -0:? 'gl_PointSize' (gl_PointSize float PointSize) -0:? 'gl_ClipVertex' (gl_ClipVertex 4-component vector of float ClipVertex) 0:? 'gl_ClipVertex' (gl_ClipVertex 4-component vector of float ClipVertex) 0:? 'gl_FogFragCoord' (smooth out float FogFragCoord) -0:? 'gl_FogFragCoord' (smooth out float FogFragCoord) 0:? 's2dr' (uniform sampler2DRect) 0:? 's2drs' (uniform sampler2DRectShadow) 0:? 'itloc2' (in 2-component vector of int) diff --git a/Test/baseResults/150.frag.out b/Test/baseResults/150.frag.out index 082a8274..0972fdcd 100644 --- a/Test/baseResults/150.frag.out +++ b/Test/baseResults/150.frag.out @@ -108,7 +108,6 @@ ERROR: node is still EOpNull! 0:49 'gl_PrimitiveID' (flat in int PrimitiveID) 0:? Linker Objects 0:? 'gl_FragCoord' (gl_FragCoord 4-component vector of float FragCoord) -0:? 'gl_FragCoord' (gl_FragCoord 4-component vector of float FragCoord) 0:? 'foo' (smooth in 4-component vector of float) 0:? 's' (smooth in structure{global float f}) 0:? 'patch' (global float) @@ -228,7 +227,6 @@ ERROR: node is still EOpNull! 0:49 'gl_PrimitiveID' (flat in int PrimitiveID) 0:? Linker Objects 0:? 'gl_FragCoord' (gl_FragCoord 4-component vector of float FragCoord) -0:? 'gl_FragCoord' (gl_FragCoord 4-component vector of float FragCoord) 0:? 'foo' (smooth in 4-component vector of float) 0:? 's' (smooth in structure{global float f}) 0:? 'patch' (global float) diff --git a/Test/baseResults/300.vert.out b/Test/baseResults/300.vert.out index ecfa3d50..d35929f7 100644 --- a/Test/baseResults/300.vert.out +++ b/Test/baseResults/300.vert.out @@ -308,9 +308,9 @@ ERROR: node is still EOpNull! 0:? 'badsize2' (global implicitly-sized array of highp float) 0:? 'ubInst' (layout(column_major shared ) uniform implicitly-sized array of block{layout(column_major shared ) uniform implicitly-sized array of highp int a}) 0:? 'okayA' (global 2-element array of highp float) -0:? 'newV' (smooth out highp 3-component vector of float) -0:? 'invIn' (in highp 4-component vector of float) -0:? 's2' (smooth out structure{global highp 3-component vector of float c, global highp float f}) +0:? 'newV' (invariant smooth out highp 3-component vector of float) +0:? 'invIn' (invariant in highp 4-component vector of float) +0:? 's2' (invariant smooth out structure{global highp 3-component vector of float c, global highp float f}) 0:? 's3' (invariant smooth out structure{global highp 3-component vector of float c, global highp float f}) 0:? 'a' (layout(column_major shared ) uniform block{layout(column_major shared ) uniform highp float f}) 0:? 'anon@0' (layout(column_major shared ) uniform block{layout(column_major shared ) uniform bool b23}) @@ -592,9 +592,9 @@ ERROR: node is still EOpNull! 0:? 'badsize2' (global 1-element array of highp float) 0:? 'ubInst' (layout(column_major shared ) uniform 1-element array of block{layout(column_major shared ) uniform 1-element array of highp int a}) 0:? 'okayA' (global 2-element array of highp float) -0:? 'newV' (smooth out highp 3-component vector of float) -0:? 'invIn' (in highp 4-component vector of float) -0:? 's2' (smooth out structure{global highp 3-component vector of float c, global highp float f}) +0:? 'newV' (invariant smooth out highp 3-component vector of float) +0:? 'invIn' (invariant in highp 4-component vector of float) +0:? 's2' (invariant smooth out structure{global highp 3-component vector of float c, global highp float f}) 0:? 's3' (invariant smooth out structure{global highp 3-component vector of float c, global highp float f}) 0:? 'a' (layout(column_major shared ) uniform block{layout(column_major shared ) uniform highp float f}) 0:? 'anon@0' (layout(column_major shared ) uniform block{layout(column_major shared ) uniform bool b23}) diff --git a/Test/baseResults/310.frag.out b/Test/baseResults/310.frag.out index 6cfd3f44..66d6ae00 100644 --- a/Test/baseResults/310.frag.out +++ b/Test/baseResults/310.frag.out @@ -963,7 +963,6 @@ ERROR: node is still EOpNull! 0:? 'aliased' (layout(location=13 ) smooth in mediump 4-component vector of float) 0:? 'arrayedInst' (in 4-element array of block{in mediump float f}) 0:? 'gl_FragDepth' (gl_FragDepth highp float FragDepth) -0:? 'gl_FragDepth' (gl_FragDepth highp float FragDepth) 0:? 'inf' (smooth in mediump 2-component vector of float) 0:? 'ing' (smooth in mediump 2-component vector of float) 0:? 'offsets' (uniform 4-element array of mediump 2-component vector of int) @@ -1844,7 +1843,6 @@ ERROR: node is still EOpNull! 0:? 'aliased' (layout(location=13 ) smooth in mediump 4-component vector of float) 0:? 'arrayedInst' (in 4-element array of block{in mediump float f}) 0:? 'gl_FragDepth' (gl_FragDepth highp float FragDepth) -0:? 'gl_FragDepth' (gl_FragDepth highp float FragDepth) 0:? 'inf' (smooth in mediump 2-component vector of float) 0:? 'ing' (smooth in mediump 2-component vector of float) 0:? 'offsets' (uniform 4-element array of mediump 2-component vector of int) diff --git a/Test/baseResults/400.frag.out b/Test/baseResults/400.frag.out index 33a8c9ab..90904140 100644 --- a/Test/baseResults/400.frag.out +++ b/Test/baseResults/400.frag.out @@ -481,8 +481,6 @@ ERROR: node is still EOpNull! 0:? 'vl2' (layout(location=6 ) smooth in 4-component vector of float) 0:? 'uv3' (layout(location=3 ) uniform 3-component vector of float) 0:? 'anon@0' (in block{in float FogFragCoord gl_FogFragCoord, in implicitly-sized array of 4-component vector of float TexCoord gl_TexCoord, smooth in 4-component vector of float Color gl_Color, in 4-component vector of float SecondaryColor gl_SecondaryColor}) -0:? 'anon@0' (in block{in float FogFragCoord gl_FogFragCoord, in implicitly-sized array of 4-component vector of float TexCoord gl_TexCoord, smooth in 4-component vector of float Color gl_Color, in 4-component vector of float SecondaryColor gl_SecondaryColor}) -0:? 'gl_FragCoord' (gl_FragCoord 4-component vector of float FragCoord) 0:? 'gl_FragCoord' (gl_FragCoord 4-component vector of float FragCoord) 0:? 'u2drs' (uniform sampler2DRectShadow) 0:? 'patchIn' (smooth patch in 4-component vector of float) @@ -962,8 +960,6 @@ ERROR: node is still EOpNull! 0:? 'vl2' (layout(location=6 ) smooth in 4-component vector of float) 0:? 'uv3' (layout(location=3 ) uniform 3-component vector of float) 0:? 'anon@0' (in block{in float FogFragCoord gl_FogFragCoord, in 1-element array of 4-component vector of float TexCoord gl_TexCoord, smooth in 4-component vector of float Color gl_Color, in 4-component vector of float SecondaryColor gl_SecondaryColor}) -0:? 'anon@0' (in block{in float FogFragCoord gl_FogFragCoord, in 1-element array of 4-component vector of float TexCoord gl_TexCoord, smooth in 4-component vector of float Color gl_Color, in 4-component vector of float SecondaryColor gl_SecondaryColor}) -0:? 'gl_FragCoord' (gl_FragCoord 4-component vector of float FragCoord) 0:? 'gl_FragCoord' (gl_FragCoord 4-component vector of float FragCoord) 0:? 'u2drs' (uniform sampler2DRectShadow) 0:? 'patchIn' (smooth patch in 4-component vector of float) diff --git a/Test/baseResults/420.frag.out b/Test/baseResults/420.frag.out index 784cdb4b..3b4c9be3 100644 --- a/Test/baseResults/420.frag.out +++ b/Test/baseResults/420.frag.out @@ -19,7 +19,6 @@ ERROR: node is still EOpNull! 0:8 0.300000 0:? Linker Objects 0:? 'gl_FragDepth' (gl_FragDepth float FragDepth) -0:? 'gl_FragDepth' (gl_FragDepth float FragDepth) 0:? 'depth' (smooth in float) 0:? 'a' (layout(binding=0 offset=0 ) uniform implicitly-sized array of atomic_uint) @@ -39,7 +38,6 @@ ERROR: node is still EOpNull! 0:8 0.300000 0:? Linker Objects 0:? 'gl_FragDepth' (gl_FragDepth float FragDepth) -0:? 'gl_FragDepth' (gl_FragDepth float FragDepth) 0:? 'depth' (smooth in float) 0:? 'a' (layout(binding=0 offset=0 ) uniform 1-element array of atomic_uint) diff --git a/Test/baseResults/hlsl.amend.frag.out b/Test/baseResults/hlsl.amend.frag.out index 1be59064..44d76552 100755 --- a/Test/baseResults/hlsl.amend.frag.out +++ b/Test/baseResults/hlsl.amend.frag.out @@ -58,7 +58,7 @@ gl_FragCoord origin is upper left 0:25 Constant: 0:25 0 (const uint) 0:? Linker Objects -0:? 'anon@0' (uniform block{layout(offset=0 ) uniform 4-component vector of float a, layout(offset=16 ) uniform float b, layout(offset=32 ) uniform 3-component vector of float c, layout(offset=44 ) uniform int d, uniform int e}) +0:? 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 4-component vector of float a, layout(offset=16 ) uniform float b, layout(offset=32 ) uniform 3-component vector of float c, layout(offset=44 ) uniform int d, uniform int e}) Linked fragment stage: @@ -123,7 +123,7 @@ gl_FragCoord origin is upper left 0:25 Constant: 0:25 0 (const uint) 0:? Linker Objects -0:? 'anon@0' (uniform block{layout(offset=0 ) uniform 4-component vector of float a, layout(offset=16 ) uniform float b, layout(offset=32 ) uniform 3-component vector of float c, layout(offset=44 ) uniform int d, uniform int e}) +0:? 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 4-component vector of float a, layout(offset=16 ) uniform float b, layout(offset=32 ) uniform 3-component vector of float c, layout(offset=44 ) uniform int d, uniform int e}) // Module Version 10000 // Generated by (magic number): 80001 diff --git a/Test/baseResults/hlsl.array.flatten.frag.out b/Test/baseResults/hlsl.array.flatten.frag.out index cbfb0ef9..74a348a2 100644 --- a/Test/baseResults/hlsl.array.flatten.frag.out +++ b/Test/baseResults/hlsl.array.flatten.frag.out @@ -138,6 +138,7 @@ gl_FragCoord origin is upper left 0:? 'g_samp[2]' (uniform sampler) 0:37 'aggShadow' (temp 3-element array of sampler) 0:? Linker Objects +0:? 'color' (layout(location=0 ) out 4-component vector of float) 0:? 'g_tex[0]' (uniform texture1D) 0:? 'g_tex[1]' (uniform texture1D) 0:? 'g_tex[2]' (uniform texture1D) @@ -150,9 +151,8 @@ gl_FragCoord origin is upper left 0:? 'g_samp_explicit[0]' (layout(binding=5 ) uniform sampler) 0:? 'g_samp_explicit[1]' (layout(binding=6 ) uniform sampler) 0:? 'g_samp_explicit[2]' (layout(binding=7 ) uniform sampler) -0:? 'anon@0' (uniform block{layout(offset=0 ) uniform 4-element array of 3X3 matrix of float g_mats, layout(binding=10 offset=192 ) uniform 4-element array of 3X3 matrix of float g_mats_explicit, layout(offset=384 ) uniform 4-element array of float g_floats}) +0:? 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 4-element array of 3X3 matrix of float g_mats, layout(binding=10 offset=192 ) uniform 4-element array of 3X3 matrix of float g_mats_explicit, layout(offset=384 ) uniform 4-element array of float g_floats}) 0:? 'not_flattened_a' (global 5-element array of int) -0:? 'color' (layout(location=0 ) out 4-component vector of float) Linked fragment stage: @@ -297,6 +297,7 @@ gl_FragCoord origin is upper left 0:? 'g_samp[2]' (uniform sampler) 0:37 'aggShadow' (temp 3-element array of sampler) 0:? Linker Objects +0:? 'color' (layout(location=0 ) out 4-component vector of float) 0:? 'g_tex[0]' (uniform texture1D) 0:? 'g_tex[1]' (uniform texture1D) 0:? 'g_tex[2]' (uniform texture1D) @@ -309,9 +310,8 @@ gl_FragCoord origin is upper left 0:? 'g_samp_explicit[0]' (layout(binding=5 ) uniform sampler) 0:? 'g_samp_explicit[1]' (layout(binding=6 ) uniform sampler) 0:? 'g_samp_explicit[2]' (layout(binding=7 ) uniform sampler) -0:? 'anon@0' (uniform block{layout(offset=0 ) uniform 4-element array of 3X3 matrix of float g_mats, layout(binding=10 offset=192 ) uniform 4-element array of 3X3 matrix of float g_mats_explicit, layout(offset=384 ) uniform 4-element array of float g_floats}) +0:? 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 4-element array of 3X3 matrix of float g_mats, layout(binding=10 offset=192 ) uniform 4-element array of 3X3 matrix of float g_mats_explicit, layout(offset=384 ) uniform 4-element array of float g_floats}) 0:? 'not_flattened_a' (global 5-element array of int) -0:? 'color' (layout(location=0 ) out 4-component vector of float) // Module Version 10000 // Generated by (magic number): 80001 diff --git a/Test/baseResults/hlsl.array.frag.out b/Test/baseResults/hlsl.array.frag.out index 00aedb3d..e04a5e81 100755 --- a/Test/baseResults/hlsl.array.frag.out +++ b/Test/baseResults/hlsl.array.frag.out @@ -57,9 +57,9 @@ gl_FragCoord origin is upper left 0:10 Branch: Return 0:? Linker Objects 0:? '@entryPointOutput' (layout(location=0 ) out 4-component vector of float) -0:? 'anon@0' (uniform block{layout(offset=0 ) uniform 4-element array of 4-component vector of float a, layout(offset=64 ) uniform 11-element array of structure{temp 7-element array of 4-component vector of float m} s}) 0:? 'i' (layout(location=0 ) in int) 0:? 'input' (layout(location=1 ) in 3-element array of 4-component vector of float) +0:? 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 4-element array of 4-component vector of float a, layout(offset=64 ) uniform 11-element array of structure{temp 7-element array of 4-component vector of float m} s}) Linked fragment stage: @@ -123,9 +123,9 @@ gl_FragCoord origin is upper left 0:10 Branch: Return 0:? Linker Objects 0:? '@entryPointOutput' (layout(location=0 ) out 4-component vector of float) -0:? 'anon@0' (uniform block{layout(offset=0 ) uniform 4-element array of 4-component vector of float a, layout(offset=64 ) uniform 11-element array of structure{temp 7-element array of 4-component vector of float m} s}) 0:? 'i' (layout(location=0 ) in int) 0:? 'input' (layout(location=1 ) in 3-element array of 4-component vector of float) +0:? 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 4-element array of 4-component vector of float a, layout(offset=64 ) uniform 11-element array of structure{temp 7-element array of 4-component vector of float m} s}) // Module Version 10000 // Generated by (magic number): 80001 diff --git a/Test/baseResults/hlsl.array.multidim.frag.out b/Test/baseResults/hlsl.array.multidim.frag.out index a2df1a8d..66890b52 100644 --- a/Test/baseResults/hlsl.array.multidim.frag.out +++ b/Test/baseResults/hlsl.array.multidim.frag.out @@ -59,7 +59,7 @@ gl_FragCoord origin is upper left 0:19 Branch: Return 0:? Linker Objects 0:? 'Color' (layout(location=0 ) out 4-component vector of float) -0:? 'anon@0' (uniform block{layout(offset=0 ) uniform 5-element array of 4-element array of 3-element array of float float_array}) +0:? 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 5-element array of 4-element array of 3-element array of float float_array}) Linked fragment stage: @@ -125,7 +125,7 @@ gl_FragCoord origin is upper left 0:19 Branch: Return 0:? Linker Objects 0:? 'Color' (layout(location=0 ) out 4-component vector of float) -0:? 'anon@0' (uniform block{layout(offset=0 ) uniform 5-element array of 4-element array of 3-element array of float float_array}) +0:? 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 5-element array of 4-element array of 3-element array of float float_array}) // Module Version 10000 // Generated by (magic number): 80001 diff --git a/Test/baseResults/hlsl.basic.comp.out b/Test/baseResults/hlsl.basic.comp.out index c6dc3e5c..9101e22f 100755 --- a/Test/baseResults/hlsl.basic.comp.out +++ b/Test/baseResults/hlsl.basic.comp.out @@ -8,8 +8,8 @@ local_size = (1, 1, 1) 0:? Sequence 0:5 'dti' (in int LocalInvocationID) 0:? Linker Objects -0:? 'a' (shared 100-element array of 4-component vector of float) 0:? 'dti' (in int LocalInvocationID) +0:? 'a' (shared 100-element array of 4-component vector of float) Linked compute stage: @@ -24,8 +24,8 @@ local_size = (1, 1, 1) 0:? Sequence 0:5 'dti' (in int LocalInvocationID) 0:? Linker Objects -0:? 'a' (shared 100-element array of 4-component vector of float) 0:? 'dti' (in int LocalInvocationID) +0:? 'a' (shared 100-element array of 4-component vector of float) // Module Version 10000 // Generated by (magic number): 80001 diff --git a/Test/baseResults/hlsl.buffer.frag.out b/Test/baseResults/hlsl.buffer.frag.out index 2eb1f9ce..dbb2b5e1 100755 --- a/Test/baseResults/hlsl.buffer.frag.out +++ b/Test/baseResults/hlsl.buffer.frag.out @@ -32,12 +32,12 @@ gl_FragCoord origin is upper left 0:31 0 (const uint) 0:31 Branch: Return 0:? Linker Objects +0:? '@entryPointOutput' (layout(location=0 ) out 4-component vector of float) +0:? 'input' (layout(location=0 ) in 4-component vector of float) 0:? 'anon@0' (layout(row_major std140 ) uniform block{layout(row_major std140 ) uniform 4-component vector of float v1}) 0:? 'anon@1' (layout(row_major std430 ) buffer block{layout(row_major std430 ) buffer 4-component vector of float v2}) 0:? 'anon@2' (layout(set=10 binding=2 row_major std140 ) uniform block{layout(row_major std140 ) uniform 4-component vector of float v3, layout(row_major std140 offset=20 ) uniform int i3}) 0:? 'anon@3' (layout(binding=8 row_major std430 ) buffer block{layout(row_major std430 offset=16 ) buffer 4-component vector of float v4, layout(row_major std430 offset=48 ) buffer int i4, layout(row_major std430 offset=60 ) buffer float f1, layout(row_major std430 offset=64 ) buffer float f3, layout(row_major std430 offset=68 ) buffer float f4, layout(row_major std430 offset=72 ) buffer float f5, layout(row_major std430 ) buffer float f6, layout(row_major std430 ) buffer float f7, layout(row_major std430 ) buffer 3X4 matrix of float m1, layout(column_major std430 ) buffer 3X4 matrix of float m2, layout(row_major std430 ) buffer 3X4 matrix of float m3, ...}) -0:? '@entryPointOutput' (layout(location=0 ) out 4-component vector of float) -0:? 'input' (layout(location=0 ) in 4-component vector of float) Linked fragment stage: @@ -76,12 +76,12 @@ gl_FragCoord origin is upper left 0:31 0 (const uint) 0:31 Branch: Return 0:? Linker Objects +0:? '@entryPointOutput' (layout(location=0 ) out 4-component vector of float) +0:? 'input' (layout(location=0 ) in 4-component vector of float) 0:? 'anon@0' (layout(row_major std140 ) uniform block{layout(row_major std140 ) uniform 4-component vector of float v1}) 0:? 'anon@1' (layout(row_major std430 ) buffer block{layout(row_major std430 ) buffer 4-component vector of float v2}) 0:? 'anon@2' (layout(set=10 binding=2 row_major std140 ) uniform block{layout(row_major std140 ) uniform 4-component vector of float v3, layout(row_major std140 offset=20 ) uniform int i3}) 0:? 'anon@3' (layout(binding=8 row_major std430 ) buffer block{layout(row_major std430 offset=16 ) buffer 4-component vector of float v4, layout(row_major std430 offset=48 ) buffer int i4, layout(row_major std430 offset=60 ) buffer float f1, layout(row_major std430 offset=64 ) buffer float f3, layout(row_major std430 offset=68 ) buffer float f4, layout(row_major std430 offset=72 ) buffer float f5, layout(row_major std430 ) buffer float f6, layout(row_major std430 ) buffer float f7, layout(row_major std430 ) buffer 3X4 matrix of float m1, layout(column_major std430 ) buffer 3X4 matrix of float m2, layout(row_major std430 ) buffer 3X4 matrix of float m3, ...}) -0:? '@entryPointOutput' (layout(location=0 ) out 4-component vector of float) -0:? 'input' (layout(location=0 ) in 4-component vector of float) // Module Version 10000 // Generated by (magic number): 80001 diff --git a/Test/baseResults/hlsl.calculatelod.dx10.frag.out b/Test/baseResults/hlsl.calculatelod.dx10.frag.out index ff18441c..56a2ce86 100644 --- a/Test/baseResults/hlsl.calculatelod.dx10.frag.out +++ b/Test/baseResults/hlsl.calculatelod.dx10.frag.out @@ -155,6 +155,8 @@ gl_FragCoord origin is upper left 0:43 1 (const int) 0:43 Branch: Return 0:? Linker Objects +0:? 'Color' (layout(location=0 ) out 4-component vector of float) +0:? 'Depth' (out float FragDepth) 0:? 'g_sSamp' (layout(binding=0 ) uniform sampler) 0:? 'g_tTex1df4a' (layout(binding=1 ) uniform texture1DArray) 0:? 'g_tTex1df4' (layout(binding=0 ) uniform texture1DArray) @@ -166,8 +168,6 @@ gl_FragCoord origin is upper left 0:? 'g_tTexcdf4a' (uniform textureCubeArray) 0:? 'g_tTexcdi4a' (uniform itextureCubeArray) 0:? 'g_tTexcdu4a' (uniform utextureCubeArray) -0:? 'Color' (layout(location=0 ) out 4-component vector of float) -0:? 'Depth' (out float FragDepth) Linked fragment stage: @@ -329,6 +329,8 @@ gl_FragCoord origin is upper left 0:43 1 (const int) 0:43 Branch: Return 0:? Linker Objects +0:? 'Color' (layout(location=0 ) out 4-component vector of float) +0:? 'Depth' (out float FragDepth) 0:? 'g_sSamp' (layout(binding=0 ) uniform sampler) 0:? 'g_tTex1df4a' (layout(binding=1 ) uniform texture1DArray) 0:? 'g_tTex1df4' (layout(binding=0 ) uniform texture1DArray) @@ -340,8 +342,6 @@ gl_FragCoord origin is upper left 0:? 'g_tTexcdf4a' (uniform textureCubeArray) 0:? 'g_tTexcdi4a' (uniform itextureCubeArray) 0:? 'g_tTexcdu4a' (uniform utextureCubeArray) -0:? 'Color' (layout(location=0 ) out 4-component vector of float) -0:? 'Depth' (out float FragDepth) // Module Version 10000 // Generated by (magic number): 80001 diff --git a/Test/baseResults/hlsl.calculatelodunclamped.dx10.frag.out b/Test/baseResults/hlsl.calculatelodunclamped.dx10.frag.out index ecd1f0d1..799dcc37 100644 --- a/Test/baseResults/hlsl.calculatelodunclamped.dx10.frag.out +++ b/Test/baseResults/hlsl.calculatelodunclamped.dx10.frag.out @@ -167,6 +167,8 @@ ERROR: node is still EOpNull! 0:43 1 (const int) 0:43 Branch: Return 0:? Linker Objects +0:? 'Color' (layout(location=0 ) out 4-component vector of float) +0:? 'Depth' (out float FragDepth) 0:? 'g_sSamp' (layout(binding=0 ) uniform sampler) 0:? 'g_tTex1df4a' (layout(binding=1 ) uniform texture1DArray) 0:? 'g_tTex1df4' (layout(binding=0 ) uniform texture1DArray) @@ -178,8 +180,6 @@ ERROR: node is still EOpNull! 0:? 'g_tTexcdf4a' (uniform textureCubeArray) 0:? 'g_tTexcdi4a' (uniform itextureCubeArray) 0:? 'g_tTexcdu4a' (uniform utextureCubeArray) -0:? 'Color' (layout(location=0 ) out 4-component vector of float) -0:? 'Depth' (out float FragDepth) Linked fragment stage: @@ -341,6 +341,8 @@ ERROR: node is still EOpNull! 0:43 1 (const int) 0:43 Branch: Return 0:? Linker Objects +0:? 'Color' (layout(location=0 ) out 4-component vector of float) +0:? 'Depth' (out float FragDepth) 0:? 'g_sSamp' (layout(binding=0 ) uniform sampler) 0:? 'g_tTex1df4a' (layout(binding=1 ) uniform texture1DArray) 0:? 'g_tTex1df4' (layout(binding=0 ) uniform texture1DArray) @@ -352,7 +354,5 @@ ERROR: node is still EOpNull! 0:? 'g_tTexcdf4a' (uniform textureCubeArray) 0:? 'g_tTexcdi4a' (uniform itextureCubeArray) 0:? 'g_tTexcdu4a' (uniform utextureCubeArray) -0:? 'Color' (layout(location=0 ) out 4-component vector of float) -0:? 'Depth' (out float FragDepth) SPIR-V is not generated for failed compile or link diff --git a/Test/baseResults/hlsl.comparison.vec.frag.out b/Test/baseResults/hlsl.comparison.vec.frag.out index 8a31f63f..1bf63ec8 100644 --- a/Test/baseResults/hlsl.comparison.vec.frag.out +++ b/Test/baseResults/hlsl.comparison.vec.frag.out @@ -122,8 +122,8 @@ gl_FragCoord origin is upper left 0:33 0 (const int) 0:33 Branch: Return 0:? Linker Objects -0:? 'anon@0' (uniform block{layout(offset=0 ) uniform 4-component vector of float uf4}) 0:? 'Color' (layout(location=0 ) out 4-component vector of float) +0:? 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 4-component vector of float uf4}) Linked fragment stage: @@ -252,8 +252,8 @@ gl_FragCoord origin is upper left 0:33 0 (const int) 0:33 Branch: Return 0:? Linker Objects -0:? 'anon@0' (uniform block{layout(offset=0 ) uniform 4-component vector of float uf4}) 0:? 'Color' (layout(location=0 ) out 4-component vector of float) +0:? 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 4-component vector of float uf4}) // Module Version 10000 // Generated by (magic number): 80001 @@ -289,6 +289,7 @@ gl_FragCoord origin is upper left MemberName 88($Global) 0 "uf4" Name 90 "" Decorate 84(Color) Location 0 + MemberDecorate 88($Global) 0 Offset 0 Decorate 88($Global) Block Decorate 90 DescriptorSet 0 2: TypeVoid diff --git a/Test/baseResults/hlsl.float4.frag.out b/Test/baseResults/hlsl.float4.frag.out index 6caac247..8d45d6eb 100755 --- a/Test/baseResults/hlsl.float4.frag.out +++ b/Test/baseResults/hlsl.float4.frag.out @@ -17,7 +17,7 @@ gl_FragCoord origin is upper left 0:10 Constant: 0:10 0 (const uint) 0:? Linker Objects -0:? 'anon@0' (uniform block{layout(offset=0 ) uniform 4-component vector of float AmbientColor, layout(offset=16 ) uniform bool Face ff1, layout(offset=20 ) uniform float ff2, layout(binding=0 offset=32 ) uniform 4-component vector of float ff3, layout(binding=1 offset=48 ) uniform 4-component vector of float ff4}) +0:? 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 4-component vector of float AmbientColor, layout(offset=16 ) uniform bool Face ff1, layout(offset=20 ) uniform float ff2, layout(binding=0 offset=32 ) uniform 4-component vector of float ff3, layout(binding=1 offset=48 ) uniform 4-component vector of float ff4}) Linked fragment stage: @@ -38,7 +38,7 @@ gl_FragCoord origin is upper left 0:10 Constant: 0:10 0 (const uint) 0:? Linker Objects -0:? 'anon@0' (uniform block{layout(offset=0 ) uniform 4-component vector of float AmbientColor, layout(offset=16 ) uniform bool Face ff1, layout(offset=20 ) uniform float ff2, layout(binding=0 offset=32 ) uniform 4-component vector of float ff3, layout(binding=1 offset=48 ) uniform 4-component vector of float ff4}) +0:? 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 4-component vector of float AmbientColor, layout(offset=16 ) uniform bool Face ff1, layout(offset=20 ) uniform float ff2, layout(binding=0 offset=32 ) uniform 4-component vector of float ff3, layout(binding=1 offset=48 ) uniform 4-component vector of float ff4}) // Module Version 10000 // Generated by (magic number): 80001 diff --git a/Test/baseResults/hlsl.gather.array.dx10.frag.out b/Test/baseResults/hlsl.gather.array.dx10.frag.out index a09b87ce..15727d92 100644 --- a/Test/baseResults/hlsl.gather.array.dx10.frag.out +++ b/Test/baseResults/hlsl.gather.array.dx10.frag.out @@ -107,6 +107,8 @@ gl_FragCoord origin is upper left 0:42 1 (const int) 0:42 Branch: Return 0:? Linker Objects +0:? 'Color' (layout(location=0 ) out 4-component vector of float) +0:? 'Depth' (out float FragDepth) 0:? 'g_sSamp' (layout(binding=0 ) uniform sampler) 0:? 'g_tTex1df4a' (layout(binding=1 ) uniform texture1DArray) 0:? 'g_tTex1df4' (layout(binding=0 ) uniform texture1DArray) @@ -118,8 +120,6 @@ gl_FragCoord origin is upper left 0:? 'g_tTexcdf4a' (uniform textureCubeArray) 0:? 'g_tTexcdi4a' (uniform itextureCubeArray) 0:? 'g_tTexcdu4a' (uniform utextureCubeArray) -0:? 'Color' (layout(location=0 ) out 4-component vector of float) -0:? 'Depth' (out float FragDepth) Linked fragment stage: @@ -233,6 +233,8 @@ gl_FragCoord origin is upper left 0:42 1 (const int) 0:42 Branch: Return 0:? Linker Objects +0:? 'Color' (layout(location=0 ) out 4-component vector of float) +0:? 'Depth' (out float FragDepth) 0:? 'g_sSamp' (layout(binding=0 ) uniform sampler) 0:? 'g_tTex1df4a' (layout(binding=1 ) uniform texture1DArray) 0:? 'g_tTex1df4' (layout(binding=0 ) uniform texture1DArray) @@ -244,8 +246,6 @@ gl_FragCoord origin is upper left 0:? 'g_tTexcdf4a' (uniform textureCubeArray) 0:? 'g_tTexcdi4a' (uniform itextureCubeArray) 0:? 'g_tTexcdu4a' (uniform utextureCubeArray) -0:? 'Color' (layout(location=0 ) out 4-component vector of float) -0:? 'Depth' (out float FragDepth) // Module Version 10000 // Generated by (magic number): 80001 diff --git a/Test/baseResults/hlsl.gather.basic.dx10.frag.out b/Test/baseResults/hlsl.gather.basic.dx10.frag.out index 467ccf4c..26a5f38d 100644 --- a/Test/baseResults/hlsl.gather.basic.dx10.frag.out +++ b/Test/baseResults/hlsl.gather.basic.dx10.frag.out @@ -101,6 +101,8 @@ gl_FragCoord origin is upper left 0:47 1 (const int) 0:47 Branch: Return 0:? Linker Objects +0:? 'Color' (layout(location=0 ) out 4-component vector of float) +0:? 'Depth' (out float FragDepth) 0:? 'g_sSamp' (layout(binding=0 ) uniform sampler) 0:? 'g_sSamp2d' (uniform sampler) 0:? 'g_tTex1df4a' (layout(binding=1 ) uniform texture1D) @@ -116,8 +118,6 @@ gl_FragCoord origin is upper left 0:? 'g_tTexcdf4' (uniform textureCube) 0:? 'g_tTexcdi4' (uniform itextureCube) 0:? 'g_tTexcdu4' (uniform utextureCube) -0:? 'Color' (layout(location=0 ) out 4-component vector of float) -0:? 'Depth' (out float FragDepth) Linked fragment stage: @@ -225,6 +225,8 @@ gl_FragCoord origin is upper left 0:47 1 (const int) 0:47 Branch: Return 0:? Linker Objects +0:? 'Color' (layout(location=0 ) out 4-component vector of float) +0:? 'Depth' (out float FragDepth) 0:? 'g_sSamp' (layout(binding=0 ) uniform sampler) 0:? 'g_sSamp2d' (uniform sampler) 0:? 'g_tTex1df4a' (layout(binding=1 ) uniform texture1D) @@ -240,8 +242,6 @@ gl_FragCoord origin is upper left 0:? 'g_tTexcdf4' (uniform textureCube) 0:? 'g_tTexcdi4' (uniform itextureCube) 0:? 'g_tTexcdu4' (uniform utextureCube) -0:? 'Color' (layout(location=0 ) out 4-component vector of float) -0:? 'Depth' (out float FragDepth) // Module Version 10000 // Generated by (magic number): 80001 diff --git a/Test/baseResults/hlsl.gather.basic.dx10.vert.out b/Test/baseResults/hlsl.gather.basic.dx10.vert.out index d08a57e7..b7a4d6e4 100644 --- a/Test/baseResults/hlsl.gather.basic.dx10.vert.out +++ b/Test/baseResults/hlsl.gather.basic.dx10.vert.out @@ -87,6 +87,7 @@ Shader version: 450 0:45 0 (const int) 0:45 Branch: Return 0:? Linker Objects +0:? 'Pos' (out 4-component vector of float Position) 0:? 'g_sSamp' (layout(binding=0 ) uniform sampler) 0:? 'g_sSamp2d' (uniform sampler) 0:? 'g_tTex1df4a' (layout(binding=1 ) uniform texture1D) @@ -102,7 +103,6 @@ Shader version: 450 0:? 'g_tTexcdf4' (uniform textureCube) 0:? 'g_tTexcdi4' (uniform itextureCube) 0:? 'g_tTexcdu4' (uniform utextureCube) -0:? 'Pos' (out 4-component vector of float Position) Linked vertex stage: @@ -196,6 +196,7 @@ Shader version: 450 0:45 0 (const int) 0:45 Branch: Return 0:? Linker Objects +0:? 'Pos' (out 4-component vector of float Position) 0:? 'g_sSamp' (layout(binding=0 ) uniform sampler) 0:? 'g_sSamp2d' (uniform sampler) 0:? 'g_tTex1df4a' (layout(binding=1 ) uniform texture1D) @@ -211,7 +212,6 @@ Shader version: 450 0:? 'g_tTexcdf4' (uniform textureCube) 0:? 'g_tTexcdi4' (uniform itextureCube) 0:? 'g_tTexcdu4' (uniform utextureCube) -0:? 'Pos' (out 4-component vector of float Position) // Module Version 10000 // Generated by (magic number): 80001 diff --git a/Test/baseResults/hlsl.gather.offset.dx10.frag.out b/Test/baseResults/hlsl.gather.offset.dx10.frag.out index ff7eb398..2feb0ee2 100644 --- a/Test/baseResults/hlsl.gather.offset.dx10.frag.out +++ b/Test/baseResults/hlsl.gather.offset.dx10.frag.out @@ -77,6 +77,8 @@ gl_FragCoord origin is upper left 0:43 1 (const int) 0:43 Branch: Return 0:? Linker Objects +0:? 'Color' (layout(location=0 ) out 4-component vector of float) +0:? 'Depth' (out float FragDepth) 0:? 'g_sSamp' (layout(binding=0 ) uniform sampler) 0:? 'g_tTex1df4a' (layout(binding=1 ) uniform texture1D) 0:? 'g_tTex1df4' (layout(binding=0 ) uniform texture1D) @@ -91,8 +93,6 @@ gl_FragCoord origin is upper left 0:? 'g_tTexcdf4' (uniform textureCube) 0:? 'g_tTexcdi4' (uniform itextureCube) 0:? 'g_tTexcdu4' (uniform utextureCube) -0:? 'Color' (layout(location=0 ) out 4-component vector of float) -0:? 'Depth' (out float FragDepth) Linked fragment stage: @@ -176,6 +176,8 @@ gl_FragCoord origin is upper left 0:43 1 (const int) 0:43 Branch: Return 0:? Linker Objects +0:? 'Color' (layout(location=0 ) out 4-component vector of float) +0:? 'Depth' (out float FragDepth) 0:? 'g_sSamp' (layout(binding=0 ) uniform sampler) 0:? 'g_tTex1df4a' (layout(binding=1 ) uniform texture1D) 0:? 'g_tTex1df4' (layout(binding=0 ) uniform texture1D) @@ -190,8 +192,6 @@ gl_FragCoord origin is upper left 0:? 'g_tTexcdf4' (uniform textureCube) 0:? 'g_tTexcdi4' (uniform itextureCube) 0:? 'g_tTexcdu4' (uniform utextureCube) -0:? 'Color' (layout(location=0 ) out 4-component vector of float) -0:? 'Depth' (out float FragDepth) // Module Version 10000 // Generated by (magic number): 80001 diff --git a/Test/baseResults/hlsl.gather.offsetarray.dx10.frag.out b/Test/baseResults/hlsl.gather.offsetarray.dx10.frag.out index dc64a807..2dede7bb 100644 --- a/Test/baseResults/hlsl.gather.offsetarray.dx10.frag.out +++ b/Test/baseResults/hlsl.gather.offsetarray.dx10.frag.out @@ -80,6 +80,8 @@ gl_FragCoord origin is upper left 0:35 1 (const int) 0:35 Branch: Return 0:? Linker Objects +0:? 'Color' (layout(location=0 ) out 4-component vector of float) +0:? 'Depth' (out float FragDepth) 0:? 'g_sSamp' (layout(binding=0 ) uniform sampler) 0:? 'g_tTex1df4a' (layout(binding=1 ) uniform texture1DArray) 0:? 'g_tTex1df4' (layout(binding=0 ) uniform texture1DArray) @@ -88,8 +90,6 @@ gl_FragCoord origin is upper left 0:? 'g_tTex2df4' (uniform texture2DArray) 0:? 'g_tTex2di4' (uniform itexture2DArray) 0:? 'g_tTex2du4' (uniform utexture2DArray) -0:? 'Color' (layout(location=0 ) out 4-component vector of float) -0:? 'Depth' (out float FragDepth) Linked fragment stage: @@ -176,6 +176,8 @@ gl_FragCoord origin is upper left 0:35 1 (const int) 0:35 Branch: Return 0:? Linker Objects +0:? 'Color' (layout(location=0 ) out 4-component vector of float) +0:? 'Depth' (out float FragDepth) 0:? 'g_sSamp' (layout(binding=0 ) uniform sampler) 0:? 'g_tTex1df4a' (layout(binding=1 ) uniform texture1DArray) 0:? 'g_tTex1df4' (layout(binding=0 ) uniform texture1DArray) @@ -184,8 +186,6 @@ gl_FragCoord origin is upper left 0:? 'g_tTex2df4' (uniform texture2DArray) 0:? 'g_tTex2di4' (uniform itexture2DArray) 0:? 'g_tTex2du4' (uniform utexture2DArray) -0:? 'Color' (layout(location=0 ) out 4-component vector of float) -0:? 'Depth' (out float FragDepth) // Module Version 10000 // Generated by (magic number): 80001 diff --git a/Test/baseResults/hlsl.gatherRGBA.array.dx10.frag.out b/Test/baseResults/hlsl.gatherRGBA.array.dx10.frag.out index 4e78cdaf..eb7cf836 100644 --- a/Test/baseResults/hlsl.gatherRGBA.array.dx10.frag.out +++ b/Test/baseResults/hlsl.gatherRGBA.array.dx10.frag.out @@ -350,6 +350,8 @@ gl_FragCoord origin is upper left 0:70 1 (const int) 0:70 Branch: Return 0:? Linker Objects +0:? 'Color' (layout(location=0 ) out 4-component vector of float) +0:? 'Depth' (out float FragDepth) 0:? 'g_sSamp' (layout(binding=0 ) uniform sampler) 0:? 'g_sSamp2d' (uniform sampler) 0:? 'g_tTex1df4a' (layout(binding=0 ) uniform texture1DArray) @@ -361,9 +363,7 @@ gl_FragCoord origin is upper left 0:? 'g_tTexcdf4a' (uniform textureCubeArray) 0:? 'g_tTexcdi4a' (uniform itextureCubeArray) 0:? 'g_tTexcdu4a' (uniform utextureCubeArray) -0:? 'Color' (layout(location=0 ) out 4-component vector of float) -0:? 'Depth' (out float FragDepth) -0:? 'anon@0' (uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4}) +0:? 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4}) Linked fragment stage: @@ -720,6 +720,8 @@ gl_FragCoord origin is upper left 0:70 1 (const int) 0:70 Branch: Return 0:? Linker Objects +0:? 'Color' (layout(location=0 ) out 4-component vector of float) +0:? 'Depth' (out float FragDepth) 0:? 'g_sSamp' (layout(binding=0 ) uniform sampler) 0:? 'g_sSamp2d' (uniform sampler) 0:? 'g_tTex1df4a' (layout(binding=0 ) uniform texture1DArray) @@ -731,9 +733,7 @@ gl_FragCoord origin is upper left 0:? 'g_tTexcdf4a' (uniform textureCubeArray) 0:? 'g_tTexcdi4a' (uniform itextureCubeArray) 0:? 'g_tTexcdu4a' (uniform utextureCubeArray) -0:? 'Color' (layout(location=0 ) out 4-component vector of float) -0:? 'Depth' (out float FragDepth) -0:? 'anon@0' (uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4}) +0:? 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4}) // Module Version 10000 // Generated by (magic number): 80001 diff --git a/Test/baseResults/hlsl.gatherRGBA.basic.dx10.frag.out b/Test/baseResults/hlsl.gatherRGBA.basic.dx10.frag.out index ef1e7e05..b92874e8 100644 --- a/Test/baseResults/hlsl.gatherRGBA.basic.dx10.frag.out +++ b/Test/baseResults/hlsl.gatherRGBA.basic.dx10.frag.out @@ -350,6 +350,8 @@ gl_FragCoord origin is upper left 0:76 1 (const int) 0:76 Branch: Return 0:? Linker Objects +0:? 'Color' (layout(location=0 ) out 4-component vector of float) +0:? 'Depth' (out float FragDepth) 0:? 'g_sSamp' (layout(binding=0 ) uniform sampler) 0:? 'g_sSamp2d' (uniform sampler) 0:? 'g_tTex1df4a' (layout(binding=1 ) uniform texture1D) @@ -365,9 +367,7 @@ gl_FragCoord origin is upper left 0:? 'g_tTexcdf4' (uniform textureCube) 0:? 'g_tTexcdi4' (uniform itextureCube) 0:? 'g_tTexcdu4' (uniform utextureCube) -0:? 'Color' (layout(location=0 ) out 4-component vector of float) -0:? 'Depth' (out float FragDepth) -0:? 'anon@0' (uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4}) +0:? 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4}) Linked fragment stage: @@ -724,6 +724,8 @@ gl_FragCoord origin is upper left 0:76 1 (const int) 0:76 Branch: Return 0:? Linker Objects +0:? 'Color' (layout(location=0 ) out 4-component vector of float) +0:? 'Depth' (out float FragDepth) 0:? 'g_sSamp' (layout(binding=0 ) uniform sampler) 0:? 'g_sSamp2d' (uniform sampler) 0:? 'g_tTex1df4a' (layout(binding=1 ) uniform texture1D) @@ -739,9 +741,7 @@ gl_FragCoord origin is upper left 0:? 'g_tTexcdf4' (uniform textureCube) 0:? 'g_tTexcdi4' (uniform itextureCube) 0:? 'g_tTexcdu4' (uniform utextureCube) -0:? 'Color' (layout(location=0 ) out 4-component vector of float) -0:? 'Depth' (out float FragDepth) -0:? 'anon@0' (uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4}) +0:? 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4}) // Module Version 10000 // Generated by (magic number): 80001 diff --git a/Test/baseResults/hlsl.gatherRGBA.offset.dx10.frag.out b/Test/baseResults/hlsl.gatherRGBA.offset.dx10.frag.out index f178c3b3..5da611cf 100644 --- a/Test/baseResults/hlsl.gatherRGBA.offset.dx10.frag.out +++ b/Test/baseResults/hlsl.gatherRGBA.offset.dx10.frag.out @@ -602,6 +602,8 @@ gl_FragCoord origin is upper left 0:115 1 (const int) 0:115 Branch: Return 0:? Linker Objects +0:? 'Color' (layout(location=0 ) out 4-component vector of float) +0:? 'Depth' (out float FragDepth) 0:? 'g_sSamp' (layout(binding=0 ) uniform sampler) 0:? 'g_sSamp2d' (uniform sampler) 0:? 'g_tTex1df4a' (layout(binding=1 ) uniform texture1D) @@ -617,9 +619,7 @@ gl_FragCoord origin is upper left 0:? 'g_tTexcdf4' (uniform textureCube) 0:? 'g_tTexcdi4' (uniform itextureCube) 0:? 'g_tTexcdu4' (uniform utextureCube) -0:? 'Color' (layout(location=0 ) out 4-component vector of float) -0:? 'Depth' (out float FragDepth) -0:? 'anon@0' (uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:? 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) Linked fragment stage: @@ -1228,6 +1228,8 @@ gl_FragCoord origin is upper left 0:115 1 (const int) 0:115 Branch: Return 0:? Linker Objects +0:? 'Color' (layout(location=0 ) out 4-component vector of float) +0:? 'Depth' (out float FragDepth) 0:? 'g_sSamp' (layout(binding=0 ) uniform sampler) 0:? 'g_sSamp2d' (uniform sampler) 0:? 'g_tTex1df4a' (layout(binding=1 ) uniform texture1D) @@ -1243,9 +1245,7 @@ gl_FragCoord origin is upper left 0:? 'g_tTexcdf4' (uniform textureCube) 0:? 'g_tTexcdi4' (uniform itextureCube) 0:? 'g_tTexcdu4' (uniform utextureCube) -0:? 'Color' (layout(location=0 ) out 4-component vector of float) -0:? 'Depth' (out float FragDepth) -0:? 'anon@0' (uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:? 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) // Module Version 10000 // Generated by (magic number): 80001 diff --git a/Test/baseResults/hlsl.gatherRGBA.offsetarray.dx10.frag.out b/Test/baseResults/hlsl.gatherRGBA.offsetarray.dx10.frag.out index f565379f..f472ee2d 100644 --- a/Test/baseResults/hlsl.gatherRGBA.offsetarray.dx10.frag.out +++ b/Test/baseResults/hlsl.gatherRGBA.offsetarray.dx10.frag.out @@ -602,6 +602,8 @@ gl_FragCoord origin is upper left 0:109 1 (const int) 0:109 Branch: Return 0:? Linker Objects +0:? 'Color' (layout(location=0 ) out 4-component vector of float) +0:? 'Depth' (out float FragDepth) 0:? 'g_sSamp' (layout(binding=0 ) uniform sampler) 0:? 'g_sSamp2d' (uniform sampler) 0:? 'g_tTex1df4a' (layout(binding=0 ) uniform texture1DArray) @@ -613,9 +615,7 @@ gl_FragCoord origin is upper left 0:? 'g_tTexcdf4a' (uniform textureCubeArray) 0:? 'g_tTexcdi4a' (uniform itextureCubeArray) 0:? 'g_tTexcdu4a' (uniform utextureCubeArray) -0:? 'Color' (layout(location=0 ) out 4-component vector of float) -0:? 'Depth' (out float FragDepth) -0:? 'anon@0' (uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:? 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) Linked fragment stage: @@ -1224,6 +1224,8 @@ gl_FragCoord origin is upper left 0:109 1 (const int) 0:109 Branch: Return 0:? Linker Objects +0:? 'Color' (layout(location=0 ) out 4-component vector of float) +0:? 'Depth' (out float FragDepth) 0:? 'g_sSamp' (layout(binding=0 ) uniform sampler) 0:? 'g_sSamp2d' (uniform sampler) 0:? 'g_tTex1df4a' (layout(binding=0 ) uniform texture1DArray) @@ -1235,9 +1237,7 @@ gl_FragCoord origin is upper left 0:? 'g_tTexcdf4a' (uniform textureCubeArray) 0:? 'g_tTexcdi4a' (uniform itextureCubeArray) 0:? 'g_tTexcdu4a' (uniform utextureCubeArray) -0:? 'Color' (layout(location=0 ) out 4-component vector of float) -0:? 'Depth' (out float FragDepth) -0:? 'anon@0' (uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:? 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) // Module Version 10000 // Generated by (magic number): 80001 diff --git a/Test/baseResults/hlsl.getdimensions.dx10.frag.out b/Test/baseResults/hlsl.getdimensions.dx10.frag.out index 3a55d682..0c488cfb 100644 --- a/Test/baseResults/hlsl.getdimensions.dx10.frag.out +++ b/Test/baseResults/hlsl.getdimensions.dx10.frag.out @@ -1076,6 +1076,8 @@ gl_FragCoord origin is upper left 0:279 1 (const int) 0:279 Branch: Return 0:? Linker Objects +0:? 'Color' (layout(location=0 ) out 4-component vector of float) +0:? 'Depth' (out float FragDepth) 0:? 'g_sSamp' (layout(binding=0 ) uniform sampler) 0:? 'g_tTex1df4' (layout(binding=0 ) uniform texture1D) 0:? 'g_tTex1di4' (uniform itexture1D) @@ -1104,8 +1106,6 @@ gl_FragCoord origin is upper left 0:? 'g_tTex2dmsf4a' (uniform texture2DMSArray) 0:? 'g_tTex2dmsi4a' (uniform itexture2DMSArray) 0:? 'g_tTex2dmsu4a' (uniform utexture2DMSArray) -0:? 'Color' (layout(location=0 ) out 4-component vector of float) -0:? 'Depth' (out float FragDepth) Linked fragment stage: @@ -2188,6 +2188,8 @@ gl_FragCoord origin is upper left 0:279 1 (const int) 0:279 Branch: Return 0:? Linker Objects +0:? 'Color' (layout(location=0 ) out 4-component vector of float) +0:? 'Depth' (out float FragDepth) 0:? 'g_sSamp' (layout(binding=0 ) uniform sampler) 0:? 'g_tTex1df4' (layout(binding=0 ) uniform texture1D) 0:? 'g_tTex1di4' (uniform itexture1D) @@ -2216,8 +2218,6 @@ gl_FragCoord origin is upper left 0:? 'g_tTex2dmsf4a' (uniform texture2DMSArray) 0:? 'g_tTex2dmsi4a' (uniform itexture2DMSArray) 0:? 'g_tTex2dmsu4a' (uniform utexture2DMSArray) -0:? 'Color' (layout(location=0 ) out 4-component vector of float) -0:? 'Depth' (out float FragDepth) // Module Version 10000 // Generated by (magic number): 80001 diff --git a/Test/baseResults/hlsl.getdimensions.dx10.vert.out b/Test/baseResults/hlsl.getdimensions.dx10.vert.out index 3a05bca8..c1c90f4b 100644 --- a/Test/baseResults/hlsl.getdimensions.dx10.vert.out +++ b/Test/baseResults/hlsl.getdimensions.dx10.vert.out @@ -46,9 +46,9 @@ Shader version: 450 0:26 0 (const int) 0:26 Branch: Return 0:? Linker Objects +0:? 'Pos' (out 4-component vector of float Position) 0:? 'g_sSamp' (layout(binding=0 ) uniform sampler) 0:? 'g_tTex1df4' (layout(binding=0 ) uniform texture1D) -0:? 'Pos' (out 4-component vector of float Position) Linked vertex stage: @@ -101,9 +101,9 @@ Shader version: 450 0:26 0 (const int) 0:26 Branch: Return 0:? Linker Objects +0:? 'Pos' (out 4-component vector of float Position) 0:? 'g_sSamp' (layout(binding=0 ) uniform sampler) 0:? 'g_tTex1df4' (layout(binding=0 ) uniform texture1D) -0:? 'Pos' (out 4-component vector of float Position) // Module Version 10000 // Generated by (magic number): 80001 diff --git a/Test/baseResults/hlsl.getdimensions.rw.dx10.frag.out b/Test/baseResults/hlsl.getdimensions.rw.dx10.frag.out index 717c376a..918246b6 100644 --- a/Test/baseResults/hlsl.getdimensions.rw.dx10.frag.out +++ b/Test/baseResults/hlsl.getdimensions.rw.dx10.frag.out @@ -326,6 +326,8 @@ gl_FragCoord origin is upper left 0:95 1 (const int) 0:95 Branch: Return 0:? Linker Objects +0:? 'Color' (layout(location=0 ) out 4-component vector of float) +0:? 'Depth' (out float FragDepth) 0:? 'g_sSamp' (layout(binding=0 ) uniform sampler) 0:? 'g_tTex1df4' (layout(binding=0 rgba32f ) uniform image1D) 0:? 'g_tTex1di4' (layout(rgba32i ) uniform iimage1D) @@ -345,9 +347,7 @@ gl_FragCoord origin is upper left 0:? 'g_tBuffF' (layout(rgba32f ) uniform imageBuffer) 0:? 'g_tBuffI' (layout(rgba32i ) uniform iimageBuffer) 0:? 'g_tBuffU' (layout(rgba32ui ) uniform uimageBuffer) -0:? 'Color' (layout(location=0 ) out 4-component vector of float) -0:? 'Depth' (out float FragDepth) -0:? 'anon@0' (uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:? 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) Linked fragment stage: @@ -680,6 +680,8 @@ gl_FragCoord origin is upper left 0:95 1 (const int) 0:95 Branch: Return 0:? Linker Objects +0:? 'Color' (layout(location=0 ) out 4-component vector of float) +0:? 'Depth' (out float FragDepth) 0:? 'g_sSamp' (layout(binding=0 ) uniform sampler) 0:? 'g_tTex1df4' (layout(binding=0 rgba32f ) uniform image1D) 0:? 'g_tTex1di4' (layout(rgba32i ) uniform iimage1D) @@ -699,9 +701,7 @@ gl_FragCoord origin is upper left 0:? 'g_tBuffF' (layout(rgba32f ) uniform imageBuffer) 0:? 'g_tBuffI' (layout(rgba32i ) uniform iimageBuffer) 0:? 'g_tBuffU' (layout(rgba32ui ) uniform uimageBuffer) -0:? 'Color' (layout(location=0 ) out 4-component vector of float) -0:? 'Depth' (out float FragDepth) -0:? 'anon@0' (uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:? 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) // Module Version 10000 // Generated by (magic number): 80001 @@ -796,6 +796,14 @@ gl_FragCoord origin is upper left Decorate 214(Depth) BuiltIn FragDepth Decorate 220(g_sSamp) DescriptorSet 0 Decorate 220(g_sSamp) Binding 0 + MemberDecorate 222($Global) 0 Offset 0 + MemberDecorate 222($Global) 1 Offset 8 + MemberDecorate 222($Global) 2 Offset 16 + MemberDecorate 222($Global) 3 Offset 32 + MemberDecorate 222($Global) 4 Offset 48 + MemberDecorate 222($Global) 5 Offset 56 + MemberDecorate 222($Global) 6 Offset 64 + MemberDecorate 222($Global) 7 Offset 80 Decorate 222($Global) Block Decorate 224 DescriptorSet 0 2: TypeVoid diff --git a/Test/baseResults/hlsl.getsampleposition.dx10.frag.out b/Test/baseResults/hlsl.getsampleposition.dx10.frag.out index 9465c62b..7d8d9be6 100644 --- a/Test/baseResults/hlsl.getsampleposition.dx10.frag.out +++ b/Test/baseResults/hlsl.getsampleposition.dx10.frag.out @@ -59,11 +59,11 @@ ERROR: node is still EOpNull! 0:22 1 (const int) 0:22 Branch: Return 0:? Linker Objects +0:? 'Color' (layout(location=0 ) out 4-component vector of float) +0:? 'Depth' (out float FragDepth) 0:? 'g_sSamp' (layout(binding=0 ) uniform sampler) 0:? 'g_tTex2dmsf4' (uniform texture2DMS) 0:? 'g_tTex2dmsf4a' (uniform texture2DMSArray) -0:? 'Color' (layout(location=0 ) out 4-component vector of float) -0:? 'Depth' (out float FragDepth) Linked fragment stage: @@ -124,10 +124,10 @@ ERROR: node is still EOpNull! 0:22 1 (const int) 0:22 Branch: Return 0:? Linker Objects +0:? 'Color' (layout(location=0 ) out 4-component vector of float) +0:? 'Depth' (out float FragDepth) 0:? 'g_sSamp' (layout(binding=0 ) uniform sampler) 0:? 'g_tTex2dmsf4' (uniform texture2DMS) 0:? 'g_tTex2dmsf4a' (uniform texture2DMSArray) -0:? 'Color' (layout(location=0 ) out 4-component vector of float) -0:? 'Depth' (out float FragDepth) SPIR-V is not generated for failed compile or link diff --git a/Test/baseResults/hlsl.init.frag.out b/Test/baseResults/hlsl.init.frag.out index b31921b4..42f94cae 100755 --- a/Test/baseResults/hlsl.init.frag.out +++ b/Test/baseResults/hlsl.init.frag.out @@ -132,6 +132,8 @@ gl_FragCoord origin is upper left 0:35 'a1' (global 4-component vector of float) 0:35 Branch: Return 0:? Linker Objects +0:? '@entryPointOutput' (layout(location=0 ) out 4-component vector of float) +0:? 'input' (layout(location=0 ) in 4-component vector of float) 0:? 'a1' (global 4-component vector of float) 0:? 'b1' (global 4-component vector of float) 0:? 'a1i' (global 4-component vector of float) @@ -150,8 +152,6 @@ gl_FragCoord origin is upper left 0:? 'single2' (global structure{temp 2-component vector of uint v}) 0:? 'single3' (global structure{temp structure{temp int f} s1}) 0:? 'single4' (global structure{temp structure{temp 2-component vector of uint v} s1}) -0:? '@entryPointOutput' (layout(location=0 ) out 4-component vector of float) -0:? 'input' (layout(location=0 ) in 4-component vector of float) Linked fragment stage: @@ -290,6 +290,8 @@ gl_FragCoord origin is upper left 0:35 'a1' (global 4-component vector of float) 0:35 Branch: Return 0:? Linker Objects +0:? '@entryPointOutput' (layout(location=0 ) out 4-component vector of float) +0:? 'input' (layout(location=0 ) in 4-component vector of float) 0:? 'a1' (global 4-component vector of float) 0:? 'b1' (global 4-component vector of float) 0:? 'a1i' (global 4-component vector of float) @@ -308,8 +310,6 @@ gl_FragCoord origin is upper left 0:? 'single2' (global structure{temp 2-component vector of uint v}) 0:? 'single3' (global structure{temp structure{temp int f} s1}) 0:? 'single4' (global structure{temp structure{temp 2-component vector of uint v} s1}) -0:? '@entryPointOutput' (layout(location=0 ) out 4-component vector of float) -0:? 'input' (layout(location=0 ) in 4-component vector of float) // Module Version 10000 // Generated by (magic number): 80001 diff --git a/Test/baseResults/hlsl.intrinsics.comp.out b/Test/baseResults/hlsl.intrinsics.comp.out index cd366fcb..732e2544 100644 --- a/Test/baseResults/hlsl.intrinsics.comp.out +++ b/Test/baseResults/hlsl.intrinsics.comp.out @@ -309,6 +309,12 @@ local_size = (1, 1, 1) 0:? 4.000000 0:128 Branch: Return 0:? Linker Objects +0:? '@entryPointOutput' (layout(location=0 ) out 4-component vector of float) +0:? 'inF0' (layout(location=0 ) in 4-component vector of float) +0:? 'inF1' (layout(location=1 ) in 4-component vector of float) +0:? 'inF2' (layout(location=2 ) in 4-component vector of float) +0:? 'inU0' (layout(location=3 ) in 4-component vector of uint) +0:? 'inU1' (layout(location=4 ) in 4-component vector of uint) 0:? 'gs_ua' (shared uint) 0:? 'gs_ub' (shared uint) 0:? 'gs_uc' (shared uint) @@ -321,12 +327,6 @@ local_size = (1, 1, 1) 0:? 'gs_ua4' (shared 4-component vector of uint) 0:? 'gs_ub4' (shared 4-component vector of uint) 0:? 'gs_uc4' (shared 4-component vector of uint) -0:? '@entryPointOutput' (layout(location=0 ) out 4-component vector of float) -0:? 'inF0' (layout(location=0 ) in 4-component vector of float) -0:? 'inF1' (layout(location=1 ) in 4-component vector of float) -0:? 'inF2' (layout(location=2 ) in 4-component vector of float) -0:? 'inU0' (layout(location=3 ) in 4-component vector of uint) -0:? 'inU1' (layout(location=4 ) in 4-component vector of uint) Linked compute stage: @@ -642,6 +642,12 @@ local_size = (1, 1, 1) 0:? 4.000000 0:128 Branch: Return 0:? Linker Objects +0:? '@entryPointOutput' (layout(location=0 ) out 4-component vector of float) +0:? 'inF0' (layout(location=0 ) in 4-component vector of float) +0:? 'inF1' (layout(location=1 ) in 4-component vector of float) +0:? 'inF2' (layout(location=2 ) in 4-component vector of float) +0:? 'inU0' (layout(location=3 ) in 4-component vector of uint) +0:? 'inU1' (layout(location=4 ) in 4-component vector of uint) 0:? 'gs_ua' (shared uint) 0:? 'gs_ub' (shared uint) 0:? 'gs_uc' (shared uint) @@ -654,12 +660,6 @@ local_size = (1, 1, 1) 0:? 'gs_ua4' (shared 4-component vector of uint) 0:? 'gs_ub4' (shared 4-component vector of uint) 0:? 'gs_uc4' (shared 4-component vector of uint) -0:? '@entryPointOutput' (layout(location=0 ) out 4-component vector of float) -0:? 'inF0' (layout(location=0 ) in 4-component vector of float) -0:? 'inF1' (layout(location=1 ) in 4-component vector of float) -0:? 'inF2' (layout(location=2 ) in 4-component vector of float) -0:? 'inU0' (layout(location=3 ) in 4-component vector of uint) -0:? 'inU1' (layout(location=4 ) in 4-component vector of uint) // Module Version 10000 // Generated by (magic number): 80001 diff --git a/Test/baseResults/hlsl.intrinsics.frag.out b/Test/baseResults/hlsl.intrinsics.frag.out index d5a0f998..a5a119a8 100644 --- a/Test/baseResults/hlsl.intrinsics.frag.out +++ b/Test/baseResults/hlsl.intrinsics.frag.out @@ -2782,6 +2782,7 @@ gl_FragCoord origin is upper left 0:492 0 (const int) 0:492 Branch: Return 0:? Linker Objects +0:? 'color' (layout(location=0 ) out 4-component vector of float) 0:? 'gs_ua' (shared uint) 0:? 'gs_ub' (shared uint) 0:? 'gs_uc' (shared uint) @@ -2794,7 +2795,6 @@ gl_FragCoord origin is upper left 0:? 'gs_ua4' (shared 4-component vector of uint) 0:? 'gs_ub4' (shared 4-component vector of uint) 0:? 'gs_uc4' (shared 4-component vector of uint) -0:? 'color' (layout(location=0 ) out 4-component vector of float) Linked fragment stage: @@ -5583,6 +5583,7 @@ gl_FragCoord origin is upper left 0:492 0 (const int) 0:492 Branch: Return 0:? Linker Objects +0:? 'color' (layout(location=0 ) out 4-component vector of float) 0:? 'gs_ua' (shared uint) 0:? 'gs_ub' (shared uint) 0:? 'gs_uc' (shared uint) @@ -5595,7 +5596,6 @@ gl_FragCoord origin is upper left 0:? 'gs_ua4' (shared 4-component vector of uint) 0:? 'gs_ub4' (shared 4-component vector of uint) 0:? 'gs_uc4' (shared 4-component vector of uint) -0:? 'color' (layout(location=0 ) out 4-component vector of float) // Module Version 10000 // Generated by (magic number): 80001 diff --git a/Test/baseResults/hlsl.intrinsics.negative.vert.out b/Test/baseResults/hlsl.intrinsics.negative.vert.out index 72b6fbcc..b57a5a9a 100644 --- a/Test/baseResults/hlsl.intrinsics.negative.vert.out +++ b/Test/baseResults/hlsl.intrinsics.negative.vert.out @@ -114,6 +114,11 @@ Shader version: 450 0:? 4.000000 0:? 4.000000 0:? Linker Objects +0:? '@entryPointOutput' (layout(location=0 ) out 4-component vector of float) +0:? 'inF0' (layout(location=0 ) in 4-component vector of float) +0:? 'inF1' (layout(location=1 ) in 4-component vector of float) +0:? 'inF2' (layout(location=2 ) in 4-component vector of float) +0:? 'inI0' (layout(location=3 ) in 4-component vector of int) 0:? 'gs_ua' (global uint) 0:? 'gs_ub' (global uint) 0:? 'gs_uc' (global uint) @@ -126,11 +131,6 @@ Shader version: 450 0:? 'gs_ua4' (global 4-component vector of uint) 0:? 'gs_ub4' (global 4-component vector of uint) 0:? 'gs_uc4' (global 4-component vector of uint) -0:? '@entryPointOutput' (layout(location=0 ) out 4-component vector of float) -0:? 'inF0' (layout(location=0 ) in 4-component vector of float) -0:? 'inF1' (layout(location=1 ) in 4-component vector of float) -0:? 'inF2' (layout(location=2 ) in 4-component vector of float) -0:? 'inI0' (layout(location=3 ) in 4-component vector of int) Linked vertex stage: @@ -251,6 +251,11 @@ Shader version: 450 0:? 4.000000 0:? 4.000000 0:? Linker Objects +0:? '@entryPointOutput' (layout(location=0 ) out 4-component vector of float) +0:? 'inF0' (layout(location=0 ) in 4-component vector of float) +0:? 'inF1' (layout(location=1 ) in 4-component vector of float) +0:? 'inF2' (layout(location=2 ) in 4-component vector of float) +0:? 'inI0' (layout(location=3 ) in 4-component vector of int) 0:? 'gs_ua' (global uint) 0:? 'gs_ub' (global uint) 0:? 'gs_uc' (global uint) @@ -263,11 +268,6 @@ Shader version: 450 0:? 'gs_ua4' (global 4-component vector of uint) 0:? 'gs_ub4' (global 4-component vector of uint) 0:? 'gs_uc4' (global 4-component vector of uint) -0:? '@entryPointOutput' (layout(location=0 ) out 4-component vector of float) -0:? 'inF0' (layout(location=0 ) in 4-component vector of float) -0:? 'inF1' (layout(location=1 ) in 4-component vector of float) -0:? 'inF2' (layout(location=2 ) in 4-component vector of float) -0:? 'inI0' (layout(location=3 ) in 4-component vector of int) // Module Version 10000 // Generated by (magic number): 80001 @@ -276,7 +276,7 @@ Shader version: 450 Capability Shader 1: ExtInstImport "GLSL.std.450" MemoryModel Logical GLSL450 - EntryPoint Vertex 4 "VertexShaderFunction" 85 122 123 124 127 + EntryPoint Vertex 4 "VertexShaderFunction" 85 102 103 104 107 Name 4 "VertexShaderFunction" Name 15 "VertexShaderFunctionS(f1;f1;f1;i1;" Name 11 "inF0" @@ -311,27 +311,27 @@ Shader version: 450 Name 66 "inF1" Name 67 "inF2" Name 85 "@entryPointOutput" - Name 103 "gs_ua" - Name 104 "gs_ub" - Name 105 "gs_uc" - Name 108 "gs_ua2" - Name 109 "gs_ub2" - Name 110 "gs_uc2" - Name 113 "gs_ua3" - Name 114 "gs_ub3" - Name 115 "gs_uc3" - Name 118 "gs_ua4" - Name 119 "gs_ub4" - Name 120 "gs_uc4" - Name 122 "inF0" - Name 123 "inF1" - Name 124 "inF2" - Name 127 "inI0" + Name 102 "inF0" + Name 103 "inF1" + Name 104 "inF2" + Name 107 "inI0" + Name 110 "gs_ua" + Name 111 "gs_ub" + Name 112 "gs_uc" + Name 115 "gs_ua2" + Name 116 "gs_ub2" + Name 117 "gs_uc2" + Name 120 "gs_ua3" + Name 121 "gs_ub3" + Name 122 "gs_uc3" + Name 125 "gs_ua4" + Name 126 "gs_ub4" + Name 127 "gs_uc4" Decorate 85(@entryPointOutput) Location 0 - Decorate 122(inF0) Location 0 - Decorate 123(inF1) Location 1 - Decorate 124(inF2) Location 2 - Decorate 127(inI0) Location 3 + Decorate 102(inF0) Location 0 + Decorate 103(inF1) Location 1 + Decorate 104(inF2) Location 2 + Decorate 107(inI0) Location 3 2: TypeVoid 3: TypeFunction 2 6: TypeFloat 32 @@ -375,33 +375,33 @@ Shader version: 450 94: 53 ConstantComposite 93 93 93 97: 61(fvec4) ConstantComposite 86 86 86 86 98: 62 ConstantComposite 97 97 97 97 - 101: TypeInt 32 0 - 102: TypePointer Private 101(int) - 103(gs_ua): 102(ptr) Variable Private - 104(gs_ub): 102(ptr) Variable Private - 105(gs_uc): 102(ptr) Variable Private - 106: TypeVector 101(int) 2 - 107: TypePointer Private 106(ivec2) - 108(gs_ua2): 107(ptr) Variable Private - 109(gs_ub2): 107(ptr) Variable Private - 110(gs_uc2): 107(ptr) Variable Private - 111: TypeVector 101(int) 3 - 112: TypePointer Private 111(ivec3) - 113(gs_ua3): 112(ptr) Variable Private - 114(gs_ub3): 112(ptr) Variable Private - 115(gs_uc3): 112(ptr) Variable Private - 116: TypeVector 101(int) 4 - 117: TypePointer Private 116(ivec4) - 118(gs_ua4): 117(ptr) Variable Private - 119(gs_ub4): 117(ptr) Variable Private - 120(gs_uc4): 117(ptr) Variable Private - 121: TypePointer Input 61(fvec4) - 122(inF0): 121(ptr) Variable Input - 123(inF1): 121(ptr) Variable Input - 124(inF2): 121(ptr) Variable Input - 125: TypeVector 8(int) 4 - 126: TypePointer Input 125(ivec4) - 127(inI0): 126(ptr) Variable Input + 101: TypePointer Input 61(fvec4) + 102(inF0): 101(ptr) Variable Input + 103(inF1): 101(ptr) Variable Input + 104(inF2): 101(ptr) Variable Input + 105: TypeVector 8(int) 4 + 106: TypePointer Input 105(ivec4) + 107(inI0): 106(ptr) Variable Input + 108: TypeInt 32 0 + 109: TypePointer Private 108(int) + 110(gs_ua): 109(ptr) Variable Private + 111(gs_ub): 109(ptr) Variable Private + 112(gs_uc): 109(ptr) Variable Private + 113: TypeVector 108(int) 2 + 114: TypePointer Private 113(ivec2) + 115(gs_ua2): 114(ptr) Variable Private + 116(gs_ub2): 114(ptr) Variable Private + 117(gs_uc2): 114(ptr) Variable Private + 118: TypeVector 108(int) 3 + 119: TypePointer Private 118(ivec3) + 120(gs_ua3): 119(ptr) Variable Private + 121(gs_ub3): 119(ptr) Variable Private + 122(gs_uc3): 119(ptr) Variable Private + 123: TypeVector 108(int) 4 + 124: TypePointer Private 123(ivec4) + 125(gs_ua4): 124(ptr) Variable Private + 126(gs_ub4): 124(ptr) Variable Private + 127(gs_uc4): 124(ptr) Variable Private 4(VertexShaderFunction): 2 Function None 3 5: Label Store 85(@entryPointOutput) 87 diff --git a/Test/baseResults/hlsl.load.2dms.dx10.frag.out b/Test/baseResults/hlsl.load.2dms.dx10.frag.out index 9c1b4ad9..288a0f3f 100644 --- a/Test/baseResults/hlsl.load.2dms.dx10.frag.out +++ b/Test/baseResults/hlsl.load.2dms.dx10.frag.out @@ -158,6 +158,8 @@ gl_FragCoord origin is upper left 0:54 1 (const int) 0:54 Branch: Return 0:? Linker Objects +0:? 'Color' (layout(location=0 ) out 4-component vector of float) +0:? 'Depth' (out float FragDepth) 0:? 'g_sSamp' (layout(binding=0 ) uniform sampler) 0:? 'g_tTex2dmsf4' (uniform texture2DMS) 0:? 'g_tTex2dmsi4' (uniform itexture2DMS) @@ -165,9 +167,7 @@ gl_FragCoord origin is upper left 0:? 'g_tTex2dmsf4a' (uniform texture2DMSArray) 0:? 'g_tTex2dmsi4a' (uniform itexture2DMSArray) 0:? 'g_tTex2dmsu4a' (uniform utexture2DMSArray) -0:? 'Color' (layout(location=0 ) out 4-component vector of float) -0:? 'Depth' (out float FragDepth) -0:? 'anon@0' (uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:? 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) Linked fragment stage: @@ -332,6 +332,8 @@ gl_FragCoord origin is upper left 0:54 1 (const int) 0:54 Branch: Return 0:? Linker Objects +0:? 'Color' (layout(location=0 ) out 4-component vector of float) +0:? 'Depth' (out float FragDepth) 0:? 'g_sSamp' (layout(binding=0 ) uniform sampler) 0:? 'g_tTex2dmsf4' (uniform texture2DMS) 0:? 'g_tTex2dmsi4' (uniform itexture2DMS) @@ -339,9 +341,7 @@ gl_FragCoord origin is upper left 0:? 'g_tTex2dmsf4a' (uniform texture2DMSArray) 0:? 'g_tTex2dmsi4a' (uniform itexture2DMSArray) 0:? 'g_tTex2dmsu4a' (uniform utexture2DMSArray) -0:? 'Color' (layout(location=0 ) out 4-component vector of float) -0:? 'Depth' (out float FragDepth) -0:? 'anon@0' (uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:? 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) // Module Version 10000 // Generated by (magic number): 80001 diff --git a/Test/baseResults/hlsl.load.array.dx10.frag.out b/Test/baseResults/hlsl.load.array.dx10.frag.out index ed2951f7..8c4f7c8d 100644 --- a/Test/baseResults/hlsl.load.array.dx10.frag.out +++ b/Test/baseResults/hlsl.load.array.dx10.frag.out @@ -158,6 +158,8 @@ gl_FragCoord origin is upper left 0:70 1 (const int) 0:70 Branch: Return 0:? Linker Objects +0:? 'Color' (layout(location=0 ) out 4-component vector of float) +0:? 'Depth' (out float FragDepth) 0:? 'g_sSamp' (layout(binding=0 ) uniform sampler) 0:? 'g_tTex1df4' (layout(binding=0 ) uniform texture1D) 0:? 'g_tTex1di4' (uniform itexture1D) @@ -180,9 +182,7 @@ gl_FragCoord origin is upper left 0:? 'g_tTexcdf4a' (uniform textureCubeArray) 0:? 'g_tTexcdi4a' (uniform itextureCubeArray) 0:? 'g_tTexcdu4a' (uniform utextureCubeArray) -0:? 'Color' (layout(location=0 ) out 4-component vector of float) -0:? 'Depth' (out float FragDepth) -0:? 'anon@0' (uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:? 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) Linked fragment stage: @@ -347,6 +347,8 @@ gl_FragCoord origin is upper left 0:70 1 (const int) 0:70 Branch: Return 0:? Linker Objects +0:? 'Color' (layout(location=0 ) out 4-component vector of float) +0:? 'Depth' (out float FragDepth) 0:? 'g_sSamp' (layout(binding=0 ) uniform sampler) 0:? 'g_tTex1df4' (layout(binding=0 ) uniform texture1D) 0:? 'g_tTex1di4' (uniform itexture1D) @@ -369,9 +371,7 @@ gl_FragCoord origin is upper left 0:? 'g_tTexcdf4a' (uniform textureCubeArray) 0:? 'g_tTexcdi4a' (uniform itextureCubeArray) 0:? 'g_tTexcdu4a' (uniform utextureCubeArray) -0:? 'Color' (layout(location=0 ) out 4-component vector of float) -0:? 'Depth' (out float FragDepth) -0:? 'anon@0' (uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:? 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) // Module Version 10000 // Generated by (magic number): 80001 diff --git a/Test/baseResults/hlsl.load.basic.dx10.frag.out b/Test/baseResults/hlsl.load.basic.dx10.frag.out index 3a4b3fca..c8e8eb63 100644 --- a/Test/baseResults/hlsl.load.basic.dx10.frag.out +++ b/Test/baseResults/hlsl.load.basic.dx10.frag.out @@ -209,6 +209,8 @@ gl_FragCoord origin is upper left 0:75 1 (const int) 0:75 Branch: Return 0:? Linker Objects +0:? 'Color' (layout(location=0 ) out 4-component vector of float) +0:? 'Depth' (out float FragDepth) 0:? 'g_sSamp' (layout(binding=0 ) uniform sampler) 0:? 'g_tTex1df4' (layout(binding=0 ) uniform texture1D) 0:? 'g_tTex1di4' (uniform itexture1D) @@ -231,9 +233,7 @@ gl_FragCoord origin is upper left 0:? 'g_tTexcdf4a' (uniform textureCubeArray) 0:? 'g_tTexcdi4a' (uniform itextureCubeArray) 0:? 'g_tTexcdu4a' (uniform utextureCubeArray) -0:? 'Color' (layout(location=0 ) out 4-component vector of float) -0:? 'Depth' (out float FragDepth) -0:? 'anon@0' (uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:? 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) Linked fragment stage: @@ -449,6 +449,8 @@ gl_FragCoord origin is upper left 0:75 1 (const int) 0:75 Branch: Return 0:? Linker Objects +0:? 'Color' (layout(location=0 ) out 4-component vector of float) +0:? 'Depth' (out float FragDepth) 0:? 'g_sSamp' (layout(binding=0 ) uniform sampler) 0:? 'g_tTex1df4' (layout(binding=0 ) uniform texture1D) 0:? 'g_tTex1di4' (uniform itexture1D) @@ -471,9 +473,7 @@ gl_FragCoord origin is upper left 0:? 'g_tTexcdf4a' (uniform textureCubeArray) 0:? 'g_tTexcdi4a' (uniform itextureCubeArray) 0:? 'g_tTexcdu4a' (uniform utextureCubeArray) -0:? 'Color' (layout(location=0 ) out 4-component vector of float) -0:? 'Depth' (out float FragDepth) -0:? 'anon@0' (uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:? 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) // Module Version 10000 // Generated by (magic number): 80001 diff --git a/Test/baseResults/hlsl.load.basic.dx10.vert.out b/Test/baseResults/hlsl.load.basic.dx10.vert.out index 9495c602..a86f0aea 100644 --- a/Test/baseResults/hlsl.load.basic.dx10.vert.out +++ b/Test/baseResults/hlsl.load.basic.dx10.vert.out @@ -195,6 +195,7 @@ Shader version: 450 0:69 0 (const int) 0:69 Branch: Return 0:? Linker Objects +0:? 'Pos' (out 4-component vector of float Position) 0:? 'g_sSamp' (layout(binding=0 ) uniform sampler) 0:? 'g_tTex1df4' (layout(binding=0 ) uniform texture1D) 0:? 'g_tTex1di4' (uniform itexture1D) @@ -217,8 +218,7 @@ Shader version: 450 0:? 'g_tTexcdf4a' (uniform textureCubeArray) 0:? 'g_tTexcdi4a' (uniform itextureCubeArray) 0:? 'g_tTexcdu4a' (uniform utextureCubeArray) -0:? 'Pos' (out 4-component vector of float Position) -0:? 'anon@0' (uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:? 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) Linked vertex stage: @@ -420,6 +420,7 @@ Shader version: 450 0:69 0 (const int) 0:69 Branch: Return 0:? Linker Objects +0:? 'Pos' (out 4-component vector of float Position) 0:? 'g_sSamp' (layout(binding=0 ) uniform sampler) 0:? 'g_tTex1df4' (layout(binding=0 ) uniform texture1D) 0:? 'g_tTex1di4' (uniform itexture1D) @@ -442,8 +443,7 @@ Shader version: 450 0:? 'g_tTexcdf4a' (uniform textureCubeArray) 0:? 'g_tTexcdi4a' (uniform itextureCubeArray) 0:? 'g_tTexcdu4a' (uniform utextureCubeArray) -0:? 'Pos' (out 4-component vector of float Position) -0:? 'anon@0' (uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:? 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) // Module Version 10000 // Generated by (magic number): 80001 diff --git a/Test/baseResults/hlsl.load.buffer.dx10.frag.out b/Test/baseResults/hlsl.load.buffer.dx10.frag.out index 560d8f5d..c80ddcfe 100644 --- a/Test/baseResults/hlsl.load.buffer.dx10.frag.out +++ b/Test/baseResults/hlsl.load.buffer.dx10.frag.out @@ -65,13 +65,13 @@ gl_FragCoord origin is upper left 0:37 1 (const int) 0:37 Branch: Return 0:? Linker Objects +0:? 'Color' (layout(location=0 ) out 4-component vector of float) +0:? 'Depth' (out float FragDepth) 0:? 'g_tTexbf4_test' (layout(binding=0 rgba32f ) uniform samplerBuffer) 0:? 'g_tTexbf4' (layout(rgba32f ) uniform samplerBuffer) 0:? 'g_tTexbi4' (layout(rgba32i ) uniform isamplerBuffer) 0:? 'g_tTexbu4' (layout(rgba32ui ) uniform usamplerBuffer) -0:? 'Color' (layout(location=0 ) out 4-component vector of float) -0:? 'Depth' (out float FragDepth) -0:? 'anon@0' (uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:? 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) Linked fragment stage: @@ -143,13 +143,13 @@ gl_FragCoord origin is upper left 0:37 1 (const int) 0:37 Branch: Return 0:? Linker Objects +0:? 'Color' (layout(location=0 ) out 4-component vector of float) +0:? 'Depth' (out float FragDepth) 0:? 'g_tTexbf4_test' (layout(binding=0 rgba32f ) uniform samplerBuffer) 0:? 'g_tTexbf4' (layout(rgba32f ) uniform samplerBuffer) 0:? 'g_tTexbi4' (layout(rgba32i ) uniform isamplerBuffer) 0:? 'g_tTexbu4' (layout(rgba32ui ) uniform usamplerBuffer) -0:? 'Color' (layout(location=0 ) out 4-component vector of float) -0:? 'Depth' (out float FragDepth) -0:? 'anon@0' (uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:? 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) // Module Version 10000 // Generated by (magic number): 80001 diff --git a/Test/baseResults/hlsl.load.buffer.float.dx10.frag.out b/Test/baseResults/hlsl.load.buffer.float.dx10.frag.out index 6d64b94c..c0cd1528 100644 --- a/Test/baseResults/hlsl.load.buffer.float.dx10.frag.out +++ b/Test/baseResults/hlsl.load.buffer.float.dx10.frag.out @@ -68,13 +68,13 @@ gl_FragCoord origin is upper left 0:37 1 (const int) 0:37 Branch: Return 0:? Linker Objects +0:? 'Color' (layout(location=0 ) out 4-component vector of float) +0:? 'Depth' (out float FragDepth) 0:? 'g_tTexbfs_test' (layout(binding=0 r32f ) uniform samplerBuffer) 0:? 'g_tTexbfs' (layout(r32f ) uniform samplerBuffer) 0:? 'g_tTexbis' (layout(r32i ) uniform isamplerBuffer) 0:? 'g_tTexbus' (layout(r32ui ) uniform usamplerBuffer) -0:? 'Color' (layout(location=0 ) out 4-component vector of float) -0:? 'Depth' (out float FragDepth) -0:? 'anon@0' (uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:? 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) Linked fragment stage: @@ -149,13 +149,13 @@ gl_FragCoord origin is upper left 0:37 1 (const int) 0:37 Branch: Return 0:? Linker Objects +0:? 'Color' (layout(location=0 ) out 4-component vector of float) +0:? 'Depth' (out float FragDepth) 0:? 'g_tTexbfs_test' (layout(binding=0 r32f ) uniform samplerBuffer) 0:? 'g_tTexbfs' (layout(r32f ) uniform samplerBuffer) 0:? 'g_tTexbis' (layout(r32i ) uniform isamplerBuffer) 0:? 'g_tTexbus' (layout(r32ui ) uniform usamplerBuffer) -0:? 'Color' (layout(location=0 ) out 4-component vector of float) -0:? 'Depth' (out float FragDepth) -0:? 'anon@0' (uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:? 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) // Module Version 10000 // Generated by (magic number): 80001 diff --git a/Test/baseResults/hlsl.load.offset.dx10.frag.out b/Test/baseResults/hlsl.load.offset.dx10.frag.out index 069e05d0..9a14b658 100644 --- a/Test/baseResults/hlsl.load.offset.dx10.frag.out +++ b/Test/baseResults/hlsl.load.offset.dx10.frag.out @@ -245,6 +245,8 @@ gl_FragCoord origin is upper left 0:75 1 (const int) 0:75 Branch: Return 0:? Linker Objects +0:? 'Color' (layout(location=0 ) out 4-component vector of float) +0:? 'Depth' (out float FragDepth) 0:? 'g_sSamp' (layout(binding=0 ) uniform sampler) 0:? 'g_tTex1df4' (layout(binding=0 ) uniform texture1D) 0:? 'g_tTex1di4' (uniform itexture1D) @@ -267,9 +269,7 @@ gl_FragCoord origin is upper left 0:? 'g_tTexcdf4a' (uniform textureCubeArray) 0:? 'g_tTexcdi4a' (uniform itextureCubeArray) 0:? 'g_tTexcdu4a' (uniform utextureCubeArray) -0:? 'Color' (layout(location=0 ) out 4-component vector of float) -0:? 'Depth' (out float FragDepth) -0:? 'anon@0' (uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:? 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) Linked fragment stage: @@ -521,6 +521,8 @@ gl_FragCoord origin is upper left 0:75 1 (const int) 0:75 Branch: Return 0:? Linker Objects +0:? 'Color' (layout(location=0 ) out 4-component vector of float) +0:? 'Depth' (out float FragDepth) 0:? 'g_sSamp' (layout(binding=0 ) uniform sampler) 0:? 'g_tTex1df4' (layout(binding=0 ) uniform texture1D) 0:? 'g_tTex1di4' (uniform itexture1D) @@ -543,9 +545,7 @@ gl_FragCoord origin is upper left 0:? 'g_tTexcdf4a' (uniform textureCubeArray) 0:? 'g_tTexcdi4a' (uniform itextureCubeArray) 0:? 'g_tTexcdu4a' (uniform utextureCubeArray) -0:? 'Color' (layout(location=0 ) out 4-component vector of float) -0:? 'Depth' (out float FragDepth) -0:? 'anon@0' (uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:? 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) // Module Version 10000 // Generated by (magic number): 80001 diff --git a/Test/baseResults/hlsl.load.offsetarray.dx10.frag.out b/Test/baseResults/hlsl.load.offsetarray.dx10.frag.out index ed89ee8d..fb58eff3 100644 --- a/Test/baseResults/hlsl.load.offsetarray.dx10.frag.out +++ b/Test/baseResults/hlsl.load.offsetarray.dx10.frag.out @@ -182,6 +182,8 @@ gl_FragCoord origin is upper left 0:68 1 (const int) 0:68 Branch: Return 0:? Linker Objects +0:? 'Color' (layout(location=0 ) out 4-component vector of float) +0:? 'Depth' (out float FragDepth) 0:? 'g_sSamp' (layout(binding=0 ) uniform sampler) 0:? 'g_tTex1df4' (layout(binding=0 ) uniform texture1D) 0:? 'g_tTex1di4' (uniform itexture1D) @@ -204,9 +206,7 @@ gl_FragCoord origin is upper left 0:? 'g_tTexcdf4a' (uniform textureCubeArray) 0:? 'g_tTexcdi4a' (uniform itextureCubeArray) 0:? 'g_tTexcdu4a' (uniform utextureCubeArray) -0:? 'Color' (layout(location=0 ) out 4-component vector of float) -0:? 'Depth' (out float FragDepth) -0:? 'anon@0' (uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:? 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) Linked fragment stage: @@ -395,6 +395,8 @@ gl_FragCoord origin is upper left 0:68 1 (const int) 0:68 Branch: Return 0:? Linker Objects +0:? 'Color' (layout(location=0 ) out 4-component vector of float) +0:? 'Depth' (out float FragDepth) 0:? 'g_sSamp' (layout(binding=0 ) uniform sampler) 0:? 'g_tTex1df4' (layout(binding=0 ) uniform texture1D) 0:? 'g_tTex1di4' (uniform itexture1D) @@ -417,9 +419,7 @@ gl_FragCoord origin is upper left 0:? 'g_tTexcdf4a' (uniform textureCubeArray) 0:? 'g_tTexcdi4a' (uniform itextureCubeArray) 0:? 'g_tTexcdu4a' (uniform utextureCubeArray) -0:? 'Color' (layout(location=0 ) out 4-component vector of float) -0:? 'Depth' (out float FragDepth) -0:? 'anon@0' (uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:? 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) // Module Version 10000 // Generated by (magic number): 80001 diff --git a/Test/baseResults/hlsl.load.rwbuffer.dx10.frag.out b/Test/baseResults/hlsl.load.rwbuffer.dx10.frag.out index 7b263727..e9cc3940 100644 --- a/Test/baseResults/hlsl.load.rwbuffer.dx10.frag.out +++ b/Test/baseResults/hlsl.load.rwbuffer.dx10.frag.out @@ -43,11 +43,11 @@ gl_FragCoord origin is upper left 0:31 0 (const int) 0:31 Branch: Return 0:? Linker Objects +0:? 'Color' (layout(location=0 ) out 4-component vector of float) 0:? 'g_tBuffF' (layout(rgba32f ) uniform imageBuffer) 0:? 'g_tBuffI' (layout(rgba32i ) uniform iimageBuffer) 0:? 'g_tBuffU' (layout(rgba32ui ) uniform uimageBuffer) -0:? 'Color' (layout(location=0 ) out 4-component vector of float) -0:? 'anon@0' (uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:? 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) Linked fragment stage: @@ -97,11 +97,11 @@ gl_FragCoord origin is upper left 0:31 0 (const int) 0:31 Branch: Return 0:? Linker Objects +0:? 'Color' (layout(location=0 ) out 4-component vector of float) 0:? 'g_tBuffF' (layout(rgba32f ) uniform imageBuffer) 0:? 'g_tBuffI' (layout(rgba32i ) uniform iimageBuffer) 0:? 'g_tBuffU' (layout(rgba32ui ) uniform uimageBuffer) -0:? 'Color' (layout(location=0 ) out 4-component vector of float) -0:? 'anon@0' (uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:? 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) // Module Version 10000 // Generated by (magic number): 80001 diff --git a/Test/baseResults/hlsl.load.rwtexture.array.dx10.frag.out b/Test/baseResults/hlsl.load.rwtexture.array.dx10.frag.out index 8ac94d08..a81ddf57 100644 --- a/Test/baseResults/hlsl.load.rwtexture.array.dx10.frag.out +++ b/Test/baseResults/hlsl.load.rwtexture.array.dx10.frag.out @@ -74,6 +74,8 @@ gl_FragCoord origin is upper left 0:56 1 (const int) 0:56 Branch: Return 0:? Linker Objects +0:? 'Color' (layout(location=0 ) out 4-component vector of float) +0:? 'Depth' (out float FragDepth) 0:? 'g_sSamp' (layout(binding=0 ) uniform sampler) 0:? 'g_tTex1df4' (layout(binding=0 rgba32f ) uniform image1D) 0:? 'g_tTex1di4' (layout(rgba32i ) uniform iimage1D) @@ -90,9 +92,7 @@ gl_FragCoord origin is upper left 0:? 'g_tTex2df4a' (layout(rgba32f ) uniform image2DArray) 0:? 'g_tTex2di4a' (layout(rgba32i ) uniform iimage2DArray) 0:? 'g_tTex2du4a' (layout(rgba32ui ) uniform uimage2DArray) -0:? 'Color' (layout(location=0 ) out 4-component vector of float) -0:? 'Depth' (out float FragDepth) -0:? 'anon@0' (uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:? 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) Linked fragment stage: @@ -173,6 +173,8 @@ gl_FragCoord origin is upper left 0:56 1 (const int) 0:56 Branch: Return 0:? Linker Objects +0:? 'Color' (layout(location=0 ) out 4-component vector of float) +0:? 'Depth' (out float FragDepth) 0:? 'g_sSamp' (layout(binding=0 ) uniform sampler) 0:? 'g_tTex1df4' (layout(binding=0 rgba32f ) uniform image1D) 0:? 'g_tTex1di4' (layout(rgba32i ) uniform iimage1D) @@ -189,9 +191,7 @@ gl_FragCoord origin is upper left 0:? 'g_tTex2df4a' (layout(rgba32f ) uniform image2DArray) 0:? 'g_tTex2di4a' (layout(rgba32i ) uniform iimage2DArray) 0:? 'g_tTex2du4a' (layout(rgba32ui ) uniform uimage2DArray) -0:? 'Color' (layout(location=0 ) out 4-component vector of float) -0:? 'Depth' (out float FragDepth) -0:? 'anon@0' (uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:? 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) // Module Version 10000 // Generated by (magic number): 80001 diff --git a/Test/baseResults/hlsl.load.rwtexture.dx10.frag.out b/Test/baseResults/hlsl.load.rwtexture.dx10.frag.out index ca590157..b5435bac 100644 --- a/Test/baseResults/hlsl.load.rwtexture.dx10.frag.out +++ b/Test/baseResults/hlsl.load.rwtexture.dx10.frag.out @@ -92,6 +92,8 @@ gl_FragCoord origin is upper left 0:61 1 (const int) 0:61 Branch: Return 0:? Linker Objects +0:? 'Color' (layout(location=0 ) out 4-component vector of float) +0:? 'Depth' (out float FragDepth) 0:? 'g_sSamp' (layout(binding=0 ) uniform sampler) 0:? 'g_tTex1df4' (layout(binding=0 rgba32f ) uniform image1D) 0:? 'g_tTex1di4' (layout(rgba32i ) uniform iimage1D) @@ -108,9 +110,7 @@ gl_FragCoord origin is upper left 0:? 'g_tTex2df4a' (layout(rgba32f ) uniform image2DArray) 0:? 'g_tTex2di4a' (layout(rgba32i ) uniform iimage2DArray) 0:? 'g_tTex2du4a' (layout(rgba32ui ) uniform uimage2DArray) -0:? 'Color' (layout(location=0 ) out 4-component vector of float) -0:? 'Depth' (out float FragDepth) -0:? 'anon@0' (uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:? 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) Linked fragment stage: @@ -209,6 +209,8 @@ gl_FragCoord origin is upper left 0:61 1 (const int) 0:61 Branch: Return 0:? Linker Objects +0:? 'Color' (layout(location=0 ) out 4-component vector of float) +0:? 'Depth' (out float FragDepth) 0:? 'g_sSamp' (layout(binding=0 ) uniform sampler) 0:? 'g_tTex1df4' (layout(binding=0 rgba32f ) uniform image1D) 0:? 'g_tTex1di4' (layout(rgba32i ) uniform iimage1D) @@ -225,9 +227,7 @@ gl_FragCoord origin is upper left 0:? 'g_tTex2df4a' (layout(rgba32f ) uniform image2DArray) 0:? 'g_tTex2di4a' (layout(rgba32i ) uniform iimage2DArray) 0:? 'g_tTex2du4a' (layout(rgba32ui ) uniform uimage2DArray) -0:? 'Color' (layout(location=0 ) out 4-component vector of float) -0:? 'Depth' (out float FragDepth) -0:? 'anon@0' (uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:? 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) // Module Version 10000 // Generated by (magic number): 80001 diff --git a/Test/baseResults/hlsl.logical.binary.frag.out b/Test/baseResults/hlsl.logical.binary.frag.out index 9e6593ee..d9ae7d5b 100644 --- a/Test/baseResults/hlsl.logical.binary.frag.out +++ b/Test/baseResults/hlsl.logical.binary.frag.out @@ -56,7 +56,7 @@ gl_FragCoord origin is upper left 0:18 Branch: Return 0:? Linker Objects 0:? 'Color' (layout(location=0 ) out 4-component vector of float) -0:? 'anon@0' (uniform block{layout(offset=0 ) uniform int ival, layout(offset=16 ) uniform 4-component vector of int ival4, layout(offset=32 ) uniform float fval, layout(offset=48 ) uniform 4-component vector of float fval4}) +0:? 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int ival, layout(offset=16 ) uniform 4-component vector of int ival4, layout(offset=32 ) uniform float fval, layout(offset=48 ) uniform 4-component vector of float fval4}) Linked fragment stage: @@ -119,7 +119,7 @@ gl_FragCoord origin is upper left 0:18 Branch: Return 0:? Linker Objects 0:? 'Color' (layout(location=0 ) out 4-component vector of float) -0:? 'anon@0' (uniform block{layout(offset=0 ) uniform int ival, layout(offset=16 ) uniform 4-component vector of int ival4, layout(offset=32 ) uniform float fval, layout(offset=48 ) uniform 4-component vector of float fval4}) +0:? 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int ival, layout(offset=16 ) uniform 4-component vector of int ival4, layout(offset=32 ) uniform float fval, layout(offset=48 ) uniform 4-component vector of float fval4}) // Module Version 10000 // Generated by (magic number): 80001 diff --git a/Test/baseResults/hlsl.logical.binary.vec.frag.out b/Test/baseResults/hlsl.logical.binary.vec.frag.out index 2ada44a3..32b5a385 100644 --- a/Test/baseResults/hlsl.logical.binary.vec.frag.out +++ b/Test/baseResults/hlsl.logical.binary.vec.frag.out @@ -119,7 +119,7 @@ gl_FragCoord origin is upper left 0:23 Branch: Return 0:? Linker Objects 0:? 'Color' (layout(location=0 ) out 4-component vector of float) -0:? 'anon@0' (uniform block{layout(offset=0 ) uniform 4-component vector of bool b4a, layout(offset=16 ) uniform 4-component vector of bool b4b, layout(offset=32 ) uniform bool b1a, layout(offset=36 ) uniform bool b1b}) +0:? 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 4-component vector of bool b4a, layout(offset=16 ) uniform 4-component vector of bool b4b, layout(offset=32 ) uniform bool b1a, layout(offset=36 ) uniform bool b1b}) Linked fragment stage: @@ -245,7 +245,7 @@ gl_FragCoord origin is upper left 0:23 Branch: Return 0:? Linker Objects 0:? 'Color' (layout(location=0 ) out 4-component vector of float) -0:? 'anon@0' (uniform block{layout(offset=0 ) uniform 4-component vector of bool b4a, layout(offset=16 ) uniform 4-component vector of bool b4b, layout(offset=32 ) uniform bool b1a, layout(offset=36 ) uniform bool b1b}) +0:? 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 4-component vector of bool b4a, layout(offset=16 ) uniform 4-component vector of bool b4b, layout(offset=32 ) uniform bool b1a, layout(offset=36 ) uniform bool b1b}) // Module Version 10000 // Generated by (magic number): 80001 diff --git a/Test/baseResults/hlsl.logical.unary.frag.out b/Test/baseResults/hlsl.logical.unary.frag.out index e3def3c0..1aaa69a2 100644 --- a/Test/baseResults/hlsl.logical.unary.frag.out +++ b/Test/baseResults/hlsl.logical.unary.frag.out @@ -82,7 +82,7 @@ gl_FragCoord origin is upper left 0:26 Branch: Return 0:? Linker Objects 0:? 'Color' (layout(location=0 ) out 4-component vector of float) -0:? 'anon@0' (uniform block{layout(offset=0 ) uniform int ival, layout(offset=16 ) uniform 4-component vector of int ival4, layout(offset=32 ) uniform float fval, layout(offset=48 ) uniform 4-component vector of float fval4}) +0:? 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int ival, layout(offset=16 ) uniform 4-component vector of int ival4, layout(offset=32 ) uniform float fval, layout(offset=48 ) uniform 4-component vector of float fval4}) Linked fragment stage: @@ -171,7 +171,7 @@ gl_FragCoord origin is upper left 0:26 Branch: Return 0:? Linker Objects 0:? 'Color' (layout(location=0 ) out 4-component vector of float) -0:? 'anon@0' (uniform block{layout(offset=0 ) uniform int ival, layout(offset=16 ) uniform 4-component vector of int ival4, layout(offset=32 ) uniform float fval, layout(offset=48 ) uniform 4-component vector of float fval4}) +0:? 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int ival, layout(offset=16 ) uniform 4-component vector of int ival4, layout(offset=32 ) uniform float fval, layout(offset=48 ) uniform 4-component vector of float fval4}) // Module Version 10000 // Generated by (magic number): 80001 diff --git a/Test/baseResults/hlsl.matType.frag.out b/Test/baseResults/hlsl.matType.frag.out index 0066a1de..9b8e4567 100755 --- a/Test/baseResults/hlsl.matType.frag.out +++ b/Test/baseResults/hlsl.matType.frag.out @@ -10,7 +10,7 @@ gl_FragCoord origin is upper left 0:10 Branch: Return with expression 0:10 'inFloat1' (in 1-component vector of float) 0:? Linker Objects -0:? 'anon@0' (uniform block{layout(offset=0 ) uniform 1-component vector of float f1, layout(offset=16 ) uniform 1X1 matrix of float fmat11, layout(offset=32 ) uniform 4X1 matrix of float fmat41, layout(offset=48 ) uniform 1X2 matrix of float fmat12, layout(offset=80 ) uniform 2X3 matrix of double dmat23, layout(offset=128 ) uniform 4X4 matrix of int int44}) +0:? 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 1-component vector of float f1, layout(offset=16 ) uniform 1X1 matrix of float fmat11, layout(offset=32 ) uniform 4X1 matrix of float fmat41, layout(offset=48 ) uniform 1X2 matrix of float fmat12, layout(offset=80 ) uniform 2X3 matrix of double dmat23, layout(offset=128 ) uniform 4X4 matrix of int int44}) Linked fragment stage: @@ -27,7 +27,7 @@ gl_FragCoord origin is upper left 0:10 Branch: Return with expression 0:10 'inFloat1' (in 1-component vector of float) 0:? Linker Objects -0:? 'anon@0' (uniform block{layout(offset=0 ) uniform 1-component vector of float f1, layout(offset=16 ) uniform 1X1 matrix of float fmat11, layout(offset=32 ) uniform 4X1 matrix of float fmat41, layout(offset=48 ) uniform 1X2 matrix of float fmat12, layout(offset=80 ) uniform 2X3 matrix of double dmat23, layout(offset=128 ) uniform 4X4 matrix of int int44}) +0:? 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 1-component vector of float f1, layout(offset=16 ) uniform 1X1 matrix of float fmat11, layout(offset=32 ) uniform 4X1 matrix of float fmat41, layout(offset=48 ) uniform 1X2 matrix of float fmat12, layout(offset=80 ) uniform 2X3 matrix of double dmat23, layout(offset=128 ) uniform 4X4 matrix of int int44}) // Module Version 10000 // Generated by (magic number): 80001 @@ -51,6 +51,22 @@ gl_FragCoord origin is upper left MemberName 27($Global) 4 "dmat23" MemberName 27($Global) 5 "int44" Name 29 "" + MemberDecorate 27($Global) 0 Offset 0 + MemberDecorate 27($Global) 1 RowMajor + MemberDecorate 27($Global) 1 Offset 16 + MemberDecorate 27($Global) 1 MatrixStride 16 + MemberDecorate 27($Global) 2 RowMajor + MemberDecorate 27($Global) 2 Offset 32 + MemberDecorate 27($Global) 2 MatrixStride 16 + MemberDecorate 27($Global) 3 RowMajor + MemberDecorate 27($Global) 3 Offset 48 + MemberDecorate 27($Global) 3 MatrixStride 16 + MemberDecorate 27($Global) 4 RowMajor + MemberDecorate 27($Global) 4 Offset 80 + MemberDecorate 27($Global) 4 MatrixStride 16 + MemberDecorate 27($Global) 5 RowMajor + MemberDecorate 27($Global) 5 Offset 128 + MemberDecorate 27($Global) 5 MatrixStride 16 Decorate 27($Global) Block Decorate 29 DescriptorSet 0 2: TypeVoid diff --git a/Test/baseResults/hlsl.matrixindex.frag.out b/Test/baseResults/hlsl.matrixindex.frag.out index 8c637c14..420ba9f5 100644 --- a/Test/baseResults/hlsl.matrixindex.frag.out +++ b/Test/baseResults/hlsl.matrixindex.frag.out @@ -128,7 +128,7 @@ gl_FragCoord origin is upper left 0:48 Branch: Return 0:? Linker Objects 0:? 'Color' (layout(location=0 ) out 4-component vector of float) -0:? 'anon@0' (uniform block{layout(offset=0 ) uniform int idx, layout(offset=16 ) uniform 3X2 matrix of float um}) +0:? 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int idx, layout(offset=16 ) uniform 3X2 matrix of float um}) Linked fragment stage: @@ -263,7 +263,7 @@ gl_FragCoord origin is upper left 0:48 Branch: Return 0:? Linker Objects 0:? 'Color' (layout(location=0 ) out 4-component vector of float) -0:? 'anon@0' (uniform block{layout(offset=0 ) uniform int idx, layout(offset=16 ) uniform 3X2 matrix of float um}) +0:? 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int idx, layout(offset=16 ) uniform 3X2 matrix of float um}) // Module Version 10000 // Generated by (magic number): 80001 diff --git a/Test/baseResults/hlsl.mintypes.frag.out b/Test/baseResults/hlsl.mintypes.frag.out index 34d326e0..84c7a8c8 100644 --- a/Test/baseResults/hlsl.mintypes.frag.out +++ b/Test/baseResults/hlsl.mintypes.frag.out @@ -41,7 +41,7 @@ gl_FragCoord origin is upper left 0:48 Branch: Return 0:? Linker Objects 0:? 'Color' (layout(location=0 ) out 4-component vector of float) -0:? 'anon@0' (uniform block{layout(offset=0 ) uniform mediump float b1a, layout(offset=4 ) uniform mediump float b1b}) +0:? 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform mediump float b1a, layout(offset=4 ) uniform mediump float b1b}) Linked fragment stage: @@ -89,7 +89,7 @@ gl_FragCoord origin is upper left 0:48 Branch: Return 0:? Linker Objects 0:? 'Color' (layout(location=0 ) out 4-component vector of float) -0:? 'anon@0' (uniform block{layout(offset=0 ) uniform mediump float b1a, layout(offset=4 ) uniform mediump float b1b}) +0:? 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform mediump float b1a, layout(offset=4 ) uniform mediump float b1b}) // Module Version 10000 // Generated by (magic number): 80001 @@ -151,7 +151,9 @@ gl_FragCoord origin is upper left Decorate 47 RelaxedPrecision Decorate 58(Color) Location 0 MemberDecorate 62($Global) 0 RelaxedPrecision + MemberDecorate 62($Global) 0 Offset 0 MemberDecorate 62($Global) 1 RelaxedPrecision + MemberDecorate 62($Global) 1 Offset 4 Decorate 62($Global) Block Decorate 64 DescriptorSet 0 2: TypeVoid diff --git a/Test/baseResults/hlsl.multiEntry.vert.out b/Test/baseResults/hlsl.multiEntry.vert.out index 8f8c42ae..f0d05abd 100755 --- a/Test/baseResults/hlsl.multiEntry.vert.out +++ b/Test/baseResults/hlsl.multiEntry.vert.out @@ -21,9 +21,9 @@ Shader version: 450 0:10 'Index' (in uint VertexIndex) 0:10 Branch: Return 0:? Linker Objects -0:? 'Position' (layout(rgba32f ) uniform samplerBuffer) 0:? '@entryPointOutput' (out 4-component vector of float Position) 0:? 'Index' (in uint VertexIndex) +0:? 'Position' (layout(rgba32f ) uniform samplerBuffer) Linked vertex stage: @@ -51,9 +51,9 @@ Shader version: 450 0:10 'Index' (in uint VertexIndex) 0:10 Branch: Return 0:? Linker Objects -0:? 'Position' (layout(rgba32f ) uniform samplerBuffer) 0:? '@entryPointOutput' (out 4-component vector of float Position) 0:? 'Index' (in uint VertexIndex) +0:? 'Position' (layout(rgba32f ) uniform samplerBuffer) // Module Version 10000 // Generated by (magic number): 80001 diff --git a/Test/baseResults/hlsl.precise.frag.out b/Test/baseResults/hlsl.precise.frag.out index e9205cfe..cd2af746 100644 --- a/Test/baseResults/hlsl.precise.frag.out +++ b/Test/baseResults/hlsl.precise.frag.out @@ -29,8 +29,8 @@ gl_FragCoord origin is upper left 0:12 0 (const int) 0:12 Branch: Return 0:? Linker Objects -0:? 'precisefloat' (noContraction global float) 0:? 'color' (layout(location=0 ) noContraction out 4-component vector of float) +0:? 'precisefloat' (noContraction global float) Linked fragment stage: @@ -66,8 +66,8 @@ gl_FragCoord origin is upper left 0:12 0 (const int) 0:12 Branch: Return 0:? Linker Objects -0:? 'precisefloat' (noContraction global float) 0:? 'color' (layout(location=0 ) noContraction out 4-component vector of float) +0:? 'precisefloat' (noContraction global float) // Module Version 10000 // Generated by (magic number): 80001 diff --git a/Test/baseResults/hlsl.promote.binary.frag.out b/Test/baseResults/hlsl.promote.binary.frag.out index a2e7176c..2c7425e1 100644 --- a/Test/baseResults/hlsl.promote.binary.frag.out +++ b/Test/baseResults/hlsl.promote.binary.frag.out @@ -78,7 +78,7 @@ gl_FragCoord origin is upper left 0:26 Branch: Return 0:? Linker Objects 0:? 'Color' (layout(location=0 ) out 4-component vector of float) -0:? 'anon@0' (uniform block{layout(offset=0 ) uniform bool bval, layout(offset=16 ) uniform 4-component vector of bool bval4, layout(offset=32 ) uniform int ival, layout(offset=48 ) uniform 4-component vector of int ival4, layout(offset=64 ) uniform float fval, layout(offset=80 ) uniform 4-component vector of float fval4}) +0:? 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform bool bval, layout(offset=16 ) uniform 4-component vector of bool bval4, layout(offset=32 ) uniform int ival, layout(offset=48 ) uniform 4-component vector of int ival4, layout(offset=64 ) uniform float fval, layout(offset=80 ) uniform 4-component vector of float fval4}) Linked fragment stage: @@ -163,7 +163,7 @@ gl_FragCoord origin is upper left 0:26 Branch: Return 0:? Linker Objects 0:? 'Color' (layout(location=0 ) out 4-component vector of float) -0:? 'anon@0' (uniform block{layout(offset=0 ) uniform bool bval, layout(offset=16 ) uniform 4-component vector of bool bval4, layout(offset=32 ) uniform int ival, layout(offset=48 ) uniform 4-component vector of int ival4, layout(offset=64 ) uniform float fval, layout(offset=80 ) uniform 4-component vector of float fval4}) +0:? 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform bool bval, layout(offset=16 ) uniform 4-component vector of bool bval4, layout(offset=32 ) uniform int ival, layout(offset=48 ) uniform 4-component vector of int ival4, layout(offset=64 ) uniform float fval, layout(offset=80 ) uniform 4-component vector of float fval4}) // Module Version 10000 // Generated by (magic number): 80001 diff --git a/Test/baseResults/hlsl.promotions.frag.out b/Test/baseResults/hlsl.promotions.frag.out index e3df54ff..01ced169 100644 --- a/Test/baseResults/hlsl.promotions.frag.out +++ b/Test/baseResults/hlsl.promotions.frag.out @@ -782,8 +782,8 @@ gl_FragCoord origin is upper left 0:200 0 (const int) 0:200 Branch: Return 0:? Linker Objects -0:? 'anon@0' (uniform block{layout(offset=0 ) uniform 3-component vector of int i3, layout(offset=16 ) uniform 3-component vector of bool b3, layout(offset=32 ) uniform 3-component vector of float f3, layout(offset=48 ) uniform 3-component vector of uint u3, layout(offset=64 ) uniform 3-component vector of double d3, layout(offset=88 ) uniform int is, layout(offset=92 ) uniform bool bs, layout(offset=96 ) uniform float fs, layout(offset=100 ) uniform uint us, layout(offset=104 ) uniform double ds}) 0:? 'Color' (layout(location=0 ) out 4-component vector of float) +0:? 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 3-component vector of int i3, layout(offset=16 ) uniform 3-component vector of bool b3, layout(offset=32 ) uniform 3-component vector of float f3, layout(offset=48 ) uniform 3-component vector of uint u3, layout(offset=64 ) uniform 3-component vector of double d3, layout(offset=88 ) uniform int is, layout(offset=92 ) uniform bool bs, layout(offset=96 ) uniform float fs, layout(offset=100 ) uniform uint us, layout(offset=104 ) uniform double ds}) Linked fragment stage: @@ -1572,8 +1572,8 @@ gl_FragCoord origin is upper left 0:200 0 (const int) 0:200 Branch: Return 0:? Linker Objects -0:? 'anon@0' (uniform block{layout(offset=0 ) uniform 3-component vector of int i3, layout(offset=16 ) uniform 3-component vector of bool b3, layout(offset=32 ) uniform 3-component vector of float f3, layout(offset=48 ) uniform 3-component vector of uint u3, layout(offset=64 ) uniform 3-component vector of double d3, layout(offset=88 ) uniform int is, layout(offset=92 ) uniform bool bs, layout(offset=96 ) uniform float fs, layout(offset=100 ) uniform uint us, layout(offset=104 ) uniform double ds}) 0:? 'Color' (layout(location=0 ) out 4-component vector of float) +0:? 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 3-component vector of int i3, layout(offset=16 ) uniform 3-component vector of bool b3, layout(offset=32 ) uniform 3-component vector of float f3, layout(offset=48 ) uniform 3-component vector of uint u3, layout(offset=64 ) uniform 3-component vector of double d3, layout(offset=88 ) uniform int is, layout(offset=92 ) uniform bool bs, layout(offset=96 ) uniform float fs, layout(offset=100 ) uniform uint us, layout(offset=104 ) uniform double ds}) // Module Version 10000 // Generated by (magic number): 80001 diff --git a/Test/baseResults/hlsl.rw.atomics.frag.out b/Test/baseResults/hlsl.rw.atomics.frag.out index 22716ef1..123bd4cb 100644 --- a/Test/baseResults/hlsl.rw.atomics.frag.out +++ b/Test/baseResults/hlsl.rw.atomics.frag.out @@ -1945,6 +1945,7 @@ gl_FragCoord origin is upper left 0:243 0 (const int) 0:243 Branch: Return 0:? Linker Objects +0:? 'Color' (layout(location=0 ) out 4-component vector of float) 0:? 'g_sSamp' (uniform sampler) 0:? 'g_tTex1df1' (layout(r32f ) uniform image1D) 0:? 'g_tTex1di1' (layout(r32i ) uniform iimage1D) @@ -1964,8 +1965,7 @@ gl_FragCoord origin is upper left 0:? 'g_tBuffF' (layout(r32f ) uniform imageBuffer) 0:? 'g_tBuffI' (layout(r32i ) uniform iimageBuffer) 0:? 'g_tBuffU' (layout(r32ui ) uniform uimageBuffer) -0:? 'Color' (layout(location=0 ) out 4-component vector of float) -0:? 'anon@0' (uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:? 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) Linked fragment stage: @@ -3917,6 +3917,7 @@ gl_FragCoord origin is upper left 0:243 0 (const int) 0:243 Branch: Return 0:? Linker Objects +0:? 'Color' (layout(location=0 ) out 4-component vector of float) 0:? 'g_sSamp' (uniform sampler) 0:? 'g_tTex1df1' (layout(r32f ) uniform image1D) 0:? 'g_tTex1di1' (layout(r32i ) uniform iimage1D) @@ -3936,8 +3937,7 @@ gl_FragCoord origin is upper left 0:? 'g_tBuffF' (layout(r32f ) uniform imageBuffer) 0:? 'g_tBuffI' (layout(r32i ) uniform iimageBuffer) 0:? 'g_tBuffU' (layout(r32ui ) uniform uimageBuffer) -0:? 'Color' (layout(location=0 ) out 4-component vector of float) -0:? 'anon@0' (uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:? 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) // Module Version 10000 // Generated by (magic number): 80001 diff --git a/Test/baseResults/hlsl.rw.bracket.frag.out b/Test/baseResults/hlsl.rw.bracket.frag.out index c6e3c89e..31ed4a98 100644 --- a/Test/baseResults/hlsl.rw.bracket.frag.out +++ b/Test/baseResults/hlsl.rw.bracket.frag.out @@ -847,6 +847,7 @@ gl_FragCoord origin is upper left 0:139 0 (const int) 0:139 Branch: Return 0:? Linker Objects +0:? 'Color' (layout(location=0 ) out 4-component vector of float) 0:? 'g_sSamp' (layout(binding=0 ) uniform sampler) 0:? 'g_tTex1df4' (layout(binding=0 rgba32f ) uniform image1D) 0:? 'g_tTex1di4' (layout(rgba32i ) uniform iimage1D) @@ -863,8 +864,7 @@ gl_FragCoord origin is upper left 0:? 'g_tTex2df4a' (layout(rgba32f ) uniform image2DArray) 0:? 'g_tTex2di4a' (layout(rgba32i ) uniform iimage2DArray) 0:? 'g_tTex2du4a' (layout(rgba32ui ) uniform uimage2DArray) -0:? 'anon@0' (uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform 4-component vector of float uf4, layout(offset=112 ) uniform 4-component vector of int ui4, layout(offset=128 ) uniform 4-component vector of uint uu4}) -0:? 'Color' (layout(location=0 ) out 4-component vector of float) +0:? 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform 4-component vector of float uf4, layout(offset=112 ) uniform 4-component vector of int ui4, layout(offset=128 ) uniform 4-component vector of uint uu4}) Linked fragment stage: @@ -1718,6 +1718,7 @@ gl_FragCoord origin is upper left 0:139 0 (const int) 0:139 Branch: Return 0:? Linker Objects +0:? 'Color' (layout(location=0 ) out 4-component vector of float) 0:? 'g_sSamp' (layout(binding=0 ) uniform sampler) 0:? 'g_tTex1df4' (layout(binding=0 rgba32f ) uniform image1D) 0:? 'g_tTex1di4' (layout(rgba32i ) uniform iimage1D) @@ -1734,8 +1735,7 @@ gl_FragCoord origin is upper left 0:? 'g_tTex2df4a' (layout(rgba32f ) uniform image2DArray) 0:? 'g_tTex2di4a' (layout(rgba32i ) uniform iimage2DArray) 0:? 'g_tTex2du4a' (layout(rgba32ui ) uniform uimage2DArray) -0:? 'anon@0' (uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform 4-component vector of float uf4, layout(offset=112 ) uniform 4-component vector of int ui4, layout(offset=128 ) uniform 4-component vector of uint uu4}) -0:? 'Color' (layout(location=0 ) out 4-component vector of float) +0:? 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform 4-component vector of float uf4, layout(offset=112 ) uniform 4-component vector of int ui4, layout(offset=128 ) uniform 4-component vector of uint uu4}) // Module Version 10000 // Generated by (magic number): 80001 diff --git a/Test/baseResults/hlsl.rw.scalar.bracket.frag.out b/Test/baseResults/hlsl.rw.scalar.bracket.frag.out index 904c2dab..8e40fd2e 100644 --- a/Test/baseResults/hlsl.rw.scalar.bracket.frag.out +++ b/Test/baseResults/hlsl.rw.scalar.bracket.frag.out @@ -820,6 +820,7 @@ gl_FragCoord origin is upper left 0:139 0 (const int) 0:139 Branch: Return 0:? Linker Objects +0:? 'Color' (layout(location=0 ) out 4-component vector of float) 0:? 'g_sSamp' (layout(binding=0 ) uniform sampler) 0:? 'g_tTex1df1' (layout(r32f ) uniform image1D) 0:? 'g_tTex1di1' (layout(r32i ) uniform iimage1D) @@ -836,8 +837,7 @@ gl_FragCoord origin is upper left 0:? 'g_tTex2df1a' (layout(r32f ) uniform image2DArray) 0:? 'g_tTex2di1a' (layout(r32i ) uniform iimage2DArray) 0:? 'g_tTex2du1a' (layout(r32ui ) uniform uimage2DArray) -0:? 'anon@0' (uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform float uf1, layout(offset=100 ) uniform int ui1, layout(offset=104 ) uniform uint uu1}) -0:? 'Color' (layout(location=0 ) out 4-component vector of float) +0:? 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform float uf1, layout(offset=100 ) uniform int ui1, layout(offset=104 ) uniform uint uu1}) Linked fragment stage: @@ -1664,6 +1664,7 @@ gl_FragCoord origin is upper left 0:139 0 (const int) 0:139 Branch: Return 0:? Linker Objects +0:? 'Color' (layout(location=0 ) out 4-component vector of float) 0:? 'g_sSamp' (layout(binding=0 ) uniform sampler) 0:? 'g_tTex1df1' (layout(r32f ) uniform image1D) 0:? 'g_tTex1di1' (layout(r32i ) uniform iimage1D) @@ -1680,8 +1681,7 @@ gl_FragCoord origin is upper left 0:? 'g_tTex2df1a' (layout(r32f ) uniform image2DArray) 0:? 'g_tTex2di1a' (layout(r32i ) uniform iimage2DArray) 0:? 'g_tTex2du1a' (layout(r32ui ) uniform uimage2DArray) -0:? 'anon@0' (uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform float uf1, layout(offset=100 ) uniform int ui1, layout(offset=104 ) uniform uint uu1}) -0:? 'Color' (layout(location=0 ) out 4-component vector of float) +0:? 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform float uf1, layout(offset=100 ) uniform int ui1, layout(offset=104 ) uniform uint uu1}) // Module Version 10000 // Generated by (magic number): 80001 diff --git a/Test/baseResults/hlsl.rw.vec2.bracket.frag.out b/Test/baseResults/hlsl.rw.vec2.bracket.frag.out index b8452c36..7ca7e3e4 100644 --- a/Test/baseResults/hlsl.rw.vec2.bracket.frag.out +++ b/Test/baseResults/hlsl.rw.vec2.bracket.frag.out @@ -829,6 +829,7 @@ gl_FragCoord origin is upper left 0:139 0 (const int) 0:139 Branch: Return 0:? Linker Objects +0:? 'Color' (layout(location=0 ) out 4-component vector of float) 0:? 'g_sSamp' (layout(binding=0 ) uniform sampler) 0:? 'g_tTex1df2' (layout(rg32f ) uniform image1D) 0:? 'g_tTex1di2' (layout(rg32i ) uniform iimage1D) @@ -845,8 +846,7 @@ gl_FragCoord origin is upper left 0:? 'g_tTex2df2a' (layout(rg32f ) uniform image2DArray) 0:? 'g_tTex2di2a' (layout(rg32i ) uniform iimage2DArray) 0:? 'g_tTex2du2a' (layout(rg32ui ) uniform uimage2DArray) -0:? 'anon@0' (uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform 2-component vector of float uf2, layout(offset=104 ) uniform 2-component vector of int ui2, layout(offset=112 ) uniform 2-component vector of uint uu2}) -0:? 'Color' (layout(location=0 ) out 4-component vector of float) +0:? 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform 2-component vector of float uf2, layout(offset=104 ) uniform 2-component vector of int ui2, layout(offset=112 ) uniform 2-component vector of uint uu2}) Linked fragment stage: @@ -1682,6 +1682,7 @@ gl_FragCoord origin is upper left 0:139 0 (const int) 0:139 Branch: Return 0:? Linker Objects +0:? 'Color' (layout(location=0 ) out 4-component vector of float) 0:? 'g_sSamp' (layout(binding=0 ) uniform sampler) 0:? 'g_tTex1df2' (layout(rg32f ) uniform image1D) 0:? 'g_tTex1di2' (layout(rg32i ) uniform iimage1D) @@ -1698,8 +1699,7 @@ gl_FragCoord origin is upper left 0:? 'g_tTex2df2a' (layout(rg32f ) uniform image2DArray) 0:? 'g_tTex2di2a' (layout(rg32i ) uniform iimage2DArray) 0:? 'g_tTex2du2a' (layout(rg32ui ) uniform uimage2DArray) -0:? 'anon@0' (uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform 2-component vector of float uf2, layout(offset=104 ) uniform 2-component vector of int ui2, layout(offset=112 ) uniform 2-component vector of uint uu2}) -0:? 'Color' (layout(location=0 ) out 4-component vector of float) +0:? 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform 2-component vector of float uf2, layout(offset=104 ) uniform 2-component vector of int ui2, layout(offset=112 ) uniform 2-component vector of uint uu2}) // Module Version 10000 // Generated by (magic number): 80001 diff --git a/Test/baseResults/hlsl.sample.array.dx10.frag.out b/Test/baseResults/hlsl.sample.array.dx10.frag.out index 6c6f187b..f223e4bf 100644 --- a/Test/baseResults/hlsl.sample.array.dx10.frag.out +++ b/Test/baseResults/hlsl.sample.array.dx10.frag.out @@ -137,6 +137,8 @@ gl_FragCoord origin is upper left 0:42 1 (const int) 0:42 Branch: Return 0:? Linker Objects +0:? 'Color' (layout(location=0 ) out 4-component vector of float) +0:? 'Depth' (out float FragDepth) 0:? 'g_sSamp' (layout(binding=0 ) uniform sampler) 0:? 'g_tTex1df4a' (layout(binding=1 ) uniform texture1DArray) 0:? 'g_tTex1df4' (layout(binding=0 ) uniform texture1DArray) @@ -148,8 +150,6 @@ gl_FragCoord origin is upper left 0:? 'g_tTexcdf4' (uniform textureCubeArray) 0:? 'g_tTexcdi4' (uniform itextureCubeArray) 0:? 'g_tTexcdu4' (uniform utextureCubeArray) -0:? 'Color' (layout(location=0 ) out 4-component vector of float) -0:? 'Depth' (out float FragDepth) Linked fragment stage: @@ -293,6 +293,8 @@ gl_FragCoord origin is upper left 0:42 1 (const int) 0:42 Branch: Return 0:? Linker Objects +0:? 'Color' (layout(location=0 ) out 4-component vector of float) +0:? 'Depth' (out float FragDepth) 0:? 'g_sSamp' (layout(binding=0 ) uniform sampler) 0:? 'g_tTex1df4a' (layout(binding=1 ) uniform texture1DArray) 0:? 'g_tTex1df4' (layout(binding=0 ) uniform texture1DArray) @@ -304,8 +306,6 @@ gl_FragCoord origin is upper left 0:? 'g_tTexcdf4' (uniform textureCubeArray) 0:? 'g_tTexcdi4' (uniform itextureCubeArray) 0:? 'g_tTexcdu4' (uniform utextureCubeArray) -0:? 'Color' (layout(location=0 ) out 4-component vector of float) -0:? 'Depth' (out float FragDepth) // Module Version 10000 // Generated by (magic number): 80001 diff --git a/Test/baseResults/hlsl.sample.basic.dx10.frag.out b/Test/baseResults/hlsl.sample.basic.dx10.frag.out index de9a4f4b..a222125a 100644 --- a/Test/baseResults/hlsl.sample.basic.dx10.frag.out +++ b/Test/baseResults/hlsl.sample.basic.dx10.frag.out @@ -247,6 +247,8 @@ gl_FragCoord origin is upper left 0:89 1 (const int) 0:89 Branch: Return 0:? Linker Objects +0:? 'Color' (layout(location=0 ) out 4-component vector of float) +0:? 'Depth' (out float FragDepth) 0:? 'g_sSamp' (layout(binding=0 ) uniform sampler) 0:? 'g_sSamp2d' (uniform sampler) 0:? 'g_sSamp2D_b' (uniform sampler) @@ -263,8 +265,6 @@ gl_FragCoord origin is upper left 0:? 'g_tTexcdf4' (uniform textureCube) 0:? 'g_tTexcdi4' (uniform itextureCube) 0:? 'g_tTexcdu4' (uniform utextureCube) -0:? 'Color' (layout(location=0 ) out 4-component vector of float) -0:? 'Depth' (out float FragDepth) Linked fragment stage: @@ -516,6 +516,8 @@ gl_FragCoord origin is upper left 0:89 1 (const int) 0:89 Branch: Return 0:? Linker Objects +0:? 'Color' (layout(location=0 ) out 4-component vector of float) +0:? 'Depth' (out float FragDepth) 0:? 'g_sSamp' (layout(binding=0 ) uniform sampler) 0:? 'g_sSamp2d' (uniform sampler) 0:? 'g_sSamp2D_b' (uniform sampler) @@ -532,8 +534,6 @@ gl_FragCoord origin is upper left 0:? 'g_tTexcdf4' (uniform textureCube) 0:? 'g_tTexcdi4' (uniform itextureCube) 0:? 'g_tTexcdu4' (uniform utextureCube) -0:? 'Color' (layout(location=0 ) out 4-component vector of float) -0:? 'Depth' (out float FragDepth) // Module Version 10000 // Generated by (magic number): 80001 diff --git a/Test/baseResults/hlsl.sample.offset.dx10.frag.out b/Test/baseResults/hlsl.sample.offset.dx10.frag.out index 67bf043f..a148a86e 100644 --- a/Test/baseResults/hlsl.sample.offset.dx10.frag.out +++ b/Test/baseResults/hlsl.sample.offset.dx10.frag.out @@ -155,6 +155,8 @@ gl_FragCoord origin is upper left 0:48 1 (const int) 0:48 Branch: Return 0:? Linker Objects +0:? 'Color' (layout(location=0 ) out 4-component vector of float) +0:? 'Depth' (out float FragDepth) 0:? 'g_sSamp' (layout(binding=0 ) uniform sampler) 0:? 'g_tTex1df4a' (layout(binding=1 ) uniform texture1D) 0:? 'g_tTex1df4' (layout(binding=0 ) uniform texture1D) @@ -169,8 +171,6 @@ gl_FragCoord origin is upper left 0:? 'g_tTexcdf4' (uniform textureCube) 0:? 'g_tTexcdi4' (uniform itextureCube) 0:? 'g_tTexcdu4' (uniform utextureCube) -0:? 'Color' (layout(location=0 ) out 4-component vector of float) -0:? 'Depth' (out float FragDepth) Linked fragment stage: @@ -332,6 +332,8 @@ gl_FragCoord origin is upper left 0:48 1 (const int) 0:48 Branch: Return 0:? Linker Objects +0:? 'Color' (layout(location=0 ) out 4-component vector of float) +0:? 'Depth' (out float FragDepth) 0:? 'g_sSamp' (layout(binding=0 ) uniform sampler) 0:? 'g_tTex1df4a' (layout(binding=1 ) uniform texture1D) 0:? 'g_tTex1df4' (layout(binding=0 ) uniform texture1D) @@ -346,8 +348,6 @@ gl_FragCoord origin is upper left 0:? 'g_tTexcdf4' (uniform textureCube) 0:? 'g_tTexcdi4' (uniform itextureCube) 0:? 'g_tTexcdu4' (uniform utextureCube) -0:? 'Color' (layout(location=0 ) out 4-component vector of float) -0:? 'Depth' (out float FragDepth) // Module Version 10000 // Generated by (magic number): 80001 diff --git a/Test/baseResults/hlsl.sample.offsetarray.dx10.frag.out b/Test/baseResults/hlsl.sample.offsetarray.dx10.frag.out index 83a0e8b7..abdf0327 100644 --- a/Test/baseResults/hlsl.sample.offsetarray.dx10.frag.out +++ b/Test/baseResults/hlsl.sample.offsetarray.dx10.frag.out @@ -116,6 +116,8 @@ gl_FragCoord origin is upper left 0:36 1 (const int) 0:36 Branch: Return 0:? Linker Objects +0:? 'Color' (layout(location=0 ) out 4-component vector of float) +0:? 'Depth' (out float FragDepth) 0:? 'g_sSamp' (layout(binding=0 ) uniform sampler) 0:? 'g_tTex1df4a' (layout(binding=1 ) uniform texture1DArray) 0:? 'g_tTex1df4' (layout(binding=0 ) uniform texture1DArray) @@ -124,8 +126,6 @@ gl_FragCoord origin is upper left 0:? 'g_tTex2df4' (uniform texture2DArray) 0:? 'g_tTex2di4' (uniform itexture2DArray) 0:? 'g_tTex2du4' (uniform utexture2DArray) -0:? 'Color' (layout(location=0 ) out 4-component vector of float) -0:? 'Depth' (out float FragDepth) Linked fragment stage: @@ -248,6 +248,8 @@ gl_FragCoord origin is upper left 0:36 1 (const int) 0:36 Branch: Return 0:? Linker Objects +0:? 'Color' (layout(location=0 ) out 4-component vector of float) +0:? 'Depth' (out float FragDepth) 0:? 'g_sSamp' (layout(binding=0 ) uniform sampler) 0:? 'g_tTex1df4a' (layout(binding=1 ) uniform texture1DArray) 0:? 'g_tTex1df4' (layout(binding=0 ) uniform texture1DArray) @@ -256,8 +258,6 @@ gl_FragCoord origin is upper left 0:? 'g_tTex2df4' (uniform texture2DArray) 0:? 'g_tTex2di4' (uniform itexture2DArray) 0:? 'g_tTex2du4' (uniform utexture2DArray) -0:? 'Color' (layout(location=0 ) out 4-component vector of float) -0:? 'Depth' (out float FragDepth) // Module Version 10000 // Generated by (magic number): 80001 diff --git a/Test/baseResults/hlsl.sample.sub-vec4.dx10.frag.out b/Test/baseResults/hlsl.sample.sub-vec4.dx10.frag.out index 5a97ed96..bfbad5c2 100644 --- a/Test/baseResults/hlsl.sample.sub-vec4.dx10.frag.out +++ b/Test/baseResults/hlsl.sample.sub-vec4.dx10.frag.out @@ -64,12 +64,12 @@ gl_FragCoord origin is upper left 0:23 0 (const int) 0:23 Branch: Return 0:? Linker Objects +0:? 'Color' (layout(location=0 ) out 4-component vector of float) 0:? 'g_sSamp' (layout(binding=0 ) uniform sampler) 0:? 'g_tTex1df1' (uniform texture1D) 0:? 'g_tTex1df2' (uniform texture1D) 0:? 'g_tTex1df3' (uniform texture1D) 0:? 'g_tTex1df4' (uniform texture1D) -0:? 'Color' (layout(location=0 ) out 4-component vector of float) Linked fragment stage: @@ -140,12 +140,12 @@ gl_FragCoord origin is upper left 0:23 0 (const int) 0:23 Branch: Return 0:? Linker Objects +0:? 'Color' (layout(location=0 ) out 4-component vector of float) 0:? 'g_sSamp' (layout(binding=0 ) uniform sampler) 0:? 'g_tTex1df1' (uniform texture1D) 0:? 'g_tTex1df2' (uniform texture1D) 0:? 'g_tTex1df3' (uniform texture1D) 0:? 'g_tTex1df4' (uniform texture1D) -0:? 'Color' (layout(location=0 ) out 4-component vector of float) // Module Version 10000 // Generated by (magic number): 80001 diff --git a/Test/baseResults/hlsl.samplebias.array.dx10.frag.out b/Test/baseResults/hlsl.samplebias.array.dx10.frag.out index b2b38b65..05ac32a5 100644 --- a/Test/baseResults/hlsl.samplebias.array.dx10.frag.out +++ b/Test/baseResults/hlsl.samplebias.array.dx10.frag.out @@ -155,6 +155,8 @@ gl_FragCoord origin is upper left 0:42 1 (const int) 0:42 Branch: Return 0:? Linker Objects +0:? 'Color' (layout(location=0 ) out 4-component vector of float) +0:? 'Depth' (out float FragDepth) 0:? 'g_sSamp' (layout(binding=0 ) uniform sampler) 0:? 'g_tTex1df4a' (layout(binding=1 ) uniform texture1DArray) 0:? 'g_tTex1df4' (layout(binding=0 ) uniform texture1DArray) @@ -166,8 +168,6 @@ gl_FragCoord origin is upper left 0:? 'g_tTexcdf4' (uniform textureCubeArray) 0:? 'g_tTexcdi4' (uniform itextureCubeArray) 0:? 'g_tTexcdu4' (uniform utextureCubeArray) -0:? 'Color' (layout(location=0 ) out 4-component vector of float) -0:? 'Depth' (out float FragDepth) Linked fragment stage: @@ -329,6 +329,8 @@ gl_FragCoord origin is upper left 0:42 1 (const int) 0:42 Branch: Return 0:? Linker Objects +0:? 'Color' (layout(location=0 ) out 4-component vector of float) +0:? 'Depth' (out float FragDepth) 0:? 'g_sSamp' (layout(binding=0 ) uniform sampler) 0:? 'g_tTex1df4a' (layout(binding=1 ) uniform texture1DArray) 0:? 'g_tTex1df4' (layout(binding=0 ) uniform texture1DArray) @@ -340,8 +342,6 @@ gl_FragCoord origin is upper left 0:? 'g_tTexcdf4' (uniform textureCubeArray) 0:? 'g_tTexcdi4' (uniform itextureCubeArray) 0:? 'g_tTexcdu4' (uniform utextureCubeArray) -0:? 'Color' (layout(location=0 ) out 4-component vector of float) -0:? 'Depth' (out float FragDepth) // Module Version 10000 // Generated by (magic number): 80001 diff --git a/Test/baseResults/hlsl.samplebias.basic.dx10.frag.out b/Test/baseResults/hlsl.samplebias.basic.dx10.frag.out index c7949146..1442fc3c 100644 --- a/Test/baseResults/hlsl.samplebias.basic.dx10.frag.out +++ b/Test/baseResults/hlsl.samplebias.basic.dx10.frag.out @@ -185,6 +185,8 @@ gl_FragCoord origin is upper left 0:50 1 (const int) 0:50 Branch: Return 0:? Linker Objects +0:? 'Color' (layout(location=0 ) out 4-component vector of float) +0:? 'Depth' (out float FragDepth) 0:? 'g_sSamp' (layout(binding=0 ) uniform sampler) 0:? 'g_tTex1df4a' (layout(binding=1 ) uniform texture1D) 0:? 'g_tTex1df4' (layout(binding=0 ) uniform texture1D) @@ -199,8 +201,6 @@ gl_FragCoord origin is upper left 0:? 'g_tTexcdf4' (uniform textureCube) 0:? 'g_tTexcdi4' (uniform itextureCube) 0:? 'g_tTexcdu4' (uniform utextureCube) -0:? 'Color' (layout(location=0 ) out 4-component vector of float) -0:? 'Depth' (out float FragDepth) Linked fragment stage: @@ -392,6 +392,8 @@ gl_FragCoord origin is upper left 0:50 1 (const int) 0:50 Branch: Return 0:? Linker Objects +0:? 'Color' (layout(location=0 ) out 4-component vector of float) +0:? 'Depth' (out float FragDepth) 0:? 'g_sSamp' (layout(binding=0 ) uniform sampler) 0:? 'g_tTex1df4a' (layout(binding=1 ) uniform texture1D) 0:? 'g_tTex1df4' (layout(binding=0 ) uniform texture1D) @@ -406,8 +408,6 @@ gl_FragCoord origin is upper left 0:? 'g_tTexcdf4' (uniform textureCube) 0:? 'g_tTexcdi4' (uniform itextureCube) 0:? 'g_tTexcdu4' (uniform utextureCube) -0:? 'Color' (layout(location=0 ) out 4-component vector of float) -0:? 'Depth' (out float FragDepth) // Module Version 10000 // Generated by (magic number): 80001 diff --git a/Test/baseResults/hlsl.samplebias.offset.dx10.frag.out b/Test/baseResults/hlsl.samplebias.offset.dx10.frag.out index 900eb4b0..01facb65 100644 --- a/Test/baseResults/hlsl.samplebias.offset.dx10.frag.out +++ b/Test/baseResults/hlsl.samplebias.offset.dx10.frag.out @@ -173,6 +173,8 @@ gl_FragCoord origin is upper left 0:48 1 (const int) 0:48 Branch: Return 0:? Linker Objects +0:? 'Color' (layout(location=0 ) out 4-component vector of float) +0:? 'Depth' (out float FragDepth) 0:? 'g_sSamp' (layout(binding=0 ) uniform sampler) 0:? 'g_tTex1df4a' (layout(binding=1 ) uniform texture1D) 0:? 'g_tTex1df4' (layout(binding=0 ) uniform texture1D) @@ -187,8 +189,6 @@ gl_FragCoord origin is upper left 0:? 'g_tTexcdf4' (uniform textureCube) 0:? 'g_tTexcdi4' (uniform itextureCube) 0:? 'g_tTexcdu4' (uniform utextureCube) -0:? 'Color' (layout(location=0 ) out 4-component vector of float) -0:? 'Depth' (out float FragDepth) Linked fragment stage: @@ -368,6 +368,8 @@ gl_FragCoord origin is upper left 0:48 1 (const int) 0:48 Branch: Return 0:? Linker Objects +0:? 'Color' (layout(location=0 ) out 4-component vector of float) +0:? 'Depth' (out float FragDepth) 0:? 'g_sSamp' (layout(binding=0 ) uniform sampler) 0:? 'g_tTex1df4a' (layout(binding=1 ) uniform texture1D) 0:? 'g_tTex1df4' (layout(binding=0 ) uniform texture1D) @@ -382,8 +384,6 @@ gl_FragCoord origin is upper left 0:? 'g_tTexcdf4' (uniform textureCube) 0:? 'g_tTexcdi4' (uniform itextureCube) 0:? 'g_tTexcdu4' (uniform utextureCube) -0:? 'Color' (layout(location=0 ) out 4-component vector of float) -0:? 'Depth' (out float FragDepth) // Module Version 10000 // Generated by (magic number): 80001 diff --git a/Test/baseResults/hlsl.samplebias.offsetarray.dx10.frag.out b/Test/baseResults/hlsl.samplebias.offsetarray.dx10.frag.out index bd216222..17aef7ae 100644 --- a/Test/baseResults/hlsl.samplebias.offsetarray.dx10.frag.out +++ b/Test/baseResults/hlsl.samplebias.offsetarray.dx10.frag.out @@ -128,6 +128,8 @@ gl_FragCoord origin is upper left 0:36 1 (const int) 0:36 Branch: Return 0:? Linker Objects +0:? 'Color' (layout(location=0 ) out 4-component vector of float) +0:? 'Depth' (out float FragDepth) 0:? 'g_sSamp' (layout(binding=0 ) uniform sampler) 0:? 'g_tTex1df4a' (layout(binding=1 ) uniform texture1DArray) 0:? 'g_tTex1df4' (layout(binding=0 ) uniform texture1DArray) @@ -136,8 +138,6 @@ gl_FragCoord origin is upper left 0:? 'g_tTex2df4' (uniform texture2DArray) 0:? 'g_tTex2di4' (uniform itexture2DArray) 0:? 'g_tTex2du4' (uniform utexture2DArray) -0:? 'Color' (layout(location=0 ) out 4-component vector of float) -0:? 'Depth' (out float FragDepth) Linked fragment stage: @@ -272,6 +272,8 @@ gl_FragCoord origin is upper left 0:36 1 (const int) 0:36 Branch: Return 0:? Linker Objects +0:? 'Color' (layout(location=0 ) out 4-component vector of float) +0:? 'Depth' (out float FragDepth) 0:? 'g_sSamp' (layout(binding=0 ) uniform sampler) 0:? 'g_tTex1df4a' (layout(binding=1 ) uniform texture1DArray) 0:? 'g_tTex1df4' (layout(binding=0 ) uniform texture1DArray) @@ -280,8 +282,6 @@ gl_FragCoord origin is upper left 0:? 'g_tTex2df4' (uniform texture2DArray) 0:? 'g_tTex2di4' (uniform itexture2DArray) 0:? 'g_tTex2du4' (uniform utexture2DArray) -0:? 'Color' (layout(location=0 ) out 4-component vector of float) -0:? 'Depth' (out float FragDepth) // Module Version 10000 // Generated by (magic number): 80001 diff --git a/Test/baseResults/hlsl.samplecmp.array.dx10.frag.out b/Test/baseResults/hlsl.samplecmp.array.dx10.frag.out index b05595d5..a1acd797 100644 --- a/Test/baseResults/hlsl.samplecmp.array.dx10.frag.out +++ b/Test/baseResults/hlsl.samplecmp.array.dx10.frag.out @@ -164,6 +164,8 @@ gl_FragCoord origin is upper left 0:59 1 (const int) 0:59 Branch: Return 0:? Linker Objects +0:? 'Color' (layout(location=0 ) out 4-component vector of float) +0:? 'Depth' (out float FragDepth) 0:? 'g_sSamp' (layout(binding=0 ) uniform sampler) 0:? 'g_tTex1df4' (layout(binding=0 ) uniform texture1D) 0:? 'g_tTex1di4' (uniform itexture1D) @@ -186,8 +188,6 @@ gl_FragCoord origin is upper left 0:? 'g_tTexcdf4a' (uniform textureCubeArray) 0:? 'g_tTexcdi4a' (uniform itextureCubeArray) 0:? 'g_tTexcdu4a' (uniform utextureCubeArray) -0:? 'Color' (layout(location=0 ) out 4-component vector of float) -0:? 'Depth' (out float FragDepth) Linked fragment stage: @@ -358,6 +358,8 @@ gl_FragCoord origin is upper left 0:59 1 (const int) 0:59 Branch: Return 0:? Linker Objects +0:? 'Color' (layout(location=0 ) out 4-component vector of float) +0:? 'Depth' (out float FragDepth) 0:? 'g_sSamp' (layout(binding=0 ) uniform sampler) 0:? 'g_tTex1df4' (layout(binding=0 ) uniform texture1D) 0:? 'g_tTex1di4' (uniform itexture1D) @@ -380,8 +382,6 @@ gl_FragCoord origin is upper left 0:? 'g_tTexcdf4a' (uniform textureCubeArray) 0:? 'g_tTexcdi4a' (uniform itextureCubeArray) 0:? 'g_tTexcdu4a' (uniform utextureCubeArray) -0:? 'Color' (layout(location=0 ) out 4-component vector of float) -0:? 'Depth' (out float FragDepth) // Module Version 10000 // Generated by (magic number): 80001 diff --git a/Test/baseResults/hlsl.samplecmp.basic.dx10.frag.out b/Test/baseResults/hlsl.samplecmp.basic.dx10.frag.out index aa9b3795..08f3b400 100644 --- a/Test/baseResults/hlsl.samplecmp.basic.dx10.frag.out +++ b/Test/baseResults/hlsl.samplecmp.basic.dx10.frag.out @@ -155,6 +155,8 @@ gl_FragCoord origin is upper left 0:60 1 (const int) 0:60 Branch: Return 0:? Linker Objects +0:? 'Color' (layout(location=0 ) out 4-component vector of float) +0:? 'Depth' (out float FragDepth) 0:? 'g_sSamp' (layout(binding=0 ) uniform sampler) 0:? 'g_tTex1df4' (layout(binding=0 ) uniform texture1D) 0:? 'g_tTex1di4' (uniform itexture1D) @@ -177,8 +179,6 @@ gl_FragCoord origin is upper left 0:? 'g_tTexcdf4a' (uniform textureCubeArray) 0:? 'g_tTexcdi4a' (uniform itextureCubeArray) 0:? 'g_tTexcdu4a' (uniform utextureCubeArray) -0:? 'Color' (layout(location=0 ) out 4-component vector of float) -0:? 'Depth' (out float FragDepth) Linked fragment stage: @@ -340,6 +340,8 @@ gl_FragCoord origin is upper left 0:60 1 (const int) 0:60 Branch: Return 0:? Linker Objects +0:? 'Color' (layout(location=0 ) out 4-component vector of float) +0:? 'Depth' (out float FragDepth) 0:? 'g_sSamp' (layout(binding=0 ) uniform sampler) 0:? 'g_tTex1df4' (layout(binding=0 ) uniform texture1D) 0:? 'g_tTex1di4' (uniform itexture1D) @@ -362,8 +364,6 @@ gl_FragCoord origin is upper left 0:? 'g_tTexcdf4a' (uniform textureCubeArray) 0:? 'g_tTexcdi4a' (uniform itextureCubeArray) 0:? 'g_tTexcdu4a' (uniform utextureCubeArray) -0:? 'Color' (layout(location=0 ) out 4-component vector of float) -0:? 'Depth' (out float FragDepth) // Module Version 10000 // Generated by (magic number): 80001 diff --git a/Test/baseResults/hlsl.samplecmp.offset.dx10.frag.out b/Test/baseResults/hlsl.samplecmp.offset.dx10.frag.out index fd3250f5..70670a0f 100644 --- a/Test/baseResults/hlsl.samplecmp.offset.dx10.frag.out +++ b/Test/baseResults/hlsl.samplecmp.offset.dx10.frag.out @@ -128,6 +128,8 @@ gl_FragCoord origin is upper left 0:65 1 (const int) 0:65 Branch: Return 0:? Linker Objects +0:? 'Color' (layout(location=0 ) out 4-component vector of float) +0:? 'Depth' (out float FragDepth) 0:? 'g_sSamp' (layout(binding=0 ) uniform sampler) 0:? 'g_tTex1df4' (layout(binding=0 ) uniform texture1D) 0:? 'g_tTex1di4' (uniform itexture1D) @@ -150,8 +152,6 @@ gl_FragCoord origin is upper left 0:? 'g_tTexcdf4a' (uniform textureCubeArray) 0:? 'g_tTexcdi4a' (uniform itextureCubeArray) 0:? 'g_tTexcdu4a' (uniform utextureCubeArray) -0:? 'Color' (layout(location=0 ) out 4-component vector of float) -0:? 'Depth' (out float FragDepth) Linked fragment stage: @@ -286,6 +286,8 @@ gl_FragCoord origin is upper left 0:65 1 (const int) 0:65 Branch: Return 0:? Linker Objects +0:? 'Color' (layout(location=0 ) out 4-component vector of float) +0:? 'Depth' (out float FragDepth) 0:? 'g_sSamp' (layout(binding=0 ) uniform sampler) 0:? 'g_tTex1df4' (layout(binding=0 ) uniform texture1D) 0:? 'g_tTex1di4' (uniform itexture1D) @@ -308,8 +310,6 @@ gl_FragCoord origin is upper left 0:? 'g_tTexcdf4a' (uniform textureCubeArray) 0:? 'g_tTexcdi4a' (uniform itextureCubeArray) 0:? 'g_tTexcdu4a' (uniform utextureCubeArray) -0:? 'Color' (layout(location=0 ) out 4-component vector of float) -0:? 'Depth' (out float FragDepth) // Module Version 10000 // Generated by (magic number): 80001 diff --git a/Test/baseResults/hlsl.samplecmp.offsetarray.dx10.frag.out b/Test/baseResults/hlsl.samplecmp.offsetarray.dx10.frag.out index 05695ed4..d4a86361 100644 --- a/Test/baseResults/hlsl.samplecmp.offsetarray.dx10.frag.out +++ b/Test/baseResults/hlsl.samplecmp.offsetarray.dx10.frag.out @@ -134,6 +134,8 @@ gl_FragCoord origin is upper left 0:66 1 (const int) 0:66 Branch: Return 0:? Linker Objects +0:? 'Color' (layout(location=0 ) out 4-component vector of float) +0:? 'Depth' (out float FragDepth) 0:? 'g_sSamp' (layout(binding=0 ) uniform sampler) 0:? 'g_tTex1df4' (layout(binding=0 ) uniform texture1D) 0:? 'g_tTex1di4' (uniform itexture1D) @@ -156,8 +158,6 @@ gl_FragCoord origin is upper left 0:? 'g_tTexcdf4a' (uniform textureCubeArray) 0:? 'g_tTexcdi4a' (uniform itextureCubeArray) 0:? 'g_tTexcdu4a' (uniform utextureCubeArray) -0:? 'Color' (layout(location=0 ) out 4-component vector of float) -0:? 'Depth' (out float FragDepth) Linked fragment stage: @@ -298,6 +298,8 @@ gl_FragCoord origin is upper left 0:66 1 (const int) 0:66 Branch: Return 0:? Linker Objects +0:? 'Color' (layout(location=0 ) out 4-component vector of float) +0:? 'Depth' (out float FragDepth) 0:? 'g_sSamp' (layout(binding=0 ) uniform sampler) 0:? 'g_tTex1df4' (layout(binding=0 ) uniform texture1D) 0:? 'g_tTex1di4' (uniform itexture1D) @@ -320,8 +322,6 @@ gl_FragCoord origin is upper left 0:? 'g_tTexcdf4a' (uniform textureCubeArray) 0:? 'g_tTexcdi4a' (uniform itextureCubeArray) 0:? 'g_tTexcdu4a' (uniform utextureCubeArray) -0:? 'Color' (layout(location=0 ) out 4-component vector of float) -0:? 'Depth' (out float FragDepth) // Module Version 10000 // Generated by (magic number): 80001 diff --git a/Test/baseResults/hlsl.samplecmplevelzero.array.dx10.frag.out b/Test/baseResults/hlsl.samplecmplevelzero.array.dx10.frag.out index 40546103..2746fa77 100644 --- a/Test/baseResults/hlsl.samplecmplevelzero.array.dx10.frag.out +++ b/Test/baseResults/hlsl.samplecmplevelzero.array.dx10.frag.out @@ -182,6 +182,8 @@ gl_FragCoord origin is upper left 0:59 1 (const int) 0:59 Branch: Return 0:? Linker Objects +0:? 'Color' (layout(location=0 ) out 4-component vector of float) +0:? 'Depth' (out float FragDepth) 0:? 'g_sSamp' (layout(binding=0 ) uniform sampler) 0:? 'g_tTex1df4' (layout(binding=0 ) uniform texture1D) 0:? 'g_tTex1di4' (uniform itexture1D) @@ -204,8 +206,6 @@ gl_FragCoord origin is upper left 0:? 'g_tTexcdf4a' (uniform textureCubeArray) 0:? 'g_tTexcdi4a' (uniform itextureCubeArray) 0:? 'g_tTexcdu4a' (uniform utextureCubeArray) -0:? 'Color' (layout(location=0 ) out 4-component vector of float) -0:? 'Depth' (out float FragDepth) Linked fragment stage: @@ -394,6 +394,8 @@ gl_FragCoord origin is upper left 0:59 1 (const int) 0:59 Branch: Return 0:? Linker Objects +0:? 'Color' (layout(location=0 ) out 4-component vector of float) +0:? 'Depth' (out float FragDepth) 0:? 'g_sSamp' (layout(binding=0 ) uniform sampler) 0:? 'g_tTex1df4' (layout(binding=0 ) uniform texture1D) 0:? 'g_tTex1di4' (uniform itexture1D) @@ -416,8 +418,6 @@ gl_FragCoord origin is upper left 0:? 'g_tTexcdf4a' (uniform textureCubeArray) 0:? 'g_tTexcdi4a' (uniform itextureCubeArray) 0:? 'g_tTexcdu4a' (uniform utextureCubeArray) -0:? 'Color' (layout(location=0 ) out 4-component vector of float) -0:? 'Depth' (out float FragDepth) // Module Version 10000 // Generated by (magic number): 80001 diff --git a/Test/baseResults/hlsl.samplecmplevelzero.basic.dx10.frag.out b/Test/baseResults/hlsl.samplecmplevelzero.basic.dx10.frag.out index a5923367..e6c43725 100644 --- a/Test/baseResults/hlsl.samplecmplevelzero.basic.dx10.frag.out +++ b/Test/baseResults/hlsl.samplecmplevelzero.basic.dx10.frag.out @@ -173,6 +173,8 @@ gl_FragCoord origin is upper left 0:60 1 (const int) 0:60 Branch: Return 0:? Linker Objects +0:? 'Color' (layout(location=0 ) out 4-component vector of float) +0:? 'Depth' (out float FragDepth) 0:? 'g_sSamp' (layout(binding=0 ) uniform sampler) 0:? 'g_tTex1df4' (layout(binding=0 ) uniform texture1D) 0:? 'g_tTex1di4' (uniform itexture1D) @@ -195,8 +197,6 @@ gl_FragCoord origin is upper left 0:? 'g_tTexcdf4a' (uniform textureCubeArray) 0:? 'g_tTexcdi4a' (uniform itextureCubeArray) 0:? 'g_tTexcdu4a' (uniform utextureCubeArray) -0:? 'Color' (layout(location=0 ) out 4-component vector of float) -0:? 'Depth' (out float FragDepth) Linked fragment stage: @@ -376,6 +376,8 @@ gl_FragCoord origin is upper left 0:60 1 (const int) 0:60 Branch: Return 0:? Linker Objects +0:? 'Color' (layout(location=0 ) out 4-component vector of float) +0:? 'Depth' (out float FragDepth) 0:? 'g_sSamp' (layout(binding=0 ) uniform sampler) 0:? 'g_tTex1df4' (layout(binding=0 ) uniform texture1D) 0:? 'g_tTex1di4' (uniform itexture1D) @@ -398,8 +400,6 @@ gl_FragCoord origin is upper left 0:? 'g_tTexcdf4a' (uniform textureCubeArray) 0:? 'g_tTexcdi4a' (uniform itextureCubeArray) 0:? 'g_tTexcdu4a' (uniform utextureCubeArray) -0:? 'Color' (layout(location=0 ) out 4-component vector of float) -0:? 'Depth' (out float FragDepth) // Module Version 10000 // Generated by (magic number): 80001 diff --git a/Test/baseResults/hlsl.samplecmplevelzero.offset.dx10.frag.out b/Test/baseResults/hlsl.samplecmplevelzero.offset.dx10.frag.out index bfbfbb29..f66055df 100644 --- a/Test/baseResults/hlsl.samplecmplevelzero.offset.dx10.frag.out +++ b/Test/baseResults/hlsl.samplecmplevelzero.offset.dx10.frag.out @@ -140,6 +140,8 @@ gl_FragCoord origin is upper left 0:65 1 (const int) 0:65 Branch: Return 0:? Linker Objects +0:? 'Color' (layout(location=0 ) out 4-component vector of float) +0:? 'Depth' (out float FragDepth) 0:? 'g_sSamp' (layout(binding=0 ) uniform sampler) 0:? 'g_tTex1df4' (layout(binding=0 ) uniform texture1D) 0:? 'g_tTex1di4' (uniform itexture1D) @@ -162,8 +164,6 @@ gl_FragCoord origin is upper left 0:? 'g_tTexcdf4a' (uniform textureCubeArray) 0:? 'g_tTexcdi4a' (uniform itextureCubeArray) 0:? 'g_tTexcdu4a' (uniform utextureCubeArray) -0:? 'Color' (layout(location=0 ) out 4-component vector of float) -0:? 'Depth' (out float FragDepth) Linked fragment stage: @@ -310,6 +310,8 @@ gl_FragCoord origin is upper left 0:65 1 (const int) 0:65 Branch: Return 0:? Linker Objects +0:? 'Color' (layout(location=0 ) out 4-component vector of float) +0:? 'Depth' (out float FragDepth) 0:? 'g_sSamp' (layout(binding=0 ) uniform sampler) 0:? 'g_tTex1df4' (layout(binding=0 ) uniform texture1D) 0:? 'g_tTex1di4' (uniform itexture1D) @@ -332,8 +334,6 @@ gl_FragCoord origin is upper left 0:? 'g_tTexcdf4a' (uniform textureCubeArray) 0:? 'g_tTexcdi4a' (uniform itextureCubeArray) 0:? 'g_tTexcdu4a' (uniform utextureCubeArray) -0:? 'Color' (layout(location=0 ) out 4-component vector of float) -0:? 'Depth' (out float FragDepth) // Module Version 10000 // Generated by (magic number): 80001 diff --git a/Test/baseResults/hlsl.samplecmplevelzero.offsetarray.dx10.frag.out b/Test/baseResults/hlsl.samplecmplevelzero.offsetarray.dx10.frag.out index 0e38a7d6..3b2b9126 100644 --- a/Test/baseResults/hlsl.samplecmplevelzero.offsetarray.dx10.frag.out +++ b/Test/baseResults/hlsl.samplecmplevelzero.offsetarray.dx10.frag.out @@ -146,6 +146,8 @@ gl_FragCoord origin is upper left 0:66 1 (const int) 0:66 Branch: Return 0:? Linker Objects +0:? 'Color' (layout(location=0 ) out 4-component vector of float) +0:? 'Depth' (out float FragDepth) 0:? 'g_sSamp' (layout(binding=0 ) uniform sampler) 0:? 'g_tTex1df4' (layout(binding=0 ) uniform texture1D) 0:? 'g_tTex1di4' (uniform itexture1D) @@ -168,8 +170,6 @@ gl_FragCoord origin is upper left 0:? 'g_tTexcdf4a' (uniform textureCubeArray) 0:? 'g_tTexcdi4a' (uniform itextureCubeArray) 0:? 'g_tTexcdu4a' (uniform utextureCubeArray) -0:? 'Color' (layout(location=0 ) out 4-component vector of float) -0:? 'Depth' (out float FragDepth) Linked fragment stage: @@ -322,6 +322,8 @@ gl_FragCoord origin is upper left 0:66 1 (const int) 0:66 Branch: Return 0:? Linker Objects +0:? 'Color' (layout(location=0 ) out 4-component vector of float) +0:? 'Depth' (out float FragDepth) 0:? 'g_sSamp' (layout(binding=0 ) uniform sampler) 0:? 'g_tTex1df4' (layout(binding=0 ) uniform texture1D) 0:? 'g_tTex1di4' (uniform itexture1D) @@ -344,8 +346,6 @@ gl_FragCoord origin is upper left 0:? 'g_tTexcdf4a' (uniform textureCubeArray) 0:? 'g_tTexcdi4a' (uniform itextureCubeArray) 0:? 'g_tTexcdu4a' (uniform utextureCubeArray) -0:? 'Color' (layout(location=0 ) out 4-component vector of float) -0:? 'Depth' (out float FragDepth) // Module Version 10000 // Generated by (magic number): 80001 diff --git a/Test/baseResults/hlsl.samplegrad.array.dx10.frag.out b/Test/baseResults/hlsl.samplegrad.array.dx10.frag.out index 46a6bbc1..2a0d77a0 100644 --- a/Test/baseResults/hlsl.samplegrad.array.dx10.frag.out +++ b/Test/baseResults/hlsl.samplegrad.array.dx10.frag.out @@ -191,6 +191,8 @@ gl_FragCoord origin is upper left 0:42 1 (const int) 0:42 Branch: Return 0:? Linker Objects +0:? 'Color' (layout(location=0 ) out 4-component vector of float) +0:? 'Depth' (out float FragDepth) 0:? 'g_sSamp' (layout(binding=0 ) uniform sampler) 0:? 'g_tTex1df4a' (layout(binding=1 ) uniform texture1DArray) 0:? 'g_tTex1df4' (layout(binding=0 ) uniform texture1DArray) @@ -202,8 +204,6 @@ gl_FragCoord origin is upper left 0:? 'g_tTexcdf4' (uniform textureCubeArray) 0:? 'g_tTexcdi4' (uniform itextureCubeArray) 0:? 'g_tTexcdu4' (uniform utextureCubeArray) -0:? 'Color' (layout(location=0 ) out 4-component vector of float) -0:? 'Depth' (out float FragDepth) Linked fragment stage: @@ -401,6 +401,8 @@ gl_FragCoord origin is upper left 0:42 1 (const int) 0:42 Branch: Return 0:? Linker Objects +0:? 'Color' (layout(location=0 ) out 4-component vector of float) +0:? 'Depth' (out float FragDepth) 0:? 'g_sSamp' (layout(binding=0 ) uniform sampler) 0:? 'g_tTex1df4a' (layout(binding=1 ) uniform texture1DArray) 0:? 'g_tTex1df4' (layout(binding=0 ) uniform texture1DArray) @@ -412,8 +414,6 @@ gl_FragCoord origin is upper left 0:? 'g_tTexcdf4' (uniform textureCubeArray) 0:? 'g_tTexcdi4' (uniform itextureCubeArray) 0:? 'g_tTexcdu4' (uniform utextureCubeArray) -0:? 'Color' (layout(location=0 ) out 4-component vector of float) -0:? 'Depth' (out float FragDepth) // Module Version 10000 // Generated by (magic number): 80001 diff --git a/Test/baseResults/hlsl.samplegrad.basic.dx10.frag.out b/Test/baseResults/hlsl.samplegrad.basic.dx10.frag.out index 395efc26..feaba770 100644 --- a/Test/baseResults/hlsl.samplegrad.basic.dx10.frag.out +++ b/Test/baseResults/hlsl.samplegrad.basic.dx10.frag.out @@ -239,6 +239,8 @@ gl_FragCoord origin is upper left 0:50 1 (const int) 0:50 Branch: Return 0:? Linker Objects +0:? 'Color' (layout(location=0 ) out 4-component vector of float) +0:? 'Depth' (out float FragDepth) 0:? 'g_sSamp' (layout(binding=0 ) uniform sampler) 0:? 'g_tTex1df4a' (layout(binding=1 ) uniform texture1D) 0:? 'g_tTex1df4' (layout(binding=0 ) uniform texture1D) @@ -253,8 +255,6 @@ gl_FragCoord origin is upper left 0:? 'g_tTexcdf4' (uniform textureCube) 0:? 'g_tTexcdi4' (uniform itextureCube) 0:? 'g_tTexcdu4' (uniform utextureCube) -0:? 'Color' (layout(location=0 ) out 4-component vector of float) -0:? 'Depth' (out float FragDepth) Linked fragment stage: @@ -500,6 +500,8 @@ gl_FragCoord origin is upper left 0:50 1 (const int) 0:50 Branch: Return 0:? Linker Objects +0:? 'Color' (layout(location=0 ) out 4-component vector of float) +0:? 'Depth' (out float FragDepth) 0:? 'g_sSamp' (layout(binding=0 ) uniform sampler) 0:? 'g_tTex1df4a' (layout(binding=1 ) uniform texture1D) 0:? 'g_tTex1df4' (layout(binding=0 ) uniform texture1D) @@ -514,8 +516,6 @@ gl_FragCoord origin is upper left 0:? 'g_tTexcdf4' (uniform textureCube) 0:? 'g_tTexcdi4' (uniform itextureCube) 0:? 'g_tTexcdu4' (uniform utextureCube) -0:? 'Color' (layout(location=0 ) out 4-component vector of float) -0:? 'Depth' (out float FragDepth) // Module Version 10000 // Generated by (magic number): 80001 diff --git a/Test/baseResults/hlsl.samplegrad.basic.dx10.vert.out b/Test/baseResults/hlsl.samplegrad.basic.dx10.vert.out index 2e79be32..f6d37c3b 100644 --- a/Test/baseResults/hlsl.samplegrad.basic.dx10.vert.out +++ b/Test/baseResults/hlsl.samplegrad.basic.dx10.vert.out @@ -225,6 +225,7 @@ Shader version: 450 0:48 0 (const int) 0:48 Branch: Return 0:? Linker Objects +0:? 'Pos' (out 4-component vector of float Position) 0:? 'g_sSamp' (layout(binding=0 ) uniform sampler) 0:? 'g_tTex1df4a' (layout(binding=1 ) uniform texture1D) 0:? 'g_tTex1df4' (layout(binding=0 ) uniform texture1D) @@ -239,7 +240,6 @@ Shader version: 450 0:? 'g_tTexcdf4' (uniform textureCube) 0:? 'g_tTexcdi4' (uniform itextureCube) 0:? 'g_tTexcdu4' (uniform utextureCube) -0:? 'Pos' (out 4-component vector of float Position) Linked vertex stage: @@ -471,6 +471,7 @@ Shader version: 450 0:48 0 (const int) 0:48 Branch: Return 0:? Linker Objects +0:? 'Pos' (out 4-component vector of float Position) 0:? 'g_sSamp' (layout(binding=0 ) uniform sampler) 0:? 'g_tTex1df4a' (layout(binding=1 ) uniform texture1D) 0:? 'g_tTex1df4' (layout(binding=0 ) uniform texture1D) @@ -485,7 +486,6 @@ Shader version: 450 0:? 'g_tTexcdf4' (uniform textureCube) 0:? 'g_tTexcdi4' (uniform itextureCube) 0:? 'g_tTexcdu4' (uniform utextureCube) -0:? 'Pos' (out 4-component vector of float Position) // Module Version 10000 // Generated by (magic number): 80001 diff --git a/Test/baseResults/hlsl.samplegrad.offset.dx10.frag.out b/Test/baseResults/hlsl.samplegrad.offset.dx10.frag.out index 7ef5e077..7938e527 100644 --- a/Test/baseResults/hlsl.samplegrad.offset.dx10.frag.out +++ b/Test/baseResults/hlsl.samplegrad.offset.dx10.frag.out @@ -209,6 +209,8 @@ gl_FragCoord origin is upper left 0:48 1 (const int) 0:48 Branch: Return 0:? Linker Objects +0:? 'Color' (layout(location=0 ) out 4-component vector of float) +0:? 'Depth' (out float FragDepth) 0:? 'g_sSamp' (layout(binding=0 ) uniform sampler) 0:? 'g_tTex1df4a' (layout(binding=1 ) uniform texture1D) 0:? 'g_tTex1df4' (layout(binding=0 ) uniform texture1D) @@ -223,8 +225,6 @@ gl_FragCoord origin is upper left 0:? 'g_tTexcdf4' (uniform textureCube) 0:? 'g_tTexcdi4' (uniform itextureCube) 0:? 'g_tTexcdu4' (uniform utextureCube) -0:? 'Color' (layout(location=0 ) out 4-component vector of float) -0:? 'Depth' (out float FragDepth) Linked fragment stage: @@ -440,6 +440,8 @@ gl_FragCoord origin is upper left 0:48 1 (const int) 0:48 Branch: Return 0:? Linker Objects +0:? 'Color' (layout(location=0 ) out 4-component vector of float) +0:? 'Depth' (out float FragDepth) 0:? 'g_sSamp' (layout(binding=0 ) uniform sampler) 0:? 'g_tTex1df4a' (layout(binding=1 ) uniform texture1D) 0:? 'g_tTex1df4' (layout(binding=0 ) uniform texture1D) @@ -454,8 +456,6 @@ gl_FragCoord origin is upper left 0:? 'g_tTexcdf4' (uniform textureCube) 0:? 'g_tTexcdi4' (uniform itextureCube) 0:? 'g_tTexcdu4' (uniform utextureCube) -0:? 'Color' (layout(location=0 ) out 4-component vector of float) -0:? 'Depth' (out float FragDepth) // Module Version 10000 // Generated by (magic number): 80001 diff --git a/Test/baseResults/hlsl.samplegrad.offsetarray.dx10.frag.out b/Test/baseResults/hlsl.samplegrad.offsetarray.dx10.frag.out index 2043f38a..dee78bc4 100644 --- a/Test/baseResults/hlsl.samplegrad.offsetarray.dx10.frag.out +++ b/Test/baseResults/hlsl.samplegrad.offsetarray.dx10.frag.out @@ -146,6 +146,8 @@ gl_FragCoord origin is upper left 0:38 1 (const int) 0:38 Branch: Return 0:? Linker Objects +0:? 'Color' (layout(location=0 ) out 4-component vector of float) +0:? 'Depth' (out float FragDepth) 0:? 'g_sSamp' (layout(binding=0 ) uniform sampler) 0:? 'g_tTex1df4a' (layout(binding=1 ) uniform texture1DArray) 0:? 'g_tTex1df4' (layout(binding=0 ) uniform texture1DArray) @@ -157,8 +159,6 @@ gl_FragCoord origin is upper left 0:? 'g_tTexcdf4' (uniform textureCubeArray) 0:? 'g_tTexcdi4' (uniform itextureCubeArray) 0:? 'g_tTexcdu4' (uniform utextureCubeArray) -0:? 'Color' (layout(location=0 ) out 4-component vector of float) -0:? 'Depth' (out float FragDepth) Linked fragment stage: @@ -311,6 +311,8 @@ gl_FragCoord origin is upper left 0:38 1 (const int) 0:38 Branch: Return 0:? Linker Objects +0:? 'Color' (layout(location=0 ) out 4-component vector of float) +0:? 'Depth' (out float FragDepth) 0:? 'g_sSamp' (layout(binding=0 ) uniform sampler) 0:? 'g_tTex1df4a' (layout(binding=1 ) uniform texture1DArray) 0:? 'g_tTex1df4' (layout(binding=0 ) uniform texture1DArray) @@ -322,8 +324,6 @@ gl_FragCoord origin is upper left 0:? 'g_tTexcdf4' (uniform textureCubeArray) 0:? 'g_tTexcdi4' (uniform itextureCubeArray) 0:? 'g_tTexcdu4' (uniform utextureCubeArray) -0:? 'Color' (layout(location=0 ) out 4-component vector of float) -0:? 'Depth' (out float FragDepth) // Module Version 10000 // Generated by (magic number): 80001 diff --git a/Test/baseResults/hlsl.samplelevel.array.dx10.frag.out b/Test/baseResults/hlsl.samplelevel.array.dx10.frag.out index 351e2ed1..afdedb7d 100644 --- a/Test/baseResults/hlsl.samplelevel.array.dx10.frag.out +++ b/Test/baseResults/hlsl.samplelevel.array.dx10.frag.out @@ -155,6 +155,8 @@ gl_FragCoord origin is upper left 0:42 1 (const int) 0:42 Branch: Return 0:? Linker Objects +0:? 'Color' (layout(location=0 ) out 4-component vector of float) +0:? 'Depth' (out float FragDepth) 0:? 'g_sSamp' (layout(binding=0 ) uniform sampler) 0:? 'g_tTex1df4a' (layout(binding=1 ) uniform texture1DArray) 0:? 'g_tTex1df4' (layout(binding=0 ) uniform texture1DArray) @@ -166,8 +168,6 @@ gl_FragCoord origin is upper left 0:? 'g_tTexcdf4a' (uniform textureCubeArray) 0:? 'g_tTexcdi4a' (uniform itextureCubeArray) 0:? 'g_tTexcdu4a' (uniform utextureCubeArray) -0:? 'Color' (layout(location=0 ) out 4-component vector of float) -0:? 'Depth' (out float FragDepth) Linked fragment stage: @@ -329,6 +329,8 @@ gl_FragCoord origin is upper left 0:42 1 (const int) 0:42 Branch: Return 0:? Linker Objects +0:? 'Color' (layout(location=0 ) out 4-component vector of float) +0:? 'Depth' (out float FragDepth) 0:? 'g_sSamp' (layout(binding=0 ) uniform sampler) 0:? 'g_tTex1df4a' (layout(binding=1 ) uniform texture1DArray) 0:? 'g_tTex1df4' (layout(binding=0 ) uniform texture1DArray) @@ -340,8 +342,6 @@ gl_FragCoord origin is upper left 0:? 'g_tTexcdf4a' (uniform textureCubeArray) 0:? 'g_tTexcdi4a' (uniform itextureCubeArray) 0:? 'g_tTexcdu4a' (uniform utextureCubeArray) -0:? 'Color' (layout(location=0 ) out 4-component vector of float) -0:? 'Depth' (out float FragDepth) // Module Version 10000 // Generated by (magic number): 80001 diff --git a/Test/baseResults/hlsl.samplelevel.basic.dx10.frag.out b/Test/baseResults/hlsl.samplelevel.basic.dx10.frag.out index d37090fa..34a65978 100644 --- a/Test/baseResults/hlsl.samplelevel.basic.dx10.frag.out +++ b/Test/baseResults/hlsl.samplelevel.basic.dx10.frag.out @@ -185,6 +185,8 @@ gl_FragCoord origin is upper left 0:51 1 (const int) 0:51 Branch: Return 0:? Linker Objects +0:? 'Color' (layout(location=0 ) out 4-component vector of float) +0:? 'Depth' (out float FragDepth) 0:? 'g_sSamp' (layout(binding=0 ) uniform sampler) 0:? 'g_sSamp2d' (uniform sampler) 0:? 'g_tTex1df4a' (layout(binding=1 ) uniform texture1D) @@ -200,8 +202,6 @@ gl_FragCoord origin is upper left 0:? 'g_tTexcdf4' (uniform textureCube) 0:? 'g_tTexcdi4' (uniform itextureCube) 0:? 'g_tTexcdu4' (uniform utextureCube) -0:? 'Color' (layout(location=0 ) out 4-component vector of float) -0:? 'Depth' (out float FragDepth) Linked fragment stage: @@ -393,6 +393,8 @@ gl_FragCoord origin is upper left 0:51 1 (const int) 0:51 Branch: Return 0:? Linker Objects +0:? 'Color' (layout(location=0 ) out 4-component vector of float) +0:? 'Depth' (out float FragDepth) 0:? 'g_sSamp' (layout(binding=0 ) uniform sampler) 0:? 'g_sSamp2d' (uniform sampler) 0:? 'g_tTex1df4a' (layout(binding=1 ) uniform texture1D) @@ -408,8 +410,6 @@ gl_FragCoord origin is upper left 0:? 'g_tTexcdf4' (uniform textureCube) 0:? 'g_tTexcdi4' (uniform itextureCube) 0:? 'g_tTexcdu4' (uniform utextureCube) -0:? 'Color' (layout(location=0 ) out 4-component vector of float) -0:? 'Depth' (out float FragDepth) // Module Version 10000 // Generated by (magic number): 80001 diff --git a/Test/baseResults/hlsl.samplelevel.basic.dx10.vert.out b/Test/baseResults/hlsl.samplelevel.basic.dx10.vert.out index 04382997..04d0870e 100644 --- a/Test/baseResults/hlsl.samplelevel.basic.dx10.vert.out +++ b/Test/baseResults/hlsl.samplelevel.basic.dx10.vert.out @@ -171,6 +171,7 @@ Shader version: 450 0:48 0 (const int) 0:48 Branch: Return 0:? Linker Objects +0:? 'Pos' (out 4-component vector of float Position) 0:? 'g_sSamp' (layout(binding=0 ) uniform sampler) 0:? 'g_tTex1df4a' (layout(binding=1 ) uniform texture1D) 0:? 'g_tTex1df4' (layout(binding=0 ) uniform texture1D) @@ -185,7 +186,6 @@ Shader version: 450 0:? 'g_tTexcdf4' (uniform textureCube) 0:? 'g_tTexcdi4' (uniform itextureCube) 0:? 'g_tTexcdu4' (uniform utextureCube) -0:? 'Pos' (out 4-component vector of float Position) Linked vertex stage: @@ -363,6 +363,7 @@ Shader version: 450 0:48 0 (const int) 0:48 Branch: Return 0:? Linker Objects +0:? 'Pos' (out 4-component vector of float Position) 0:? 'g_sSamp' (layout(binding=0 ) uniform sampler) 0:? 'g_tTex1df4a' (layout(binding=1 ) uniform texture1D) 0:? 'g_tTex1df4' (layout(binding=0 ) uniform texture1D) @@ -377,7 +378,6 @@ Shader version: 450 0:? 'g_tTexcdf4' (uniform textureCube) 0:? 'g_tTexcdi4' (uniform itextureCube) 0:? 'g_tTexcdu4' (uniform utextureCube) -0:? 'Pos' (out 4-component vector of float Position) // Module Version 10000 // Generated by (magic number): 80001 diff --git a/Test/baseResults/hlsl.samplelevel.offset.dx10.frag.out b/Test/baseResults/hlsl.samplelevel.offset.dx10.frag.out index 0f0f9681..aa779610 100644 --- a/Test/baseResults/hlsl.samplelevel.offset.dx10.frag.out +++ b/Test/baseResults/hlsl.samplelevel.offset.dx10.frag.out @@ -173,6 +173,8 @@ gl_FragCoord origin is upper left 0:48 1 (const int) 0:48 Branch: Return 0:? Linker Objects +0:? 'Color' (layout(location=0 ) out 4-component vector of float) +0:? 'Depth' (out float FragDepth) 0:? 'g_sSamp' (layout(binding=0 ) uniform sampler) 0:? 'g_tTex1df4a' (layout(binding=1 ) uniform texture1D) 0:? 'g_tTex1df4' (layout(binding=0 ) uniform texture1D) @@ -187,8 +189,6 @@ gl_FragCoord origin is upper left 0:? 'g_tTexcdf4' (uniform textureCube) 0:? 'g_tTexcdi4' (uniform itextureCube) 0:? 'g_tTexcdu4' (uniform utextureCube) -0:? 'Color' (layout(location=0 ) out 4-component vector of float) -0:? 'Depth' (out float FragDepth) Linked fragment stage: @@ -368,6 +368,8 @@ gl_FragCoord origin is upper left 0:48 1 (const int) 0:48 Branch: Return 0:? Linker Objects +0:? 'Color' (layout(location=0 ) out 4-component vector of float) +0:? 'Depth' (out float FragDepth) 0:? 'g_sSamp' (layout(binding=0 ) uniform sampler) 0:? 'g_tTex1df4a' (layout(binding=1 ) uniform texture1D) 0:? 'g_tTex1df4' (layout(binding=0 ) uniform texture1D) @@ -382,8 +384,6 @@ gl_FragCoord origin is upper left 0:? 'g_tTexcdf4' (uniform textureCube) 0:? 'g_tTexcdi4' (uniform itextureCube) 0:? 'g_tTexcdu4' (uniform utextureCube) -0:? 'Color' (layout(location=0 ) out 4-component vector of float) -0:? 'Depth' (out float FragDepth) // Module Version 10000 // Generated by (magic number): 80001 diff --git a/Test/baseResults/hlsl.samplelevel.offsetarray.dx10.frag.out b/Test/baseResults/hlsl.samplelevel.offsetarray.dx10.frag.out index 8eb74cd0..056a4f13 100644 --- a/Test/baseResults/hlsl.samplelevel.offsetarray.dx10.frag.out +++ b/Test/baseResults/hlsl.samplelevel.offsetarray.dx10.frag.out @@ -128,6 +128,8 @@ gl_FragCoord origin is upper left 0:36 1 (const int) 0:36 Branch: Return 0:? Linker Objects +0:? 'Color' (layout(location=0 ) out 4-component vector of float) +0:? 'Depth' (out float FragDepth) 0:? 'g_sSamp' (layout(binding=0 ) uniform sampler) 0:? 'g_tTex1df4a' (layout(binding=1 ) uniform texture1DArray) 0:? 'g_tTex1df4' (layout(binding=0 ) uniform texture1DArray) @@ -136,8 +138,6 @@ gl_FragCoord origin is upper left 0:? 'g_tTex2df4' (uniform texture2DArray) 0:? 'g_tTex2di4' (uniform itexture2DArray) 0:? 'g_tTex2du4' (uniform utexture2DArray) -0:? 'Color' (layout(location=0 ) out 4-component vector of float) -0:? 'Depth' (out float FragDepth) Linked fragment stage: @@ -272,6 +272,8 @@ gl_FragCoord origin is upper left 0:36 1 (const int) 0:36 Branch: Return 0:? Linker Objects +0:? 'Color' (layout(location=0 ) out 4-component vector of float) +0:? 'Depth' (out float FragDepth) 0:? 'g_sSamp' (layout(binding=0 ) uniform sampler) 0:? 'g_tTex1df4a' (layout(binding=1 ) uniform texture1DArray) 0:? 'g_tTex1df4' (layout(binding=0 ) uniform texture1DArray) @@ -280,8 +282,6 @@ gl_FragCoord origin is upper left 0:? 'g_tTex2df4' (uniform texture2DArray) 0:? 'g_tTex2di4' (uniform itexture2DArray) 0:? 'g_tTex2du4' (uniform utexture2DArray) -0:? 'Color' (layout(location=0 ) out 4-component vector of float) -0:? 'Depth' (out float FragDepth) // Module Version 10000 // Generated by (magic number): 80001 diff --git a/Test/baseResults/hlsl.stringtoken.frag.out b/Test/baseResults/hlsl.stringtoken.frag.out index 8593db62..94c1b2ad 100644 --- a/Test/baseResults/hlsl.stringtoken.frag.out +++ b/Test/baseResults/hlsl.stringtoken.frag.out @@ -25,9 +25,9 @@ gl_FragCoord origin is upper left 0:19 0 (const int) 0:19 Branch: Return 0:? Linker Objects -0:? 'TestTexture' (uniform texture2D) 0:? 'Color' (layout(location=0 ) out 4-component vector of float) -0:? 'anon@0' (uniform block{layout(offset=0 ) uniform 4-component vector of float TestUF}) +0:? 'TestTexture' (uniform texture2D) +0:? 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 4-component vector of float TestUF}) Linked fragment stage: @@ -59,9 +59,9 @@ gl_FragCoord origin is upper left 0:19 0 (const int) 0:19 Branch: Return 0:? Linker Objects -0:? 'TestTexture' (uniform texture2D) 0:? 'Color' (layout(location=0 ) out 4-component vector of float) -0:? 'anon@0' (uniform block{layout(offset=0 ) uniform 4-component vector of float TestUF}) +0:? 'TestTexture' (uniform texture2D) +0:? 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 4-component vector of float TestUF}) // Module Version 10000 // Generated by (magic number): 80001 @@ -83,6 +83,7 @@ gl_FragCoord origin is upper left Name 28 "" Decorate 19(Color) Location 0 Decorate 25(TestTexture) DescriptorSet 0 + MemberDecorate 26($Global) 0 Offset 0 Decorate 26($Global) Block Decorate 28 DescriptorSet 0 2: TypeVoid diff --git a/Test/baseResults/hlsl.struct.frag.out b/Test/baseResults/hlsl.struct.frag.out index 5fef9599..c14018ea 100755 --- a/Test/baseResults/hlsl.struct.frag.out +++ b/Test/baseResults/hlsl.struct.frag.out @@ -26,9 +26,7 @@ gl_FragCoord origin is upper left 0:42 'input' (layout(location=0 ) in 4-component vector of float) 0:42 Branch: Return 0:? Linker Objects -0:? 's2' (global structure{temp 4-component vector of float i}) 0:? '@entryPointOutput' (layout(location=0 ) out 4-component vector of float) -0:? 'anon@0' (uniform block{layout(offset=0 ) uniform structure{temp bool b, temp bool c, temp 4-component vector of float a, temp 4-component vector of float d} s1, layout(binding=5 offset=1620 ) uniform float ff5, layout(binding=8 offset=1636 ) uniform float ff6}) 0:? 'input' (layout(location=0 ) in 4-component vector of float) 0:? 'a' (layout(location=1 ) smooth in 4-component vector of float) 0:? 'b' (layout(location=2 ) flat in bool) @@ -38,6 +36,8 @@ gl_FragCoord origin is upper left 0:? 'ff2' (layout(location=5 offset=4 ) in bool) 0:? 'ff3' (layout(location=6 binding=0 offset=4 ) in bool) 0:? 'ff4' (layout(location=7 binding=0 offset=4 ) in 4-component vector of float) +0:? 's2' (global structure{temp 4-component vector of float i}) +0:? 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform structure{temp bool b, temp bool c, temp 4-component vector of float a, temp 4-component vector of float d} s1, layout(binding=5 offset=1620 ) uniform float ff5, layout(binding=8 offset=1636 ) uniform float ff6}) Linked fragment stage: @@ -66,9 +66,7 @@ gl_FragCoord origin is upper left 0:42 'input' (layout(location=0 ) in 4-component vector of float) 0:42 Branch: Return 0:? Linker Objects -0:? 's2' (global structure{temp 4-component vector of float i}) 0:? '@entryPointOutput' (layout(location=0 ) out 4-component vector of float) -0:? 'anon@0' (uniform block{layout(offset=0 ) uniform structure{temp bool b, temp bool c, temp 4-component vector of float a, temp 4-component vector of float d} s1, layout(binding=5 offset=1620 ) uniform float ff5, layout(binding=8 offset=1636 ) uniform float ff6}) 0:? 'input' (layout(location=0 ) in 4-component vector of float) 0:? 'a' (layout(location=1 ) smooth in 4-component vector of float) 0:? 'b' (layout(location=2 ) flat in bool) @@ -78,15 +76,17 @@ gl_FragCoord origin is upper left 0:? 'ff2' (layout(location=5 offset=4 ) in bool) 0:? 'ff3' (layout(location=6 binding=0 offset=4 ) in bool) 0:? 'ff4' (layout(location=7 binding=0 offset=4 ) in 4-component vector of float) +0:? 's2' (global structure{temp 4-component vector of float i}) +0:? 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform structure{temp bool b, temp bool c, temp 4-component vector of float a, temp 4-component vector of float d} s1, layout(binding=5 offset=1620 ) uniform float ff5, layout(binding=8 offset=1636 ) uniform float ff6}) // Module Version 10000 // Generated by (magic number): 80001 -// Id's are bound by 49 +// Id's are bound by 50 Capability Shader 1: ExtInstImport "GLSL.std.450" MemoryModel Logical GLSL450 - EntryPoint Fragment 4 "PixelShaderFunction" 25 30 31 38 40 42 45 46 47 48 + EntryPoint Fragment 4 "PixelShaderFunction" 25 30 31 34 36 38 41 42 43 44 ExecutionMode 4 OriginUpperLeft Name 4 "PixelShaderFunction" Name 8 "FS" @@ -98,44 +98,51 @@ gl_FragCoord origin is upper left Name 25 "ff4" Name 30 "@entryPointOutput" Name 31 "input" - Name 34 "myS" - MemberName 34(myS) 0 "b" - MemberName 34(myS) 1 "c" - MemberName 34(myS) 2 "a" - MemberName 34(myS) 3 "d" - Name 35 "$Global" - MemberName 35($Global) 0 "s1" - MemberName 35($Global) 1 "ff5" - MemberName 35($Global) 2 "ff6" - Name 37 "" - Name 38 "a" - Name 40 "b" - Name 42 "c" - Name 45 "d" - Name 46 "ff1" - Name 47 "ff2" - Name 48 "ff3" + Name 34 "a" + Name 36 "b" + Name 38 "c" + Name 41 "d" + Name 42 "ff1" + Name 43 "ff2" + Name 44 "ff3" + Name 46 "myS" + MemberName 46(myS) 0 "b" + MemberName 46(myS) 1 "c" + MemberName 46(myS) 2 "a" + MemberName 46(myS) 3 "d" + Name 47 "$Global" + MemberName 47($Global) 0 "s1" + MemberName 47($Global) 1 "ff5" + MemberName 47($Global) 2 "ff6" + Name 49 "" Decorate 25(ff4) Offset 4 Decorate 25(ff4) Location 7 Decorate 25(ff4) Binding 0 Decorate 30(@entryPointOutput) Location 0 Decorate 31(input) Location 0 - Decorate 35($Global) Block - Decorate 37 DescriptorSet 0 - Decorate 38(a) Location 1 - Decorate 40(b) Flat - Decorate 40(b) Location 2 - Decorate 42(c) NoPerspective - Decorate 42(c) Centroid - Decorate 42(c) Location 3 - Decorate 45(d) Centroid - Decorate 45(d) Location 4 - Decorate 46(ff1) BuiltIn FrontFacing - Decorate 47(ff2) Offset 4 - Decorate 47(ff2) Location 5 - Decorate 48(ff3) Offset 4 - Decorate 48(ff3) Location 6 - Decorate 48(ff3) Binding 0 + Decorate 34(a) Location 1 + Decorate 36(b) Flat + Decorate 36(b) Location 2 + Decorate 38(c) NoPerspective + Decorate 38(c) Centroid + Decorate 38(c) Location 3 + Decorate 41(d) Centroid + Decorate 41(d) Location 4 + Decorate 42(ff1) BuiltIn FrontFacing + Decorate 43(ff2) Offset 4 + Decorate 43(ff2) Location 5 + Decorate 44(ff3) Offset 4 + Decorate 44(ff3) Location 6 + Decorate 44(ff3) Binding 0 + MemberDecorate 46(myS) 0 Offset 0 + MemberDecorate 46(myS) 1 Offset 4 + MemberDecorate 46(myS) 2 Offset 16 + MemberDecorate 46(myS) 3 Offset 32 + MemberDecorate 47($Global) 0 Offset 0 + MemberDecorate 47($Global) 1 Offset 1620 + MemberDecorate 47($Global) 2 Offset 1636 + Decorate 47($Global) Block + Decorate 49 DescriptorSet 0 2: TypeVoid 3: TypeFunction 2 6: TypeBool @@ -155,21 +162,22 @@ gl_FragCoord origin is upper left 29: TypePointer Output 18(fvec4) 30(@entryPointOutput): 29(ptr) Variable Output 31(input): 24(ptr) Variable Input - 34(myS): TypeStruct 6(bool) 6(bool) 18(fvec4) 18(fvec4) - 35($Global): TypeStruct 34(myS) 17(float) 17(float) - 36: TypePointer Uniform 35($Global) - 37: 36(ptr) Variable Uniform - 38(a): 24(ptr) Variable Input - 39: TypePointer Input 6(bool) - 40(b): 39(ptr) Variable Input - 41: TypePointer Input 17(float) - 42(c): 41(ptr) Variable Input - 43: TypeVector 17(float) 2 - 44: TypePointer Input 43(fvec2) - 45(d): 44(ptr) Variable Input - 46(ff1): 39(ptr) Variable Input - 47(ff2): 39(ptr) Variable Input - 48(ff3): 39(ptr) Variable Input + 34(a): 24(ptr) Variable Input + 35: TypePointer Input 6(bool) + 36(b): 35(ptr) Variable Input + 37: TypePointer Input 17(float) + 38(c): 37(ptr) Variable Input + 39: TypeVector 17(float) 2 + 40: TypePointer Input 39(fvec2) + 41(d): 40(ptr) Variable Input + 42(ff1): 35(ptr) Variable Input + 43(ff2): 35(ptr) Variable Input + 44(ff3): 35(ptr) Variable Input + 45: TypeInt 32 0 + 46(myS): TypeStruct 45(int) 45(int) 18(fvec4) 18(fvec4) + 47($Global): TypeStruct 46(myS) 17(float) 17(float) + 48: TypePointer Uniform 47($Global) + 49: 48(ptr) Variable Uniform 4(PixelShaderFunction): 2 Function None 3 5: Label 10(s3): 9(ptr) Variable Function diff --git a/Test/baseResults/hlsl.tx.bracket.frag.out b/Test/baseResults/hlsl.tx.bracket.frag.out index 0769cde4..d000257e 100644 --- a/Test/baseResults/hlsl.tx.bracket.frag.out +++ b/Test/baseResults/hlsl.tx.bracket.frag.out @@ -186,6 +186,7 @@ gl_FragCoord origin is upper left 0:72 0 (const int) 0:72 Branch: Return 0:? Linker Objects +0:? 'Color' (layout(location=0 ) out 4-component vector of float) 0:? 'g_sSamp' (layout(binding=0 ) uniform sampler) 0:? 'g_tTex1df4' (layout(binding=0 ) uniform texture1D) 0:? 'g_tTex1di4' (uniform itexture1D) @@ -202,8 +203,7 @@ gl_FragCoord origin is upper left 0:? 'g_tTex2df4a' (uniform texture2DArray) 0:? 'g_tTex2di4a' (uniform itexture2DArray) 0:? 'g_tTex2du4a' (uniform utexture2DArray) -0:? 'anon@0' (uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) -0:? 'Color' (layout(location=0 ) out 4-component vector of float) +0:? 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) Linked fragment stage: @@ -396,6 +396,7 @@ gl_FragCoord origin is upper left 0:72 0 (const int) 0:72 Branch: Return 0:? Linker Objects +0:? 'Color' (layout(location=0 ) out 4-component vector of float) 0:? 'g_sSamp' (layout(binding=0 ) uniform sampler) 0:? 'g_tTex1df4' (layout(binding=0 ) uniform texture1D) 0:? 'g_tTex1di4' (uniform itexture1D) @@ -412,8 +413,7 @@ gl_FragCoord origin is upper left 0:? 'g_tTex2df4a' (uniform texture2DArray) 0:? 'g_tTex2di4a' (uniform itexture2DArray) 0:? 'g_tTex2du4a' (uniform utexture2DArray) -0:? 'anon@0' (uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) -0:? 'Color' (layout(location=0 ) out 4-component vector of float) +0:? 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) // Module Version 10000 // Generated by (magic number): 80001 diff --git a/Test/baseResults/maxClipDistances.vert.out b/Test/baseResults/maxClipDistances.vert.out index 5d44a663..4ad4ef15 100644 --- a/Test/baseResults/maxClipDistances.vert.out +++ b/Test/baseResults/maxClipDistances.vert.out @@ -5,7 +5,6 @@ Shader version: 130 0:5 Function Parameters: 0:? Linker Objects 0:? 'gl_ClipDistance' (smooth out 8-element array of float ClipDistance) -0:? 'gl_ClipDistance' (smooth out 8-element array of float ClipDistance) 0:? 'gl_VertexID' (gl_VertexId int VertexId) @@ -18,6 +17,5 @@ Shader version: 130 0:5 Function Parameters: 0:? Linker Objects 0:? 'gl_ClipDistance' (smooth out 8-element array of float ClipDistance) -0:? 'gl_ClipDistance' (smooth out 8-element array of float ClipDistance) 0:? 'gl_VertexID' (gl_VertexId int VertexId) diff --git a/Test/baseResults/specExamples.frag.out b/Test/baseResults/specExamples.frag.out index 848839c6..711c529d 100644 --- a/Test/baseResults/specExamples.frag.out +++ b/Test/baseResults/specExamples.frag.out @@ -318,12 +318,9 @@ ERROR: node is still EOpNull! 0:? 'anon@1' (in block{in 4-component vector of float LightPos, in 3-component vector of float LightColor}) 0:? 'Materiala' (in block{in 4-component vector of float Color, in 2-component vector of float TexCoord}) 0:? 'gl_FragCoord' (gl_FragCoord 4-component vector of float FragCoord) -0:? 'gl_FragCoord' (gl_FragCoord 4-component vector of float FragCoord) 0:? 'factor' (layout(location=3 index=1 ) out 4-component vector of float) 0:? 'colors' (layout(location=2 ) out 3-element array of 4-component vector of float) 0:? 'gl_FragDepth' (gl_FragDepth float FragDepth) -0:? 'gl_FragDepth' (gl_FragDepth float FragDepth) -0:? 'anon@2' (in block{in float FogFragCoord gl_FogFragCoord, in implicitly-sized array of 4-component vector of float TexCoord gl_TexCoord, flat in 4-component vector of float Color gl_Color, in 4-component vector of float SecondaryColor gl_SecondaryColor}) 0:? 'anon@2' (in block{in float FogFragCoord gl_FogFragCoord, in implicitly-sized array of 4-component vector of float TexCoord gl_TexCoord, flat in 4-component vector of float Color gl_Color, in 4-component vector of float SecondaryColor gl_SecondaryColor}) @@ -607,11 +604,8 @@ ERROR: node is still EOpNull! 0:? 'anon@1' (in block{in 4-component vector of float LightPos, in 3-component vector of float LightColor}) 0:? 'Materiala' (in block{in 4-component vector of float Color, in 2-component vector of float TexCoord}) 0:? 'gl_FragCoord' (gl_FragCoord 4-component vector of float FragCoord) -0:? 'gl_FragCoord' (gl_FragCoord 4-component vector of float FragCoord) 0:? 'factor' (layout(location=3 index=1 ) out 4-component vector of float) 0:? 'colors' (layout(location=2 ) out 3-element array of 4-component vector of float) 0:? 'gl_FragDepth' (gl_FragDepth float FragDepth) -0:? 'gl_FragDepth' (gl_FragDepth float FragDepth) -0:? 'anon@2' (in block{in float FogFragCoord gl_FogFragCoord, in 1-element array of 4-component vector of float TexCoord gl_TexCoord, flat in 4-component vector of float Color gl_Color, in 4-component vector of float SecondaryColor gl_SecondaryColor}) 0:? 'anon@2' (in block{in float FogFragCoord gl_FogFragCoord, in 1-element array of 4-component vector of float TexCoord gl_TexCoord, flat in 4-component vector of float Color gl_Color, in 4-component vector of float SecondaryColor gl_SecondaryColor}) diff --git a/Test/baseResults/specExamples.vert.out b/Test/baseResults/specExamples.vert.out index ef9a1225..d7de758c 100644 --- a/Test/baseResults/specExamples.vert.out +++ b/Test/baseResults/specExamples.vert.out @@ -298,11 +298,10 @@ ERROR: node is still EOpNull! 0:? 'c2' (layout(binding=3 ) uniform atomic_uint) 0:? 'd2' (layout(binding=2 ) uniform atomic_uint) 0:? 'anon@5' (out block{invariant gl_Position 4-component vector of float Position gl_Position, gl_PointSize float PointSize gl_PointSize, out implicitly-sized array of float ClipDistance gl_ClipDistance, gl_ClipVertex 4-component vector of float ClipVertex gl_ClipVertex, flat out 4-component vector of float FrontColor gl_FrontColor, out 4-component vector of float BackColor gl_BackColor, out 4-component vector of float FrontSecondaryColor gl_FrontSecondaryColor, out 4-component vector of float BackSecondaryColor gl_BackSecondaryColor, out implicitly-sized array of 4-component vector of float TexCoord gl_TexCoord, ...}) -0:? 'anon@5' (out block{invariant gl_Position 4-component vector of float Position gl_Position, gl_PointSize float PointSize gl_PointSize, out implicitly-sized array of float ClipDistance gl_ClipDistance, gl_ClipVertex 4-component vector of float ClipVertex gl_ClipVertex, flat out 4-component vector of float FrontColor gl_FrontColor, out 4-component vector of float BackColor gl_BackColor, out 4-component vector of float FrontSecondaryColor gl_FrontSecondaryColor, out 4-component vector of float BackSecondaryColor gl_BackSecondaryColor, out implicitly-sized array of 4-component vector of float TexCoord gl_TexCoord, ...}) 0:? 'ColorInv' (smooth out 3-component vector of float) 0:? 'Color4' (invariant centroid smooth out 3-component vector of float) 0:? 'position' (noContraction smooth out 4-component vector of float) -0:? 'Color5' (smooth out 3-component vector of float) +0:? 'Color5' (noContraction smooth out 3-component vector of float) 0:? 'a' (in 4-component vector of float) 0:? 'b' (in 4-component vector of float) 0:? 'c' (in 4-component vector of float) @@ -582,11 +581,10 @@ ERROR: node is still EOpNull! 0:? 'c2' (layout(binding=3 ) uniform atomic_uint) 0:? 'd2' (layout(binding=2 ) uniform atomic_uint) 0:? 'anon@5' (out block{invariant gl_Position 4-component vector of float Position gl_Position, gl_PointSize float PointSize gl_PointSize, out 1-element array of float ClipDistance gl_ClipDistance, gl_ClipVertex 4-component vector of float ClipVertex gl_ClipVertex, flat out 4-component vector of float FrontColor gl_FrontColor, out 4-component vector of float BackColor gl_BackColor, out 4-component vector of float FrontSecondaryColor gl_FrontSecondaryColor, out 4-component vector of float BackSecondaryColor gl_BackSecondaryColor, out 1-element array of 4-component vector of float TexCoord gl_TexCoord, out float FogFragCoord gl_FogFragCoord}) -0:? 'anon@5' (out block{invariant gl_Position 4-component vector of float Position gl_Position, gl_PointSize float PointSize gl_PointSize, out 1-element array of float ClipDistance gl_ClipDistance, gl_ClipVertex 4-component vector of float ClipVertex gl_ClipVertex, flat out 4-component vector of float FrontColor gl_FrontColor, out 4-component vector of float BackColor gl_BackColor, out 4-component vector of float FrontSecondaryColor gl_FrontSecondaryColor, out 4-component vector of float BackSecondaryColor gl_BackSecondaryColor, out 1-element array of 4-component vector of float TexCoord gl_TexCoord, out float FogFragCoord gl_FogFragCoord}) 0:? 'ColorInv' (smooth out 3-component vector of float) 0:? 'Color4' (invariant centroid smooth out 3-component vector of float) 0:? 'position' (noContraction smooth out 4-component vector of float) -0:? 'Color5' (smooth out 3-component vector of float) +0:? 'Color5' (noContraction smooth out 3-component vector of float) 0:? 'a' (in 4-component vector of float) 0:? 'b' (in 4-component vector of float) 0:? 'c' (in 4-component vector of float) diff --git a/Test/baseResults/spv.noWorkgroup.comp.out b/Test/baseResults/spv.noWorkgroup.comp.out new file mode 100755 index 00000000..f12e6202 --- /dev/null +++ b/Test/baseResults/spv.noWorkgroup.comp.out @@ -0,0 +1,34 @@ +spv.noWorkgroup.comp +Warning, version 450 is not yet complete; most version-specific features are present, but some are missing. + + +Linked compute stage: + + +// Module Version 10000 +// Generated by (magic number): 80001 +// Id's are bound by 12 + + Capability Shader + 1: ExtInstImport "GLSL.std.450" + MemoryModel Logical GLSL450 + EntryPoint GLCompute 4 "main" + ExecutionMode 4 LocalSize 1 1 1 + Source GLSL 450 + Name 4 "main" + Decorate 7 SpecId 18 + Decorate 8 SpecId 10 + Decorate 9 SpecId 19 + Decorate 11 BuiltIn WorkgroupSize + 2: TypeVoid + 3: TypeFunction 2 + 6: TypeInt 32 0 + 7: 6(int) SpecConstant 1 + 8: 6(int) SpecConstant 1 + 9: 6(int) SpecConstant 1 + 10: TypeVector 6(int) 3 + 11: 10(ivec3) SpecConstantComposite 7 8 9 + 4(main): 2 Function None 3 + 5: Label + Return + FunctionEnd diff --git a/Test/baseResults/varyingArray.frag.out b/Test/baseResults/varyingArray.frag.out index c6cf6bae..1fd59b46 100644 --- a/Test/baseResults/varyingArray.frag.out +++ b/Test/baseResults/varyingArray.frag.out @@ -56,7 +56,6 @@ Shader version: 130 0:? 'color' (smooth in 4-component vector of float) 0:? 'alpha' (smooth in float) 0:? 'gl_TexCoord' (smooth in 6-element array of 4-component vector of float TexCoord) -0:? 'gl_TexCoord' (smooth in 6-element array of 4-component vector of float TexCoord) 0:? 'foo' (smooth in 3-element array of 4-component vector of float) @@ -115,6 +114,5 @@ Shader version: 130 0:? 'color' (smooth in 4-component vector of float) 0:? 'alpha' (smooth in float) 0:? 'gl_TexCoord' (smooth in 6-element array of 4-component vector of float TexCoord) -0:? 'gl_TexCoord' (smooth in 6-element array of 4-component vector of float TexCoord) 0:? 'foo' (smooth in 3-element array of 4-component vector of float) diff --git a/Test/baseResults/varyingArrayIndirect.frag.out b/Test/baseResults/varyingArrayIndirect.frag.out index 02a41f3f..73498129 100644 --- a/Test/baseResults/varyingArrayIndirect.frag.out +++ b/Test/baseResults/varyingArrayIndirect.frag.out @@ -57,7 +57,6 @@ Shader version: 130 0:? 'color' (smooth in 4-component vector of float) 0:? 'alpha' (smooth in float) 0:? 'gl_TexCoord' (smooth in 6-element array of 4-component vector of float TexCoord) -0:? 'gl_TexCoord' (smooth in 6-element array of 4-component vector of float TexCoord) 0:? 'userIn' (smooth in 2-element array of 4-component vector of float) 0:? 'a' (uniform int) 0:? 'b' (uniform int) @@ -119,7 +118,6 @@ Shader version: 130 0:? 'color' (smooth in 4-component vector of float) 0:? 'alpha' (smooth in float) 0:? 'gl_TexCoord' (smooth in 6-element array of 4-component vector of float TexCoord) -0:? 'gl_TexCoord' (smooth in 6-element array of 4-component vector of float TexCoord) 0:? 'userIn' (smooth in 2-element array of 4-component vector of float) 0:? 'a' (uniform int) 0:? 'b' (uniform int) diff --git a/Test/spv.noWorkgroup.comp b/Test/spv.noWorkgroup.comp new file mode 100644 index 00000000..0c77f278 --- /dev/null +++ b/Test/spv.noWorkgroup.comp @@ -0,0 +1,7 @@ +#version 450 + +layout(local_size_x_id = 18, local_size_y_id=10,local_size_z_id = 19) in; + +void main() +{ +} diff --git a/glslang/MachineIndependent/ParseContextBase.cpp b/glslang/MachineIndependent/ParseContextBase.cpp index 5949cd8e..dc8c61db 100644 --- a/glslang/MachineIndependent/ParseContextBase.cpp +++ b/glslang/MachineIndependent/ParseContextBase.cpp @@ -221,16 +221,37 @@ void TParseContextBase::rValueErrorCheck(const TSourceLoc& loc, const char* op, error(loc, "can't read from writeonly object: ", op, symNode->getName().c_str()); } +// Add a linkage symbol node for 'symbol', which +// must have its type fully edited, as this will snapshot the type. +// It is okay if symbol becomes invalid before finish(). +void TParseContextBase::trackLinkage(TSymbol& symbol) +{ + if (!parsingBuiltins) + intermediate.addSymbolLinkageNode(linkage, symbol); +} + +// Add 'symbol' to the list of deferred linkage symbols, which +// are later processed in finish(), at which point the symbol +// must still be valid. +// It is okay if the symbol's type will be subsequently edited. +void TParseContextBase::trackLinkageDeferred(TSymbol& symbol) +{ + if (!parsingBuiltins) + linkageSymbols.push_back(&symbol); +} + // Make a shared symbol have a non-shared version that can be edited by the current // compile, such that editing its type will not change the shared version and will -// effect all nodes sharing it. +// effect all nodes already sharing it (non-shallow type), +// or adopting its full type after being edited (shallow type). void TParseContextBase::makeEditable(TSymbol*& symbol) { // copyUp() does a deep copy of the type. symbol = symbolTable.copyUp(symbol); - // Save it in the AST for linker use. - intermediate.addSymbolLinkageNode(linkage, *symbol); + // Save it (deferred, so it can be edited first) in the AST for linker use. + if (symbol) + trackLinkageDeferred(*symbol); } // Return a writable version of the variable 'name'. @@ -242,7 +263,7 @@ TVariable* TParseContextBase::getEditableVariable(const char* name) { bool builtIn; TSymbol* symbol = symbolTable.find(name, &builtIn); - + assert(symbol != nullptr); if (symbol == nullptr) return nullptr; @@ -434,7 +455,7 @@ bool TParseContextBase::insertGlobalUniformBlock() // This is the first request; we need a normal symbol table insert inserted = symbolTable.insert(*globalUniformBlock); if (inserted) - intermediate.addSymbolLinkageNode(linkage, *globalUniformBlock); + trackLinkageDeferred(*globalUniformBlock); } else if (firstNewMember <= numMembers) { // This is a follow-on request; we need to amend the first insert inserted = symbolTable.amend(*globalUniformBlock, firstNewMember); @@ -448,4 +469,14 @@ bool TParseContextBase::insertGlobalUniformBlock() return inserted; } +void TParseContextBase::finish() +{ + if (!parsingBuiltins) { + // Transfer te linkage symbols to AST nodes + for (auto i = linkageSymbols.begin(); i != linkageSymbols.end(); ++i) + intermediate.addSymbolLinkageNode(linkage, **i); + intermediate.addSymbolLinkageNodes(linkage, getLanguage(), symbolTable); + } +} + } // end namespace glslang diff --git a/glslang/MachineIndependent/ParseHelper.cpp b/glslang/MachineIndependent/ParseHelper.cpp index 965cb07c..016f07a2 100644 --- a/glslang/MachineIndependent/ParseHelper.cpp +++ b/glslang/MachineIndependent/ParseHelper.cpp @@ -50,15 +50,12 @@ namespace glslang { TParseContext::TParseContext(TSymbolTable& symbolTable, TIntermediate& interm, bool parsingBuiltins, int version, EProfile profile, const SpvVersion& spvVersion, EShLanguage language, TInfoSink& infoSink, bool forwardCompatible, EShMessages messages) : - TParseContextBase(symbolTable, interm, version, profile, spvVersion, language, infoSink, forwardCompatible, messages), + TParseContextBase(symbolTable, interm, parsingBuiltins, version, profile, spvVersion, language, infoSink, forwardCompatible, messages), contextPragma(true, false), loopNestingLevel(0), structNestingLevel(0), controlFlowNestingLevel(0), statementNestingLevel(0), inMain(false), postMainReturn(false), currentFunctionType(nullptr), blockName(nullptr), - limits(resources.limits), parsingBuiltins(parsingBuiltins), + limits(resources.limits), atomicUintOffsets(nullptr), anyIndexLimits(false) { - // ensure we always have a linkage node, even if empty, to simplify tree topology algorithms - linkage = new TIntermAggregate; - // decide whether precision qualifiers should be ignored or respected if (profile == EEsProfile || spvVersion.vulkan > 0) { precisionManager.respectPrecisionQualifiers(); @@ -184,8 +181,8 @@ bool TParseContext::parseShaderStrings(TPpContext& ppContext, TInputScanner& inp currentScanner = &input; ppContext.setInput(input, versionWillBeError); yyparse(this); - if (! parsingBuiltins) - finalErrorCheck(); + + finish(); return numErrors == 0; } @@ -3093,7 +3090,7 @@ void TParseContext::arrayDimMerge(TType& type, const TArraySizes* sizes) // Do all the semantic checking for declaring or redeclaring an array, with and // without a size, and make the right changes to the symbol table. // -void TParseContext::declareArray(const TSourceLoc& loc, TString& identifier, const TType& type, TSymbol*& symbol, bool& newDeclaration) +void TParseContext::declareArray(const TSourceLoc& loc, TString& identifier, const TType& type, TSymbol*& symbol) { if (symbol == nullptr) { bool currentScope; @@ -3111,7 +3108,8 @@ void TParseContext::declareArray(const TSourceLoc& loc, TString& identifier, con // symbol = new TVariable(&identifier, type); symbolTable.insert(*symbol); - newDeclaration = true; + if (symbolTable.atGlobalLevel()) + trackLinkageDeferred(*symbol); if (! symbolTable.atBuiltInLevel()) { if (isIoResizeArray(type)) { @@ -3271,7 +3269,8 @@ void TParseContext::nonInitConstCheck(const TSourceLoc& loc, TString& identifier // // Returns a redeclared and type-modified variable if a redeclarated occurred. // -TSymbol* TParseContext::redeclareBuiltinVariable(const TSourceLoc& loc, const TString& identifier, const TQualifier& qualifier, const TShaderQualifiers& publicType, bool& newDeclaration) +TSymbol* TParseContext::redeclareBuiltinVariable(const TSourceLoc& loc, const TString& identifier, + const TQualifier& qualifier, const TShaderQualifiers& publicType) { if (! builtInName(identifier) || symbolTable.atBuiltInLevel() || ! symbolTable.atGlobalLevel()) return nullptr; @@ -3318,11 +3317,8 @@ TSymbol* TParseContext::redeclareBuiltinVariable(const TSourceLoc& loc, const TS // If it wasn't at a built-in level, then it's already been redeclared; // that is, this is a redeclaration of a redeclaration; reuse that initial // redeclaration. Otherwise, make the new one. - if (builtIn) { - // Copy the symbol up to make a writable version + if (builtIn) makeEditable(symbol); - newDeclaration = true; - } // Now, modify the type of the copy, as per the type of the current redeclaration. @@ -3540,7 +3536,7 @@ void TParseContext::redeclareBuiltinBlock(const TSourceLoc& loc, TTypeList& newT fixIoArraySize(loc, block->getWritableType()); // Save it in the AST for linker use. - intermediate.addSymbolLinkageNode(linkage, *block); + trackLinkageDeferred(*block); } void TParseContext::paramCheckFix(const TSourceLoc& loc, const TStorageQualifier& qualifier, TType& type) @@ -3794,8 +3790,13 @@ void TParseContext::limitCheck(const TSourceLoc& loc, int value, const char* lim // // Do any additional error checking, etc., once we know the parsing is done. // -void TParseContext::finalErrorCheck() +void TParseContext::finish() { + TParseContextBase::finish(); + + if (parsingBuiltins) + return; + // Check on array indexes for ES 2.0 (version 100) limitations. for (size_t i = 0; i < needsIndexLimitationChecking.size(); ++i) constantIndexExpressionCheck(needsIndexLimitationChecking[i]); @@ -4971,8 +4972,7 @@ TIntermNode* TParseContext::declareVariable(const TSourceLoc& loc, TString& iden error(loc, "can only apply depth layout to gl_FragDepth", "layout qualifier", ""); // Check for redeclaration of built-ins and/or attempting to declare a reserved name - bool newDeclaration = false; // true if a new entry gets added to the symbol table - TSymbol* symbol = redeclareBuiltinVariable(loc, identifier, type.getQualifier(), publicType.shaderQualifiers, newDeclaration); + TSymbol* symbol = redeclareBuiltinVariable(loc, identifier, type.getQualifier(), publicType.shaderQualifiers); if (symbol == nullptr) reservedErrorCheck(loc, identifier); @@ -4990,7 +4990,7 @@ TIntermNode* TParseContext::declareVariable(const TSourceLoc& loc, TString& iden arrayUnsizedCheck(loc, type.getQualifier(), &type.getArraySizes(), initializer != nullptr, false); if (! arrayQualifierError(loc, type.getQualifier()) && ! arrayError(loc, type)) - declareArray(loc, identifier, type, symbol, newDeclaration); + declareArray(loc, identifier, type, symbol); if (initializer) { profileRequires(loc, ENoProfile, 120, E_GL_3DL_array_objects, "initializer"); @@ -4999,7 +4999,7 @@ TIntermNode* TParseContext::declareVariable(const TSourceLoc& loc, TString& iden } else { // non-array case if (symbol == nullptr) - symbol = declareNonArray(loc, identifier, type, newDeclaration); + symbol = declareNonArray(loc, identifier, type); else if (type != symbol->getType()) error(loc, "cannot change the type of", "redeclaration", symbol->getName().c_str()); } @@ -5022,10 +5022,6 @@ TIntermNode* TParseContext::declareVariable(const TSourceLoc& loc, TString& iden layoutObjectCheck(loc, *symbol); fixOffset(loc, *symbol); - // see if it's a linker-level object to track - if (newDeclaration && symbolTable.atGlobalLevel()) - intermediate.addSymbolLinkageNode(linkage, *symbol); - return initNode; } @@ -5061,20 +5057,22 @@ TVariable* TParseContext::makeInternalVariable(const char* name, const TType& ty // // Return the successfully declared variable. // -TVariable* TParseContext::declareNonArray(const TSourceLoc& loc, TString& identifier, TType& type, bool& newDeclaration) +TVariable* TParseContext::declareNonArray(const TSourceLoc& loc, TString& identifier, TType& type) { // make a new variable TVariable* variable = new TVariable(&identifier, type); ioArrayCheck(loc, type, identifier); + // add variable to symbol table - if (! symbolTable.insert(*variable)) { - error(loc, "redefinition", variable->getName().c_str(), ""); - return nullptr; - } else { - newDeclaration = true; + if (symbolTable.insert(*variable)) { + if (symbolTable.atGlobalLevel()) + trackLinkageDeferred(*variable); return variable; } + + error(loc, "redefinition", variable->getName().c_str(), ""); + return nullptr; } // @@ -5731,7 +5729,7 @@ void TParseContext::declareBlock(const TSourceLoc& loc, TTypeList& typeList, con fixIoArraySize(loc, variable.getWritableType()); // Save it in the AST for linker use. - intermediate.addSymbolLinkageNode(linkage, variable); + trackLinkageDeferred(variable); } // Do all block-declaration checking regarding the combination of in/out/uniform/buffer diff --git a/glslang/MachineIndependent/ParseHelper.h b/glslang/MachineIndependent/ParseHelper.h index 0f60ff7f..165601d2 100644 --- a/glslang/MachineIndependent/ParseHelper.h +++ b/glslang/MachineIndependent/ParseHelper.h @@ -73,13 +73,16 @@ typedef std::set TIdSetType; // class TParseContextBase : public TParseVersions { public: - TParseContextBase(TSymbolTable& symbolTable, TIntermediate& interm, int version, + TParseContextBase(TSymbolTable& symbolTable, TIntermediate& interm, bool parsingBuiltins, int version, EProfile profile, const SpvVersion& spvVersion, EShLanguage language, TInfoSink& infoSink, bool forwardCompatible, EShMessages messages) : TParseVersions(interm, version, profile, spvVersion, language, infoSink, forwardCompatible, messages), symbolTable(symbolTable), - linkage(nullptr), scanContext(nullptr), ppContext(nullptr), - globalUniformBlock(nullptr) { } + parsingBuiltins(parsingBuiltins), scanContext(nullptr), ppContext(nullptr), + globalUniformBlock(nullptr) + { + linkage = new TIntermAggregate; + } virtual ~TParseContextBase() { } virtual void C_DECL error(const TSourceLoc&, const char* szReason, const char* szToken, @@ -94,7 +97,6 @@ public: virtual void setLimits(const TBuiltInResource&) = 0; EShLanguage getLanguage() const { return language; } - TIntermAggregate*& getLinkage() { return linkage; } void setScanContext(TScanContext* c) { scanContext = c; } TScanContext* getScanContext() const { return scanContext; } void setPpContext(TPpContext* c) { ppContext = c; } @@ -150,7 +152,8 @@ protected: TParseContextBase(TParseContextBase&); TParseContextBase& operator=(TParseContextBase&); - TIntermAggregate* linkage; // aggregate node of objects the linker may need, if not referenced by the rest of the AST + const bool parsingBuiltins; // true if parsing built-in symbols/functions + TVector linkageSymbols; // these need to be transferred to 'linkage', after all editing is done TScanContext* scanContext; TPpContext* ppContext; @@ -177,8 +180,14 @@ protected: virtual void outputMessage(const TSourceLoc&, const char* szReason, const char* szToken, const char* szExtraInfoFormat, TPrefixType prefix, va_list args); + virtual void trackLinkage(TSymbol& symbol); + virtual void trackLinkageDeferred(TSymbol& symbol); virtual void makeEditable(TSymbol*&); virtual TVariable* getEditableVariable(const char* name); + virtual void finish(); + +private: + TIntermAggregate* linkage; }; // @@ -314,7 +323,7 @@ public: void precisionQualifierCheck(const TSourceLoc&, TBasicType, TQualifier&); void parameterTypeCheck(const TSourceLoc&, TStorageQualifier qualifier, const TType& type); bool containsFieldWithBasicType(const TType& type ,TBasicType basicType); - TSymbol* redeclareBuiltinVariable(const TSourceLoc&, const TString&, const TQualifier&, const TShaderQualifiers&, bool& newDeclaration); + TSymbol* redeclareBuiltinVariable(const TSourceLoc&, const TString&, const TQualifier&, const TShaderQualifiers&); void redeclareBuiltinBlock(const TSourceLoc&, TTypeList& typeList, const TString& blockName, const TString* instanceName, TArraySizes* arraySizes); void paramCheckFix(const TSourceLoc&, const TStorageQualifier&, TType& type); void paramCheckFix(const TSourceLoc&, const TQualifier&, TType& type); @@ -368,11 +377,11 @@ protected: void nonInitConstCheck(const TSourceLoc&, TString& identifier, TType& type); void inheritGlobalDefaults(TQualifier& dst) const; TVariable* makeInternalVariable(const char* name, const TType&) const; - TVariable* declareNonArray(const TSourceLoc&, TString& identifier, TType&, bool& newDeclaration); - void declareArray(const TSourceLoc&, TString& identifier, const TType&, TSymbol*&, bool& newDeclaration); + TVariable* declareNonArray(const TSourceLoc&, TString& identifier, TType&); + void declareArray(const TSourceLoc&, TString& identifier, const TType&, TSymbol*&); TIntermNode* executeInitializer(const TSourceLoc&, TIntermTyped* initializer, TVariable* variable); TIntermTyped* convertInitializerList(const TSourceLoc&, const TType&, TIntermTyped* initializer); - void finalErrorCheck(); + void finish() override; public: // @@ -401,7 +410,6 @@ protected: TParseContext(TParseContext&); TParseContext& operator=(TParseContext&); - const bool parsingBuiltins; // true if parsing built-in symbols/functions static const int maxSamplerIndex = EsdNumDims * (EbtNumTypes * (2 * 2 * 2 * 2 * 2)); // see computeSamplerTypeIndex() TPrecisionQualifier defaultSamplerPrecision[maxSamplerIndex]; TPrecisionManager precisionManager; diff --git a/glslang/MachineIndependent/ShaderLang.cpp b/glslang/MachineIndependent/ShaderLang.cpp index eb4a17d4..4d78a70f 100644 --- a/glslang/MachineIndependent/ShaderLang.cpp +++ b/glslang/MachineIndependent/ShaderLang.cpp @@ -947,7 +947,6 @@ struct DoFullParse{ // Parse the full shader. if (! parseContext.parseShaderStrings(ppContext, fullInput, versionWillBeError)) success = false; - intermediate.addSymbolLinkageNodes(parseContext.getLinkage(), parseContext.getLanguage(), symbolTable); if (success && intermediate.getTreeRoot()) { if (optLevel == EShOptNoGeneration) diff --git a/glslang/MachineIndependent/localintermediate.h b/glslang/MachineIndependent/localintermediate.h index 1dd14403..13e1b147 100644 --- a/glslang/MachineIndependent/localintermediate.h +++ b/glslang/MachineIndependent/localintermediate.h @@ -260,7 +260,6 @@ public: // Linkage related void addSymbolLinkageNodes(TIntermAggregate*& linkage, EShLanguage, TSymbolTable&); - void addSymbolLinkageNode(TIntermAggregate*& linkage, TSymbolTable&, const TString&); void addSymbolLinkageNode(TIntermAggregate*& linkage, const TSymbol&); bool setInvocations(int i) @@ -396,6 +395,7 @@ protected: bool promote(TIntermOperator*); bool promoteUnary(TIntermUnary&); bool promoteBinary(TIntermBinary&); + void addSymbolLinkageNode(TIntermAggregate*& linkage, TSymbolTable&, const TString&); const EShLanguage language; // stage, known at construction time EShSource source; // source language, known a bit later diff --git a/gtests/Spv.FromFile.cpp b/gtests/Spv.FromFile.cpp index a55af518..9911e0e0 100644 --- a/gtests/Spv.FromFile.cpp +++ b/gtests/Spv.FromFile.cpp @@ -233,6 +233,7 @@ INSTANTIATE_TEST_CASE_P( "spv.offsets.frag", "spv.Operations.frag", "spv.intOps.vert", + "spv.noWorkgroup.comp", "spv.precision.frag", "spv.prepost.frag", "spv.qualifiers.vert", diff --git a/hlsl/hlslParseHelper.cpp b/hlsl/hlslParseHelper.cpp index cf97ec7e..abe027ec 100755 --- a/hlsl/hlslParseHelper.cpp +++ b/hlsl/hlslParseHelper.cpp @@ -48,10 +48,10 @@ namespace glslang { -HlslParseContext::HlslParseContext(TSymbolTable& symbolTable, TIntermediate& interm, bool /*parsingBuiltins*/, +HlslParseContext::HlslParseContext(TSymbolTable& symbolTable, TIntermediate& interm, bool parsingBuiltins, int version, EProfile profile, const SpvVersion& spvVersion, EShLanguage language, TInfoSink& infoSink, bool forwardCompatible, EShMessages messages) : - TParseContextBase(symbolTable, interm, version, profile, spvVersion, language, infoSink, forwardCompatible, messages), + TParseContextBase(symbolTable, interm, parsingBuiltins, version, profile, spvVersion, language, infoSink, forwardCompatible, messages), contextPragma(true, false), loopNestingLevel(0), annotationNestingLevel(0), structNestingLevel(0), controlFlowNestingLevel(0), postMainReturn(false), @@ -59,9 +59,6 @@ HlslParseContext::HlslParseContext(TSymbolTable& symbolTable, TIntermediate& int entryPointOutput(nullptr), nextInLocation(0), nextOutLocation(0) { - // ensure we always have a linkage node, even if empty, to simplify tree topology algorithms - linkage = new TIntermAggregate; - globalUniformDefaults.clear(); globalUniformDefaults.layoutMatrix = ElmRowMajor; globalUniformDefaults.layoutPacking = ElpStd140; @@ -128,6 +125,8 @@ bool HlslParseContext::parseShaderStrings(TPpContext& ppContext, TInputScanner& return false; } + finish(); + return numErrors == 0; } @@ -950,9 +949,9 @@ void HlslParseContext::flattenArray(const TSourceLoc& loc, const TVariable& vari ++binding; memberVariables.push_back(memberVariable); - intermediate.addSymbolLinkageNode(linkage, *memberVariable); + trackLinkageDeferred(*memberVariable); } - + flattenMap[variable.getUniqueId()] = memberVariables; } @@ -989,7 +988,7 @@ void HlslParseContext::assignLocations(TVariable& variable) nextOutLocation += intermediate.computeTypeLocationSize(variable.getType()); } } - intermediate.addSymbolLinkageNode(linkage, variable); + trackLinkage(variable); } }; @@ -3588,7 +3587,7 @@ void HlslParseContext::arrayDimMerge(TType& type, const TArraySizes* sizes) // Do all the semantic checking for declaring or redeclaring an array, with and // without a size, and make the right changes to the symbol table. // -void HlslParseContext::declareArray(const TSourceLoc& loc, TString& identifier, const TType& type, TSymbol*& symbol, bool& newDeclaration) +void HlslParseContext::declareArray(const TSourceLoc& loc, TString& identifier, const TType& type, TSymbol*& symbol, bool track) { if (! symbol) { bool currentScope; @@ -3605,7 +3604,8 @@ void HlslParseContext::declareArray(const TSourceLoc& loc, TString& identifier, // symbol = new TVariable(&identifier, type); symbolTable.insert(*symbol); - newDeclaration = true; + if (track && symbolTable.atGlobalLevel()) + trackLinkageDeferred(*symbol); return; } @@ -3628,7 +3628,6 @@ void HlslParseContext::declareArray(const TSourceLoc& loc, TString& identifier, // redeclareBuiltinVariable() should have already done the copyUp() TType& existingType = symbol->getWritableType(); - if (existingType.isExplicitlySizedArray()) { // be more lenient for input arrays to geometry shaders and tessellation control outputs, where the redeclaration is the same size return; @@ -3695,7 +3694,7 @@ void HlslParseContext::updateImplicitArraySize(const TSourceLoc& loc, TIntermNod // TSymbol* HlslParseContext::redeclareBuiltinVariable(const TSourceLoc& /*loc*/, const TString& identifier, const TQualifier& /*qualifier*/, - const TShaderQualifiers& /*publicType*/, bool& /*newDeclaration*/) + const TShaderQualifiers& /*publicType*/) { if (! builtInName(identifier) || symbolTable.atBuiltInLevel() || ! symbolTable.atGlobalLevel()) return nullptr; @@ -3820,7 +3819,7 @@ void HlslParseContext::redeclareBuiltinBlock(const TSourceLoc& loc, TTypeList& n symbolTable.insert(*block); // Save it in the AST for linker use. - intermediate.addSymbolLinkageNode(linkage, *block); + trackLinkageDeferred(*block); } void HlslParseContext::paramFix(TType& type) @@ -4413,8 +4412,7 @@ TIntermNode* HlslParseContext::declareVariable(const TSourceLoc& loc, TString& i return nullptr; // Check for redeclaration of built-ins and/or attempting to declare a reserved name - bool newDeclaration = false; // true if a new entry gets added to the symbol table - TSymbol* symbol = nullptr; // = redeclareBuiltinVariable(loc, identifier, type.getQualifier(), parseType.shaderQualifiers, newDeclaration); + TSymbol* symbol = nullptr; inheritGlobalDefaults(type.getQualifier()); @@ -4423,14 +4421,14 @@ TIntermNode* HlslParseContext::declareVariable(const TSourceLoc& loc, TString& i // Declare the variable if (type.isArray()) { // array case - declareArray(loc, identifier, type, symbol, newDeclaration); flattenVar = shouldFlatten(type); + declareArray(loc, identifier, type, symbol, !flattenVar); if (flattenVar) flatten(loc, *symbol->getAsVariable()); } else { // non-array case if (! symbol) - symbol = declareNonArray(loc, identifier, type, newDeclaration); + symbol = declareNonArray(loc, identifier, type); else if (type != symbol->getType()) error(loc, "cannot change the type of", "redeclaration", symbol->getName().c_str()); } @@ -4452,13 +4450,6 @@ TIntermNode* HlslParseContext::declareVariable(const TSourceLoc& loc, TString& i initNode = executeInitializer(loc, initializer, variable); } - // see if it's a linker-level object to track. if it's flattened above, - // that process added linkage objects for the flattened symbols, we don't - // add the aggregate here. - if (!flattenVar) - if (newDeclaration && symbolTable.atGlobalLevel()) - intermediate.addSymbolLinkageNode(linkage, *symbol); - return initNode; } @@ -4494,19 +4485,20 @@ TVariable* HlslParseContext::makeInternalVariable(const char* name, const TType& // // Return the successfully declared variable. // -TVariable* HlslParseContext::declareNonArray(const TSourceLoc& loc, TString& identifier, TType& type, bool& newDeclaration) +TVariable* HlslParseContext::declareNonArray(const TSourceLoc& loc, TString& identifier, TType& type) { // make a new variable TVariable* variable = new TVariable(&identifier, type); // add variable to symbol table - if (! symbolTable.insert(*variable)) { - error(loc, "redefinition", variable->getName().c_str(), ""); - return nullptr; - } else { - newDeclaration = true; + if (symbolTable.insert(*variable)) { + if (symbolTable.atGlobalLevel()) + trackLinkageDeferred(*variable); return variable; } + + error(loc, "redefinition", variable->getName().c_str(), ""); + return nullptr; } // @@ -5019,7 +5011,7 @@ void HlslParseContext::declareBlock(const TSourceLoc& loc, TType& type, const TS } // Save it in the AST for linker use. - intermediate.addSymbolLinkageNode(linkage, variable); + trackLinkageDeferred(variable); } void HlslParseContext::finalizeGlobalUniformBlockLayout(TVariable& block) diff --git a/hlsl/hlslParseHelper.h b/hlsl/hlslParseHelper.h index 8410c344..9a7285f9 100755 --- a/hlsl/hlslParseHelper.h +++ b/hlsl/hlslParseHelper.h @@ -114,7 +114,7 @@ public: bool structQualifierErrorCheck(const TSourceLoc&, const TPublicType& pType); void mergeQualifiers(TQualifier& dst, const TQualifier& src); int computeSamplerTypeIndex(TSampler&); - TSymbol* redeclareBuiltinVariable(const TSourceLoc&, const TString&, const TQualifier&, const TShaderQualifiers&, bool& newDeclaration); + TSymbol* redeclareBuiltinVariable(const TSourceLoc&, const TString&, const TQualifier&, const TShaderQualifiers&); void redeclareBuiltinBlock(const TSourceLoc&, TTypeList& typeList, const TString& blockName, const TString* instanceName, TArraySizes* arraySizes); void paramFix(TType& type); void specializationCheck(const TSourceLoc&, const TType&, const char* op); @@ -163,8 +163,8 @@ public: protected: void inheritGlobalDefaults(TQualifier& dst) const; TVariable* makeInternalVariable(const char* name, const TType&) const; - TVariable* declareNonArray(const TSourceLoc&, TString& identifier, TType&, bool& newDeclaration); - void declareArray(const TSourceLoc&, TString& identifier, const TType&, TSymbol*&, bool& newDeclaration); + TVariable* declareNonArray(const TSourceLoc&, TString& identifier, TType&); + void declareArray(const TSourceLoc&, TString& identifier, const TType&, TSymbol*&, bool track); TIntermNode* executeInitializer(const TSourceLoc&, TIntermTyped* initializer, TVariable* variable); TIntermTyped* convertInitializerList(const TSourceLoc&, const TType&, TIntermTyped* initializer); TOperator mapAtomicOp(const TSourceLoc& loc, TOperator op, bool isImage); -- cgit v1.2.3 From 57cb69a3f13705c8cf4b84bd4551a30f165bddce Mon Sep 17 00:00:00 2001 From: Jamie Madill Date: Wed, 9 Nov 2016 13:49:24 -0500 Subject: Fix unrefenced variable warning with AMD_EXTENSIONS disabled. --- SPIRV/GlslangToSpv.cpp | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/SPIRV/GlslangToSpv.cpp b/SPIRV/GlslangToSpv.cpp index 3e0ad4f1..ebf8c5d8 100755 --- a/SPIRV/GlslangToSpv.cpp +++ b/SPIRV/GlslangToSpv.cpp @@ -4118,11 +4118,9 @@ spv::Id TGlslangToSpvTraverser::createAtomicOperation(glslang::TOperator op, spv // Create group invocation operations. spv::Id TGlslangToSpvTraverser::createInvocationsOperation(glslang::TOperator op, spv::Id typeId, std::vector& operands, glslang::TBasicType typeProxy) { - bool isUnsigned = typeProxy == glslang::EbtUint || typeProxy == glslang::EbtUint64; #ifdef AMD_EXTENSIONS + bool isUnsigned = typeProxy == glslang::EbtUint || typeProxy == glslang::EbtUint64; bool isFloat = typeProxy == glslang::EbtFloat || typeProxy == glslang::EbtDouble || typeProxy == glslang::EbtFloat16; -#else - bool isFloat = typeProxy == glslang::EbtFloat || typeProxy == glslang::EbtDouble; #endif spv::Op opCode = spv::OpNop; -- cgit v1.2.3 From a22f7dbb713dd4aad223a816563adf362491181f Mon Sep 17 00:00:00 2001 From: steve-lunarg Date: Fri, 11 Nov 2016 08:17:44 -0700 Subject: HLSL: Allow expressions in attributes For example: [numthreads(2+2, 2*3, (1+FOO)*BAR)] This will result in a thread count (4, 6, 8). --- .../baseResults/hlsl.attribute.expression.comp.out | 138 +++++++++++++++++++++ Test/hlsl.attribute.expression.comp | 15 +++ gtests/Hlsl.FromFile.cpp | 1 + hlsl/hlslGrammar.cpp | 24 ++-- 4 files changed, 167 insertions(+), 11 deletions(-) create mode 100644 Test/baseResults/hlsl.attribute.expression.comp.out create mode 100644 Test/hlsl.attribute.expression.comp diff --git a/Test/baseResults/hlsl.attribute.expression.comp.out b/Test/baseResults/hlsl.attribute.expression.comp.out new file mode 100644 index 00000000..2316cd9b --- /dev/null +++ b/Test/baseResults/hlsl.attribute.expression.comp.out @@ -0,0 +1,138 @@ +hlsl.attribute.expression.comp +Shader version: 450 +local_size = (4, 6, 8) +0:? Sequence +0:9 Function Definition: main( (temp 4-component vector of float) +0:9 Function Parameters: +0:? Sequence +0:11 Sequence +0:11 move second child to first child (temp int) +0:11 'x' (temp int) +0:11 Constant: +0:11 0 (const int) +0:11 Loop with condition tested first +0:11 Loop Condition +0:11 Compare Less Than (temp bool) +0:11 'x' (temp int) +0:11 bound: direct index for structure (layout(offset=0 ) uniform int) +0:11 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int bound}) +0:11 Constant: +0:11 0 (const uint) +0:11 No loop body +0:11 Loop Terminal Expression +0:11 Pre-Increment (temp int) +0:11 'x' (temp int) +0:14 Sequence +0:14 move second child to first child (temp 4-component vector of float) +0:? '@entryPointOutput' (layout(location=0 ) out 4-component vector of float) +0:? Constant: +0:? 0.000000 +0:? 0.000000 +0:? 0.000000 +0:? 0.000000 +0:14 Branch: Return +0:? Linker Objects +0:? '@entryPointOutput' (layout(location=0 ) out 4-component vector of float) +0:? 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int bound}) + + +Linked compute stage: + + +Shader version: 450 +local_size = (4, 6, 8) +0:? Sequence +0:9 Function Definition: main( (temp 4-component vector of float) +0:9 Function Parameters: +0:? Sequence +0:11 Sequence +0:11 move second child to first child (temp int) +0:11 'x' (temp int) +0:11 Constant: +0:11 0 (const int) +0:11 Loop with condition tested first +0:11 Loop Condition +0:11 Compare Less Than (temp bool) +0:11 'x' (temp int) +0:11 bound: direct index for structure (layout(offset=0 ) uniform int) +0:11 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int bound}) +0:11 Constant: +0:11 0 (const uint) +0:11 No loop body +0:11 Loop Terminal Expression +0:11 Pre-Increment (temp int) +0:11 'x' (temp int) +0:14 Sequence +0:14 move second child to first child (temp 4-component vector of float) +0:? '@entryPointOutput' (layout(location=0 ) out 4-component vector of float) +0:? Constant: +0:? 0.000000 +0:? 0.000000 +0:? 0.000000 +0:? 0.000000 +0:14 Branch: Return +0:? Linker Objects +0:? '@entryPointOutput' (layout(location=0 ) out 4-component vector of float) +0:? 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int bound}) + +// Module Version 10000 +// Generated by (magic number): 80001 +// Id's are bound by 34 + + Capability Shader + 1: ExtInstImport "GLSL.std.450" + MemoryModel Logical GLSL450 + EntryPoint GLCompute 4 "main" 30 + ExecutionMode 4 LocalSize 4 6 8 + Name 4 "main" + Name 8 "x" + Name 16 "$Global" + MemberName 16($Global) 0 "bound" + Name 18 "" + Name 30 "@entryPointOutput" + MemberDecorate 16($Global) 0 Offset 0 + Decorate 16($Global) Block + Decorate 18 DescriptorSet 0 + Decorate 30(@entryPointOutput) Location 0 + 2: TypeVoid + 3: TypeFunction 2 + 6: TypeInt 32 1 + 7: TypePointer Function 6(int) + 9: 6(int) Constant 0 + 16($Global): TypeStruct 6(int) + 17: TypePointer Uniform 16($Global) + 18: 17(ptr) Variable Uniform + 19: TypePointer Uniform 6(int) + 22: TypeBool + 25: 6(int) Constant 1 + 27: TypeFloat 32 + 28: TypeVector 27(float) 4 + 29: TypePointer Output 28(fvec4) +30(@entryPointOutput): 29(ptr) Variable Output + 31: 27(float) Constant 0 + 32: 28(fvec4) ConstantComposite 31 31 31 31 + 4(main): 2 Function None 3 + 5: Label + 8(x): 7(ptr) Variable Function + Store 8(x) 9 + Branch 10 + 10: Label + LoopMerge 12 13 None + Branch 14 + 14: Label + 15: 6(int) Load 8(x) + 20: 19(ptr) AccessChain 18 9 + 21: 6(int) Load 20 + 23: 22(bool) SLessThan 15 21 + BranchConditional 23 11 12 + 11: Label + Branch 13 + 13: Label + 24: 6(int) Load 8(x) + 26: 6(int) IAdd 24 25 + Store 8(x) 26 + Branch 10 + 12: Label + Store 30(@entryPointOutput) 32 + Return + FunctionEnd diff --git a/Test/hlsl.attribute.expression.comp b/Test/hlsl.attribute.expression.comp new file mode 100644 index 00000000..535fbad4 --- /dev/null +++ b/Test/hlsl.attribute.expression.comp @@ -0,0 +1,15 @@ + +uniform int bound; + +#define FOO 3 +#define BAR 2 + +[numthreads(2+2, 2*3, (1+FOO)*BAR)] +float4 main() : SV_TARGET +{ + [unroll(5*2 + 1) ] + for (int x=0; xgetSequence().push_back(node); + while (acceptAssignmentExpression(node)) { + expectingExpression = false; + expressions->getSequence().push_back(node); if (acceptTokenClass(EHTokComma)) - expectingLiteral = true; + expectingExpression = true; } - // 'literals' is an aggregate with the literals in it + // 'expressions' is an aggregate with the expressions in it if (! acceptTokenClass(EHTokRightParen)) expected(")"); - if (expectingLiteral || literals->getSequence().empty()) - expected("literal"); + + // Error for partial or missing expression + if (expectingExpression || expressions->getSequence().empty()) + expected("expression"); } // RIGHT_BRACKET @@ -2484,7 +2486,7 @@ void HlslGrammar::acceptAttributes(TAttributeMap& attributes) // Add any values we found into the attribute map. This accepts // (and ignores) values not mapping to a known TAttributeType; - attributes.setAttribute(idToken.string, literals); + attributes.setAttribute(idToken.string, expressions); } while (true); } -- cgit v1.2.3 From d9cb832f9cce8440336758169c6e7d90ff2a54db Mon Sep 17 00:00:00 2001 From: steve-lunarg Date: Fri, 11 Nov 2016 15:37:10 -0700 Subject: HLSL: allow promotion from 1-vector types to scalars, e.g, float<-float1 Previously, an error was thrown when assigning a float1 to a scalar float, or similar for other basic types. This allows that. Also, this allows calling functions accepting scalars with float1 params, so for example sin(float1) will work. This is a minor change in HlslParseContext::findFunction(). --- Test/baseResults/hlsl.promote.vec1.frag.out | 118 ++++++++++++++++++++++++++++ Test/hlsl.promote.vec1.frag | 16 ++++ glslang/Include/Types.h | 1 + glslang/MachineIndependent/Intermediate.cpp | 2 + gtests/Hlsl.FromFile.cpp | 1 + hlsl/hlslParseHelper.cpp | 4 +- 6 files changed, 140 insertions(+), 2 deletions(-) create mode 100644 Test/baseResults/hlsl.promote.vec1.frag.out create mode 100644 Test/hlsl.promote.vec1.frag diff --git a/Test/baseResults/hlsl.promote.vec1.frag.out b/Test/baseResults/hlsl.promote.vec1.frag.out new file mode 100644 index 00000000..3b684504 --- /dev/null +++ b/Test/baseResults/hlsl.promote.vec1.frag.out @@ -0,0 +1,118 @@ +hlsl.promote.vec1.frag +Shader version: 450 +gl_FragCoord origin is upper left +0:? Sequence +0:3 Function Definition: main( (temp 4-component vector of float) +0:3 Function Parameters: +0:? Sequence +0:7 move second child to first child (temp float) +0:7 'f1a' (temp float) +0:7 Construct float (temp float) +0:7 'f1b' (temp 1-component vector of float) +0:8 move second child to first child (temp 1-component vector of float) +0:8 'f1b' (temp 1-component vector of float) +0:8 Construct float (temp 1-component vector of float) +0:8 'f1a' (temp float) +0:11 step (global 3-component vector of float) +0:11 Constant: +0:11 0.000000 +0:11 0.000000 +0:11 0.000000 +0:11 'f3' (temp 3-component vector of float) +0:13 sine (global float) +0:13 Construct float (in float) +0:13 'f1b' (temp 1-component vector of float) +0:15 Sequence +0:15 move second child to first child (temp 4-component vector of float) +0:? '@entryPointOutput' (layout(location=0 ) out 4-component vector of float) +0:? Constant: +0:? 0.000000 +0:? 0.000000 +0:? 0.000000 +0:? 0.000000 +0:15 Branch: Return +0:? Linker Objects +0:? '@entryPointOutput' (layout(location=0 ) out 4-component vector of float) + + +Linked fragment stage: + + +Shader version: 450 +gl_FragCoord origin is upper left +0:? Sequence +0:3 Function Definition: main( (temp 4-component vector of float) +0:3 Function Parameters: +0:? Sequence +0:7 move second child to first child (temp float) +0:7 'f1a' (temp float) +0:7 Construct float (temp float) +0:7 'f1b' (temp 1-component vector of float) +0:8 move second child to first child (temp 1-component vector of float) +0:8 'f1b' (temp 1-component vector of float) +0:8 Construct float (temp 1-component vector of float) +0:8 'f1a' (temp float) +0:11 step (global 3-component vector of float) +0:11 Constant: +0:11 0.000000 +0:11 0.000000 +0:11 0.000000 +0:11 'f3' (temp 3-component vector of float) +0:13 sine (global float) +0:13 Construct float (in float) +0:13 'f1b' (temp 1-component vector of float) +0:15 Sequence +0:15 move second child to first child (temp 4-component vector of float) +0:? '@entryPointOutput' (layout(location=0 ) out 4-component vector of float) +0:? Constant: +0:? 0.000000 +0:? 0.000000 +0:? 0.000000 +0:? 0.000000 +0:15 Branch: Return +0:? Linker Objects +0:? '@entryPointOutput' (layout(location=0 ) out 4-component vector of float) + +// Module Version 10000 +// Generated by (magic number): 80001 +// Id's are bound by 26 + + Capability Shader + 1: ExtInstImport "GLSL.std.450" + MemoryModel Logical GLSL450 + EntryPoint Fragment 4 "main" 23 + ExecutionMode 4 OriginUpperLeft + Name 4 "main" + Name 8 "f1a" + Name 9 "f1b" + Name 16 "f3" + Name 23 "@entryPointOutput" + Decorate 23(@entryPointOutput) Location 0 + 2: TypeVoid + 3: TypeFunction 2 + 6: TypeFloat 32 + 7: TypePointer Function 6(float) + 12: TypeVector 6(float) 3 + 13: 6(float) Constant 0 + 14: 12(fvec3) ConstantComposite 13 13 13 + 15: TypePointer Function 12(fvec3) + 21: TypeVector 6(float) 4 + 22: TypePointer Output 21(fvec4) +23(@entryPointOutput): 22(ptr) Variable Output + 24: 21(fvec4) ConstantComposite 13 13 13 13 + 4(main): 2 Function None 3 + 5: Label + 8(f1a): 7(ptr) Variable Function + 9(f1b): 7(ptr) Variable Function + 16(f3): 15(ptr) Variable Function + 10: 6(float) Load 9(f1b) + Store 8(f1a) 10 + 11: 6(float) Load 8(f1a) + Store 9(f1b) 11 + 17: 12(fvec3) Load 16(f3) + 18: 12(fvec3) ExtInst 1(GLSL.std.450) 48(Step) 14 17 + 19: 6(float) Load 9(f1b) + 20: 6(float) ExtInst 1(GLSL.std.450) 13(Sin) 19 + Store 23(@entryPointOutput) 24 + Return + FunctionEnd diff --git a/Test/hlsl.promote.vec1.frag b/Test/hlsl.promote.vec1.frag new file mode 100644 index 00000000..a674ccba --- /dev/null +++ b/Test/hlsl.promote.vec1.frag @@ -0,0 +1,16 @@ + +float4 main() : SV_Target +{ + float f1a; + float1 f1b; + + f1a = f1b; // convert float1 to float + f1b = f1a; // convert float to float1 + + float3 f3; + step(0.0, f3); + + sin(f1b); // test 1-vectors in intrinsics + + return float4(0,0,0,0); +} diff --git a/glslang/Include/Types.h b/glslang/Include/Types.h index 6c8cb825..8745c7a9 100644 --- a/glslang/Include/Types.h +++ b/glslang/Include/Types.h @@ -1271,6 +1271,7 @@ public: virtual TArraySizes& getArraySizes() { assert(arraySizes != nullptr); return *arraySizes; } virtual bool isScalar() const { return ! isVector() && ! isMatrix() && ! isStruct() && ! isArray(); } + virtual bool isScalarOrVec1() const { return isScalar() || vector1; } virtual bool isVector() const { return vectorSize > 1 || vector1; } virtual bool isMatrix() const { return matrixCols ? true : false; } virtual bool isArray() const { return arraySizes != nullptr; } diff --git a/glslang/MachineIndependent/Intermediate.cpp b/glslang/MachineIndependent/Intermediate.cpp index ee102fa0..9c2590fd 100644 --- a/glslang/MachineIndependent/Intermediate.cpp +++ b/glslang/MachineIndependent/Intermediate.cpp @@ -814,8 +814,10 @@ TIntermTyped* TIntermediate::addShapeConversion(TOperator op, const TType& type, TOperator constructorOp = mapTypeToConstructorOp(type); // scalar -> smeared -> vector, or + // vec1 -> scalar, or // bigger vector -> smaller vector or scalar if ((type.isVector() && node->getType().isScalar()) || + (node->getType().isVector() && node->getVectorSize() == 1 && type.isScalar()) || (node->getVectorSize() > type.getVectorSize() && type.isVector())) return setAggregateOperator(makeAggregate(node), constructorOp, type, node->getLoc()); diff --git a/gtests/Hlsl.FromFile.cpp b/gtests/Hlsl.FromFile.cpp index 17e2133c..edd7e4d3 100644 --- a/gtests/Hlsl.FromFile.cpp +++ b/gtests/Hlsl.FromFile.cpp @@ -157,6 +157,7 @@ INSTANTIATE_TEST_CASE_P( {"hlsl.pp.line.frag", "main"}, {"hlsl.precise.frag", "main"}, {"hlsl.promote.binary.frag", "main"}, + {"hlsl.promote.vec1.frag", "main"}, {"hlsl.promotions.frag", "main"}, {"hlsl.rw.atomics.frag", "main"}, {"hlsl.rw.bracket.frag", "main"}, diff --git a/hlsl/hlslParseHelper.cpp b/hlsl/hlslParseHelper.cpp index abe027ec..31fb0d41 100755 --- a/hlsl/hlslParseHelper.cpp +++ b/hlsl/hlslParseHelper.cpp @@ -4308,8 +4308,8 @@ const TFunction* HlslParseContext::findFunction(const TSourceLoc& loc, const TFu return false; // shapes have to be convertible - if ((from.isScalar() && to.isScalar()) || - (from.isScalar() && to.isVector()) || + if ((from.isScalarOrVec1() && to.isScalarOrVec1()) || + (from.isScalarOrVec1() && to.isVector()) || (from.isVector() && to.isVector() && from.getVectorSize() >= to.getVectorSize())) return true; -- cgit v1.2.3 From c3f1cdfa57715cf834b51d5081f4b06969ccae3a Mon Sep 17 00:00:00 2001 From: "chrgau01@arm.com" Date: Mon, 14 Nov 2016 10:10:05 +0100 Subject: GLSL: The execution scope for barriers should be Workgroup. --- SPIRV/GlslangToSpv.cpp | 2 +- Test/baseResults/spv.310.comp.out | 209 +++++++++++++++++++------------------- Test/baseResults/spv.400.tesc.out | 192 +++++++++++++++++----------------- 3 files changed, 202 insertions(+), 201 deletions(-) mode change 100755 => 100644 Test/baseResults/spv.310.comp.out mode change 100755 => 100644 Test/baseResults/spv.400.tesc.out diff --git a/SPIRV/GlslangToSpv.cpp b/SPIRV/GlslangToSpv.cpp index ebf8c5d8..37aac177 100755 --- a/SPIRV/GlslangToSpv.cpp +++ b/SPIRV/GlslangToSpv.cpp @@ -4597,7 +4597,7 @@ spv::Id TGlslangToSpvTraverser::createNoArgOperation(glslang::TOperator op, spv: builder.createNoResultOp(spv::OpEndPrimitive); return 0; case glslang::EOpBarrier: - builder.createControlBarrier(spv::ScopeDevice, spv::ScopeDevice, spv::MemorySemanticsMaskNone); + builder.createControlBarrier(spv::ScopeWorkgroup, spv::ScopeDevice, spv::MemorySemanticsMaskNone); return 0; case glslang::EOpMemoryBarrier: builder.createMemoryBarrier(spv::ScopeDevice, spv::MemorySemanticsAllMemory); diff --git a/Test/baseResults/spv.310.comp.out b/Test/baseResults/spv.310.comp.out old mode 100755 new mode 100644 index 3eafc2b5..bd1f3466 --- a/Test/baseResults/spv.310.comp.out +++ b/Test/baseResults/spv.310.comp.out @@ -7,121 +7,122 @@ Linked compute stage: // Module Version 10000 // Generated by (magic number): 80001 -// Id's are bound by 66 +// Id's are bound by 67 Capability Shader 1: ExtInstImport "GLSL.std.450" MemoryModel Logical GLSL450 - EntryPoint GLCompute 4 "main" 52 + EntryPoint GLCompute 4 "main" 53 ExecutionMode 4 LocalSize 16 32 4 Source ESSL 310 Name 4 "main" - Name 12 "outb" - MemberName 12(outb) 0 "f" - MemberName 12(outb) 1 "g" - MemberName 12(outb) 2 "h" - MemberName 12(outb) 3 "uns" - Name 14 "outbname" - Name 18 "s" - Name 23 "outbna" - MemberName 23(outbna) 0 "k" - MemberName 23(outbna) 1 "na" - Name 25 "outbnamena" - Name 41 "i" - Name 47 "outs" - MemberName 47(outs) 0 "s" - MemberName 47(outs) 1 "va" - Name 49 "outnames" - Name 52 "gl_LocalInvocationID" - Decorate 11 ArrayStride 16 - MemberDecorate 12(outb) 0 Offset 0 - MemberDecorate 12(outb) 1 Offset 4 - MemberDecorate 12(outb) 2 Offset 8 - MemberDecorate 12(outb) 3 Offset 16 - Decorate 12(outb) BufferBlock - Decorate 14(outbname) DescriptorSet 0 - MemberDecorate 23(outbna) 0 Offset 0 - MemberDecorate 23(outbna) 1 Offset 16 - Decorate 23(outbna) BufferBlock - Decorate 25(outbnamena) DescriptorSet 0 - Decorate 46 ArrayStride 16 - MemberDecorate 47(outs) 0 Offset 0 - MemberDecorate 47(outs) 1 Offset 16 - Decorate 47(outs) BufferBlock - Decorate 49(outnames) DescriptorSet 0 - Decorate 52(gl_LocalInvocationID) BuiltIn LocalInvocationId - Decorate 65 BuiltIn WorkgroupSize + Name 13 "outb" + MemberName 13(outb) 0 "f" + MemberName 13(outb) 1 "g" + MemberName 13(outb) 2 "h" + MemberName 13(outb) 3 "uns" + Name 15 "outbname" + Name 19 "s" + Name 24 "outbna" + MemberName 24(outbna) 0 "k" + MemberName 24(outbna) 1 "na" + Name 26 "outbnamena" + Name 42 "i" + Name 48 "outs" + MemberName 48(outs) 0 "s" + MemberName 48(outs) 1 "va" + Name 50 "outnames" + Name 53 "gl_LocalInvocationID" + Decorate 12 ArrayStride 16 + MemberDecorate 13(outb) 0 Offset 0 + MemberDecorate 13(outb) 1 Offset 4 + MemberDecorate 13(outb) 2 Offset 8 + MemberDecorate 13(outb) 3 Offset 16 + Decorate 13(outb) BufferBlock + Decorate 15(outbname) DescriptorSet 0 + MemberDecorate 24(outbna) 0 Offset 0 + MemberDecorate 24(outbna) 1 Offset 16 + Decorate 24(outbna) BufferBlock + Decorate 26(outbnamena) DescriptorSet 0 + Decorate 47 ArrayStride 16 + MemberDecorate 48(outs) 0 Offset 0 + MemberDecorate 48(outs) 1 Offset 16 + Decorate 48(outs) BufferBlock + Decorate 50(outnames) DescriptorSet 0 + Decorate 53(gl_LocalInvocationID) BuiltIn LocalInvocationId + Decorate 66 BuiltIn WorkgroupSize 2: TypeVoid 3: TypeFunction 2 6: TypeInt 32 0 - 7: 6(int) Constant 1 - 8: 6(int) Constant 0 - 9: TypeFloat 32 - 10: TypeVector 9(float) 3 - 11: TypeRuntimeArray 10(fvec3) - 12(outb): TypeStruct 9(float) 9(float) 9(float) 11 - 13: TypePointer Uniform 12(outb) - 14(outbname): 13(ptr) Variable Uniform - 15: TypeInt 32 1 - 16: 15(int) Constant 0 - 17: TypePointer Workgroup 9(float) - 18(s): 17(ptr) Variable Workgroup - 20: TypePointer Uniform 9(float) - 22: TypeVector 9(float) 4 - 23(outbna): TypeStruct 15(int) 22(fvec4) - 24: TypePointer Uniform 23(outbna) - 25(outbnamena): 24(ptr) Variable Uniform - 26: 15(int) Constant 1 - 29: TypePointer Uniform 22(fvec4) - 31: 15(int) Constant 3 - 32: 15(int) Constant 18 - 35: 15(int) Constant 17 - 36: 9(float) Constant 1077936128 - 37: 10(fvec3) ConstantComposite 36 36 36 - 38: TypePointer Uniform 10(fvec3) - 40: TypePointer Workgroup 15(int) - 41(i): 40(ptr) Variable Workgroup - 46: TypeRuntimeArray 22(fvec4) - 47(outs): TypeStruct 15(int) 46 - 48: TypePointer Uniform 47(outs) - 49(outnames): 48(ptr) Variable Uniform - 50: TypeVector 6(int) 3 - 51: TypePointer Input 50(ivec3) -52(gl_LocalInvocationID): 51(ptr) Variable Input - 53: TypePointer Input 6(int) - 60: TypePointer Uniform 15(int) - 62: 6(int) Constant 16 - 63: 6(int) Constant 32 - 64: 6(int) Constant 4 - 65: 50(ivec3) ConstantComposite 62 63 64 + 7: 6(int) Constant 2 + 8: 6(int) Constant 1 + 9: 6(int) Constant 0 + 10: TypeFloat 32 + 11: TypeVector 10(float) 3 + 12: TypeRuntimeArray 11(fvec3) + 13(outb): TypeStruct 10(float) 10(float) 10(float) 12 + 14: TypePointer Uniform 13(outb) + 15(outbname): 14(ptr) Variable Uniform + 16: TypeInt 32 1 + 17: 16(int) Constant 0 + 18: TypePointer Workgroup 10(float) + 19(s): 18(ptr) Variable Workgroup + 21: TypePointer Uniform 10(float) + 23: TypeVector 10(float) 4 + 24(outbna): TypeStruct 16(int) 23(fvec4) + 25: TypePointer Uniform 24(outbna) + 26(outbnamena): 25(ptr) Variable Uniform + 27: 16(int) Constant 1 + 30: TypePointer Uniform 23(fvec4) + 32: 16(int) Constant 3 + 33: 16(int) Constant 18 + 36: 16(int) Constant 17 + 37: 10(float) Constant 1077936128 + 38: 11(fvec3) ConstantComposite 37 37 37 + 39: TypePointer Uniform 11(fvec3) + 41: TypePointer Workgroup 16(int) + 42(i): 41(ptr) Variable Workgroup + 47: TypeRuntimeArray 23(fvec4) + 48(outs): TypeStruct 16(int) 47 + 49: TypePointer Uniform 48(outs) + 50(outnames): 49(ptr) Variable Uniform + 51: TypeVector 6(int) 3 + 52: TypePointer Input 51(ivec3) +53(gl_LocalInvocationID): 52(ptr) Variable Input + 54: TypePointer Input 6(int) + 61: TypePointer Uniform 16(int) + 63: 6(int) Constant 16 + 64: 6(int) Constant 32 + 65: 6(int) Constant 4 + 66: 51(ivec3) ConstantComposite 63 64 65 4(main): 2 Function None 3 5: Label - ControlBarrier 7 7 8 - 19: 9(float) Load 18(s) - 21: 20(ptr) AccessChain 14(outbname) 16 - Store 21 19 - 27: 9(float) Load 18(s) - 28: 22(fvec4) CompositeConstruct 27 27 27 27 - 30: 29(ptr) AccessChain 25(outbnamena) 26 - Store 30 28 - 33: 20(ptr) AccessChain 14(outbname) 31 32 8 - 34: 9(float) Load 33 - Store 18(s) 34 - 39: 38(ptr) AccessChain 14(outbname) 31 35 - Store 39 37 - 42: 15(int) Load 41(i) - 43: 9(float) Load 18(s) - 44: 10(fvec3) CompositeConstruct 43 43 43 - 45: 38(ptr) AccessChain 14(outbname) 31 42 - Store 45 44 - 54: 53(ptr) AccessChain 52(gl_LocalInvocationID) 8 - 55: 6(int) Load 54 - 56: 9(float) Load 18(s) - 57: 22(fvec4) CompositeConstruct 56 56 56 56 - 58: 29(ptr) AccessChain 49(outnames) 26 55 - Store 58 57 - 59: 15(int) ArrayLength 14(outbname) 3 - 61: 60(ptr) AccessChain 49(outnames) 16 - Store 61 59 + ControlBarrier 7 8 9 + 20: 10(float) Load 19(s) + 22: 21(ptr) AccessChain 15(outbname) 17 + Store 22 20 + 28: 10(float) Load 19(s) + 29: 23(fvec4) CompositeConstruct 28 28 28 28 + 31: 30(ptr) AccessChain 26(outbnamena) 27 + Store 31 29 + 34: 21(ptr) AccessChain 15(outbname) 32 33 9 + 35: 10(float) Load 34 + Store 19(s) 35 + 40: 39(ptr) AccessChain 15(outbname) 32 36 + Store 40 38 + 43: 16(int) Load 42(i) + 44: 10(float) Load 19(s) + 45: 11(fvec3) CompositeConstruct 44 44 44 + 46: 39(ptr) AccessChain 15(outbname) 32 43 + Store 46 45 + 55: 54(ptr) AccessChain 53(gl_LocalInvocationID) 9 + 56: 6(int) Load 55 + 57: 10(float) Load 19(s) + 58: 23(fvec4) CompositeConstruct 57 57 57 57 + 59: 30(ptr) AccessChain 50(outnames) 27 56 + Store 59 58 + 60: 16(int) ArrayLength 15(outbname) 3 + 62: 61(ptr) AccessChain 50(outnames) 17 + Store 62 60 Return FunctionEnd diff --git a/Test/baseResults/spv.400.tesc.out b/Test/baseResults/spv.400.tesc.out old mode 100755 new mode 100644 index bcfd963e..ae469aad --- a/Test/baseResults/spv.400.tesc.out +++ b/Test/baseResults/spv.400.tesc.out @@ -14,26 +14,26 @@ Linked tessellation control stage: Capability ClipDistance 1: ExtInstImport "GLSL.std.450" MemoryModel Logical GLSL450 - EntryPoint TessellationControl 4 "main" 23 40 43 46 54 68 73 79 83 84 87 88 91 92 + EntryPoint TessellationControl 4 "main" 24 41 44 47 54 68 73 79 83 84 87 88 91 92 ExecutionMode 4 OutputVertices 4 Source GLSL 400 SourceExtension "GL_ARB_separate_shader_objects" Name 4 "main" - Name 11 "a" - Name 16 "p" - Name 19 "gl_PerVertex" - MemberName 19(gl_PerVertex) 0 "gl_Position" - MemberName 19(gl_PerVertex) 1 "gl_PointSize" - MemberName 19(gl_PerVertex) 2 "gl_ClipDistance" - Name 23 "gl_in" - Name 30 "ps" - Name 34 "cd" - Name 38 "pvi" - Name 40 "gl_PatchVerticesIn" - Name 42 "pid" - Name 43 "gl_PrimitiveID" - Name 45 "iid" - Name 46 "gl_InvocationID" + Name 12 "a" + Name 17 "p" + Name 20 "gl_PerVertex" + MemberName 20(gl_PerVertex) 0 "gl_Position" + MemberName 20(gl_PerVertex) 1 "gl_PointSize" + MemberName 20(gl_PerVertex) 2 "gl_ClipDistance" + Name 24 "gl_in" + Name 31 "ps" + Name 35 "cd" + Name 39 "pvi" + Name 41 "gl_PatchVerticesIn" + Name 43 "pid" + Name 44 "gl_PrimitiveID" + Name 46 "iid" + Name 47 "gl_InvocationID" Name 50 "gl_PerVertex" MemberName 50(gl_PerVertex) 0 "gl_Position" MemberName 50(gl_PerVertex) 1 "gl_PointSize" @@ -49,13 +49,13 @@ Linked tessellation control stage: Name 88 "ivlb" Name 91 "ovla" Name 92 "ovlb" - MemberDecorate 19(gl_PerVertex) 0 BuiltIn Position - MemberDecorate 19(gl_PerVertex) 1 BuiltIn PointSize - MemberDecorate 19(gl_PerVertex) 2 BuiltIn ClipDistance - Decorate 19(gl_PerVertex) Block - Decorate 40(gl_PatchVerticesIn) BuiltIn PatchVertices - Decorate 43(gl_PrimitiveID) BuiltIn PrimitiveId - Decorate 46(gl_InvocationID) BuiltIn InvocationId + MemberDecorate 20(gl_PerVertex) 0 BuiltIn Position + MemberDecorate 20(gl_PerVertex) 1 BuiltIn PointSize + MemberDecorate 20(gl_PerVertex) 2 BuiltIn ClipDistance + Decorate 20(gl_PerVertex) Block + Decorate 41(gl_PatchVerticesIn) BuiltIn PatchVertices + Decorate 44(gl_PrimitiveID) BuiltIn PrimitiveId + Decorate 47(gl_InvocationID) BuiltIn InvocationId MemberDecorate 50(gl_PerVertex) 0 BuiltIn Position MemberDecorate 50(gl_PerVertex) 1 BuiltIn PointSize MemberDecorate 50(gl_PerVertex) 2 BuiltIn ClipDistance @@ -72,106 +72,106 @@ Linked tessellation control stage: 2: TypeVoid 3: TypeFunction 2 6: TypeInt 32 0 - 7: 6(int) Constant 1 - 8: 6(int) Constant 0 - 9: TypeInt 32 1 - 10: TypePointer Function 9(int) - 12: 9(int) Constant 5392 - 13: TypeFloat 32 - 14: TypeVector 13(float) 4 - 15: TypePointer Function 14(fvec4) - 17: 6(int) Constant 3 - 18: TypeArray 13(float) 17 -19(gl_PerVertex): TypeStruct 14(fvec4) 13(float) 18 - 20: 6(int) Constant 32 - 21: TypeArray 19(gl_PerVertex) 20 - 22: TypePointer Input 21 - 23(gl_in): 22(ptr) Variable Input - 24: 9(int) Constant 1 - 25: 9(int) Constant 0 - 26: TypePointer Input 14(fvec4) - 29: TypePointer Function 13(float) - 31: TypePointer Input 13(float) - 35: 9(int) Constant 2 - 39: TypePointer Input 9(int) -40(gl_PatchVerticesIn): 39(ptr) Variable Input -43(gl_PrimitiveID): 39(ptr) Variable Input -46(gl_InvocationID): 39(ptr) Variable Input - 48: 6(int) Constant 2 - 49: TypeArray 13(float) 48 -50(gl_PerVertex): TypeStruct 14(fvec4) 13(float) 49 + 7: 6(int) Constant 2 + 8: 6(int) Constant 1 + 9: 6(int) Constant 0 + 10: TypeInt 32 1 + 11: TypePointer Function 10(int) + 13: 10(int) Constant 5392 + 14: TypeFloat 32 + 15: TypeVector 14(float) 4 + 16: TypePointer Function 15(fvec4) + 18: 6(int) Constant 3 + 19: TypeArray 14(float) 18 +20(gl_PerVertex): TypeStruct 15(fvec4) 14(float) 19 + 21: 6(int) Constant 32 + 22: TypeArray 20(gl_PerVertex) 21 + 23: TypePointer Input 22 + 24(gl_in): 23(ptr) Variable Input + 25: 10(int) Constant 1 + 26: 10(int) Constant 0 + 27: TypePointer Input 15(fvec4) + 30: TypePointer Function 14(float) + 32: TypePointer Input 14(float) + 36: 10(int) Constant 2 + 40: TypePointer Input 10(int) +41(gl_PatchVerticesIn): 40(ptr) Variable Input +44(gl_PrimitiveID): 40(ptr) Variable Input +47(gl_InvocationID): 40(ptr) Variable Input + 49: TypeArray 14(float) 7 +50(gl_PerVertex): TypeStruct 15(fvec4) 14(float) 49 51: 6(int) Constant 4 52: TypeArray 50(gl_PerVertex) 51 53: TypePointer Output 52 54(gl_out): 53(ptr) Variable Output - 57: TypePointer Output 14(fvec4) - 61: TypePointer Output 13(float) - 66: TypeArray 13(float) 51 + 57: TypePointer Output 15(fvec4) + 61: TypePointer Output 14(float) + 66: TypeArray 14(float) 51 67: TypePointer Output 66 68(gl_TessLevelOuter): 67(ptr) Variable Output - 69: 9(int) Constant 3 - 70: 13(float) Constant 1078774989 + 69: 10(int) Constant 3 + 70: 14(float) Constant 1078774989 72: TypePointer Output 49 73(gl_TessLevelInner): 72(ptr) Variable Output - 74: 13(float) Constant 1067869798 - 76: TypeArray 9(int) 51 + 74: 14(float) Constant 1067869798 + 76: TypeArray 10(int) 51 77: TypePointer Private 76 78(outa): 77(ptr) Variable Private 79(patchOut): 57(ptr) Variable Output - 80: TypeVector 13(float) 2 - 81: TypeArray 80(fvec2) 20 + 80: TypeVector 14(float) 2 + 81: TypeArray 80(fvec2) 21 82: TypePointer Input 81 83(inb): 82(ptr) Variable Input 84(ind): 82(ptr) Variable Input - 85: TypeArray 14(fvec4) 20 + 85: TypeArray 15(fvec4) 21 86: TypePointer Input 85 87(ivla): 86(ptr) Variable Input 88(ivlb): 86(ptr) Variable Input - 89: TypeArray 14(fvec4) 51 + 89: TypeArray 15(fvec4) 51 90: TypePointer Output 89 91(ovla): 90(ptr) Variable Output 92(ovlb): 90(ptr) Variable Output 4(main): 2 Function None 3 5: Label - 11(a): 10(ptr) Variable Function - 16(p): 15(ptr) Variable Function - 30(ps): 29(ptr) Variable Function - 34(cd): 29(ptr) Variable Function - 38(pvi): 10(ptr) Variable Function - 42(pid): 10(ptr) Variable Function - 45(iid): 10(ptr) Variable Function - ControlBarrier 7 7 8 - Store 11(a) 12 - 27: 26(ptr) AccessChain 23(gl_in) 24 25 - 28: 14(fvec4) Load 27 - Store 16(p) 28 - 32: 31(ptr) AccessChain 23(gl_in) 24 24 - 33: 13(float) Load 32 - Store 30(ps) 33 - 36: 31(ptr) AccessChain 23(gl_in) 24 35 35 - 37: 13(float) Load 36 - Store 34(cd) 37 - 41: 9(int) Load 40(gl_PatchVerticesIn) - Store 38(pvi) 41 - 44: 9(int) Load 43(gl_PrimitiveID) - Store 42(pid) 44 - 47: 9(int) Load 46(gl_InvocationID) - Store 45(iid) 47 - 55: 9(int) Load 46(gl_InvocationID) - 56: 14(fvec4) Load 16(p) - 58: 57(ptr) AccessChain 54(gl_out) 55 25 + 12(a): 11(ptr) Variable Function + 17(p): 16(ptr) Variable Function + 31(ps): 30(ptr) Variable Function + 35(cd): 30(ptr) Variable Function + 39(pvi): 11(ptr) Variable Function + 43(pid): 11(ptr) Variable Function + 46(iid): 11(ptr) Variable Function + ControlBarrier 7 8 9 + Store 12(a) 13 + 28: 27(ptr) AccessChain 24(gl_in) 25 26 + 29: 15(fvec4) Load 28 + Store 17(p) 29 + 33: 32(ptr) AccessChain 24(gl_in) 25 25 + 34: 14(float) Load 33 + Store 31(ps) 34 + 37: 32(ptr) AccessChain 24(gl_in) 25 36 36 + 38: 14(float) Load 37 + Store 35(cd) 38 + 42: 10(int) Load 41(gl_PatchVerticesIn) + Store 39(pvi) 42 + 45: 10(int) Load 44(gl_PrimitiveID) + Store 43(pid) 45 + 48: 10(int) Load 47(gl_InvocationID) + Store 46(iid) 48 + 55: 10(int) Load 47(gl_InvocationID) + 56: 15(fvec4) Load 17(p) + 58: 57(ptr) AccessChain 54(gl_out) 55 26 Store 58 56 - 59: 9(int) Load 46(gl_InvocationID) - 60: 13(float) Load 30(ps) - 62: 61(ptr) AccessChain 54(gl_out) 59 24 + 59: 10(int) Load 47(gl_InvocationID) + 60: 14(float) Load 31(ps) + 62: 61(ptr) AccessChain 54(gl_out) 59 25 Store 62 60 - 63: 9(int) Load 46(gl_InvocationID) - 64: 13(float) Load 34(cd) - 65: 61(ptr) AccessChain 54(gl_out) 63 35 24 + 63: 10(int) Load 47(gl_InvocationID) + 64: 14(float) Load 35(cd) + 65: 61(ptr) AccessChain 54(gl_out) 63 36 25 Store 65 64 71: 61(ptr) AccessChain 68(gl_TessLevelOuter) 69 Store 71 70 - 75: 61(ptr) AccessChain 73(gl_TessLevelInner) 24 + 75: 61(ptr) AccessChain 73(gl_TessLevelInner) 25 Store 75 74 Return FunctionEnd -- cgit v1.2.3 From fabe7d6a613782d49becaef86aa0161ed7d3c4d7 Mon Sep 17 00:00:00 2001 From: John Kessenich Date: Mon, 14 Nov 2016 21:22:05 -0700 Subject: Test results: Fix incorrect test result caused by parallel development. Issue #594. --- Test/baseResults/hlsl.rw.register.frag.out | 4 ++-- glslang/Include/revision.h | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/Test/baseResults/hlsl.rw.register.frag.out b/Test/baseResults/hlsl.rw.register.frag.out index b2d8f299..f369cac7 100644 --- a/Test/baseResults/hlsl.rw.register.frag.out +++ b/Test/baseResults/hlsl.rw.register.frag.out @@ -39,9 +39,9 @@ gl_FragCoord origin is upper left 0:17 0 (const int) 0:17 Branch: Return 0:? Linker Objects +0:? 'Color' (layout(location=0 ) out 4-component vector of float) 0:? 'g_tTex1df1' (layout(binding=2 r32f ) uniform image1D) 0:? 'g_tBuf1du1' (layout(binding=3 r32ui ) uniform uimageBuffer) -0:? 'Color' (layout(location=0 ) out 4-component vector of float) Linked fragment stage: @@ -87,9 +87,9 @@ gl_FragCoord origin is upper left 0:17 0 (const int) 0:17 Branch: Return 0:? Linker Objects +0:? 'Color' (layout(location=0 ) out 4-component vector of float) 0:? 'g_tTex1df1' (layout(binding=2 r32f ) uniform image1D) 0:? 'g_tBuf1du1' (layout(binding=3 r32ui ) uniform uimageBuffer) -0:? 'Color' (layout(location=0 ) out 4-component vector of float) // Module Version 10000 // Generated by (magic number): 80001 diff --git a/glslang/Include/revision.h b/glslang/Include/revision.h index c8b1b10a..4ec53322 100644 --- a/glslang/Include/revision.h +++ b/glslang/Include/revision.h @@ -2,5 +2,5 @@ // For the version, it uses the latest git tag followed by the number of commits. // For the date, it uses the current date (when then script is run). -#define GLSLANG_REVISION "Overload400-PrecQual.1603" -#define GLSLANG_DATE "16-Oct-2016" +#define GLSLANG_REVISION "Overload400-PrecQual.1650" +#define GLSLANG_DATE "14-Nov-2016" -- cgit v1.2.3 From 0842dbb39a1965f65dd74f0328132eb0eb69d499 Mon Sep 17 00:00:00 2001 From: steve-lunarg Date: Tue, 15 Nov 2016 10:11:04 -0700 Subject: HLSL: use HLSL parser to parse HLSL intrinsic prototypes, enable int/bool mats This PR adds a CreateParseContext() fn analogous to CreateBuiltInParseables(), to create a language specific built in parser. (This code was present before but not encapsualted in a fn). This can now be used to create a source language specific parser for builtins. Along with this, the code creating HLSL intrinsic prototypes can now produce them in HLSL syntax, rather than GLSL syntax. This relaxes certain prior restrictions at the parser level. Lower layers (e.g, SPIR-V) may still have such restrictions, such as around Nx1 matrices: this code does not impact that. This PR also fleshes out matrix types for bools and ints, both of which were partially in place before. This was easier than maintaining the restrictions in the HLSL prototype generator to avoid creating protoypes with those types. Many tests change because the result type from intrinsics moves from "global" to "temp". Several new tests are added for the new types. --- Test/baseResults/hlsl.doLoop.frag.out | 4 +- Test/baseResults/hlsl.forLoop.frag.out | 12 +- Test/baseResults/hlsl.gather.array.dx10.frag.out | 24 +- Test/baseResults/hlsl.gather.basic.dx10.frag.out | 24 +- Test/baseResults/hlsl.gather.basic.dx10.vert.out | 24 +- Test/baseResults/hlsl.gather.offset.dx10.frag.out | 12 +- .../hlsl.gather.offsetarray.dx10.frag.out | 12 +- .../hlsl.gatherRGBA.array.dx10.frag.out | 96 +- .../hlsl.gatherRGBA.basic.dx10.frag.out | 96 +- .../hlsl.gatherRGBA.offset.dx10.frag.out | 96 +- .../hlsl.gatherRGBA.offsetarray.dx10.frag.out | 96 +- .../hlsl.getsampleposition.dx10.frag.out | 8 +- Test/baseResults/hlsl.if.frag.out | 24 +- Test/baseResults/hlsl.intrinsics.barriers.comp.out | 24 +- Test/baseResults/hlsl.intrinsics.comp.out | 112 +- Test/baseResults/hlsl.intrinsics.double.frag.out | 4 +- Test/baseResults/hlsl.intrinsics.f1632.frag.out | 16 +- Test/baseResults/hlsl.intrinsics.frag.out | 1512 ++++++++++---------- Test/baseResults/hlsl.intrinsics.negative.frag.out | 120 +- Test/baseResults/hlsl.intrinsics.vert.out | 1336 ++++++++--------- Test/baseResults/hlsl.matNx1.frag.out | 261 ++++ Test/baseResults/hlsl.matType.bool.frag.out | 419 ++++++ Test/baseResults/hlsl.matType.int.frag.out | 738 ++++++++++ Test/baseResults/hlsl.max.frag.out | 4 +- Test/baseResults/hlsl.promote.vec1.frag.out | 8 +- .../baseResults/hlsl.samplecmp.array.dx10.frag.out | 36 +- .../baseResults/hlsl.samplecmp.basic.dx10.frag.out | 36 +- .../hlsl.samplecmp.offset.dx10.frag.out | 24 +- .../hlsl.samplecmp.offsetarray.dx10.frag.out | 24 +- .../hlsl.samplecmplevelzero.array.dx10.frag.out | 36 +- .../hlsl.samplecmplevelzero.basic.dx10.frag.out | 36 +- .../hlsl.samplecmplevelzero.offset.dx10.frag.out | 24 +- ...sl.samplecmplevelzero.offsetarray.dx10.frag.out | 24 +- Test/baseResults/hlsl.shapeConv.frag.out | 8 +- Test/baseResults/hlsl.sin.frag.out | 4 +- Test/baseResults/hlsl.whileLoop.frag.out | 4 +- Test/hlsl.matNx1.frag | 31 + Test/hlsl.matType.bool.frag | 53 + Test/hlsl.matType.int.frag | 97 ++ glslang/MachineIndependent/ShaderLang.cpp | 90 +- gtests/Hlsl.FromFile.cpp | 3 + hlsl/hlslParseables.cpp | 102 +- hlsl/hlslScanContext.cpp | 48 + 43 files changed, 3729 insertions(+), 2033 deletions(-) create mode 100644 Test/baseResults/hlsl.matNx1.frag.out create mode 100644 Test/baseResults/hlsl.matType.bool.frag.out create mode 100644 Test/baseResults/hlsl.matType.int.frag.out create mode 100644 Test/hlsl.matNx1.frag create mode 100644 Test/hlsl.matType.bool.frag create mode 100644 Test/hlsl.matType.int.frag diff --git a/Test/baseResults/hlsl.doLoop.frag.out b/Test/baseResults/hlsl.doLoop.frag.out index 0e49caf1..c060cdc7 100755 --- a/Test/baseResults/hlsl.doLoop.frag.out +++ b/Test/baseResults/hlsl.doLoop.frag.out @@ -18,7 +18,7 @@ gl_FragCoord origin is upper left 0:4 No loop body 0:5 Loop with condition not tested first 0:5 Loop Condition -0:5 all (global bool) +0:5 all (temp bool) 0:5 Equal (temp 4-component vector of bool) 0:5 'input' (layout(location=0 ) in 4-component vector of float) 0:5 'input' (layout(location=0 ) in 4-component vector of float) @@ -55,7 +55,7 @@ gl_FragCoord origin is upper left 0:4 No loop body 0:5 Loop with condition not tested first 0:5 Loop Condition -0:5 all (global bool) +0:5 all (temp bool) 0:5 Equal (temp 4-component vector of bool) 0:5 'input' (layout(location=0 ) in 4-component vector of float) 0:5 'input' (layout(location=0 ) in 4-component vector of float) diff --git a/Test/baseResults/hlsl.forLoop.frag.out b/Test/baseResults/hlsl.forLoop.frag.out index 26697725..85b8fb27 100755 --- a/Test/baseResults/hlsl.forLoop.frag.out +++ b/Test/baseResults/hlsl.forLoop.frag.out @@ -19,7 +19,7 @@ gl_FragCoord origin is upper left 0:? Sequence 0:5 Loop with condition tested first 0:5 Loop Condition -0:5 any (global bool) +0:5 any (temp bool) 0:5 NotEqual (temp 4-component vector of bool) 0:5 'input' (layout(location=0 ) in 4-component vector of float) 0:5 'input' (layout(location=0 ) in 4-component vector of float) @@ -27,7 +27,7 @@ gl_FragCoord origin is upper left 0:? Sequence 0:6 Loop with condition tested first 0:6 Loop Condition -0:6 any (global bool) +0:6 any (temp bool) 0:6 NotEqual (temp 4-component vector of bool) 0:6 'input' (layout(location=0 ) in 4-component vector of float) 0:6 'input' (layout(location=0 ) in 4-component vector of float) @@ -44,7 +44,7 @@ gl_FragCoord origin is upper left 0:7 'input' (layout(location=0 ) in 4-component vector of float) 0:7 Loop with condition tested first 0:7 Loop Condition -0:7 any (global bool) +0:7 any (temp bool) 0:7 NotEqual (temp 4-component vector of bool) 0:7 'input' (layout(location=0 ) in 4-component vector of float) 0:7 'input' (layout(location=0 ) in 4-component vector of float) @@ -144,7 +144,7 @@ gl_FragCoord origin is upper left 0:? Sequence 0:5 Loop with condition tested first 0:5 Loop Condition -0:5 any (global bool) +0:5 any (temp bool) 0:5 NotEqual (temp 4-component vector of bool) 0:5 'input' (layout(location=0 ) in 4-component vector of float) 0:5 'input' (layout(location=0 ) in 4-component vector of float) @@ -152,7 +152,7 @@ gl_FragCoord origin is upper left 0:? Sequence 0:6 Loop with condition tested first 0:6 Loop Condition -0:6 any (global bool) +0:6 any (temp bool) 0:6 NotEqual (temp 4-component vector of bool) 0:6 'input' (layout(location=0 ) in 4-component vector of float) 0:6 'input' (layout(location=0 ) in 4-component vector of float) @@ -169,7 +169,7 @@ gl_FragCoord origin is upper left 0:7 'input' (layout(location=0 ) in 4-component vector of float) 0:7 Loop with condition tested first 0:7 Loop Condition -0:7 any (global bool) +0:7 any (temp bool) 0:7 NotEqual (temp 4-component vector of bool) 0:7 'input' (layout(location=0 ) in 4-component vector of float) 0:7 'input' (layout(location=0 ) in 4-component vector of float) diff --git a/Test/baseResults/hlsl.gather.array.dx10.frag.out b/Test/baseResults/hlsl.gather.array.dx10.frag.out index 15727d92..ee550d16 100644 --- a/Test/baseResults/hlsl.gather.array.dx10.frag.out +++ b/Test/baseResults/hlsl.gather.array.dx10.frag.out @@ -8,7 +8,7 @@ gl_FragCoord origin is upper left 0:29 Sequence 0:29 move second child to first child (temp 4-component vector of float) 0:29 'txval20' (temp 4-component vector of float) -0:29 textureGather (global 4-component vector of float) +0:29 textureGather (temp 4-component vector of float) 0:29 Construct combined texture-sampler (temp sampler2DArray) 0:29 'g_tTex2df4a' (uniform texture2DArray) 0:29 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -19,7 +19,7 @@ gl_FragCoord origin is upper left 0:30 Sequence 0:30 move second child to first child (temp 4-component vector of int) 0:30 'txval21' (temp 4-component vector of int) -0:30 textureGather (global 4-component vector of int) +0:30 textureGather (temp 4-component vector of int) 0:30 Construct combined texture-sampler (temp isampler2DArray) 0:30 'g_tTex2di4a' (uniform itexture2DArray) 0:30 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -30,7 +30,7 @@ gl_FragCoord origin is upper left 0:31 Sequence 0:31 move second child to first child (temp 4-component vector of uint) 0:31 'txval22' (temp 4-component vector of uint) -0:31 textureGather (global 4-component vector of uint) +0:31 textureGather (temp 4-component vector of uint) 0:31 Construct combined texture-sampler (temp usampler2DArray) 0:31 'g_tTex2du4a' (uniform utexture2DArray) 0:31 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -41,7 +41,7 @@ gl_FragCoord origin is upper left 0:35 Sequence 0:35 move second child to first child (temp 4-component vector of float) 0:35 'txval40' (temp 4-component vector of float) -0:35 textureGather (global 4-component vector of float) +0:35 textureGather (temp 4-component vector of float) 0:35 Construct combined texture-sampler (temp samplerCubeArray) 0:35 'g_tTexcdf4a' (uniform textureCubeArray) 0:35 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -53,7 +53,7 @@ gl_FragCoord origin is upper left 0:36 Sequence 0:36 move second child to first child (temp 4-component vector of int) 0:36 'txval41' (temp 4-component vector of int) -0:36 textureGather (global 4-component vector of int) +0:36 textureGather (temp 4-component vector of int) 0:36 Construct combined texture-sampler (temp isamplerCubeArray) 0:36 'g_tTexcdi4a' (uniform itextureCubeArray) 0:36 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -65,7 +65,7 @@ gl_FragCoord origin is upper left 0:37 Sequence 0:37 move second child to first child (temp 4-component vector of uint) 0:37 'txval42' (temp 4-component vector of uint) -0:37 textureGather (global 4-component vector of uint) +0:37 textureGather (temp 4-component vector of uint) 0:37 Construct combined texture-sampler (temp usamplerCubeArray) 0:37 'g_tTexcdu4a' (uniform utextureCubeArray) 0:37 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -134,7 +134,7 @@ gl_FragCoord origin is upper left 0:29 Sequence 0:29 move second child to first child (temp 4-component vector of float) 0:29 'txval20' (temp 4-component vector of float) -0:29 textureGather (global 4-component vector of float) +0:29 textureGather (temp 4-component vector of float) 0:29 Construct combined texture-sampler (temp sampler2DArray) 0:29 'g_tTex2df4a' (uniform texture2DArray) 0:29 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -145,7 +145,7 @@ gl_FragCoord origin is upper left 0:30 Sequence 0:30 move second child to first child (temp 4-component vector of int) 0:30 'txval21' (temp 4-component vector of int) -0:30 textureGather (global 4-component vector of int) +0:30 textureGather (temp 4-component vector of int) 0:30 Construct combined texture-sampler (temp isampler2DArray) 0:30 'g_tTex2di4a' (uniform itexture2DArray) 0:30 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -156,7 +156,7 @@ gl_FragCoord origin is upper left 0:31 Sequence 0:31 move second child to first child (temp 4-component vector of uint) 0:31 'txval22' (temp 4-component vector of uint) -0:31 textureGather (global 4-component vector of uint) +0:31 textureGather (temp 4-component vector of uint) 0:31 Construct combined texture-sampler (temp usampler2DArray) 0:31 'g_tTex2du4a' (uniform utexture2DArray) 0:31 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -167,7 +167,7 @@ gl_FragCoord origin is upper left 0:35 Sequence 0:35 move second child to first child (temp 4-component vector of float) 0:35 'txval40' (temp 4-component vector of float) -0:35 textureGather (global 4-component vector of float) +0:35 textureGather (temp 4-component vector of float) 0:35 Construct combined texture-sampler (temp samplerCubeArray) 0:35 'g_tTexcdf4a' (uniform textureCubeArray) 0:35 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -179,7 +179,7 @@ gl_FragCoord origin is upper left 0:36 Sequence 0:36 move second child to first child (temp 4-component vector of int) 0:36 'txval41' (temp 4-component vector of int) -0:36 textureGather (global 4-component vector of int) +0:36 textureGather (temp 4-component vector of int) 0:36 Construct combined texture-sampler (temp isamplerCubeArray) 0:36 'g_tTexcdi4a' (uniform itextureCubeArray) 0:36 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -191,7 +191,7 @@ gl_FragCoord origin is upper left 0:37 Sequence 0:37 move second child to first child (temp 4-component vector of uint) 0:37 'txval42' (temp 4-component vector of uint) -0:37 textureGather (global 4-component vector of uint) +0:37 textureGather (temp 4-component vector of uint) 0:37 Construct combined texture-sampler (temp usamplerCubeArray) 0:37 'g_tTexcdu4a' (uniform utextureCubeArray) 0:37 'g_sSamp' (layout(binding=0 ) uniform sampler) diff --git a/Test/baseResults/hlsl.gather.basic.dx10.frag.out b/Test/baseResults/hlsl.gather.basic.dx10.frag.out index 26a5f38d..86e106ca 100644 --- a/Test/baseResults/hlsl.gather.basic.dx10.frag.out +++ b/Test/baseResults/hlsl.gather.basic.dx10.frag.out @@ -8,7 +8,7 @@ gl_FragCoord origin is upper left 0:34 Sequence 0:34 move second child to first child (temp 4-component vector of float) 0:34 'txval20' (temp 4-component vector of float) -0:34 textureGather (global 4-component vector of float) +0:34 textureGather (temp 4-component vector of float) 0:34 Construct combined texture-sampler (temp sampler2D) 0:34 'g_tTex2df4' (uniform texture2D) 0:34 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -18,7 +18,7 @@ gl_FragCoord origin is upper left 0:35 Sequence 0:35 move second child to first child (temp 4-component vector of int) 0:35 'txval21' (temp 4-component vector of int) -0:35 textureGather (global 4-component vector of int) +0:35 textureGather (temp 4-component vector of int) 0:35 Construct combined texture-sampler (temp isampler2D) 0:35 'g_tTex2di4' (uniform itexture2D) 0:35 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -28,7 +28,7 @@ gl_FragCoord origin is upper left 0:36 Sequence 0:36 move second child to first child (temp 4-component vector of uint) 0:36 'txval22' (temp 4-component vector of uint) -0:36 textureGather (global 4-component vector of uint) +0:36 textureGather (temp 4-component vector of uint) 0:36 Construct combined texture-sampler (temp usampler2D) 0:36 'g_tTex2du4' (uniform utexture2D) 0:36 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -38,7 +38,7 @@ gl_FragCoord origin is upper left 0:40 Sequence 0:40 move second child to first child (temp 4-component vector of float) 0:40 'txval40' (temp 4-component vector of float) -0:40 textureGather (global 4-component vector of float) +0:40 textureGather (temp 4-component vector of float) 0:40 Construct combined texture-sampler (temp samplerCube) 0:40 'g_tTexcdf4' (uniform textureCube) 0:40 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -49,7 +49,7 @@ gl_FragCoord origin is upper left 0:41 Sequence 0:41 move second child to first child (temp 4-component vector of int) 0:41 'txval41' (temp 4-component vector of int) -0:41 textureGather (global 4-component vector of int) +0:41 textureGather (temp 4-component vector of int) 0:41 Construct combined texture-sampler (temp isamplerCube) 0:41 'g_tTexcdi4' (uniform itextureCube) 0:41 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -60,7 +60,7 @@ gl_FragCoord origin is upper left 0:42 Sequence 0:42 move second child to first child (temp 4-component vector of uint) 0:42 'txval42' (temp 4-component vector of uint) -0:42 textureGather (global 4-component vector of uint) +0:42 textureGather (temp 4-component vector of uint) 0:42 Construct combined texture-sampler (temp usamplerCube) 0:42 'g_tTexcdu4' (uniform utextureCube) 0:42 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -132,7 +132,7 @@ gl_FragCoord origin is upper left 0:34 Sequence 0:34 move second child to first child (temp 4-component vector of float) 0:34 'txval20' (temp 4-component vector of float) -0:34 textureGather (global 4-component vector of float) +0:34 textureGather (temp 4-component vector of float) 0:34 Construct combined texture-sampler (temp sampler2D) 0:34 'g_tTex2df4' (uniform texture2D) 0:34 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -142,7 +142,7 @@ gl_FragCoord origin is upper left 0:35 Sequence 0:35 move second child to first child (temp 4-component vector of int) 0:35 'txval21' (temp 4-component vector of int) -0:35 textureGather (global 4-component vector of int) +0:35 textureGather (temp 4-component vector of int) 0:35 Construct combined texture-sampler (temp isampler2D) 0:35 'g_tTex2di4' (uniform itexture2D) 0:35 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -152,7 +152,7 @@ gl_FragCoord origin is upper left 0:36 Sequence 0:36 move second child to first child (temp 4-component vector of uint) 0:36 'txval22' (temp 4-component vector of uint) -0:36 textureGather (global 4-component vector of uint) +0:36 textureGather (temp 4-component vector of uint) 0:36 Construct combined texture-sampler (temp usampler2D) 0:36 'g_tTex2du4' (uniform utexture2D) 0:36 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -162,7 +162,7 @@ gl_FragCoord origin is upper left 0:40 Sequence 0:40 move second child to first child (temp 4-component vector of float) 0:40 'txval40' (temp 4-component vector of float) -0:40 textureGather (global 4-component vector of float) +0:40 textureGather (temp 4-component vector of float) 0:40 Construct combined texture-sampler (temp samplerCube) 0:40 'g_tTexcdf4' (uniform textureCube) 0:40 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -173,7 +173,7 @@ gl_FragCoord origin is upper left 0:41 Sequence 0:41 move second child to first child (temp 4-component vector of int) 0:41 'txval41' (temp 4-component vector of int) -0:41 textureGather (global 4-component vector of int) +0:41 textureGather (temp 4-component vector of int) 0:41 Construct combined texture-sampler (temp isamplerCube) 0:41 'g_tTexcdi4' (uniform itextureCube) 0:41 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -184,7 +184,7 @@ gl_FragCoord origin is upper left 0:42 Sequence 0:42 move second child to first child (temp 4-component vector of uint) 0:42 'txval42' (temp 4-component vector of uint) -0:42 textureGather (global 4-component vector of uint) +0:42 textureGather (temp 4-component vector of uint) 0:42 Construct combined texture-sampler (temp usamplerCube) 0:42 'g_tTexcdu4' (uniform utextureCube) 0:42 'g_sSamp' (layout(binding=0 ) uniform sampler) diff --git a/Test/baseResults/hlsl.gather.basic.dx10.vert.out b/Test/baseResults/hlsl.gather.basic.dx10.vert.out index b7a4d6e4..a8936753 100644 --- a/Test/baseResults/hlsl.gather.basic.dx10.vert.out +++ b/Test/baseResults/hlsl.gather.basic.dx10.vert.out @@ -7,7 +7,7 @@ Shader version: 450 0:33 Sequence 0:33 move second child to first child (temp 4-component vector of float) 0:33 'txval20' (temp 4-component vector of float) -0:33 textureGather (global 4-component vector of float) +0:33 textureGather (temp 4-component vector of float) 0:33 Construct combined texture-sampler (temp sampler2D) 0:33 'g_tTex2df4' (uniform texture2D) 0:33 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -17,7 +17,7 @@ Shader version: 450 0:34 Sequence 0:34 move second child to first child (temp 4-component vector of int) 0:34 'txval21' (temp 4-component vector of int) -0:34 textureGather (global 4-component vector of int) +0:34 textureGather (temp 4-component vector of int) 0:34 Construct combined texture-sampler (temp isampler2D) 0:34 'g_tTex2di4' (uniform itexture2D) 0:34 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -27,7 +27,7 @@ Shader version: 450 0:35 Sequence 0:35 move second child to first child (temp 4-component vector of uint) 0:35 'txval22' (temp 4-component vector of uint) -0:35 textureGather (global 4-component vector of uint) +0:35 textureGather (temp 4-component vector of uint) 0:35 Construct combined texture-sampler (temp usampler2D) 0:35 'g_tTex2du4' (uniform utexture2D) 0:35 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -37,7 +37,7 @@ Shader version: 450 0:39 Sequence 0:39 move second child to first child (temp 4-component vector of float) 0:39 'txval40' (temp 4-component vector of float) -0:39 textureGather (global 4-component vector of float) +0:39 textureGather (temp 4-component vector of float) 0:39 Construct combined texture-sampler (temp samplerCube) 0:39 'g_tTexcdf4' (uniform textureCube) 0:39 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -48,7 +48,7 @@ Shader version: 450 0:40 Sequence 0:40 move second child to first child (temp 4-component vector of int) 0:40 'txval41' (temp 4-component vector of int) -0:40 textureGather (global 4-component vector of int) +0:40 textureGather (temp 4-component vector of int) 0:40 Construct combined texture-sampler (temp isamplerCube) 0:40 'g_tTexcdi4' (uniform itextureCube) 0:40 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -59,7 +59,7 @@ Shader version: 450 0:41 Sequence 0:41 move second child to first child (temp 4-component vector of uint) 0:41 'txval42' (temp 4-component vector of uint) -0:41 textureGather (global 4-component vector of uint) +0:41 textureGather (temp 4-component vector of uint) 0:41 Construct combined texture-sampler (temp usamplerCube) 0:41 'g_tTexcdu4' (uniform utextureCube) 0:41 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -116,7 +116,7 @@ Shader version: 450 0:33 Sequence 0:33 move second child to first child (temp 4-component vector of float) 0:33 'txval20' (temp 4-component vector of float) -0:33 textureGather (global 4-component vector of float) +0:33 textureGather (temp 4-component vector of float) 0:33 Construct combined texture-sampler (temp sampler2D) 0:33 'g_tTex2df4' (uniform texture2D) 0:33 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -126,7 +126,7 @@ Shader version: 450 0:34 Sequence 0:34 move second child to first child (temp 4-component vector of int) 0:34 'txval21' (temp 4-component vector of int) -0:34 textureGather (global 4-component vector of int) +0:34 textureGather (temp 4-component vector of int) 0:34 Construct combined texture-sampler (temp isampler2D) 0:34 'g_tTex2di4' (uniform itexture2D) 0:34 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -136,7 +136,7 @@ Shader version: 450 0:35 Sequence 0:35 move second child to first child (temp 4-component vector of uint) 0:35 'txval22' (temp 4-component vector of uint) -0:35 textureGather (global 4-component vector of uint) +0:35 textureGather (temp 4-component vector of uint) 0:35 Construct combined texture-sampler (temp usampler2D) 0:35 'g_tTex2du4' (uniform utexture2D) 0:35 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -146,7 +146,7 @@ Shader version: 450 0:39 Sequence 0:39 move second child to first child (temp 4-component vector of float) 0:39 'txval40' (temp 4-component vector of float) -0:39 textureGather (global 4-component vector of float) +0:39 textureGather (temp 4-component vector of float) 0:39 Construct combined texture-sampler (temp samplerCube) 0:39 'g_tTexcdf4' (uniform textureCube) 0:39 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -157,7 +157,7 @@ Shader version: 450 0:40 Sequence 0:40 move second child to first child (temp 4-component vector of int) 0:40 'txval41' (temp 4-component vector of int) -0:40 textureGather (global 4-component vector of int) +0:40 textureGather (temp 4-component vector of int) 0:40 Construct combined texture-sampler (temp isamplerCube) 0:40 'g_tTexcdi4' (uniform itextureCube) 0:40 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -168,7 +168,7 @@ Shader version: 450 0:41 Sequence 0:41 move second child to first child (temp 4-component vector of uint) 0:41 'txval42' (temp 4-component vector of uint) -0:41 textureGather (global 4-component vector of uint) +0:41 textureGather (temp 4-component vector of uint) 0:41 Construct combined texture-sampler (temp usamplerCube) 0:41 'g_tTexcdu4' (uniform utextureCube) 0:41 'g_sSamp' (layout(binding=0 ) uniform sampler) diff --git a/Test/baseResults/hlsl.gather.offset.dx10.frag.out b/Test/baseResults/hlsl.gather.offset.dx10.frag.out index 2feb0ee2..5b48bf32 100644 --- a/Test/baseResults/hlsl.gather.offset.dx10.frag.out +++ b/Test/baseResults/hlsl.gather.offset.dx10.frag.out @@ -8,7 +8,7 @@ gl_FragCoord origin is upper left 0:33 Sequence 0:33 move second child to first child (temp 4-component vector of float) 0:33 'txval20' (temp 4-component vector of float) -0:33 textureGatherOffset (global 4-component vector of float) +0:33 textureGatherOffset (temp 4-component vector of float) 0:33 Construct combined texture-sampler (temp sampler2D) 0:33 'g_tTex2df4' (uniform texture2D) 0:33 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -21,7 +21,7 @@ gl_FragCoord origin is upper left 0:34 Sequence 0:34 move second child to first child (temp 4-component vector of int) 0:34 'txval21' (temp 4-component vector of int) -0:34 textureGatherOffset (global 4-component vector of int) +0:34 textureGatherOffset (temp 4-component vector of int) 0:34 Construct combined texture-sampler (temp isampler2D) 0:34 'g_tTex2di4' (uniform itexture2D) 0:34 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -34,7 +34,7 @@ gl_FragCoord origin is upper left 0:35 Sequence 0:35 move second child to first child (temp 4-component vector of uint) 0:35 'txval22' (temp 4-component vector of uint) -0:35 textureGatherOffset (global 4-component vector of uint) +0:35 textureGatherOffset (temp 4-component vector of uint) 0:35 Construct combined texture-sampler (temp usampler2D) 0:35 'g_tTex2du4' (uniform utexture2D) 0:35 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -107,7 +107,7 @@ gl_FragCoord origin is upper left 0:33 Sequence 0:33 move second child to first child (temp 4-component vector of float) 0:33 'txval20' (temp 4-component vector of float) -0:33 textureGatherOffset (global 4-component vector of float) +0:33 textureGatherOffset (temp 4-component vector of float) 0:33 Construct combined texture-sampler (temp sampler2D) 0:33 'g_tTex2df4' (uniform texture2D) 0:33 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -120,7 +120,7 @@ gl_FragCoord origin is upper left 0:34 Sequence 0:34 move second child to first child (temp 4-component vector of int) 0:34 'txval21' (temp 4-component vector of int) -0:34 textureGatherOffset (global 4-component vector of int) +0:34 textureGatherOffset (temp 4-component vector of int) 0:34 Construct combined texture-sampler (temp isampler2D) 0:34 'g_tTex2di4' (uniform itexture2D) 0:34 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -133,7 +133,7 @@ gl_FragCoord origin is upper left 0:35 Sequence 0:35 move second child to first child (temp 4-component vector of uint) 0:35 'txval22' (temp 4-component vector of uint) -0:35 textureGatherOffset (global 4-component vector of uint) +0:35 textureGatherOffset (temp 4-component vector of uint) 0:35 Construct combined texture-sampler (temp usampler2D) 0:35 'g_tTex2du4' (uniform utexture2D) 0:35 'g_sSamp' (layout(binding=0 ) uniform sampler) diff --git a/Test/baseResults/hlsl.gather.offsetarray.dx10.frag.out b/Test/baseResults/hlsl.gather.offsetarray.dx10.frag.out index 2dede7bb..a7589cd9 100644 --- a/Test/baseResults/hlsl.gather.offsetarray.dx10.frag.out +++ b/Test/baseResults/hlsl.gather.offsetarray.dx10.frag.out @@ -8,7 +8,7 @@ gl_FragCoord origin is upper left 0:25 Sequence 0:25 move second child to first child (temp 4-component vector of float) 0:25 'txval20' (temp 4-component vector of float) -0:25 textureGatherOffset (global 4-component vector of float) +0:25 textureGatherOffset (temp 4-component vector of float) 0:25 Construct combined texture-sampler (temp sampler2DArray) 0:25 'g_tTex2df4' (uniform texture2DArray) 0:25 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -22,7 +22,7 @@ gl_FragCoord origin is upper left 0:26 Sequence 0:26 move second child to first child (temp 4-component vector of int) 0:26 'txval21' (temp 4-component vector of int) -0:26 textureGatherOffset (global 4-component vector of int) +0:26 textureGatherOffset (temp 4-component vector of int) 0:26 Construct combined texture-sampler (temp isampler2DArray) 0:26 'g_tTex2di4' (uniform itexture2DArray) 0:26 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -36,7 +36,7 @@ gl_FragCoord origin is upper left 0:27 Sequence 0:27 move second child to first child (temp 4-component vector of uint) 0:27 'txval22' (temp 4-component vector of uint) -0:27 textureGatherOffset (global 4-component vector of uint) +0:27 textureGatherOffset (temp 4-component vector of uint) 0:27 Construct combined texture-sampler (temp usampler2DArray) 0:27 'g_tTex2du4' (uniform utexture2DArray) 0:27 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -104,7 +104,7 @@ gl_FragCoord origin is upper left 0:25 Sequence 0:25 move second child to first child (temp 4-component vector of float) 0:25 'txval20' (temp 4-component vector of float) -0:25 textureGatherOffset (global 4-component vector of float) +0:25 textureGatherOffset (temp 4-component vector of float) 0:25 Construct combined texture-sampler (temp sampler2DArray) 0:25 'g_tTex2df4' (uniform texture2DArray) 0:25 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -118,7 +118,7 @@ gl_FragCoord origin is upper left 0:26 Sequence 0:26 move second child to first child (temp 4-component vector of int) 0:26 'txval21' (temp 4-component vector of int) -0:26 textureGatherOffset (global 4-component vector of int) +0:26 textureGatherOffset (temp 4-component vector of int) 0:26 Construct combined texture-sampler (temp isampler2DArray) 0:26 'g_tTex2di4' (uniform itexture2DArray) 0:26 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -132,7 +132,7 @@ gl_FragCoord origin is upper left 0:27 Sequence 0:27 move second child to first child (temp 4-component vector of uint) 0:27 'txval22' (temp 4-component vector of uint) -0:27 textureGatherOffset (global 4-component vector of uint) +0:27 textureGatherOffset (temp 4-component vector of uint) 0:27 Construct combined texture-sampler (temp usampler2DArray) 0:27 'g_tTex2du4' (uniform utexture2DArray) 0:27 'g_sSamp' (layout(binding=0 ) uniform sampler) diff --git a/Test/baseResults/hlsl.gatherRGBA.array.dx10.frag.out b/Test/baseResults/hlsl.gatherRGBA.array.dx10.frag.out index eb7cf836..b04a8573 100644 --- a/Test/baseResults/hlsl.gatherRGBA.array.dx10.frag.out +++ b/Test/baseResults/hlsl.gatherRGBA.array.dx10.frag.out @@ -8,7 +8,7 @@ gl_FragCoord origin is upper left 0:33 Sequence 0:33 move second child to first child (temp 4-component vector of float) 0:33 'txval00' (temp 4-component vector of float) -0:33 textureGather (global 4-component vector of float) +0:33 textureGather (temp 4-component vector of float) 0:33 Construct combined texture-sampler (temp sampler2DArray) 0:33 'g_tTex2df4a' (uniform texture2DArray) 0:33 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -21,7 +21,7 @@ gl_FragCoord origin is upper left 0:34 Sequence 0:34 move second child to first child (temp 4-component vector of int) 0:34 'txval01' (temp 4-component vector of int) -0:34 textureGather (global 4-component vector of int) +0:34 textureGather (temp 4-component vector of int) 0:34 Construct combined texture-sampler (temp isampler2DArray) 0:34 'g_tTex2di4a' (uniform itexture2DArray) 0:34 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -34,7 +34,7 @@ gl_FragCoord origin is upper left 0:35 Sequence 0:35 move second child to first child (temp 4-component vector of uint) 0:35 'txval02' (temp 4-component vector of uint) -0:35 textureGather (global 4-component vector of uint) +0:35 textureGather (temp 4-component vector of uint) 0:35 Construct combined texture-sampler (temp usampler2DArray) 0:35 'g_tTex2du4a' (uniform utexture2DArray) 0:35 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -47,7 +47,7 @@ gl_FragCoord origin is upper left 0:37 Sequence 0:37 move second child to first child (temp 4-component vector of float) 0:37 'txval10' (temp 4-component vector of float) -0:37 textureGather (global 4-component vector of float) +0:37 textureGather (temp 4-component vector of float) 0:37 Construct combined texture-sampler (temp sampler2DArray) 0:37 'g_tTex2df4a' (uniform texture2DArray) 0:37 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -60,7 +60,7 @@ gl_FragCoord origin is upper left 0:38 Sequence 0:38 move second child to first child (temp 4-component vector of int) 0:38 'txval11' (temp 4-component vector of int) -0:38 textureGather (global 4-component vector of int) +0:38 textureGather (temp 4-component vector of int) 0:38 Construct combined texture-sampler (temp isampler2DArray) 0:38 'g_tTex2di4a' (uniform itexture2DArray) 0:38 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -73,7 +73,7 @@ gl_FragCoord origin is upper left 0:39 Sequence 0:39 move second child to first child (temp 4-component vector of uint) 0:39 'txval12' (temp 4-component vector of uint) -0:39 textureGather (global 4-component vector of uint) +0:39 textureGather (temp 4-component vector of uint) 0:39 Construct combined texture-sampler (temp usampler2DArray) 0:39 'g_tTex2du4a' (uniform utexture2DArray) 0:39 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -86,7 +86,7 @@ gl_FragCoord origin is upper left 0:41 Sequence 0:41 move second child to first child (temp 4-component vector of float) 0:41 'txval20' (temp 4-component vector of float) -0:41 textureGather (global 4-component vector of float) +0:41 textureGather (temp 4-component vector of float) 0:41 Construct combined texture-sampler (temp sampler2DArray) 0:41 'g_tTex2df4a' (uniform texture2DArray) 0:41 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -99,7 +99,7 @@ gl_FragCoord origin is upper left 0:42 Sequence 0:42 move second child to first child (temp 4-component vector of int) 0:42 'txval21' (temp 4-component vector of int) -0:42 textureGather (global 4-component vector of int) +0:42 textureGather (temp 4-component vector of int) 0:42 Construct combined texture-sampler (temp isampler2DArray) 0:42 'g_tTex2di4a' (uniform itexture2DArray) 0:42 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -112,7 +112,7 @@ gl_FragCoord origin is upper left 0:43 Sequence 0:43 move second child to first child (temp 4-component vector of uint) 0:43 'txval22' (temp 4-component vector of uint) -0:43 textureGather (global 4-component vector of uint) +0:43 textureGather (temp 4-component vector of uint) 0:43 Construct combined texture-sampler (temp usampler2DArray) 0:43 'g_tTex2du4a' (uniform utexture2DArray) 0:43 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -125,7 +125,7 @@ gl_FragCoord origin is upper left 0:45 Sequence 0:45 move second child to first child (temp 4-component vector of float) 0:45 'txval30' (temp 4-component vector of float) -0:45 textureGather (global 4-component vector of float) +0:45 textureGather (temp 4-component vector of float) 0:45 Construct combined texture-sampler (temp sampler2DArray) 0:45 'g_tTex2df4a' (uniform texture2DArray) 0:45 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -138,7 +138,7 @@ gl_FragCoord origin is upper left 0:46 Sequence 0:46 move second child to first child (temp 4-component vector of int) 0:46 'txval31' (temp 4-component vector of int) -0:46 textureGather (global 4-component vector of int) +0:46 textureGather (temp 4-component vector of int) 0:46 Construct combined texture-sampler (temp isampler2DArray) 0:46 'g_tTex2di4a' (uniform itexture2DArray) 0:46 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -151,7 +151,7 @@ gl_FragCoord origin is upper left 0:47 Sequence 0:47 move second child to first child (temp 4-component vector of uint) 0:47 'txval32' (temp 4-component vector of uint) -0:47 textureGather (global 4-component vector of uint) +0:47 textureGather (temp 4-component vector of uint) 0:47 Construct combined texture-sampler (temp usampler2DArray) 0:47 'g_tTex2du4a' (uniform utexture2DArray) 0:47 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -164,7 +164,7 @@ gl_FragCoord origin is upper left 0:51 Sequence 0:51 move second child to first child (temp 4-component vector of float) 0:51 'txval40' (temp 4-component vector of float) -0:51 textureGather (global 4-component vector of float) +0:51 textureGather (temp 4-component vector of float) 0:51 Construct combined texture-sampler (temp samplerCubeArray) 0:51 'g_tTexcdf4a' (uniform textureCubeArray) 0:51 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -177,7 +177,7 @@ gl_FragCoord origin is upper left 0:52 Sequence 0:52 move second child to first child (temp 4-component vector of int) 0:52 'txval41' (temp 4-component vector of int) -0:52 textureGather (global 4-component vector of int) +0:52 textureGather (temp 4-component vector of int) 0:52 Construct combined texture-sampler (temp isamplerCubeArray) 0:52 'g_tTexcdi4a' (uniform itextureCubeArray) 0:52 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -190,7 +190,7 @@ gl_FragCoord origin is upper left 0:53 Sequence 0:53 move second child to first child (temp 4-component vector of uint) 0:53 'txval42' (temp 4-component vector of uint) -0:53 textureGather (global 4-component vector of uint) +0:53 textureGather (temp 4-component vector of uint) 0:53 Construct combined texture-sampler (temp usamplerCubeArray) 0:53 'g_tTexcdu4a' (uniform utextureCubeArray) 0:53 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -203,7 +203,7 @@ gl_FragCoord origin is upper left 0:55 Sequence 0:55 move second child to first child (temp 4-component vector of float) 0:55 'txval50' (temp 4-component vector of float) -0:55 textureGather (global 4-component vector of float) +0:55 textureGather (temp 4-component vector of float) 0:55 Construct combined texture-sampler (temp samplerCubeArray) 0:55 'g_tTexcdf4a' (uniform textureCubeArray) 0:55 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -216,7 +216,7 @@ gl_FragCoord origin is upper left 0:56 Sequence 0:56 move second child to first child (temp 4-component vector of int) 0:56 'txval51' (temp 4-component vector of int) -0:56 textureGather (global 4-component vector of int) +0:56 textureGather (temp 4-component vector of int) 0:56 Construct combined texture-sampler (temp isamplerCubeArray) 0:56 'g_tTexcdi4a' (uniform itextureCubeArray) 0:56 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -229,7 +229,7 @@ gl_FragCoord origin is upper left 0:57 Sequence 0:57 move second child to first child (temp 4-component vector of uint) 0:57 'txval52' (temp 4-component vector of uint) -0:57 textureGather (global 4-component vector of uint) +0:57 textureGather (temp 4-component vector of uint) 0:57 Construct combined texture-sampler (temp usamplerCubeArray) 0:57 'g_tTexcdu4a' (uniform utextureCubeArray) 0:57 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -242,7 +242,7 @@ gl_FragCoord origin is upper left 0:59 Sequence 0:59 move second child to first child (temp 4-component vector of float) 0:59 'txval60' (temp 4-component vector of float) -0:59 textureGather (global 4-component vector of float) +0:59 textureGather (temp 4-component vector of float) 0:59 Construct combined texture-sampler (temp samplerCubeArray) 0:59 'g_tTexcdf4a' (uniform textureCubeArray) 0:59 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -255,7 +255,7 @@ gl_FragCoord origin is upper left 0:60 Sequence 0:60 move second child to first child (temp 4-component vector of int) 0:60 'txval61' (temp 4-component vector of int) -0:60 textureGather (global 4-component vector of int) +0:60 textureGather (temp 4-component vector of int) 0:60 Construct combined texture-sampler (temp isamplerCubeArray) 0:60 'g_tTexcdi4a' (uniform itextureCubeArray) 0:60 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -268,7 +268,7 @@ gl_FragCoord origin is upper left 0:61 Sequence 0:61 move second child to first child (temp 4-component vector of uint) 0:61 'txval62' (temp 4-component vector of uint) -0:61 textureGather (global 4-component vector of uint) +0:61 textureGather (temp 4-component vector of uint) 0:61 Construct combined texture-sampler (temp usamplerCubeArray) 0:61 'g_tTexcdu4a' (uniform utextureCubeArray) 0:61 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -281,7 +281,7 @@ gl_FragCoord origin is upper left 0:63 Sequence 0:63 move second child to first child (temp 4-component vector of float) 0:63 'txval70' (temp 4-component vector of float) -0:63 textureGather (global 4-component vector of float) +0:63 textureGather (temp 4-component vector of float) 0:63 Construct combined texture-sampler (temp samplerCubeArray) 0:63 'g_tTexcdf4a' (uniform textureCubeArray) 0:63 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -294,7 +294,7 @@ gl_FragCoord origin is upper left 0:64 Sequence 0:64 move second child to first child (temp 4-component vector of int) 0:64 'txval71' (temp 4-component vector of int) -0:64 textureGather (global 4-component vector of int) +0:64 textureGather (temp 4-component vector of int) 0:64 Construct combined texture-sampler (temp isamplerCubeArray) 0:64 'g_tTexcdi4a' (uniform itextureCubeArray) 0:64 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -307,7 +307,7 @@ gl_FragCoord origin is upper left 0:65 Sequence 0:65 move second child to first child (temp 4-component vector of uint) 0:65 'txval72' (temp 4-component vector of uint) -0:65 textureGather (global 4-component vector of uint) +0:65 textureGather (temp 4-component vector of uint) 0:65 Construct combined texture-sampler (temp usamplerCubeArray) 0:65 'g_tTexcdu4a' (uniform utextureCubeArray) 0:65 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -378,7 +378,7 @@ gl_FragCoord origin is upper left 0:33 Sequence 0:33 move second child to first child (temp 4-component vector of float) 0:33 'txval00' (temp 4-component vector of float) -0:33 textureGather (global 4-component vector of float) +0:33 textureGather (temp 4-component vector of float) 0:33 Construct combined texture-sampler (temp sampler2DArray) 0:33 'g_tTex2df4a' (uniform texture2DArray) 0:33 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -391,7 +391,7 @@ gl_FragCoord origin is upper left 0:34 Sequence 0:34 move second child to first child (temp 4-component vector of int) 0:34 'txval01' (temp 4-component vector of int) -0:34 textureGather (global 4-component vector of int) +0:34 textureGather (temp 4-component vector of int) 0:34 Construct combined texture-sampler (temp isampler2DArray) 0:34 'g_tTex2di4a' (uniform itexture2DArray) 0:34 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -404,7 +404,7 @@ gl_FragCoord origin is upper left 0:35 Sequence 0:35 move second child to first child (temp 4-component vector of uint) 0:35 'txval02' (temp 4-component vector of uint) -0:35 textureGather (global 4-component vector of uint) +0:35 textureGather (temp 4-component vector of uint) 0:35 Construct combined texture-sampler (temp usampler2DArray) 0:35 'g_tTex2du4a' (uniform utexture2DArray) 0:35 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -417,7 +417,7 @@ gl_FragCoord origin is upper left 0:37 Sequence 0:37 move second child to first child (temp 4-component vector of float) 0:37 'txval10' (temp 4-component vector of float) -0:37 textureGather (global 4-component vector of float) +0:37 textureGather (temp 4-component vector of float) 0:37 Construct combined texture-sampler (temp sampler2DArray) 0:37 'g_tTex2df4a' (uniform texture2DArray) 0:37 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -430,7 +430,7 @@ gl_FragCoord origin is upper left 0:38 Sequence 0:38 move second child to first child (temp 4-component vector of int) 0:38 'txval11' (temp 4-component vector of int) -0:38 textureGather (global 4-component vector of int) +0:38 textureGather (temp 4-component vector of int) 0:38 Construct combined texture-sampler (temp isampler2DArray) 0:38 'g_tTex2di4a' (uniform itexture2DArray) 0:38 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -443,7 +443,7 @@ gl_FragCoord origin is upper left 0:39 Sequence 0:39 move second child to first child (temp 4-component vector of uint) 0:39 'txval12' (temp 4-component vector of uint) -0:39 textureGather (global 4-component vector of uint) +0:39 textureGather (temp 4-component vector of uint) 0:39 Construct combined texture-sampler (temp usampler2DArray) 0:39 'g_tTex2du4a' (uniform utexture2DArray) 0:39 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -456,7 +456,7 @@ gl_FragCoord origin is upper left 0:41 Sequence 0:41 move second child to first child (temp 4-component vector of float) 0:41 'txval20' (temp 4-component vector of float) -0:41 textureGather (global 4-component vector of float) +0:41 textureGather (temp 4-component vector of float) 0:41 Construct combined texture-sampler (temp sampler2DArray) 0:41 'g_tTex2df4a' (uniform texture2DArray) 0:41 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -469,7 +469,7 @@ gl_FragCoord origin is upper left 0:42 Sequence 0:42 move second child to first child (temp 4-component vector of int) 0:42 'txval21' (temp 4-component vector of int) -0:42 textureGather (global 4-component vector of int) +0:42 textureGather (temp 4-component vector of int) 0:42 Construct combined texture-sampler (temp isampler2DArray) 0:42 'g_tTex2di4a' (uniform itexture2DArray) 0:42 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -482,7 +482,7 @@ gl_FragCoord origin is upper left 0:43 Sequence 0:43 move second child to first child (temp 4-component vector of uint) 0:43 'txval22' (temp 4-component vector of uint) -0:43 textureGather (global 4-component vector of uint) +0:43 textureGather (temp 4-component vector of uint) 0:43 Construct combined texture-sampler (temp usampler2DArray) 0:43 'g_tTex2du4a' (uniform utexture2DArray) 0:43 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -495,7 +495,7 @@ gl_FragCoord origin is upper left 0:45 Sequence 0:45 move second child to first child (temp 4-component vector of float) 0:45 'txval30' (temp 4-component vector of float) -0:45 textureGather (global 4-component vector of float) +0:45 textureGather (temp 4-component vector of float) 0:45 Construct combined texture-sampler (temp sampler2DArray) 0:45 'g_tTex2df4a' (uniform texture2DArray) 0:45 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -508,7 +508,7 @@ gl_FragCoord origin is upper left 0:46 Sequence 0:46 move second child to first child (temp 4-component vector of int) 0:46 'txval31' (temp 4-component vector of int) -0:46 textureGather (global 4-component vector of int) +0:46 textureGather (temp 4-component vector of int) 0:46 Construct combined texture-sampler (temp isampler2DArray) 0:46 'g_tTex2di4a' (uniform itexture2DArray) 0:46 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -521,7 +521,7 @@ gl_FragCoord origin is upper left 0:47 Sequence 0:47 move second child to first child (temp 4-component vector of uint) 0:47 'txval32' (temp 4-component vector of uint) -0:47 textureGather (global 4-component vector of uint) +0:47 textureGather (temp 4-component vector of uint) 0:47 Construct combined texture-sampler (temp usampler2DArray) 0:47 'g_tTex2du4a' (uniform utexture2DArray) 0:47 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -534,7 +534,7 @@ gl_FragCoord origin is upper left 0:51 Sequence 0:51 move second child to first child (temp 4-component vector of float) 0:51 'txval40' (temp 4-component vector of float) -0:51 textureGather (global 4-component vector of float) +0:51 textureGather (temp 4-component vector of float) 0:51 Construct combined texture-sampler (temp samplerCubeArray) 0:51 'g_tTexcdf4a' (uniform textureCubeArray) 0:51 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -547,7 +547,7 @@ gl_FragCoord origin is upper left 0:52 Sequence 0:52 move second child to first child (temp 4-component vector of int) 0:52 'txval41' (temp 4-component vector of int) -0:52 textureGather (global 4-component vector of int) +0:52 textureGather (temp 4-component vector of int) 0:52 Construct combined texture-sampler (temp isamplerCubeArray) 0:52 'g_tTexcdi4a' (uniform itextureCubeArray) 0:52 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -560,7 +560,7 @@ gl_FragCoord origin is upper left 0:53 Sequence 0:53 move second child to first child (temp 4-component vector of uint) 0:53 'txval42' (temp 4-component vector of uint) -0:53 textureGather (global 4-component vector of uint) +0:53 textureGather (temp 4-component vector of uint) 0:53 Construct combined texture-sampler (temp usamplerCubeArray) 0:53 'g_tTexcdu4a' (uniform utextureCubeArray) 0:53 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -573,7 +573,7 @@ gl_FragCoord origin is upper left 0:55 Sequence 0:55 move second child to first child (temp 4-component vector of float) 0:55 'txval50' (temp 4-component vector of float) -0:55 textureGather (global 4-component vector of float) +0:55 textureGather (temp 4-component vector of float) 0:55 Construct combined texture-sampler (temp samplerCubeArray) 0:55 'g_tTexcdf4a' (uniform textureCubeArray) 0:55 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -586,7 +586,7 @@ gl_FragCoord origin is upper left 0:56 Sequence 0:56 move second child to first child (temp 4-component vector of int) 0:56 'txval51' (temp 4-component vector of int) -0:56 textureGather (global 4-component vector of int) +0:56 textureGather (temp 4-component vector of int) 0:56 Construct combined texture-sampler (temp isamplerCubeArray) 0:56 'g_tTexcdi4a' (uniform itextureCubeArray) 0:56 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -599,7 +599,7 @@ gl_FragCoord origin is upper left 0:57 Sequence 0:57 move second child to first child (temp 4-component vector of uint) 0:57 'txval52' (temp 4-component vector of uint) -0:57 textureGather (global 4-component vector of uint) +0:57 textureGather (temp 4-component vector of uint) 0:57 Construct combined texture-sampler (temp usamplerCubeArray) 0:57 'g_tTexcdu4a' (uniform utextureCubeArray) 0:57 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -612,7 +612,7 @@ gl_FragCoord origin is upper left 0:59 Sequence 0:59 move second child to first child (temp 4-component vector of float) 0:59 'txval60' (temp 4-component vector of float) -0:59 textureGather (global 4-component vector of float) +0:59 textureGather (temp 4-component vector of float) 0:59 Construct combined texture-sampler (temp samplerCubeArray) 0:59 'g_tTexcdf4a' (uniform textureCubeArray) 0:59 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -625,7 +625,7 @@ gl_FragCoord origin is upper left 0:60 Sequence 0:60 move second child to first child (temp 4-component vector of int) 0:60 'txval61' (temp 4-component vector of int) -0:60 textureGather (global 4-component vector of int) +0:60 textureGather (temp 4-component vector of int) 0:60 Construct combined texture-sampler (temp isamplerCubeArray) 0:60 'g_tTexcdi4a' (uniform itextureCubeArray) 0:60 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -638,7 +638,7 @@ gl_FragCoord origin is upper left 0:61 Sequence 0:61 move second child to first child (temp 4-component vector of uint) 0:61 'txval62' (temp 4-component vector of uint) -0:61 textureGather (global 4-component vector of uint) +0:61 textureGather (temp 4-component vector of uint) 0:61 Construct combined texture-sampler (temp usamplerCubeArray) 0:61 'g_tTexcdu4a' (uniform utextureCubeArray) 0:61 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -651,7 +651,7 @@ gl_FragCoord origin is upper left 0:63 Sequence 0:63 move second child to first child (temp 4-component vector of float) 0:63 'txval70' (temp 4-component vector of float) -0:63 textureGather (global 4-component vector of float) +0:63 textureGather (temp 4-component vector of float) 0:63 Construct combined texture-sampler (temp samplerCubeArray) 0:63 'g_tTexcdf4a' (uniform textureCubeArray) 0:63 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -664,7 +664,7 @@ gl_FragCoord origin is upper left 0:64 Sequence 0:64 move second child to first child (temp 4-component vector of int) 0:64 'txval71' (temp 4-component vector of int) -0:64 textureGather (global 4-component vector of int) +0:64 textureGather (temp 4-component vector of int) 0:64 Construct combined texture-sampler (temp isamplerCubeArray) 0:64 'g_tTexcdi4a' (uniform itextureCubeArray) 0:64 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -677,7 +677,7 @@ gl_FragCoord origin is upper left 0:65 Sequence 0:65 move second child to first child (temp 4-component vector of uint) 0:65 'txval72' (temp 4-component vector of uint) -0:65 textureGather (global 4-component vector of uint) +0:65 textureGather (temp 4-component vector of uint) 0:65 Construct combined texture-sampler (temp usamplerCubeArray) 0:65 'g_tTexcdu4a' (uniform utextureCubeArray) 0:65 'g_sSamp' (layout(binding=0 ) uniform sampler) diff --git a/Test/baseResults/hlsl.gatherRGBA.basic.dx10.frag.out b/Test/baseResults/hlsl.gatherRGBA.basic.dx10.frag.out index b92874e8..d2fb0b17 100644 --- a/Test/baseResults/hlsl.gatherRGBA.basic.dx10.frag.out +++ b/Test/baseResults/hlsl.gatherRGBA.basic.dx10.frag.out @@ -8,7 +8,7 @@ gl_FragCoord origin is upper left 0:39 Sequence 0:39 move second child to first child (temp 4-component vector of float) 0:39 'txval00' (temp 4-component vector of float) -0:39 textureGather (global 4-component vector of float) +0:39 textureGather (temp 4-component vector of float) 0:39 Construct combined texture-sampler (temp sampler2D) 0:39 'g_tTex2df4' (uniform texture2D) 0:39 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -21,7 +21,7 @@ gl_FragCoord origin is upper left 0:40 Sequence 0:40 move second child to first child (temp 4-component vector of int) 0:40 'txval01' (temp 4-component vector of int) -0:40 textureGather (global 4-component vector of int) +0:40 textureGather (temp 4-component vector of int) 0:40 Construct combined texture-sampler (temp isampler2D) 0:40 'g_tTex2di4' (uniform itexture2D) 0:40 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -34,7 +34,7 @@ gl_FragCoord origin is upper left 0:41 Sequence 0:41 move second child to first child (temp 4-component vector of uint) 0:41 'txval02' (temp 4-component vector of uint) -0:41 textureGather (global 4-component vector of uint) +0:41 textureGather (temp 4-component vector of uint) 0:41 Construct combined texture-sampler (temp usampler2D) 0:41 'g_tTex2du4' (uniform utexture2D) 0:41 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -47,7 +47,7 @@ gl_FragCoord origin is upper left 0:43 Sequence 0:43 move second child to first child (temp 4-component vector of float) 0:43 'txval10' (temp 4-component vector of float) -0:43 textureGather (global 4-component vector of float) +0:43 textureGather (temp 4-component vector of float) 0:43 Construct combined texture-sampler (temp sampler2D) 0:43 'g_tTex2df4' (uniform texture2D) 0:43 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -60,7 +60,7 @@ gl_FragCoord origin is upper left 0:44 Sequence 0:44 move second child to first child (temp 4-component vector of int) 0:44 'txval11' (temp 4-component vector of int) -0:44 textureGather (global 4-component vector of int) +0:44 textureGather (temp 4-component vector of int) 0:44 Construct combined texture-sampler (temp isampler2D) 0:44 'g_tTex2di4' (uniform itexture2D) 0:44 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -73,7 +73,7 @@ gl_FragCoord origin is upper left 0:45 Sequence 0:45 move second child to first child (temp 4-component vector of uint) 0:45 'txval12' (temp 4-component vector of uint) -0:45 textureGather (global 4-component vector of uint) +0:45 textureGather (temp 4-component vector of uint) 0:45 Construct combined texture-sampler (temp usampler2D) 0:45 'g_tTex2du4' (uniform utexture2D) 0:45 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -86,7 +86,7 @@ gl_FragCoord origin is upper left 0:47 Sequence 0:47 move second child to first child (temp 4-component vector of float) 0:47 'txval20' (temp 4-component vector of float) -0:47 textureGather (global 4-component vector of float) +0:47 textureGather (temp 4-component vector of float) 0:47 Construct combined texture-sampler (temp sampler2D) 0:47 'g_tTex2df4' (uniform texture2D) 0:47 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -99,7 +99,7 @@ gl_FragCoord origin is upper left 0:48 Sequence 0:48 move second child to first child (temp 4-component vector of int) 0:48 'txval21' (temp 4-component vector of int) -0:48 textureGather (global 4-component vector of int) +0:48 textureGather (temp 4-component vector of int) 0:48 Construct combined texture-sampler (temp isampler2D) 0:48 'g_tTex2di4' (uniform itexture2D) 0:48 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -112,7 +112,7 @@ gl_FragCoord origin is upper left 0:49 Sequence 0:49 move second child to first child (temp 4-component vector of uint) 0:49 'txval22' (temp 4-component vector of uint) -0:49 textureGather (global 4-component vector of uint) +0:49 textureGather (temp 4-component vector of uint) 0:49 Construct combined texture-sampler (temp usampler2D) 0:49 'g_tTex2du4' (uniform utexture2D) 0:49 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -125,7 +125,7 @@ gl_FragCoord origin is upper left 0:51 Sequence 0:51 move second child to first child (temp 4-component vector of float) 0:51 'txval30' (temp 4-component vector of float) -0:51 textureGather (global 4-component vector of float) +0:51 textureGather (temp 4-component vector of float) 0:51 Construct combined texture-sampler (temp sampler2D) 0:51 'g_tTex2df4' (uniform texture2D) 0:51 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -138,7 +138,7 @@ gl_FragCoord origin is upper left 0:52 Sequence 0:52 move second child to first child (temp 4-component vector of int) 0:52 'txval31' (temp 4-component vector of int) -0:52 textureGather (global 4-component vector of int) +0:52 textureGather (temp 4-component vector of int) 0:52 Construct combined texture-sampler (temp isampler2D) 0:52 'g_tTex2di4' (uniform itexture2D) 0:52 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -151,7 +151,7 @@ gl_FragCoord origin is upper left 0:53 Sequence 0:53 move second child to first child (temp 4-component vector of uint) 0:53 'txval32' (temp 4-component vector of uint) -0:53 textureGather (global 4-component vector of uint) +0:53 textureGather (temp 4-component vector of uint) 0:53 Construct combined texture-sampler (temp usampler2D) 0:53 'g_tTex2du4' (uniform utexture2D) 0:53 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -164,7 +164,7 @@ gl_FragCoord origin is upper left 0:57 Sequence 0:57 move second child to first child (temp 4-component vector of float) 0:57 'txval40' (temp 4-component vector of float) -0:57 textureGather (global 4-component vector of float) +0:57 textureGather (temp 4-component vector of float) 0:57 Construct combined texture-sampler (temp samplerCube) 0:57 'g_tTexcdf4' (uniform textureCube) 0:57 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -177,7 +177,7 @@ gl_FragCoord origin is upper left 0:58 Sequence 0:58 move second child to first child (temp 4-component vector of int) 0:58 'txval41' (temp 4-component vector of int) -0:58 textureGather (global 4-component vector of int) +0:58 textureGather (temp 4-component vector of int) 0:58 Construct combined texture-sampler (temp isamplerCube) 0:58 'g_tTexcdi4' (uniform itextureCube) 0:58 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -190,7 +190,7 @@ gl_FragCoord origin is upper left 0:59 Sequence 0:59 move second child to first child (temp 4-component vector of uint) 0:59 'txval42' (temp 4-component vector of uint) -0:59 textureGather (global 4-component vector of uint) +0:59 textureGather (temp 4-component vector of uint) 0:59 Construct combined texture-sampler (temp usamplerCube) 0:59 'g_tTexcdu4' (uniform utextureCube) 0:59 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -203,7 +203,7 @@ gl_FragCoord origin is upper left 0:61 Sequence 0:61 move second child to first child (temp 4-component vector of float) 0:61 'txval50' (temp 4-component vector of float) -0:61 textureGather (global 4-component vector of float) +0:61 textureGather (temp 4-component vector of float) 0:61 Construct combined texture-sampler (temp samplerCube) 0:61 'g_tTexcdf4' (uniform textureCube) 0:61 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -216,7 +216,7 @@ gl_FragCoord origin is upper left 0:62 Sequence 0:62 move second child to first child (temp 4-component vector of int) 0:62 'txval51' (temp 4-component vector of int) -0:62 textureGather (global 4-component vector of int) +0:62 textureGather (temp 4-component vector of int) 0:62 Construct combined texture-sampler (temp isamplerCube) 0:62 'g_tTexcdi4' (uniform itextureCube) 0:62 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -229,7 +229,7 @@ gl_FragCoord origin is upper left 0:63 Sequence 0:63 move second child to first child (temp 4-component vector of uint) 0:63 'txval52' (temp 4-component vector of uint) -0:63 textureGather (global 4-component vector of uint) +0:63 textureGather (temp 4-component vector of uint) 0:63 Construct combined texture-sampler (temp usamplerCube) 0:63 'g_tTexcdu4' (uniform utextureCube) 0:63 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -242,7 +242,7 @@ gl_FragCoord origin is upper left 0:65 Sequence 0:65 move second child to first child (temp 4-component vector of float) 0:65 'txval60' (temp 4-component vector of float) -0:65 textureGather (global 4-component vector of float) +0:65 textureGather (temp 4-component vector of float) 0:65 Construct combined texture-sampler (temp samplerCube) 0:65 'g_tTexcdf4' (uniform textureCube) 0:65 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -255,7 +255,7 @@ gl_FragCoord origin is upper left 0:66 Sequence 0:66 move second child to first child (temp 4-component vector of int) 0:66 'txval61' (temp 4-component vector of int) -0:66 textureGather (global 4-component vector of int) +0:66 textureGather (temp 4-component vector of int) 0:66 Construct combined texture-sampler (temp isamplerCube) 0:66 'g_tTexcdi4' (uniform itextureCube) 0:66 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -268,7 +268,7 @@ gl_FragCoord origin is upper left 0:67 Sequence 0:67 move second child to first child (temp 4-component vector of uint) 0:67 'txval62' (temp 4-component vector of uint) -0:67 textureGather (global 4-component vector of uint) +0:67 textureGather (temp 4-component vector of uint) 0:67 Construct combined texture-sampler (temp usamplerCube) 0:67 'g_tTexcdu4' (uniform utextureCube) 0:67 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -281,7 +281,7 @@ gl_FragCoord origin is upper left 0:69 Sequence 0:69 move second child to first child (temp 4-component vector of float) 0:69 'txval70' (temp 4-component vector of float) -0:69 textureGather (global 4-component vector of float) +0:69 textureGather (temp 4-component vector of float) 0:69 Construct combined texture-sampler (temp samplerCube) 0:69 'g_tTexcdf4' (uniform textureCube) 0:69 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -294,7 +294,7 @@ gl_FragCoord origin is upper left 0:70 Sequence 0:70 move second child to first child (temp 4-component vector of int) 0:70 'txval71' (temp 4-component vector of int) -0:70 textureGather (global 4-component vector of int) +0:70 textureGather (temp 4-component vector of int) 0:70 Construct combined texture-sampler (temp isamplerCube) 0:70 'g_tTexcdi4' (uniform itextureCube) 0:70 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -307,7 +307,7 @@ gl_FragCoord origin is upper left 0:71 Sequence 0:71 move second child to first child (temp 4-component vector of uint) 0:71 'txval72' (temp 4-component vector of uint) -0:71 textureGather (global 4-component vector of uint) +0:71 textureGather (temp 4-component vector of uint) 0:71 Construct combined texture-sampler (temp usamplerCube) 0:71 'g_tTexcdu4' (uniform utextureCube) 0:71 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -382,7 +382,7 @@ gl_FragCoord origin is upper left 0:39 Sequence 0:39 move second child to first child (temp 4-component vector of float) 0:39 'txval00' (temp 4-component vector of float) -0:39 textureGather (global 4-component vector of float) +0:39 textureGather (temp 4-component vector of float) 0:39 Construct combined texture-sampler (temp sampler2D) 0:39 'g_tTex2df4' (uniform texture2D) 0:39 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -395,7 +395,7 @@ gl_FragCoord origin is upper left 0:40 Sequence 0:40 move second child to first child (temp 4-component vector of int) 0:40 'txval01' (temp 4-component vector of int) -0:40 textureGather (global 4-component vector of int) +0:40 textureGather (temp 4-component vector of int) 0:40 Construct combined texture-sampler (temp isampler2D) 0:40 'g_tTex2di4' (uniform itexture2D) 0:40 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -408,7 +408,7 @@ gl_FragCoord origin is upper left 0:41 Sequence 0:41 move second child to first child (temp 4-component vector of uint) 0:41 'txval02' (temp 4-component vector of uint) -0:41 textureGather (global 4-component vector of uint) +0:41 textureGather (temp 4-component vector of uint) 0:41 Construct combined texture-sampler (temp usampler2D) 0:41 'g_tTex2du4' (uniform utexture2D) 0:41 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -421,7 +421,7 @@ gl_FragCoord origin is upper left 0:43 Sequence 0:43 move second child to first child (temp 4-component vector of float) 0:43 'txval10' (temp 4-component vector of float) -0:43 textureGather (global 4-component vector of float) +0:43 textureGather (temp 4-component vector of float) 0:43 Construct combined texture-sampler (temp sampler2D) 0:43 'g_tTex2df4' (uniform texture2D) 0:43 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -434,7 +434,7 @@ gl_FragCoord origin is upper left 0:44 Sequence 0:44 move second child to first child (temp 4-component vector of int) 0:44 'txval11' (temp 4-component vector of int) -0:44 textureGather (global 4-component vector of int) +0:44 textureGather (temp 4-component vector of int) 0:44 Construct combined texture-sampler (temp isampler2D) 0:44 'g_tTex2di4' (uniform itexture2D) 0:44 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -447,7 +447,7 @@ gl_FragCoord origin is upper left 0:45 Sequence 0:45 move second child to first child (temp 4-component vector of uint) 0:45 'txval12' (temp 4-component vector of uint) -0:45 textureGather (global 4-component vector of uint) +0:45 textureGather (temp 4-component vector of uint) 0:45 Construct combined texture-sampler (temp usampler2D) 0:45 'g_tTex2du4' (uniform utexture2D) 0:45 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -460,7 +460,7 @@ gl_FragCoord origin is upper left 0:47 Sequence 0:47 move second child to first child (temp 4-component vector of float) 0:47 'txval20' (temp 4-component vector of float) -0:47 textureGather (global 4-component vector of float) +0:47 textureGather (temp 4-component vector of float) 0:47 Construct combined texture-sampler (temp sampler2D) 0:47 'g_tTex2df4' (uniform texture2D) 0:47 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -473,7 +473,7 @@ gl_FragCoord origin is upper left 0:48 Sequence 0:48 move second child to first child (temp 4-component vector of int) 0:48 'txval21' (temp 4-component vector of int) -0:48 textureGather (global 4-component vector of int) +0:48 textureGather (temp 4-component vector of int) 0:48 Construct combined texture-sampler (temp isampler2D) 0:48 'g_tTex2di4' (uniform itexture2D) 0:48 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -486,7 +486,7 @@ gl_FragCoord origin is upper left 0:49 Sequence 0:49 move second child to first child (temp 4-component vector of uint) 0:49 'txval22' (temp 4-component vector of uint) -0:49 textureGather (global 4-component vector of uint) +0:49 textureGather (temp 4-component vector of uint) 0:49 Construct combined texture-sampler (temp usampler2D) 0:49 'g_tTex2du4' (uniform utexture2D) 0:49 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -499,7 +499,7 @@ gl_FragCoord origin is upper left 0:51 Sequence 0:51 move second child to first child (temp 4-component vector of float) 0:51 'txval30' (temp 4-component vector of float) -0:51 textureGather (global 4-component vector of float) +0:51 textureGather (temp 4-component vector of float) 0:51 Construct combined texture-sampler (temp sampler2D) 0:51 'g_tTex2df4' (uniform texture2D) 0:51 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -512,7 +512,7 @@ gl_FragCoord origin is upper left 0:52 Sequence 0:52 move second child to first child (temp 4-component vector of int) 0:52 'txval31' (temp 4-component vector of int) -0:52 textureGather (global 4-component vector of int) +0:52 textureGather (temp 4-component vector of int) 0:52 Construct combined texture-sampler (temp isampler2D) 0:52 'g_tTex2di4' (uniform itexture2D) 0:52 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -525,7 +525,7 @@ gl_FragCoord origin is upper left 0:53 Sequence 0:53 move second child to first child (temp 4-component vector of uint) 0:53 'txval32' (temp 4-component vector of uint) -0:53 textureGather (global 4-component vector of uint) +0:53 textureGather (temp 4-component vector of uint) 0:53 Construct combined texture-sampler (temp usampler2D) 0:53 'g_tTex2du4' (uniform utexture2D) 0:53 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -538,7 +538,7 @@ gl_FragCoord origin is upper left 0:57 Sequence 0:57 move second child to first child (temp 4-component vector of float) 0:57 'txval40' (temp 4-component vector of float) -0:57 textureGather (global 4-component vector of float) +0:57 textureGather (temp 4-component vector of float) 0:57 Construct combined texture-sampler (temp samplerCube) 0:57 'g_tTexcdf4' (uniform textureCube) 0:57 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -551,7 +551,7 @@ gl_FragCoord origin is upper left 0:58 Sequence 0:58 move second child to first child (temp 4-component vector of int) 0:58 'txval41' (temp 4-component vector of int) -0:58 textureGather (global 4-component vector of int) +0:58 textureGather (temp 4-component vector of int) 0:58 Construct combined texture-sampler (temp isamplerCube) 0:58 'g_tTexcdi4' (uniform itextureCube) 0:58 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -564,7 +564,7 @@ gl_FragCoord origin is upper left 0:59 Sequence 0:59 move second child to first child (temp 4-component vector of uint) 0:59 'txval42' (temp 4-component vector of uint) -0:59 textureGather (global 4-component vector of uint) +0:59 textureGather (temp 4-component vector of uint) 0:59 Construct combined texture-sampler (temp usamplerCube) 0:59 'g_tTexcdu4' (uniform utextureCube) 0:59 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -577,7 +577,7 @@ gl_FragCoord origin is upper left 0:61 Sequence 0:61 move second child to first child (temp 4-component vector of float) 0:61 'txval50' (temp 4-component vector of float) -0:61 textureGather (global 4-component vector of float) +0:61 textureGather (temp 4-component vector of float) 0:61 Construct combined texture-sampler (temp samplerCube) 0:61 'g_tTexcdf4' (uniform textureCube) 0:61 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -590,7 +590,7 @@ gl_FragCoord origin is upper left 0:62 Sequence 0:62 move second child to first child (temp 4-component vector of int) 0:62 'txval51' (temp 4-component vector of int) -0:62 textureGather (global 4-component vector of int) +0:62 textureGather (temp 4-component vector of int) 0:62 Construct combined texture-sampler (temp isamplerCube) 0:62 'g_tTexcdi4' (uniform itextureCube) 0:62 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -603,7 +603,7 @@ gl_FragCoord origin is upper left 0:63 Sequence 0:63 move second child to first child (temp 4-component vector of uint) 0:63 'txval52' (temp 4-component vector of uint) -0:63 textureGather (global 4-component vector of uint) +0:63 textureGather (temp 4-component vector of uint) 0:63 Construct combined texture-sampler (temp usamplerCube) 0:63 'g_tTexcdu4' (uniform utextureCube) 0:63 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -616,7 +616,7 @@ gl_FragCoord origin is upper left 0:65 Sequence 0:65 move second child to first child (temp 4-component vector of float) 0:65 'txval60' (temp 4-component vector of float) -0:65 textureGather (global 4-component vector of float) +0:65 textureGather (temp 4-component vector of float) 0:65 Construct combined texture-sampler (temp samplerCube) 0:65 'g_tTexcdf4' (uniform textureCube) 0:65 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -629,7 +629,7 @@ gl_FragCoord origin is upper left 0:66 Sequence 0:66 move second child to first child (temp 4-component vector of int) 0:66 'txval61' (temp 4-component vector of int) -0:66 textureGather (global 4-component vector of int) +0:66 textureGather (temp 4-component vector of int) 0:66 Construct combined texture-sampler (temp isamplerCube) 0:66 'g_tTexcdi4' (uniform itextureCube) 0:66 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -642,7 +642,7 @@ gl_FragCoord origin is upper left 0:67 Sequence 0:67 move second child to first child (temp 4-component vector of uint) 0:67 'txval62' (temp 4-component vector of uint) -0:67 textureGather (global 4-component vector of uint) +0:67 textureGather (temp 4-component vector of uint) 0:67 Construct combined texture-sampler (temp usamplerCube) 0:67 'g_tTexcdu4' (uniform utextureCube) 0:67 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -655,7 +655,7 @@ gl_FragCoord origin is upper left 0:69 Sequence 0:69 move second child to first child (temp 4-component vector of float) 0:69 'txval70' (temp 4-component vector of float) -0:69 textureGather (global 4-component vector of float) +0:69 textureGather (temp 4-component vector of float) 0:69 Construct combined texture-sampler (temp samplerCube) 0:69 'g_tTexcdf4' (uniform textureCube) 0:69 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -668,7 +668,7 @@ gl_FragCoord origin is upper left 0:70 Sequence 0:70 move second child to first child (temp 4-component vector of int) 0:70 'txval71' (temp 4-component vector of int) -0:70 textureGather (global 4-component vector of int) +0:70 textureGather (temp 4-component vector of int) 0:70 Construct combined texture-sampler (temp isamplerCube) 0:70 'g_tTexcdi4' (uniform itextureCube) 0:70 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -681,7 +681,7 @@ gl_FragCoord origin is upper left 0:71 Sequence 0:71 move second child to first child (temp 4-component vector of uint) 0:71 'txval72' (temp 4-component vector of uint) -0:71 textureGather (global 4-component vector of uint) +0:71 textureGather (temp 4-component vector of uint) 0:71 Construct combined texture-sampler (temp usamplerCube) 0:71 'g_tTexcdu4' (uniform utextureCube) 0:71 'g_sSamp' (layout(binding=0 ) uniform sampler) diff --git a/Test/baseResults/hlsl.gatherRGBA.offset.dx10.frag.out b/Test/baseResults/hlsl.gatherRGBA.offset.dx10.frag.out index 5da611cf..43395741 100644 --- a/Test/baseResults/hlsl.gatherRGBA.offset.dx10.frag.out +++ b/Test/baseResults/hlsl.gatherRGBA.offset.dx10.frag.out @@ -8,7 +8,7 @@ gl_FragCoord origin is upper left 0:46 Sequence 0:46 move second child to first child (temp 4-component vector of float) 0:46 'txval001' (temp 4-component vector of float) -0:46 textureGatherOffset (global 4-component vector of float) +0:46 textureGatherOffset (temp 4-component vector of float) 0:46 Construct combined texture-sampler (temp sampler2D) 0:46 'g_tTex2df4' (uniform texture2D) 0:46 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -25,7 +25,7 @@ gl_FragCoord origin is upper left 0:47 Sequence 0:47 move second child to first child (temp 4-component vector of int) 0:47 'txval011' (temp 4-component vector of int) -0:47 textureGatherOffset (global 4-component vector of int) +0:47 textureGatherOffset (temp 4-component vector of int) 0:47 Construct combined texture-sampler (temp isampler2D) 0:47 'g_tTex2di4' (uniform itexture2D) 0:47 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -42,7 +42,7 @@ gl_FragCoord origin is upper left 0:48 Sequence 0:48 move second child to first child (temp 4-component vector of uint) 0:48 'txval021' (temp 4-component vector of uint) -0:48 textureGatherOffset (global 4-component vector of uint) +0:48 textureGatherOffset (temp 4-component vector of uint) 0:48 Construct combined texture-sampler (temp usampler2D) 0:48 'g_tTex2du4' (uniform utexture2D) 0:48 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -59,7 +59,7 @@ gl_FragCoord origin is upper left 0:50 Sequence 0:50 move second child to first child (temp 4-component vector of float) 0:50 'txval004' (temp 4-component vector of float) -0:50 textureGatherOffsets (global 4-component vector of float) +0:50 textureGatherOffsets (temp 4-component vector of float) 0:50 Construct combined texture-sampler (temp sampler2D) 0:50 'g_tTex2df4' (uniform texture2D) 0:50 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -89,7 +89,7 @@ gl_FragCoord origin is upper left 0:51 Sequence 0:51 move second child to first child (temp 4-component vector of int) 0:51 'txval014' (temp 4-component vector of int) -0:51 textureGatherOffsets (global 4-component vector of int) +0:51 textureGatherOffsets (temp 4-component vector of int) 0:51 Construct combined texture-sampler (temp isampler2D) 0:51 'g_tTex2di4' (uniform itexture2D) 0:51 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -119,7 +119,7 @@ gl_FragCoord origin is upper left 0:52 Sequence 0:52 move second child to first child (temp 4-component vector of uint) 0:52 'txval024' (temp 4-component vector of uint) -0:52 textureGatherOffsets (global 4-component vector of uint) +0:52 textureGatherOffsets (temp 4-component vector of uint) 0:52 Construct combined texture-sampler (temp usampler2D) 0:52 'g_tTex2du4' (uniform utexture2D) 0:52 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -149,7 +149,7 @@ gl_FragCoord origin is upper left 0:62 Sequence 0:62 move second child to first child (temp 4-component vector of float) 0:62 'txval101' (temp 4-component vector of float) -0:62 textureGatherOffset (global 4-component vector of float) +0:62 textureGatherOffset (temp 4-component vector of float) 0:62 Construct combined texture-sampler (temp sampler2D) 0:62 'g_tTex2df4' (uniform texture2D) 0:62 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -166,7 +166,7 @@ gl_FragCoord origin is upper left 0:63 Sequence 0:63 move second child to first child (temp 4-component vector of int) 0:63 'txval111' (temp 4-component vector of int) -0:63 textureGatherOffset (global 4-component vector of int) +0:63 textureGatherOffset (temp 4-component vector of int) 0:63 Construct combined texture-sampler (temp isampler2D) 0:63 'g_tTex2di4' (uniform itexture2D) 0:63 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -183,7 +183,7 @@ gl_FragCoord origin is upper left 0:64 Sequence 0:64 move second child to first child (temp 4-component vector of uint) 0:64 'txval121' (temp 4-component vector of uint) -0:64 textureGatherOffset (global 4-component vector of uint) +0:64 textureGatherOffset (temp 4-component vector of uint) 0:64 Construct combined texture-sampler (temp usampler2D) 0:64 'g_tTex2du4' (uniform utexture2D) 0:64 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -200,7 +200,7 @@ gl_FragCoord origin is upper left 0:66 Sequence 0:66 move second child to first child (temp 4-component vector of float) 0:66 'txval104' (temp 4-component vector of float) -0:66 textureGatherOffsets (global 4-component vector of float) +0:66 textureGatherOffsets (temp 4-component vector of float) 0:66 Construct combined texture-sampler (temp sampler2D) 0:66 'g_tTex2df4' (uniform texture2D) 0:66 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -230,7 +230,7 @@ gl_FragCoord origin is upper left 0:67 Sequence 0:67 move second child to first child (temp 4-component vector of int) 0:67 'txval114' (temp 4-component vector of int) -0:67 textureGatherOffsets (global 4-component vector of int) +0:67 textureGatherOffsets (temp 4-component vector of int) 0:67 Construct combined texture-sampler (temp isampler2D) 0:67 'g_tTex2di4' (uniform itexture2D) 0:67 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -260,7 +260,7 @@ gl_FragCoord origin is upper left 0:68 Sequence 0:68 move second child to first child (temp 4-component vector of uint) 0:68 'txval124' (temp 4-component vector of uint) -0:68 textureGatherOffsets (global 4-component vector of uint) +0:68 textureGatherOffsets (temp 4-component vector of uint) 0:68 Construct combined texture-sampler (temp usampler2D) 0:68 'g_tTex2du4' (uniform utexture2D) 0:68 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -290,7 +290,7 @@ gl_FragCoord origin is upper left 0:78 Sequence 0:78 move second child to first child (temp 4-component vector of float) 0:78 'txval201' (temp 4-component vector of float) -0:78 textureGatherOffset (global 4-component vector of float) +0:78 textureGatherOffset (temp 4-component vector of float) 0:78 Construct combined texture-sampler (temp sampler2D) 0:78 'g_tTex2df4' (uniform texture2D) 0:78 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -307,7 +307,7 @@ gl_FragCoord origin is upper left 0:79 Sequence 0:79 move second child to first child (temp 4-component vector of int) 0:79 'txval211' (temp 4-component vector of int) -0:79 textureGatherOffset (global 4-component vector of int) +0:79 textureGatherOffset (temp 4-component vector of int) 0:79 Construct combined texture-sampler (temp isampler2D) 0:79 'g_tTex2di4' (uniform itexture2D) 0:79 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -324,7 +324,7 @@ gl_FragCoord origin is upper left 0:80 Sequence 0:80 move second child to first child (temp 4-component vector of uint) 0:80 'txval221' (temp 4-component vector of uint) -0:80 textureGatherOffset (global 4-component vector of uint) +0:80 textureGatherOffset (temp 4-component vector of uint) 0:80 Construct combined texture-sampler (temp usampler2D) 0:80 'g_tTex2du4' (uniform utexture2D) 0:80 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -341,7 +341,7 @@ gl_FragCoord origin is upper left 0:82 Sequence 0:82 move second child to first child (temp 4-component vector of float) 0:82 'txval204' (temp 4-component vector of float) -0:82 textureGatherOffsets (global 4-component vector of float) +0:82 textureGatherOffsets (temp 4-component vector of float) 0:82 Construct combined texture-sampler (temp sampler2D) 0:82 'g_tTex2df4' (uniform texture2D) 0:82 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -371,7 +371,7 @@ gl_FragCoord origin is upper left 0:83 Sequence 0:83 move second child to first child (temp 4-component vector of int) 0:83 'txval214' (temp 4-component vector of int) -0:83 textureGatherOffsets (global 4-component vector of int) +0:83 textureGatherOffsets (temp 4-component vector of int) 0:83 Construct combined texture-sampler (temp isampler2D) 0:83 'g_tTex2di4' (uniform itexture2D) 0:83 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -401,7 +401,7 @@ gl_FragCoord origin is upper left 0:84 Sequence 0:84 move second child to first child (temp 4-component vector of uint) 0:84 'txval224' (temp 4-component vector of uint) -0:84 textureGatherOffsets (global 4-component vector of uint) +0:84 textureGatherOffsets (temp 4-component vector of uint) 0:84 Construct combined texture-sampler (temp usampler2D) 0:84 'g_tTex2du4' (uniform utexture2D) 0:84 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -431,7 +431,7 @@ gl_FragCoord origin is upper left 0:94 Sequence 0:94 move second child to first child (temp 4-component vector of float) 0:94 'txval301' (temp 4-component vector of float) -0:94 textureGatherOffset (global 4-component vector of float) +0:94 textureGatherOffset (temp 4-component vector of float) 0:94 Construct combined texture-sampler (temp sampler2D) 0:94 'g_tTex2df4' (uniform texture2D) 0:94 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -448,7 +448,7 @@ gl_FragCoord origin is upper left 0:95 Sequence 0:95 move second child to first child (temp 4-component vector of int) 0:95 'txval311' (temp 4-component vector of int) -0:95 textureGatherOffset (global 4-component vector of int) +0:95 textureGatherOffset (temp 4-component vector of int) 0:95 Construct combined texture-sampler (temp isampler2D) 0:95 'g_tTex2di4' (uniform itexture2D) 0:95 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -465,7 +465,7 @@ gl_FragCoord origin is upper left 0:96 Sequence 0:96 move second child to first child (temp 4-component vector of uint) 0:96 'txval321' (temp 4-component vector of uint) -0:96 textureGatherOffset (global 4-component vector of uint) +0:96 textureGatherOffset (temp 4-component vector of uint) 0:96 Construct combined texture-sampler (temp usampler2D) 0:96 'g_tTex2du4' (uniform utexture2D) 0:96 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -482,7 +482,7 @@ gl_FragCoord origin is upper left 0:98 Sequence 0:98 move second child to first child (temp 4-component vector of float) 0:98 'txval304' (temp 4-component vector of float) -0:98 textureGatherOffsets (global 4-component vector of float) +0:98 textureGatherOffsets (temp 4-component vector of float) 0:98 Construct combined texture-sampler (temp sampler2D) 0:98 'g_tTex2df4' (uniform texture2D) 0:98 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -512,7 +512,7 @@ gl_FragCoord origin is upper left 0:99 Sequence 0:99 move second child to first child (temp 4-component vector of int) 0:99 'txval314' (temp 4-component vector of int) -0:99 textureGatherOffsets (global 4-component vector of int) +0:99 textureGatherOffsets (temp 4-component vector of int) 0:99 Construct combined texture-sampler (temp isampler2D) 0:99 'g_tTex2di4' (uniform itexture2D) 0:99 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -542,7 +542,7 @@ gl_FragCoord origin is upper left 0:100 Sequence 0:100 move second child to first child (temp 4-component vector of uint) 0:100 'txval324' (temp 4-component vector of uint) -0:100 textureGatherOffsets (global 4-component vector of uint) +0:100 textureGatherOffsets (temp 4-component vector of uint) 0:100 Construct combined texture-sampler (temp usampler2D) 0:100 'g_tTex2du4' (uniform utexture2D) 0:100 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -634,7 +634,7 @@ gl_FragCoord origin is upper left 0:46 Sequence 0:46 move second child to first child (temp 4-component vector of float) 0:46 'txval001' (temp 4-component vector of float) -0:46 textureGatherOffset (global 4-component vector of float) +0:46 textureGatherOffset (temp 4-component vector of float) 0:46 Construct combined texture-sampler (temp sampler2D) 0:46 'g_tTex2df4' (uniform texture2D) 0:46 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -651,7 +651,7 @@ gl_FragCoord origin is upper left 0:47 Sequence 0:47 move second child to first child (temp 4-component vector of int) 0:47 'txval011' (temp 4-component vector of int) -0:47 textureGatherOffset (global 4-component vector of int) +0:47 textureGatherOffset (temp 4-component vector of int) 0:47 Construct combined texture-sampler (temp isampler2D) 0:47 'g_tTex2di4' (uniform itexture2D) 0:47 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -668,7 +668,7 @@ gl_FragCoord origin is upper left 0:48 Sequence 0:48 move second child to first child (temp 4-component vector of uint) 0:48 'txval021' (temp 4-component vector of uint) -0:48 textureGatherOffset (global 4-component vector of uint) +0:48 textureGatherOffset (temp 4-component vector of uint) 0:48 Construct combined texture-sampler (temp usampler2D) 0:48 'g_tTex2du4' (uniform utexture2D) 0:48 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -685,7 +685,7 @@ gl_FragCoord origin is upper left 0:50 Sequence 0:50 move second child to first child (temp 4-component vector of float) 0:50 'txval004' (temp 4-component vector of float) -0:50 textureGatherOffsets (global 4-component vector of float) +0:50 textureGatherOffsets (temp 4-component vector of float) 0:50 Construct combined texture-sampler (temp sampler2D) 0:50 'g_tTex2df4' (uniform texture2D) 0:50 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -715,7 +715,7 @@ gl_FragCoord origin is upper left 0:51 Sequence 0:51 move second child to first child (temp 4-component vector of int) 0:51 'txval014' (temp 4-component vector of int) -0:51 textureGatherOffsets (global 4-component vector of int) +0:51 textureGatherOffsets (temp 4-component vector of int) 0:51 Construct combined texture-sampler (temp isampler2D) 0:51 'g_tTex2di4' (uniform itexture2D) 0:51 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -745,7 +745,7 @@ gl_FragCoord origin is upper left 0:52 Sequence 0:52 move second child to first child (temp 4-component vector of uint) 0:52 'txval024' (temp 4-component vector of uint) -0:52 textureGatherOffsets (global 4-component vector of uint) +0:52 textureGatherOffsets (temp 4-component vector of uint) 0:52 Construct combined texture-sampler (temp usampler2D) 0:52 'g_tTex2du4' (uniform utexture2D) 0:52 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -775,7 +775,7 @@ gl_FragCoord origin is upper left 0:62 Sequence 0:62 move second child to first child (temp 4-component vector of float) 0:62 'txval101' (temp 4-component vector of float) -0:62 textureGatherOffset (global 4-component vector of float) +0:62 textureGatherOffset (temp 4-component vector of float) 0:62 Construct combined texture-sampler (temp sampler2D) 0:62 'g_tTex2df4' (uniform texture2D) 0:62 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -792,7 +792,7 @@ gl_FragCoord origin is upper left 0:63 Sequence 0:63 move second child to first child (temp 4-component vector of int) 0:63 'txval111' (temp 4-component vector of int) -0:63 textureGatherOffset (global 4-component vector of int) +0:63 textureGatherOffset (temp 4-component vector of int) 0:63 Construct combined texture-sampler (temp isampler2D) 0:63 'g_tTex2di4' (uniform itexture2D) 0:63 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -809,7 +809,7 @@ gl_FragCoord origin is upper left 0:64 Sequence 0:64 move second child to first child (temp 4-component vector of uint) 0:64 'txval121' (temp 4-component vector of uint) -0:64 textureGatherOffset (global 4-component vector of uint) +0:64 textureGatherOffset (temp 4-component vector of uint) 0:64 Construct combined texture-sampler (temp usampler2D) 0:64 'g_tTex2du4' (uniform utexture2D) 0:64 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -826,7 +826,7 @@ gl_FragCoord origin is upper left 0:66 Sequence 0:66 move second child to first child (temp 4-component vector of float) 0:66 'txval104' (temp 4-component vector of float) -0:66 textureGatherOffsets (global 4-component vector of float) +0:66 textureGatherOffsets (temp 4-component vector of float) 0:66 Construct combined texture-sampler (temp sampler2D) 0:66 'g_tTex2df4' (uniform texture2D) 0:66 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -856,7 +856,7 @@ gl_FragCoord origin is upper left 0:67 Sequence 0:67 move second child to first child (temp 4-component vector of int) 0:67 'txval114' (temp 4-component vector of int) -0:67 textureGatherOffsets (global 4-component vector of int) +0:67 textureGatherOffsets (temp 4-component vector of int) 0:67 Construct combined texture-sampler (temp isampler2D) 0:67 'g_tTex2di4' (uniform itexture2D) 0:67 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -886,7 +886,7 @@ gl_FragCoord origin is upper left 0:68 Sequence 0:68 move second child to first child (temp 4-component vector of uint) 0:68 'txval124' (temp 4-component vector of uint) -0:68 textureGatherOffsets (global 4-component vector of uint) +0:68 textureGatherOffsets (temp 4-component vector of uint) 0:68 Construct combined texture-sampler (temp usampler2D) 0:68 'g_tTex2du4' (uniform utexture2D) 0:68 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -916,7 +916,7 @@ gl_FragCoord origin is upper left 0:78 Sequence 0:78 move second child to first child (temp 4-component vector of float) 0:78 'txval201' (temp 4-component vector of float) -0:78 textureGatherOffset (global 4-component vector of float) +0:78 textureGatherOffset (temp 4-component vector of float) 0:78 Construct combined texture-sampler (temp sampler2D) 0:78 'g_tTex2df4' (uniform texture2D) 0:78 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -933,7 +933,7 @@ gl_FragCoord origin is upper left 0:79 Sequence 0:79 move second child to first child (temp 4-component vector of int) 0:79 'txval211' (temp 4-component vector of int) -0:79 textureGatherOffset (global 4-component vector of int) +0:79 textureGatherOffset (temp 4-component vector of int) 0:79 Construct combined texture-sampler (temp isampler2D) 0:79 'g_tTex2di4' (uniform itexture2D) 0:79 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -950,7 +950,7 @@ gl_FragCoord origin is upper left 0:80 Sequence 0:80 move second child to first child (temp 4-component vector of uint) 0:80 'txval221' (temp 4-component vector of uint) -0:80 textureGatherOffset (global 4-component vector of uint) +0:80 textureGatherOffset (temp 4-component vector of uint) 0:80 Construct combined texture-sampler (temp usampler2D) 0:80 'g_tTex2du4' (uniform utexture2D) 0:80 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -967,7 +967,7 @@ gl_FragCoord origin is upper left 0:82 Sequence 0:82 move second child to first child (temp 4-component vector of float) 0:82 'txval204' (temp 4-component vector of float) -0:82 textureGatherOffsets (global 4-component vector of float) +0:82 textureGatherOffsets (temp 4-component vector of float) 0:82 Construct combined texture-sampler (temp sampler2D) 0:82 'g_tTex2df4' (uniform texture2D) 0:82 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -997,7 +997,7 @@ gl_FragCoord origin is upper left 0:83 Sequence 0:83 move second child to first child (temp 4-component vector of int) 0:83 'txval214' (temp 4-component vector of int) -0:83 textureGatherOffsets (global 4-component vector of int) +0:83 textureGatherOffsets (temp 4-component vector of int) 0:83 Construct combined texture-sampler (temp isampler2D) 0:83 'g_tTex2di4' (uniform itexture2D) 0:83 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -1027,7 +1027,7 @@ gl_FragCoord origin is upper left 0:84 Sequence 0:84 move second child to first child (temp 4-component vector of uint) 0:84 'txval224' (temp 4-component vector of uint) -0:84 textureGatherOffsets (global 4-component vector of uint) +0:84 textureGatherOffsets (temp 4-component vector of uint) 0:84 Construct combined texture-sampler (temp usampler2D) 0:84 'g_tTex2du4' (uniform utexture2D) 0:84 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -1057,7 +1057,7 @@ gl_FragCoord origin is upper left 0:94 Sequence 0:94 move second child to first child (temp 4-component vector of float) 0:94 'txval301' (temp 4-component vector of float) -0:94 textureGatherOffset (global 4-component vector of float) +0:94 textureGatherOffset (temp 4-component vector of float) 0:94 Construct combined texture-sampler (temp sampler2D) 0:94 'g_tTex2df4' (uniform texture2D) 0:94 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -1074,7 +1074,7 @@ gl_FragCoord origin is upper left 0:95 Sequence 0:95 move second child to first child (temp 4-component vector of int) 0:95 'txval311' (temp 4-component vector of int) -0:95 textureGatherOffset (global 4-component vector of int) +0:95 textureGatherOffset (temp 4-component vector of int) 0:95 Construct combined texture-sampler (temp isampler2D) 0:95 'g_tTex2di4' (uniform itexture2D) 0:95 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -1091,7 +1091,7 @@ gl_FragCoord origin is upper left 0:96 Sequence 0:96 move second child to first child (temp 4-component vector of uint) 0:96 'txval321' (temp 4-component vector of uint) -0:96 textureGatherOffset (global 4-component vector of uint) +0:96 textureGatherOffset (temp 4-component vector of uint) 0:96 Construct combined texture-sampler (temp usampler2D) 0:96 'g_tTex2du4' (uniform utexture2D) 0:96 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -1108,7 +1108,7 @@ gl_FragCoord origin is upper left 0:98 Sequence 0:98 move second child to first child (temp 4-component vector of float) 0:98 'txval304' (temp 4-component vector of float) -0:98 textureGatherOffsets (global 4-component vector of float) +0:98 textureGatherOffsets (temp 4-component vector of float) 0:98 Construct combined texture-sampler (temp sampler2D) 0:98 'g_tTex2df4' (uniform texture2D) 0:98 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -1138,7 +1138,7 @@ gl_FragCoord origin is upper left 0:99 Sequence 0:99 move second child to first child (temp 4-component vector of int) 0:99 'txval314' (temp 4-component vector of int) -0:99 textureGatherOffsets (global 4-component vector of int) +0:99 textureGatherOffsets (temp 4-component vector of int) 0:99 Construct combined texture-sampler (temp isampler2D) 0:99 'g_tTex2di4' (uniform itexture2D) 0:99 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -1168,7 +1168,7 @@ gl_FragCoord origin is upper left 0:100 Sequence 0:100 move second child to first child (temp 4-component vector of uint) 0:100 'txval324' (temp 4-component vector of uint) -0:100 textureGatherOffsets (global 4-component vector of uint) +0:100 textureGatherOffsets (temp 4-component vector of uint) 0:100 Construct combined texture-sampler (temp usampler2D) 0:100 'g_tTex2du4' (uniform utexture2D) 0:100 'g_sSamp' (layout(binding=0 ) uniform sampler) diff --git a/Test/baseResults/hlsl.gatherRGBA.offsetarray.dx10.frag.out b/Test/baseResults/hlsl.gatherRGBA.offsetarray.dx10.frag.out index f472ee2d..4722cff6 100644 --- a/Test/baseResults/hlsl.gatherRGBA.offsetarray.dx10.frag.out +++ b/Test/baseResults/hlsl.gatherRGBA.offsetarray.dx10.frag.out @@ -8,7 +8,7 @@ gl_FragCoord origin is upper left 0:40 Sequence 0:40 move second child to first child (temp 4-component vector of float) 0:40 'txval001' (temp 4-component vector of float) -0:40 textureGatherOffset (global 4-component vector of float) +0:40 textureGatherOffset (temp 4-component vector of float) 0:40 Construct combined texture-sampler (temp sampler2DArray) 0:40 'g_tTex2df4a' (uniform texture2DArray) 0:40 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -25,7 +25,7 @@ gl_FragCoord origin is upper left 0:41 Sequence 0:41 move second child to first child (temp 4-component vector of int) 0:41 'txval011' (temp 4-component vector of int) -0:41 textureGatherOffset (global 4-component vector of int) +0:41 textureGatherOffset (temp 4-component vector of int) 0:41 Construct combined texture-sampler (temp isampler2DArray) 0:41 'g_tTex2di4a' (uniform itexture2DArray) 0:41 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -42,7 +42,7 @@ gl_FragCoord origin is upper left 0:42 Sequence 0:42 move second child to first child (temp 4-component vector of uint) 0:42 'txval021' (temp 4-component vector of uint) -0:42 textureGatherOffset (global 4-component vector of uint) +0:42 textureGatherOffset (temp 4-component vector of uint) 0:42 Construct combined texture-sampler (temp usampler2DArray) 0:42 'g_tTex2du4a' (uniform utexture2DArray) 0:42 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -59,7 +59,7 @@ gl_FragCoord origin is upper left 0:44 Sequence 0:44 move second child to first child (temp 4-component vector of float) 0:44 'txval004' (temp 4-component vector of float) -0:44 textureGatherOffsets (global 4-component vector of float) +0:44 textureGatherOffsets (temp 4-component vector of float) 0:44 Construct combined texture-sampler (temp sampler2DArray) 0:44 'g_tTex2df4a' (uniform texture2DArray) 0:44 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -89,7 +89,7 @@ gl_FragCoord origin is upper left 0:45 Sequence 0:45 move second child to first child (temp 4-component vector of int) 0:45 'txval014' (temp 4-component vector of int) -0:45 textureGatherOffsets (global 4-component vector of int) +0:45 textureGatherOffsets (temp 4-component vector of int) 0:45 Construct combined texture-sampler (temp isampler2DArray) 0:45 'g_tTex2di4a' (uniform itexture2DArray) 0:45 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -119,7 +119,7 @@ gl_FragCoord origin is upper left 0:46 Sequence 0:46 move second child to first child (temp 4-component vector of uint) 0:46 'txval024' (temp 4-component vector of uint) -0:46 textureGatherOffsets (global 4-component vector of uint) +0:46 textureGatherOffsets (temp 4-component vector of uint) 0:46 Construct combined texture-sampler (temp usampler2DArray) 0:46 'g_tTex2du4a' (uniform utexture2DArray) 0:46 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -149,7 +149,7 @@ gl_FragCoord origin is upper left 0:56 Sequence 0:56 move second child to first child (temp 4-component vector of float) 0:56 'txval101' (temp 4-component vector of float) -0:56 textureGatherOffset (global 4-component vector of float) +0:56 textureGatherOffset (temp 4-component vector of float) 0:56 Construct combined texture-sampler (temp sampler2DArray) 0:56 'g_tTex2df4a' (uniform texture2DArray) 0:56 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -166,7 +166,7 @@ gl_FragCoord origin is upper left 0:57 Sequence 0:57 move second child to first child (temp 4-component vector of int) 0:57 'txval111' (temp 4-component vector of int) -0:57 textureGatherOffset (global 4-component vector of int) +0:57 textureGatherOffset (temp 4-component vector of int) 0:57 Construct combined texture-sampler (temp isampler2DArray) 0:57 'g_tTex2di4a' (uniform itexture2DArray) 0:57 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -183,7 +183,7 @@ gl_FragCoord origin is upper left 0:58 Sequence 0:58 move second child to first child (temp 4-component vector of uint) 0:58 'txval121' (temp 4-component vector of uint) -0:58 textureGatherOffset (global 4-component vector of uint) +0:58 textureGatherOffset (temp 4-component vector of uint) 0:58 Construct combined texture-sampler (temp usampler2DArray) 0:58 'g_tTex2du4a' (uniform utexture2DArray) 0:58 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -200,7 +200,7 @@ gl_FragCoord origin is upper left 0:60 Sequence 0:60 move second child to first child (temp 4-component vector of float) 0:60 'txval104' (temp 4-component vector of float) -0:60 textureGatherOffsets (global 4-component vector of float) +0:60 textureGatherOffsets (temp 4-component vector of float) 0:60 Construct combined texture-sampler (temp sampler2DArray) 0:60 'g_tTex2df4a' (uniform texture2DArray) 0:60 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -230,7 +230,7 @@ gl_FragCoord origin is upper left 0:61 Sequence 0:61 move second child to first child (temp 4-component vector of int) 0:61 'txval114' (temp 4-component vector of int) -0:61 textureGatherOffsets (global 4-component vector of int) +0:61 textureGatherOffsets (temp 4-component vector of int) 0:61 Construct combined texture-sampler (temp isampler2DArray) 0:61 'g_tTex2di4a' (uniform itexture2DArray) 0:61 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -260,7 +260,7 @@ gl_FragCoord origin is upper left 0:62 Sequence 0:62 move second child to first child (temp 4-component vector of uint) 0:62 'txval124' (temp 4-component vector of uint) -0:62 textureGatherOffsets (global 4-component vector of uint) +0:62 textureGatherOffsets (temp 4-component vector of uint) 0:62 Construct combined texture-sampler (temp usampler2DArray) 0:62 'g_tTex2du4a' (uniform utexture2DArray) 0:62 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -290,7 +290,7 @@ gl_FragCoord origin is upper left 0:72 Sequence 0:72 move second child to first child (temp 4-component vector of float) 0:72 'txval201' (temp 4-component vector of float) -0:72 textureGatherOffset (global 4-component vector of float) +0:72 textureGatherOffset (temp 4-component vector of float) 0:72 Construct combined texture-sampler (temp sampler2DArray) 0:72 'g_tTex2df4a' (uniform texture2DArray) 0:72 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -307,7 +307,7 @@ gl_FragCoord origin is upper left 0:73 Sequence 0:73 move second child to first child (temp 4-component vector of int) 0:73 'txval211' (temp 4-component vector of int) -0:73 textureGatherOffset (global 4-component vector of int) +0:73 textureGatherOffset (temp 4-component vector of int) 0:73 Construct combined texture-sampler (temp isampler2DArray) 0:73 'g_tTex2di4a' (uniform itexture2DArray) 0:73 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -324,7 +324,7 @@ gl_FragCoord origin is upper left 0:74 Sequence 0:74 move second child to first child (temp 4-component vector of uint) 0:74 'txval221' (temp 4-component vector of uint) -0:74 textureGatherOffset (global 4-component vector of uint) +0:74 textureGatherOffset (temp 4-component vector of uint) 0:74 Construct combined texture-sampler (temp usampler2DArray) 0:74 'g_tTex2du4a' (uniform utexture2DArray) 0:74 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -341,7 +341,7 @@ gl_FragCoord origin is upper left 0:76 Sequence 0:76 move second child to first child (temp 4-component vector of float) 0:76 'txval204' (temp 4-component vector of float) -0:76 textureGatherOffsets (global 4-component vector of float) +0:76 textureGatherOffsets (temp 4-component vector of float) 0:76 Construct combined texture-sampler (temp sampler2DArray) 0:76 'g_tTex2df4a' (uniform texture2DArray) 0:76 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -371,7 +371,7 @@ gl_FragCoord origin is upper left 0:77 Sequence 0:77 move second child to first child (temp 4-component vector of int) 0:77 'txval214' (temp 4-component vector of int) -0:77 textureGatherOffsets (global 4-component vector of int) +0:77 textureGatherOffsets (temp 4-component vector of int) 0:77 Construct combined texture-sampler (temp isampler2DArray) 0:77 'g_tTex2di4a' (uniform itexture2DArray) 0:77 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -401,7 +401,7 @@ gl_FragCoord origin is upper left 0:78 Sequence 0:78 move second child to first child (temp 4-component vector of uint) 0:78 'txval224' (temp 4-component vector of uint) -0:78 textureGatherOffsets (global 4-component vector of uint) +0:78 textureGatherOffsets (temp 4-component vector of uint) 0:78 Construct combined texture-sampler (temp usampler2DArray) 0:78 'g_tTex2du4a' (uniform utexture2DArray) 0:78 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -431,7 +431,7 @@ gl_FragCoord origin is upper left 0:88 Sequence 0:88 move second child to first child (temp 4-component vector of float) 0:88 'txval301' (temp 4-component vector of float) -0:88 textureGatherOffset (global 4-component vector of float) +0:88 textureGatherOffset (temp 4-component vector of float) 0:88 Construct combined texture-sampler (temp sampler2DArray) 0:88 'g_tTex2df4a' (uniform texture2DArray) 0:88 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -448,7 +448,7 @@ gl_FragCoord origin is upper left 0:89 Sequence 0:89 move second child to first child (temp 4-component vector of int) 0:89 'txval311' (temp 4-component vector of int) -0:89 textureGatherOffset (global 4-component vector of int) +0:89 textureGatherOffset (temp 4-component vector of int) 0:89 Construct combined texture-sampler (temp isampler2DArray) 0:89 'g_tTex2di4a' (uniform itexture2DArray) 0:89 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -465,7 +465,7 @@ gl_FragCoord origin is upper left 0:90 Sequence 0:90 move second child to first child (temp 4-component vector of uint) 0:90 'txval321' (temp 4-component vector of uint) -0:90 textureGatherOffset (global 4-component vector of uint) +0:90 textureGatherOffset (temp 4-component vector of uint) 0:90 Construct combined texture-sampler (temp usampler2DArray) 0:90 'g_tTex2du4a' (uniform utexture2DArray) 0:90 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -482,7 +482,7 @@ gl_FragCoord origin is upper left 0:92 Sequence 0:92 move second child to first child (temp 4-component vector of float) 0:92 'txval304' (temp 4-component vector of float) -0:92 textureGatherOffsets (global 4-component vector of float) +0:92 textureGatherOffsets (temp 4-component vector of float) 0:92 Construct combined texture-sampler (temp sampler2DArray) 0:92 'g_tTex2df4a' (uniform texture2DArray) 0:92 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -512,7 +512,7 @@ gl_FragCoord origin is upper left 0:93 Sequence 0:93 move second child to first child (temp 4-component vector of int) 0:93 'txval314' (temp 4-component vector of int) -0:93 textureGatherOffsets (global 4-component vector of int) +0:93 textureGatherOffsets (temp 4-component vector of int) 0:93 Construct combined texture-sampler (temp isampler2DArray) 0:93 'g_tTex2di4a' (uniform itexture2DArray) 0:93 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -542,7 +542,7 @@ gl_FragCoord origin is upper left 0:94 Sequence 0:94 move second child to first child (temp 4-component vector of uint) 0:94 'txval324' (temp 4-component vector of uint) -0:94 textureGatherOffsets (global 4-component vector of uint) +0:94 textureGatherOffsets (temp 4-component vector of uint) 0:94 Construct combined texture-sampler (temp usampler2DArray) 0:94 'g_tTex2du4a' (uniform utexture2DArray) 0:94 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -630,7 +630,7 @@ gl_FragCoord origin is upper left 0:40 Sequence 0:40 move second child to first child (temp 4-component vector of float) 0:40 'txval001' (temp 4-component vector of float) -0:40 textureGatherOffset (global 4-component vector of float) +0:40 textureGatherOffset (temp 4-component vector of float) 0:40 Construct combined texture-sampler (temp sampler2DArray) 0:40 'g_tTex2df4a' (uniform texture2DArray) 0:40 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -647,7 +647,7 @@ gl_FragCoord origin is upper left 0:41 Sequence 0:41 move second child to first child (temp 4-component vector of int) 0:41 'txval011' (temp 4-component vector of int) -0:41 textureGatherOffset (global 4-component vector of int) +0:41 textureGatherOffset (temp 4-component vector of int) 0:41 Construct combined texture-sampler (temp isampler2DArray) 0:41 'g_tTex2di4a' (uniform itexture2DArray) 0:41 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -664,7 +664,7 @@ gl_FragCoord origin is upper left 0:42 Sequence 0:42 move second child to first child (temp 4-component vector of uint) 0:42 'txval021' (temp 4-component vector of uint) -0:42 textureGatherOffset (global 4-component vector of uint) +0:42 textureGatherOffset (temp 4-component vector of uint) 0:42 Construct combined texture-sampler (temp usampler2DArray) 0:42 'g_tTex2du4a' (uniform utexture2DArray) 0:42 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -681,7 +681,7 @@ gl_FragCoord origin is upper left 0:44 Sequence 0:44 move second child to first child (temp 4-component vector of float) 0:44 'txval004' (temp 4-component vector of float) -0:44 textureGatherOffsets (global 4-component vector of float) +0:44 textureGatherOffsets (temp 4-component vector of float) 0:44 Construct combined texture-sampler (temp sampler2DArray) 0:44 'g_tTex2df4a' (uniform texture2DArray) 0:44 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -711,7 +711,7 @@ gl_FragCoord origin is upper left 0:45 Sequence 0:45 move second child to first child (temp 4-component vector of int) 0:45 'txval014' (temp 4-component vector of int) -0:45 textureGatherOffsets (global 4-component vector of int) +0:45 textureGatherOffsets (temp 4-component vector of int) 0:45 Construct combined texture-sampler (temp isampler2DArray) 0:45 'g_tTex2di4a' (uniform itexture2DArray) 0:45 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -741,7 +741,7 @@ gl_FragCoord origin is upper left 0:46 Sequence 0:46 move second child to first child (temp 4-component vector of uint) 0:46 'txval024' (temp 4-component vector of uint) -0:46 textureGatherOffsets (global 4-component vector of uint) +0:46 textureGatherOffsets (temp 4-component vector of uint) 0:46 Construct combined texture-sampler (temp usampler2DArray) 0:46 'g_tTex2du4a' (uniform utexture2DArray) 0:46 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -771,7 +771,7 @@ gl_FragCoord origin is upper left 0:56 Sequence 0:56 move second child to first child (temp 4-component vector of float) 0:56 'txval101' (temp 4-component vector of float) -0:56 textureGatherOffset (global 4-component vector of float) +0:56 textureGatherOffset (temp 4-component vector of float) 0:56 Construct combined texture-sampler (temp sampler2DArray) 0:56 'g_tTex2df4a' (uniform texture2DArray) 0:56 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -788,7 +788,7 @@ gl_FragCoord origin is upper left 0:57 Sequence 0:57 move second child to first child (temp 4-component vector of int) 0:57 'txval111' (temp 4-component vector of int) -0:57 textureGatherOffset (global 4-component vector of int) +0:57 textureGatherOffset (temp 4-component vector of int) 0:57 Construct combined texture-sampler (temp isampler2DArray) 0:57 'g_tTex2di4a' (uniform itexture2DArray) 0:57 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -805,7 +805,7 @@ gl_FragCoord origin is upper left 0:58 Sequence 0:58 move second child to first child (temp 4-component vector of uint) 0:58 'txval121' (temp 4-component vector of uint) -0:58 textureGatherOffset (global 4-component vector of uint) +0:58 textureGatherOffset (temp 4-component vector of uint) 0:58 Construct combined texture-sampler (temp usampler2DArray) 0:58 'g_tTex2du4a' (uniform utexture2DArray) 0:58 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -822,7 +822,7 @@ gl_FragCoord origin is upper left 0:60 Sequence 0:60 move second child to first child (temp 4-component vector of float) 0:60 'txval104' (temp 4-component vector of float) -0:60 textureGatherOffsets (global 4-component vector of float) +0:60 textureGatherOffsets (temp 4-component vector of float) 0:60 Construct combined texture-sampler (temp sampler2DArray) 0:60 'g_tTex2df4a' (uniform texture2DArray) 0:60 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -852,7 +852,7 @@ gl_FragCoord origin is upper left 0:61 Sequence 0:61 move second child to first child (temp 4-component vector of int) 0:61 'txval114' (temp 4-component vector of int) -0:61 textureGatherOffsets (global 4-component vector of int) +0:61 textureGatherOffsets (temp 4-component vector of int) 0:61 Construct combined texture-sampler (temp isampler2DArray) 0:61 'g_tTex2di4a' (uniform itexture2DArray) 0:61 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -882,7 +882,7 @@ gl_FragCoord origin is upper left 0:62 Sequence 0:62 move second child to first child (temp 4-component vector of uint) 0:62 'txval124' (temp 4-component vector of uint) -0:62 textureGatherOffsets (global 4-component vector of uint) +0:62 textureGatherOffsets (temp 4-component vector of uint) 0:62 Construct combined texture-sampler (temp usampler2DArray) 0:62 'g_tTex2du4a' (uniform utexture2DArray) 0:62 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -912,7 +912,7 @@ gl_FragCoord origin is upper left 0:72 Sequence 0:72 move second child to first child (temp 4-component vector of float) 0:72 'txval201' (temp 4-component vector of float) -0:72 textureGatherOffset (global 4-component vector of float) +0:72 textureGatherOffset (temp 4-component vector of float) 0:72 Construct combined texture-sampler (temp sampler2DArray) 0:72 'g_tTex2df4a' (uniform texture2DArray) 0:72 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -929,7 +929,7 @@ gl_FragCoord origin is upper left 0:73 Sequence 0:73 move second child to first child (temp 4-component vector of int) 0:73 'txval211' (temp 4-component vector of int) -0:73 textureGatherOffset (global 4-component vector of int) +0:73 textureGatherOffset (temp 4-component vector of int) 0:73 Construct combined texture-sampler (temp isampler2DArray) 0:73 'g_tTex2di4a' (uniform itexture2DArray) 0:73 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -946,7 +946,7 @@ gl_FragCoord origin is upper left 0:74 Sequence 0:74 move second child to first child (temp 4-component vector of uint) 0:74 'txval221' (temp 4-component vector of uint) -0:74 textureGatherOffset (global 4-component vector of uint) +0:74 textureGatherOffset (temp 4-component vector of uint) 0:74 Construct combined texture-sampler (temp usampler2DArray) 0:74 'g_tTex2du4a' (uniform utexture2DArray) 0:74 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -963,7 +963,7 @@ gl_FragCoord origin is upper left 0:76 Sequence 0:76 move second child to first child (temp 4-component vector of float) 0:76 'txval204' (temp 4-component vector of float) -0:76 textureGatherOffsets (global 4-component vector of float) +0:76 textureGatherOffsets (temp 4-component vector of float) 0:76 Construct combined texture-sampler (temp sampler2DArray) 0:76 'g_tTex2df4a' (uniform texture2DArray) 0:76 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -993,7 +993,7 @@ gl_FragCoord origin is upper left 0:77 Sequence 0:77 move second child to first child (temp 4-component vector of int) 0:77 'txval214' (temp 4-component vector of int) -0:77 textureGatherOffsets (global 4-component vector of int) +0:77 textureGatherOffsets (temp 4-component vector of int) 0:77 Construct combined texture-sampler (temp isampler2DArray) 0:77 'g_tTex2di4a' (uniform itexture2DArray) 0:77 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -1023,7 +1023,7 @@ gl_FragCoord origin is upper left 0:78 Sequence 0:78 move second child to first child (temp 4-component vector of uint) 0:78 'txval224' (temp 4-component vector of uint) -0:78 textureGatherOffsets (global 4-component vector of uint) +0:78 textureGatherOffsets (temp 4-component vector of uint) 0:78 Construct combined texture-sampler (temp usampler2DArray) 0:78 'g_tTex2du4a' (uniform utexture2DArray) 0:78 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -1053,7 +1053,7 @@ gl_FragCoord origin is upper left 0:88 Sequence 0:88 move second child to first child (temp 4-component vector of float) 0:88 'txval301' (temp 4-component vector of float) -0:88 textureGatherOffset (global 4-component vector of float) +0:88 textureGatherOffset (temp 4-component vector of float) 0:88 Construct combined texture-sampler (temp sampler2DArray) 0:88 'g_tTex2df4a' (uniform texture2DArray) 0:88 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -1070,7 +1070,7 @@ gl_FragCoord origin is upper left 0:89 Sequence 0:89 move second child to first child (temp 4-component vector of int) 0:89 'txval311' (temp 4-component vector of int) -0:89 textureGatherOffset (global 4-component vector of int) +0:89 textureGatherOffset (temp 4-component vector of int) 0:89 Construct combined texture-sampler (temp isampler2DArray) 0:89 'g_tTex2di4a' (uniform itexture2DArray) 0:89 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -1087,7 +1087,7 @@ gl_FragCoord origin is upper left 0:90 Sequence 0:90 move second child to first child (temp 4-component vector of uint) 0:90 'txval321' (temp 4-component vector of uint) -0:90 textureGatherOffset (global 4-component vector of uint) +0:90 textureGatherOffset (temp 4-component vector of uint) 0:90 Construct combined texture-sampler (temp usampler2DArray) 0:90 'g_tTex2du4a' (uniform utexture2DArray) 0:90 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -1104,7 +1104,7 @@ gl_FragCoord origin is upper left 0:92 Sequence 0:92 move second child to first child (temp 4-component vector of float) 0:92 'txval304' (temp 4-component vector of float) -0:92 textureGatherOffsets (global 4-component vector of float) +0:92 textureGatherOffsets (temp 4-component vector of float) 0:92 Construct combined texture-sampler (temp sampler2DArray) 0:92 'g_tTex2df4a' (uniform texture2DArray) 0:92 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -1134,7 +1134,7 @@ gl_FragCoord origin is upper left 0:93 Sequence 0:93 move second child to first child (temp 4-component vector of int) 0:93 'txval314' (temp 4-component vector of int) -0:93 textureGatherOffsets (global 4-component vector of int) +0:93 textureGatherOffsets (temp 4-component vector of int) 0:93 Construct combined texture-sampler (temp isampler2DArray) 0:93 'g_tTex2di4a' (uniform itexture2DArray) 0:93 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -1164,7 +1164,7 @@ gl_FragCoord origin is upper left 0:94 Sequence 0:94 move second child to first child (temp 4-component vector of uint) 0:94 'txval324' (temp 4-component vector of uint) -0:94 textureGatherOffsets (global 4-component vector of uint) +0:94 textureGatherOffsets (temp 4-component vector of uint) 0:94 Construct combined texture-sampler (temp usampler2DArray) 0:94 'g_tTex2du4a' (uniform utexture2DArray) 0:94 'g_sSamp' (layout(binding=0 ) uniform sampler) diff --git a/Test/baseResults/hlsl.getsampleposition.dx10.frag.out b/Test/baseResults/hlsl.getsampleposition.dx10.frag.out index 7d8d9be6..5985eadc 100644 --- a/Test/baseResults/hlsl.getsampleposition.dx10.frag.out +++ b/Test/baseResults/hlsl.getsampleposition.dx10.frag.out @@ -14,7 +14,7 @@ ERROR: node is still EOpNull! 0:16 move second child to first child (temp 2-component vector of float) 0:16 'r00' (temp 2-component vector of float) 0:16 ERROR: Bad aggregation op - (global 2-component vector of float) + (temp 2-component vector of float) 0:16 'g_tTex2dmsf4' (uniform texture2DMS) 0:16 Constant: 0:16 1 (const int) @@ -22,7 +22,7 @@ ERROR: node is still EOpNull! 0:17 move second child to first child (temp 2-component vector of float) 0:17 'r01' (temp 2-component vector of float) 0:17 ERROR: Bad aggregation op - (global 2-component vector of float) + (temp 2-component vector of float) 0:17 'g_tTex2dmsf4a' (uniform texture2DMSArray) 0:17 Constant: 0:17 2 (const int) @@ -79,7 +79,7 @@ ERROR: node is still EOpNull! 0:16 move second child to first child (temp 2-component vector of float) 0:16 'r00' (temp 2-component vector of float) 0:16 ERROR: Bad aggregation op - (global 2-component vector of float) + (temp 2-component vector of float) 0:16 'g_tTex2dmsf4' (uniform texture2DMS) 0:16 Constant: 0:16 1 (const int) @@ -87,7 +87,7 @@ ERROR: node is still EOpNull! 0:17 move second child to first child (temp 2-component vector of float) 0:17 'r01' (temp 2-component vector of float) 0:17 ERROR: Bad aggregation op - (global 2-component vector of float) + (temp 2-component vector of float) 0:17 'g_tTex2dmsf4a' (uniform texture2DMSArray) 0:17 Constant: 0:17 2 (const int) diff --git a/Test/baseResults/hlsl.if.frag.out b/Test/baseResults/hlsl.if.frag.out index ce9b5619..c37bff61 100755 --- a/Test/baseResults/hlsl.if.frag.out +++ b/Test/baseResults/hlsl.if.frag.out @@ -8,7 +8,7 @@ gl_FragCoord origin is upper left 0:? Sequence 0:3 Test condition and select (temp void) 0:3 Condition -0:3 all (global bool) +0:3 all (temp bool) 0:3 Equal (temp 4-component vector of bool) 0:3 'input' (layout(location=0 ) in 4-component vector of float) 0:3 'input' (layout(location=0 ) in 4-component vector of float) @@ -20,7 +20,7 @@ gl_FragCoord origin is upper left 0:4 Branch: Return 0:6 Test condition and select (temp void) 0:6 Condition -0:6 all (global bool) +0:6 all (temp bool) 0:6 Equal (temp 4-component vector of bool) 0:6 'input' (layout(location=0 ) in 4-component vector of float) 0:6 'input' (layout(location=0 ) in 4-component vector of float) @@ -39,21 +39,21 @@ gl_FragCoord origin is upper left 0:9 Branch: Return 0:11 Test condition and select (temp void) 0:11 Condition -0:11 all (global bool) +0:11 all (temp bool) 0:11 Equal (temp 4-component vector of bool) 0:11 'input' (layout(location=0 ) in 4-component vector of float) 0:11 'input' (layout(location=0 ) in 4-component vector of float) 0:11 true case is null 0:14 Test condition and select (temp void) 0:14 Condition -0:14 all (global bool) +0:14 all (temp bool) 0:14 Equal (temp 4-component vector of bool) 0:14 'input' (layout(location=0 ) in 4-component vector of float) 0:14 'input' (layout(location=0 ) in 4-component vector of float) 0:14 true case is null 0:19 Test condition and select (temp void) 0:19 Condition -0:19 all (global bool) +0:19 all (temp bool) 0:19 Equal (temp 4-component vector of bool) 0:19 'input' (layout(location=0 ) in 4-component vector of float) 0:19 'input' (layout(location=0 ) in 4-component vector of float) @@ -66,7 +66,7 @@ gl_FragCoord origin is upper left 0:20 Branch: Return 0:23 Test condition and select (temp void) 0:23 Condition -0:23 all (global bool) +0:23 all (temp bool) 0:23 Equal (temp 4-component vector of bool) 0:23 'input' (layout(location=0 ) in 4-component vector of float) 0:23 'input' (layout(location=0 ) in 4-component vector of float) @@ -115,7 +115,7 @@ gl_FragCoord origin is upper left 0:? Sequence 0:3 Test condition and select (temp void) 0:3 Condition -0:3 all (global bool) +0:3 all (temp bool) 0:3 Equal (temp 4-component vector of bool) 0:3 'input' (layout(location=0 ) in 4-component vector of float) 0:3 'input' (layout(location=0 ) in 4-component vector of float) @@ -127,7 +127,7 @@ gl_FragCoord origin is upper left 0:4 Branch: Return 0:6 Test condition and select (temp void) 0:6 Condition -0:6 all (global bool) +0:6 all (temp bool) 0:6 Equal (temp 4-component vector of bool) 0:6 'input' (layout(location=0 ) in 4-component vector of float) 0:6 'input' (layout(location=0 ) in 4-component vector of float) @@ -146,21 +146,21 @@ gl_FragCoord origin is upper left 0:9 Branch: Return 0:11 Test condition and select (temp void) 0:11 Condition -0:11 all (global bool) +0:11 all (temp bool) 0:11 Equal (temp 4-component vector of bool) 0:11 'input' (layout(location=0 ) in 4-component vector of float) 0:11 'input' (layout(location=0 ) in 4-component vector of float) 0:11 true case is null 0:14 Test condition and select (temp void) 0:14 Condition -0:14 all (global bool) +0:14 all (temp bool) 0:14 Equal (temp 4-component vector of bool) 0:14 'input' (layout(location=0 ) in 4-component vector of float) 0:14 'input' (layout(location=0 ) in 4-component vector of float) 0:14 true case is null 0:19 Test condition and select (temp void) 0:19 Condition -0:19 all (global bool) +0:19 all (temp bool) 0:19 Equal (temp 4-component vector of bool) 0:19 'input' (layout(location=0 ) in 4-component vector of float) 0:19 'input' (layout(location=0 ) in 4-component vector of float) @@ -173,7 +173,7 @@ gl_FragCoord origin is upper left 0:20 Branch: Return 0:23 Test condition and select (temp void) 0:23 Condition -0:23 all (global bool) +0:23 all (temp bool) 0:23 Equal (temp 4-component vector of bool) 0:23 'input' (layout(location=0 ) in 4-component vector of float) 0:23 'input' (layout(location=0 ) in 4-component vector of float) diff --git a/Test/baseResults/hlsl.intrinsics.barriers.comp.out b/Test/baseResults/hlsl.intrinsics.barriers.comp.out index 5d92dd1f..07bd3709 100644 --- a/Test/baseResults/hlsl.intrinsics.barriers.comp.out +++ b/Test/baseResults/hlsl.intrinsics.barriers.comp.out @@ -5,12 +5,12 @@ local_size = (1, 1, 1) 0:3 Function Definition: ComputeShaderFunction( (temp float) 0:3 Function Parameters: 0:? Sequence -0:4 MemoryBarrier (global void) -0:5 AllMemoryBarrierWithGroupSync (global void) -0:6 GroupMemoryBarrier (global void) -0:7 GroupMemoryBarrierWithGroupSync (global void) -0:8 WorkgroupMemoryBarrier (global void) -0:9 WorkgroupMemoryBarrierWithGroupSync (global void) +0:4 MemoryBarrier (temp void) +0:5 AllMemoryBarrierWithGroupSync (temp void) +0:6 GroupMemoryBarrier (temp void) +0:7 GroupMemoryBarrierWithGroupSync (temp void) +0:8 WorkgroupMemoryBarrier (temp void) +0:9 WorkgroupMemoryBarrierWithGroupSync (temp void) 0:11 Sequence 0:11 move second child to first child (temp float) 0:? '@entryPointOutput' (layout(location=0 ) out float) @@ -30,12 +30,12 @@ local_size = (1, 1, 1) 0:3 Function Definition: ComputeShaderFunction( (temp float) 0:3 Function Parameters: 0:? Sequence -0:4 MemoryBarrier (global void) -0:5 AllMemoryBarrierWithGroupSync (global void) -0:6 GroupMemoryBarrier (global void) -0:7 GroupMemoryBarrierWithGroupSync (global void) -0:8 WorkgroupMemoryBarrier (global void) -0:9 WorkgroupMemoryBarrierWithGroupSync (global void) +0:4 MemoryBarrier (temp void) +0:5 AllMemoryBarrierWithGroupSync (temp void) +0:6 GroupMemoryBarrier (temp void) +0:7 GroupMemoryBarrierWithGroupSync (temp void) +0:8 WorkgroupMemoryBarrier (temp void) +0:9 WorkgroupMemoryBarrierWithGroupSync (temp void) 0:11 Sequence 0:11 move second child to first child (temp float) 0:? '@entryPointOutput' (layout(location=0 ) out float) diff --git a/Test/baseResults/hlsl.intrinsics.comp.out b/Test/baseResults/hlsl.intrinsics.comp.out index 732e2544..42ad9731 100644 --- a/Test/baseResults/hlsl.intrinsics.comp.out +++ b/Test/baseResults/hlsl.intrinsics.comp.out @@ -10,9 +10,9 @@ local_size = (1, 1, 1) 0:17 'inU0' (in uint) 0:17 'inU1' (in uint) 0:? Sequence -0:21 all (global bool) +0:21 all (temp bool) 0:21 'inF0' (in float) -0:24 AtomicAdd (global void) +0:24 AtomicAdd (temp void) 0:24 'gs_ua' (shared uint) 0:24 'gs_ub' (shared uint) 0:25 move second child to first child (temp uint) @@ -20,7 +20,7 @@ local_size = (1, 1, 1) 0:25 AtomicAdd (temp uint) 0:25 'gs_ua' (shared uint) 0:25 'gs_ub' (shared uint) -0:26 AtomicAnd (global void) +0:26 AtomicAnd (temp void) 0:26 'gs_ua' (shared uint) 0:26 'gs_ub' (shared uint) 0:27 move second child to first child (temp uint) @@ -39,7 +39,7 @@ local_size = (1, 1, 1) 0:29 AtomicExchange (temp uint) 0:29 'gs_ua' (shared uint) 0:29 'gs_ub' (shared uint) -0:30 AtomicMax (global void) +0:30 AtomicMax (temp void) 0:30 'gs_ua' (shared uint) 0:30 'gs_ub' (shared uint) 0:31 move second child to first child (temp uint) @@ -47,7 +47,7 @@ local_size = (1, 1, 1) 0:31 AtomicMax (temp uint) 0:31 'gs_ua' (shared uint) 0:31 'gs_ub' (shared uint) -0:32 AtomicMin (global void) +0:32 AtomicMin (temp void) 0:32 'gs_ua' (shared uint) 0:32 'gs_ub' (shared uint) 0:33 move second child to first child (temp uint) @@ -55,7 +55,7 @@ local_size = (1, 1, 1) 0:33 AtomicMin (temp uint) 0:33 'gs_ua' (shared uint) 0:33 'gs_ub' (shared uint) -0:34 AtomicOr (global void) +0:34 AtomicOr (temp void) 0:34 'gs_ua' (shared uint) 0:34 'gs_ub' (shared uint) 0:35 move second child to first child (temp uint) @@ -63,7 +63,7 @@ local_size = (1, 1, 1) 0:35 AtomicOr (temp uint) 0:35 'gs_ua' (shared uint) 0:35 'gs_ub' (shared uint) -0:36 AtomicXor (global void) +0:36 AtomicXor (temp void) 0:36 'gs_ua' (shared uint) 0:36 'gs_ub' (shared uint) 0:37 move second child to first child (temp uint) @@ -91,9 +91,9 @@ local_size = (1, 1, 1) 0:51 'inU0' (in 2-component vector of uint) 0:51 'inU1' (in 2-component vector of uint) 0:? Sequence -0:55 all (global bool) +0:55 all (temp bool) 0:55 'inF0' (in 2-component vector of float) -0:58 AtomicAdd (global void) +0:58 AtomicAdd (temp void) 0:58 'gs_ua2' (shared 2-component vector of uint) 0:58 'gs_ub2' (shared 2-component vector of uint) 0:59 move second child to first child (temp 2-component vector of uint) @@ -101,7 +101,7 @@ local_size = (1, 1, 1) 0:59 AtomicAdd (temp 2-component vector of uint) 0:59 'gs_ua2' (shared 2-component vector of uint) 0:59 'gs_ub2' (shared 2-component vector of uint) -0:60 AtomicAnd (global void) +0:60 AtomicAnd (temp void) 0:60 'gs_ua2' (shared 2-component vector of uint) 0:60 'gs_ub2' (shared 2-component vector of uint) 0:61 move second child to first child (temp 2-component vector of uint) @@ -120,7 +120,7 @@ local_size = (1, 1, 1) 0:63 AtomicExchange (temp 2-component vector of uint) 0:63 'gs_ua2' (shared 2-component vector of uint) 0:63 'gs_ub2' (shared 2-component vector of uint) -0:64 AtomicMax (global void) +0:64 AtomicMax (temp void) 0:64 'gs_ua2' (shared 2-component vector of uint) 0:64 'gs_ub2' (shared 2-component vector of uint) 0:65 move second child to first child (temp 2-component vector of uint) @@ -128,7 +128,7 @@ local_size = (1, 1, 1) 0:65 AtomicMax (temp 2-component vector of uint) 0:65 'gs_ua2' (shared 2-component vector of uint) 0:65 'gs_ub2' (shared 2-component vector of uint) -0:66 AtomicMin (global void) +0:66 AtomicMin (temp void) 0:66 'gs_ua2' (shared 2-component vector of uint) 0:66 'gs_ub2' (shared 2-component vector of uint) 0:67 move second child to first child (temp 2-component vector of uint) @@ -136,7 +136,7 @@ local_size = (1, 1, 1) 0:67 AtomicMin (temp 2-component vector of uint) 0:67 'gs_ua2' (shared 2-component vector of uint) 0:67 'gs_ub2' (shared 2-component vector of uint) -0:68 AtomicOr (global void) +0:68 AtomicOr (temp void) 0:68 'gs_ua2' (shared 2-component vector of uint) 0:68 'gs_ub2' (shared 2-component vector of uint) 0:69 move second child to first child (temp 2-component vector of uint) @@ -144,7 +144,7 @@ local_size = (1, 1, 1) 0:69 AtomicOr (temp 2-component vector of uint) 0:69 'gs_ua2' (shared 2-component vector of uint) 0:69 'gs_ub2' (shared 2-component vector of uint) -0:70 AtomicXor (global void) +0:70 AtomicXor (temp void) 0:70 'gs_ua2' (shared 2-component vector of uint) 0:70 'gs_ub2' (shared 2-component vector of uint) 0:71 move second child to first child (temp 2-component vector of uint) @@ -164,9 +164,9 @@ local_size = (1, 1, 1) 0:78 'inU0' (in 3-component vector of uint) 0:78 'inU1' (in 3-component vector of uint) 0:? Sequence -0:82 all (global bool) +0:82 all (temp bool) 0:82 'inF0' (in 3-component vector of float) -0:85 AtomicAdd (global void) +0:85 AtomicAdd (temp void) 0:85 'gs_ua3' (shared 3-component vector of uint) 0:85 'gs_ub3' (shared 3-component vector of uint) 0:86 move second child to first child (temp 3-component vector of uint) @@ -174,7 +174,7 @@ local_size = (1, 1, 1) 0:86 AtomicAdd (temp 3-component vector of uint) 0:86 'gs_ua3' (shared 3-component vector of uint) 0:86 'gs_ub3' (shared 3-component vector of uint) -0:87 AtomicAnd (global void) +0:87 AtomicAnd (temp void) 0:87 'gs_ua3' (shared 3-component vector of uint) 0:87 'gs_ub3' (shared 3-component vector of uint) 0:88 move second child to first child (temp 3-component vector of uint) @@ -193,7 +193,7 @@ local_size = (1, 1, 1) 0:90 AtomicExchange (temp 3-component vector of uint) 0:90 'gs_ua3' (shared 3-component vector of uint) 0:90 'gs_ub3' (shared 3-component vector of uint) -0:91 AtomicMax (global void) +0:91 AtomicMax (temp void) 0:91 'gs_ua3' (shared 3-component vector of uint) 0:91 'gs_ub3' (shared 3-component vector of uint) 0:92 move second child to first child (temp 3-component vector of uint) @@ -201,7 +201,7 @@ local_size = (1, 1, 1) 0:92 AtomicMax (temp 3-component vector of uint) 0:92 'gs_ua3' (shared 3-component vector of uint) 0:92 'gs_ub3' (shared 3-component vector of uint) -0:93 AtomicMin (global void) +0:93 AtomicMin (temp void) 0:93 'gs_ua3' (shared 3-component vector of uint) 0:93 'gs_ub3' (shared 3-component vector of uint) 0:94 move second child to first child (temp 3-component vector of uint) @@ -209,7 +209,7 @@ local_size = (1, 1, 1) 0:94 AtomicMin (temp 3-component vector of uint) 0:94 'gs_ua3' (shared 3-component vector of uint) 0:94 'gs_ub3' (shared 3-component vector of uint) -0:95 AtomicOr (global void) +0:95 AtomicOr (temp void) 0:95 'gs_ua3' (shared 3-component vector of uint) 0:95 'gs_ub3' (shared 3-component vector of uint) 0:96 move second child to first child (temp 3-component vector of uint) @@ -217,7 +217,7 @@ local_size = (1, 1, 1) 0:96 AtomicOr (temp 3-component vector of uint) 0:96 'gs_ua3' (shared 3-component vector of uint) 0:96 'gs_ub3' (shared 3-component vector of uint) -0:97 AtomicXor (global void) +0:97 AtomicXor (temp void) 0:97 'gs_ua3' (shared 3-component vector of uint) 0:97 'gs_ub3' (shared 3-component vector of uint) 0:98 move second child to first child (temp 3-component vector of uint) @@ -238,9 +238,9 @@ local_size = (1, 1, 1) 0:105 'inU0' (layout(location=3 ) in 4-component vector of uint) 0:105 'inU1' (layout(location=4 ) in 4-component vector of uint) 0:? Sequence -0:109 all (global bool) +0:109 all (temp bool) 0:109 'inF0' (layout(location=0 ) in 4-component vector of float) -0:112 AtomicAdd (global void) +0:112 AtomicAdd (temp void) 0:112 'gs_ua4' (shared 4-component vector of uint) 0:112 'gs_ub4' (shared 4-component vector of uint) 0:113 move second child to first child (temp 4-component vector of uint) @@ -248,7 +248,7 @@ local_size = (1, 1, 1) 0:113 AtomicAdd (temp 4-component vector of uint) 0:113 'gs_ua4' (shared 4-component vector of uint) 0:113 'gs_ub4' (shared 4-component vector of uint) -0:114 AtomicAnd (global void) +0:114 AtomicAnd (temp void) 0:114 'gs_ua4' (shared 4-component vector of uint) 0:114 'gs_ub4' (shared 4-component vector of uint) 0:115 move second child to first child (temp 4-component vector of uint) @@ -267,7 +267,7 @@ local_size = (1, 1, 1) 0:117 AtomicExchange (temp 4-component vector of uint) 0:117 'gs_ua4' (shared 4-component vector of uint) 0:117 'gs_ub4' (shared 4-component vector of uint) -0:118 AtomicMax (global void) +0:118 AtomicMax (temp void) 0:118 'gs_ua4' (shared 4-component vector of uint) 0:118 'gs_ub4' (shared 4-component vector of uint) 0:119 move second child to first child (temp 4-component vector of uint) @@ -275,7 +275,7 @@ local_size = (1, 1, 1) 0:119 AtomicMax (temp 4-component vector of uint) 0:119 'gs_ua4' (shared 4-component vector of uint) 0:119 'gs_ub4' (shared 4-component vector of uint) -0:120 AtomicMin (global void) +0:120 AtomicMin (temp void) 0:120 'gs_ua4' (shared 4-component vector of uint) 0:120 'gs_ub4' (shared 4-component vector of uint) 0:121 move second child to first child (temp 4-component vector of uint) @@ -283,7 +283,7 @@ local_size = (1, 1, 1) 0:121 AtomicMin (temp 4-component vector of uint) 0:121 'gs_ua4' (shared 4-component vector of uint) 0:121 'gs_ub4' (shared 4-component vector of uint) -0:122 AtomicOr (global void) +0:122 AtomicOr (temp void) 0:122 'gs_ua4' (shared 4-component vector of uint) 0:122 'gs_ub4' (shared 4-component vector of uint) 0:123 move second child to first child (temp 4-component vector of uint) @@ -291,7 +291,7 @@ local_size = (1, 1, 1) 0:123 AtomicOr (temp 4-component vector of uint) 0:123 'gs_ua4' (shared 4-component vector of uint) 0:123 'gs_ub4' (shared 4-component vector of uint) -0:124 AtomicXor (global void) +0:124 AtomicXor (temp void) 0:124 'gs_ua4' (shared 4-component vector of uint) 0:124 'gs_ub4' (shared 4-component vector of uint) 0:125 move second child to first child (temp 4-component vector of uint) @@ -343,9 +343,9 @@ local_size = (1, 1, 1) 0:17 'inU0' (in uint) 0:17 'inU1' (in uint) 0:? Sequence -0:21 all (global bool) +0:21 all (temp bool) 0:21 'inF0' (in float) -0:24 AtomicAdd (global void) +0:24 AtomicAdd (temp void) 0:24 'gs_ua' (shared uint) 0:24 'gs_ub' (shared uint) 0:25 move second child to first child (temp uint) @@ -353,7 +353,7 @@ local_size = (1, 1, 1) 0:25 AtomicAdd (temp uint) 0:25 'gs_ua' (shared uint) 0:25 'gs_ub' (shared uint) -0:26 AtomicAnd (global void) +0:26 AtomicAnd (temp void) 0:26 'gs_ua' (shared uint) 0:26 'gs_ub' (shared uint) 0:27 move second child to first child (temp uint) @@ -372,7 +372,7 @@ local_size = (1, 1, 1) 0:29 AtomicExchange (temp uint) 0:29 'gs_ua' (shared uint) 0:29 'gs_ub' (shared uint) -0:30 AtomicMax (global void) +0:30 AtomicMax (temp void) 0:30 'gs_ua' (shared uint) 0:30 'gs_ub' (shared uint) 0:31 move second child to first child (temp uint) @@ -380,7 +380,7 @@ local_size = (1, 1, 1) 0:31 AtomicMax (temp uint) 0:31 'gs_ua' (shared uint) 0:31 'gs_ub' (shared uint) -0:32 AtomicMin (global void) +0:32 AtomicMin (temp void) 0:32 'gs_ua' (shared uint) 0:32 'gs_ub' (shared uint) 0:33 move second child to first child (temp uint) @@ -388,7 +388,7 @@ local_size = (1, 1, 1) 0:33 AtomicMin (temp uint) 0:33 'gs_ua' (shared uint) 0:33 'gs_ub' (shared uint) -0:34 AtomicOr (global void) +0:34 AtomicOr (temp void) 0:34 'gs_ua' (shared uint) 0:34 'gs_ub' (shared uint) 0:35 move second child to first child (temp uint) @@ -396,7 +396,7 @@ local_size = (1, 1, 1) 0:35 AtomicOr (temp uint) 0:35 'gs_ua' (shared uint) 0:35 'gs_ub' (shared uint) -0:36 AtomicXor (global void) +0:36 AtomicXor (temp void) 0:36 'gs_ua' (shared uint) 0:36 'gs_ub' (shared uint) 0:37 move second child to first child (temp uint) @@ -424,9 +424,9 @@ local_size = (1, 1, 1) 0:51 'inU0' (in 2-component vector of uint) 0:51 'inU1' (in 2-component vector of uint) 0:? Sequence -0:55 all (global bool) +0:55 all (temp bool) 0:55 'inF0' (in 2-component vector of float) -0:58 AtomicAdd (global void) +0:58 AtomicAdd (temp void) 0:58 'gs_ua2' (shared 2-component vector of uint) 0:58 'gs_ub2' (shared 2-component vector of uint) 0:59 move second child to first child (temp 2-component vector of uint) @@ -434,7 +434,7 @@ local_size = (1, 1, 1) 0:59 AtomicAdd (temp 2-component vector of uint) 0:59 'gs_ua2' (shared 2-component vector of uint) 0:59 'gs_ub2' (shared 2-component vector of uint) -0:60 AtomicAnd (global void) +0:60 AtomicAnd (temp void) 0:60 'gs_ua2' (shared 2-component vector of uint) 0:60 'gs_ub2' (shared 2-component vector of uint) 0:61 move second child to first child (temp 2-component vector of uint) @@ -453,7 +453,7 @@ local_size = (1, 1, 1) 0:63 AtomicExchange (temp 2-component vector of uint) 0:63 'gs_ua2' (shared 2-component vector of uint) 0:63 'gs_ub2' (shared 2-component vector of uint) -0:64 AtomicMax (global void) +0:64 AtomicMax (temp void) 0:64 'gs_ua2' (shared 2-component vector of uint) 0:64 'gs_ub2' (shared 2-component vector of uint) 0:65 move second child to first child (temp 2-component vector of uint) @@ -461,7 +461,7 @@ local_size = (1, 1, 1) 0:65 AtomicMax (temp 2-component vector of uint) 0:65 'gs_ua2' (shared 2-component vector of uint) 0:65 'gs_ub2' (shared 2-component vector of uint) -0:66 AtomicMin (global void) +0:66 AtomicMin (temp void) 0:66 'gs_ua2' (shared 2-component vector of uint) 0:66 'gs_ub2' (shared 2-component vector of uint) 0:67 move second child to first child (temp 2-component vector of uint) @@ -469,7 +469,7 @@ local_size = (1, 1, 1) 0:67 AtomicMin (temp 2-component vector of uint) 0:67 'gs_ua2' (shared 2-component vector of uint) 0:67 'gs_ub2' (shared 2-component vector of uint) -0:68 AtomicOr (global void) +0:68 AtomicOr (temp void) 0:68 'gs_ua2' (shared 2-component vector of uint) 0:68 'gs_ub2' (shared 2-component vector of uint) 0:69 move second child to first child (temp 2-component vector of uint) @@ -477,7 +477,7 @@ local_size = (1, 1, 1) 0:69 AtomicOr (temp 2-component vector of uint) 0:69 'gs_ua2' (shared 2-component vector of uint) 0:69 'gs_ub2' (shared 2-component vector of uint) -0:70 AtomicXor (global void) +0:70 AtomicXor (temp void) 0:70 'gs_ua2' (shared 2-component vector of uint) 0:70 'gs_ub2' (shared 2-component vector of uint) 0:71 move second child to first child (temp 2-component vector of uint) @@ -497,9 +497,9 @@ local_size = (1, 1, 1) 0:78 'inU0' (in 3-component vector of uint) 0:78 'inU1' (in 3-component vector of uint) 0:? Sequence -0:82 all (global bool) +0:82 all (temp bool) 0:82 'inF0' (in 3-component vector of float) -0:85 AtomicAdd (global void) +0:85 AtomicAdd (temp void) 0:85 'gs_ua3' (shared 3-component vector of uint) 0:85 'gs_ub3' (shared 3-component vector of uint) 0:86 move second child to first child (temp 3-component vector of uint) @@ -507,7 +507,7 @@ local_size = (1, 1, 1) 0:86 AtomicAdd (temp 3-component vector of uint) 0:86 'gs_ua3' (shared 3-component vector of uint) 0:86 'gs_ub3' (shared 3-component vector of uint) -0:87 AtomicAnd (global void) +0:87 AtomicAnd (temp void) 0:87 'gs_ua3' (shared 3-component vector of uint) 0:87 'gs_ub3' (shared 3-component vector of uint) 0:88 move second child to first child (temp 3-component vector of uint) @@ -526,7 +526,7 @@ local_size = (1, 1, 1) 0:90 AtomicExchange (temp 3-component vector of uint) 0:90 'gs_ua3' (shared 3-component vector of uint) 0:90 'gs_ub3' (shared 3-component vector of uint) -0:91 AtomicMax (global void) +0:91 AtomicMax (temp void) 0:91 'gs_ua3' (shared 3-component vector of uint) 0:91 'gs_ub3' (shared 3-component vector of uint) 0:92 move second child to first child (temp 3-component vector of uint) @@ -534,7 +534,7 @@ local_size = (1, 1, 1) 0:92 AtomicMax (temp 3-component vector of uint) 0:92 'gs_ua3' (shared 3-component vector of uint) 0:92 'gs_ub3' (shared 3-component vector of uint) -0:93 AtomicMin (global void) +0:93 AtomicMin (temp void) 0:93 'gs_ua3' (shared 3-component vector of uint) 0:93 'gs_ub3' (shared 3-component vector of uint) 0:94 move second child to first child (temp 3-component vector of uint) @@ -542,7 +542,7 @@ local_size = (1, 1, 1) 0:94 AtomicMin (temp 3-component vector of uint) 0:94 'gs_ua3' (shared 3-component vector of uint) 0:94 'gs_ub3' (shared 3-component vector of uint) -0:95 AtomicOr (global void) +0:95 AtomicOr (temp void) 0:95 'gs_ua3' (shared 3-component vector of uint) 0:95 'gs_ub3' (shared 3-component vector of uint) 0:96 move second child to first child (temp 3-component vector of uint) @@ -550,7 +550,7 @@ local_size = (1, 1, 1) 0:96 AtomicOr (temp 3-component vector of uint) 0:96 'gs_ua3' (shared 3-component vector of uint) 0:96 'gs_ub3' (shared 3-component vector of uint) -0:97 AtomicXor (global void) +0:97 AtomicXor (temp void) 0:97 'gs_ua3' (shared 3-component vector of uint) 0:97 'gs_ub3' (shared 3-component vector of uint) 0:98 move second child to first child (temp 3-component vector of uint) @@ -571,9 +571,9 @@ local_size = (1, 1, 1) 0:105 'inU0' (layout(location=3 ) in 4-component vector of uint) 0:105 'inU1' (layout(location=4 ) in 4-component vector of uint) 0:? Sequence -0:109 all (global bool) +0:109 all (temp bool) 0:109 'inF0' (layout(location=0 ) in 4-component vector of float) -0:112 AtomicAdd (global void) +0:112 AtomicAdd (temp void) 0:112 'gs_ua4' (shared 4-component vector of uint) 0:112 'gs_ub4' (shared 4-component vector of uint) 0:113 move second child to first child (temp 4-component vector of uint) @@ -581,7 +581,7 @@ local_size = (1, 1, 1) 0:113 AtomicAdd (temp 4-component vector of uint) 0:113 'gs_ua4' (shared 4-component vector of uint) 0:113 'gs_ub4' (shared 4-component vector of uint) -0:114 AtomicAnd (global void) +0:114 AtomicAnd (temp void) 0:114 'gs_ua4' (shared 4-component vector of uint) 0:114 'gs_ub4' (shared 4-component vector of uint) 0:115 move second child to first child (temp 4-component vector of uint) @@ -600,7 +600,7 @@ local_size = (1, 1, 1) 0:117 AtomicExchange (temp 4-component vector of uint) 0:117 'gs_ua4' (shared 4-component vector of uint) 0:117 'gs_ub4' (shared 4-component vector of uint) -0:118 AtomicMax (global void) +0:118 AtomicMax (temp void) 0:118 'gs_ua4' (shared 4-component vector of uint) 0:118 'gs_ub4' (shared 4-component vector of uint) 0:119 move second child to first child (temp 4-component vector of uint) @@ -608,7 +608,7 @@ local_size = (1, 1, 1) 0:119 AtomicMax (temp 4-component vector of uint) 0:119 'gs_ua4' (shared 4-component vector of uint) 0:119 'gs_ub4' (shared 4-component vector of uint) -0:120 AtomicMin (global void) +0:120 AtomicMin (temp void) 0:120 'gs_ua4' (shared 4-component vector of uint) 0:120 'gs_ub4' (shared 4-component vector of uint) 0:121 move second child to first child (temp 4-component vector of uint) @@ -616,7 +616,7 @@ local_size = (1, 1, 1) 0:121 AtomicMin (temp 4-component vector of uint) 0:121 'gs_ua4' (shared 4-component vector of uint) 0:121 'gs_ub4' (shared 4-component vector of uint) -0:122 AtomicOr (global void) +0:122 AtomicOr (temp void) 0:122 'gs_ua4' (shared 4-component vector of uint) 0:122 'gs_ub4' (shared 4-component vector of uint) 0:123 move second child to first child (temp 4-component vector of uint) @@ -624,7 +624,7 @@ local_size = (1, 1, 1) 0:123 AtomicOr (temp 4-component vector of uint) 0:123 'gs_ua4' (shared 4-component vector of uint) 0:123 'gs_ub4' (shared 4-component vector of uint) -0:124 AtomicXor (global void) +0:124 AtomicXor (temp void) 0:124 'gs_ua4' (shared 4-component vector of uint) 0:124 'gs_ub4' (shared 4-component vector of uint) 0:125 move second child to first child (temp 4-component vector of uint) diff --git a/Test/baseResults/hlsl.intrinsics.double.frag.out b/Test/baseResults/hlsl.intrinsics.double.frag.out index 554e5520..91abf737 100644 --- a/Test/baseResults/hlsl.intrinsics.double.frag.out +++ b/Test/baseResults/hlsl.intrinsics.double.frag.out @@ -16,7 +16,7 @@ gl_FragCoord origin is upper left 0:6 Sequence 0:6 move second child to first child (temp double) 0:6 'r00' (temp double) -0:6 fma (global double) +0:6 fma (temp double) 0:6 'inDV1a' (layout(location=0 ) in double) 0:6 'inDV1b' (layout(location=1 ) in double) 0:6 'inDV1c' (layout(location=2 ) in double) @@ -65,7 +65,7 @@ gl_FragCoord origin is upper left 0:6 Sequence 0:6 move second child to first child (temp double) 0:6 'r00' (temp double) -0:6 fma (global double) +0:6 fma (temp double) 0:6 'inDV1a' (layout(location=0 ) in double) 0:6 'inDV1b' (layout(location=1 ) in double) 0:6 'inDV1c' (layout(location=2 ) in double) diff --git a/Test/baseResults/hlsl.intrinsics.f1632.frag.out b/Test/baseResults/hlsl.intrinsics.f1632.frag.out index 5fcb5f99..0b4c0746 100644 --- a/Test/baseResults/hlsl.intrinsics.f1632.frag.out +++ b/Test/baseResults/hlsl.intrinsics.f1632.frag.out @@ -14,7 +14,7 @@ ERROR: node is still EOpNull! 0:2 'inF0' (in float) 0:? Sequence 0:3 ERROR: Bad unary op - (global uint) + (temp uint) 0:3 'inF0' (in float) 0:5 Branch: Return with expression 0:5 Constant: @@ -31,7 +31,7 @@ ERROR: node is still EOpNull! 0:15 'inF0' (in 2-component vector of float) 0:? Sequence 0:16 ERROR: Bad unary op - (global 2-component vector of uint) + (temp 2-component vector of uint) 0:16 'inF0' (in 2-component vector of float) 0:18 Branch: Return with expression 0:? Constant: @@ -42,7 +42,7 @@ ERROR: node is still EOpNull! 0:22 'inF0' (in 3-component vector of float) 0:? Sequence 0:23 ERROR: Bad unary op - (global 3-component vector of uint) + (temp 3-component vector of uint) 0:23 'inF0' (in 3-component vector of float) 0:25 Branch: Return with expression 0:? Constant: @@ -54,7 +54,7 @@ ERROR: node is still EOpNull! 0:29 'inF0' (layout(location=0 ) in 4-component vector of float) 0:? Sequence 0:30 ERROR: Bad unary op - (global 4-component vector of uint) + (temp 4-component vector of uint) 0:30 'inF0' (layout(location=0 ) in 4-component vector of float) 0:32 Sequence 0:32 move second child to first child (temp 4-component vector of float) @@ -81,7 +81,7 @@ ERROR: node is still EOpNull! 0:2 'inF0' (in float) 0:? Sequence 0:3 ERROR: Bad unary op - (global uint) + (temp uint) 0:3 'inF0' (in float) 0:5 Branch: Return with expression 0:5 Constant: @@ -98,7 +98,7 @@ ERROR: node is still EOpNull! 0:15 'inF0' (in 2-component vector of float) 0:? Sequence 0:16 ERROR: Bad unary op - (global 2-component vector of uint) + (temp 2-component vector of uint) 0:16 'inF0' (in 2-component vector of float) 0:18 Branch: Return with expression 0:? Constant: @@ -109,7 +109,7 @@ ERROR: node is still EOpNull! 0:22 'inF0' (in 3-component vector of float) 0:? Sequence 0:23 ERROR: Bad unary op - (global 3-component vector of uint) + (temp 3-component vector of uint) 0:23 'inF0' (in 3-component vector of float) 0:25 Branch: Return with expression 0:? Constant: @@ -121,7 +121,7 @@ ERROR: node is still EOpNull! 0:29 'inF0' (layout(location=0 ) in 4-component vector of float) 0:? Sequence 0:30 ERROR: Bad unary op - (global 4-component vector of uint) + (temp 4-component vector of uint) 0:30 'inF0' (layout(location=0 ) in 4-component vector of float) 0:32 Sequence 0:32 move second child to first child (temp 4-component vector of float) diff --git a/Test/baseResults/hlsl.intrinsics.frag.out b/Test/baseResults/hlsl.intrinsics.frag.out index a5a119a8..8a1935ee 100644 --- a/Test/baseResults/hlsl.intrinsics.frag.out +++ b/Test/baseResults/hlsl.intrinsics.frag.out @@ -13,63 +13,63 @@ gl_FragCoord origin is upper left 0:20 Sequence 0:20 move second child to first child (temp bool) 0:20 'r000' (temp bool) -0:20 all (global bool) +0:20 all (temp bool) 0:20 'inF0' (in float) 0:21 Sequence 0:21 move second child to first child (temp float) 0:21 'r001' (temp float) -0:21 Absolute value (global float) +0:21 Absolute value (temp float) 0:21 'inF0' (in float) 0:22 Sequence 0:22 move second child to first child (temp float) 0:22 'r002' (temp float) -0:22 arc cosine (global float) +0:22 arc cosine (temp float) 0:22 'inF0' (in float) 0:23 Sequence 0:23 move second child to first child (temp bool) 0:23 'r003' (temp bool) -0:23 any (global bool) +0:23 any (temp bool) 0:23 'inF0' (in float) 0:24 Sequence 0:24 move second child to first child (temp float) 0:24 'r004' (temp float) -0:24 arc sine (global float) +0:24 arc sine (temp float) 0:24 'inF0' (in float) 0:25 Sequence 0:25 move second child to first child (temp int) 0:25 'r005' (temp int) -0:25 floatBitsToInt (global int) +0:25 floatBitsToInt (temp int) 0:25 'inF0' (in float) 0:26 Sequence 0:26 move second child to first child (temp uint) 0:26 'r006' (temp uint) -0:26 floatBitsToUint (global uint) +0:26 floatBitsToUint (temp uint) 0:26 'inF0' (in float) 0:27 Sequence 0:27 move second child to first child (temp float) 0:27 'r007' (temp float) -0:27 intBitsToFloat (global float) +0:27 intBitsToFloat (temp float) 0:27 'inU0' (in uint) 0:29 Sequence 0:29 move second child to first child (temp float) 0:29 'r009' (temp float) -0:29 arc tangent (global float) +0:29 arc tangent (temp float) 0:29 'inF0' (in float) 0:30 Sequence 0:30 move second child to first child (temp float) 0:30 'r010' (temp float) -0:30 arc tangent (global float) +0:30 arc tangent (temp float) 0:30 'inF0' (in float) 0:30 'inF1' (in float) 0:31 Sequence 0:31 move second child to first child (temp float) 0:31 'r011' (temp float) -0:31 Ceiling (global float) +0:31 Ceiling (temp float) 0:31 'inF0' (in float) 0:32 Sequence 0:32 move second child to first child (temp float) 0:32 'r012' (temp float) -0:32 clamp (global float) +0:32 clamp (temp float) 0:32 'inF0' (in float) 0:32 'inF1' (in float) 0:32 'inF2' (in float) @@ -84,132 +84,132 @@ gl_FragCoord origin is upper left 0:34 Sequence 0:34 move second child to first child (temp float) 0:34 'r014' (temp float) -0:34 cosine (global float) +0:34 cosine (temp float) 0:34 'inF0' (in float) 0:35 Sequence 0:35 move second child to first child (temp float) 0:35 'r015' (temp float) -0:35 hyp. cosine (global float) +0:35 hyp. cosine (temp float) 0:35 'inF0' (in float) 0:36 Sequence 0:36 move second child to first child (temp uint) 0:36 'r016' (temp uint) -0:36 bitCount (global uint) +0:36 bitCount (temp uint) 0:36 Constant: 0:36 7 (const uint) 0:37 Sequence 0:37 move second child to first child (temp float) 0:37 'r017' (temp float) -0:37 dPdx (global float) +0:37 dPdx (temp float) 0:37 'inF0' (in float) 0:38 Sequence 0:38 move second child to first child (temp float) 0:38 'r018' (temp float) -0:38 dPdxCoarse (global float) +0:38 dPdxCoarse (temp float) 0:38 'inF0' (in float) 0:39 Sequence 0:39 move second child to first child (temp float) 0:39 'r019' (temp float) -0:39 dPdxFine (global float) +0:39 dPdxFine (temp float) 0:39 'inF0' (in float) 0:40 Sequence 0:40 move second child to first child (temp float) 0:40 'r020' (temp float) -0:40 dPdy (global float) +0:40 dPdy (temp float) 0:40 'inF0' (in float) 0:41 Sequence 0:41 move second child to first child (temp float) 0:41 'r021' (temp float) -0:41 dPdyCoarse (global float) +0:41 dPdyCoarse (temp float) 0:41 'inF0' (in float) 0:42 Sequence 0:42 move second child to first child (temp float) 0:42 'r022' (temp float) -0:42 dPdyFine (global float) +0:42 dPdyFine (temp float) 0:42 'inF0' (in float) 0:43 Sequence 0:43 move second child to first child (temp float) 0:43 'r023' (temp float) -0:43 degrees (global float) +0:43 degrees (temp float) 0:43 'inF0' (in float) 0:47 Sequence 0:47 move second child to first child (temp float) 0:47 'r027' (temp float) -0:47 exp (global float) +0:47 exp (temp float) 0:47 'inF0' (in float) 0:48 Sequence 0:48 move second child to first child (temp float) 0:48 'r028' (temp float) -0:48 exp2 (global float) +0:48 exp2 (temp float) 0:48 'inF0' (in float) 0:49 Sequence 0:49 move second child to first child (temp uint) 0:49 'r029' (temp uint) 0:49 Convert int to uint (temp uint) -0:49 findMSB (global int) +0:49 findMSB (temp int) 0:49 Constant: 0:49 7 (const int) 0:50 Sequence 0:50 move second child to first child (temp uint) 0:50 'r030' (temp uint) 0:50 Convert int to uint (temp uint) -0:50 findLSB (global int) +0:50 findLSB (temp int) 0:50 Constant: 0:50 7 (const int) 0:51 Sequence 0:51 move second child to first child (temp float) 0:51 'r031' (temp float) -0:51 Floor (global float) +0:51 Floor (temp float) 0:51 'inF0' (in float) 0:53 Sequence 0:53 move second child to first child (temp float) 0:53 'r033' (temp float) -0:53 mod (global float) +0:53 mod (temp float) 0:53 'inF0' (in float) 0:53 'inF1' (in float) 0:54 Sequence 0:54 move second child to first child (temp float) 0:54 'r034' (temp float) -0:54 Fraction (global float) +0:54 Fraction (temp float) 0:54 'inF0' (in float) 0:55 Sequence 0:55 move second child to first child (temp float) 0:55 'r035' (temp float) -0:55 frexp (global float) +0:55 frexp (temp float) 0:55 'inF0' (in float) 0:55 'inF1' (in float) 0:56 Sequence 0:56 move second child to first child (temp float) 0:56 'r036' (temp float) -0:56 fwidth (global float) +0:56 fwidth (temp float) 0:56 'inF0' (in float) 0:57 Sequence 0:57 move second child to first child (temp bool) 0:57 'r037' (temp bool) -0:57 isinf (global bool) +0:57 isinf (temp bool) 0:57 'inF0' (in float) 0:58 Sequence 0:58 move second child to first child (temp bool) 0:58 'r038' (temp bool) -0:58 isnan (global bool) +0:58 isnan (temp bool) 0:58 'inF0' (in float) 0:59 Sequence 0:59 move second child to first child (temp float) 0:59 'r039' (temp float) -0:59 ldexp (global float) +0:59 ldexp (temp float) 0:59 'inF0' (in float) 0:59 'inF1' (in float) 0:60 Sequence 0:60 move second child to first child (temp float) 0:60 'r039a' (temp float) -0:60 mix (global float) +0:60 mix (temp float) 0:60 'inF0' (in float) 0:60 'inF1' (in float) 0:60 'inF2' (in float) 0:61 Sequence 0:61 move second child to first child (temp float) 0:61 'r040' (temp float) -0:61 log (global float) +0:61 log (temp float) 0:61 'inF0' (in float) 0:62 Sequence 0:62 move second child to first child (temp float) @@ -222,30 +222,30 @@ gl_FragCoord origin is upper left 0:63 Sequence 0:63 move second child to first child (temp float) 0:63 'r042' (temp float) -0:63 log2 (global float) +0:63 log2 (temp float) 0:63 'inF0' (in float) 0:64 Sequence 0:64 move second child to first child (temp float) 0:64 'r043' (temp float) -0:64 max (global float) +0:64 max (temp float) 0:64 'inF0' (in float) 0:64 'inF1' (in float) 0:65 Sequence 0:65 move second child to first child (temp float) 0:65 'r044' (temp float) -0:65 min (global float) +0:65 min (temp float) 0:65 'inF0' (in float) 0:65 'inF1' (in float) 0:66 Sequence 0:66 move second child to first child (temp float) 0:66 'r045' (temp float) -0:66 pow (global float) +0:66 pow (temp float) 0:66 'inF0' (in float) 0:66 'inF1' (in float) 0:67 Sequence 0:67 move second child to first child (temp float) 0:67 'r046' (temp float) -0:67 radians (global float) +0:67 radians (temp float) 0:67 'inF0' (in float) 0:68 Sequence 0:68 move second child to first child (temp float) @@ -257,18 +257,18 @@ gl_FragCoord origin is upper left 0:69 Sequence 0:69 move second child to first child (temp uint) 0:69 'r048' (temp uint) -0:69 bitFieldReverse (global uint) +0:69 bitFieldReverse (temp uint) 0:69 Constant: 0:69 2 (const uint) 0:70 Sequence 0:70 move second child to first child (temp float) 0:70 'r049' (temp float) -0:70 roundEven (global float) +0:70 roundEven (temp float) 0:70 'inF0' (in float) 0:71 Sequence 0:71 move second child to first child (temp float) 0:71 'r050' (temp float) -0:71 inverse sqrt (global float) +0:71 inverse sqrt (temp float) 0:71 'inF0' (in float) 0:72 Sequence 0:72 move second child to first child (temp float) @@ -282,12 +282,12 @@ gl_FragCoord origin is upper left 0:73 Sequence 0:73 move second child to first child (temp float) 0:73 'r052' (temp float) -0:73 Sign (global float) +0:73 Sign (temp float) 0:73 'inF0' (in float) 0:74 Sequence 0:74 move second child to first child (temp float) 0:74 'r053' (temp float) -0:74 sine (global float) +0:74 sine (temp float) 0:74 'inF0' (in float) 0:75 Sequence 0:75 move second child to first child (temp float) @@ -301,40 +301,40 @@ gl_FragCoord origin is upper left 0:76 Sequence 0:76 move second child to first child (temp float) 0:76 'r055' (temp float) -0:76 hyp. sine (global float) +0:76 hyp. sine (temp float) 0:76 'inF0' (in float) 0:77 Sequence 0:77 move second child to first child (temp float) 0:77 'r056' (temp float) -0:77 smoothstep (global float) +0:77 smoothstep (temp float) 0:77 'inF0' (in float) 0:77 'inF1' (in float) 0:77 'inF2' (in float) 0:78 Sequence 0:78 move second child to first child (temp float) 0:78 'r057' (temp float) -0:78 sqrt (global float) +0:78 sqrt (temp float) 0:78 'inF0' (in float) 0:79 Sequence 0:79 move second child to first child (temp float) 0:79 'r058' (temp float) -0:79 step (global float) +0:79 step (temp float) 0:79 'inF0' (in float) 0:79 'inF1' (in float) 0:80 Sequence 0:80 move second child to first child (temp float) 0:80 'r059' (temp float) -0:80 tangent (global float) +0:80 tangent (temp float) 0:80 'inF0' (in float) 0:81 Sequence 0:81 move second child to first child (temp float) 0:81 'r060' (temp float) -0:81 hyp. tangent (global float) +0:81 hyp. tangent (temp float) 0:81 'inF0' (in float) 0:83 Sequence 0:83 move second child to first child (temp float) 0:83 'r061' (temp float) -0:83 trunc (global float) +0:83 trunc (temp float) 0:83 'inF0' (in float) 0:85 Branch: Return with expression 0:85 Constant: @@ -359,63 +359,63 @@ gl_FragCoord origin is upper left 0:98 Sequence 0:98 move second child to first child (temp bool) 0:98 'r000' (temp bool) -0:98 all (global bool) +0:98 all (temp bool) 0:98 'inF0' (in 2-component vector of float) 0:99 Sequence 0:99 move second child to first child (temp 2-component vector of float) 0:99 'r001' (temp 2-component vector of float) -0:99 Absolute value (global 2-component vector of float) +0:99 Absolute value (temp 2-component vector of float) 0:99 'inF0' (in 2-component vector of float) 0:100 Sequence 0:100 move second child to first child (temp 2-component vector of float) 0:100 'r002' (temp 2-component vector of float) -0:100 arc cosine (global 2-component vector of float) +0:100 arc cosine (temp 2-component vector of float) 0:100 'inF0' (in 2-component vector of float) 0:101 Sequence 0:101 move second child to first child (temp bool) 0:101 'r003' (temp bool) -0:101 any (global bool) +0:101 any (temp bool) 0:101 'inF0' (in 2-component vector of float) 0:102 Sequence 0:102 move second child to first child (temp 2-component vector of float) 0:102 'r004' (temp 2-component vector of float) -0:102 arc sine (global 2-component vector of float) +0:102 arc sine (temp 2-component vector of float) 0:102 'inF0' (in 2-component vector of float) 0:103 Sequence 0:103 move second child to first child (temp 2-component vector of int) 0:103 'r005' (temp 2-component vector of int) -0:103 floatBitsToInt (global 2-component vector of int) +0:103 floatBitsToInt (temp 2-component vector of int) 0:103 'inF0' (in 2-component vector of float) 0:104 Sequence 0:104 move second child to first child (temp 2-component vector of uint) 0:104 'r006' (temp 2-component vector of uint) -0:104 floatBitsToUint (global 2-component vector of uint) +0:104 floatBitsToUint (temp 2-component vector of uint) 0:104 'inF0' (in 2-component vector of float) 0:105 Sequence 0:105 move second child to first child (temp 2-component vector of float) 0:105 'r007' (temp 2-component vector of float) -0:105 intBitsToFloat (global 2-component vector of float) +0:105 intBitsToFloat (temp 2-component vector of float) 0:105 'inU0' (in 2-component vector of uint) 0:107 Sequence 0:107 move second child to first child (temp 2-component vector of float) 0:107 'r009' (temp 2-component vector of float) -0:107 arc tangent (global 2-component vector of float) +0:107 arc tangent (temp 2-component vector of float) 0:107 'inF0' (in 2-component vector of float) 0:108 Sequence 0:108 move second child to first child (temp 2-component vector of float) 0:108 'r010' (temp 2-component vector of float) -0:108 arc tangent (global 2-component vector of float) +0:108 arc tangent (temp 2-component vector of float) 0:108 'inF0' (in 2-component vector of float) 0:108 'inF1' (in 2-component vector of float) 0:109 Sequence 0:109 move second child to first child (temp 2-component vector of float) 0:109 'r011' (temp 2-component vector of float) -0:109 Ceiling (global 2-component vector of float) +0:109 Ceiling (temp 2-component vector of float) 0:109 'inF0' (in 2-component vector of float) 0:110 Sequence 0:110 move second child to first child (temp 2-component vector of float) 0:110 'r012' (temp 2-component vector of float) -0:110 clamp (global 2-component vector of float) +0:110 clamp (temp 2-component vector of float) 0:110 'inF0' (in 2-component vector of float) 0:110 'inF1' (in 2-component vector of float) 0:110 'inF2' (in 2-component vector of float) @@ -432,157 +432,157 @@ gl_FragCoord origin is upper left 0:112 Sequence 0:112 move second child to first child (temp 2-component vector of float) 0:112 'r013' (temp 2-component vector of float) -0:112 cosine (global 2-component vector of float) +0:112 cosine (temp 2-component vector of float) 0:112 'inF0' (in 2-component vector of float) 0:113 Sequence 0:113 move second child to first child (temp 2-component vector of float) 0:113 'r015' (temp 2-component vector of float) -0:113 hyp. cosine (global 2-component vector of float) +0:113 hyp. cosine (temp 2-component vector of float) 0:113 'inF0' (in 2-component vector of float) 0:114 Sequence 0:114 move second child to first child (temp 2-component vector of uint) 0:114 'r016' (temp 2-component vector of uint) -0:? bitCount (global 2-component vector of uint) +0:? bitCount (temp 2-component vector of uint) 0:? Constant: 0:? 7 (const uint) 0:? 3 (const uint) 0:115 Sequence 0:115 move second child to first child (temp 2-component vector of float) 0:115 'r017' (temp 2-component vector of float) -0:115 dPdx (global 2-component vector of float) +0:115 dPdx (temp 2-component vector of float) 0:115 'inF0' (in 2-component vector of float) 0:116 Sequence 0:116 move second child to first child (temp 2-component vector of float) 0:116 'r018' (temp 2-component vector of float) -0:116 dPdxCoarse (global 2-component vector of float) +0:116 dPdxCoarse (temp 2-component vector of float) 0:116 'inF0' (in 2-component vector of float) 0:117 Sequence 0:117 move second child to first child (temp 2-component vector of float) 0:117 'r019' (temp 2-component vector of float) -0:117 dPdxFine (global 2-component vector of float) +0:117 dPdxFine (temp 2-component vector of float) 0:117 'inF0' (in 2-component vector of float) 0:118 Sequence 0:118 move second child to first child (temp 2-component vector of float) 0:118 'r020' (temp 2-component vector of float) -0:118 dPdy (global 2-component vector of float) +0:118 dPdy (temp 2-component vector of float) 0:118 'inF0' (in 2-component vector of float) 0:119 Sequence 0:119 move second child to first child (temp 2-component vector of float) 0:119 'r021' (temp 2-component vector of float) -0:119 dPdyCoarse (global 2-component vector of float) +0:119 dPdyCoarse (temp 2-component vector of float) 0:119 'inF0' (in 2-component vector of float) 0:120 Sequence 0:120 move second child to first child (temp 2-component vector of float) 0:120 'r022' (temp 2-component vector of float) -0:120 dPdyFine (global 2-component vector of float) +0:120 dPdyFine (temp 2-component vector of float) 0:120 'inF0' (in 2-component vector of float) 0:121 Sequence 0:121 move second child to first child (temp 2-component vector of float) 0:121 'r023' (temp 2-component vector of float) -0:121 degrees (global 2-component vector of float) +0:121 degrees (temp 2-component vector of float) 0:121 'inF0' (in 2-component vector of float) 0:125 Sequence 0:125 move second child to first child (temp float) 0:125 'r026' (temp float) -0:125 distance (global float) +0:125 distance (temp float) 0:125 'inF0' (in 2-component vector of float) 0:125 'inF1' (in 2-component vector of float) 0:126 Sequence 0:126 move second child to first child (temp float) 0:126 'r027' (temp float) -0:126 dot-product (global float) +0:126 dot-product (temp float) 0:126 'inF0' (in 2-component vector of float) 0:126 'inF1' (in 2-component vector of float) 0:130 Sequence 0:130 move second child to first child (temp 2-component vector of float) 0:130 'r028' (temp 2-component vector of float) -0:130 exp (global 2-component vector of float) +0:130 exp (temp 2-component vector of float) 0:130 'inF0' (in 2-component vector of float) 0:131 Sequence 0:131 move second child to first child (temp 2-component vector of float) 0:131 'r029' (temp 2-component vector of float) -0:131 exp2 (global 2-component vector of float) +0:131 exp2 (temp 2-component vector of float) 0:131 'inF0' (in 2-component vector of float) 0:132 Sequence 0:132 move second child to first child (temp 2-component vector of float) 0:132 'r030' (temp 2-component vector of float) -0:132 face-forward (global 2-component vector of float) +0:132 face-forward (temp 2-component vector of float) 0:132 'inF0' (in 2-component vector of float) 0:132 'inF1' (in 2-component vector of float) 0:132 'inF2' (in 2-component vector of float) 0:133 Sequence 0:133 move second child to first child (temp 2-component vector of uint) 0:133 'r031' (temp 2-component vector of uint) -0:? findMSB (global 2-component vector of uint) +0:? findMSB (temp 2-component vector of uint) 0:? Constant: 0:? 7 (const uint) 0:? 8 (const uint) 0:134 Sequence 0:134 move second child to first child (temp 2-component vector of uint) 0:134 'r032' (temp 2-component vector of uint) -0:? findLSB (global 2-component vector of uint) +0:? findLSB (temp 2-component vector of uint) 0:? Constant: 0:? 7 (const uint) 0:? 8 (const uint) 0:135 Sequence 0:135 move second child to first child (temp 2-component vector of float) 0:135 'r033' (temp 2-component vector of float) -0:135 Floor (global 2-component vector of float) +0:135 Floor (temp 2-component vector of float) 0:135 'inF0' (in 2-component vector of float) 0:137 Sequence 0:137 move second child to first child (temp 2-component vector of float) 0:137 'r035' (temp 2-component vector of float) -0:137 mod (global 2-component vector of float) +0:137 mod (temp 2-component vector of float) 0:137 'inF0' (in 2-component vector of float) 0:137 'inF1' (in 2-component vector of float) 0:138 Sequence 0:138 move second child to first child (temp 2-component vector of float) 0:138 'r036' (temp 2-component vector of float) -0:138 Fraction (global 2-component vector of float) +0:138 Fraction (temp 2-component vector of float) 0:138 'inF0' (in 2-component vector of float) 0:139 Sequence 0:139 move second child to first child (temp 2-component vector of float) 0:139 'r037' (temp 2-component vector of float) -0:139 frexp (global 2-component vector of float) +0:139 frexp (temp 2-component vector of float) 0:139 'inF0' (in 2-component vector of float) 0:139 'inF1' (in 2-component vector of float) 0:140 Sequence 0:140 move second child to first child (temp 2-component vector of float) 0:140 'r038' (temp 2-component vector of float) -0:140 fwidth (global 2-component vector of float) +0:140 fwidth (temp 2-component vector of float) 0:140 'inF0' (in 2-component vector of float) 0:141 Sequence 0:141 move second child to first child (temp 2-component vector of bool) 0:141 'r039' (temp 2-component vector of bool) -0:141 isinf (global 2-component vector of bool) +0:141 isinf (temp 2-component vector of bool) 0:141 'inF0' (in 2-component vector of float) 0:142 Sequence 0:142 move second child to first child (temp 2-component vector of bool) 0:142 'r040' (temp 2-component vector of bool) -0:142 isnan (global 2-component vector of bool) +0:142 isnan (temp 2-component vector of bool) 0:142 'inF0' (in 2-component vector of float) 0:143 Sequence 0:143 move second child to first child (temp 2-component vector of float) 0:143 'r041' (temp 2-component vector of float) -0:143 ldexp (global 2-component vector of float) +0:143 ldexp (temp 2-component vector of float) 0:143 'inF0' (in 2-component vector of float) 0:143 'inF1' (in 2-component vector of float) 0:144 Sequence 0:144 move second child to first child (temp 2-component vector of float) 0:144 'r039a' (temp 2-component vector of float) -0:144 mix (global 2-component vector of float) +0:144 mix (temp 2-component vector of float) 0:144 'inF0' (in 2-component vector of float) 0:144 'inF1' (in 2-component vector of float) 0:144 'inF2' (in 2-component vector of float) 0:145 Sequence 0:145 move second child to first child (temp float) 0:145 'r042' (temp float) -0:145 length (global float) +0:145 length (temp float) 0:145 'inF0' (in 2-component vector of float) 0:146 Sequence 0:146 move second child to first child (temp 2-component vector of float) 0:146 'r043' (temp 2-component vector of float) -0:146 log (global 2-component vector of float) +0:146 log (temp 2-component vector of float) 0:146 'inF0' (in 2-component vector of float) 0:147 Sequence 0:147 move second child to first child (temp 2-component vector of float) @@ -595,35 +595,35 @@ gl_FragCoord origin is upper left 0:148 Sequence 0:148 move second child to first child (temp 2-component vector of float) 0:148 'r045' (temp 2-component vector of float) -0:148 log2 (global 2-component vector of float) +0:148 log2 (temp 2-component vector of float) 0:148 'inF0' (in 2-component vector of float) 0:149 Sequence 0:149 move second child to first child (temp 2-component vector of float) 0:149 'r046' (temp 2-component vector of float) -0:149 max (global 2-component vector of float) +0:149 max (temp 2-component vector of float) 0:149 'inF0' (in 2-component vector of float) 0:149 'inF1' (in 2-component vector of float) 0:150 Sequence 0:150 move second child to first child (temp 2-component vector of float) 0:150 'r047' (temp 2-component vector of float) -0:150 min (global 2-component vector of float) +0:150 min (temp 2-component vector of float) 0:150 'inF0' (in 2-component vector of float) 0:150 'inF1' (in 2-component vector of float) 0:151 Sequence 0:151 move second child to first child (temp 2-component vector of float) 0:151 'r048' (temp 2-component vector of float) -0:151 normalize (global 2-component vector of float) +0:151 normalize (temp 2-component vector of float) 0:151 'inF0' (in 2-component vector of float) 0:152 Sequence 0:152 move second child to first child (temp 2-component vector of float) 0:152 'r049' (temp 2-component vector of float) -0:152 pow (global 2-component vector of float) +0:152 pow (temp 2-component vector of float) 0:152 'inF0' (in 2-component vector of float) 0:152 'inF1' (in 2-component vector of float) 0:153 Sequence 0:153 move second child to first child (temp 2-component vector of float) 0:153 'r050' (temp 2-component vector of float) -0:153 radians (global 2-component vector of float) +0:153 radians (temp 2-component vector of float) 0:153 'inF0' (in 2-component vector of float) 0:154 Sequence 0:154 move second child to first child (temp 2-component vector of float) @@ -635,13 +635,13 @@ gl_FragCoord origin is upper left 0:155 Sequence 0:155 move second child to first child (temp 2-component vector of float) 0:155 'r052' (temp 2-component vector of float) -0:155 reflect (global 2-component vector of float) +0:155 reflect (temp 2-component vector of float) 0:155 'inF0' (in 2-component vector of float) 0:155 'inF1' (in 2-component vector of float) 0:156 Sequence 0:156 move second child to first child (temp 2-component vector of float) 0:156 'r053' (temp 2-component vector of float) -0:156 refract (global 2-component vector of float) +0:156 refract (temp 2-component vector of float) 0:156 'inF0' (in 2-component vector of float) 0:156 'inF1' (in 2-component vector of float) 0:156 Constant: @@ -649,19 +649,19 @@ gl_FragCoord origin is upper left 0:157 Sequence 0:157 move second child to first child (temp 2-component vector of uint) 0:157 'r054' (temp 2-component vector of uint) -0:? bitFieldReverse (global 2-component vector of uint) +0:? bitFieldReverse (temp 2-component vector of uint) 0:? Constant: 0:? 1 (const uint) 0:? 2 (const uint) 0:158 Sequence 0:158 move second child to first child (temp 2-component vector of float) 0:158 'r055' (temp 2-component vector of float) -0:158 roundEven (global 2-component vector of float) +0:158 roundEven (temp 2-component vector of float) 0:158 'inF0' (in 2-component vector of float) 0:159 Sequence 0:159 move second child to first child (temp 2-component vector of float) 0:159 'r056' (temp 2-component vector of float) -0:159 inverse sqrt (global 2-component vector of float) +0:159 inverse sqrt (temp 2-component vector of float) 0:159 'inF0' (in 2-component vector of float) 0:160 Sequence 0:160 move second child to first child (temp 2-component vector of float) @@ -675,12 +675,12 @@ gl_FragCoord origin is upper left 0:161 Sequence 0:161 move second child to first child (temp 2-component vector of float) 0:161 'r058' (temp 2-component vector of float) -0:161 Sign (global 2-component vector of float) +0:161 Sign (temp 2-component vector of float) 0:161 'inF0' (in 2-component vector of float) 0:162 Sequence 0:162 move second child to first child (temp 2-component vector of float) 0:162 'r059' (temp 2-component vector of float) -0:162 sine (global 2-component vector of float) +0:162 sine (temp 2-component vector of float) 0:162 'inF0' (in 2-component vector of float) 0:163 Sequence 0:163 move second child to first child (temp 2-component vector of float) @@ -694,40 +694,40 @@ gl_FragCoord origin is upper left 0:164 Sequence 0:164 move second child to first child (temp 2-component vector of float) 0:164 'r060' (temp 2-component vector of float) -0:164 hyp. sine (global 2-component vector of float) +0:164 hyp. sine (temp 2-component vector of float) 0:164 'inF0' (in 2-component vector of float) 0:165 Sequence 0:165 move second child to first child (temp 2-component vector of float) 0:165 'r061' (temp 2-component vector of float) -0:165 smoothstep (global 2-component vector of float) +0:165 smoothstep (temp 2-component vector of float) 0:165 'inF0' (in 2-component vector of float) 0:165 'inF1' (in 2-component vector of float) 0:165 'inF2' (in 2-component vector of float) 0:166 Sequence 0:166 move second child to first child (temp 2-component vector of float) 0:166 'r062' (temp 2-component vector of float) -0:166 sqrt (global 2-component vector of float) +0:166 sqrt (temp 2-component vector of float) 0:166 'inF0' (in 2-component vector of float) 0:167 Sequence 0:167 move second child to first child (temp 2-component vector of float) 0:167 'r063' (temp 2-component vector of float) -0:167 step (global 2-component vector of float) +0:167 step (temp 2-component vector of float) 0:167 'inF0' (in 2-component vector of float) 0:167 'inF1' (in 2-component vector of float) 0:168 Sequence 0:168 move second child to first child (temp 2-component vector of float) 0:168 'r064' (temp 2-component vector of float) -0:168 tangent (global 2-component vector of float) +0:168 tangent (temp 2-component vector of float) 0:168 'inF0' (in 2-component vector of float) 0:169 Sequence 0:169 move second child to first child (temp 2-component vector of float) 0:169 'r065' (temp 2-component vector of float) -0:169 hyp. tangent (global 2-component vector of float) +0:169 hyp. tangent (temp 2-component vector of float) 0:169 'inF0' (in 2-component vector of float) 0:171 Sequence 0:171 move second child to first child (temp 2-component vector of float) 0:171 'r066' (temp 2-component vector of float) -0:171 trunc (global 2-component vector of float) +0:171 trunc (temp 2-component vector of float) 0:171 'inF0' (in 2-component vector of float) 0:174 Branch: Return with expression 0:? Constant: @@ -744,63 +744,63 @@ gl_FragCoord origin is upper left 0:181 Sequence 0:181 move second child to first child (temp bool) 0:181 'r000' (temp bool) -0:181 all (global bool) +0:181 all (temp bool) 0:181 'inF0' (in 3-component vector of float) 0:182 Sequence 0:182 move second child to first child (temp 3-component vector of float) 0:182 'r001' (temp 3-component vector of float) -0:182 Absolute value (global 3-component vector of float) +0:182 Absolute value (temp 3-component vector of float) 0:182 'inF0' (in 3-component vector of float) 0:183 Sequence 0:183 move second child to first child (temp 3-component vector of float) 0:183 'r002' (temp 3-component vector of float) -0:183 arc cosine (global 3-component vector of float) +0:183 arc cosine (temp 3-component vector of float) 0:183 'inF0' (in 3-component vector of float) 0:184 Sequence 0:184 move second child to first child (temp bool) 0:184 'r003' (temp bool) -0:184 any (global bool) +0:184 any (temp bool) 0:184 'inF0' (in 3-component vector of float) 0:185 Sequence 0:185 move second child to first child (temp 3-component vector of float) 0:185 'r004' (temp 3-component vector of float) -0:185 arc sine (global 3-component vector of float) +0:185 arc sine (temp 3-component vector of float) 0:185 'inF0' (in 3-component vector of float) 0:186 Sequence 0:186 move second child to first child (temp 3-component vector of int) 0:186 'r005' (temp 3-component vector of int) -0:186 floatBitsToInt (global 3-component vector of int) +0:186 floatBitsToInt (temp 3-component vector of int) 0:186 'inF0' (in 3-component vector of float) 0:187 Sequence 0:187 move second child to first child (temp 3-component vector of uint) 0:187 'r006' (temp 3-component vector of uint) -0:187 floatBitsToUint (global 3-component vector of uint) +0:187 floatBitsToUint (temp 3-component vector of uint) 0:187 'inF0' (in 3-component vector of float) 0:188 Sequence 0:188 move second child to first child (temp 3-component vector of float) 0:188 'r007' (temp 3-component vector of float) -0:188 intBitsToFloat (global 3-component vector of float) +0:188 intBitsToFloat (temp 3-component vector of float) 0:188 'inU0' (in 3-component vector of uint) 0:190 Sequence 0:190 move second child to first child (temp 3-component vector of float) 0:190 'r009' (temp 3-component vector of float) -0:190 arc tangent (global 3-component vector of float) +0:190 arc tangent (temp 3-component vector of float) 0:190 'inF0' (in 3-component vector of float) 0:191 Sequence 0:191 move second child to first child (temp 3-component vector of float) 0:191 'r010' (temp 3-component vector of float) -0:191 arc tangent (global 3-component vector of float) +0:191 arc tangent (temp 3-component vector of float) 0:191 'inF0' (in 3-component vector of float) 0:191 'inF1' (in 3-component vector of float) 0:192 Sequence 0:192 move second child to first child (temp 3-component vector of float) 0:192 'r011' (temp 3-component vector of float) -0:192 Ceiling (global 3-component vector of float) +0:192 Ceiling (temp 3-component vector of float) 0:192 'inF0' (in 3-component vector of float) 0:193 Sequence 0:193 move second child to first child (temp 3-component vector of float) 0:193 'r012' (temp 3-component vector of float) -0:193 clamp (global 3-component vector of float) +0:193 clamp (temp 3-component vector of float) 0:193 'inF0' (in 3-component vector of float) 0:193 'inF1' (in 3-component vector of float) 0:193 'inF2' (in 3-component vector of float) @@ -818,17 +818,17 @@ gl_FragCoord origin is upper left 0:195 Sequence 0:195 move second child to first child (temp 3-component vector of float) 0:195 'r013' (temp 3-component vector of float) -0:195 cosine (global 3-component vector of float) +0:195 cosine (temp 3-component vector of float) 0:195 'inF0' (in 3-component vector of float) 0:196 Sequence 0:196 move second child to first child (temp 3-component vector of float) 0:196 'r014' (temp 3-component vector of float) -0:196 hyp. cosine (global 3-component vector of float) +0:196 hyp. cosine (temp 3-component vector of float) 0:196 'inF0' (in 3-component vector of float) 0:197 Sequence 0:197 move second child to first child (temp 3-component vector of uint) 0:197 'r015' (temp 3-component vector of uint) -0:? bitCount (global 3-component vector of uint) +0:? bitCount (temp 3-component vector of uint) 0:? Constant: 0:? 7 (const uint) 0:? 3 (const uint) @@ -836,77 +836,77 @@ gl_FragCoord origin is upper left 0:198 Sequence 0:198 move second child to first child (temp 3-component vector of float) 0:198 'r016' (temp 3-component vector of float) -0:198 cross-product (global 3-component vector of float) +0:198 cross-product (temp 3-component vector of float) 0:198 'inF0' (in 3-component vector of float) 0:198 'inF1' (in 3-component vector of float) 0:199 Sequence 0:199 move second child to first child (temp 3-component vector of float) 0:199 'r017' (temp 3-component vector of float) -0:199 dPdx (global 3-component vector of float) +0:199 dPdx (temp 3-component vector of float) 0:199 'inF0' (in 3-component vector of float) 0:200 Sequence 0:200 move second child to first child (temp 3-component vector of float) 0:200 'r018' (temp 3-component vector of float) -0:200 dPdxCoarse (global 3-component vector of float) +0:200 dPdxCoarse (temp 3-component vector of float) 0:200 'inF0' (in 3-component vector of float) 0:201 Sequence 0:201 move second child to first child (temp 3-component vector of float) 0:201 'r019' (temp 3-component vector of float) -0:201 dPdxFine (global 3-component vector of float) +0:201 dPdxFine (temp 3-component vector of float) 0:201 'inF0' (in 3-component vector of float) 0:202 Sequence 0:202 move second child to first child (temp 3-component vector of float) 0:202 'r020' (temp 3-component vector of float) -0:202 dPdy (global 3-component vector of float) +0:202 dPdy (temp 3-component vector of float) 0:202 'inF0' (in 3-component vector of float) 0:203 Sequence 0:203 move second child to first child (temp 3-component vector of float) 0:203 'r021' (temp 3-component vector of float) -0:203 dPdyCoarse (global 3-component vector of float) +0:203 dPdyCoarse (temp 3-component vector of float) 0:203 'inF0' (in 3-component vector of float) 0:204 Sequence 0:204 move second child to first child (temp 3-component vector of float) 0:204 'r022' (temp 3-component vector of float) -0:204 dPdyFine (global 3-component vector of float) +0:204 dPdyFine (temp 3-component vector of float) 0:204 'inF0' (in 3-component vector of float) 0:205 Sequence 0:205 move second child to first child (temp 3-component vector of float) 0:205 'r023' (temp 3-component vector of float) -0:205 degrees (global 3-component vector of float) +0:205 degrees (temp 3-component vector of float) 0:205 'inF0' (in 3-component vector of float) 0:206 Sequence 0:206 move second child to first child (temp float) 0:206 'r024' (temp float) -0:206 distance (global float) +0:206 distance (temp float) 0:206 'inF0' (in 3-component vector of float) 0:206 'inF1' (in 3-component vector of float) 0:207 Sequence 0:207 move second child to first child (temp float) 0:207 'r025' (temp float) -0:207 dot-product (global float) +0:207 dot-product (temp float) 0:207 'inF0' (in 3-component vector of float) 0:207 'inF1' (in 3-component vector of float) 0:211 Sequence 0:211 move second child to first child (temp 3-component vector of float) 0:211 'r029' (temp 3-component vector of float) -0:211 exp (global 3-component vector of float) +0:211 exp (temp 3-component vector of float) 0:211 'inF0' (in 3-component vector of float) 0:212 Sequence 0:212 move second child to first child (temp 3-component vector of float) 0:212 'r030' (temp 3-component vector of float) -0:212 exp2 (global 3-component vector of float) +0:212 exp2 (temp 3-component vector of float) 0:212 'inF0' (in 3-component vector of float) 0:213 Sequence 0:213 move second child to first child (temp 3-component vector of float) 0:213 'r031' (temp 3-component vector of float) -0:213 face-forward (global 3-component vector of float) +0:213 face-forward (temp 3-component vector of float) 0:213 'inF0' (in 3-component vector of float) 0:213 'inF1' (in 3-component vector of float) 0:213 'inF2' (in 3-component vector of float) 0:214 Sequence 0:214 move second child to first child (temp 3-component vector of uint) 0:214 'r032' (temp 3-component vector of uint) -0:? findMSB (global 3-component vector of uint) +0:? findMSB (temp 3-component vector of uint) 0:? Constant: 0:? 2 (const uint) 0:? 3 (const uint) @@ -914,7 +914,7 @@ gl_FragCoord origin is upper left 0:215 Sequence 0:215 move second child to first child (temp 3-component vector of uint) 0:215 'r033' (temp 3-component vector of uint) -0:? findLSB (global 3-component vector of uint) +0:? findLSB (temp 3-component vector of uint) 0:? Constant: 0:? 2 (const uint) 0:? 3 (const uint) @@ -922,57 +922,57 @@ gl_FragCoord origin is upper left 0:216 Sequence 0:216 move second child to first child (temp 3-component vector of float) 0:216 'r034' (temp 3-component vector of float) -0:216 Floor (global 3-component vector of float) +0:216 Floor (temp 3-component vector of float) 0:216 'inF0' (in 3-component vector of float) 0:218 Sequence 0:218 move second child to first child (temp 3-component vector of float) 0:218 'r036' (temp 3-component vector of float) -0:218 mod (global 3-component vector of float) +0:218 mod (temp 3-component vector of float) 0:218 'inF0' (in 3-component vector of float) 0:218 'inF1' (in 3-component vector of float) 0:219 Sequence 0:219 move second child to first child (temp 3-component vector of float) 0:219 'r037' (temp 3-component vector of float) -0:219 Fraction (global 3-component vector of float) +0:219 Fraction (temp 3-component vector of float) 0:219 'inF0' (in 3-component vector of float) 0:220 Sequence 0:220 move second child to first child (temp 3-component vector of float) 0:220 'r038' (temp 3-component vector of float) -0:220 frexp (global 3-component vector of float) +0:220 frexp (temp 3-component vector of float) 0:220 'inF0' (in 3-component vector of float) 0:220 'inF1' (in 3-component vector of float) 0:221 Sequence 0:221 move second child to first child (temp 3-component vector of float) 0:221 'r039' (temp 3-component vector of float) -0:221 fwidth (global 3-component vector of float) +0:221 fwidth (temp 3-component vector of float) 0:221 'inF0' (in 3-component vector of float) 0:222 Sequence 0:222 move second child to first child (temp 3-component vector of bool) 0:222 'r040' (temp 3-component vector of bool) -0:222 isinf (global 3-component vector of bool) +0:222 isinf (temp 3-component vector of bool) 0:222 'inF0' (in 3-component vector of float) 0:223 Sequence 0:223 move second child to first child (temp 3-component vector of bool) 0:223 'r041' (temp 3-component vector of bool) -0:223 isnan (global 3-component vector of bool) +0:223 isnan (temp 3-component vector of bool) 0:223 'inF0' (in 3-component vector of float) 0:224 Sequence 0:224 move second child to first child (temp 3-component vector of float) 0:224 'r042' (temp 3-component vector of float) -0:224 ldexp (global 3-component vector of float) +0:224 ldexp (temp 3-component vector of float) 0:224 'inF0' (in 3-component vector of float) 0:224 'inF1' (in 3-component vector of float) 0:225 Sequence 0:225 move second child to first child (temp 3-component vector of float) 0:225 'r039a' (temp 3-component vector of float) -0:225 mix (global 3-component vector of float) +0:225 mix (temp 3-component vector of float) 0:225 'inF0' (in 3-component vector of float) 0:225 'inF1' (in 3-component vector of float) 0:225 'inF2' (in 3-component vector of float) 0:226 Sequence 0:226 move second child to first child (temp 3-component vector of float) 0:226 'r039b' (temp 3-component vector of float) -0:226 mix (global 3-component vector of float) +0:226 mix (temp 3-component vector of float) 0:226 'inF0' (in 3-component vector of float) 0:226 'inF1' (in 3-component vector of float) 0:226 Constant: @@ -980,12 +980,12 @@ gl_FragCoord origin is upper left 0:227 Sequence 0:227 move second child to first child (temp float) 0:227 'r043' (temp float) -0:227 length (global float) +0:227 length (temp float) 0:227 'inF0' (in 3-component vector of float) 0:228 Sequence 0:228 move second child to first child (temp 3-component vector of float) 0:228 'r044' (temp 3-component vector of float) -0:228 log (global 3-component vector of float) +0:228 log (temp 3-component vector of float) 0:228 'inF0' (in 3-component vector of float) 0:229 Sequence 0:229 move second child to first child (temp 3-component vector of float) @@ -998,35 +998,35 @@ gl_FragCoord origin is upper left 0:230 Sequence 0:230 move second child to first child (temp 3-component vector of float) 0:230 'r046' (temp 3-component vector of float) -0:230 log2 (global 3-component vector of float) +0:230 log2 (temp 3-component vector of float) 0:230 'inF0' (in 3-component vector of float) 0:231 Sequence 0:231 move second child to first child (temp 3-component vector of float) 0:231 'r047' (temp 3-component vector of float) -0:231 max (global 3-component vector of float) +0:231 max (temp 3-component vector of float) 0:231 'inF0' (in 3-component vector of float) 0:231 'inF1' (in 3-component vector of float) 0:232 Sequence 0:232 move second child to first child (temp 3-component vector of float) 0:232 'r048' (temp 3-component vector of float) -0:232 min (global 3-component vector of float) +0:232 min (temp 3-component vector of float) 0:232 'inF0' (in 3-component vector of float) 0:232 'inF1' (in 3-component vector of float) 0:233 Sequence 0:233 move second child to first child (temp 3-component vector of float) 0:233 'r049' (temp 3-component vector of float) -0:233 normalize (global 3-component vector of float) +0:233 normalize (temp 3-component vector of float) 0:233 'inF0' (in 3-component vector of float) 0:234 Sequence 0:234 move second child to first child (temp 3-component vector of float) 0:234 'r050' (temp 3-component vector of float) -0:234 pow (global 3-component vector of float) +0:234 pow (temp 3-component vector of float) 0:234 'inF0' (in 3-component vector of float) 0:234 'inF1' (in 3-component vector of float) 0:235 Sequence 0:235 move second child to first child (temp 3-component vector of float) 0:235 'r051' (temp 3-component vector of float) -0:235 radians (global 3-component vector of float) +0:235 radians (temp 3-component vector of float) 0:235 'inF0' (in 3-component vector of float) 0:236 Sequence 0:236 move second child to first child (temp 3-component vector of float) @@ -1038,13 +1038,13 @@ gl_FragCoord origin is upper left 0:237 Sequence 0:237 move second child to first child (temp 3-component vector of float) 0:237 'r053' (temp 3-component vector of float) -0:237 reflect (global 3-component vector of float) +0:237 reflect (temp 3-component vector of float) 0:237 'inF0' (in 3-component vector of float) 0:237 'inF1' (in 3-component vector of float) 0:238 Sequence 0:238 move second child to first child (temp 3-component vector of float) 0:238 'r054' (temp 3-component vector of float) -0:238 refract (global 3-component vector of float) +0:238 refract (temp 3-component vector of float) 0:238 'inF0' (in 3-component vector of float) 0:238 'inF1' (in 3-component vector of float) 0:238 Constant: @@ -1052,7 +1052,7 @@ gl_FragCoord origin is upper left 0:239 Sequence 0:239 move second child to first child (temp 3-component vector of uint) 0:239 'r055' (temp 3-component vector of uint) -0:? bitFieldReverse (global 3-component vector of uint) +0:? bitFieldReverse (temp 3-component vector of uint) 0:? Constant: 0:? 1 (const uint) 0:? 2 (const uint) @@ -1060,12 +1060,12 @@ gl_FragCoord origin is upper left 0:240 Sequence 0:240 move second child to first child (temp 3-component vector of float) 0:240 'r056' (temp 3-component vector of float) -0:240 roundEven (global 3-component vector of float) +0:240 roundEven (temp 3-component vector of float) 0:240 'inF0' (in 3-component vector of float) 0:241 Sequence 0:241 move second child to first child (temp 3-component vector of float) 0:241 'r057' (temp 3-component vector of float) -0:241 inverse sqrt (global 3-component vector of float) +0:241 inverse sqrt (temp 3-component vector of float) 0:241 'inF0' (in 3-component vector of float) 0:242 Sequence 0:242 move second child to first child (temp 3-component vector of float) @@ -1079,12 +1079,12 @@ gl_FragCoord origin is upper left 0:243 Sequence 0:243 move second child to first child (temp 3-component vector of float) 0:243 'r059' (temp 3-component vector of float) -0:243 Sign (global 3-component vector of float) +0:243 Sign (temp 3-component vector of float) 0:243 'inF0' (in 3-component vector of float) 0:244 Sequence 0:244 move second child to first child (temp 3-component vector of float) 0:244 'r060' (temp 3-component vector of float) -0:244 sine (global 3-component vector of float) +0:244 sine (temp 3-component vector of float) 0:244 'inF0' (in 3-component vector of float) 0:245 Sequence 0:245 move second child to first child (temp 3-component vector of float) @@ -1098,40 +1098,40 @@ gl_FragCoord origin is upper left 0:246 Sequence 0:246 move second child to first child (temp 3-component vector of float) 0:246 'r061' (temp 3-component vector of float) -0:246 hyp. sine (global 3-component vector of float) +0:246 hyp. sine (temp 3-component vector of float) 0:246 'inF0' (in 3-component vector of float) 0:247 Sequence 0:247 move second child to first child (temp 3-component vector of float) 0:247 'r062' (temp 3-component vector of float) -0:247 smoothstep (global 3-component vector of float) +0:247 smoothstep (temp 3-component vector of float) 0:247 'inF0' (in 3-component vector of float) 0:247 'inF1' (in 3-component vector of float) 0:247 'inF2' (in 3-component vector of float) 0:248 Sequence 0:248 move second child to first child (temp 3-component vector of float) 0:248 'r063' (temp 3-component vector of float) -0:248 sqrt (global 3-component vector of float) +0:248 sqrt (temp 3-component vector of float) 0:248 'inF0' (in 3-component vector of float) 0:249 Sequence 0:249 move second child to first child (temp 3-component vector of float) 0:249 'r064' (temp 3-component vector of float) -0:249 step (global 3-component vector of float) +0:249 step (temp 3-component vector of float) 0:249 'inF0' (in 3-component vector of float) 0:249 'inF1' (in 3-component vector of float) 0:250 Sequence 0:250 move second child to first child (temp 3-component vector of float) 0:250 'r065' (temp 3-component vector of float) -0:250 tangent (global 3-component vector of float) +0:250 tangent (temp 3-component vector of float) 0:250 'inF0' (in 3-component vector of float) 0:251 Sequence 0:251 move second child to first child (temp 3-component vector of float) 0:251 'r066' (temp 3-component vector of float) -0:251 hyp. tangent (global 3-component vector of float) +0:251 hyp. tangent (temp 3-component vector of float) 0:251 'inF0' (in 3-component vector of float) 0:253 Sequence 0:253 move second child to first child (temp 3-component vector of float) 0:253 'r067' (temp 3-component vector of float) -0:253 trunc (global 3-component vector of float) +0:253 trunc (temp 3-component vector of float) 0:253 'inF0' (in 3-component vector of float) 0:256 Branch: Return with expression 0:? Constant: @@ -1149,63 +1149,63 @@ gl_FragCoord origin is upper left 0:263 Sequence 0:263 move second child to first child (temp bool) 0:263 'r000' (temp bool) -0:263 all (global bool) +0:263 all (temp bool) 0:263 'inF0' (in 4-component vector of float) 0:264 Sequence 0:264 move second child to first child (temp 4-component vector of float) 0:264 'r001' (temp 4-component vector of float) -0:264 Absolute value (global 4-component vector of float) +0:264 Absolute value (temp 4-component vector of float) 0:264 'inF0' (in 4-component vector of float) 0:265 Sequence 0:265 move second child to first child (temp 4-component vector of float) 0:265 'r002' (temp 4-component vector of float) -0:265 arc cosine (global 4-component vector of float) +0:265 arc cosine (temp 4-component vector of float) 0:265 'inF0' (in 4-component vector of float) 0:266 Sequence 0:266 move second child to first child (temp bool) 0:266 'r003' (temp bool) -0:266 any (global bool) +0:266 any (temp bool) 0:266 'inF0' (in 4-component vector of float) 0:267 Sequence 0:267 move second child to first child (temp 4-component vector of float) 0:267 'r004' (temp 4-component vector of float) -0:267 arc sine (global 4-component vector of float) +0:267 arc sine (temp 4-component vector of float) 0:267 'inF0' (in 4-component vector of float) 0:268 Sequence 0:268 move second child to first child (temp 4-component vector of int) 0:268 'r005' (temp 4-component vector of int) -0:268 floatBitsToInt (global 4-component vector of int) +0:268 floatBitsToInt (temp 4-component vector of int) 0:268 'inF0' (in 4-component vector of float) 0:269 Sequence 0:269 move second child to first child (temp 4-component vector of uint) 0:269 'r006' (temp 4-component vector of uint) -0:269 floatBitsToUint (global 4-component vector of uint) +0:269 floatBitsToUint (temp 4-component vector of uint) 0:269 'inF0' (in 4-component vector of float) 0:270 Sequence 0:270 move second child to first child (temp 4-component vector of float) 0:270 'r007' (temp 4-component vector of float) -0:270 intBitsToFloat (global 4-component vector of float) +0:270 intBitsToFloat (temp 4-component vector of float) 0:270 'inU0' (in 4-component vector of uint) 0:272 Sequence 0:272 move second child to first child (temp 4-component vector of float) 0:272 'r009' (temp 4-component vector of float) -0:272 arc tangent (global 4-component vector of float) +0:272 arc tangent (temp 4-component vector of float) 0:272 'inF0' (in 4-component vector of float) 0:273 Sequence 0:273 move second child to first child (temp 4-component vector of float) 0:273 'r010' (temp 4-component vector of float) -0:273 arc tangent (global 4-component vector of float) +0:273 arc tangent (temp 4-component vector of float) 0:273 'inF0' (in 4-component vector of float) 0:273 'inF1' (in 4-component vector of float) 0:274 Sequence 0:274 move second child to first child (temp 4-component vector of float) 0:274 'r011' (temp 4-component vector of float) -0:274 Ceiling (global 4-component vector of float) +0:274 Ceiling (temp 4-component vector of float) 0:274 'inF0' (in 4-component vector of float) 0:275 Sequence 0:275 move second child to first child (temp 4-component vector of float) 0:275 'r012' (temp 4-component vector of float) -0:275 clamp (global 4-component vector of float) +0:275 clamp (temp 4-component vector of float) 0:275 'inF0' (in 4-component vector of float) 0:275 'inF1' (in 4-component vector of float) 0:275 'inF2' (in 4-component vector of float) @@ -1224,17 +1224,17 @@ gl_FragCoord origin is upper left 0:277 Sequence 0:277 move second child to first child (temp 4-component vector of float) 0:277 'r013' (temp 4-component vector of float) -0:277 cosine (global 4-component vector of float) +0:277 cosine (temp 4-component vector of float) 0:277 'inF0' (in 4-component vector of float) 0:278 Sequence 0:278 move second child to first child (temp 4-component vector of float) 0:278 'r014' (temp 4-component vector of float) -0:278 hyp. cosine (global 4-component vector of float) +0:278 hyp. cosine (temp 4-component vector of float) 0:278 'inF0' (in 4-component vector of float) 0:279 Sequence 0:279 move second child to first child (temp 4-component vector of uint) 0:279 'r015' (temp 4-component vector of uint) -0:? bitCount (global 4-component vector of uint) +0:? bitCount (temp 4-component vector of uint) 0:? Constant: 0:? 7 (const uint) 0:? 3 (const uint) @@ -1243,48 +1243,48 @@ gl_FragCoord origin is upper left 0:280 Sequence 0:280 move second child to first child (temp 4-component vector of float) 0:280 'r016' (temp 4-component vector of float) -0:280 dPdx (global 4-component vector of float) +0:280 dPdx (temp 4-component vector of float) 0:280 'inF0' (in 4-component vector of float) 0:281 Sequence 0:281 move second child to first child (temp 4-component vector of float) 0:281 'r017' (temp 4-component vector of float) -0:281 dPdxCoarse (global 4-component vector of float) +0:281 dPdxCoarse (temp 4-component vector of float) 0:281 'inF0' (in 4-component vector of float) 0:282 Sequence 0:282 move second child to first child (temp 4-component vector of float) 0:282 'r018' (temp 4-component vector of float) -0:282 dPdxFine (global 4-component vector of float) +0:282 dPdxFine (temp 4-component vector of float) 0:282 'inF0' (in 4-component vector of float) 0:283 Sequence 0:283 move second child to first child (temp 4-component vector of float) 0:283 'r019' (temp 4-component vector of float) -0:283 dPdy (global 4-component vector of float) +0:283 dPdy (temp 4-component vector of float) 0:283 'inF0' (in 4-component vector of float) 0:284 Sequence 0:284 move second child to first child (temp 4-component vector of float) 0:284 'r020' (temp 4-component vector of float) -0:284 dPdyCoarse (global 4-component vector of float) +0:284 dPdyCoarse (temp 4-component vector of float) 0:284 'inF0' (in 4-component vector of float) 0:285 Sequence 0:285 move second child to first child (temp 4-component vector of float) 0:285 'r021' (temp 4-component vector of float) -0:285 dPdyFine (global 4-component vector of float) +0:285 dPdyFine (temp 4-component vector of float) 0:285 'inF0' (in 4-component vector of float) 0:286 Sequence 0:286 move second child to first child (temp 4-component vector of float) 0:286 'r022' (temp 4-component vector of float) -0:286 degrees (global 4-component vector of float) +0:286 degrees (temp 4-component vector of float) 0:286 'inF0' (in 4-component vector of float) 0:287 Sequence 0:287 move second child to first child (temp float) 0:287 'r023' (temp float) -0:287 distance (global float) +0:287 distance (temp float) 0:287 'inF0' (in 4-component vector of float) 0:287 'inF1' (in 4-component vector of float) 0:288 Sequence 0:288 move second child to first child (temp float) 0:288 'r024' (temp float) -0:288 dot-product (global float) +0:288 dot-product (temp float) 0:288 'inF0' (in 4-component vector of float) 0:288 'inF1' (in 4-component vector of float) 0:289 Sequence @@ -1313,24 +1313,24 @@ gl_FragCoord origin is upper left 0:293 Sequence 0:293 move second child to first child (temp 4-component vector of float) 0:293 'r029' (temp 4-component vector of float) -0:293 exp (global 4-component vector of float) +0:293 exp (temp 4-component vector of float) 0:293 'inF0' (in 4-component vector of float) 0:294 Sequence 0:294 move second child to first child (temp 4-component vector of float) 0:294 'r030' (temp 4-component vector of float) -0:294 exp2 (global 4-component vector of float) +0:294 exp2 (temp 4-component vector of float) 0:294 'inF0' (in 4-component vector of float) 0:295 Sequence 0:295 move second child to first child (temp 4-component vector of float) 0:295 'r031' (temp 4-component vector of float) -0:295 face-forward (global 4-component vector of float) +0:295 face-forward (temp 4-component vector of float) 0:295 'inF0' (in 4-component vector of float) 0:295 'inF1' (in 4-component vector of float) 0:295 'inF2' (in 4-component vector of float) 0:296 Sequence 0:296 move second child to first child (temp 4-component vector of uint) 0:296 'r032' (temp 4-component vector of uint) -0:? findMSB (global 4-component vector of uint) +0:? findMSB (temp 4-component vector of uint) 0:? Constant: 0:? 7 (const uint) 0:? 8 (const uint) @@ -1339,7 +1339,7 @@ gl_FragCoord origin is upper left 0:297 Sequence 0:297 move second child to first child (temp 4-component vector of uint) 0:297 'r033' (temp 4-component vector of uint) -0:? findLSB (global 4-component vector of uint) +0:? findLSB (temp 4-component vector of uint) 0:? Constant: 0:? 7 (const uint) 0:? 8 (const uint) @@ -1348,62 +1348,62 @@ gl_FragCoord origin is upper left 0:298 Sequence 0:298 move second child to first child (temp 4-component vector of float) 0:298 'r034' (temp 4-component vector of float) -0:298 Floor (global 4-component vector of float) +0:298 Floor (temp 4-component vector of float) 0:298 'inF0' (in 4-component vector of float) 0:300 Sequence 0:300 move second child to first child (temp 4-component vector of float) 0:300 'r036' (temp 4-component vector of float) -0:300 mod (global 4-component vector of float) +0:300 mod (temp 4-component vector of float) 0:300 'inF0' (in 4-component vector of float) 0:300 'inF1' (in 4-component vector of float) 0:301 Sequence 0:301 move second child to first child (temp 4-component vector of float) 0:301 'r037' (temp 4-component vector of float) -0:301 Fraction (global 4-component vector of float) +0:301 Fraction (temp 4-component vector of float) 0:301 'inF0' (in 4-component vector of float) 0:302 Sequence 0:302 move second child to first child (temp 4-component vector of float) 0:302 'r038' (temp 4-component vector of float) -0:302 frexp (global 4-component vector of float) +0:302 frexp (temp 4-component vector of float) 0:302 'inF0' (in 4-component vector of float) 0:302 'inF1' (in 4-component vector of float) 0:303 Sequence 0:303 move second child to first child (temp 4-component vector of float) 0:303 'r039' (temp 4-component vector of float) -0:303 fwidth (global 4-component vector of float) +0:303 fwidth (temp 4-component vector of float) 0:303 'inF0' (in 4-component vector of float) 0:304 Sequence 0:304 move second child to first child (temp 4-component vector of bool) 0:304 'r040' (temp 4-component vector of bool) -0:304 isinf (global 4-component vector of bool) +0:304 isinf (temp 4-component vector of bool) 0:304 'inF0' (in 4-component vector of float) 0:305 Sequence 0:305 move second child to first child (temp 4-component vector of bool) 0:305 'r041' (temp 4-component vector of bool) -0:305 isnan (global 4-component vector of bool) +0:305 isnan (temp 4-component vector of bool) 0:305 'inF0' (in 4-component vector of float) 0:306 Sequence 0:306 move second child to first child (temp 4-component vector of float) 0:306 'r042' (temp 4-component vector of float) -0:306 ldexp (global 4-component vector of float) +0:306 ldexp (temp 4-component vector of float) 0:306 'inF0' (in 4-component vector of float) 0:306 'inF1' (in 4-component vector of float) 0:307 Sequence 0:307 move second child to first child (temp 4-component vector of float) 0:307 'r039a' (temp 4-component vector of float) -0:307 mix (global 4-component vector of float) +0:307 mix (temp 4-component vector of float) 0:307 'inF0' (in 4-component vector of float) 0:307 'inF1' (in 4-component vector of float) 0:307 'inF2' (in 4-component vector of float) 0:308 Sequence 0:308 move second child to first child (temp float) 0:308 'r043' (temp float) -0:308 length (global float) +0:308 length (temp float) 0:308 'inF0' (in 4-component vector of float) 0:309 Sequence 0:309 move second child to first child (temp 4-component vector of float) 0:309 'r044' (temp 4-component vector of float) -0:309 log (global 4-component vector of float) +0:309 log (temp 4-component vector of float) 0:309 'inF0' (in 4-component vector of float) 0:310 Sequence 0:310 move second child to first child (temp 4-component vector of float) @@ -1416,35 +1416,35 @@ gl_FragCoord origin is upper left 0:311 Sequence 0:311 move second child to first child (temp 4-component vector of float) 0:311 'r046' (temp 4-component vector of float) -0:311 log2 (global 4-component vector of float) +0:311 log2 (temp 4-component vector of float) 0:311 'inF0' (in 4-component vector of float) 0:312 Sequence 0:312 move second child to first child (temp 4-component vector of float) 0:312 'r047' (temp 4-component vector of float) -0:312 max (global 4-component vector of float) +0:312 max (temp 4-component vector of float) 0:312 'inF0' (in 4-component vector of float) 0:312 'inF1' (in 4-component vector of float) 0:313 Sequence 0:313 move second child to first child (temp 4-component vector of float) 0:313 'r048' (temp 4-component vector of float) -0:313 min (global 4-component vector of float) +0:313 min (temp 4-component vector of float) 0:313 'inF0' (in 4-component vector of float) 0:313 'inF1' (in 4-component vector of float) 0:314 Sequence 0:314 move second child to first child (temp 4-component vector of float) 0:314 'r049' (temp 4-component vector of float) -0:314 normalize (global 4-component vector of float) +0:314 normalize (temp 4-component vector of float) 0:314 'inF0' (in 4-component vector of float) 0:315 Sequence 0:315 move second child to first child (temp 4-component vector of float) 0:315 'r050' (temp 4-component vector of float) -0:315 pow (global 4-component vector of float) +0:315 pow (temp 4-component vector of float) 0:315 'inF0' (in 4-component vector of float) 0:315 'inF1' (in 4-component vector of float) 0:316 Sequence 0:316 move second child to first child (temp 4-component vector of float) 0:316 'r051' (temp 4-component vector of float) -0:316 radians (global 4-component vector of float) +0:316 radians (temp 4-component vector of float) 0:316 'inF0' (in 4-component vector of float) 0:317 Sequence 0:317 move second child to first child (temp 4-component vector of float) @@ -1456,13 +1456,13 @@ gl_FragCoord origin is upper left 0:318 Sequence 0:318 move second child to first child (temp 4-component vector of float) 0:318 'r053' (temp 4-component vector of float) -0:318 reflect (global 4-component vector of float) +0:318 reflect (temp 4-component vector of float) 0:318 'inF0' (in 4-component vector of float) 0:318 'inF1' (in 4-component vector of float) 0:319 Sequence 0:319 move second child to first child (temp 4-component vector of float) 0:319 'r054' (temp 4-component vector of float) -0:319 refract (global 4-component vector of float) +0:319 refract (temp 4-component vector of float) 0:319 'inF0' (in 4-component vector of float) 0:319 'inF1' (in 4-component vector of float) 0:319 Constant: @@ -1470,7 +1470,7 @@ gl_FragCoord origin is upper left 0:320 Sequence 0:320 move second child to first child (temp 4-component vector of uint) 0:320 'r055' (temp 4-component vector of uint) -0:? bitFieldReverse (global 4-component vector of uint) +0:? bitFieldReverse (temp 4-component vector of uint) 0:? Constant: 0:? 1 (const uint) 0:? 2 (const uint) @@ -1479,12 +1479,12 @@ gl_FragCoord origin is upper left 0:321 Sequence 0:321 move second child to first child (temp 4-component vector of float) 0:321 'r056' (temp 4-component vector of float) -0:321 roundEven (global 4-component vector of float) +0:321 roundEven (temp 4-component vector of float) 0:321 'inF0' (in 4-component vector of float) 0:322 Sequence 0:322 move second child to first child (temp 4-component vector of float) 0:322 'r057' (temp 4-component vector of float) -0:322 inverse sqrt (global 4-component vector of float) +0:322 inverse sqrt (temp 4-component vector of float) 0:322 'inF0' (in 4-component vector of float) 0:323 Sequence 0:323 move second child to first child (temp 4-component vector of float) @@ -1498,12 +1498,12 @@ gl_FragCoord origin is upper left 0:324 Sequence 0:324 move second child to first child (temp 4-component vector of float) 0:324 'r059' (temp 4-component vector of float) -0:324 Sign (global 4-component vector of float) +0:324 Sign (temp 4-component vector of float) 0:324 'inF0' (in 4-component vector of float) 0:325 Sequence 0:325 move second child to first child (temp 4-component vector of float) 0:325 'r060' (temp 4-component vector of float) -0:325 sine (global 4-component vector of float) +0:325 sine (temp 4-component vector of float) 0:325 'inF0' (in 4-component vector of float) 0:326 Sequence 0:326 move second child to first child (temp 4-component vector of float) @@ -1517,40 +1517,40 @@ gl_FragCoord origin is upper left 0:327 Sequence 0:327 move second child to first child (temp 4-component vector of float) 0:327 'r061' (temp 4-component vector of float) -0:327 hyp. sine (global 4-component vector of float) +0:327 hyp. sine (temp 4-component vector of float) 0:327 'inF0' (in 4-component vector of float) 0:328 Sequence 0:328 move second child to first child (temp 4-component vector of float) 0:328 'r062' (temp 4-component vector of float) -0:328 smoothstep (global 4-component vector of float) +0:328 smoothstep (temp 4-component vector of float) 0:328 'inF0' (in 4-component vector of float) 0:328 'inF1' (in 4-component vector of float) 0:328 'inF2' (in 4-component vector of float) 0:329 Sequence 0:329 move second child to first child (temp 4-component vector of float) 0:329 'r063' (temp 4-component vector of float) -0:329 sqrt (global 4-component vector of float) +0:329 sqrt (temp 4-component vector of float) 0:329 'inF0' (in 4-component vector of float) 0:330 Sequence 0:330 move second child to first child (temp 4-component vector of float) 0:330 'r064' (temp 4-component vector of float) -0:330 step (global 4-component vector of float) +0:330 step (temp 4-component vector of float) 0:330 'inF0' (in 4-component vector of float) 0:330 'inF1' (in 4-component vector of float) 0:331 Sequence 0:331 move second child to first child (temp 4-component vector of float) 0:331 'r065' (temp 4-component vector of float) -0:331 tangent (global 4-component vector of float) +0:331 tangent (temp 4-component vector of float) 0:331 'inF0' (in 4-component vector of float) 0:332 Sequence 0:332 move second child to first child (temp 4-component vector of float) 0:332 'r066' (temp 4-component vector of float) -0:332 hyp. tangent (global 4-component vector of float) +0:332 hyp. tangent (temp 4-component vector of float) 0:332 'inF0' (in 4-component vector of float) 0:334 Sequence 0:334 move second child to first child (temp 4-component vector of float) 0:334 'r067' (temp 4-component vector of float) -0:334 trunc (global 4-component vector of float) +0:334 trunc (temp 4-component vector of float) 0:334 'inF0' (in 4-component vector of float) 0:337 Branch: Return with expression 0:? Constant: @@ -1567,40 +1567,40 @@ gl_FragCoord origin is upper left 0:403 Sequence 0:403 move second child to first child (temp bool) 0:403 'r000' (temp bool) -0:403 all (global bool) +0:403 all (temp bool) 0:403 'inF0' (in 2X2 matrix of float) 0:403 Sequence 0:403 move second child to first child (temp 2X2 matrix of float) 0:403 'r001' (temp 2X2 matrix of float) -0:403 Absolute value (global 2X2 matrix of float) +0:403 Absolute value (temp 2X2 matrix of float) 0:403 'inF0' (in 2X2 matrix of float) -0:403 arc cosine (global 2X2 matrix of float) +0:403 arc cosine (temp 2X2 matrix of float) 0:403 'inF0' (in 2X2 matrix of float) 0:403 Sequence 0:403 move second child to first child (temp bool) 0:403 'r003' (temp bool) -0:403 any (global bool) +0:403 any (temp bool) 0:403 'inF0' (in 2X2 matrix of float) 0:403 Sequence 0:403 move second child to first child (temp 2X2 matrix of float) 0:403 'r004' (temp 2X2 matrix of float) -0:403 arc sine (global 2X2 matrix of float) +0:403 arc sine (temp 2X2 matrix of float) 0:403 'inF0' (in 2X2 matrix of float) 0:403 Sequence 0:403 move second child to first child (temp 2X2 matrix of float) 0:403 'r005' (temp 2X2 matrix of float) -0:403 arc tangent (global 2X2 matrix of float) +0:403 arc tangent (temp 2X2 matrix of float) 0:403 'inF0' (in 2X2 matrix of float) 0:403 Sequence 0:403 move second child to first child (temp 2X2 matrix of float) 0:403 'r006' (temp 2X2 matrix of float) -0:403 arc tangent (global 2X2 matrix of float) +0:403 arc tangent (temp 2X2 matrix of float) 0:403 'inF0' (in 2X2 matrix of float) 0:403 'inF1' (in 2X2 matrix of float) 0:403 Sequence 0:403 move second child to first child (temp 2X2 matrix of float) 0:403 'r007' (temp 2X2 matrix of float) -0:403 Ceiling (global 2X2 matrix of float) +0:403 Ceiling (temp 2X2 matrix of float) 0:403 'inF0' (in 2X2 matrix of float) 0:403 Test condition and select (temp void) 0:403 Condition @@ -1617,114 +1617,114 @@ gl_FragCoord origin is upper left 0:403 Sequence 0:403 move second child to first child (temp 2X2 matrix of float) 0:403 'r008' (temp 2X2 matrix of float) -0:403 clamp (global 2X2 matrix of float) +0:403 clamp (temp 2X2 matrix of float) 0:403 'inF0' (in 2X2 matrix of float) 0:403 'inF1' (in 2X2 matrix of float) 0:403 'inF2' (in 2X2 matrix of float) 0:403 Sequence 0:403 move second child to first child (temp 2X2 matrix of float) 0:403 'r009' (temp 2X2 matrix of float) -0:403 cosine (global 2X2 matrix of float) +0:403 cosine (temp 2X2 matrix of float) 0:403 'inF0' (in 2X2 matrix of float) 0:403 Sequence 0:403 move second child to first child (temp 2X2 matrix of float) 0:403 'r010' (temp 2X2 matrix of float) -0:403 hyp. cosine (global 2X2 matrix of float) +0:403 hyp. cosine (temp 2X2 matrix of float) 0:403 'inF0' (in 2X2 matrix of float) 0:403 Sequence 0:403 move second child to first child (temp 2X2 matrix of float) 0:403 'r011' (temp 2X2 matrix of float) -0:403 dPdx (global 2X2 matrix of float) +0:403 dPdx (temp 2X2 matrix of float) 0:403 'inF0' (in 2X2 matrix of float) 0:403 Sequence 0:403 move second child to first child (temp 2X2 matrix of float) 0:403 'r012' (temp 2X2 matrix of float) -0:403 dPdxCoarse (global 2X2 matrix of float) +0:403 dPdxCoarse (temp 2X2 matrix of float) 0:403 'inF0' (in 2X2 matrix of float) 0:403 Sequence 0:403 move second child to first child (temp 2X2 matrix of float) 0:403 'r013' (temp 2X2 matrix of float) -0:403 dPdxFine (global 2X2 matrix of float) +0:403 dPdxFine (temp 2X2 matrix of float) 0:403 'inF0' (in 2X2 matrix of float) 0:403 Sequence 0:403 move second child to first child (temp 2X2 matrix of float) 0:403 'r014' (temp 2X2 matrix of float) -0:403 dPdy (global 2X2 matrix of float) +0:403 dPdy (temp 2X2 matrix of float) 0:403 'inF0' (in 2X2 matrix of float) 0:403 Sequence 0:403 move second child to first child (temp 2X2 matrix of float) 0:403 'r015' (temp 2X2 matrix of float) -0:403 dPdyCoarse (global 2X2 matrix of float) +0:403 dPdyCoarse (temp 2X2 matrix of float) 0:403 'inF0' (in 2X2 matrix of float) 0:403 Sequence 0:403 move second child to first child (temp 2X2 matrix of float) 0:403 'r016' (temp 2X2 matrix of float) -0:403 dPdyFine (global 2X2 matrix of float) +0:403 dPdyFine (temp 2X2 matrix of float) 0:403 'inF0' (in 2X2 matrix of float) 0:403 Sequence 0:403 move second child to first child (temp 2X2 matrix of float) 0:403 'r017' (temp 2X2 matrix of float) -0:403 degrees (global 2X2 matrix of float) +0:403 degrees (temp 2X2 matrix of float) 0:403 'inF0' (in 2X2 matrix of float) 0:403 Sequence 0:403 move second child to first child (temp float) 0:403 'r018' (temp float) -0:403 determinant (global float) +0:403 determinant (temp float) 0:403 'inF0' (in 2X2 matrix of float) 0:403 Sequence 0:403 move second child to first child (temp 2X2 matrix of float) 0:403 'r019' (temp 2X2 matrix of float) -0:403 exp (global 2X2 matrix of float) +0:403 exp (temp 2X2 matrix of float) 0:403 'inF0' (in 2X2 matrix of float) 0:403 Sequence 0:403 move second child to first child (temp 2X2 matrix of float) 0:403 'R020' (temp 2X2 matrix of float) -0:403 exp2 (global 2X2 matrix of float) +0:403 exp2 (temp 2X2 matrix of float) 0:403 'inF0' (in 2X2 matrix of float) 0:403 Sequence 0:403 move second child to first child (temp 2X2 matrix of float) 0:403 'r021' (temp 2X2 matrix of float) -0:403 Floor (global 2X2 matrix of float) +0:403 Floor (temp 2X2 matrix of float) 0:403 'inF0' (in 2X2 matrix of float) 0:403 Sequence 0:403 move second child to first child (temp 2X2 matrix of float) 0:403 'r022' (temp 2X2 matrix of float) -0:403 mod (global 2X2 matrix of float) +0:403 mod (temp 2X2 matrix of float) 0:403 'inF0' (in 2X2 matrix of float) 0:403 'inF1' (in 2X2 matrix of float) 0:403 Sequence 0:403 move second child to first child (temp 2X2 matrix of float) 0:403 'r023' (temp 2X2 matrix of float) -0:403 Fraction (global 2X2 matrix of float) +0:403 Fraction (temp 2X2 matrix of float) 0:403 'inF0' (in 2X2 matrix of float) 0:403 Sequence 0:403 move second child to first child (temp 2X2 matrix of float) 0:403 'r024' (temp 2X2 matrix of float) -0:403 frexp (global 2X2 matrix of float) +0:403 frexp (temp 2X2 matrix of float) 0:403 'inF0' (in 2X2 matrix of float) 0:403 'inF1' (in 2X2 matrix of float) 0:403 Sequence 0:403 move second child to first child (temp 2X2 matrix of float) 0:403 'r025' (temp 2X2 matrix of float) -0:403 fwidth (global 2X2 matrix of float) +0:403 fwidth (temp 2X2 matrix of float) 0:403 'inF0' (in 2X2 matrix of float) 0:403 Sequence 0:403 move second child to first child (temp 2X2 matrix of float) 0:403 'r026' (temp 2X2 matrix of float) -0:403 ldexp (global 2X2 matrix of float) +0:403 ldexp (temp 2X2 matrix of float) 0:403 'inF0' (in 2X2 matrix of float) 0:403 'inF1' (in 2X2 matrix of float) 0:403 Sequence 0:403 move second child to first child (temp 2X2 matrix of float) 0:403 'r026a' (temp 2X2 matrix of float) -0:403 mix (global 2X2 matrix of float) +0:403 mix (temp 2X2 matrix of float) 0:403 'inF0' (in 2X2 matrix of float) 0:403 'inF1' (in 2X2 matrix of float) 0:403 'inF2' (in 2X2 matrix of float) 0:403 Sequence 0:403 move second child to first child (temp 2X2 matrix of float) 0:403 'r027' (temp 2X2 matrix of float) -0:403 log (global 2X2 matrix of float) +0:403 log (temp 2X2 matrix of float) 0:403 'inF0' (in 2X2 matrix of float) 0:403 Sequence 0:403 move second child to first child (temp 2X2 matrix of float) @@ -1737,40 +1737,40 @@ gl_FragCoord origin is upper left 0:403 Sequence 0:403 move second child to first child (temp 2X2 matrix of float) 0:403 'r029' (temp 2X2 matrix of float) -0:403 log2 (global 2X2 matrix of float) +0:403 log2 (temp 2X2 matrix of float) 0:403 'inF0' (in 2X2 matrix of float) 0:403 Sequence 0:403 move second child to first child (temp 2X2 matrix of float) 0:403 'r030' (temp 2X2 matrix of float) -0:403 max (global 2X2 matrix of float) +0:403 max (temp 2X2 matrix of float) 0:403 'inF0' (in 2X2 matrix of float) 0:403 'inF1' (in 2X2 matrix of float) 0:403 Sequence 0:403 move second child to first child (temp 2X2 matrix of float) 0:403 'r031' (temp 2X2 matrix of float) -0:403 min (global 2X2 matrix of float) +0:403 min (temp 2X2 matrix of float) 0:403 'inF0' (in 2X2 matrix of float) 0:403 'inF1' (in 2X2 matrix of float) 0:403 Sequence 0:403 move second child to first child (temp 2X2 matrix of float) 0:403 'r032' (temp 2X2 matrix of float) -0:403 pow (global 2X2 matrix of float) +0:403 pow (temp 2X2 matrix of float) 0:403 'inF0' (in 2X2 matrix of float) 0:403 'inF1' (in 2X2 matrix of float) 0:403 Sequence 0:403 move second child to first child (temp 2X2 matrix of float) 0:403 'r033' (temp 2X2 matrix of float) -0:403 radians (global 2X2 matrix of float) +0:403 radians (temp 2X2 matrix of float) 0:403 'inF0' (in 2X2 matrix of float) 0:403 Sequence 0:403 move second child to first child (temp 2X2 matrix of float) 0:403 'r034' (temp 2X2 matrix of float) -0:403 roundEven (global 2X2 matrix of float) +0:403 roundEven (temp 2X2 matrix of float) 0:403 'inF0' (in 2X2 matrix of float) 0:403 Sequence 0:403 move second child to first child (temp 2X2 matrix of float) 0:403 'r035' (temp 2X2 matrix of float) -0:403 inverse sqrt (global 2X2 matrix of float) +0:403 inverse sqrt (temp 2X2 matrix of float) 0:403 'inF0' (in 2X2 matrix of float) 0:403 Sequence 0:403 move second child to first child (temp 2X2 matrix of float) @@ -1784,12 +1784,12 @@ gl_FragCoord origin is upper left 0:403 Sequence 0:403 move second child to first child (temp 2X2 matrix of float) 0:403 'r037' (temp 2X2 matrix of float) -0:403 Sign (global 2X2 matrix of float) +0:403 Sign (temp 2X2 matrix of float) 0:403 'inF0' (in 2X2 matrix of float) 0:403 Sequence 0:403 move second child to first child (temp 2X2 matrix of float) 0:403 'r038' (temp 2X2 matrix of float) -0:403 sine (global 2X2 matrix of float) +0:403 sine (temp 2X2 matrix of float) 0:403 'inF0' (in 2X2 matrix of float) 0:403 Sequence 0:403 move second child to first child (temp 2X2 matrix of float) @@ -1803,42 +1803,42 @@ gl_FragCoord origin is upper left 0:403 Sequence 0:403 move second child to first child (temp 2X2 matrix of float) 0:403 'r039' (temp 2X2 matrix of float) -0:403 hyp. sine (global 2X2 matrix of float) +0:403 hyp. sine (temp 2X2 matrix of float) 0:403 'inF0' (in 2X2 matrix of float) 0:403 Sequence 0:403 move second child to first child (temp 2X2 matrix of float) 0:403 'r049' (temp 2X2 matrix of float) -0:403 smoothstep (global 2X2 matrix of float) +0:403 smoothstep (temp 2X2 matrix of float) 0:403 'inF0' (in 2X2 matrix of float) 0:403 'inF1' (in 2X2 matrix of float) 0:403 'inF2' (in 2X2 matrix of float) 0:403 Sequence 0:403 move second child to first child (temp 2X2 matrix of float) 0:403 'r041' (temp 2X2 matrix of float) -0:403 sqrt (global 2X2 matrix of float) +0:403 sqrt (temp 2X2 matrix of float) 0:403 'inF0' (in 2X2 matrix of float) 0:403 Sequence 0:403 move second child to first child (temp 2X2 matrix of float) 0:403 'r042' (temp 2X2 matrix of float) -0:403 step (global 2X2 matrix of float) +0:403 step (temp 2X2 matrix of float) 0:403 'inF0' (in 2X2 matrix of float) 0:403 'inF1' (in 2X2 matrix of float) 0:403 Sequence 0:403 move second child to first child (temp 2X2 matrix of float) 0:403 'r043' (temp 2X2 matrix of float) -0:403 tangent (global 2X2 matrix of float) +0:403 tangent (temp 2X2 matrix of float) 0:403 'inF0' (in 2X2 matrix of float) 0:403 Sequence 0:403 move second child to first child (temp 2X2 matrix of float) 0:403 'r044' (temp 2X2 matrix of float) -0:403 hyp. tangent (global 2X2 matrix of float) +0:403 hyp. tangent (temp 2X2 matrix of float) 0:403 'inF0' (in 2X2 matrix of float) -0:403 transpose (global 2X2 matrix of float) +0:403 transpose (temp 2X2 matrix of float) 0:403 'inF0' (in 2X2 matrix of float) 0:403 Sequence 0:403 move second child to first child (temp 2X2 matrix of float) 0:403 'r046' (temp 2X2 matrix of float) -0:403 trunc (global 2X2 matrix of float) +0:403 trunc (temp 2X2 matrix of float) 0:403 'inF0' (in 2X2 matrix of float) 0:406 Branch: Return with expression 0:? Constant: @@ -1855,40 +1855,40 @@ gl_FragCoord origin is upper left 0:412 Sequence 0:412 move second child to first child (temp bool) 0:412 'r000' (temp bool) -0:412 all (global bool) +0:412 all (temp bool) 0:412 'inF0' (in 3X3 matrix of float) 0:412 Sequence 0:412 move second child to first child (temp 3X3 matrix of float) 0:412 'r001' (temp 3X3 matrix of float) -0:412 Absolute value (global 3X3 matrix of float) +0:412 Absolute value (temp 3X3 matrix of float) 0:412 'inF0' (in 3X3 matrix of float) -0:412 arc cosine (global 3X3 matrix of float) +0:412 arc cosine (temp 3X3 matrix of float) 0:412 'inF0' (in 3X3 matrix of float) 0:412 Sequence 0:412 move second child to first child (temp bool) 0:412 'r003' (temp bool) -0:412 any (global bool) +0:412 any (temp bool) 0:412 'inF0' (in 3X3 matrix of float) 0:412 Sequence 0:412 move second child to first child (temp 3X3 matrix of float) 0:412 'r004' (temp 3X3 matrix of float) -0:412 arc sine (global 3X3 matrix of float) +0:412 arc sine (temp 3X3 matrix of float) 0:412 'inF0' (in 3X3 matrix of float) 0:412 Sequence 0:412 move second child to first child (temp 3X3 matrix of float) 0:412 'r005' (temp 3X3 matrix of float) -0:412 arc tangent (global 3X3 matrix of float) +0:412 arc tangent (temp 3X3 matrix of float) 0:412 'inF0' (in 3X3 matrix of float) 0:412 Sequence 0:412 move second child to first child (temp 3X3 matrix of float) 0:412 'r006' (temp 3X3 matrix of float) -0:412 arc tangent (global 3X3 matrix of float) +0:412 arc tangent (temp 3X3 matrix of float) 0:412 'inF0' (in 3X3 matrix of float) 0:412 'inF1' (in 3X3 matrix of float) 0:412 Sequence 0:412 move second child to first child (temp 3X3 matrix of float) 0:412 'r007' (temp 3X3 matrix of float) -0:412 Ceiling (global 3X3 matrix of float) +0:412 Ceiling (temp 3X3 matrix of float) 0:412 'inF0' (in 3X3 matrix of float) 0:412 Test condition and select (temp void) 0:412 Condition @@ -1910,114 +1910,114 @@ gl_FragCoord origin is upper left 0:412 Sequence 0:412 move second child to first child (temp 3X3 matrix of float) 0:412 'r008' (temp 3X3 matrix of float) -0:412 clamp (global 3X3 matrix of float) +0:412 clamp (temp 3X3 matrix of float) 0:412 'inF0' (in 3X3 matrix of float) 0:412 'inF1' (in 3X3 matrix of float) 0:412 'inF2' (in 3X3 matrix of float) 0:412 Sequence 0:412 move second child to first child (temp 3X3 matrix of float) 0:412 'r009' (temp 3X3 matrix of float) -0:412 cosine (global 3X3 matrix of float) +0:412 cosine (temp 3X3 matrix of float) 0:412 'inF0' (in 3X3 matrix of float) 0:412 Sequence 0:412 move second child to first child (temp 3X3 matrix of float) 0:412 'r010' (temp 3X3 matrix of float) -0:412 hyp. cosine (global 3X3 matrix of float) +0:412 hyp. cosine (temp 3X3 matrix of float) 0:412 'inF0' (in 3X3 matrix of float) 0:412 Sequence 0:412 move second child to first child (temp 3X3 matrix of float) 0:412 'r011' (temp 3X3 matrix of float) -0:412 dPdx (global 3X3 matrix of float) +0:412 dPdx (temp 3X3 matrix of float) 0:412 'inF0' (in 3X3 matrix of float) 0:412 Sequence 0:412 move second child to first child (temp 3X3 matrix of float) 0:412 'r012' (temp 3X3 matrix of float) -0:412 dPdxCoarse (global 3X3 matrix of float) +0:412 dPdxCoarse (temp 3X3 matrix of float) 0:412 'inF0' (in 3X3 matrix of float) 0:412 Sequence 0:412 move second child to first child (temp 3X3 matrix of float) 0:412 'r013' (temp 3X3 matrix of float) -0:412 dPdxFine (global 3X3 matrix of float) +0:412 dPdxFine (temp 3X3 matrix of float) 0:412 'inF0' (in 3X3 matrix of float) 0:412 Sequence 0:412 move second child to first child (temp 3X3 matrix of float) 0:412 'r014' (temp 3X3 matrix of float) -0:412 dPdy (global 3X3 matrix of float) +0:412 dPdy (temp 3X3 matrix of float) 0:412 'inF0' (in 3X3 matrix of float) 0:412 Sequence 0:412 move second child to first child (temp 3X3 matrix of float) 0:412 'r015' (temp 3X3 matrix of float) -0:412 dPdyCoarse (global 3X3 matrix of float) +0:412 dPdyCoarse (temp 3X3 matrix of float) 0:412 'inF0' (in 3X3 matrix of float) 0:412 Sequence 0:412 move second child to first child (temp 3X3 matrix of float) 0:412 'r016' (temp 3X3 matrix of float) -0:412 dPdyFine (global 3X3 matrix of float) +0:412 dPdyFine (temp 3X3 matrix of float) 0:412 'inF0' (in 3X3 matrix of float) 0:412 Sequence 0:412 move second child to first child (temp 3X3 matrix of float) 0:412 'r017' (temp 3X3 matrix of float) -0:412 degrees (global 3X3 matrix of float) +0:412 degrees (temp 3X3 matrix of float) 0:412 'inF0' (in 3X3 matrix of float) 0:412 Sequence 0:412 move second child to first child (temp float) 0:412 'r018' (temp float) -0:412 determinant (global float) +0:412 determinant (temp float) 0:412 'inF0' (in 3X3 matrix of float) 0:412 Sequence 0:412 move second child to first child (temp 3X3 matrix of float) 0:412 'r019' (temp 3X3 matrix of float) -0:412 exp (global 3X3 matrix of float) +0:412 exp (temp 3X3 matrix of float) 0:412 'inF0' (in 3X3 matrix of float) 0:412 Sequence 0:412 move second child to first child (temp 3X3 matrix of float) 0:412 'R020' (temp 3X3 matrix of float) -0:412 exp2 (global 3X3 matrix of float) +0:412 exp2 (temp 3X3 matrix of float) 0:412 'inF0' (in 3X3 matrix of float) 0:412 Sequence 0:412 move second child to first child (temp 3X3 matrix of float) 0:412 'r021' (temp 3X3 matrix of float) -0:412 Floor (global 3X3 matrix of float) +0:412 Floor (temp 3X3 matrix of float) 0:412 'inF0' (in 3X3 matrix of float) 0:412 Sequence 0:412 move second child to first child (temp 3X3 matrix of float) 0:412 'r022' (temp 3X3 matrix of float) -0:412 mod (global 3X3 matrix of float) +0:412 mod (temp 3X3 matrix of float) 0:412 'inF0' (in 3X3 matrix of float) 0:412 'inF1' (in 3X3 matrix of float) 0:412 Sequence 0:412 move second child to first child (temp 3X3 matrix of float) 0:412 'r023' (temp 3X3 matrix of float) -0:412 Fraction (global 3X3 matrix of float) +0:412 Fraction (temp 3X3 matrix of float) 0:412 'inF0' (in 3X3 matrix of float) 0:412 Sequence 0:412 move second child to first child (temp 3X3 matrix of float) 0:412 'r024' (temp 3X3 matrix of float) -0:412 frexp (global 3X3 matrix of float) +0:412 frexp (temp 3X3 matrix of float) 0:412 'inF0' (in 3X3 matrix of float) 0:412 'inF1' (in 3X3 matrix of float) 0:412 Sequence 0:412 move second child to first child (temp 3X3 matrix of float) 0:412 'r025' (temp 3X3 matrix of float) -0:412 fwidth (global 3X3 matrix of float) +0:412 fwidth (temp 3X3 matrix of float) 0:412 'inF0' (in 3X3 matrix of float) 0:412 Sequence 0:412 move second child to first child (temp 3X3 matrix of float) 0:412 'r026' (temp 3X3 matrix of float) -0:412 ldexp (global 3X3 matrix of float) +0:412 ldexp (temp 3X3 matrix of float) 0:412 'inF0' (in 3X3 matrix of float) 0:412 'inF1' (in 3X3 matrix of float) 0:412 Sequence 0:412 move second child to first child (temp 3X3 matrix of float) 0:412 'r026a' (temp 3X3 matrix of float) -0:412 mix (global 3X3 matrix of float) +0:412 mix (temp 3X3 matrix of float) 0:412 'inF0' (in 3X3 matrix of float) 0:412 'inF1' (in 3X3 matrix of float) 0:412 'inF2' (in 3X3 matrix of float) 0:412 Sequence 0:412 move second child to first child (temp 3X3 matrix of float) 0:412 'r027' (temp 3X3 matrix of float) -0:412 log (global 3X3 matrix of float) +0:412 log (temp 3X3 matrix of float) 0:412 'inF0' (in 3X3 matrix of float) 0:412 Sequence 0:412 move second child to first child (temp 3X3 matrix of float) @@ -2030,40 +2030,40 @@ gl_FragCoord origin is upper left 0:412 Sequence 0:412 move second child to first child (temp 3X3 matrix of float) 0:412 'r029' (temp 3X3 matrix of float) -0:412 log2 (global 3X3 matrix of float) +0:412 log2 (temp 3X3 matrix of float) 0:412 'inF0' (in 3X3 matrix of float) 0:412 Sequence 0:412 move second child to first child (temp 3X3 matrix of float) 0:412 'r030' (temp 3X3 matrix of float) -0:412 max (global 3X3 matrix of float) +0:412 max (temp 3X3 matrix of float) 0:412 'inF0' (in 3X3 matrix of float) 0:412 'inF1' (in 3X3 matrix of float) 0:412 Sequence 0:412 move second child to first child (temp 3X3 matrix of float) 0:412 'r031' (temp 3X3 matrix of float) -0:412 min (global 3X3 matrix of float) +0:412 min (temp 3X3 matrix of float) 0:412 'inF0' (in 3X3 matrix of float) 0:412 'inF1' (in 3X3 matrix of float) 0:412 Sequence 0:412 move second child to first child (temp 3X3 matrix of float) 0:412 'r032' (temp 3X3 matrix of float) -0:412 pow (global 3X3 matrix of float) +0:412 pow (temp 3X3 matrix of float) 0:412 'inF0' (in 3X3 matrix of float) 0:412 'inF1' (in 3X3 matrix of float) 0:412 Sequence 0:412 move second child to first child (temp 3X3 matrix of float) 0:412 'r033' (temp 3X3 matrix of float) -0:412 radians (global 3X3 matrix of float) +0:412 radians (temp 3X3 matrix of float) 0:412 'inF0' (in 3X3 matrix of float) 0:412 Sequence 0:412 move second child to first child (temp 3X3 matrix of float) 0:412 'r034' (temp 3X3 matrix of float) -0:412 roundEven (global 3X3 matrix of float) +0:412 roundEven (temp 3X3 matrix of float) 0:412 'inF0' (in 3X3 matrix of float) 0:412 Sequence 0:412 move second child to first child (temp 3X3 matrix of float) 0:412 'r035' (temp 3X3 matrix of float) -0:412 inverse sqrt (global 3X3 matrix of float) +0:412 inverse sqrt (temp 3X3 matrix of float) 0:412 'inF0' (in 3X3 matrix of float) 0:412 Sequence 0:412 move second child to first child (temp 3X3 matrix of float) @@ -2077,12 +2077,12 @@ gl_FragCoord origin is upper left 0:412 Sequence 0:412 move second child to first child (temp 3X3 matrix of float) 0:412 'r037' (temp 3X3 matrix of float) -0:412 Sign (global 3X3 matrix of float) +0:412 Sign (temp 3X3 matrix of float) 0:412 'inF0' (in 3X3 matrix of float) 0:412 Sequence 0:412 move second child to first child (temp 3X3 matrix of float) 0:412 'r038' (temp 3X3 matrix of float) -0:412 sine (global 3X3 matrix of float) +0:412 sine (temp 3X3 matrix of float) 0:412 'inF0' (in 3X3 matrix of float) 0:412 Sequence 0:412 move second child to first child (temp 3X3 matrix of float) @@ -2096,42 +2096,42 @@ gl_FragCoord origin is upper left 0:412 Sequence 0:412 move second child to first child (temp 3X3 matrix of float) 0:412 'r039' (temp 3X3 matrix of float) -0:412 hyp. sine (global 3X3 matrix of float) +0:412 hyp. sine (temp 3X3 matrix of float) 0:412 'inF0' (in 3X3 matrix of float) 0:412 Sequence 0:412 move second child to first child (temp 3X3 matrix of float) 0:412 'r049' (temp 3X3 matrix of float) -0:412 smoothstep (global 3X3 matrix of float) +0:412 smoothstep (temp 3X3 matrix of float) 0:412 'inF0' (in 3X3 matrix of float) 0:412 'inF1' (in 3X3 matrix of float) 0:412 'inF2' (in 3X3 matrix of float) 0:412 Sequence 0:412 move second child to first child (temp 3X3 matrix of float) 0:412 'r041' (temp 3X3 matrix of float) -0:412 sqrt (global 3X3 matrix of float) +0:412 sqrt (temp 3X3 matrix of float) 0:412 'inF0' (in 3X3 matrix of float) 0:412 Sequence 0:412 move second child to first child (temp 3X3 matrix of float) 0:412 'r042' (temp 3X3 matrix of float) -0:412 step (global 3X3 matrix of float) +0:412 step (temp 3X3 matrix of float) 0:412 'inF0' (in 3X3 matrix of float) 0:412 'inF1' (in 3X3 matrix of float) 0:412 Sequence 0:412 move second child to first child (temp 3X3 matrix of float) 0:412 'r043' (temp 3X3 matrix of float) -0:412 tangent (global 3X3 matrix of float) +0:412 tangent (temp 3X3 matrix of float) 0:412 'inF0' (in 3X3 matrix of float) 0:412 Sequence 0:412 move second child to first child (temp 3X3 matrix of float) 0:412 'r044' (temp 3X3 matrix of float) -0:412 hyp. tangent (global 3X3 matrix of float) +0:412 hyp. tangent (temp 3X3 matrix of float) 0:412 'inF0' (in 3X3 matrix of float) -0:412 transpose (global 3X3 matrix of float) +0:412 transpose (temp 3X3 matrix of float) 0:412 'inF0' (in 3X3 matrix of float) 0:412 Sequence 0:412 move second child to first child (temp 3X3 matrix of float) 0:412 'r046' (temp 3X3 matrix of float) -0:412 trunc (global 3X3 matrix of float) +0:412 trunc (temp 3X3 matrix of float) 0:412 'inF0' (in 3X3 matrix of float) 0:415 Branch: Return with expression 0:? Constant: @@ -2153,40 +2153,40 @@ gl_FragCoord origin is upper left 0:421 Sequence 0:421 move second child to first child (temp bool) 0:421 'r000' (temp bool) -0:421 all (global bool) +0:421 all (temp bool) 0:421 'inF0' (in 4X4 matrix of float) 0:421 Sequence 0:421 move second child to first child (temp 4X4 matrix of float) 0:421 'r001' (temp 4X4 matrix of float) -0:421 Absolute value (global 4X4 matrix of float) +0:421 Absolute value (temp 4X4 matrix of float) 0:421 'inF0' (in 4X4 matrix of float) -0:421 arc cosine (global 4X4 matrix of float) +0:421 arc cosine (temp 4X4 matrix of float) 0:421 'inF0' (in 4X4 matrix of float) 0:421 Sequence 0:421 move second child to first child (temp bool) 0:421 'r003' (temp bool) -0:421 any (global bool) +0:421 any (temp bool) 0:421 'inF0' (in 4X4 matrix of float) 0:421 Sequence 0:421 move second child to first child (temp 4X4 matrix of float) 0:421 'r004' (temp 4X4 matrix of float) -0:421 arc sine (global 4X4 matrix of float) +0:421 arc sine (temp 4X4 matrix of float) 0:421 'inF0' (in 4X4 matrix of float) 0:421 Sequence 0:421 move second child to first child (temp 4X4 matrix of float) 0:421 'r005' (temp 4X4 matrix of float) -0:421 arc tangent (global 4X4 matrix of float) +0:421 arc tangent (temp 4X4 matrix of float) 0:421 'inF0' (in 4X4 matrix of float) 0:421 Sequence 0:421 move second child to first child (temp 4X4 matrix of float) 0:421 'r006' (temp 4X4 matrix of float) -0:421 arc tangent (global 4X4 matrix of float) +0:421 arc tangent (temp 4X4 matrix of float) 0:421 'inF0' (in 4X4 matrix of float) 0:421 'inF1' (in 4X4 matrix of float) 0:421 Sequence 0:421 move second child to first child (temp 4X4 matrix of float) 0:421 'r007' (temp 4X4 matrix of float) -0:421 Ceiling (global 4X4 matrix of float) +0:421 Ceiling (temp 4X4 matrix of float) 0:421 'inF0' (in 4X4 matrix of float) 0:421 Test condition and select (temp void) 0:421 Condition @@ -2215,114 +2215,114 @@ gl_FragCoord origin is upper left 0:421 Sequence 0:421 move second child to first child (temp 4X4 matrix of float) 0:421 'r008' (temp 4X4 matrix of float) -0:421 clamp (global 4X4 matrix of float) +0:421 clamp (temp 4X4 matrix of float) 0:421 'inF0' (in 4X4 matrix of float) 0:421 'inF1' (in 4X4 matrix of float) 0:421 'inF2' (in 4X4 matrix of float) 0:421 Sequence 0:421 move second child to first child (temp 4X4 matrix of float) 0:421 'r009' (temp 4X4 matrix of float) -0:421 cosine (global 4X4 matrix of float) +0:421 cosine (temp 4X4 matrix of float) 0:421 'inF0' (in 4X4 matrix of float) 0:421 Sequence 0:421 move second child to first child (temp 4X4 matrix of float) 0:421 'r010' (temp 4X4 matrix of float) -0:421 hyp. cosine (global 4X4 matrix of float) +0:421 hyp. cosine (temp 4X4 matrix of float) 0:421 'inF0' (in 4X4 matrix of float) 0:421 Sequence 0:421 move second child to first child (temp 4X4 matrix of float) 0:421 'r011' (temp 4X4 matrix of float) -0:421 dPdx (global 4X4 matrix of float) +0:421 dPdx (temp 4X4 matrix of float) 0:421 'inF0' (in 4X4 matrix of float) 0:421 Sequence 0:421 move second child to first child (temp 4X4 matrix of float) 0:421 'r012' (temp 4X4 matrix of float) -0:421 dPdxCoarse (global 4X4 matrix of float) +0:421 dPdxCoarse (temp 4X4 matrix of float) 0:421 'inF0' (in 4X4 matrix of float) 0:421 Sequence 0:421 move second child to first child (temp 4X4 matrix of float) 0:421 'r013' (temp 4X4 matrix of float) -0:421 dPdxFine (global 4X4 matrix of float) +0:421 dPdxFine (temp 4X4 matrix of float) 0:421 'inF0' (in 4X4 matrix of float) 0:421 Sequence 0:421 move second child to first child (temp 4X4 matrix of float) 0:421 'r014' (temp 4X4 matrix of float) -0:421 dPdy (global 4X4 matrix of float) +0:421 dPdy (temp 4X4 matrix of float) 0:421 'inF0' (in 4X4 matrix of float) 0:421 Sequence 0:421 move second child to first child (temp 4X4 matrix of float) 0:421 'r015' (temp 4X4 matrix of float) -0:421 dPdyCoarse (global 4X4 matrix of float) +0:421 dPdyCoarse (temp 4X4 matrix of float) 0:421 'inF0' (in 4X4 matrix of float) 0:421 Sequence 0:421 move second child to first child (temp 4X4 matrix of float) 0:421 'r016' (temp 4X4 matrix of float) -0:421 dPdyFine (global 4X4 matrix of float) +0:421 dPdyFine (temp 4X4 matrix of float) 0:421 'inF0' (in 4X4 matrix of float) 0:421 Sequence 0:421 move second child to first child (temp 4X4 matrix of float) 0:421 'r017' (temp 4X4 matrix of float) -0:421 degrees (global 4X4 matrix of float) +0:421 degrees (temp 4X4 matrix of float) 0:421 'inF0' (in 4X4 matrix of float) 0:421 Sequence 0:421 move second child to first child (temp float) 0:421 'r018' (temp float) -0:421 determinant (global float) +0:421 determinant (temp float) 0:421 'inF0' (in 4X4 matrix of float) 0:421 Sequence 0:421 move second child to first child (temp 4X4 matrix of float) 0:421 'r019' (temp 4X4 matrix of float) -0:421 exp (global 4X4 matrix of float) +0:421 exp (temp 4X4 matrix of float) 0:421 'inF0' (in 4X4 matrix of float) 0:421 Sequence 0:421 move second child to first child (temp 4X4 matrix of float) 0:421 'R020' (temp 4X4 matrix of float) -0:421 exp2 (global 4X4 matrix of float) +0:421 exp2 (temp 4X4 matrix of float) 0:421 'inF0' (in 4X4 matrix of float) 0:421 Sequence 0:421 move second child to first child (temp 4X4 matrix of float) 0:421 'r021' (temp 4X4 matrix of float) -0:421 Floor (global 4X4 matrix of float) +0:421 Floor (temp 4X4 matrix of float) 0:421 'inF0' (in 4X4 matrix of float) 0:421 Sequence 0:421 move second child to first child (temp 4X4 matrix of float) 0:421 'r022' (temp 4X4 matrix of float) -0:421 mod (global 4X4 matrix of float) +0:421 mod (temp 4X4 matrix of float) 0:421 'inF0' (in 4X4 matrix of float) 0:421 'inF1' (in 4X4 matrix of float) 0:421 Sequence 0:421 move second child to first child (temp 4X4 matrix of float) 0:421 'r023' (temp 4X4 matrix of float) -0:421 Fraction (global 4X4 matrix of float) +0:421 Fraction (temp 4X4 matrix of float) 0:421 'inF0' (in 4X4 matrix of float) 0:421 Sequence 0:421 move second child to first child (temp 4X4 matrix of float) 0:421 'r024' (temp 4X4 matrix of float) -0:421 frexp (global 4X4 matrix of float) +0:421 frexp (temp 4X4 matrix of float) 0:421 'inF0' (in 4X4 matrix of float) 0:421 'inF1' (in 4X4 matrix of float) 0:421 Sequence 0:421 move second child to first child (temp 4X4 matrix of float) 0:421 'r025' (temp 4X4 matrix of float) -0:421 fwidth (global 4X4 matrix of float) +0:421 fwidth (temp 4X4 matrix of float) 0:421 'inF0' (in 4X4 matrix of float) 0:421 Sequence 0:421 move second child to first child (temp 4X4 matrix of float) 0:421 'r026' (temp 4X4 matrix of float) -0:421 ldexp (global 4X4 matrix of float) +0:421 ldexp (temp 4X4 matrix of float) 0:421 'inF0' (in 4X4 matrix of float) 0:421 'inF1' (in 4X4 matrix of float) 0:421 Sequence 0:421 move second child to first child (temp 4X4 matrix of float) 0:421 'r026a' (temp 4X4 matrix of float) -0:421 mix (global 4X4 matrix of float) +0:421 mix (temp 4X4 matrix of float) 0:421 'inF0' (in 4X4 matrix of float) 0:421 'inF1' (in 4X4 matrix of float) 0:421 'inF2' (in 4X4 matrix of float) 0:421 Sequence 0:421 move second child to first child (temp 4X4 matrix of float) 0:421 'r027' (temp 4X4 matrix of float) -0:421 log (global 4X4 matrix of float) +0:421 log (temp 4X4 matrix of float) 0:421 'inF0' (in 4X4 matrix of float) 0:421 Sequence 0:421 move second child to first child (temp 4X4 matrix of float) @@ -2335,40 +2335,40 @@ gl_FragCoord origin is upper left 0:421 Sequence 0:421 move second child to first child (temp 4X4 matrix of float) 0:421 'r029' (temp 4X4 matrix of float) -0:421 log2 (global 4X4 matrix of float) +0:421 log2 (temp 4X4 matrix of float) 0:421 'inF0' (in 4X4 matrix of float) 0:421 Sequence 0:421 move second child to first child (temp 4X4 matrix of float) 0:421 'r030' (temp 4X4 matrix of float) -0:421 max (global 4X4 matrix of float) +0:421 max (temp 4X4 matrix of float) 0:421 'inF0' (in 4X4 matrix of float) 0:421 'inF1' (in 4X4 matrix of float) 0:421 Sequence 0:421 move second child to first child (temp 4X4 matrix of float) 0:421 'r031' (temp 4X4 matrix of float) -0:421 min (global 4X4 matrix of float) +0:421 min (temp 4X4 matrix of float) 0:421 'inF0' (in 4X4 matrix of float) 0:421 'inF1' (in 4X4 matrix of float) 0:421 Sequence 0:421 move second child to first child (temp 4X4 matrix of float) 0:421 'r032' (temp 4X4 matrix of float) -0:421 pow (global 4X4 matrix of float) +0:421 pow (temp 4X4 matrix of float) 0:421 'inF0' (in 4X4 matrix of float) 0:421 'inF1' (in 4X4 matrix of float) 0:421 Sequence 0:421 move second child to first child (temp 4X4 matrix of float) 0:421 'r033' (temp 4X4 matrix of float) -0:421 radians (global 4X4 matrix of float) +0:421 radians (temp 4X4 matrix of float) 0:421 'inF0' (in 4X4 matrix of float) 0:421 Sequence 0:421 move second child to first child (temp 4X4 matrix of float) 0:421 'r034' (temp 4X4 matrix of float) -0:421 roundEven (global 4X4 matrix of float) +0:421 roundEven (temp 4X4 matrix of float) 0:421 'inF0' (in 4X4 matrix of float) 0:421 Sequence 0:421 move second child to first child (temp 4X4 matrix of float) 0:421 'r035' (temp 4X4 matrix of float) -0:421 inverse sqrt (global 4X4 matrix of float) +0:421 inverse sqrt (temp 4X4 matrix of float) 0:421 'inF0' (in 4X4 matrix of float) 0:421 Sequence 0:421 move second child to first child (temp 4X4 matrix of float) @@ -2382,12 +2382,12 @@ gl_FragCoord origin is upper left 0:421 Sequence 0:421 move second child to first child (temp 4X4 matrix of float) 0:421 'r037' (temp 4X4 matrix of float) -0:421 Sign (global 4X4 matrix of float) +0:421 Sign (temp 4X4 matrix of float) 0:421 'inF0' (in 4X4 matrix of float) 0:421 Sequence 0:421 move second child to first child (temp 4X4 matrix of float) 0:421 'r038' (temp 4X4 matrix of float) -0:421 sine (global 4X4 matrix of float) +0:421 sine (temp 4X4 matrix of float) 0:421 'inF0' (in 4X4 matrix of float) 0:421 Sequence 0:421 move second child to first child (temp 4X4 matrix of float) @@ -2401,42 +2401,42 @@ gl_FragCoord origin is upper left 0:421 Sequence 0:421 move second child to first child (temp 4X4 matrix of float) 0:421 'r039' (temp 4X4 matrix of float) -0:421 hyp. sine (global 4X4 matrix of float) +0:421 hyp. sine (temp 4X4 matrix of float) 0:421 'inF0' (in 4X4 matrix of float) 0:421 Sequence 0:421 move second child to first child (temp 4X4 matrix of float) 0:421 'r049' (temp 4X4 matrix of float) -0:421 smoothstep (global 4X4 matrix of float) +0:421 smoothstep (temp 4X4 matrix of float) 0:421 'inF0' (in 4X4 matrix of float) 0:421 'inF1' (in 4X4 matrix of float) 0:421 'inF2' (in 4X4 matrix of float) 0:421 Sequence 0:421 move second child to first child (temp 4X4 matrix of float) 0:421 'r041' (temp 4X4 matrix of float) -0:421 sqrt (global 4X4 matrix of float) +0:421 sqrt (temp 4X4 matrix of float) 0:421 'inF0' (in 4X4 matrix of float) 0:421 Sequence 0:421 move second child to first child (temp 4X4 matrix of float) 0:421 'r042' (temp 4X4 matrix of float) -0:421 step (global 4X4 matrix of float) +0:421 step (temp 4X4 matrix of float) 0:421 'inF0' (in 4X4 matrix of float) 0:421 'inF1' (in 4X4 matrix of float) 0:421 Sequence 0:421 move second child to first child (temp 4X4 matrix of float) 0:421 'r043' (temp 4X4 matrix of float) -0:421 tangent (global 4X4 matrix of float) +0:421 tangent (temp 4X4 matrix of float) 0:421 'inF0' (in 4X4 matrix of float) 0:421 Sequence 0:421 move second child to first child (temp 4X4 matrix of float) 0:421 'r044' (temp 4X4 matrix of float) -0:421 hyp. tangent (global 4X4 matrix of float) +0:421 hyp. tangent (temp 4X4 matrix of float) 0:421 'inF0' (in 4X4 matrix of float) -0:421 transpose (global 4X4 matrix of float) +0:421 transpose (temp 4X4 matrix of float) 0:421 'inF0' (in 4X4 matrix of float) 0:421 Sequence 0:421 move second child to first child (temp 4X4 matrix of float) 0:421 'r046' (temp 4X4 matrix of float) -0:421 trunc (global 4X4 matrix of float) +0:421 trunc (temp 4X4 matrix of float) 0:421 'inF0' (in 4X4 matrix of float) 0:424 Branch: Return with expression 0:? Constant: @@ -2486,7 +2486,7 @@ gl_FragCoord origin is upper left 0:443 Sequence 0:443 move second child to first child (temp float) 0:443 'r3' (temp float) -0:443 dot-product (global float) +0:443 dot-product (temp float) 0:443 'inFV0' (in 2-component vector of float) 0:443 'inFV1' (in 2-component vector of float) 0:443 Sequence @@ -2549,7 +2549,7 @@ gl_FragCoord origin is upper left 0:450 Sequence 0:450 move second child to first child (temp float) 0:450 'r3' (temp float) -0:450 dot-product (global float) +0:450 dot-product (temp float) 0:450 'inFV0' (in 3-component vector of float) 0:450 'inFV1' (in 3-component vector of float) 0:450 Sequence @@ -2612,7 +2612,7 @@ gl_FragCoord origin is upper left 0:457 Sequence 0:457 move second child to first child (temp float) 0:457 'r3' (temp float) -0:457 dot-product (global float) +0:457 dot-product (temp float) 0:457 'inFV0' (in 4-component vector of float) 0:457 'inFV1' (in 4-component vector of float) 0:457 Sequence @@ -2690,13 +2690,13 @@ gl_FragCoord origin is upper left 0:472 Sequence 0:472 move second child to first child (temp float) 0:472 'r05' (temp float) -0:472 dot-product (global float) +0:472 dot-product (temp float) 0:472 'inFV2' (in 2-component vector of float) 0:472 'inFV2' (in 2-component vector of float) 0:473 Sequence 0:473 move second child to first child (temp float) 0:473 'r06' (temp float) -0:473 dot-product (global float) +0:473 dot-product (temp float) 0:473 'inFV3' (in 3-component vector of float) 0:473 'inFV3' (in 3-component vector of float) 0:474 Sequence @@ -2814,63 +2814,63 @@ gl_FragCoord origin is upper left 0:20 Sequence 0:20 move second child to first child (temp bool) 0:20 'r000' (temp bool) -0:20 all (global bool) +0:20 all (temp bool) 0:20 'inF0' (in float) 0:21 Sequence 0:21 move second child to first child (temp float) 0:21 'r001' (temp float) -0:21 Absolute value (global float) +0:21 Absolute value (temp float) 0:21 'inF0' (in float) 0:22 Sequence 0:22 move second child to first child (temp float) 0:22 'r002' (temp float) -0:22 arc cosine (global float) +0:22 arc cosine (temp float) 0:22 'inF0' (in float) 0:23 Sequence 0:23 move second child to first child (temp bool) 0:23 'r003' (temp bool) -0:23 any (global bool) +0:23 any (temp bool) 0:23 'inF0' (in float) 0:24 Sequence 0:24 move second child to first child (temp float) 0:24 'r004' (temp float) -0:24 arc sine (global float) +0:24 arc sine (temp float) 0:24 'inF0' (in float) 0:25 Sequence 0:25 move second child to first child (temp int) 0:25 'r005' (temp int) -0:25 floatBitsToInt (global int) +0:25 floatBitsToInt (temp int) 0:25 'inF0' (in float) 0:26 Sequence 0:26 move second child to first child (temp uint) 0:26 'r006' (temp uint) -0:26 floatBitsToUint (global uint) +0:26 floatBitsToUint (temp uint) 0:26 'inF0' (in float) 0:27 Sequence 0:27 move second child to first child (temp float) 0:27 'r007' (temp float) -0:27 intBitsToFloat (global float) +0:27 intBitsToFloat (temp float) 0:27 'inU0' (in uint) 0:29 Sequence 0:29 move second child to first child (temp float) 0:29 'r009' (temp float) -0:29 arc tangent (global float) +0:29 arc tangent (temp float) 0:29 'inF0' (in float) 0:30 Sequence 0:30 move second child to first child (temp float) 0:30 'r010' (temp float) -0:30 arc tangent (global float) +0:30 arc tangent (temp float) 0:30 'inF0' (in float) 0:30 'inF1' (in float) 0:31 Sequence 0:31 move second child to first child (temp float) 0:31 'r011' (temp float) -0:31 Ceiling (global float) +0:31 Ceiling (temp float) 0:31 'inF0' (in float) 0:32 Sequence 0:32 move second child to first child (temp float) 0:32 'r012' (temp float) -0:32 clamp (global float) +0:32 clamp (temp float) 0:32 'inF0' (in float) 0:32 'inF1' (in float) 0:32 'inF2' (in float) @@ -2885,132 +2885,132 @@ gl_FragCoord origin is upper left 0:34 Sequence 0:34 move second child to first child (temp float) 0:34 'r014' (temp float) -0:34 cosine (global float) +0:34 cosine (temp float) 0:34 'inF0' (in float) 0:35 Sequence 0:35 move second child to first child (temp float) 0:35 'r015' (temp float) -0:35 hyp. cosine (global float) +0:35 hyp. cosine (temp float) 0:35 'inF0' (in float) 0:36 Sequence 0:36 move second child to first child (temp uint) 0:36 'r016' (temp uint) -0:36 bitCount (global uint) +0:36 bitCount (temp uint) 0:36 Constant: 0:36 7 (const uint) 0:37 Sequence 0:37 move second child to first child (temp float) 0:37 'r017' (temp float) -0:37 dPdx (global float) +0:37 dPdx (temp float) 0:37 'inF0' (in float) 0:38 Sequence 0:38 move second child to first child (temp float) 0:38 'r018' (temp float) -0:38 dPdxCoarse (global float) +0:38 dPdxCoarse (temp float) 0:38 'inF0' (in float) 0:39 Sequence 0:39 move second child to first child (temp float) 0:39 'r019' (temp float) -0:39 dPdxFine (global float) +0:39 dPdxFine (temp float) 0:39 'inF0' (in float) 0:40 Sequence 0:40 move second child to first child (temp float) 0:40 'r020' (temp float) -0:40 dPdy (global float) +0:40 dPdy (temp float) 0:40 'inF0' (in float) 0:41 Sequence 0:41 move second child to first child (temp float) 0:41 'r021' (temp float) -0:41 dPdyCoarse (global float) +0:41 dPdyCoarse (temp float) 0:41 'inF0' (in float) 0:42 Sequence 0:42 move second child to first child (temp float) 0:42 'r022' (temp float) -0:42 dPdyFine (global float) +0:42 dPdyFine (temp float) 0:42 'inF0' (in float) 0:43 Sequence 0:43 move second child to first child (temp float) 0:43 'r023' (temp float) -0:43 degrees (global float) +0:43 degrees (temp float) 0:43 'inF0' (in float) 0:47 Sequence 0:47 move second child to first child (temp float) 0:47 'r027' (temp float) -0:47 exp (global float) +0:47 exp (temp float) 0:47 'inF0' (in float) 0:48 Sequence 0:48 move second child to first child (temp float) 0:48 'r028' (temp float) -0:48 exp2 (global float) +0:48 exp2 (temp float) 0:48 'inF0' (in float) 0:49 Sequence 0:49 move second child to first child (temp uint) 0:49 'r029' (temp uint) 0:49 Convert int to uint (temp uint) -0:49 findMSB (global int) +0:49 findMSB (temp int) 0:49 Constant: 0:49 7 (const int) 0:50 Sequence 0:50 move second child to first child (temp uint) 0:50 'r030' (temp uint) 0:50 Convert int to uint (temp uint) -0:50 findLSB (global int) +0:50 findLSB (temp int) 0:50 Constant: 0:50 7 (const int) 0:51 Sequence 0:51 move second child to first child (temp float) 0:51 'r031' (temp float) -0:51 Floor (global float) +0:51 Floor (temp float) 0:51 'inF0' (in float) 0:53 Sequence 0:53 move second child to first child (temp float) 0:53 'r033' (temp float) -0:53 mod (global float) +0:53 mod (temp float) 0:53 'inF0' (in float) 0:53 'inF1' (in float) 0:54 Sequence 0:54 move second child to first child (temp float) 0:54 'r034' (temp float) -0:54 Fraction (global float) +0:54 Fraction (temp float) 0:54 'inF0' (in float) 0:55 Sequence 0:55 move second child to first child (temp float) 0:55 'r035' (temp float) -0:55 frexp (global float) +0:55 frexp (temp float) 0:55 'inF0' (in float) 0:55 'inF1' (in float) 0:56 Sequence 0:56 move second child to first child (temp float) 0:56 'r036' (temp float) -0:56 fwidth (global float) +0:56 fwidth (temp float) 0:56 'inF0' (in float) 0:57 Sequence 0:57 move second child to first child (temp bool) 0:57 'r037' (temp bool) -0:57 isinf (global bool) +0:57 isinf (temp bool) 0:57 'inF0' (in float) 0:58 Sequence 0:58 move second child to first child (temp bool) 0:58 'r038' (temp bool) -0:58 isnan (global bool) +0:58 isnan (temp bool) 0:58 'inF0' (in float) 0:59 Sequence 0:59 move second child to first child (temp float) 0:59 'r039' (temp float) -0:59 ldexp (global float) +0:59 ldexp (temp float) 0:59 'inF0' (in float) 0:59 'inF1' (in float) 0:60 Sequence 0:60 move second child to first child (temp float) 0:60 'r039a' (temp float) -0:60 mix (global float) +0:60 mix (temp float) 0:60 'inF0' (in float) 0:60 'inF1' (in float) 0:60 'inF2' (in float) 0:61 Sequence 0:61 move second child to first child (temp float) 0:61 'r040' (temp float) -0:61 log (global float) +0:61 log (temp float) 0:61 'inF0' (in float) 0:62 Sequence 0:62 move second child to first child (temp float) @@ -3023,30 +3023,30 @@ gl_FragCoord origin is upper left 0:63 Sequence 0:63 move second child to first child (temp float) 0:63 'r042' (temp float) -0:63 log2 (global float) +0:63 log2 (temp float) 0:63 'inF0' (in float) 0:64 Sequence 0:64 move second child to first child (temp float) 0:64 'r043' (temp float) -0:64 max (global float) +0:64 max (temp float) 0:64 'inF0' (in float) 0:64 'inF1' (in float) 0:65 Sequence 0:65 move second child to first child (temp float) 0:65 'r044' (temp float) -0:65 min (global float) +0:65 min (temp float) 0:65 'inF0' (in float) 0:65 'inF1' (in float) 0:66 Sequence 0:66 move second child to first child (temp float) 0:66 'r045' (temp float) -0:66 pow (global float) +0:66 pow (temp float) 0:66 'inF0' (in float) 0:66 'inF1' (in float) 0:67 Sequence 0:67 move second child to first child (temp float) 0:67 'r046' (temp float) -0:67 radians (global float) +0:67 radians (temp float) 0:67 'inF0' (in float) 0:68 Sequence 0:68 move second child to first child (temp float) @@ -3058,18 +3058,18 @@ gl_FragCoord origin is upper left 0:69 Sequence 0:69 move second child to first child (temp uint) 0:69 'r048' (temp uint) -0:69 bitFieldReverse (global uint) +0:69 bitFieldReverse (temp uint) 0:69 Constant: 0:69 2 (const uint) 0:70 Sequence 0:70 move second child to first child (temp float) 0:70 'r049' (temp float) -0:70 roundEven (global float) +0:70 roundEven (temp float) 0:70 'inF0' (in float) 0:71 Sequence 0:71 move second child to first child (temp float) 0:71 'r050' (temp float) -0:71 inverse sqrt (global float) +0:71 inverse sqrt (temp float) 0:71 'inF0' (in float) 0:72 Sequence 0:72 move second child to first child (temp float) @@ -3083,12 +3083,12 @@ gl_FragCoord origin is upper left 0:73 Sequence 0:73 move second child to first child (temp float) 0:73 'r052' (temp float) -0:73 Sign (global float) +0:73 Sign (temp float) 0:73 'inF0' (in float) 0:74 Sequence 0:74 move second child to first child (temp float) 0:74 'r053' (temp float) -0:74 sine (global float) +0:74 sine (temp float) 0:74 'inF0' (in float) 0:75 Sequence 0:75 move second child to first child (temp float) @@ -3102,40 +3102,40 @@ gl_FragCoord origin is upper left 0:76 Sequence 0:76 move second child to first child (temp float) 0:76 'r055' (temp float) -0:76 hyp. sine (global float) +0:76 hyp. sine (temp float) 0:76 'inF0' (in float) 0:77 Sequence 0:77 move second child to first child (temp float) 0:77 'r056' (temp float) -0:77 smoothstep (global float) +0:77 smoothstep (temp float) 0:77 'inF0' (in float) 0:77 'inF1' (in float) 0:77 'inF2' (in float) 0:78 Sequence 0:78 move second child to first child (temp float) 0:78 'r057' (temp float) -0:78 sqrt (global float) +0:78 sqrt (temp float) 0:78 'inF0' (in float) 0:79 Sequence 0:79 move second child to first child (temp float) 0:79 'r058' (temp float) -0:79 step (global float) +0:79 step (temp float) 0:79 'inF0' (in float) 0:79 'inF1' (in float) 0:80 Sequence 0:80 move second child to first child (temp float) 0:80 'r059' (temp float) -0:80 tangent (global float) +0:80 tangent (temp float) 0:80 'inF0' (in float) 0:81 Sequence 0:81 move second child to first child (temp float) 0:81 'r060' (temp float) -0:81 hyp. tangent (global float) +0:81 hyp. tangent (temp float) 0:81 'inF0' (in float) 0:83 Sequence 0:83 move second child to first child (temp float) 0:83 'r061' (temp float) -0:83 trunc (global float) +0:83 trunc (temp float) 0:83 'inF0' (in float) 0:85 Branch: Return with expression 0:85 Constant: @@ -3160,63 +3160,63 @@ gl_FragCoord origin is upper left 0:98 Sequence 0:98 move second child to first child (temp bool) 0:98 'r000' (temp bool) -0:98 all (global bool) +0:98 all (temp bool) 0:98 'inF0' (in 2-component vector of float) 0:99 Sequence 0:99 move second child to first child (temp 2-component vector of float) 0:99 'r001' (temp 2-component vector of float) -0:99 Absolute value (global 2-component vector of float) +0:99 Absolute value (temp 2-component vector of float) 0:99 'inF0' (in 2-component vector of float) 0:100 Sequence 0:100 move second child to first child (temp 2-component vector of float) 0:100 'r002' (temp 2-component vector of float) -0:100 arc cosine (global 2-component vector of float) +0:100 arc cosine (temp 2-component vector of float) 0:100 'inF0' (in 2-component vector of float) 0:101 Sequence 0:101 move second child to first child (temp bool) 0:101 'r003' (temp bool) -0:101 any (global bool) +0:101 any (temp bool) 0:101 'inF0' (in 2-component vector of float) 0:102 Sequence 0:102 move second child to first child (temp 2-component vector of float) 0:102 'r004' (temp 2-component vector of float) -0:102 arc sine (global 2-component vector of float) +0:102 arc sine (temp 2-component vector of float) 0:102 'inF0' (in 2-component vector of float) 0:103 Sequence 0:103 move second child to first child (temp 2-component vector of int) 0:103 'r005' (temp 2-component vector of int) -0:103 floatBitsToInt (global 2-component vector of int) +0:103 floatBitsToInt (temp 2-component vector of int) 0:103 'inF0' (in 2-component vector of float) 0:104 Sequence 0:104 move second child to first child (temp 2-component vector of uint) 0:104 'r006' (temp 2-component vector of uint) -0:104 floatBitsToUint (global 2-component vector of uint) +0:104 floatBitsToUint (temp 2-component vector of uint) 0:104 'inF0' (in 2-component vector of float) 0:105 Sequence 0:105 move second child to first child (temp 2-component vector of float) 0:105 'r007' (temp 2-component vector of float) -0:105 intBitsToFloat (global 2-component vector of float) +0:105 intBitsToFloat (temp 2-component vector of float) 0:105 'inU0' (in 2-component vector of uint) 0:107 Sequence 0:107 move second child to first child (temp 2-component vector of float) 0:107 'r009' (temp 2-component vector of float) -0:107 arc tangent (global 2-component vector of float) +0:107 arc tangent (temp 2-component vector of float) 0:107 'inF0' (in 2-component vector of float) 0:108 Sequence 0:108 move second child to first child (temp 2-component vector of float) 0:108 'r010' (temp 2-component vector of float) -0:108 arc tangent (global 2-component vector of float) +0:108 arc tangent (temp 2-component vector of float) 0:108 'inF0' (in 2-component vector of float) 0:108 'inF1' (in 2-component vector of float) 0:109 Sequence 0:109 move second child to first child (temp 2-component vector of float) 0:109 'r011' (temp 2-component vector of float) -0:109 Ceiling (global 2-component vector of float) +0:109 Ceiling (temp 2-component vector of float) 0:109 'inF0' (in 2-component vector of float) 0:110 Sequence 0:110 move second child to first child (temp 2-component vector of float) 0:110 'r012' (temp 2-component vector of float) -0:110 clamp (global 2-component vector of float) +0:110 clamp (temp 2-component vector of float) 0:110 'inF0' (in 2-component vector of float) 0:110 'inF1' (in 2-component vector of float) 0:110 'inF2' (in 2-component vector of float) @@ -3233,157 +3233,157 @@ gl_FragCoord origin is upper left 0:112 Sequence 0:112 move second child to first child (temp 2-component vector of float) 0:112 'r013' (temp 2-component vector of float) -0:112 cosine (global 2-component vector of float) +0:112 cosine (temp 2-component vector of float) 0:112 'inF0' (in 2-component vector of float) 0:113 Sequence 0:113 move second child to first child (temp 2-component vector of float) 0:113 'r015' (temp 2-component vector of float) -0:113 hyp. cosine (global 2-component vector of float) +0:113 hyp. cosine (temp 2-component vector of float) 0:113 'inF0' (in 2-component vector of float) 0:114 Sequence 0:114 move second child to first child (temp 2-component vector of uint) 0:114 'r016' (temp 2-component vector of uint) -0:? bitCount (global 2-component vector of uint) +0:? bitCount (temp 2-component vector of uint) 0:? Constant: 0:? 7 (const uint) 0:? 3 (const uint) 0:115 Sequence 0:115 move second child to first child (temp 2-component vector of float) 0:115 'r017' (temp 2-component vector of float) -0:115 dPdx (global 2-component vector of float) +0:115 dPdx (temp 2-component vector of float) 0:115 'inF0' (in 2-component vector of float) 0:116 Sequence 0:116 move second child to first child (temp 2-component vector of float) 0:116 'r018' (temp 2-component vector of float) -0:116 dPdxCoarse (global 2-component vector of float) +0:116 dPdxCoarse (temp 2-component vector of float) 0:116 'inF0' (in 2-component vector of float) 0:117 Sequence 0:117 move second child to first child (temp 2-component vector of float) 0:117 'r019' (temp 2-component vector of float) -0:117 dPdxFine (global 2-component vector of float) +0:117 dPdxFine (temp 2-component vector of float) 0:117 'inF0' (in 2-component vector of float) 0:118 Sequence 0:118 move second child to first child (temp 2-component vector of float) 0:118 'r020' (temp 2-component vector of float) -0:118 dPdy (global 2-component vector of float) +0:118 dPdy (temp 2-component vector of float) 0:118 'inF0' (in 2-component vector of float) 0:119 Sequence 0:119 move second child to first child (temp 2-component vector of float) 0:119 'r021' (temp 2-component vector of float) -0:119 dPdyCoarse (global 2-component vector of float) +0:119 dPdyCoarse (temp 2-component vector of float) 0:119 'inF0' (in 2-component vector of float) 0:120 Sequence 0:120 move second child to first child (temp 2-component vector of float) 0:120 'r022' (temp 2-component vector of float) -0:120 dPdyFine (global 2-component vector of float) +0:120 dPdyFine (temp 2-component vector of float) 0:120 'inF0' (in 2-component vector of float) 0:121 Sequence 0:121 move second child to first child (temp 2-component vector of float) 0:121 'r023' (temp 2-component vector of float) -0:121 degrees (global 2-component vector of float) +0:121 degrees (temp 2-component vector of float) 0:121 'inF0' (in 2-component vector of float) 0:125 Sequence 0:125 move second child to first child (temp float) 0:125 'r026' (temp float) -0:125 distance (global float) +0:125 distance (temp float) 0:125 'inF0' (in 2-component vector of float) 0:125 'inF1' (in 2-component vector of float) 0:126 Sequence 0:126 move second child to first child (temp float) 0:126 'r027' (temp float) -0:126 dot-product (global float) +0:126 dot-product (temp float) 0:126 'inF0' (in 2-component vector of float) 0:126 'inF1' (in 2-component vector of float) 0:130 Sequence 0:130 move second child to first child (temp 2-component vector of float) 0:130 'r028' (temp 2-component vector of float) -0:130 exp (global 2-component vector of float) +0:130 exp (temp 2-component vector of float) 0:130 'inF0' (in 2-component vector of float) 0:131 Sequence 0:131 move second child to first child (temp 2-component vector of float) 0:131 'r029' (temp 2-component vector of float) -0:131 exp2 (global 2-component vector of float) +0:131 exp2 (temp 2-component vector of float) 0:131 'inF0' (in 2-component vector of float) 0:132 Sequence 0:132 move second child to first child (temp 2-component vector of float) 0:132 'r030' (temp 2-component vector of float) -0:132 face-forward (global 2-component vector of float) +0:132 face-forward (temp 2-component vector of float) 0:132 'inF0' (in 2-component vector of float) 0:132 'inF1' (in 2-component vector of float) 0:132 'inF2' (in 2-component vector of float) 0:133 Sequence 0:133 move second child to first child (temp 2-component vector of uint) 0:133 'r031' (temp 2-component vector of uint) -0:? findMSB (global 2-component vector of uint) +0:? findMSB (temp 2-component vector of uint) 0:? Constant: 0:? 7 (const uint) 0:? 8 (const uint) 0:134 Sequence 0:134 move second child to first child (temp 2-component vector of uint) 0:134 'r032' (temp 2-component vector of uint) -0:? findLSB (global 2-component vector of uint) +0:? findLSB (temp 2-component vector of uint) 0:? Constant: 0:? 7 (const uint) 0:? 8 (const uint) 0:135 Sequence 0:135 move second child to first child (temp 2-component vector of float) 0:135 'r033' (temp 2-component vector of float) -0:135 Floor (global 2-component vector of float) +0:135 Floor (temp 2-component vector of float) 0:135 'inF0' (in 2-component vector of float) 0:137 Sequence 0:137 move second child to first child (temp 2-component vector of float) 0:137 'r035' (temp 2-component vector of float) -0:137 mod (global 2-component vector of float) +0:137 mod (temp 2-component vector of float) 0:137 'inF0' (in 2-component vector of float) 0:137 'inF1' (in 2-component vector of float) 0:138 Sequence 0:138 move second child to first child (temp 2-component vector of float) 0:138 'r036' (temp 2-component vector of float) -0:138 Fraction (global 2-component vector of float) +0:138 Fraction (temp 2-component vector of float) 0:138 'inF0' (in 2-component vector of float) 0:139 Sequence 0:139 move second child to first child (temp 2-component vector of float) 0:139 'r037' (temp 2-component vector of float) -0:139 frexp (global 2-component vector of float) +0:139 frexp (temp 2-component vector of float) 0:139 'inF0' (in 2-component vector of float) 0:139 'inF1' (in 2-component vector of float) 0:140 Sequence 0:140 move second child to first child (temp 2-component vector of float) 0:140 'r038' (temp 2-component vector of float) -0:140 fwidth (global 2-component vector of float) +0:140 fwidth (temp 2-component vector of float) 0:140 'inF0' (in 2-component vector of float) 0:141 Sequence 0:141 move second child to first child (temp 2-component vector of bool) 0:141 'r039' (temp 2-component vector of bool) -0:141 isinf (global 2-component vector of bool) +0:141 isinf (temp 2-component vector of bool) 0:141 'inF0' (in 2-component vector of float) 0:142 Sequence 0:142 move second child to first child (temp 2-component vector of bool) 0:142 'r040' (temp 2-component vector of bool) -0:142 isnan (global 2-component vector of bool) +0:142 isnan (temp 2-component vector of bool) 0:142 'inF0' (in 2-component vector of float) 0:143 Sequence 0:143 move second child to first child (temp 2-component vector of float) 0:143 'r041' (temp 2-component vector of float) -0:143 ldexp (global 2-component vector of float) +0:143 ldexp (temp 2-component vector of float) 0:143 'inF0' (in 2-component vector of float) 0:143 'inF1' (in 2-component vector of float) 0:144 Sequence 0:144 move second child to first child (temp 2-component vector of float) 0:144 'r039a' (temp 2-component vector of float) -0:144 mix (global 2-component vector of float) +0:144 mix (temp 2-component vector of float) 0:144 'inF0' (in 2-component vector of float) 0:144 'inF1' (in 2-component vector of float) 0:144 'inF2' (in 2-component vector of float) 0:145 Sequence 0:145 move second child to first child (temp float) 0:145 'r042' (temp float) -0:145 length (global float) +0:145 length (temp float) 0:145 'inF0' (in 2-component vector of float) 0:146 Sequence 0:146 move second child to first child (temp 2-component vector of float) 0:146 'r043' (temp 2-component vector of float) -0:146 log (global 2-component vector of float) +0:146 log (temp 2-component vector of float) 0:146 'inF0' (in 2-component vector of float) 0:147 Sequence 0:147 move second child to first child (temp 2-component vector of float) @@ -3396,35 +3396,35 @@ gl_FragCoord origin is upper left 0:148 Sequence 0:148 move second child to first child (temp 2-component vector of float) 0:148 'r045' (temp 2-component vector of float) -0:148 log2 (global 2-component vector of float) +0:148 log2 (temp 2-component vector of float) 0:148 'inF0' (in 2-component vector of float) 0:149 Sequence 0:149 move second child to first child (temp 2-component vector of float) 0:149 'r046' (temp 2-component vector of float) -0:149 max (global 2-component vector of float) +0:149 max (temp 2-component vector of float) 0:149 'inF0' (in 2-component vector of float) 0:149 'inF1' (in 2-component vector of float) 0:150 Sequence 0:150 move second child to first child (temp 2-component vector of float) 0:150 'r047' (temp 2-component vector of float) -0:150 min (global 2-component vector of float) +0:150 min (temp 2-component vector of float) 0:150 'inF0' (in 2-component vector of float) 0:150 'inF1' (in 2-component vector of float) 0:151 Sequence 0:151 move second child to first child (temp 2-component vector of float) 0:151 'r048' (temp 2-component vector of float) -0:151 normalize (global 2-component vector of float) +0:151 normalize (temp 2-component vector of float) 0:151 'inF0' (in 2-component vector of float) 0:152 Sequence 0:152 move second child to first child (temp 2-component vector of float) 0:152 'r049' (temp 2-component vector of float) -0:152 pow (global 2-component vector of float) +0:152 pow (temp 2-component vector of float) 0:152 'inF0' (in 2-component vector of float) 0:152 'inF1' (in 2-component vector of float) 0:153 Sequence 0:153 move second child to first child (temp 2-component vector of float) 0:153 'r050' (temp 2-component vector of float) -0:153 radians (global 2-component vector of float) +0:153 radians (temp 2-component vector of float) 0:153 'inF0' (in 2-component vector of float) 0:154 Sequence 0:154 move second child to first child (temp 2-component vector of float) @@ -3436,13 +3436,13 @@ gl_FragCoord origin is upper left 0:155 Sequence 0:155 move second child to first child (temp 2-component vector of float) 0:155 'r052' (temp 2-component vector of float) -0:155 reflect (global 2-component vector of float) +0:155 reflect (temp 2-component vector of float) 0:155 'inF0' (in 2-component vector of float) 0:155 'inF1' (in 2-component vector of float) 0:156 Sequence 0:156 move second child to first child (temp 2-component vector of float) 0:156 'r053' (temp 2-component vector of float) -0:156 refract (global 2-component vector of float) +0:156 refract (temp 2-component vector of float) 0:156 'inF0' (in 2-component vector of float) 0:156 'inF1' (in 2-component vector of float) 0:156 Constant: @@ -3450,19 +3450,19 @@ gl_FragCoord origin is upper left 0:157 Sequence 0:157 move second child to first child (temp 2-component vector of uint) 0:157 'r054' (temp 2-component vector of uint) -0:? bitFieldReverse (global 2-component vector of uint) +0:? bitFieldReverse (temp 2-component vector of uint) 0:? Constant: 0:? 1 (const uint) 0:? 2 (const uint) 0:158 Sequence 0:158 move second child to first child (temp 2-component vector of float) 0:158 'r055' (temp 2-component vector of float) -0:158 roundEven (global 2-component vector of float) +0:158 roundEven (temp 2-component vector of float) 0:158 'inF0' (in 2-component vector of float) 0:159 Sequence 0:159 move second child to first child (temp 2-component vector of float) 0:159 'r056' (temp 2-component vector of float) -0:159 inverse sqrt (global 2-component vector of float) +0:159 inverse sqrt (temp 2-component vector of float) 0:159 'inF0' (in 2-component vector of float) 0:160 Sequence 0:160 move second child to first child (temp 2-component vector of float) @@ -3476,12 +3476,12 @@ gl_FragCoord origin is upper left 0:161 Sequence 0:161 move second child to first child (temp 2-component vector of float) 0:161 'r058' (temp 2-component vector of float) -0:161 Sign (global 2-component vector of float) +0:161 Sign (temp 2-component vector of float) 0:161 'inF0' (in 2-component vector of float) 0:162 Sequence 0:162 move second child to first child (temp 2-component vector of float) 0:162 'r059' (temp 2-component vector of float) -0:162 sine (global 2-component vector of float) +0:162 sine (temp 2-component vector of float) 0:162 'inF0' (in 2-component vector of float) 0:163 Sequence 0:163 move second child to first child (temp 2-component vector of float) @@ -3495,40 +3495,40 @@ gl_FragCoord origin is upper left 0:164 Sequence 0:164 move second child to first child (temp 2-component vector of float) 0:164 'r060' (temp 2-component vector of float) -0:164 hyp. sine (global 2-component vector of float) +0:164 hyp. sine (temp 2-component vector of float) 0:164 'inF0' (in 2-component vector of float) 0:165 Sequence 0:165 move second child to first child (temp 2-component vector of float) 0:165 'r061' (temp 2-component vector of float) -0:165 smoothstep (global 2-component vector of float) +0:165 smoothstep (temp 2-component vector of float) 0:165 'inF0' (in 2-component vector of float) 0:165 'inF1' (in 2-component vector of float) 0:165 'inF2' (in 2-component vector of float) 0:166 Sequence 0:166 move second child to first child (temp 2-component vector of float) 0:166 'r062' (temp 2-component vector of float) -0:166 sqrt (global 2-component vector of float) +0:166 sqrt (temp 2-component vector of float) 0:166 'inF0' (in 2-component vector of float) 0:167 Sequence 0:167 move second child to first child (temp 2-component vector of float) 0:167 'r063' (temp 2-component vector of float) -0:167 step (global 2-component vector of float) +0:167 step (temp 2-component vector of float) 0:167 'inF0' (in 2-component vector of float) 0:167 'inF1' (in 2-component vector of float) 0:168 Sequence 0:168 move second child to first child (temp 2-component vector of float) 0:168 'r064' (temp 2-component vector of float) -0:168 tangent (global 2-component vector of float) +0:168 tangent (temp 2-component vector of float) 0:168 'inF0' (in 2-component vector of float) 0:169 Sequence 0:169 move second child to first child (temp 2-component vector of float) 0:169 'r065' (temp 2-component vector of float) -0:169 hyp. tangent (global 2-component vector of float) +0:169 hyp. tangent (temp 2-component vector of float) 0:169 'inF0' (in 2-component vector of float) 0:171 Sequence 0:171 move second child to first child (temp 2-component vector of float) 0:171 'r066' (temp 2-component vector of float) -0:171 trunc (global 2-component vector of float) +0:171 trunc (temp 2-component vector of float) 0:171 'inF0' (in 2-component vector of float) 0:174 Branch: Return with expression 0:? Constant: @@ -3545,63 +3545,63 @@ gl_FragCoord origin is upper left 0:181 Sequence 0:181 move second child to first child (temp bool) 0:181 'r000' (temp bool) -0:181 all (global bool) +0:181 all (temp bool) 0:181 'inF0' (in 3-component vector of float) 0:182 Sequence 0:182 move second child to first child (temp 3-component vector of float) 0:182 'r001' (temp 3-component vector of float) -0:182 Absolute value (global 3-component vector of float) +0:182 Absolute value (temp 3-component vector of float) 0:182 'inF0' (in 3-component vector of float) 0:183 Sequence 0:183 move second child to first child (temp 3-component vector of float) 0:183 'r002' (temp 3-component vector of float) -0:183 arc cosine (global 3-component vector of float) +0:183 arc cosine (temp 3-component vector of float) 0:183 'inF0' (in 3-component vector of float) 0:184 Sequence 0:184 move second child to first child (temp bool) 0:184 'r003' (temp bool) -0:184 any (global bool) +0:184 any (temp bool) 0:184 'inF0' (in 3-component vector of float) 0:185 Sequence 0:185 move second child to first child (temp 3-component vector of float) 0:185 'r004' (temp 3-component vector of float) -0:185 arc sine (global 3-component vector of float) +0:185 arc sine (temp 3-component vector of float) 0:185 'inF0' (in 3-component vector of float) 0:186 Sequence 0:186 move second child to first child (temp 3-component vector of int) 0:186 'r005' (temp 3-component vector of int) -0:186 floatBitsToInt (global 3-component vector of int) +0:186 floatBitsToInt (temp 3-component vector of int) 0:186 'inF0' (in 3-component vector of float) 0:187 Sequence 0:187 move second child to first child (temp 3-component vector of uint) 0:187 'r006' (temp 3-component vector of uint) -0:187 floatBitsToUint (global 3-component vector of uint) +0:187 floatBitsToUint (temp 3-component vector of uint) 0:187 'inF0' (in 3-component vector of float) 0:188 Sequence 0:188 move second child to first child (temp 3-component vector of float) 0:188 'r007' (temp 3-component vector of float) -0:188 intBitsToFloat (global 3-component vector of float) +0:188 intBitsToFloat (temp 3-component vector of float) 0:188 'inU0' (in 3-component vector of uint) 0:190 Sequence 0:190 move second child to first child (temp 3-component vector of float) 0:190 'r009' (temp 3-component vector of float) -0:190 arc tangent (global 3-component vector of float) +0:190 arc tangent (temp 3-component vector of float) 0:190 'inF0' (in 3-component vector of float) 0:191 Sequence 0:191 move second child to first child (temp 3-component vector of float) 0:191 'r010' (temp 3-component vector of float) -0:191 arc tangent (global 3-component vector of float) +0:191 arc tangent (temp 3-component vector of float) 0:191 'inF0' (in 3-component vector of float) 0:191 'inF1' (in 3-component vector of float) 0:192 Sequence 0:192 move second child to first child (temp 3-component vector of float) 0:192 'r011' (temp 3-component vector of float) -0:192 Ceiling (global 3-component vector of float) +0:192 Ceiling (temp 3-component vector of float) 0:192 'inF0' (in 3-component vector of float) 0:193 Sequence 0:193 move second child to first child (temp 3-component vector of float) 0:193 'r012' (temp 3-component vector of float) -0:193 clamp (global 3-component vector of float) +0:193 clamp (temp 3-component vector of float) 0:193 'inF0' (in 3-component vector of float) 0:193 'inF1' (in 3-component vector of float) 0:193 'inF2' (in 3-component vector of float) @@ -3619,17 +3619,17 @@ gl_FragCoord origin is upper left 0:195 Sequence 0:195 move second child to first child (temp 3-component vector of float) 0:195 'r013' (temp 3-component vector of float) -0:195 cosine (global 3-component vector of float) +0:195 cosine (temp 3-component vector of float) 0:195 'inF0' (in 3-component vector of float) 0:196 Sequence 0:196 move second child to first child (temp 3-component vector of float) 0:196 'r014' (temp 3-component vector of float) -0:196 hyp. cosine (global 3-component vector of float) +0:196 hyp. cosine (temp 3-component vector of float) 0:196 'inF0' (in 3-component vector of float) 0:197 Sequence 0:197 move second child to first child (temp 3-component vector of uint) 0:197 'r015' (temp 3-component vector of uint) -0:? bitCount (global 3-component vector of uint) +0:? bitCount (temp 3-component vector of uint) 0:? Constant: 0:? 7 (const uint) 0:? 3 (const uint) @@ -3637,77 +3637,77 @@ gl_FragCoord origin is upper left 0:198 Sequence 0:198 move second child to first child (temp 3-component vector of float) 0:198 'r016' (temp 3-component vector of float) -0:198 cross-product (global 3-component vector of float) +0:198 cross-product (temp 3-component vector of float) 0:198 'inF0' (in 3-component vector of float) 0:198 'inF1' (in 3-component vector of float) 0:199 Sequence 0:199 move second child to first child (temp 3-component vector of float) 0:199 'r017' (temp 3-component vector of float) -0:199 dPdx (global 3-component vector of float) +0:199 dPdx (temp 3-component vector of float) 0:199 'inF0' (in 3-component vector of float) 0:200 Sequence 0:200 move second child to first child (temp 3-component vector of float) 0:200 'r018' (temp 3-component vector of float) -0:200 dPdxCoarse (global 3-component vector of float) +0:200 dPdxCoarse (temp 3-component vector of float) 0:200 'inF0' (in 3-component vector of float) 0:201 Sequence 0:201 move second child to first child (temp 3-component vector of float) 0:201 'r019' (temp 3-component vector of float) -0:201 dPdxFine (global 3-component vector of float) +0:201 dPdxFine (temp 3-component vector of float) 0:201 'inF0' (in 3-component vector of float) 0:202 Sequence 0:202 move second child to first child (temp 3-component vector of float) 0:202 'r020' (temp 3-component vector of float) -0:202 dPdy (global 3-component vector of float) +0:202 dPdy (temp 3-component vector of float) 0:202 'inF0' (in 3-component vector of float) 0:203 Sequence 0:203 move second child to first child (temp 3-component vector of float) 0:203 'r021' (temp 3-component vector of float) -0:203 dPdyCoarse (global 3-component vector of float) +0:203 dPdyCoarse (temp 3-component vector of float) 0:203 'inF0' (in 3-component vector of float) 0:204 Sequence 0:204 move second child to first child (temp 3-component vector of float) 0:204 'r022' (temp 3-component vector of float) -0:204 dPdyFine (global 3-component vector of float) +0:204 dPdyFine (temp 3-component vector of float) 0:204 'inF0' (in 3-component vector of float) 0:205 Sequence 0:205 move second child to first child (temp 3-component vector of float) 0:205 'r023' (temp 3-component vector of float) -0:205 degrees (global 3-component vector of float) +0:205 degrees (temp 3-component vector of float) 0:205 'inF0' (in 3-component vector of float) 0:206 Sequence 0:206 move second child to first child (temp float) 0:206 'r024' (temp float) -0:206 distance (global float) +0:206 distance (temp float) 0:206 'inF0' (in 3-component vector of float) 0:206 'inF1' (in 3-component vector of float) 0:207 Sequence 0:207 move second child to first child (temp float) 0:207 'r025' (temp float) -0:207 dot-product (global float) +0:207 dot-product (temp float) 0:207 'inF0' (in 3-component vector of float) 0:207 'inF1' (in 3-component vector of float) 0:211 Sequence 0:211 move second child to first child (temp 3-component vector of float) 0:211 'r029' (temp 3-component vector of float) -0:211 exp (global 3-component vector of float) +0:211 exp (temp 3-component vector of float) 0:211 'inF0' (in 3-component vector of float) 0:212 Sequence 0:212 move second child to first child (temp 3-component vector of float) 0:212 'r030' (temp 3-component vector of float) -0:212 exp2 (global 3-component vector of float) +0:212 exp2 (temp 3-component vector of float) 0:212 'inF0' (in 3-component vector of float) 0:213 Sequence 0:213 move second child to first child (temp 3-component vector of float) 0:213 'r031' (temp 3-component vector of float) -0:213 face-forward (global 3-component vector of float) +0:213 face-forward (temp 3-component vector of float) 0:213 'inF0' (in 3-component vector of float) 0:213 'inF1' (in 3-component vector of float) 0:213 'inF2' (in 3-component vector of float) 0:214 Sequence 0:214 move second child to first child (temp 3-component vector of uint) 0:214 'r032' (temp 3-component vector of uint) -0:? findMSB (global 3-component vector of uint) +0:? findMSB (temp 3-component vector of uint) 0:? Constant: 0:? 2 (const uint) 0:? 3 (const uint) @@ -3715,7 +3715,7 @@ gl_FragCoord origin is upper left 0:215 Sequence 0:215 move second child to first child (temp 3-component vector of uint) 0:215 'r033' (temp 3-component vector of uint) -0:? findLSB (global 3-component vector of uint) +0:? findLSB (temp 3-component vector of uint) 0:? Constant: 0:? 2 (const uint) 0:? 3 (const uint) @@ -3723,57 +3723,57 @@ gl_FragCoord origin is upper left 0:216 Sequence 0:216 move second child to first child (temp 3-component vector of float) 0:216 'r034' (temp 3-component vector of float) -0:216 Floor (global 3-component vector of float) +0:216 Floor (temp 3-component vector of float) 0:216 'inF0' (in 3-component vector of float) 0:218 Sequence 0:218 move second child to first child (temp 3-component vector of float) 0:218 'r036' (temp 3-component vector of float) -0:218 mod (global 3-component vector of float) +0:218 mod (temp 3-component vector of float) 0:218 'inF0' (in 3-component vector of float) 0:218 'inF1' (in 3-component vector of float) 0:219 Sequence 0:219 move second child to first child (temp 3-component vector of float) 0:219 'r037' (temp 3-component vector of float) -0:219 Fraction (global 3-component vector of float) +0:219 Fraction (temp 3-component vector of float) 0:219 'inF0' (in 3-component vector of float) 0:220 Sequence 0:220 move second child to first child (temp 3-component vector of float) 0:220 'r038' (temp 3-component vector of float) -0:220 frexp (global 3-component vector of float) +0:220 frexp (temp 3-component vector of float) 0:220 'inF0' (in 3-component vector of float) 0:220 'inF1' (in 3-component vector of float) 0:221 Sequence 0:221 move second child to first child (temp 3-component vector of float) 0:221 'r039' (temp 3-component vector of float) -0:221 fwidth (global 3-component vector of float) +0:221 fwidth (temp 3-component vector of float) 0:221 'inF0' (in 3-component vector of float) 0:222 Sequence 0:222 move second child to first child (temp 3-component vector of bool) 0:222 'r040' (temp 3-component vector of bool) -0:222 isinf (global 3-component vector of bool) +0:222 isinf (temp 3-component vector of bool) 0:222 'inF0' (in 3-component vector of float) 0:223 Sequence 0:223 move second child to first child (temp 3-component vector of bool) 0:223 'r041' (temp 3-component vector of bool) -0:223 isnan (global 3-component vector of bool) +0:223 isnan (temp 3-component vector of bool) 0:223 'inF0' (in 3-component vector of float) 0:224 Sequence 0:224 move second child to first child (temp 3-component vector of float) 0:224 'r042' (temp 3-component vector of float) -0:224 ldexp (global 3-component vector of float) +0:224 ldexp (temp 3-component vector of float) 0:224 'inF0' (in 3-component vector of float) 0:224 'inF1' (in 3-component vector of float) 0:225 Sequence 0:225 move second child to first child (temp 3-component vector of float) 0:225 'r039a' (temp 3-component vector of float) -0:225 mix (global 3-component vector of float) +0:225 mix (temp 3-component vector of float) 0:225 'inF0' (in 3-component vector of float) 0:225 'inF1' (in 3-component vector of float) 0:225 'inF2' (in 3-component vector of float) 0:226 Sequence 0:226 move second child to first child (temp 3-component vector of float) 0:226 'r039b' (temp 3-component vector of float) -0:226 mix (global 3-component vector of float) +0:226 mix (temp 3-component vector of float) 0:226 'inF0' (in 3-component vector of float) 0:226 'inF1' (in 3-component vector of float) 0:226 Constant: @@ -3781,12 +3781,12 @@ gl_FragCoord origin is upper left 0:227 Sequence 0:227 move second child to first child (temp float) 0:227 'r043' (temp float) -0:227 length (global float) +0:227 length (temp float) 0:227 'inF0' (in 3-component vector of float) 0:228 Sequence 0:228 move second child to first child (temp 3-component vector of float) 0:228 'r044' (temp 3-component vector of float) -0:228 log (global 3-component vector of float) +0:228 log (temp 3-component vector of float) 0:228 'inF0' (in 3-component vector of float) 0:229 Sequence 0:229 move second child to first child (temp 3-component vector of float) @@ -3799,35 +3799,35 @@ gl_FragCoord origin is upper left 0:230 Sequence 0:230 move second child to first child (temp 3-component vector of float) 0:230 'r046' (temp 3-component vector of float) -0:230 log2 (global 3-component vector of float) +0:230 log2 (temp 3-component vector of float) 0:230 'inF0' (in 3-component vector of float) 0:231 Sequence 0:231 move second child to first child (temp 3-component vector of float) 0:231 'r047' (temp 3-component vector of float) -0:231 max (global 3-component vector of float) +0:231 max (temp 3-component vector of float) 0:231 'inF0' (in 3-component vector of float) 0:231 'inF1' (in 3-component vector of float) 0:232 Sequence 0:232 move second child to first child (temp 3-component vector of float) 0:232 'r048' (temp 3-component vector of float) -0:232 min (global 3-component vector of float) +0:232 min (temp 3-component vector of float) 0:232 'inF0' (in 3-component vector of float) 0:232 'inF1' (in 3-component vector of float) 0:233 Sequence 0:233 move second child to first child (temp 3-component vector of float) 0:233 'r049' (temp 3-component vector of float) -0:233 normalize (global 3-component vector of float) +0:233 normalize (temp 3-component vector of float) 0:233 'inF0' (in 3-component vector of float) 0:234 Sequence 0:234 move second child to first child (temp 3-component vector of float) 0:234 'r050' (temp 3-component vector of float) -0:234 pow (global 3-component vector of float) +0:234 pow (temp 3-component vector of float) 0:234 'inF0' (in 3-component vector of float) 0:234 'inF1' (in 3-component vector of float) 0:235 Sequence 0:235 move second child to first child (temp 3-component vector of float) 0:235 'r051' (temp 3-component vector of float) -0:235 radians (global 3-component vector of float) +0:235 radians (temp 3-component vector of float) 0:235 'inF0' (in 3-component vector of float) 0:236 Sequence 0:236 move second child to first child (temp 3-component vector of float) @@ -3839,13 +3839,13 @@ gl_FragCoord origin is upper left 0:237 Sequence 0:237 move second child to first child (temp 3-component vector of float) 0:237 'r053' (temp 3-component vector of float) -0:237 reflect (global 3-component vector of float) +0:237 reflect (temp 3-component vector of float) 0:237 'inF0' (in 3-component vector of float) 0:237 'inF1' (in 3-component vector of float) 0:238 Sequence 0:238 move second child to first child (temp 3-component vector of float) 0:238 'r054' (temp 3-component vector of float) -0:238 refract (global 3-component vector of float) +0:238 refract (temp 3-component vector of float) 0:238 'inF0' (in 3-component vector of float) 0:238 'inF1' (in 3-component vector of float) 0:238 Constant: @@ -3853,7 +3853,7 @@ gl_FragCoord origin is upper left 0:239 Sequence 0:239 move second child to first child (temp 3-component vector of uint) 0:239 'r055' (temp 3-component vector of uint) -0:? bitFieldReverse (global 3-component vector of uint) +0:? bitFieldReverse (temp 3-component vector of uint) 0:? Constant: 0:? 1 (const uint) 0:? 2 (const uint) @@ -3861,12 +3861,12 @@ gl_FragCoord origin is upper left 0:240 Sequence 0:240 move second child to first child (temp 3-component vector of float) 0:240 'r056' (temp 3-component vector of float) -0:240 roundEven (global 3-component vector of float) +0:240 roundEven (temp 3-component vector of float) 0:240 'inF0' (in 3-component vector of float) 0:241 Sequence 0:241 move second child to first child (temp 3-component vector of float) 0:241 'r057' (temp 3-component vector of float) -0:241 inverse sqrt (global 3-component vector of float) +0:241 inverse sqrt (temp 3-component vector of float) 0:241 'inF0' (in 3-component vector of float) 0:242 Sequence 0:242 move second child to first child (temp 3-component vector of float) @@ -3880,12 +3880,12 @@ gl_FragCoord origin is upper left 0:243 Sequence 0:243 move second child to first child (temp 3-component vector of float) 0:243 'r059' (temp 3-component vector of float) -0:243 Sign (global 3-component vector of float) +0:243 Sign (temp 3-component vector of float) 0:243 'inF0' (in 3-component vector of float) 0:244 Sequence 0:244 move second child to first child (temp 3-component vector of float) 0:244 'r060' (temp 3-component vector of float) -0:244 sine (global 3-component vector of float) +0:244 sine (temp 3-component vector of float) 0:244 'inF0' (in 3-component vector of float) 0:245 Sequence 0:245 move second child to first child (temp 3-component vector of float) @@ -3899,40 +3899,40 @@ gl_FragCoord origin is upper left 0:246 Sequence 0:246 move second child to first child (temp 3-component vector of float) 0:246 'r061' (temp 3-component vector of float) -0:246 hyp. sine (global 3-component vector of float) +0:246 hyp. sine (temp 3-component vector of float) 0:246 'inF0' (in 3-component vector of float) 0:247 Sequence 0:247 move second child to first child (temp 3-component vector of float) 0:247 'r062' (temp 3-component vector of float) -0:247 smoothstep (global 3-component vector of float) +0:247 smoothstep (temp 3-component vector of float) 0:247 'inF0' (in 3-component vector of float) 0:247 'inF1' (in 3-component vector of float) 0:247 'inF2' (in 3-component vector of float) 0:248 Sequence 0:248 move second child to first child (temp 3-component vector of float) 0:248 'r063' (temp 3-component vector of float) -0:248 sqrt (global 3-component vector of float) +0:248 sqrt (temp 3-component vector of float) 0:248 'inF0' (in 3-component vector of float) 0:249 Sequence 0:249 move second child to first child (temp 3-component vector of float) 0:249 'r064' (temp 3-component vector of float) -0:249 step (global 3-component vector of float) +0:249 step (temp 3-component vector of float) 0:249 'inF0' (in 3-component vector of float) 0:249 'inF1' (in 3-component vector of float) 0:250 Sequence 0:250 move second child to first child (temp 3-component vector of float) 0:250 'r065' (temp 3-component vector of float) -0:250 tangent (global 3-component vector of float) +0:250 tangent (temp 3-component vector of float) 0:250 'inF0' (in 3-component vector of float) 0:251 Sequence 0:251 move second child to first child (temp 3-component vector of float) 0:251 'r066' (temp 3-component vector of float) -0:251 hyp. tangent (global 3-component vector of float) +0:251 hyp. tangent (temp 3-component vector of float) 0:251 'inF0' (in 3-component vector of float) 0:253 Sequence 0:253 move second child to first child (temp 3-component vector of float) 0:253 'r067' (temp 3-component vector of float) -0:253 trunc (global 3-component vector of float) +0:253 trunc (temp 3-component vector of float) 0:253 'inF0' (in 3-component vector of float) 0:256 Branch: Return with expression 0:? Constant: @@ -3950,63 +3950,63 @@ gl_FragCoord origin is upper left 0:263 Sequence 0:263 move second child to first child (temp bool) 0:263 'r000' (temp bool) -0:263 all (global bool) +0:263 all (temp bool) 0:263 'inF0' (in 4-component vector of float) 0:264 Sequence 0:264 move second child to first child (temp 4-component vector of float) 0:264 'r001' (temp 4-component vector of float) -0:264 Absolute value (global 4-component vector of float) +0:264 Absolute value (temp 4-component vector of float) 0:264 'inF0' (in 4-component vector of float) 0:265 Sequence 0:265 move second child to first child (temp 4-component vector of float) 0:265 'r002' (temp 4-component vector of float) -0:265 arc cosine (global 4-component vector of float) +0:265 arc cosine (temp 4-component vector of float) 0:265 'inF0' (in 4-component vector of float) 0:266 Sequence 0:266 move second child to first child (temp bool) 0:266 'r003' (temp bool) -0:266 any (global bool) +0:266 any (temp bool) 0:266 'inF0' (in 4-component vector of float) 0:267 Sequence 0:267 move second child to first child (temp 4-component vector of float) 0:267 'r004' (temp 4-component vector of float) -0:267 arc sine (global 4-component vector of float) +0:267 arc sine (temp 4-component vector of float) 0:267 'inF0' (in 4-component vector of float) 0:268 Sequence 0:268 move second child to first child (temp 4-component vector of int) 0:268 'r005' (temp 4-component vector of int) -0:268 floatBitsToInt (global 4-component vector of int) +0:268 floatBitsToInt (temp 4-component vector of int) 0:268 'inF0' (in 4-component vector of float) 0:269 Sequence 0:269 move second child to first child (temp 4-component vector of uint) 0:269 'r006' (temp 4-component vector of uint) -0:269 floatBitsToUint (global 4-component vector of uint) +0:269 floatBitsToUint (temp 4-component vector of uint) 0:269 'inF0' (in 4-component vector of float) 0:270 Sequence 0:270 move second child to first child (temp 4-component vector of float) 0:270 'r007' (temp 4-component vector of float) -0:270 intBitsToFloat (global 4-component vector of float) +0:270 intBitsToFloat (temp 4-component vector of float) 0:270 'inU0' (in 4-component vector of uint) 0:272 Sequence 0:272 move second child to first child (temp 4-component vector of float) 0:272 'r009' (temp 4-component vector of float) -0:272 arc tangent (global 4-component vector of float) +0:272 arc tangent (temp 4-component vector of float) 0:272 'inF0' (in 4-component vector of float) 0:273 Sequence 0:273 move second child to first child (temp 4-component vector of float) 0:273 'r010' (temp 4-component vector of float) -0:273 arc tangent (global 4-component vector of float) +0:273 arc tangent (temp 4-component vector of float) 0:273 'inF0' (in 4-component vector of float) 0:273 'inF1' (in 4-component vector of float) 0:274 Sequence 0:274 move second child to first child (temp 4-component vector of float) 0:274 'r011' (temp 4-component vector of float) -0:274 Ceiling (global 4-component vector of float) +0:274 Ceiling (temp 4-component vector of float) 0:274 'inF0' (in 4-component vector of float) 0:275 Sequence 0:275 move second child to first child (temp 4-component vector of float) 0:275 'r012' (temp 4-component vector of float) -0:275 clamp (global 4-component vector of float) +0:275 clamp (temp 4-component vector of float) 0:275 'inF0' (in 4-component vector of float) 0:275 'inF1' (in 4-component vector of float) 0:275 'inF2' (in 4-component vector of float) @@ -4025,17 +4025,17 @@ gl_FragCoord origin is upper left 0:277 Sequence 0:277 move second child to first child (temp 4-component vector of float) 0:277 'r013' (temp 4-component vector of float) -0:277 cosine (global 4-component vector of float) +0:277 cosine (temp 4-component vector of float) 0:277 'inF0' (in 4-component vector of float) 0:278 Sequence 0:278 move second child to first child (temp 4-component vector of float) 0:278 'r014' (temp 4-component vector of float) -0:278 hyp. cosine (global 4-component vector of float) +0:278 hyp. cosine (temp 4-component vector of float) 0:278 'inF0' (in 4-component vector of float) 0:279 Sequence 0:279 move second child to first child (temp 4-component vector of uint) 0:279 'r015' (temp 4-component vector of uint) -0:? bitCount (global 4-component vector of uint) +0:? bitCount (temp 4-component vector of uint) 0:? Constant: 0:? 7 (const uint) 0:? 3 (const uint) @@ -4044,48 +4044,48 @@ gl_FragCoord origin is upper left 0:280 Sequence 0:280 move second child to first child (temp 4-component vector of float) 0:280 'r016' (temp 4-component vector of float) -0:280 dPdx (global 4-component vector of float) +0:280 dPdx (temp 4-component vector of float) 0:280 'inF0' (in 4-component vector of float) 0:281 Sequence 0:281 move second child to first child (temp 4-component vector of float) 0:281 'r017' (temp 4-component vector of float) -0:281 dPdxCoarse (global 4-component vector of float) +0:281 dPdxCoarse (temp 4-component vector of float) 0:281 'inF0' (in 4-component vector of float) 0:282 Sequence 0:282 move second child to first child (temp 4-component vector of float) 0:282 'r018' (temp 4-component vector of float) -0:282 dPdxFine (global 4-component vector of float) +0:282 dPdxFine (temp 4-component vector of float) 0:282 'inF0' (in 4-component vector of float) 0:283 Sequence 0:283 move second child to first child (temp 4-component vector of float) 0:283 'r019' (temp 4-component vector of float) -0:283 dPdy (global 4-component vector of float) +0:283 dPdy (temp 4-component vector of float) 0:283 'inF0' (in 4-component vector of float) 0:284 Sequence 0:284 move second child to first child (temp 4-component vector of float) 0:284 'r020' (temp 4-component vector of float) -0:284 dPdyCoarse (global 4-component vector of float) +0:284 dPdyCoarse (temp 4-component vector of float) 0:284 'inF0' (in 4-component vector of float) 0:285 Sequence 0:285 move second child to first child (temp 4-component vector of float) 0:285 'r021' (temp 4-component vector of float) -0:285 dPdyFine (global 4-component vector of float) +0:285 dPdyFine (temp 4-component vector of float) 0:285 'inF0' (in 4-component vector of float) 0:286 Sequence 0:286 move second child to first child (temp 4-component vector of float) 0:286 'r022' (temp 4-component vector of float) -0:286 degrees (global 4-component vector of float) +0:286 degrees (temp 4-component vector of float) 0:286 'inF0' (in 4-component vector of float) 0:287 Sequence 0:287 move second child to first child (temp float) 0:287 'r023' (temp float) -0:287 distance (global float) +0:287 distance (temp float) 0:287 'inF0' (in 4-component vector of float) 0:287 'inF1' (in 4-component vector of float) 0:288 Sequence 0:288 move second child to first child (temp float) 0:288 'r024' (temp float) -0:288 dot-product (global float) +0:288 dot-product (temp float) 0:288 'inF0' (in 4-component vector of float) 0:288 'inF1' (in 4-component vector of float) 0:289 Sequence @@ -4114,24 +4114,24 @@ gl_FragCoord origin is upper left 0:293 Sequence 0:293 move second child to first child (temp 4-component vector of float) 0:293 'r029' (temp 4-component vector of float) -0:293 exp (global 4-component vector of float) +0:293 exp (temp 4-component vector of float) 0:293 'inF0' (in 4-component vector of float) 0:294 Sequence 0:294 move second child to first child (temp 4-component vector of float) 0:294 'r030' (temp 4-component vector of float) -0:294 exp2 (global 4-component vector of float) +0:294 exp2 (temp 4-component vector of float) 0:294 'inF0' (in 4-component vector of float) 0:295 Sequence 0:295 move second child to first child (temp 4-component vector of float) 0:295 'r031' (temp 4-component vector of float) -0:295 face-forward (global 4-component vector of float) +0:295 face-forward (temp 4-component vector of float) 0:295 'inF0' (in 4-component vector of float) 0:295 'inF1' (in 4-component vector of float) 0:295 'inF2' (in 4-component vector of float) 0:296 Sequence 0:296 move second child to first child (temp 4-component vector of uint) 0:296 'r032' (temp 4-component vector of uint) -0:? findMSB (global 4-component vector of uint) +0:? findMSB (temp 4-component vector of uint) 0:? Constant: 0:? 7 (const uint) 0:? 8 (const uint) @@ -4140,7 +4140,7 @@ gl_FragCoord origin is upper left 0:297 Sequence 0:297 move second child to first child (temp 4-component vector of uint) 0:297 'r033' (temp 4-component vector of uint) -0:? findLSB (global 4-component vector of uint) +0:? findLSB (temp 4-component vector of uint) 0:? Constant: 0:? 7 (const uint) 0:? 8 (const uint) @@ -4149,62 +4149,62 @@ gl_FragCoord origin is upper left 0:298 Sequence 0:298 move second child to first child (temp 4-component vector of float) 0:298 'r034' (temp 4-component vector of float) -0:298 Floor (global 4-component vector of float) +0:298 Floor (temp 4-component vector of float) 0:298 'inF0' (in 4-component vector of float) 0:300 Sequence 0:300 move second child to first child (temp 4-component vector of float) 0:300 'r036' (temp 4-component vector of float) -0:300 mod (global 4-component vector of float) +0:300 mod (temp 4-component vector of float) 0:300 'inF0' (in 4-component vector of float) 0:300 'inF1' (in 4-component vector of float) 0:301 Sequence 0:301 move second child to first child (temp 4-component vector of float) 0:301 'r037' (temp 4-component vector of float) -0:301 Fraction (global 4-component vector of float) +0:301 Fraction (temp 4-component vector of float) 0:301 'inF0' (in 4-component vector of float) 0:302 Sequence 0:302 move second child to first child (temp 4-component vector of float) 0:302 'r038' (temp 4-component vector of float) -0:302 frexp (global 4-component vector of float) +0:302 frexp (temp 4-component vector of float) 0:302 'inF0' (in 4-component vector of float) 0:302 'inF1' (in 4-component vector of float) 0:303 Sequence 0:303 move second child to first child (temp 4-component vector of float) 0:303 'r039' (temp 4-component vector of float) -0:303 fwidth (global 4-component vector of float) +0:303 fwidth (temp 4-component vector of float) 0:303 'inF0' (in 4-component vector of float) 0:304 Sequence 0:304 move second child to first child (temp 4-component vector of bool) 0:304 'r040' (temp 4-component vector of bool) -0:304 isinf (global 4-component vector of bool) +0:304 isinf (temp 4-component vector of bool) 0:304 'inF0' (in 4-component vector of float) 0:305 Sequence 0:305 move second child to first child (temp 4-component vector of bool) 0:305 'r041' (temp 4-component vector of bool) -0:305 isnan (global 4-component vector of bool) +0:305 isnan (temp 4-component vector of bool) 0:305 'inF0' (in 4-component vector of float) 0:306 Sequence 0:306 move second child to first child (temp 4-component vector of float) 0:306 'r042' (temp 4-component vector of float) -0:306 ldexp (global 4-component vector of float) +0:306 ldexp (temp 4-component vector of float) 0:306 'inF0' (in 4-component vector of float) 0:306 'inF1' (in 4-component vector of float) 0:307 Sequence 0:307 move second child to first child (temp 4-component vector of float) 0:307 'r039a' (temp 4-component vector of float) -0:307 mix (global 4-component vector of float) +0:307 mix (temp 4-component vector of float) 0:307 'inF0' (in 4-component vector of float) 0:307 'inF1' (in 4-component vector of float) 0:307 'inF2' (in 4-component vector of float) 0:308 Sequence 0:308 move second child to first child (temp float) 0:308 'r043' (temp float) -0:308 length (global float) +0:308 length (temp float) 0:308 'inF0' (in 4-component vector of float) 0:309 Sequence 0:309 move second child to first child (temp 4-component vector of float) 0:309 'r044' (temp 4-component vector of float) -0:309 log (global 4-component vector of float) +0:309 log (temp 4-component vector of float) 0:309 'inF0' (in 4-component vector of float) 0:310 Sequence 0:310 move second child to first child (temp 4-component vector of float) @@ -4217,35 +4217,35 @@ gl_FragCoord origin is upper left 0:311 Sequence 0:311 move second child to first child (temp 4-component vector of float) 0:311 'r046' (temp 4-component vector of float) -0:311 log2 (global 4-component vector of float) +0:311 log2 (temp 4-component vector of float) 0:311 'inF0' (in 4-component vector of float) 0:312 Sequence 0:312 move second child to first child (temp 4-component vector of float) 0:312 'r047' (temp 4-component vector of float) -0:312 max (global 4-component vector of float) +0:312 max (temp 4-component vector of float) 0:312 'inF0' (in 4-component vector of float) 0:312 'inF1' (in 4-component vector of float) 0:313 Sequence 0:313 move second child to first child (temp 4-component vector of float) 0:313 'r048' (temp 4-component vector of float) -0:313 min (global 4-component vector of float) +0:313 min (temp 4-component vector of float) 0:313 'inF0' (in 4-component vector of float) 0:313 'inF1' (in 4-component vector of float) 0:314 Sequence 0:314 move second child to first child (temp 4-component vector of float) 0:314 'r049' (temp 4-component vector of float) -0:314 normalize (global 4-component vector of float) +0:314 normalize (temp 4-component vector of float) 0:314 'inF0' (in 4-component vector of float) 0:315 Sequence 0:315 move second child to first child (temp 4-component vector of float) 0:315 'r050' (temp 4-component vector of float) -0:315 pow (global 4-component vector of float) +0:315 pow (temp 4-component vector of float) 0:315 'inF0' (in 4-component vector of float) 0:315 'inF1' (in 4-component vector of float) 0:316 Sequence 0:316 move second child to first child (temp 4-component vector of float) 0:316 'r051' (temp 4-component vector of float) -0:316 radians (global 4-component vector of float) +0:316 radians (temp 4-component vector of float) 0:316 'inF0' (in 4-component vector of float) 0:317 Sequence 0:317 move second child to first child (temp 4-component vector of float) @@ -4257,13 +4257,13 @@ gl_FragCoord origin is upper left 0:318 Sequence 0:318 move second child to first child (temp 4-component vector of float) 0:318 'r053' (temp 4-component vector of float) -0:318 reflect (global 4-component vector of float) +0:318 reflect (temp 4-component vector of float) 0:318 'inF0' (in 4-component vector of float) 0:318 'inF1' (in 4-component vector of float) 0:319 Sequence 0:319 move second child to first child (temp 4-component vector of float) 0:319 'r054' (temp 4-component vector of float) -0:319 refract (global 4-component vector of float) +0:319 refract (temp 4-component vector of float) 0:319 'inF0' (in 4-component vector of float) 0:319 'inF1' (in 4-component vector of float) 0:319 Constant: @@ -4271,7 +4271,7 @@ gl_FragCoord origin is upper left 0:320 Sequence 0:320 move second child to first child (temp 4-component vector of uint) 0:320 'r055' (temp 4-component vector of uint) -0:? bitFieldReverse (global 4-component vector of uint) +0:? bitFieldReverse (temp 4-component vector of uint) 0:? Constant: 0:? 1 (const uint) 0:? 2 (const uint) @@ -4280,12 +4280,12 @@ gl_FragCoord origin is upper left 0:321 Sequence 0:321 move second child to first child (temp 4-component vector of float) 0:321 'r056' (temp 4-component vector of float) -0:321 roundEven (global 4-component vector of float) +0:321 roundEven (temp 4-component vector of float) 0:321 'inF0' (in 4-component vector of float) 0:322 Sequence 0:322 move second child to first child (temp 4-component vector of float) 0:322 'r057' (temp 4-component vector of float) -0:322 inverse sqrt (global 4-component vector of float) +0:322 inverse sqrt (temp 4-component vector of float) 0:322 'inF0' (in 4-component vector of float) 0:323 Sequence 0:323 move second child to first child (temp 4-component vector of float) @@ -4299,12 +4299,12 @@ gl_FragCoord origin is upper left 0:324 Sequence 0:324 move second child to first child (temp 4-component vector of float) 0:324 'r059' (temp 4-component vector of float) -0:324 Sign (global 4-component vector of float) +0:324 Sign (temp 4-component vector of float) 0:324 'inF0' (in 4-component vector of float) 0:325 Sequence 0:325 move second child to first child (temp 4-component vector of float) 0:325 'r060' (temp 4-component vector of float) -0:325 sine (global 4-component vector of float) +0:325 sine (temp 4-component vector of float) 0:325 'inF0' (in 4-component vector of float) 0:326 Sequence 0:326 move second child to first child (temp 4-component vector of float) @@ -4318,40 +4318,40 @@ gl_FragCoord origin is upper left 0:327 Sequence 0:327 move second child to first child (temp 4-component vector of float) 0:327 'r061' (temp 4-component vector of float) -0:327 hyp. sine (global 4-component vector of float) +0:327 hyp. sine (temp 4-component vector of float) 0:327 'inF0' (in 4-component vector of float) 0:328 Sequence 0:328 move second child to first child (temp 4-component vector of float) 0:328 'r062' (temp 4-component vector of float) -0:328 smoothstep (global 4-component vector of float) +0:328 smoothstep (temp 4-component vector of float) 0:328 'inF0' (in 4-component vector of float) 0:328 'inF1' (in 4-component vector of float) 0:328 'inF2' (in 4-component vector of float) 0:329 Sequence 0:329 move second child to first child (temp 4-component vector of float) 0:329 'r063' (temp 4-component vector of float) -0:329 sqrt (global 4-component vector of float) +0:329 sqrt (temp 4-component vector of float) 0:329 'inF0' (in 4-component vector of float) 0:330 Sequence 0:330 move second child to first child (temp 4-component vector of float) 0:330 'r064' (temp 4-component vector of float) -0:330 step (global 4-component vector of float) +0:330 step (temp 4-component vector of float) 0:330 'inF0' (in 4-component vector of float) 0:330 'inF1' (in 4-component vector of float) 0:331 Sequence 0:331 move second child to first child (temp 4-component vector of float) 0:331 'r065' (temp 4-component vector of float) -0:331 tangent (global 4-component vector of float) +0:331 tangent (temp 4-component vector of float) 0:331 'inF0' (in 4-component vector of float) 0:332 Sequence 0:332 move second child to first child (temp 4-component vector of float) 0:332 'r066' (temp 4-component vector of float) -0:332 hyp. tangent (global 4-component vector of float) +0:332 hyp. tangent (temp 4-component vector of float) 0:332 'inF0' (in 4-component vector of float) 0:334 Sequence 0:334 move second child to first child (temp 4-component vector of float) 0:334 'r067' (temp 4-component vector of float) -0:334 trunc (global 4-component vector of float) +0:334 trunc (temp 4-component vector of float) 0:334 'inF0' (in 4-component vector of float) 0:337 Branch: Return with expression 0:? Constant: @@ -4368,40 +4368,40 @@ gl_FragCoord origin is upper left 0:403 Sequence 0:403 move second child to first child (temp bool) 0:403 'r000' (temp bool) -0:403 all (global bool) +0:403 all (temp bool) 0:403 'inF0' (in 2X2 matrix of float) 0:403 Sequence 0:403 move second child to first child (temp 2X2 matrix of float) 0:403 'r001' (temp 2X2 matrix of float) -0:403 Absolute value (global 2X2 matrix of float) +0:403 Absolute value (temp 2X2 matrix of float) 0:403 'inF0' (in 2X2 matrix of float) -0:403 arc cosine (global 2X2 matrix of float) +0:403 arc cosine (temp 2X2 matrix of float) 0:403 'inF0' (in 2X2 matrix of float) 0:403 Sequence 0:403 move second child to first child (temp bool) 0:403 'r003' (temp bool) -0:403 any (global bool) +0:403 any (temp bool) 0:403 'inF0' (in 2X2 matrix of float) 0:403 Sequence 0:403 move second child to first child (temp 2X2 matrix of float) 0:403 'r004' (temp 2X2 matrix of float) -0:403 arc sine (global 2X2 matrix of float) +0:403 arc sine (temp 2X2 matrix of float) 0:403 'inF0' (in 2X2 matrix of float) 0:403 Sequence 0:403 move second child to first child (temp 2X2 matrix of float) 0:403 'r005' (temp 2X2 matrix of float) -0:403 arc tangent (global 2X2 matrix of float) +0:403 arc tangent (temp 2X2 matrix of float) 0:403 'inF0' (in 2X2 matrix of float) 0:403 Sequence 0:403 move second child to first child (temp 2X2 matrix of float) 0:403 'r006' (temp 2X2 matrix of float) -0:403 arc tangent (global 2X2 matrix of float) +0:403 arc tangent (temp 2X2 matrix of float) 0:403 'inF0' (in 2X2 matrix of float) 0:403 'inF1' (in 2X2 matrix of float) 0:403 Sequence 0:403 move second child to first child (temp 2X2 matrix of float) 0:403 'r007' (temp 2X2 matrix of float) -0:403 Ceiling (global 2X2 matrix of float) +0:403 Ceiling (temp 2X2 matrix of float) 0:403 'inF0' (in 2X2 matrix of float) 0:403 Test condition and select (temp void) 0:403 Condition @@ -4418,114 +4418,114 @@ gl_FragCoord origin is upper left 0:403 Sequence 0:403 move second child to first child (temp 2X2 matrix of float) 0:403 'r008' (temp 2X2 matrix of float) -0:403 clamp (global 2X2 matrix of float) +0:403 clamp (temp 2X2 matrix of float) 0:403 'inF0' (in 2X2 matrix of float) 0:403 'inF1' (in 2X2 matrix of float) 0:403 'inF2' (in 2X2 matrix of float) 0:403 Sequence 0:403 move second child to first child (temp 2X2 matrix of float) 0:403 'r009' (temp 2X2 matrix of float) -0:403 cosine (global 2X2 matrix of float) +0:403 cosine (temp 2X2 matrix of float) 0:403 'inF0' (in 2X2 matrix of float) 0:403 Sequence 0:403 move second child to first child (temp 2X2 matrix of float) 0:403 'r010' (temp 2X2 matrix of float) -0:403 hyp. cosine (global 2X2 matrix of float) +0:403 hyp. cosine (temp 2X2 matrix of float) 0:403 'inF0' (in 2X2 matrix of float) 0:403 Sequence 0:403 move second child to first child (temp 2X2 matrix of float) 0:403 'r011' (temp 2X2 matrix of float) -0:403 dPdx (global 2X2 matrix of float) +0:403 dPdx (temp 2X2 matrix of float) 0:403 'inF0' (in 2X2 matrix of float) 0:403 Sequence 0:403 move second child to first child (temp 2X2 matrix of float) 0:403 'r012' (temp 2X2 matrix of float) -0:403 dPdxCoarse (global 2X2 matrix of float) +0:403 dPdxCoarse (temp 2X2 matrix of float) 0:403 'inF0' (in 2X2 matrix of float) 0:403 Sequence 0:403 move second child to first child (temp 2X2 matrix of float) 0:403 'r013' (temp 2X2 matrix of float) -0:403 dPdxFine (global 2X2 matrix of float) +0:403 dPdxFine (temp 2X2 matrix of float) 0:403 'inF0' (in 2X2 matrix of float) 0:403 Sequence 0:403 move second child to first child (temp 2X2 matrix of float) 0:403 'r014' (temp 2X2 matrix of float) -0:403 dPdy (global 2X2 matrix of float) +0:403 dPdy (temp 2X2 matrix of float) 0:403 'inF0' (in 2X2 matrix of float) 0:403 Sequence 0:403 move second child to first child (temp 2X2 matrix of float) 0:403 'r015' (temp 2X2 matrix of float) -0:403 dPdyCoarse (global 2X2 matrix of float) +0:403 dPdyCoarse (temp 2X2 matrix of float) 0:403 'inF0' (in 2X2 matrix of float) 0:403 Sequence 0:403 move second child to first child (temp 2X2 matrix of float) 0:403 'r016' (temp 2X2 matrix of float) -0:403 dPdyFine (global 2X2 matrix of float) +0:403 dPdyFine (temp 2X2 matrix of float) 0:403 'inF0' (in 2X2 matrix of float) 0:403 Sequence 0:403 move second child to first child (temp 2X2 matrix of float) 0:403 'r017' (temp 2X2 matrix of float) -0:403 degrees (global 2X2 matrix of float) +0:403 degrees (temp 2X2 matrix of float) 0:403 'inF0' (in 2X2 matrix of float) 0:403 Sequence 0:403 move second child to first child (temp float) 0:403 'r018' (temp float) -0:403 determinant (global float) +0:403 determinant (temp float) 0:403 'inF0' (in 2X2 matrix of float) 0:403 Sequence 0:403 move second child to first child (temp 2X2 matrix of float) 0:403 'r019' (temp 2X2 matrix of float) -0:403 exp (global 2X2 matrix of float) +0:403 exp (temp 2X2 matrix of float) 0:403 'inF0' (in 2X2 matrix of float) 0:403 Sequence 0:403 move second child to first child (temp 2X2 matrix of float) 0:403 'R020' (temp 2X2 matrix of float) -0:403 exp2 (global 2X2 matrix of float) +0:403 exp2 (temp 2X2 matrix of float) 0:403 'inF0' (in 2X2 matrix of float) 0:403 Sequence 0:403 move second child to first child (temp 2X2 matrix of float) 0:403 'r021' (temp 2X2 matrix of float) -0:403 Floor (global 2X2 matrix of float) +0:403 Floor (temp 2X2 matrix of float) 0:403 'inF0' (in 2X2 matrix of float) 0:403 Sequence 0:403 move second child to first child (temp 2X2 matrix of float) 0:403 'r022' (temp 2X2 matrix of float) -0:403 mod (global 2X2 matrix of float) +0:403 mod (temp 2X2 matrix of float) 0:403 'inF0' (in 2X2 matrix of float) 0:403 'inF1' (in 2X2 matrix of float) 0:403 Sequence 0:403 move second child to first child (temp 2X2 matrix of float) 0:403 'r023' (temp 2X2 matrix of float) -0:403 Fraction (global 2X2 matrix of float) +0:403 Fraction (temp 2X2 matrix of float) 0:403 'inF0' (in 2X2 matrix of float) 0:403 Sequence 0:403 move second child to first child (temp 2X2 matrix of float) 0:403 'r024' (temp 2X2 matrix of float) -0:403 frexp (global 2X2 matrix of float) +0:403 frexp (temp 2X2 matrix of float) 0:403 'inF0' (in 2X2 matrix of float) 0:403 'inF1' (in 2X2 matrix of float) 0:403 Sequence 0:403 move second child to first child (temp 2X2 matrix of float) 0:403 'r025' (temp 2X2 matrix of float) -0:403 fwidth (global 2X2 matrix of float) +0:403 fwidth (temp 2X2 matrix of float) 0:403 'inF0' (in 2X2 matrix of float) 0:403 Sequence 0:403 move second child to first child (temp 2X2 matrix of float) 0:403 'r026' (temp 2X2 matrix of float) -0:403 ldexp (global 2X2 matrix of float) +0:403 ldexp (temp 2X2 matrix of float) 0:403 'inF0' (in 2X2 matrix of float) 0:403 'inF1' (in 2X2 matrix of float) 0:403 Sequence 0:403 move second child to first child (temp 2X2 matrix of float) 0:403 'r026a' (temp 2X2 matrix of float) -0:403 mix (global 2X2 matrix of float) +0:403 mix (temp 2X2 matrix of float) 0:403 'inF0' (in 2X2 matrix of float) 0:403 'inF1' (in 2X2 matrix of float) 0:403 'inF2' (in 2X2 matrix of float) 0:403 Sequence 0:403 move second child to first child (temp 2X2 matrix of float) 0:403 'r027' (temp 2X2 matrix of float) -0:403 log (global 2X2 matrix of float) +0:403 log (temp 2X2 matrix of float) 0:403 'inF0' (in 2X2 matrix of float) 0:403 Sequence 0:403 move second child to first child (temp 2X2 matrix of float) @@ -4538,40 +4538,40 @@ gl_FragCoord origin is upper left 0:403 Sequence 0:403 move second child to first child (temp 2X2 matrix of float) 0:403 'r029' (temp 2X2 matrix of float) -0:403 log2 (global 2X2 matrix of float) +0:403 log2 (temp 2X2 matrix of float) 0:403 'inF0' (in 2X2 matrix of float) 0:403 Sequence 0:403 move second child to first child (temp 2X2 matrix of float) 0:403 'r030' (temp 2X2 matrix of float) -0:403 max (global 2X2 matrix of float) +0:403 max (temp 2X2 matrix of float) 0:403 'inF0' (in 2X2 matrix of float) 0:403 'inF1' (in 2X2 matrix of float) 0:403 Sequence 0:403 move second child to first child (temp 2X2 matrix of float) 0:403 'r031' (temp 2X2 matrix of float) -0:403 min (global 2X2 matrix of float) +0:403 min (temp 2X2 matrix of float) 0:403 'inF0' (in 2X2 matrix of float) 0:403 'inF1' (in 2X2 matrix of float) 0:403 Sequence 0:403 move second child to first child (temp 2X2 matrix of float) 0:403 'r032' (temp 2X2 matrix of float) -0:403 pow (global 2X2 matrix of float) +0:403 pow (temp 2X2 matrix of float) 0:403 'inF0' (in 2X2 matrix of float) 0:403 'inF1' (in 2X2 matrix of float) 0:403 Sequence 0:403 move second child to first child (temp 2X2 matrix of float) 0:403 'r033' (temp 2X2 matrix of float) -0:403 radians (global 2X2 matrix of float) +0:403 radians (temp 2X2 matrix of float) 0:403 'inF0' (in 2X2 matrix of float) 0:403 Sequence 0:403 move second child to first child (temp 2X2 matrix of float) 0:403 'r034' (temp 2X2 matrix of float) -0:403 roundEven (global 2X2 matrix of float) +0:403 roundEven (temp 2X2 matrix of float) 0:403 'inF0' (in 2X2 matrix of float) 0:403 Sequence 0:403 move second child to first child (temp 2X2 matrix of float) 0:403 'r035' (temp 2X2 matrix of float) -0:403 inverse sqrt (global 2X2 matrix of float) +0:403 inverse sqrt (temp 2X2 matrix of float) 0:403 'inF0' (in 2X2 matrix of float) 0:403 Sequence 0:403 move second child to first child (temp 2X2 matrix of float) @@ -4585,12 +4585,12 @@ gl_FragCoord origin is upper left 0:403 Sequence 0:403 move second child to first child (temp 2X2 matrix of float) 0:403 'r037' (temp 2X2 matrix of float) -0:403 Sign (global 2X2 matrix of float) +0:403 Sign (temp 2X2 matrix of float) 0:403 'inF0' (in 2X2 matrix of float) 0:403 Sequence 0:403 move second child to first child (temp 2X2 matrix of float) 0:403 'r038' (temp 2X2 matrix of float) -0:403 sine (global 2X2 matrix of float) +0:403 sine (temp 2X2 matrix of float) 0:403 'inF0' (in 2X2 matrix of float) 0:403 Sequence 0:403 move second child to first child (temp 2X2 matrix of float) @@ -4604,42 +4604,42 @@ gl_FragCoord origin is upper left 0:403 Sequence 0:403 move second child to first child (temp 2X2 matrix of float) 0:403 'r039' (temp 2X2 matrix of float) -0:403 hyp. sine (global 2X2 matrix of float) +0:403 hyp. sine (temp 2X2 matrix of float) 0:403 'inF0' (in 2X2 matrix of float) 0:403 Sequence 0:403 move second child to first child (temp 2X2 matrix of float) 0:403 'r049' (temp 2X2 matrix of float) -0:403 smoothstep (global 2X2 matrix of float) +0:403 smoothstep (temp 2X2 matrix of float) 0:403 'inF0' (in 2X2 matrix of float) 0:403 'inF1' (in 2X2 matrix of float) 0:403 'inF2' (in 2X2 matrix of float) 0:403 Sequence 0:403 move second child to first child (temp 2X2 matrix of float) 0:403 'r041' (temp 2X2 matrix of float) -0:403 sqrt (global 2X2 matrix of float) +0:403 sqrt (temp 2X2 matrix of float) 0:403 'inF0' (in 2X2 matrix of float) 0:403 Sequence 0:403 move second child to first child (temp 2X2 matrix of float) 0:403 'r042' (temp 2X2 matrix of float) -0:403 step (global 2X2 matrix of float) +0:403 step (temp 2X2 matrix of float) 0:403 'inF0' (in 2X2 matrix of float) 0:403 'inF1' (in 2X2 matrix of float) 0:403 Sequence 0:403 move second child to first child (temp 2X2 matrix of float) 0:403 'r043' (temp 2X2 matrix of float) -0:403 tangent (global 2X2 matrix of float) +0:403 tangent (temp 2X2 matrix of float) 0:403 'inF0' (in 2X2 matrix of float) 0:403 Sequence 0:403 move second child to first child (temp 2X2 matrix of float) 0:403 'r044' (temp 2X2 matrix of float) -0:403 hyp. tangent (global 2X2 matrix of float) +0:403 hyp. tangent (temp 2X2 matrix of float) 0:403 'inF0' (in 2X2 matrix of float) -0:403 transpose (global 2X2 matrix of float) +0:403 transpose (temp 2X2 matrix of float) 0:403 'inF0' (in 2X2 matrix of float) 0:403 Sequence 0:403 move second child to first child (temp 2X2 matrix of float) 0:403 'r046' (temp 2X2 matrix of float) -0:403 trunc (global 2X2 matrix of float) +0:403 trunc (temp 2X2 matrix of float) 0:403 'inF0' (in 2X2 matrix of float) 0:406 Branch: Return with expression 0:? Constant: @@ -4656,40 +4656,40 @@ gl_FragCoord origin is upper left 0:412 Sequence 0:412 move second child to first child (temp bool) 0:412 'r000' (temp bool) -0:412 all (global bool) +0:412 all (temp bool) 0:412 'inF0' (in 3X3 matrix of float) 0:412 Sequence 0:412 move second child to first child (temp 3X3 matrix of float) 0:412 'r001' (temp 3X3 matrix of float) -0:412 Absolute value (global 3X3 matrix of float) +0:412 Absolute value (temp 3X3 matrix of float) 0:412 'inF0' (in 3X3 matrix of float) -0:412 arc cosine (global 3X3 matrix of float) +0:412 arc cosine (temp 3X3 matrix of float) 0:412 'inF0' (in 3X3 matrix of float) 0:412 Sequence 0:412 move second child to first child (temp bool) 0:412 'r003' (temp bool) -0:412 any (global bool) +0:412 any (temp bool) 0:412 'inF0' (in 3X3 matrix of float) 0:412 Sequence 0:412 move second child to first child (temp 3X3 matrix of float) 0:412 'r004' (temp 3X3 matrix of float) -0:412 arc sine (global 3X3 matrix of float) +0:412 arc sine (temp 3X3 matrix of float) 0:412 'inF0' (in 3X3 matrix of float) 0:412 Sequence 0:412 move second child to first child (temp 3X3 matrix of float) 0:412 'r005' (temp 3X3 matrix of float) -0:412 arc tangent (global 3X3 matrix of float) +0:412 arc tangent (temp 3X3 matrix of float) 0:412 'inF0' (in 3X3 matrix of float) 0:412 Sequence 0:412 move second child to first child (temp 3X3 matrix of float) 0:412 'r006' (temp 3X3 matrix of float) -0:412 arc tangent (global 3X3 matrix of float) +0:412 arc tangent (temp 3X3 matrix of float) 0:412 'inF0' (in 3X3 matrix of float) 0:412 'inF1' (in 3X3 matrix of float) 0:412 Sequence 0:412 move second child to first child (temp 3X3 matrix of float) 0:412 'r007' (temp 3X3 matrix of float) -0:412 Ceiling (global 3X3 matrix of float) +0:412 Ceiling (temp 3X3 matrix of float) 0:412 'inF0' (in 3X3 matrix of float) 0:412 Test condition and select (temp void) 0:412 Condition @@ -4711,114 +4711,114 @@ gl_FragCoord origin is upper left 0:412 Sequence 0:412 move second child to first child (temp 3X3 matrix of float) 0:412 'r008' (temp 3X3 matrix of float) -0:412 clamp (global 3X3 matrix of float) +0:412 clamp (temp 3X3 matrix of float) 0:412 'inF0' (in 3X3 matrix of float) 0:412 'inF1' (in 3X3 matrix of float) 0:412 'inF2' (in 3X3 matrix of float) 0:412 Sequence 0:412 move second child to first child (temp 3X3 matrix of float) 0:412 'r009' (temp 3X3 matrix of float) -0:412 cosine (global 3X3 matrix of float) +0:412 cosine (temp 3X3 matrix of float) 0:412 'inF0' (in 3X3 matrix of float) 0:412 Sequence 0:412 move second child to first child (temp 3X3 matrix of float) 0:412 'r010' (temp 3X3 matrix of float) -0:412 hyp. cosine (global 3X3 matrix of float) +0:412 hyp. cosine (temp 3X3 matrix of float) 0:412 'inF0' (in 3X3 matrix of float) 0:412 Sequence 0:412 move second child to first child (temp 3X3 matrix of float) 0:412 'r011' (temp 3X3 matrix of float) -0:412 dPdx (global 3X3 matrix of float) +0:412 dPdx (temp 3X3 matrix of float) 0:412 'inF0' (in 3X3 matrix of float) 0:412 Sequence 0:412 move second child to first child (temp 3X3 matrix of float) 0:412 'r012' (temp 3X3 matrix of float) -0:412 dPdxCoarse (global 3X3 matrix of float) +0:412 dPdxCoarse (temp 3X3 matrix of float) 0:412 'inF0' (in 3X3 matrix of float) 0:412 Sequence 0:412 move second child to first child (temp 3X3 matrix of float) 0:412 'r013' (temp 3X3 matrix of float) -0:412 dPdxFine (global 3X3 matrix of float) +0:412 dPdxFine (temp 3X3 matrix of float) 0:412 'inF0' (in 3X3 matrix of float) 0:412 Sequence 0:412 move second child to first child (temp 3X3 matrix of float) 0:412 'r014' (temp 3X3 matrix of float) -0:412 dPdy (global 3X3 matrix of float) +0:412 dPdy (temp 3X3 matrix of float) 0:412 'inF0' (in 3X3 matrix of float) 0:412 Sequence 0:412 move second child to first child (temp 3X3 matrix of float) 0:412 'r015' (temp 3X3 matrix of float) -0:412 dPdyCoarse (global 3X3 matrix of float) +0:412 dPdyCoarse (temp 3X3 matrix of float) 0:412 'inF0' (in 3X3 matrix of float) 0:412 Sequence 0:412 move second child to first child (temp 3X3 matrix of float) 0:412 'r016' (temp 3X3 matrix of float) -0:412 dPdyFine (global 3X3 matrix of float) +0:412 dPdyFine (temp 3X3 matrix of float) 0:412 'inF0' (in 3X3 matrix of float) 0:412 Sequence 0:412 move second child to first child (temp 3X3 matrix of float) 0:412 'r017' (temp 3X3 matrix of float) -0:412 degrees (global 3X3 matrix of float) +0:412 degrees (temp 3X3 matrix of float) 0:412 'inF0' (in 3X3 matrix of float) 0:412 Sequence 0:412 move second child to first child (temp float) 0:412 'r018' (temp float) -0:412 determinant (global float) +0:412 determinant (temp float) 0:412 'inF0' (in 3X3 matrix of float) 0:412 Sequence 0:412 move second child to first child (temp 3X3 matrix of float) 0:412 'r019' (temp 3X3 matrix of float) -0:412 exp (global 3X3 matrix of float) +0:412 exp (temp 3X3 matrix of float) 0:412 'inF0' (in 3X3 matrix of float) 0:412 Sequence 0:412 move second child to first child (temp 3X3 matrix of float) 0:412 'R020' (temp 3X3 matrix of float) -0:412 exp2 (global 3X3 matrix of float) +0:412 exp2 (temp 3X3 matrix of float) 0:412 'inF0' (in 3X3 matrix of float) 0:412 Sequence 0:412 move second child to first child (temp 3X3 matrix of float) 0:412 'r021' (temp 3X3 matrix of float) -0:412 Floor (global 3X3 matrix of float) +0:412 Floor (temp 3X3 matrix of float) 0:412 'inF0' (in 3X3 matrix of float) 0:412 Sequence 0:412 move second child to first child (temp 3X3 matrix of float) 0:412 'r022' (temp 3X3 matrix of float) -0:412 mod (global 3X3 matrix of float) +0:412 mod (temp 3X3 matrix of float) 0:412 'inF0' (in 3X3 matrix of float) 0:412 'inF1' (in 3X3 matrix of float) 0:412 Sequence 0:412 move second child to first child (temp 3X3 matrix of float) 0:412 'r023' (temp 3X3 matrix of float) -0:412 Fraction (global 3X3 matrix of float) +0:412 Fraction (temp 3X3 matrix of float) 0:412 'inF0' (in 3X3 matrix of float) 0:412 Sequence 0:412 move second child to first child (temp 3X3 matrix of float) 0:412 'r024' (temp 3X3 matrix of float) -0:412 frexp (global 3X3 matrix of float) +0:412 frexp (temp 3X3 matrix of float) 0:412 'inF0' (in 3X3 matrix of float) 0:412 'inF1' (in 3X3 matrix of float) 0:412 Sequence 0:412 move second child to first child (temp 3X3 matrix of float) 0:412 'r025' (temp 3X3 matrix of float) -0:412 fwidth (global 3X3 matrix of float) +0:412 fwidth (temp 3X3 matrix of float) 0:412 'inF0' (in 3X3 matrix of float) 0:412 Sequence 0:412 move second child to first child (temp 3X3 matrix of float) 0:412 'r026' (temp 3X3 matrix of float) -0:412 ldexp (global 3X3 matrix of float) +0:412 ldexp (temp 3X3 matrix of float) 0:412 'inF0' (in 3X3 matrix of float) 0:412 'inF1' (in 3X3 matrix of float) 0:412 Sequence 0:412 move second child to first child (temp 3X3 matrix of float) 0:412 'r026a' (temp 3X3 matrix of float) -0:412 mix (global 3X3 matrix of float) +0:412 mix (temp 3X3 matrix of float) 0:412 'inF0' (in 3X3 matrix of float) 0:412 'inF1' (in 3X3 matrix of float) 0:412 'inF2' (in 3X3 matrix of float) 0:412 Sequence 0:412 move second child to first child (temp 3X3 matrix of float) 0:412 'r027' (temp 3X3 matrix of float) -0:412 log (global 3X3 matrix of float) +0:412 log (temp 3X3 matrix of float) 0:412 'inF0' (in 3X3 matrix of float) 0:412 Sequence 0:412 move second child to first child (temp 3X3 matrix of float) @@ -4831,40 +4831,40 @@ gl_FragCoord origin is upper left 0:412 Sequence 0:412 move second child to first child (temp 3X3 matrix of float) 0:412 'r029' (temp 3X3 matrix of float) -0:412 log2 (global 3X3 matrix of float) +0:412 log2 (temp 3X3 matrix of float) 0:412 'inF0' (in 3X3 matrix of float) 0:412 Sequence 0:412 move second child to first child (temp 3X3 matrix of float) 0:412 'r030' (temp 3X3 matrix of float) -0:412 max (global 3X3 matrix of float) +0:412 max (temp 3X3 matrix of float) 0:412 'inF0' (in 3X3 matrix of float) 0:412 'inF1' (in 3X3 matrix of float) 0:412 Sequence 0:412 move second child to first child (temp 3X3 matrix of float) 0:412 'r031' (temp 3X3 matrix of float) -0:412 min (global 3X3 matrix of float) +0:412 min (temp 3X3 matrix of float) 0:412 'inF0' (in 3X3 matrix of float) 0:412 'inF1' (in 3X3 matrix of float) 0:412 Sequence 0:412 move second child to first child (temp 3X3 matrix of float) 0:412 'r032' (temp 3X3 matrix of float) -0:412 pow (global 3X3 matrix of float) +0:412 pow (temp 3X3 matrix of float) 0:412 'inF0' (in 3X3 matrix of float) 0:412 'inF1' (in 3X3 matrix of float) 0:412 Sequence 0:412 move second child to first child (temp 3X3 matrix of float) 0:412 'r033' (temp 3X3 matrix of float) -0:412 radians (global 3X3 matrix of float) +0:412 radians (temp 3X3 matrix of float) 0:412 'inF0' (in 3X3 matrix of float) 0:412 Sequence 0:412 move second child to first child (temp 3X3 matrix of float) 0:412 'r034' (temp 3X3 matrix of float) -0:412 roundEven (global 3X3 matrix of float) +0:412 roundEven (temp 3X3 matrix of float) 0:412 'inF0' (in 3X3 matrix of float) 0:412 Sequence 0:412 move second child to first child (temp 3X3 matrix of float) 0:412 'r035' (temp 3X3 matrix of float) -0:412 inverse sqrt (global 3X3 matrix of float) +0:412 inverse sqrt (temp 3X3 matrix of float) 0:412 'inF0' (in 3X3 matrix of float) 0:412 Sequence 0:412 move second child to first child (temp 3X3 matrix of float) @@ -4878,12 +4878,12 @@ gl_FragCoord origin is upper left 0:412 Sequence 0:412 move second child to first child (temp 3X3 matrix of float) 0:412 'r037' (temp 3X3 matrix of float) -0:412 Sign (global 3X3 matrix of float) +0:412 Sign (temp 3X3 matrix of float) 0:412 'inF0' (in 3X3 matrix of float) 0:412 Sequence 0:412 move second child to first child (temp 3X3 matrix of float) 0:412 'r038' (temp 3X3 matrix of float) -0:412 sine (global 3X3 matrix of float) +0:412 sine (temp 3X3 matrix of float) 0:412 'inF0' (in 3X3 matrix of float) 0:412 Sequence 0:412 move second child to first child (temp 3X3 matrix of float) @@ -4897,42 +4897,42 @@ gl_FragCoord origin is upper left 0:412 Sequence 0:412 move second child to first child (temp 3X3 matrix of float) 0:412 'r039' (temp 3X3 matrix of float) -0:412 hyp. sine (global 3X3 matrix of float) +0:412 hyp. sine (temp 3X3 matrix of float) 0:412 'inF0' (in 3X3 matrix of float) 0:412 Sequence 0:412 move second child to first child (temp 3X3 matrix of float) 0:412 'r049' (temp 3X3 matrix of float) -0:412 smoothstep (global 3X3 matrix of float) +0:412 smoothstep (temp 3X3 matrix of float) 0:412 'inF0' (in 3X3 matrix of float) 0:412 'inF1' (in 3X3 matrix of float) 0:412 'inF2' (in 3X3 matrix of float) 0:412 Sequence 0:412 move second child to first child (temp 3X3 matrix of float) 0:412 'r041' (temp 3X3 matrix of float) -0:412 sqrt (global 3X3 matrix of float) +0:412 sqrt (temp 3X3 matrix of float) 0:412 'inF0' (in 3X3 matrix of float) 0:412 Sequence 0:412 move second child to first child (temp 3X3 matrix of float) 0:412 'r042' (temp 3X3 matrix of float) -0:412 step (global 3X3 matrix of float) +0:412 step (temp 3X3 matrix of float) 0:412 'inF0' (in 3X3 matrix of float) 0:412 'inF1' (in 3X3 matrix of float) 0:412 Sequence 0:412 move second child to first child (temp 3X3 matrix of float) 0:412 'r043' (temp 3X3 matrix of float) -0:412 tangent (global 3X3 matrix of float) +0:412 tangent (temp 3X3 matrix of float) 0:412 'inF0' (in 3X3 matrix of float) 0:412 Sequence 0:412 move second child to first child (temp 3X3 matrix of float) 0:412 'r044' (temp 3X3 matrix of float) -0:412 hyp. tangent (global 3X3 matrix of float) +0:412 hyp. tangent (temp 3X3 matrix of float) 0:412 'inF0' (in 3X3 matrix of float) -0:412 transpose (global 3X3 matrix of float) +0:412 transpose (temp 3X3 matrix of float) 0:412 'inF0' (in 3X3 matrix of float) 0:412 Sequence 0:412 move second child to first child (temp 3X3 matrix of float) 0:412 'r046' (temp 3X3 matrix of float) -0:412 trunc (global 3X3 matrix of float) +0:412 trunc (temp 3X3 matrix of float) 0:412 'inF0' (in 3X3 matrix of float) 0:415 Branch: Return with expression 0:? Constant: @@ -4954,40 +4954,40 @@ gl_FragCoord origin is upper left 0:421 Sequence 0:421 move second child to first child (temp bool) 0:421 'r000' (temp bool) -0:421 all (global bool) +0:421 all (temp bool) 0:421 'inF0' (in 4X4 matrix of float) 0:421 Sequence 0:421 move second child to first child (temp 4X4 matrix of float) 0:421 'r001' (temp 4X4 matrix of float) -0:421 Absolute value (global 4X4 matrix of float) +0:421 Absolute value (temp 4X4 matrix of float) 0:421 'inF0' (in 4X4 matrix of float) -0:421 arc cosine (global 4X4 matrix of float) +0:421 arc cosine (temp 4X4 matrix of float) 0:421 'inF0' (in 4X4 matrix of float) 0:421 Sequence 0:421 move second child to first child (temp bool) 0:421 'r003' (temp bool) -0:421 any (global bool) +0:421 any (temp bool) 0:421 'inF0' (in 4X4 matrix of float) 0:421 Sequence 0:421 move second child to first child (temp 4X4 matrix of float) 0:421 'r004' (temp 4X4 matrix of float) -0:421 arc sine (global 4X4 matrix of float) +0:421 arc sine (temp 4X4 matrix of float) 0:421 'inF0' (in 4X4 matrix of float) 0:421 Sequence 0:421 move second child to first child (temp 4X4 matrix of float) 0:421 'r005' (temp 4X4 matrix of float) -0:421 arc tangent (global 4X4 matrix of float) +0:421 arc tangent (temp 4X4 matrix of float) 0:421 'inF0' (in 4X4 matrix of float) 0:421 Sequence 0:421 move second child to first child (temp 4X4 matrix of float) 0:421 'r006' (temp 4X4 matrix of float) -0:421 arc tangent (global 4X4 matrix of float) +0:421 arc tangent (temp 4X4 matrix of float) 0:421 'inF0' (in 4X4 matrix of float) 0:421 'inF1' (in 4X4 matrix of float) 0:421 Sequence 0:421 move second child to first child (temp 4X4 matrix of float) 0:421 'r007' (temp 4X4 matrix of float) -0:421 Ceiling (global 4X4 matrix of float) +0:421 Ceiling (temp 4X4 matrix of float) 0:421 'inF0' (in 4X4 matrix of float) 0:421 Test condition and select (temp void) 0:421 Condition @@ -5016,114 +5016,114 @@ gl_FragCoord origin is upper left 0:421 Sequence 0:421 move second child to first child (temp 4X4 matrix of float) 0:421 'r008' (temp 4X4 matrix of float) -0:421 clamp (global 4X4 matrix of float) +0:421 clamp (temp 4X4 matrix of float) 0:421 'inF0' (in 4X4 matrix of float) 0:421 'inF1' (in 4X4 matrix of float) 0:421 'inF2' (in 4X4 matrix of float) 0:421 Sequence 0:421 move second child to first child (temp 4X4 matrix of float) 0:421 'r009' (temp 4X4 matrix of float) -0:421 cosine (global 4X4 matrix of float) +0:421 cosine (temp 4X4 matrix of float) 0:421 'inF0' (in 4X4 matrix of float) 0:421 Sequence 0:421 move second child to first child (temp 4X4 matrix of float) 0:421 'r010' (temp 4X4 matrix of float) -0:421 hyp. cosine (global 4X4 matrix of float) +0:421 hyp. cosine (temp 4X4 matrix of float) 0:421 'inF0' (in 4X4 matrix of float) 0:421 Sequence 0:421 move second child to first child (temp 4X4 matrix of float) 0:421 'r011' (temp 4X4 matrix of float) -0:421 dPdx (global 4X4 matrix of float) +0:421 dPdx (temp 4X4 matrix of float) 0:421 'inF0' (in 4X4 matrix of float) 0:421 Sequence 0:421 move second child to first child (temp 4X4 matrix of float) 0:421 'r012' (temp 4X4 matrix of float) -0:421 dPdxCoarse (global 4X4 matrix of float) +0:421 dPdxCoarse (temp 4X4 matrix of float) 0:421 'inF0' (in 4X4 matrix of float) 0:421 Sequence 0:421 move second child to first child (temp 4X4 matrix of float) 0:421 'r013' (temp 4X4 matrix of float) -0:421 dPdxFine (global 4X4 matrix of float) +0:421 dPdxFine (temp 4X4 matrix of float) 0:421 'inF0' (in 4X4 matrix of float) 0:421 Sequence 0:421 move second child to first child (temp 4X4 matrix of float) 0:421 'r014' (temp 4X4 matrix of float) -0:421 dPdy (global 4X4 matrix of float) +0:421 dPdy (temp 4X4 matrix of float) 0:421 'inF0' (in 4X4 matrix of float) 0:421 Sequence 0:421 move second child to first child (temp 4X4 matrix of float) 0:421 'r015' (temp 4X4 matrix of float) -0:421 dPdyCoarse (global 4X4 matrix of float) +0:421 dPdyCoarse (temp 4X4 matrix of float) 0:421 'inF0' (in 4X4 matrix of float) 0:421 Sequence 0:421 move second child to first child (temp 4X4 matrix of float) 0:421 'r016' (temp 4X4 matrix of float) -0:421 dPdyFine (global 4X4 matrix of float) +0:421 dPdyFine (temp 4X4 matrix of float) 0:421 'inF0' (in 4X4 matrix of float) 0:421 Sequence 0:421 move second child to first child (temp 4X4 matrix of float) 0:421 'r017' (temp 4X4 matrix of float) -0:421 degrees (global 4X4 matrix of float) +0:421 degrees (temp 4X4 matrix of float) 0:421 'inF0' (in 4X4 matrix of float) 0:421 Sequence 0:421 move second child to first child (temp float) 0:421 'r018' (temp float) -0:421 determinant (global float) +0:421 determinant (temp float) 0:421 'inF0' (in 4X4 matrix of float) 0:421 Sequence 0:421 move second child to first child (temp 4X4 matrix of float) 0:421 'r019' (temp 4X4 matrix of float) -0:421 exp (global 4X4 matrix of float) +0:421 exp (temp 4X4 matrix of float) 0:421 'inF0' (in 4X4 matrix of float) 0:421 Sequence 0:421 move second child to first child (temp 4X4 matrix of float) 0:421 'R020' (temp 4X4 matrix of float) -0:421 exp2 (global 4X4 matrix of float) +0:421 exp2 (temp 4X4 matrix of float) 0:421 'inF0' (in 4X4 matrix of float) 0:421 Sequence 0:421 move second child to first child (temp 4X4 matrix of float) 0:421 'r021' (temp 4X4 matrix of float) -0:421 Floor (global 4X4 matrix of float) +0:421 Floor (temp 4X4 matrix of float) 0:421 'inF0' (in 4X4 matrix of float) 0:421 Sequence 0:421 move second child to first child (temp 4X4 matrix of float) 0:421 'r022' (temp 4X4 matrix of float) -0:421 mod (global 4X4 matrix of float) +0:421 mod (temp 4X4 matrix of float) 0:421 'inF0' (in 4X4 matrix of float) 0:421 'inF1' (in 4X4 matrix of float) 0:421 Sequence 0:421 move second child to first child (temp 4X4 matrix of float) 0:421 'r023' (temp 4X4 matrix of float) -0:421 Fraction (global 4X4 matrix of float) +0:421 Fraction (temp 4X4 matrix of float) 0:421 'inF0' (in 4X4 matrix of float) 0:421 Sequence 0:421 move second child to first child (temp 4X4 matrix of float) 0:421 'r024' (temp 4X4 matrix of float) -0:421 frexp (global 4X4 matrix of float) +0:421 frexp (temp 4X4 matrix of float) 0:421 'inF0' (in 4X4 matrix of float) 0:421 'inF1' (in 4X4 matrix of float) 0:421 Sequence 0:421 move second child to first child (temp 4X4 matrix of float) 0:421 'r025' (temp 4X4 matrix of float) -0:421 fwidth (global 4X4 matrix of float) +0:421 fwidth (temp 4X4 matrix of float) 0:421 'inF0' (in 4X4 matrix of float) 0:421 Sequence 0:421 move second child to first child (temp 4X4 matrix of float) 0:421 'r026' (temp 4X4 matrix of float) -0:421 ldexp (global 4X4 matrix of float) +0:421 ldexp (temp 4X4 matrix of float) 0:421 'inF0' (in 4X4 matrix of float) 0:421 'inF1' (in 4X4 matrix of float) 0:421 Sequence 0:421 move second child to first child (temp 4X4 matrix of float) 0:421 'r026a' (temp 4X4 matrix of float) -0:421 mix (global 4X4 matrix of float) +0:421 mix (temp 4X4 matrix of float) 0:421 'inF0' (in 4X4 matrix of float) 0:421 'inF1' (in 4X4 matrix of float) 0:421 'inF2' (in 4X4 matrix of float) 0:421 Sequence 0:421 move second child to first child (temp 4X4 matrix of float) 0:421 'r027' (temp 4X4 matrix of float) -0:421 log (global 4X4 matrix of float) +0:421 log (temp 4X4 matrix of float) 0:421 'inF0' (in 4X4 matrix of float) 0:421 Sequence 0:421 move second child to first child (temp 4X4 matrix of float) @@ -5136,40 +5136,40 @@ gl_FragCoord origin is upper left 0:421 Sequence 0:421 move second child to first child (temp 4X4 matrix of float) 0:421 'r029' (temp 4X4 matrix of float) -0:421 log2 (global 4X4 matrix of float) +0:421 log2 (temp 4X4 matrix of float) 0:421 'inF0' (in 4X4 matrix of float) 0:421 Sequence 0:421 move second child to first child (temp 4X4 matrix of float) 0:421 'r030' (temp 4X4 matrix of float) -0:421 max (global 4X4 matrix of float) +0:421 max (temp 4X4 matrix of float) 0:421 'inF0' (in 4X4 matrix of float) 0:421 'inF1' (in 4X4 matrix of float) 0:421 Sequence 0:421 move second child to first child (temp 4X4 matrix of float) 0:421 'r031' (temp 4X4 matrix of float) -0:421 min (global 4X4 matrix of float) +0:421 min (temp 4X4 matrix of float) 0:421 'inF0' (in 4X4 matrix of float) 0:421 'inF1' (in 4X4 matrix of float) 0:421 Sequence 0:421 move second child to first child (temp 4X4 matrix of float) 0:421 'r032' (temp 4X4 matrix of float) -0:421 pow (global 4X4 matrix of float) +0:421 pow (temp 4X4 matrix of float) 0:421 'inF0' (in 4X4 matrix of float) 0:421 'inF1' (in 4X4 matrix of float) 0:421 Sequence 0:421 move second child to first child (temp 4X4 matrix of float) 0:421 'r033' (temp 4X4 matrix of float) -0:421 radians (global 4X4 matrix of float) +0:421 radians (temp 4X4 matrix of float) 0:421 'inF0' (in 4X4 matrix of float) 0:421 Sequence 0:421 move second child to first child (temp 4X4 matrix of float) 0:421 'r034' (temp 4X4 matrix of float) -0:421 roundEven (global 4X4 matrix of float) +0:421 roundEven (temp 4X4 matrix of float) 0:421 'inF0' (in 4X4 matrix of float) 0:421 Sequence 0:421 move second child to first child (temp 4X4 matrix of float) 0:421 'r035' (temp 4X4 matrix of float) -0:421 inverse sqrt (global 4X4 matrix of float) +0:421 inverse sqrt (temp 4X4 matrix of float) 0:421 'inF0' (in 4X4 matrix of float) 0:421 Sequence 0:421 move second child to first child (temp 4X4 matrix of float) @@ -5183,12 +5183,12 @@ gl_FragCoord origin is upper left 0:421 Sequence 0:421 move second child to first child (temp 4X4 matrix of float) 0:421 'r037' (temp 4X4 matrix of float) -0:421 Sign (global 4X4 matrix of float) +0:421 Sign (temp 4X4 matrix of float) 0:421 'inF0' (in 4X4 matrix of float) 0:421 Sequence 0:421 move second child to first child (temp 4X4 matrix of float) 0:421 'r038' (temp 4X4 matrix of float) -0:421 sine (global 4X4 matrix of float) +0:421 sine (temp 4X4 matrix of float) 0:421 'inF0' (in 4X4 matrix of float) 0:421 Sequence 0:421 move second child to first child (temp 4X4 matrix of float) @@ -5202,42 +5202,42 @@ gl_FragCoord origin is upper left 0:421 Sequence 0:421 move second child to first child (temp 4X4 matrix of float) 0:421 'r039' (temp 4X4 matrix of float) -0:421 hyp. sine (global 4X4 matrix of float) +0:421 hyp. sine (temp 4X4 matrix of float) 0:421 'inF0' (in 4X4 matrix of float) 0:421 Sequence 0:421 move second child to first child (temp 4X4 matrix of float) 0:421 'r049' (temp 4X4 matrix of float) -0:421 smoothstep (global 4X4 matrix of float) +0:421 smoothstep (temp 4X4 matrix of float) 0:421 'inF0' (in 4X4 matrix of float) 0:421 'inF1' (in 4X4 matrix of float) 0:421 'inF2' (in 4X4 matrix of float) 0:421 Sequence 0:421 move second child to first child (temp 4X4 matrix of float) 0:421 'r041' (temp 4X4 matrix of float) -0:421 sqrt (global 4X4 matrix of float) +0:421 sqrt (temp 4X4 matrix of float) 0:421 'inF0' (in 4X4 matrix of float) 0:421 Sequence 0:421 move second child to first child (temp 4X4 matrix of float) 0:421 'r042' (temp 4X4 matrix of float) -0:421 step (global 4X4 matrix of float) +0:421 step (temp 4X4 matrix of float) 0:421 'inF0' (in 4X4 matrix of float) 0:421 'inF1' (in 4X4 matrix of float) 0:421 Sequence 0:421 move second child to first child (temp 4X4 matrix of float) 0:421 'r043' (temp 4X4 matrix of float) -0:421 tangent (global 4X4 matrix of float) +0:421 tangent (temp 4X4 matrix of float) 0:421 'inF0' (in 4X4 matrix of float) 0:421 Sequence 0:421 move second child to first child (temp 4X4 matrix of float) 0:421 'r044' (temp 4X4 matrix of float) -0:421 hyp. tangent (global 4X4 matrix of float) +0:421 hyp. tangent (temp 4X4 matrix of float) 0:421 'inF0' (in 4X4 matrix of float) -0:421 transpose (global 4X4 matrix of float) +0:421 transpose (temp 4X4 matrix of float) 0:421 'inF0' (in 4X4 matrix of float) 0:421 Sequence 0:421 move second child to first child (temp 4X4 matrix of float) 0:421 'r046' (temp 4X4 matrix of float) -0:421 trunc (global 4X4 matrix of float) +0:421 trunc (temp 4X4 matrix of float) 0:421 'inF0' (in 4X4 matrix of float) 0:424 Branch: Return with expression 0:? Constant: @@ -5287,7 +5287,7 @@ gl_FragCoord origin is upper left 0:443 Sequence 0:443 move second child to first child (temp float) 0:443 'r3' (temp float) -0:443 dot-product (global float) +0:443 dot-product (temp float) 0:443 'inFV0' (in 2-component vector of float) 0:443 'inFV1' (in 2-component vector of float) 0:443 Sequence @@ -5350,7 +5350,7 @@ gl_FragCoord origin is upper left 0:450 Sequence 0:450 move second child to first child (temp float) 0:450 'r3' (temp float) -0:450 dot-product (global float) +0:450 dot-product (temp float) 0:450 'inFV0' (in 3-component vector of float) 0:450 'inFV1' (in 3-component vector of float) 0:450 Sequence @@ -5413,7 +5413,7 @@ gl_FragCoord origin is upper left 0:457 Sequence 0:457 move second child to first child (temp float) 0:457 'r3' (temp float) -0:457 dot-product (global float) +0:457 dot-product (temp float) 0:457 'inFV0' (in 4-component vector of float) 0:457 'inFV1' (in 4-component vector of float) 0:457 Sequence @@ -5491,13 +5491,13 @@ gl_FragCoord origin is upper left 0:472 Sequence 0:472 move second child to first child (temp float) 0:472 'r05' (temp float) -0:472 dot-product (global float) +0:472 dot-product (temp float) 0:472 'inFV2' (in 2-component vector of float) 0:472 'inFV2' (in 2-component vector of float) 0:473 Sequence 0:473 move second child to first child (temp float) 0:473 'r06' (temp float) -0:473 dot-product (global float) +0:473 dot-product (temp float) 0:473 'inFV3' (in 3-component vector of float) 0:473 'inFV3' (in 3-component vector of float) 0:474 Sequence diff --git a/Test/baseResults/hlsl.intrinsics.negative.frag.out b/Test/baseResults/hlsl.intrinsics.negative.frag.out index 29ee0095..e2750543 100644 --- a/Test/baseResults/hlsl.intrinsics.negative.frag.out +++ b/Test/baseResults/hlsl.intrinsics.negative.frag.out @@ -78,36 +78,36 @@ ERROR: node is still EOpNull! 0:5 'inF0' (in float) 0:5 Convert float to uint (temp uint) 0:5 'inF1' (in float) -0:6 Function Call: CheckAccessFullyMapped(u1; (global bool) +0:6 Function Call: CheckAccessFullyMapped(u1; (temp bool) 0:6 Constant: 0:6 3 (const uint) -0:7 bitCount (global uint) +0:7 bitCount (temp uint) 0:7 Convert float to uint (temp uint) 0:7 'inF0' (in float) -0:8 cross-product (global 3-component vector of float) +0:8 cross-product (temp 3-component vector of float) 0:8 Construct vec3 (in 3-component vector of float) 0:8 'inF0' (in float) 0:8 Construct vec3 (in 3-component vector of float) 0:8 'inF1' (in float) -0:9 Function Call: D3DCOLORtoUBYTE4(vf4; (global 4-component vector of int) +0:9 Function Call: D3DCOLORtoUBYTE4(vf4; (temp 4-component vector of int) 0:9 Construct vec4 (in 4-component vector of float) 0:9 'inF0' (in float) 0:10 Constant: 0:10 0.000000 0:12 ERROR: Bad unary op - (global float) + (temp float) 0:12 Convert float to uint (temp uint) 0:12 'inF0' (in float) -0:13 findMSB (global uint) +0:13 findMSB (temp uint) 0:13 Convert float to uint (temp uint) 0:13 'inF0' (in float) -0:14 findLSB (global uint) +0:14 findLSB (temp uint) 0:14 Convert float to uint (temp uint) 0:14 'inF0' (in float) -0:23 length (global float) +0:23 length (temp float) 0:23 Construct vec2 (in 2-component vector of float) 0:23 'inF0' (in float) -0:24 Function Call: msad4(u1;vu2;vu4; (global 4-component vector of uint) +0:24 Function Call: msad4(u1;vu2;vu4; (temp 4-component vector of uint) 0:24 Convert float to uint (temp uint) 0:24 'inF0' (in float) 0:24 Constant: @@ -118,15 +118,15 @@ ERROR: node is still EOpNull! 0:24 0 (const uint) 0:24 0 (const uint) 0:24 0 (const uint) -0:25 normalize (global 2-component vector of float) +0:25 normalize (temp 2-component vector of float) 0:25 Construct vec2 (in 2-component vector of float) 0:25 'inF0' (in float) -0:26 reflect (global 2-component vector of float) +0:26 reflect (temp 2-component vector of float) 0:26 Construct vec2 (in 2-component vector of float) 0:26 'inF0' (in float) 0:26 Construct vec2 (in 2-component vector of float) 0:26 'inF1' (in float) -0:27 refract (global 2-component vector of float) +0:27 refract (temp 2-component vector of float) 0:27 Construct vec2 (in 2-component vector of float) 0:27 'inF0' (in float) 0:27 Construct vec2 (in 2-component vector of float) @@ -134,7 +134,7 @@ ERROR: node is still EOpNull! 0:27 'inF2' (in float) 0:28 Constant: 0:28 0.000000 -0:29 bitFieldReverse (global uint) +0:29 bitFieldReverse (temp uint) 0:29 Convert float to uint (temp uint) 0:29 'inF0' (in float) 0:30 Constant: @@ -162,14 +162,14 @@ ERROR: node is still EOpNull! 0:45 'inI0' (in 2-component vector of int) 0:? Sequence 0:46 ERROR: Bad aggregation op - (global 2-component vector of double) + (temp 2-component vector of double) 0:46 Convert float to uint (temp 2-component vector of uint) 0:46 'inF0' (in 2-component vector of float) 0:46 Convert float to uint (temp 2-component vector of uint) 0:46 'inF1' (in 2-component vector of float) 0:47 Constant: 0:47 0.000000 -0:48 bitCount (global 2-component vector of uint) +0:48 bitCount (temp 2-component vector of uint) 0:48 Convert float to uint (temp 2-component vector of uint) 0:48 'inF0' (in 2-component vector of float) 0:49 Constant: @@ -179,16 +179,16 @@ ERROR: node is still EOpNull! 0:51 Constant: 0:51 0.000000 0:52 ERROR: Bad unary op - (global 2-component vector of float) + (temp 2-component vector of float) 0:52 Convert float to uint (temp 2-component vector of uint) 0:52 'inF0' (in 2-component vector of float) -0:53 findMSB (global 2-component vector of uint) +0:53 findMSB (temp 2-component vector of uint) 0:53 Convert float to uint (temp 2-component vector of uint) 0:53 'inF0' (in 2-component vector of float) -0:54 findLSB (global 2-component vector of uint) +0:54 findLSB (temp 2-component vector of uint) 0:54 Convert float to uint (temp 2-component vector of uint) 0:54 'inF0' (in 2-component vector of float) -0:56 bitFieldReverse (global 2-component vector of uint) +0:56 bitFieldReverse (temp 2-component vector of uint) 0:56 Convert float to uint (temp 2-component vector of uint) 0:56 'inF0' (in 2-component vector of float) 0:57 Constant: @@ -206,7 +206,7 @@ ERROR: node is still EOpNull! 0:? Sequence 0:64 Constant: 0:64 0.000000 -0:65 bitCount (global 3-component vector of uint) +0:65 bitCount (temp 3-component vector of uint) 0:65 Convert float to uint (temp 3-component vector of uint) 0:65 'inF0' (in 3-component vector of float) 0:66 Constant: @@ -214,16 +214,16 @@ ERROR: node is still EOpNull! 0:67 Constant: 0:67 0.000000 0:68 ERROR: Bad unary op - (global 3-component vector of float) + (temp 3-component vector of float) 0:68 Convert float to uint (temp 3-component vector of uint) 0:68 'inF0' (in 3-component vector of float) -0:69 findMSB (global 3-component vector of uint) +0:69 findMSB (temp 3-component vector of uint) 0:69 Convert float to uint (temp 3-component vector of uint) 0:69 'inF0' (in 3-component vector of float) -0:70 findLSB (global 3-component vector of uint) +0:70 findLSB (temp 3-component vector of uint) 0:70 Convert float to uint (temp 3-component vector of uint) 0:70 'inF0' (in 3-component vector of float) -0:72 bitFieldReverse (global 3-component vector of uint) +0:72 bitFieldReverse (temp 3-component vector of uint) 0:72 Convert float to uint (temp 3-component vector of uint) 0:72 'inF0' (in 3-component vector of float) 0:73 Constant: @@ -242,10 +242,10 @@ ERROR: node is still EOpNull! 0:? Sequence 0:81 Constant: 0:81 0.000000 -0:82 bitCount (global 4-component vector of uint) +0:82 bitCount (temp 4-component vector of uint) 0:82 Convert float to uint (temp 4-component vector of uint) 0:82 'inF0' (layout(location=0 ) in 4-component vector of float) -0:83 cross-product (global 3-component vector of float) +0:83 cross-product (temp 3-component vector of float) 0:83 Construct vec3 (in 3-component vector of float) 0:83 'inF0' (layout(location=0 ) in 4-component vector of float) 0:83 Construct vec3 (in 3-component vector of float) @@ -253,16 +253,16 @@ ERROR: node is still EOpNull! 0:84 Constant: 0:84 0.000000 0:85 ERROR: Bad unary op - (global 4-component vector of float) + (temp 4-component vector of float) 0:85 Convert float to uint (temp 4-component vector of uint) 0:85 'inF0' (layout(location=0 ) in 4-component vector of float) -0:86 findMSB (global 4-component vector of uint) +0:86 findMSB (temp 4-component vector of uint) 0:86 Convert float to uint (temp 4-component vector of uint) 0:86 'inF0' (layout(location=0 ) in 4-component vector of float) -0:87 findLSB (global 4-component vector of uint) +0:87 findLSB (temp 4-component vector of uint) 0:87 Convert float to uint (temp 4-component vector of uint) 0:87 'inF0' (layout(location=0 ) in 4-component vector of float) -0:89 bitFieldReverse (global 4-component vector of uint) +0:89 bitFieldReverse (temp 4-component vector of uint) 0:89 Convert float to uint (temp 4-component vector of uint) 0:89 'inF0' (layout(location=0 ) in 4-component vector of float) 0:90 Constant: @@ -434,36 +434,36 @@ ERROR: node is still EOpNull! 0:5 'inF0' (in float) 0:5 Convert float to uint (temp uint) 0:5 'inF1' (in float) -0:6 Function Call: CheckAccessFullyMapped(u1; (global bool) +0:6 Function Call: CheckAccessFullyMapped(u1; (temp bool) 0:6 Constant: 0:6 3 (const uint) -0:7 bitCount (global uint) +0:7 bitCount (temp uint) 0:7 Convert float to uint (temp uint) 0:7 'inF0' (in float) -0:8 cross-product (global 3-component vector of float) +0:8 cross-product (temp 3-component vector of float) 0:8 Construct vec3 (in 3-component vector of float) 0:8 'inF0' (in float) 0:8 Construct vec3 (in 3-component vector of float) 0:8 'inF1' (in float) -0:9 Function Call: D3DCOLORtoUBYTE4(vf4; (global 4-component vector of int) +0:9 Function Call: D3DCOLORtoUBYTE4(vf4; (temp 4-component vector of int) 0:9 Construct vec4 (in 4-component vector of float) 0:9 'inF0' (in float) 0:10 Constant: 0:10 0.000000 0:12 ERROR: Bad unary op - (global float) + (temp float) 0:12 Convert float to uint (temp uint) 0:12 'inF0' (in float) -0:13 findMSB (global uint) +0:13 findMSB (temp uint) 0:13 Convert float to uint (temp uint) 0:13 'inF0' (in float) -0:14 findLSB (global uint) +0:14 findLSB (temp uint) 0:14 Convert float to uint (temp uint) 0:14 'inF0' (in float) -0:23 length (global float) +0:23 length (temp float) 0:23 Construct vec2 (in 2-component vector of float) 0:23 'inF0' (in float) -0:24 Function Call: msad4(u1;vu2;vu4; (global 4-component vector of uint) +0:24 Function Call: msad4(u1;vu2;vu4; (temp 4-component vector of uint) 0:24 Convert float to uint (temp uint) 0:24 'inF0' (in float) 0:24 Constant: @@ -474,15 +474,15 @@ ERROR: node is still EOpNull! 0:24 0 (const uint) 0:24 0 (const uint) 0:24 0 (const uint) -0:25 normalize (global 2-component vector of float) +0:25 normalize (temp 2-component vector of float) 0:25 Construct vec2 (in 2-component vector of float) 0:25 'inF0' (in float) -0:26 reflect (global 2-component vector of float) +0:26 reflect (temp 2-component vector of float) 0:26 Construct vec2 (in 2-component vector of float) 0:26 'inF0' (in float) 0:26 Construct vec2 (in 2-component vector of float) 0:26 'inF1' (in float) -0:27 refract (global 2-component vector of float) +0:27 refract (temp 2-component vector of float) 0:27 Construct vec2 (in 2-component vector of float) 0:27 'inF0' (in float) 0:27 Construct vec2 (in 2-component vector of float) @@ -490,7 +490,7 @@ ERROR: node is still EOpNull! 0:27 'inF2' (in float) 0:28 Constant: 0:28 0.000000 -0:29 bitFieldReverse (global uint) +0:29 bitFieldReverse (temp uint) 0:29 Convert float to uint (temp uint) 0:29 'inF0' (in float) 0:30 Constant: @@ -518,14 +518,14 @@ ERROR: node is still EOpNull! 0:45 'inI0' (in 2-component vector of int) 0:? Sequence 0:46 ERROR: Bad aggregation op - (global 2-component vector of double) + (temp 2-component vector of double) 0:46 Convert float to uint (temp 2-component vector of uint) 0:46 'inF0' (in 2-component vector of float) 0:46 Convert float to uint (temp 2-component vector of uint) 0:46 'inF1' (in 2-component vector of float) 0:47 Constant: 0:47 0.000000 -0:48 bitCount (global 2-component vector of uint) +0:48 bitCount (temp 2-component vector of uint) 0:48 Convert float to uint (temp 2-component vector of uint) 0:48 'inF0' (in 2-component vector of float) 0:49 Constant: @@ -535,16 +535,16 @@ ERROR: node is still EOpNull! 0:51 Constant: 0:51 0.000000 0:52 ERROR: Bad unary op - (global 2-component vector of float) + (temp 2-component vector of float) 0:52 Convert float to uint (temp 2-component vector of uint) 0:52 'inF0' (in 2-component vector of float) -0:53 findMSB (global 2-component vector of uint) +0:53 findMSB (temp 2-component vector of uint) 0:53 Convert float to uint (temp 2-component vector of uint) 0:53 'inF0' (in 2-component vector of float) -0:54 findLSB (global 2-component vector of uint) +0:54 findLSB (temp 2-component vector of uint) 0:54 Convert float to uint (temp 2-component vector of uint) 0:54 'inF0' (in 2-component vector of float) -0:56 bitFieldReverse (global 2-component vector of uint) +0:56 bitFieldReverse (temp 2-component vector of uint) 0:56 Convert float to uint (temp 2-component vector of uint) 0:56 'inF0' (in 2-component vector of float) 0:57 Constant: @@ -562,7 +562,7 @@ ERROR: node is still EOpNull! 0:? Sequence 0:64 Constant: 0:64 0.000000 -0:65 bitCount (global 3-component vector of uint) +0:65 bitCount (temp 3-component vector of uint) 0:65 Convert float to uint (temp 3-component vector of uint) 0:65 'inF0' (in 3-component vector of float) 0:66 Constant: @@ -570,16 +570,16 @@ ERROR: node is still EOpNull! 0:67 Constant: 0:67 0.000000 0:68 ERROR: Bad unary op - (global 3-component vector of float) + (temp 3-component vector of float) 0:68 Convert float to uint (temp 3-component vector of uint) 0:68 'inF0' (in 3-component vector of float) -0:69 findMSB (global 3-component vector of uint) +0:69 findMSB (temp 3-component vector of uint) 0:69 Convert float to uint (temp 3-component vector of uint) 0:69 'inF0' (in 3-component vector of float) -0:70 findLSB (global 3-component vector of uint) +0:70 findLSB (temp 3-component vector of uint) 0:70 Convert float to uint (temp 3-component vector of uint) 0:70 'inF0' (in 3-component vector of float) -0:72 bitFieldReverse (global 3-component vector of uint) +0:72 bitFieldReverse (temp 3-component vector of uint) 0:72 Convert float to uint (temp 3-component vector of uint) 0:72 'inF0' (in 3-component vector of float) 0:73 Constant: @@ -598,10 +598,10 @@ ERROR: node is still EOpNull! 0:? Sequence 0:81 Constant: 0:81 0.000000 -0:82 bitCount (global 4-component vector of uint) +0:82 bitCount (temp 4-component vector of uint) 0:82 Convert float to uint (temp 4-component vector of uint) 0:82 'inF0' (layout(location=0 ) in 4-component vector of float) -0:83 cross-product (global 3-component vector of float) +0:83 cross-product (temp 3-component vector of float) 0:83 Construct vec3 (in 3-component vector of float) 0:83 'inF0' (layout(location=0 ) in 4-component vector of float) 0:83 Construct vec3 (in 3-component vector of float) @@ -609,16 +609,16 @@ ERROR: node is still EOpNull! 0:84 Constant: 0:84 0.000000 0:85 ERROR: Bad unary op - (global 4-component vector of float) + (temp 4-component vector of float) 0:85 Convert float to uint (temp 4-component vector of uint) 0:85 'inF0' (layout(location=0 ) in 4-component vector of float) -0:86 findMSB (global 4-component vector of uint) +0:86 findMSB (temp 4-component vector of uint) 0:86 Convert float to uint (temp 4-component vector of uint) 0:86 'inF0' (layout(location=0 ) in 4-component vector of float) -0:87 findLSB (global 4-component vector of uint) +0:87 findLSB (temp 4-component vector of uint) 0:87 Convert float to uint (temp 4-component vector of uint) 0:87 'inF0' (layout(location=0 ) in 4-component vector of float) -0:89 bitFieldReverse (global 4-component vector of uint) +0:89 bitFieldReverse (temp 4-component vector of uint) 0:89 Convert float to uint (temp 4-component vector of uint) 0:89 'inF0' (layout(location=0 ) in 4-component vector of float) 0:90 Constant: diff --git a/Test/baseResults/hlsl.intrinsics.vert.out b/Test/baseResults/hlsl.intrinsics.vert.out index 811a752d..7e7a5119 100644 --- a/Test/baseResults/hlsl.intrinsics.vert.out +++ b/Test/baseResults/hlsl.intrinsics.vert.out @@ -9,99 +9,99 @@ Shader version: 450 0:2 'inU0' (in uint) 0:2 'inU1' (in uint) 0:? Sequence -0:3 all (global bool) +0:3 all (temp bool) 0:3 'inF0' (in float) -0:4 Absolute value (global float) +0:4 Absolute value (temp float) 0:4 'inF0' (in float) -0:5 arc cosine (global float) +0:5 arc cosine (temp float) 0:5 'inF0' (in float) -0:6 any (global bool) +0:6 any (temp bool) 0:6 'inF0' (in float) -0:7 arc sine (global float) +0:7 arc sine (temp float) 0:7 'inF0' (in float) -0:8 floatBitsToInt (global int) +0:8 floatBitsToInt (temp int) 0:8 'inF0' (in float) -0:9 floatBitsToUint (global uint) +0:9 floatBitsToUint (temp uint) 0:9 'inF0' (in float) -0:10 intBitsToFloat (global float) +0:10 intBitsToFloat (temp float) 0:10 'inU0' (in uint) -0:12 arc tangent (global float) +0:12 arc tangent (temp float) 0:12 'inF0' (in float) -0:13 arc tangent (global float) +0:13 arc tangent (temp float) 0:13 'inF0' (in float) 0:13 'inF1' (in float) -0:14 Ceiling (global float) +0:14 Ceiling (temp float) 0:14 'inF0' (in float) -0:15 clamp (global float) +0:15 clamp (temp float) 0:15 'inF0' (in float) 0:15 'inF1' (in float) 0:15 'inF2' (in float) -0:16 cosine (global float) +0:16 cosine (temp float) 0:16 'inF0' (in float) -0:17 hyp. cosine (global float) +0:17 hyp. cosine (temp float) 0:17 'inF0' (in float) -0:18 bitCount (global uint) +0:18 bitCount (temp uint) 0:18 Constant: 0:18 7 (const uint) -0:19 degrees (global float) +0:19 degrees (temp float) 0:19 'inF0' (in float) -0:23 exp (global float) +0:23 exp (temp float) 0:23 'inF0' (in float) -0:24 exp2 (global float) +0:24 exp2 (temp float) 0:24 'inF0' (in float) -0:25 findMSB (global int) +0:25 findMSB (temp int) 0:25 Constant: 0:25 7 (const int) -0:26 findLSB (global int) +0:26 findLSB (temp int) 0:26 Constant: 0:26 7 (const int) -0:27 Floor (global float) +0:27 Floor (temp float) 0:27 'inF0' (in float) -0:29 mod (global float) +0:29 mod (temp float) 0:29 'inF0' (in float) 0:29 'inF1' (in float) -0:30 Fraction (global float) +0:30 Fraction (temp float) 0:30 'inF0' (in float) -0:31 frexp (global float) +0:31 frexp (temp float) 0:31 'inF0' (in float) 0:31 'inF1' (in float) -0:32 isinf (global bool) +0:32 isinf (temp bool) 0:32 'inF0' (in float) -0:33 isnan (global bool) +0:33 isnan (temp bool) 0:33 'inF0' (in float) -0:34 ldexp (global float) +0:34 ldexp (temp float) 0:34 'inF0' (in float) 0:34 'inF1' (in float) -0:35 mix (global float) +0:35 mix (temp float) 0:35 'inF0' (in float) 0:35 'inF1' (in float) 0:35 'inF2' (in float) -0:36 log (global float) +0:36 log (temp float) 0:36 'inF0' (in float) 0:37 component-wise multiply (temp float) 0:37 log2 (temp float) 0:37 'inF0' (in float) 0:37 Constant: 0:37 0.301030 -0:38 log2 (global float) +0:38 log2 (temp float) 0:38 'inF0' (in float) -0:39 max (global float) +0:39 max (temp float) 0:39 'inF0' (in float) 0:39 'inF1' (in float) -0:40 min (global float) +0:40 min (temp float) 0:40 'inF0' (in float) 0:40 'inF1' (in float) -0:42 pow (global float) +0:42 pow (temp float) 0:42 'inF0' (in float) 0:42 'inF1' (in float) -0:43 radians (global float) +0:43 radians (temp float) 0:43 'inF0' (in float) -0:44 bitFieldReverse (global uint) +0:44 bitFieldReverse (temp uint) 0:44 Constant: 0:44 2 (const uint) -0:45 roundEven (global float) +0:45 roundEven (temp float) 0:45 'inF0' (in float) -0:46 inverse sqrt (global float) +0:46 inverse sqrt (temp float) 0:46 'inF0' (in float) 0:47 clamp (temp float) 0:47 'inF0' (in float) @@ -109,9 +109,9 @@ Shader version: 450 0:47 0.000000 0:47 Constant: 0:47 1.000000 -0:48 Sign (global float) +0:48 Sign (temp float) 0:48 'inF0' (in float) -0:49 sine (global float) +0:49 sine (temp float) 0:49 'inF0' (in float) 0:50 Sequence 0:50 move second child to first child (temp float) @@ -122,22 +122,22 @@ Shader version: 450 0:50 'inF2' (in float) 0:50 cosine (temp float) 0:50 'inF0' (in float) -0:51 hyp. sine (global float) +0:51 hyp. sine (temp float) 0:51 'inF0' (in float) -0:52 smoothstep (global float) +0:52 smoothstep (temp float) 0:52 'inF0' (in float) 0:52 'inF1' (in float) 0:52 'inF2' (in float) -0:53 sqrt (global float) +0:53 sqrt (temp float) 0:53 'inF0' (in float) -0:54 step (global float) +0:54 step (temp float) 0:54 'inF0' (in float) 0:54 'inF1' (in float) -0:55 tangent (global float) +0:55 tangent (temp float) 0:55 'inF0' (in float) -0:56 hyp. tangent (global float) +0:56 hyp. tangent (temp float) 0:56 'inF0' (in float) -0:58 trunc (global float) +0:58 trunc (temp float) 0:58 'inF0' (in float) 0:60 Branch: Return with expression 0:60 Constant: @@ -159,123 +159,123 @@ Shader version: 450 0:70 'inU0' (in 2-component vector of uint) 0:70 'inU1' (in 2-component vector of uint) 0:? Sequence -0:71 all (global bool) +0:71 all (temp bool) 0:71 'inF0' (in 2-component vector of float) -0:72 Absolute value (global 2-component vector of float) +0:72 Absolute value (temp 2-component vector of float) 0:72 'inF0' (in 2-component vector of float) -0:73 arc cosine (global 2-component vector of float) +0:73 arc cosine (temp 2-component vector of float) 0:73 'inF0' (in 2-component vector of float) -0:74 any (global bool) +0:74 any (temp bool) 0:74 'inF0' (in 2-component vector of float) -0:75 arc sine (global 2-component vector of float) +0:75 arc sine (temp 2-component vector of float) 0:75 'inF0' (in 2-component vector of float) -0:76 floatBitsToInt (global 2-component vector of int) +0:76 floatBitsToInt (temp 2-component vector of int) 0:76 'inF0' (in 2-component vector of float) -0:77 floatBitsToUint (global 2-component vector of uint) +0:77 floatBitsToUint (temp 2-component vector of uint) 0:77 'inF0' (in 2-component vector of float) -0:78 intBitsToFloat (global 2-component vector of float) +0:78 intBitsToFloat (temp 2-component vector of float) 0:78 'inU0' (in 2-component vector of uint) -0:80 arc tangent (global 2-component vector of float) +0:80 arc tangent (temp 2-component vector of float) 0:80 'inF0' (in 2-component vector of float) -0:81 arc tangent (global 2-component vector of float) +0:81 arc tangent (temp 2-component vector of float) 0:81 'inF0' (in 2-component vector of float) 0:81 'inF1' (in 2-component vector of float) -0:82 Ceiling (global 2-component vector of float) +0:82 Ceiling (temp 2-component vector of float) 0:82 'inF0' (in 2-component vector of float) -0:83 clamp (global 2-component vector of float) +0:83 clamp (temp 2-component vector of float) 0:83 'inF0' (in 2-component vector of float) 0:83 'inF1' (in 2-component vector of float) 0:83 'inF2' (in 2-component vector of float) -0:84 cosine (global 2-component vector of float) +0:84 cosine (temp 2-component vector of float) 0:84 'inF0' (in 2-component vector of float) -0:85 hyp. cosine (global 2-component vector of float) +0:85 hyp. cosine (temp 2-component vector of float) 0:85 'inF0' (in 2-component vector of float) -0:? bitCount (global 2-component vector of uint) +0:? bitCount (temp 2-component vector of uint) 0:? Constant: 0:? 7 (const uint) 0:? 3 (const uint) -0:87 degrees (global 2-component vector of float) +0:87 degrees (temp 2-component vector of float) 0:87 'inF0' (in 2-component vector of float) -0:88 distance (global float) +0:88 distance (temp float) 0:88 'inF0' (in 2-component vector of float) 0:88 'inF1' (in 2-component vector of float) -0:89 dot-product (global float) +0:89 dot-product (temp float) 0:89 'inF0' (in 2-component vector of float) 0:89 'inF1' (in 2-component vector of float) -0:93 exp (global 2-component vector of float) +0:93 exp (temp 2-component vector of float) 0:93 'inF0' (in 2-component vector of float) -0:94 exp2 (global 2-component vector of float) +0:94 exp2 (temp 2-component vector of float) 0:94 'inF0' (in 2-component vector of float) -0:95 face-forward (global 2-component vector of float) +0:95 face-forward (temp 2-component vector of float) 0:95 'inF0' (in 2-component vector of float) 0:95 'inF1' (in 2-component vector of float) 0:95 'inF2' (in 2-component vector of float) -0:96 findMSB (global int) +0:96 findMSB (temp int) 0:96 Constant: 0:96 7 (const int) -0:97 findLSB (global int) +0:97 findLSB (temp int) 0:97 Constant: 0:97 7 (const int) -0:98 Floor (global 2-component vector of float) +0:98 Floor (temp 2-component vector of float) 0:98 'inF0' (in 2-component vector of float) -0:100 mod (global 2-component vector of float) +0:100 mod (temp 2-component vector of float) 0:100 'inF0' (in 2-component vector of float) 0:100 'inF1' (in 2-component vector of float) -0:101 Fraction (global 2-component vector of float) +0:101 Fraction (temp 2-component vector of float) 0:101 'inF0' (in 2-component vector of float) -0:102 frexp (global 2-component vector of float) +0:102 frexp (temp 2-component vector of float) 0:102 'inF0' (in 2-component vector of float) 0:102 'inF1' (in 2-component vector of float) -0:103 isinf (global 2-component vector of bool) +0:103 isinf (temp 2-component vector of bool) 0:103 'inF0' (in 2-component vector of float) -0:104 isnan (global 2-component vector of bool) +0:104 isnan (temp 2-component vector of bool) 0:104 'inF0' (in 2-component vector of float) -0:105 ldexp (global 2-component vector of float) +0:105 ldexp (temp 2-component vector of float) 0:105 'inF0' (in 2-component vector of float) 0:105 'inF1' (in 2-component vector of float) -0:106 mix (global 2-component vector of float) +0:106 mix (temp 2-component vector of float) 0:106 'inF0' (in 2-component vector of float) 0:106 'inF1' (in 2-component vector of float) 0:106 'inF2' (in 2-component vector of float) -0:107 length (global float) +0:107 length (temp float) 0:107 'inF0' (in 2-component vector of float) -0:108 log (global 2-component vector of float) +0:108 log (temp 2-component vector of float) 0:108 'inF0' (in 2-component vector of float) 0:109 vector-scale (temp 2-component vector of float) 0:109 log2 (temp 2-component vector of float) 0:109 'inF0' (in 2-component vector of float) 0:109 Constant: 0:109 0.301030 -0:110 log2 (global 2-component vector of float) +0:110 log2 (temp 2-component vector of float) 0:110 'inF0' (in 2-component vector of float) -0:111 max (global 2-component vector of float) +0:111 max (temp 2-component vector of float) 0:111 'inF0' (in 2-component vector of float) 0:111 'inF1' (in 2-component vector of float) -0:112 min (global 2-component vector of float) +0:112 min (temp 2-component vector of float) 0:112 'inF0' (in 2-component vector of float) 0:112 'inF1' (in 2-component vector of float) -0:114 normalize (global 2-component vector of float) +0:114 normalize (temp 2-component vector of float) 0:114 'inF0' (in 2-component vector of float) -0:115 pow (global 2-component vector of float) +0:115 pow (temp 2-component vector of float) 0:115 'inF0' (in 2-component vector of float) 0:115 'inF1' (in 2-component vector of float) -0:116 radians (global 2-component vector of float) +0:116 radians (temp 2-component vector of float) 0:116 'inF0' (in 2-component vector of float) -0:117 reflect (global 2-component vector of float) +0:117 reflect (temp 2-component vector of float) 0:117 'inF0' (in 2-component vector of float) 0:117 'inF1' (in 2-component vector of float) -0:118 refract (global 2-component vector of float) +0:118 refract (temp 2-component vector of float) 0:118 'inF0' (in 2-component vector of float) 0:118 'inF1' (in 2-component vector of float) 0:118 Constant: 0:118 2.000000 -0:? bitFieldReverse (global 2-component vector of uint) +0:? bitFieldReverse (temp 2-component vector of uint) 0:? Constant: 0:? 1 (const uint) 0:? 2 (const uint) -0:120 roundEven (global 2-component vector of float) +0:120 roundEven (temp 2-component vector of float) 0:120 'inF0' (in 2-component vector of float) -0:121 inverse sqrt (global 2-component vector of float) +0:121 inverse sqrt (temp 2-component vector of float) 0:121 'inF0' (in 2-component vector of float) 0:122 clamp (temp 2-component vector of float) 0:122 'inF0' (in 2-component vector of float) @@ -283,9 +283,9 @@ Shader version: 450 0:122 0.000000 0:122 Constant: 0:122 1.000000 -0:123 Sign (global 2-component vector of float) +0:123 Sign (temp 2-component vector of float) 0:123 'inF0' (in 2-component vector of float) -0:124 sine (global 2-component vector of float) +0:124 sine (temp 2-component vector of float) 0:124 'inF0' (in 2-component vector of float) 0:125 Sequence 0:125 move second child to first child (temp 2-component vector of float) @@ -296,22 +296,22 @@ Shader version: 450 0:125 'inF2' (in 2-component vector of float) 0:125 cosine (temp 2-component vector of float) 0:125 'inF0' (in 2-component vector of float) -0:126 hyp. sine (global 2-component vector of float) +0:126 hyp. sine (temp 2-component vector of float) 0:126 'inF0' (in 2-component vector of float) -0:127 smoothstep (global 2-component vector of float) +0:127 smoothstep (temp 2-component vector of float) 0:127 'inF0' (in 2-component vector of float) 0:127 'inF1' (in 2-component vector of float) 0:127 'inF2' (in 2-component vector of float) -0:128 sqrt (global 2-component vector of float) +0:128 sqrt (temp 2-component vector of float) 0:128 'inF0' (in 2-component vector of float) -0:129 step (global 2-component vector of float) +0:129 step (temp 2-component vector of float) 0:129 'inF0' (in 2-component vector of float) 0:129 'inF1' (in 2-component vector of float) -0:130 tangent (global 2-component vector of float) +0:130 tangent (temp 2-component vector of float) 0:130 'inF0' (in 2-component vector of float) -0:131 hyp. tangent (global 2-component vector of float) +0:131 hyp. tangent (temp 2-component vector of float) 0:131 'inF0' (in 2-component vector of float) -0:133 trunc (global 2-component vector of float) +0:133 trunc (temp 2-component vector of float) 0:133 'inF0' (in 2-component vector of float) 0:136 Branch: Return with expression 0:? Constant: @@ -325,128 +325,128 @@ Shader version: 450 0:140 'inU0' (in 3-component vector of uint) 0:140 'inU1' (in 3-component vector of uint) 0:? Sequence -0:141 all (global bool) +0:141 all (temp bool) 0:141 'inF0' (in 3-component vector of float) -0:142 Absolute value (global 3-component vector of float) +0:142 Absolute value (temp 3-component vector of float) 0:142 'inF0' (in 3-component vector of float) -0:143 arc cosine (global 3-component vector of float) +0:143 arc cosine (temp 3-component vector of float) 0:143 'inF0' (in 3-component vector of float) -0:144 any (global bool) +0:144 any (temp bool) 0:144 'inF0' (in 3-component vector of float) -0:145 arc sine (global 3-component vector of float) +0:145 arc sine (temp 3-component vector of float) 0:145 'inF0' (in 3-component vector of float) -0:146 floatBitsToInt (global 3-component vector of int) +0:146 floatBitsToInt (temp 3-component vector of int) 0:146 'inF0' (in 3-component vector of float) -0:147 floatBitsToUint (global 3-component vector of uint) +0:147 floatBitsToUint (temp 3-component vector of uint) 0:147 'inF0' (in 3-component vector of float) -0:148 intBitsToFloat (global 3-component vector of float) +0:148 intBitsToFloat (temp 3-component vector of float) 0:148 'inU0' (in 3-component vector of uint) -0:150 arc tangent (global 3-component vector of float) +0:150 arc tangent (temp 3-component vector of float) 0:150 'inF0' (in 3-component vector of float) -0:151 arc tangent (global 3-component vector of float) +0:151 arc tangent (temp 3-component vector of float) 0:151 'inF0' (in 3-component vector of float) 0:151 'inF1' (in 3-component vector of float) -0:152 Ceiling (global 3-component vector of float) +0:152 Ceiling (temp 3-component vector of float) 0:152 'inF0' (in 3-component vector of float) -0:153 clamp (global 3-component vector of float) +0:153 clamp (temp 3-component vector of float) 0:153 'inF0' (in 3-component vector of float) 0:153 'inF1' (in 3-component vector of float) 0:153 'inF2' (in 3-component vector of float) -0:154 cosine (global 3-component vector of float) +0:154 cosine (temp 3-component vector of float) 0:154 'inF0' (in 3-component vector of float) -0:155 hyp. cosine (global 3-component vector of float) +0:155 hyp. cosine (temp 3-component vector of float) 0:155 'inF0' (in 3-component vector of float) -0:? bitCount (global 3-component vector of uint) +0:? bitCount (temp 3-component vector of uint) 0:? Constant: 0:? 7 (const uint) 0:? 3 (const uint) 0:? 5 (const uint) -0:157 cross-product (global 3-component vector of float) +0:157 cross-product (temp 3-component vector of float) 0:157 'inF0' (in 3-component vector of float) 0:157 'inF1' (in 3-component vector of float) -0:158 degrees (global 3-component vector of float) +0:158 degrees (temp 3-component vector of float) 0:158 'inF0' (in 3-component vector of float) -0:159 distance (global float) +0:159 distance (temp float) 0:159 'inF0' (in 3-component vector of float) 0:159 'inF1' (in 3-component vector of float) -0:160 dot-product (global float) +0:160 dot-product (temp float) 0:160 'inF0' (in 3-component vector of float) 0:160 'inF1' (in 3-component vector of float) -0:164 exp (global 3-component vector of float) +0:164 exp (temp 3-component vector of float) 0:164 'inF0' (in 3-component vector of float) -0:165 exp2 (global 3-component vector of float) +0:165 exp2 (temp 3-component vector of float) 0:165 'inF0' (in 3-component vector of float) -0:166 face-forward (global 3-component vector of float) +0:166 face-forward (temp 3-component vector of float) 0:166 'inF0' (in 3-component vector of float) 0:166 'inF1' (in 3-component vector of float) 0:166 'inF2' (in 3-component vector of float) -0:167 findMSB (global int) +0:167 findMSB (temp int) 0:167 Constant: 0:167 7 (const int) -0:168 findLSB (global int) +0:168 findLSB (temp int) 0:168 Constant: 0:168 7 (const int) -0:169 Floor (global 3-component vector of float) +0:169 Floor (temp 3-component vector of float) 0:169 'inF0' (in 3-component vector of float) -0:171 mod (global 3-component vector of float) +0:171 mod (temp 3-component vector of float) 0:171 'inF0' (in 3-component vector of float) 0:171 'inF1' (in 3-component vector of float) -0:172 Fraction (global 3-component vector of float) +0:172 Fraction (temp 3-component vector of float) 0:172 'inF0' (in 3-component vector of float) -0:173 frexp (global 3-component vector of float) +0:173 frexp (temp 3-component vector of float) 0:173 'inF0' (in 3-component vector of float) 0:173 'inF1' (in 3-component vector of float) -0:174 isinf (global 3-component vector of bool) +0:174 isinf (temp 3-component vector of bool) 0:174 'inF0' (in 3-component vector of float) -0:175 isnan (global 3-component vector of bool) +0:175 isnan (temp 3-component vector of bool) 0:175 'inF0' (in 3-component vector of float) -0:176 ldexp (global 3-component vector of float) +0:176 ldexp (temp 3-component vector of float) 0:176 'inF0' (in 3-component vector of float) 0:176 'inF1' (in 3-component vector of float) -0:177 mix (global 3-component vector of float) +0:177 mix (temp 3-component vector of float) 0:177 'inF0' (in 3-component vector of float) 0:177 'inF1' (in 3-component vector of float) 0:177 'inF2' (in 3-component vector of float) -0:178 length (global float) +0:178 length (temp float) 0:178 'inF0' (in 3-component vector of float) -0:179 log (global 3-component vector of float) +0:179 log (temp 3-component vector of float) 0:179 'inF0' (in 3-component vector of float) 0:180 vector-scale (temp 3-component vector of float) 0:180 log2 (temp 3-component vector of float) 0:180 'inF0' (in 3-component vector of float) 0:180 Constant: 0:180 0.301030 -0:181 log2 (global 3-component vector of float) +0:181 log2 (temp 3-component vector of float) 0:181 'inF0' (in 3-component vector of float) -0:182 max (global 3-component vector of float) +0:182 max (temp 3-component vector of float) 0:182 'inF0' (in 3-component vector of float) 0:182 'inF1' (in 3-component vector of float) -0:183 min (global 3-component vector of float) +0:183 min (temp 3-component vector of float) 0:183 'inF0' (in 3-component vector of float) 0:183 'inF1' (in 3-component vector of float) -0:185 normalize (global 3-component vector of float) +0:185 normalize (temp 3-component vector of float) 0:185 'inF0' (in 3-component vector of float) -0:186 pow (global 3-component vector of float) +0:186 pow (temp 3-component vector of float) 0:186 'inF0' (in 3-component vector of float) 0:186 'inF1' (in 3-component vector of float) -0:187 radians (global 3-component vector of float) +0:187 radians (temp 3-component vector of float) 0:187 'inF0' (in 3-component vector of float) -0:188 reflect (global 3-component vector of float) +0:188 reflect (temp 3-component vector of float) 0:188 'inF0' (in 3-component vector of float) 0:188 'inF1' (in 3-component vector of float) -0:189 refract (global 3-component vector of float) +0:189 refract (temp 3-component vector of float) 0:189 'inF0' (in 3-component vector of float) 0:189 'inF1' (in 3-component vector of float) 0:189 Constant: 0:189 2.000000 -0:? bitFieldReverse (global 3-component vector of uint) +0:? bitFieldReverse (temp 3-component vector of uint) 0:? Constant: 0:? 1 (const uint) 0:? 2 (const uint) 0:? 3 (const uint) -0:191 roundEven (global 3-component vector of float) +0:191 roundEven (temp 3-component vector of float) 0:191 'inF0' (in 3-component vector of float) -0:192 inverse sqrt (global 3-component vector of float) +0:192 inverse sqrt (temp 3-component vector of float) 0:192 'inF0' (in 3-component vector of float) 0:193 clamp (temp 3-component vector of float) 0:193 'inF0' (in 3-component vector of float) @@ -454,9 +454,9 @@ Shader version: 450 0:193 0.000000 0:193 Constant: 0:193 1.000000 -0:194 Sign (global 3-component vector of float) +0:194 Sign (temp 3-component vector of float) 0:194 'inF0' (in 3-component vector of float) -0:195 sine (global 3-component vector of float) +0:195 sine (temp 3-component vector of float) 0:195 'inF0' (in 3-component vector of float) 0:196 Sequence 0:196 move second child to first child (temp 3-component vector of float) @@ -467,22 +467,22 @@ Shader version: 450 0:196 'inF2' (in 3-component vector of float) 0:196 cosine (temp 3-component vector of float) 0:196 'inF0' (in 3-component vector of float) -0:197 hyp. sine (global 3-component vector of float) +0:197 hyp. sine (temp 3-component vector of float) 0:197 'inF0' (in 3-component vector of float) -0:198 smoothstep (global 3-component vector of float) +0:198 smoothstep (temp 3-component vector of float) 0:198 'inF0' (in 3-component vector of float) 0:198 'inF1' (in 3-component vector of float) 0:198 'inF2' (in 3-component vector of float) -0:199 sqrt (global 3-component vector of float) +0:199 sqrt (temp 3-component vector of float) 0:199 'inF0' (in 3-component vector of float) -0:200 step (global 3-component vector of float) +0:200 step (temp 3-component vector of float) 0:200 'inF0' (in 3-component vector of float) 0:200 'inF1' (in 3-component vector of float) -0:201 tangent (global 3-component vector of float) +0:201 tangent (temp 3-component vector of float) 0:201 'inF0' (in 3-component vector of float) -0:202 hyp. tangent (global 3-component vector of float) +0:202 hyp. tangent (temp 3-component vector of float) 0:202 'inF0' (in 3-component vector of float) -0:204 trunc (global 3-component vector of float) +0:204 trunc (temp 3-component vector of float) 0:204 'inF0' (in 3-component vector of float) 0:207 Branch: Return with expression 0:? Constant: @@ -497,49 +497,49 @@ Shader version: 450 0:211 'inU0' (in 4-component vector of uint) 0:211 'inU1' (in 4-component vector of uint) 0:? Sequence -0:212 all (global bool) +0:212 all (temp bool) 0:212 'inF0' (in 4-component vector of float) -0:213 Absolute value (global 4-component vector of float) +0:213 Absolute value (temp 4-component vector of float) 0:213 'inF0' (in 4-component vector of float) -0:214 arc cosine (global 4-component vector of float) +0:214 arc cosine (temp 4-component vector of float) 0:214 'inF0' (in 4-component vector of float) -0:215 any (global bool) +0:215 any (temp bool) 0:215 'inF0' (in 4-component vector of float) -0:216 arc sine (global 4-component vector of float) +0:216 arc sine (temp 4-component vector of float) 0:216 'inF0' (in 4-component vector of float) -0:217 floatBitsToInt (global 4-component vector of int) +0:217 floatBitsToInt (temp 4-component vector of int) 0:217 'inF0' (in 4-component vector of float) -0:218 floatBitsToUint (global 4-component vector of uint) +0:218 floatBitsToUint (temp 4-component vector of uint) 0:218 'inF0' (in 4-component vector of float) -0:219 intBitsToFloat (global 4-component vector of float) +0:219 intBitsToFloat (temp 4-component vector of float) 0:219 'inU0' (in 4-component vector of uint) -0:221 arc tangent (global 4-component vector of float) +0:221 arc tangent (temp 4-component vector of float) 0:221 'inF0' (in 4-component vector of float) -0:222 arc tangent (global 4-component vector of float) +0:222 arc tangent (temp 4-component vector of float) 0:222 'inF0' (in 4-component vector of float) 0:222 'inF1' (in 4-component vector of float) -0:223 Ceiling (global 4-component vector of float) +0:223 Ceiling (temp 4-component vector of float) 0:223 'inF0' (in 4-component vector of float) -0:224 clamp (global 4-component vector of float) +0:224 clamp (temp 4-component vector of float) 0:224 'inF0' (in 4-component vector of float) 0:224 'inF1' (in 4-component vector of float) 0:224 'inF2' (in 4-component vector of float) -0:225 cosine (global 4-component vector of float) +0:225 cosine (temp 4-component vector of float) 0:225 'inF0' (in 4-component vector of float) -0:226 hyp. cosine (global 4-component vector of float) +0:226 hyp. cosine (temp 4-component vector of float) 0:226 'inF0' (in 4-component vector of float) -0:? bitCount (global 4-component vector of uint) +0:? bitCount (temp 4-component vector of uint) 0:? Constant: 0:? 7 (const uint) 0:? 3 (const uint) 0:? 5 (const uint) 0:? 2 (const uint) -0:228 degrees (global 4-component vector of float) +0:228 degrees (temp 4-component vector of float) 0:228 'inF0' (in 4-component vector of float) -0:229 distance (global float) +0:229 distance (temp float) 0:229 'inF0' (in 4-component vector of float) 0:229 'inF1' (in 4-component vector of float) -0:230 dot-product (global float) +0:230 dot-product (temp float) 0:230 'inF0' (in 4-component vector of float) 0:230 'inF1' (in 4-component vector of float) 0:231 Construct vec4 (temp 4-component vector of float) @@ -562,82 +562,82 @@ Shader version: 450 0:231 'inF1' (in 4-component vector of float) 0:231 Constant: 0:231 3 (const int) -0:235 exp (global 4-component vector of float) +0:235 exp (temp 4-component vector of float) 0:235 'inF0' (in 4-component vector of float) -0:236 exp2 (global 4-component vector of float) +0:236 exp2 (temp 4-component vector of float) 0:236 'inF0' (in 4-component vector of float) -0:237 face-forward (global 4-component vector of float) +0:237 face-forward (temp 4-component vector of float) 0:237 'inF0' (in 4-component vector of float) 0:237 'inF1' (in 4-component vector of float) 0:237 'inF2' (in 4-component vector of float) -0:238 findMSB (global int) +0:238 findMSB (temp int) 0:238 Constant: 0:238 7 (const int) -0:239 findLSB (global int) +0:239 findLSB (temp int) 0:239 Constant: 0:239 7 (const int) -0:240 Floor (global 4-component vector of float) +0:240 Floor (temp 4-component vector of float) 0:240 'inF0' (in 4-component vector of float) -0:242 mod (global 4-component vector of float) +0:242 mod (temp 4-component vector of float) 0:242 'inF0' (in 4-component vector of float) 0:242 'inF1' (in 4-component vector of float) -0:243 Fraction (global 4-component vector of float) +0:243 Fraction (temp 4-component vector of float) 0:243 'inF0' (in 4-component vector of float) -0:244 frexp (global 4-component vector of float) +0:244 frexp (temp 4-component vector of float) 0:244 'inF0' (in 4-component vector of float) 0:244 'inF1' (in 4-component vector of float) -0:245 isinf (global 4-component vector of bool) +0:245 isinf (temp 4-component vector of bool) 0:245 'inF0' (in 4-component vector of float) -0:246 isnan (global 4-component vector of bool) +0:246 isnan (temp 4-component vector of bool) 0:246 'inF0' (in 4-component vector of float) -0:247 ldexp (global 4-component vector of float) +0:247 ldexp (temp 4-component vector of float) 0:247 'inF0' (in 4-component vector of float) 0:247 'inF1' (in 4-component vector of float) -0:248 mix (global 4-component vector of float) +0:248 mix (temp 4-component vector of float) 0:248 'inF0' (in 4-component vector of float) 0:248 'inF1' (in 4-component vector of float) 0:248 'inF2' (in 4-component vector of float) -0:249 length (global float) +0:249 length (temp float) 0:249 'inF0' (in 4-component vector of float) -0:250 log (global 4-component vector of float) +0:250 log (temp 4-component vector of float) 0:250 'inF0' (in 4-component vector of float) 0:251 vector-scale (temp 4-component vector of float) 0:251 log2 (temp 4-component vector of float) 0:251 'inF0' (in 4-component vector of float) 0:251 Constant: 0:251 0.301030 -0:252 log2 (global 4-component vector of float) +0:252 log2 (temp 4-component vector of float) 0:252 'inF0' (in 4-component vector of float) -0:253 max (global 4-component vector of float) +0:253 max (temp 4-component vector of float) 0:253 'inF0' (in 4-component vector of float) 0:253 'inF1' (in 4-component vector of float) -0:254 min (global 4-component vector of float) +0:254 min (temp 4-component vector of float) 0:254 'inF0' (in 4-component vector of float) 0:254 'inF1' (in 4-component vector of float) -0:256 normalize (global 4-component vector of float) +0:256 normalize (temp 4-component vector of float) 0:256 'inF0' (in 4-component vector of float) -0:257 pow (global 4-component vector of float) +0:257 pow (temp 4-component vector of float) 0:257 'inF0' (in 4-component vector of float) 0:257 'inF1' (in 4-component vector of float) -0:258 radians (global 4-component vector of float) +0:258 radians (temp 4-component vector of float) 0:258 'inF0' (in 4-component vector of float) -0:259 reflect (global 4-component vector of float) +0:259 reflect (temp 4-component vector of float) 0:259 'inF0' (in 4-component vector of float) 0:259 'inF1' (in 4-component vector of float) -0:260 refract (global 4-component vector of float) +0:260 refract (temp 4-component vector of float) 0:260 'inF0' (in 4-component vector of float) 0:260 'inF1' (in 4-component vector of float) 0:260 Constant: 0:260 2.000000 -0:? bitFieldReverse (global 4-component vector of uint) +0:? bitFieldReverse (temp 4-component vector of uint) 0:? Constant: 0:? 1 (const uint) 0:? 2 (const uint) 0:? 3 (const uint) 0:? 4 (const uint) -0:262 roundEven (global 4-component vector of float) +0:262 roundEven (temp 4-component vector of float) 0:262 'inF0' (in 4-component vector of float) -0:263 inverse sqrt (global 4-component vector of float) +0:263 inverse sqrt (temp 4-component vector of float) 0:263 'inF0' (in 4-component vector of float) 0:264 clamp (temp 4-component vector of float) 0:264 'inF0' (in 4-component vector of float) @@ -645,9 +645,9 @@ Shader version: 450 0:264 0.000000 0:264 Constant: 0:264 1.000000 -0:265 Sign (global 4-component vector of float) +0:265 Sign (temp 4-component vector of float) 0:265 'inF0' (in 4-component vector of float) -0:266 sine (global 4-component vector of float) +0:266 sine (temp 4-component vector of float) 0:266 'inF0' (in 4-component vector of float) 0:267 Sequence 0:267 move second child to first child (temp 4-component vector of float) @@ -658,22 +658,22 @@ Shader version: 450 0:267 'inF2' (in 4-component vector of float) 0:267 cosine (temp 4-component vector of float) 0:267 'inF0' (in 4-component vector of float) -0:268 hyp. sine (global 4-component vector of float) +0:268 hyp. sine (temp 4-component vector of float) 0:268 'inF0' (in 4-component vector of float) -0:269 smoothstep (global 4-component vector of float) +0:269 smoothstep (temp 4-component vector of float) 0:269 'inF0' (in 4-component vector of float) 0:269 'inF1' (in 4-component vector of float) 0:269 'inF2' (in 4-component vector of float) -0:270 sqrt (global 4-component vector of float) +0:270 sqrt (temp 4-component vector of float) 0:270 'inF0' (in 4-component vector of float) -0:271 step (global 4-component vector of float) +0:271 step (temp 4-component vector of float) 0:271 'inF0' (in 4-component vector of float) 0:271 'inF1' (in 4-component vector of float) -0:272 tangent (global 4-component vector of float) +0:272 tangent (temp 4-component vector of float) 0:272 'inF0' (in 4-component vector of float) -0:273 hyp. tangent (global 4-component vector of float) +0:273 hyp. tangent (temp 4-component vector of float) 0:273 'inF0' (in 4-component vector of float) -0:275 trunc (global 4-component vector of float) +0:275 trunc (temp 4-component vector of float) 0:275 'inF0' (in 4-component vector of float) 0:278 Branch: Return with expression 0:? Constant: @@ -687,85 +687,85 @@ Shader version: 450 0:336 'inF1' (in 2X2 matrix of float) 0:336 'inF2' (in 2X2 matrix of float) 0:? Sequence -0:338 all (global bool) +0:338 all (temp bool) 0:338 'inF0' (in 2X2 matrix of float) -0:338 Absolute value (global 2X2 matrix of float) +0:338 Absolute value (temp 2X2 matrix of float) 0:338 'inF0' (in 2X2 matrix of float) -0:338 arc cosine (global 2X2 matrix of float) +0:338 arc cosine (temp 2X2 matrix of float) 0:338 'inF0' (in 2X2 matrix of float) -0:338 any (global bool) +0:338 any (temp bool) 0:338 'inF0' (in 2X2 matrix of float) -0:338 arc sine (global 2X2 matrix of float) +0:338 arc sine (temp 2X2 matrix of float) 0:338 'inF0' (in 2X2 matrix of float) -0:338 arc tangent (global 2X2 matrix of float) +0:338 arc tangent (temp 2X2 matrix of float) 0:338 'inF0' (in 2X2 matrix of float) -0:338 arc tangent (global 2X2 matrix of float) +0:338 arc tangent (temp 2X2 matrix of float) 0:338 'inF0' (in 2X2 matrix of float) 0:338 'inF1' (in 2X2 matrix of float) -0:338 Ceiling (global 2X2 matrix of float) +0:338 Ceiling (temp 2X2 matrix of float) 0:338 'inF0' (in 2X2 matrix of float) -0:338 clamp (global 2X2 matrix of float) +0:338 clamp (temp 2X2 matrix of float) 0:338 'inF0' (in 2X2 matrix of float) 0:338 'inF1' (in 2X2 matrix of float) 0:338 'inF2' (in 2X2 matrix of float) -0:338 cosine (global 2X2 matrix of float) +0:338 cosine (temp 2X2 matrix of float) 0:338 'inF0' (in 2X2 matrix of float) -0:338 hyp. cosine (global 2X2 matrix of float) +0:338 hyp. cosine (temp 2X2 matrix of float) 0:338 'inF0' (in 2X2 matrix of float) -0:338 degrees (global 2X2 matrix of float) +0:338 degrees (temp 2X2 matrix of float) 0:338 'inF0' (in 2X2 matrix of float) -0:338 determinant (global float) +0:338 determinant (temp float) 0:338 'inF0' (in 2X2 matrix of float) -0:338 exp (global 2X2 matrix of float) +0:338 exp (temp 2X2 matrix of float) 0:338 'inF0' (in 2X2 matrix of float) -0:338 exp2 (global 2X2 matrix of float) +0:338 exp2 (temp 2X2 matrix of float) 0:338 'inF0' (in 2X2 matrix of float) -0:338 findMSB (global int) +0:338 findMSB (temp int) 0:338 Constant: 0:338 7 (const int) -0:338 findLSB (global int) +0:338 findLSB (temp int) 0:338 Constant: 0:338 7 (const int) -0:338 Floor (global 2X2 matrix of float) +0:338 Floor (temp 2X2 matrix of float) 0:338 'inF0' (in 2X2 matrix of float) -0:338 mod (global 2X2 matrix of float) +0:338 mod (temp 2X2 matrix of float) 0:338 'inF0' (in 2X2 matrix of float) 0:338 'inF1' (in 2X2 matrix of float) -0:338 Fraction (global 2X2 matrix of float) +0:338 Fraction (temp 2X2 matrix of float) 0:338 'inF0' (in 2X2 matrix of float) -0:338 frexp (global 2X2 matrix of float) +0:338 frexp (temp 2X2 matrix of float) 0:338 'inF0' (in 2X2 matrix of float) 0:338 'inF1' (in 2X2 matrix of float) -0:338 ldexp (global 2X2 matrix of float) +0:338 ldexp (temp 2X2 matrix of float) 0:338 'inF0' (in 2X2 matrix of float) 0:338 'inF1' (in 2X2 matrix of float) -0:338 mix (global 2X2 matrix of float) +0:338 mix (temp 2X2 matrix of float) 0:338 'inF0' (in 2X2 matrix of float) 0:338 'inF1' (in 2X2 matrix of float) 0:338 'inF2' (in 2X2 matrix of float) -0:338 log (global 2X2 matrix of float) +0:338 log (temp 2X2 matrix of float) 0:338 'inF0' (in 2X2 matrix of float) 0:338 matrix-scale (temp 2X2 matrix of float) 0:338 log2 (temp 2X2 matrix of float) 0:338 'inF0' (in 2X2 matrix of float) 0:338 Constant: 0:338 0.301030 -0:338 log2 (global 2X2 matrix of float) +0:338 log2 (temp 2X2 matrix of float) 0:338 'inF0' (in 2X2 matrix of float) -0:338 max (global 2X2 matrix of float) +0:338 max (temp 2X2 matrix of float) 0:338 'inF0' (in 2X2 matrix of float) 0:338 'inF1' (in 2X2 matrix of float) -0:338 min (global 2X2 matrix of float) +0:338 min (temp 2X2 matrix of float) 0:338 'inF0' (in 2X2 matrix of float) 0:338 'inF1' (in 2X2 matrix of float) -0:338 pow (global 2X2 matrix of float) +0:338 pow (temp 2X2 matrix of float) 0:338 'inF0' (in 2X2 matrix of float) 0:338 'inF1' (in 2X2 matrix of float) -0:338 radians (global 2X2 matrix of float) +0:338 radians (temp 2X2 matrix of float) 0:338 'inF0' (in 2X2 matrix of float) -0:338 roundEven (global 2X2 matrix of float) +0:338 roundEven (temp 2X2 matrix of float) 0:338 'inF0' (in 2X2 matrix of float) -0:338 inverse sqrt (global 2X2 matrix of float) +0:338 inverse sqrt (temp 2X2 matrix of float) 0:338 'inF0' (in 2X2 matrix of float) 0:338 clamp (temp 2X2 matrix of float) 0:338 'inF0' (in 2X2 matrix of float) @@ -773,9 +773,9 @@ Shader version: 450 0:338 0.000000 0:338 Constant: 0:338 1.000000 -0:338 Sign (global 2X2 matrix of float) +0:338 Sign (temp 2X2 matrix of float) 0:338 'inF0' (in 2X2 matrix of float) -0:338 sine (global 2X2 matrix of float) +0:338 sine (temp 2X2 matrix of float) 0:338 'inF0' (in 2X2 matrix of float) 0:338 Sequence 0:338 move second child to first child (temp 2X2 matrix of float) @@ -786,24 +786,24 @@ Shader version: 450 0:338 'inF2' (in 2X2 matrix of float) 0:338 cosine (temp 2X2 matrix of float) 0:338 'inF0' (in 2X2 matrix of float) -0:338 hyp. sine (global 2X2 matrix of float) +0:338 hyp. sine (temp 2X2 matrix of float) 0:338 'inF0' (in 2X2 matrix of float) -0:338 smoothstep (global 2X2 matrix of float) +0:338 smoothstep (temp 2X2 matrix of float) 0:338 'inF0' (in 2X2 matrix of float) 0:338 'inF1' (in 2X2 matrix of float) 0:338 'inF2' (in 2X2 matrix of float) -0:338 sqrt (global 2X2 matrix of float) +0:338 sqrt (temp 2X2 matrix of float) 0:338 'inF0' (in 2X2 matrix of float) -0:338 step (global 2X2 matrix of float) +0:338 step (temp 2X2 matrix of float) 0:338 'inF0' (in 2X2 matrix of float) 0:338 'inF1' (in 2X2 matrix of float) -0:338 tangent (global 2X2 matrix of float) +0:338 tangent (temp 2X2 matrix of float) 0:338 'inF0' (in 2X2 matrix of float) -0:338 hyp. tangent (global 2X2 matrix of float) +0:338 hyp. tangent (temp 2X2 matrix of float) 0:338 'inF0' (in 2X2 matrix of float) -0:338 transpose (global 2X2 matrix of float) +0:338 transpose (temp 2X2 matrix of float) 0:338 'inF0' (in 2X2 matrix of float) -0:338 trunc (global 2X2 matrix of float) +0:338 trunc (temp 2X2 matrix of float) 0:338 'inF0' (in 2X2 matrix of float) 0:341 Branch: Return with expression 0:? Constant: @@ -817,85 +817,85 @@ Shader version: 450 0:345 'inF1' (in 3X3 matrix of float) 0:345 'inF2' (in 3X3 matrix of float) 0:? Sequence -0:347 all (global bool) +0:347 all (temp bool) 0:347 'inF0' (in 3X3 matrix of float) -0:347 Absolute value (global 3X3 matrix of float) +0:347 Absolute value (temp 3X3 matrix of float) 0:347 'inF0' (in 3X3 matrix of float) -0:347 arc cosine (global 3X3 matrix of float) +0:347 arc cosine (temp 3X3 matrix of float) 0:347 'inF0' (in 3X3 matrix of float) -0:347 any (global bool) +0:347 any (temp bool) 0:347 'inF0' (in 3X3 matrix of float) -0:347 arc sine (global 3X3 matrix of float) +0:347 arc sine (temp 3X3 matrix of float) 0:347 'inF0' (in 3X3 matrix of float) -0:347 arc tangent (global 3X3 matrix of float) +0:347 arc tangent (temp 3X3 matrix of float) 0:347 'inF0' (in 3X3 matrix of float) -0:347 arc tangent (global 3X3 matrix of float) +0:347 arc tangent (temp 3X3 matrix of float) 0:347 'inF0' (in 3X3 matrix of float) 0:347 'inF1' (in 3X3 matrix of float) -0:347 Ceiling (global 3X3 matrix of float) +0:347 Ceiling (temp 3X3 matrix of float) 0:347 'inF0' (in 3X3 matrix of float) -0:347 clamp (global 3X3 matrix of float) +0:347 clamp (temp 3X3 matrix of float) 0:347 'inF0' (in 3X3 matrix of float) 0:347 'inF1' (in 3X3 matrix of float) 0:347 'inF2' (in 3X3 matrix of float) -0:347 cosine (global 3X3 matrix of float) +0:347 cosine (temp 3X3 matrix of float) 0:347 'inF0' (in 3X3 matrix of float) -0:347 hyp. cosine (global 3X3 matrix of float) +0:347 hyp. cosine (temp 3X3 matrix of float) 0:347 'inF0' (in 3X3 matrix of float) -0:347 degrees (global 3X3 matrix of float) +0:347 degrees (temp 3X3 matrix of float) 0:347 'inF0' (in 3X3 matrix of float) -0:347 determinant (global float) +0:347 determinant (temp float) 0:347 'inF0' (in 3X3 matrix of float) -0:347 exp (global 3X3 matrix of float) +0:347 exp (temp 3X3 matrix of float) 0:347 'inF0' (in 3X3 matrix of float) -0:347 exp2 (global 3X3 matrix of float) +0:347 exp2 (temp 3X3 matrix of float) 0:347 'inF0' (in 3X3 matrix of float) -0:347 findMSB (global int) +0:347 findMSB (temp int) 0:347 Constant: 0:347 7 (const int) -0:347 findLSB (global int) +0:347 findLSB (temp int) 0:347 Constant: 0:347 7 (const int) -0:347 Floor (global 3X3 matrix of float) +0:347 Floor (temp 3X3 matrix of float) 0:347 'inF0' (in 3X3 matrix of float) -0:347 mod (global 3X3 matrix of float) +0:347 mod (temp 3X3 matrix of float) 0:347 'inF0' (in 3X3 matrix of float) 0:347 'inF1' (in 3X3 matrix of float) -0:347 Fraction (global 3X3 matrix of float) +0:347 Fraction (temp 3X3 matrix of float) 0:347 'inF0' (in 3X3 matrix of float) -0:347 frexp (global 3X3 matrix of float) +0:347 frexp (temp 3X3 matrix of float) 0:347 'inF0' (in 3X3 matrix of float) 0:347 'inF1' (in 3X3 matrix of float) -0:347 ldexp (global 3X3 matrix of float) +0:347 ldexp (temp 3X3 matrix of float) 0:347 'inF0' (in 3X3 matrix of float) 0:347 'inF1' (in 3X3 matrix of float) -0:347 mix (global 3X3 matrix of float) +0:347 mix (temp 3X3 matrix of float) 0:347 'inF0' (in 3X3 matrix of float) 0:347 'inF1' (in 3X3 matrix of float) 0:347 'inF2' (in 3X3 matrix of float) -0:347 log (global 3X3 matrix of float) +0:347 log (temp 3X3 matrix of float) 0:347 'inF0' (in 3X3 matrix of float) 0:347 matrix-scale (temp 3X3 matrix of float) 0:347 log2 (temp 3X3 matrix of float) 0:347 'inF0' (in 3X3 matrix of float) 0:347 Constant: 0:347 0.301030 -0:347 log2 (global 3X3 matrix of float) +0:347 log2 (temp 3X3 matrix of float) 0:347 'inF0' (in 3X3 matrix of float) -0:347 max (global 3X3 matrix of float) +0:347 max (temp 3X3 matrix of float) 0:347 'inF0' (in 3X3 matrix of float) 0:347 'inF1' (in 3X3 matrix of float) -0:347 min (global 3X3 matrix of float) +0:347 min (temp 3X3 matrix of float) 0:347 'inF0' (in 3X3 matrix of float) 0:347 'inF1' (in 3X3 matrix of float) -0:347 pow (global 3X3 matrix of float) +0:347 pow (temp 3X3 matrix of float) 0:347 'inF0' (in 3X3 matrix of float) 0:347 'inF1' (in 3X3 matrix of float) -0:347 radians (global 3X3 matrix of float) +0:347 radians (temp 3X3 matrix of float) 0:347 'inF0' (in 3X3 matrix of float) -0:347 roundEven (global 3X3 matrix of float) +0:347 roundEven (temp 3X3 matrix of float) 0:347 'inF0' (in 3X3 matrix of float) -0:347 inverse sqrt (global 3X3 matrix of float) +0:347 inverse sqrt (temp 3X3 matrix of float) 0:347 'inF0' (in 3X3 matrix of float) 0:347 clamp (temp 3X3 matrix of float) 0:347 'inF0' (in 3X3 matrix of float) @@ -903,9 +903,9 @@ Shader version: 450 0:347 0.000000 0:347 Constant: 0:347 1.000000 -0:347 Sign (global 3X3 matrix of float) +0:347 Sign (temp 3X3 matrix of float) 0:347 'inF0' (in 3X3 matrix of float) -0:347 sine (global 3X3 matrix of float) +0:347 sine (temp 3X3 matrix of float) 0:347 'inF0' (in 3X3 matrix of float) 0:347 Sequence 0:347 move second child to first child (temp 3X3 matrix of float) @@ -916,24 +916,24 @@ Shader version: 450 0:347 'inF2' (in 3X3 matrix of float) 0:347 cosine (temp 3X3 matrix of float) 0:347 'inF0' (in 3X3 matrix of float) -0:347 hyp. sine (global 3X3 matrix of float) +0:347 hyp. sine (temp 3X3 matrix of float) 0:347 'inF0' (in 3X3 matrix of float) -0:347 smoothstep (global 3X3 matrix of float) +0:347 smoothstep (temp 3X3 matrix of float) 0:347 'inF0' (in 3X3 matrix of float) 0:347 'inF1' (in 3X3 matrix of float) 0:347 'inF2' (in 3X3 matrix of float) -0:347 sqrt (global 3X3 matrix of float) +0:347 sqrt (temp 3X3 matrix of float) 0:347 'inF0' (in 3X3 matrix of float) -0:347 step (global 3X3 matrix of float) +0:347 step (temp 3X3 matrix of float) 0:347 'inF0' (in 3X3 matrix of float) 0:347 'inF1' (in 3X3 matrix of float) -0:347 tangent (global 3X3 matrix of float) +0:347 tangent (temp 3X3 matrix of float) 0:347 'inF0' (in 3X3 matrix of float) -0:347 hyp. tangent (global 3X3 matrix of float) +0:347 hyp. tangent (temp 3X3 matrix of float) 0:347 'inF0' (in 3X3 matrix of float) -0:347 transpose (global 3X3 matrix of float) +0:347 transpose (temp 3X3 matrix of float) 0:347 'inF0' (in 3X3 matrix of float) -0:347 trunc (global 3X3 matrix of float) +0:347 trunc (temp 3X3 matrix of float) 0:347 'inF0' (in 3X3 matrix of float) 0:350 Branch: Return with expression 0:? Constant: @@ -952,85 +952,85 @@ Shader version: 450 0:354 'inF1' (in 4X4 matrix of float) 0:354 'inF2' (in 4X4 matrix of float) 0:? Sequence -0:356 all (global bool) +0:356 all (temp bool) 0:356 'inF0' (in 4X4 matrix of float) -0:356 Absolute value (global 4X4 matrix of float) +0:356 Absolute value (temp 4X4 matrix of float) 0:356 'inF0' (in 4X4 matrix of float) -0:356 arc cosine (global 4X4 matrix of float) +0:356 arc cosine (temp 4X4 matrix of float) 0:356 'inF0' (in 4X4 matrix of float) -0:356 any (global bool) +0:356 any (temp bool) 0:356 'inF0' (in 4X4 matrix of float) -0:356 arc sine (global 4X4 matrix of float) +0:356 arc sine (temp 4X4 matrix of float) 0:356 'inF0' (in 4X4 matrix of float) -0:356 arc tangent (global 4X4 matrix of float) +0:356 arc tangent (temp 4X4 matrix of float) 0:356 'inF0' (in 4X4 matrix of float) -0:356 arc tangent (global 4X4 matrix of float) +0:356 arc tangent (temp 4X4 matrix of float) 0:356 'inF0' (in 4X4 matrix of float) 0:356 'inF1' (in 4X4 matrix of float) -0:356 Ceiling (global 4X4 matrix of float) +0:356 Ceiling (temp 4X4 matrix of float) 0:356 'inF0' (in 4X4 matrix of float) -0:356 clamp (global 4X4 matrix of float) +0:356 clamp (temp 4X4 matrix of float) 0:356 'inF0' (in 4X4 matrix of float) 0:356 'inF1' (in 4X4 matrix of float) 0:356 'inF2' (in 4X4 matrix of float) -0:356 cosine (global 4X4 matrix of float) +0:356 cosine (temp 4X4 matrix of float) 0:356 'inF0' (in 4X4 matrix of float) -0:356 hyp. cosine (global 4X4 matrix of float) +0:356 hyp. cosine (temp 4X4 matrix of float) 0:356 'inF0' (in 4X4 matrix of float) -0:356 degrees (global 4X4 matrix of float) +0:356 degrees (temp 4X4 matrix of float) 0:356 'inF0' (in 4X4 matrix of float) -0:356 determinant (global float) +0:356 determinant (temp float) 0:356 'inF0' (in 4X4 matrix of float) -0:356 exp (global 4X4 matrix of float) +0:356 exp (temp 4X4 matrix of float) 0:356 'inF0' (in 4X4 matrix of float) -0:356 exp2 (global 4X4 matrix of float) +0:356 exp2 (temp 4X4 matrix of float) 0:356 'inF0' (in 4X4 matrix of float) -0:356 findMSB (global int) +0:356 findMSB (temp int) 0:356 Constant: 0:356 7 (const int) -0:356 findLSB (global int) +0:356 findLSB (temp int) 0:356 Constant: 0:356 7 (const int) -0:356 Floor (global 4X4 matrix of float) +0:356 Floor (temp 4X4 matrix of float) 0:356 'inF0' (in 4X4 matrix of float) -0:356 mod (global 4X4 matrix of float) +0:356 mod (temp 4X4 matrix of float) 0:356 'inF0' (in 4X4 matrix of float) 0:356 'inF1' (in 4X4 matrix of float) -0:356 Fraction (global 4X4 matrix of float) +0:356 Fraction (temp 4X4 matrix of float) 0:356 'inF0' (in 4X4 matrix of float) -0:356 frexp (global 4X4 matrix of float) +0:356 frexp (temp 4X4 matrix of float) 0:356 'inF0' (in 4X4 matrix of float) 0:356 'inF1' (in 4X4 matrix of float) -0:356 ldexp (global 4X4 matrix of float) +0:356 ldexp (temp 4X4 matrix of float) 0:356 'inF0' (in 4X4 matrix of float) 0:356 'inF1' (in 4X4 matrix of float) -0:356 mix (global 4X4 matrix of float) +0:356 mix (temp 4X4 matrix of float) 0:356 'inF0' (in 4X4 matrix of float) 0:356 'inF1' (in 4X4 matrix of float) 0:356 'inF2' (in 4X4 matrix of float) -0:356 log (global 4X4 matrix of float) +0:356 log (temp 4X4 matrix of float) 0:356 'inF0' (in 4X4 matrix of float) 0:356 matrix-scale (temp 4X4 matrix of float) 0:356 log2 (temp 4X4 matrix of float) 0:356 'inF0' (in 4X4 matrix of float) 0:356 Constant: 0:356 0.301030 -0:356 log2 (global 4X4 matrix of float) +0:356 log2 (temp 4X4 matrix of float) 0:356 'inF0' (in 4X4 matrix of float) -0:356 max (global 4X4 matrix of float) +0:356 max (temp 4X4 matrix of float) 0:356 'inF0' (in 4X4 matrix of float) 0:356 'inF1' (in 4X4 matrix of float) -0:356 min (global 4X4 matrix of float) +0:356 min (temp 4X4 matrix of float) 0:356 'inF0' (in 4X4 matrix of float) 0:356 'inF1' (in 4X4 matrix of float) -0:356 pow (global 4X4 matrix of float) +0:356 pow (temp 4X4 matrix of float) 0:356 'inF0' (in 4X4 matrix of float) 0:356 'inF1' (in 4X4 matrix of float) -0:356 radians (global 4X4 matrix of float) +0:356 radians (temp 4X4 matrix of float) 0:356 'inF0' (in 4X4 matrix of float) -0:356 roundEven (global 4X4 matrix of float) +0:356 roundEven (temp 4X4 matrix of float) 0:356 'inF0' (in 4X4 matrix of float) -0:356 inverse sqrt (global 4X4 matrix of float) +0:356 inverse sqrt (temp 4X4 matrix of float) 0:356 'inF0' (in 4X4 matrix of float) 0:356 clamp (temp 4X4 matrix of float) 0:356 'inF0' (in 4X4 matrix of float) @@ -1038,9 +1038,9 @@ Shader version: 450 0:356 0.000000 0:356 Constant: 0:356 1.000000 -0:356 Sign (global 4X4 matrix of float) +0:356 Sign (temp 4X4 matrix of float) 0:356 'inF0' (in 4X4 matrix of float) -0:356 sine (global 4X4 matrix of float) +0:356 sine (temp 4X4 matrix of float) 0:356 'inF0' (in 4X4 matrix of float) 0:356 Sequence 0:356 move second child to first child (temp 4X4 matrix of float) @@ -1051,24 +1051,24 @@ Shader version: 450 0:356 'inF2' (in 4X4 matrix of float) 0:356 cosine (temp 4X4 matrix of float) 0:356 'inF0' (in 4X4 matrix of float) -0:356 hyp. sine (global 4X4 matrix of float) +0:356 hyp. sine (temp 4X4 matrix of float) 0:356 'inF0' (in 4X4 matrix of float) -0:356 smoothstep (global 4X4 matrix of float) +0:356 smoothstep (temp 4X4 matrix of float) 0:356 'inF0' (in 4X4 matrix of float) 0:356 'inF1' (in 4X4 matrix of float) 0:356 'inF2' (in 4X4 matrix of float) -0:356 sqrt (global 4X4 matrix of float) +0:356 sqrt (temp 4X4 matrix of float) 0:356 'inF0' (in 4X4 matrix of float) -0:356 step (global 4X4 matrix of float) +0:356 step (temp 4X4 matrix of float) 0:356 'inF0' (in 4X4 matrix of float) 0:356 'inF1' (in 4X4 matrix of float) -0:356 tangent (global 4X4 matrix of float) +0:356 tangent (temp 4X4 matrix of float) 0:356 'inF0' (in 4X4 matrix of float) -0:356 hyp. tangent (global 4X4 matrix of float) +0:356 hyp. tangent (temp 4X4 matrix of float) 0:356 'inF0' (in 4X4 matrix of float) -0:356 transpose (global 4X4 matrix of float) +0:356 transpose (temp 4X4 matrix of float) 0:356 'inF0' (in 4X4 matrix of float) -0:356 trunc (global 4X4 matrix of float) +0:356 trunc (temp 4X4 matrix of float) 0:356 'inF0' (in 4X4 matrix of float) 0:359 Branch: Return with expression 0:? Constant: @@ -1118,7 +1118,7 @@ Shader version: 450 0:378 Sequence 0:378 move second child to first child (temp float) 0:378 'r3' (temp float) -0:378 dot-product (global float) +0:378 dot-product (temp float) 0:378 'inFV0' (in 2-component vector of float) 0:378 'inFV1' (in 2-component vector of float) 0:378 Sequence @@ -1181,7 +1181,7 @@ Shader version: 450 0:385 Sequence 0:385 move second child to first child (temp float) 0:385 'r3' (temp float) -0:385 dot-product (global float) +0:385 dot-product (temp float) 0:385 'inFV0' (in 3-component vector of float) 0:385 'inFV1' (in 3-component vector of float) 0:385 Sequence @@ -1244,7 +1244,7 @@ Shader version: 450 0:392 Sequence 0:392 move second child to first child (temp float) 0:392 'r3' (temp float) -0:392 dot-product (global float) +0:392 dot-product (temp float) 0:392 'inFV0' (in 4-component vector of float) 0:392 'inFV1' (in 4-component vector of float) 0:392 Sequence @@ -1322,13 +1322,13 @@ Shader version: 450 0:407 Sequence 0:407 move second child to first child (temp float) 0:407 'r05' (temp float) -0:407 dot-product (global float) +0:407 dot-product (temp float) 0:407 'inFV2' (in 2-component vector of float) 0:407 'inFV2' (in 2-component vector of float) 0:408 Sequence 0:408 move second child to first child (temp float) 0:408 'r06' (temp float) -0:408 dot-product (global float) +0:408 dot-product (temp float) 0:408 'inFV3' (in 3-component vector of float) 0:408 'inFV3' (in 3-component vector of float) 0:409 Sequence @@ -1407,99 +1407,99 @@ Shader version: 450 0:2 'inU0' (in uint) 0:2 'inU1' (in uint) 0:? Sequence -0:3 all (global bool) +0:3 all (temp bool) 0:3 'inF0' (in float) -0:4 Absolute value (global float) +0:4 Absolute value (temp float) 0:4 'inF0' (in float) -0:5 arc cosine (global float) +0:5 arc cosine (temp float) 0:5 'inF0' (in float) -0:6 any (global bool) +0:6 any (temp bool) 0:6 'inF0' (in float) -0:7 arc sine (global float) +0:7 arc sine (temp float) 0:7 'inF0' (in float) -0:8 floatBitsToInt (global int) +0:8 floatBitsToInt (temp int) 0:8 'inF0' (in float) -0:9 floatBitsToUint (global uint) +0:9 floatBitsToUint (temp uint) 0:9 'inF0' (in float) -0:10 intBitsToFloat (global float) +0:10 intBitsToFloat (temp float) 0:10 'inU0' (in uint) -0:12 arc tangent (global float) +0:12 arc tangent (temp float) 0:12 'inF0' (in float) -0:13 arc tangent (global float) +0:13 arc tangent (temp float) 0:13 'inF0' (in float) 0:13 'inF1' (in float) -0:14 Ceiling (global float) +0:14 Ceiling (temp float) 0:14 'inF0' (in float) -0:15 clamp (global float) +0:15 clamp (temp float) 0:15 'inF0' (in float) 0:15 'inF1' (in float) 0:15 'inF2' (in float) -0:16 cosine (global float) +0:16 cosine (temp float) 0:16 'inF0' (in float) -0:17 hyp. cosine (global float) +0:17 hyp. cosine (temp float) 0:17 'inF0' (in float) -0:18 bitCount (global uint) +0:18 bitCount (temp uint) 0:18 Constant: 0:18 7 (const uint) -0:19 degrees (global float) +0:19 degrees (temp float) 0:19 'inF0' (in float) -0:23 exp (global float) +0:23 exp (temp float) 0:23 'inF0' (in float) -0:24 exp2 (global float) +0:24 exp2 (temp float) 0:24 'inF0' (in float) -0:25 findMSB (global int) +0:25 findMSB (temp int) 0:25 Constant: 0:25 7 (const int) -0:26 findLSB (global int) +0:26 findLSB (temp int) 0:26 Constant: 0:26 7 (const int) -0:27 Floor (global float) +0:27 Floor (temp float) 0:27 'inF0' (in float) -0:29 mod (global float) +0:29 mod (temp float) 0:29 'inF0' (in float) 0:29 'inF1' (in float) -0:30 Fraction (global float) +0:30 Fraction (temp float) 0:30 'inF0' (in float) -0:31 frexp (global float) +0:31 frexp (temp float) 0:31 'inF0' (in float) 0:31 'inF1' (in float) -0:32 isinf (global bool) +0:32 isinf (temp bool) 0:32 'inF0' (in float) -0:33 isnan (global bool) +0:33 isnan (temp bool) 0:33 'inF0' (in float) -0:34 ldexp (global float) +0:34 ldexp (temp float) 0:34 'inF0' (in float) 0:34 'inF1' (in float) -0:35 mix (global float) +0:35 mix (temp float) 0:35 'inF0' (in float) 0:35 'inF1' (in float) 0:35 'inF2' (in float) -0:36 log (global float) +0:36 log (temp float) 0:36 'inF0' (in float) 0:37 component-wise multiply (temp float) 0:37 log2 (temp float) 0:37 'inF0' (in float) 0:37 Constant: 0:37 0.301030 -0:38 log2 (global float) +0:38 log2 (temp float) 0:38 'inF0' (in float) -0:39 max (global float) +0:39 max (temp float) 0:39 'inF0' (in float) 0:39 'inF1' (in float) -0:40 min (global float) +0:40 min (temp float) 0:40 'inF0' (in float) 0:40 'inF1' (in float) -0:42 pow (global float) +0:42 pow (temp float) 0:42 'inF0' (in float) 0:42 'inF1' (in float) -0:43 radians (global float) +0:43 radians (temp float) 0:43 'inF0' (in float) -0:44 bitFieldReverse (global uint) +0:44 bitFieldReverse (temp uint) 0:44 Constant: 0:44 2 (const uint) -0:45 roundEven (global float) +0:45 roundEven (temp float) 0:45 'inF0' (in float) -0:46 inverse sqrt (global float) +0:46 inverse sqrt (temp float) 0:46 'inF0' (in float) 0:47 clamp (temp float) 0:47 'inF0' (in float) @@ -1507,9 +1507,9 @@ Shader version: 450 0:47 0.000000 0:47 Constant: 0:47 1.000000 -0:48 Sign (global float) +0:48 Sign (temp float) 0:48 'inF0' (in float) -0:49 sine (global float) +0:49 sine (temp float) 0:49 'inF0' (in float) 0:50 Sequence 0:50 move second child to first child (temp float) @@ -1520,22 +1520,22 @@ Shader version: 450 0:50 'inF2' (in float) 0:50 cosine (temp float) 0:50 'inF0' (in float) -0:51 hyp. sine (global float) +0:51 hyp. sine (temp float) 0:51 'inF0' (in float) -0:52 smoothstep (global float) +0:52 smoothstep (temp float) 0:52 'inF0' (in float) 0:52 'inF1' (in float) 0:52 'inF2' (in float) -0:53 sqrt (global float) +0:53 sqrt (temp float) 0:53 'inF0' (in float) -0:54 step (global float) +0:54 step (temp float) 0:54 'inF0' (in float) 0:54 'inF1' (in float) -0:55 tangent (global float) +0:55 tangent (temp float) 0:55 'inF0' (in float) -0:56 hyp. tangent (global float) +0:56 hyp. tangent (temp float) 0:56 'inF0' (in float) -0:58 trunc (global float) +0:58 trunc (temp float) 0:58 'inF0' (in float) 0:60 Branch: Return with expression 0:60 Constant: @@ -1557,123 +1557,123 @@ Shader version: 450 0:70 'inU0' (in 2-component vector of uint) 0:70 'inU1' (in 2-component vector of uint) 0:? Sequence -0:71 all (global bool) +0:71 all (temp bool) 0:71 'inF0' (in 2-component vector of float) -0:72 Absolute value (global 2-component vector of float) +0:72 Absolute value (temp 2-component vector of float) 0:72 'inF0' (in 2-component vector of float) -0:73 arc cosine (global 2-component vector of float) +0:73 arc cosine (temp 2-component vector of float) 0:73 'inF0' (in 2-component vector of float) -0:74 any (global bool) +0:74 any (temp bool) 0:74 'inF0' (in 2-component vector of float) -0:75 arc sine (global 2-component vector of float) +0:75 arc sine (temp 2-component vector of float) 0:75 'inF0' (in 2-component vector of float) -0:76 floatBitsToInt (global 2-component vector of int) +0:76 floatBitsToInt (temp 2-component vector of int) 0:76 'inF0' (in 2-component vector of float) -0:77 floatBitsToUint (global 2-component vector of uint) +0:77 floatBitsToUint (temp 2-component vector of uint) 0:77 'inF0' (in 2-component vector of float) -0:78 intBitsToFloat (global 2-component vector of float) +0:78 intBitsToFloat (temp 2-component vector of float) 0:78 'inU0' (in 2-component vector of uint) -0:80 arc tangent (global 2-component vector of float) +0:80 arc tangent (temp 2-component vector of float) 0:80 'inF0' (in 2-component vector of float) -0:81 arc tangent (global 2-component vector of float) +0:81 arc tangent (temp 2-component vector of float) 0:81 'inF0' (in 2-component vector of float) 0:81 'inF1' (in 2-component vector of float) -0:82 Ceiling (global 2-component vector of float) +0:82 Ceiling (temp 2-component vector of float) 0:82 'inF0' (in 2-component vector of float) -0:83 clamp (global 2-component vector of float) +0:83 clamp (temp 2-component vector of float) 0:83 'inF0' (in 2-component vector of float) 0:83 'inF1' (in 2-component vector of float) 0:83 'inF2' (in 2-component vector of float) -0:84 cosine (global 2-component vector of float) +0:84 cosine (temp 2-component vector of float) 0:84 'inF0' (in 2-component vector of float) -0:85 hyp. cosine (global 2-component vector of float) +0:85 hyp. cosine (temp 2-component vector of float) 0:85 'inF0' (in 2-component vector of float) -0:? bitCount (global 2-component vector of uint) +0:? bitCount (temp 2-component vector of uint) 0:? Constant: 0:? 7 (const uint) 0:? 3 (const uint) -0:87 degrees (global 2-component vector of float) +0:87 degrees (temp 2-component vector of float) 0:87 'inF0' (in 2-component vector of float) -0:88 distance (global float) +0:88 distance (temp float) 0:88 'inF0' (in 2-component vector of float) 0:88 'inF1' (in 2-component vector of float) -0:89 dot-product (global float) +0:89 dot-product (temp float) 0:89 'inF0' (in 2-component vector of float) 0:89 'inF1' (in 2-component vector of float) -0:93 exp (global 2-component vector of float) +0:93 exp (temp 2-component vector of float) 0:93 'inF0' (in 2-component vector of float) -0:94 exp2 (global 2-component vector of float) +0:94 exp2 (temp 2-component vector of float) 0:94 'inF0' (in 2-component vector of float) -0:95 face-forward (global 2-component vector of float) +0:95 face-forward (temp 2-component vector of float) 0:95 'inF0' (in 2-component vector of float) 0:95 'inF1' (in 2-component vector of float) 0:95 'inF2' (in 2-component vector of float) -0:96 findMSB (global int) +0:96 findMSB (temp int) 0:96 Constant: 0:96 7 (const int) -0:97 findLSB (global int) +0:97 findLSB (temp int) 0:97 Constant: 0:97 7 (const int) -0:98 Floor (global 2-component vector of float) +0:98 Floor (temp 2-component vector of float) 0:98 'inF0' (in 2-component vector of float) -0:100 mod (global 2-component vector of float) +0:100 mod (temp 2-component vector of float) 0:100 'inF0' (in 2-component vector of float) 0:100 'inF1' (in 2-component vector of float) -0:101 Fraction (global 2-component vector of float) +0:101 Fraction (temp 2-component vector of float) 0:101 'inF0' (in 2-component vector of float) -0:102 frexp (global 2-component vector of float) +0:102 frexp (temp 2-component vector of float) 0:102 'inF0' (in 2-component vector of float) 0:102 'inF1' (in 2-component vector of float) -0:103 isinf (global 2-component vector of bool) +0:103 isinf (temp 2-component vector of bool) 0:103 'inF0' (in 2-component vector of float) -0:104 isnan (global 2-component vector of bool) +0:104 isnan (temp 2-component vector of bool) 0:104 'inF0' (in 2-component vector of float) -0:105 ldexp (global 2-component vector of float) +0:105 ldexp (temp 2-component vector of float) 0:105 'inF0' (in 2-component vector of float) 0:105 'inF1' (in 2-component vector of float) -0:106 mix (global 2-component vector of float) +0:106 mix (temp 2-component vector of float) 0:106 'inF0' (in 2-component vector of float) 0:106 'inF1' (in 2-component vector of float) 0:106 'inF2' (in 2-component vector of float) -0:107 length (global float) +0:107 length (temp float) 0:107 'inF0' (in 2-component vector of float) -0:108 log (global 2-component vector of float) +0:108 log (temp 2-component vector of float) 0:108 'inF0' (in 2-component vector of float) 0:109 vector-scale (temp 2-component vector of float) 0:109 log2 (temp 2-component vector of float) 0:109 'inF0' (in 2-component vector of float) 0:109 Constant: 0:109 0.301030 -0:110 log2 (global 2-component vector of float) +0:110 log2 (temp 2-component vector of float) 0:110 'inF0' (in 2-component vector of float) -0:111 max (global 2-component vector of float) +0:111 max (temp 2-component vector of float) 0:111 'inF0' (in 2-component vector of float) 0:111 'inF1' (in 2-component vector of float) -0:112 min (global 2-component vector of float) +0:112 min (temp 2-component vector of float) 0:112 'inF0' (in 2-component vector of float) 0:112 'inF1' (in 2-component vector of float) -0:114 normalize (global 2-component vector of float) +0:114 normalize (temp 2-component vector of float) 0:114 'inF0' (in 2-component vector of float) -0:115 pow (global 2-component vector of float) +0:115 pow (temp 2-component vector of float) 0:115 'inF0' (in 2-component vector of float) 0:115 'inF1' (in 2-component vector of float) -0:116 radians (global 2-component vector of float) +0:116 radians (temp 2-component vector of float) 0:116 'inF0' (in 2-component vector of float) -0:117 reflect (global 2-component vector of float) +0:117 reflect (temp 2-component vector of float) 0:117 'inF0' (in 2-component vector of float) 0:117 'inF1' (in 2-component vector of float) -0:118 refract (global 2-component vector of float) +0:118 refract (temp 2-component vector of float) 0:118 'inF0' (in 2-component vector of float) 0:118 'inF1' (in 2-component vector of float) 0:118 Constant: 0:118 2.000000 -0:? bitFieldReverse (global 2-component vector of uint) +0:? bitFieldReverse (temp 2-component vector of uint) 0:? Constant: 0:? 1 (const uint) 0:? 2 (const uint) -0:120 roundEven (global 2-component vector of float) +0:120 roundEven (temp 2-component vector of float) 0:120 'inF0' (in 2-component vector of float) -0:121 inverse sqrt (global 2-component vector of float) +0:121 inverse sqrt (temp 2-component vector of float) 0:121 'inF0' (in 2-component vector of float) 0:122 clamp (temp 2-component vector of float) 0:122 'inF0' (in 2-component vector of float) @@ -1681,9 +1681,9 @@ Shader version: 450 0:122 0.000000 0:122 Constant: 0:122 1.000000 -0:123 Sign (global 2-component vector of float) +0:123 Sign (temp 2-component vector of float) 0:123 'inF0' (in 2-component vector of float) -0:124 sine (global 2-component vector of float) +0:124 sine (temp 2-component vector of float) 0:124 'inF0' (in 2-component vector of float) 0:125 Sequence 0:125 move second child to first child (temp 2-component vector of float) @@ -1694,22 +1694,22 @@ Shader version: 450 0:125 'inF2' (in 2-component vector of float) 0:125 cosine (temp 2-component vector of float) 0:125 'inF0' (in 2-component vector of float) -0:126 hyp. sine (global 2-component vector of float) +0:126 hyp. sine (temp 2-component vector of float) 0:126 'inF0' (in 2-component vector of float) -0:127 smoothstep (global 2-component vector of float) +0:127 smoothstep (temp 2-component vector of float) 0:127 'inF0' (in 2-component vector of float) 0:127 'inF1' (in 2-component vector of float) 0:127 'inF2' (in 2-component vector of float) -0:128 sqrt (global 2-component vector of float) +0:128 sqrt (temp 2-component vector of float) 0:128 'inF0' (in 2-component vector of float) -0:129 step (global 2-component vector of float) +0:129 step (temp 2-component vector of float) 0:129 'inF0' (in 2-component vector of float) 0:129 'inF1' (in 2-component vector of float) -0:130 tangent (global 2-component vector of float) +0:130 tangent (temp 2-component vector of float) 0:130 'inF0' (in 2-component vector of float) -0:131 hyp. tangent (global 2-component vector of float) +0:131 hyp. tangent (temp 2-component vector of float) 0:131 'inF0' (in 2-component vector of float) -0:133 trunc (global 2-component vector of float) +0:133 trunc (temp 2-component vector of float) 0:133 'inF0' (in 2-component vector of float) 0:136 Branch: Return with expression 0:? Constant: @@ -1723,128 +1723,128 @@ Shader version: 450 0:140 'inU0' (in 3-component vector of uint) 0:140 'inU1' (in 3-component vector of uint) 0:? Sequence -0:141 all (global bool) +0:141 all (temp bool) 0:141 'inF0' (in 3-component vector of float) -0:142 Absolute value (global 3-component vector of float) +0:142 Absolute value (temp 3-component vector of float) 0:142 'inF0' (in 3-component vector of float) -0:143 arc cosine (global 3-component vector of float) +0:143 arc cosine (temp 3-component vector of float) 0:143 'inF0' (in 3-component vector of float) -0:144 any (global bool) +0:144 any (temp bool) 0:144 'inF0' (in 3-component vector of float) -0:145 arc sine (global 3-component vector of float) +0:145 arc sine (temp 3-component vector of float) 0:145 'inF0' (in 3-component vector of float) -0:146 floatBitsToInt (global 3-component vector of int) +0:146 floatBitsToInt (temp 3-component vector of int) 0:146 'inF0' (in 3-component vector of float) -0:147 floatBitsToUint (global 3-component vector of uint) +0:147 floatBitsToUint (temp 3-component vector of uint) 0:147 'inF0' (in 3-component vector of float) -0:148 intBitsToFloat (global 3-component vector of float) +0:148 intBitsToFloat (temp 3-component vector of float) 0:148 'inU0' (in 3-component vector of uint) -0:150 arc tangent (global 3-component vector of float) +0:150 arc tangent (temp 3-component vector of float) 0:150 'inF0' (in 3-component vector of float) -0:151 arc tangent (global 3-component vector of float) +0:151 arc tangent (temp 3-component vector of float) 0:151 'inF0' (in 3-component vector of float) 0:151 'inF1' (in 3-component vector of float) -0:152 Ceiling (global 3-component vector of float) +0:152 Ceiling (temp 3-component vector of float) 0:152 'inF0' (in 3-component vector of float) -0:153 clamp (global 3-component vector of float) +0:153 clamp (temp 3-component vector of float) 0:153 'inF0' (in 3-component vector of float) 0:153 'inF1' (in 3-component vector of float) 0:153 'inF2' (in 3-component vector of float) -0:154 cosine (global 3-component vector of float) +0:154 cosine (temp 3-component vector of float) 0:154 'inF0' (in 3-component vector of float) -0:155 hyp. cosine (global 3-component vector of float) +0:155 hyp. cosine (temp 3-component vector of float) 0:155 'inF0' (in 3-component vector of float) -0:? bitCount (global 3-component vector of uint) +0:? bitCount (temp 3-component vector of uint) 0:? Constant: 0:? 7 (const uint) 0:? 3 (const uint) 0:? 5 (const uint) -0:157 cross-product (global 3-component vector of float) +0:157 cross-product (temp 3-component vector of float) 0:157 'inF0' (in 3-component vector of float) 0:157 'inF1' (in 3-component vector of float) -0:158 degrees (global 3-component vector of float) +0:158 degrees (temp 3-component vector of float) 0:158 'inF0' (in 3-component vector of float) -0:159 distance (global float) +0:159 distance (temp float) 0:159 'inF0' (in 3-component vector of float) 0:159 'inF1' (in 3-component vector of float) -0:160 dot-product (global float) +0:160 dot-product (temp float) 0:160 'inF0' (in 3-component vector of float) 0:160 'inF1' (in 3-component vector of float) -0:164 exp (global 3-component vector of float) +0:164 exp (temp 3-component vector of float) 0:164 'inF0' (in 3-component vector of float) -0:165 exp2 (global 3-component vector of float) +0:165 exp2 (temp 3-component vector of float) 0:165 'inF0' (in 3-component vector of float) -0:166 face-forward (global 3-component vector of float) +0:166 face-forward (temp 3-component vector of float) 0:166 'inF0' (in 3-component vector of float) 0:166 'inF1' (in 3-component vector of float) 0:166 'inF2' (in 3-component vector of float) -0:167 findMSB (global int) +0:167 findMSB (temp int) 0:167 Constant: 0:167 7 (const int) -0:168 findLSB (global int) +0:168 findLSB (temp int) 0:168 Constant: 0:168 7 (const int) -0:169 Floor (global 3-component vector of float) +0:169 Floor (temp 3-component vector of float) 0:169 'inF0' (in 3-component vector of float) -0:171 mod (global 3-component vector of float) +0:171 mod (temp 3-component vector of float) 0:171 'inF0' (in 3-component vector of float) 0:171 'inF1' (in 3-component vector of float) -0:172 Fraction (global 3-component vector of float) +0:172 Fraction (temp 3-component vector of float) 0:172 'inF0' (in 3-component vector of float) -0:173 frexp (global 3-component vector of float) +0:173 frexp (temp 3-component vector of float) 0:173 'inF0' (in 3-component vector of float) 0:173 'inF1' (in 3-component vector of float) -0:174 isinf (global 3-component vector of bool) +0:174 isinf (temp 3-component vector of bool) 0:174 'inF0' (in 3-component vector of float) -0:175 isnan (global 3-component vector of bool) +0:175 isnan (temp 3-component vector of bool) 0:175 'inF0' (in 3-component vector of float) -0:176 ldexp (global 3-component vector of float) +0:176 ldexp (temp 3-component vector of float) 0:176 'inF0' (in 3-component vector of float) 0:176 'inF1' (in 3-component vector of float) -0:177 mix (global 3-component vector of float) +0:177 mix (temp 3-component vector of float) 0:177 'inF0' (in 3-component vector of float) 0:177 'inF1' (in 3-component vector of float) 0:177 'inF2' (in 3-component vector of float) -0:178 length (global float) +0:178 length (temp float) 0:178 'inF0' (in 3-component vector of float) -0:179 log (global 3-component vector of float) +0:179 log (temp 3-component vector of float) 0:179 'inF0' (in 3-component vector of float) 0:180 vector-scale (temp 3-component vector of float) 0:180 log2 (temp 3-component vector of float) 0:180 'inF0' (in 3-component vector of float) 0:180 Constant: 0:180 0.301030 -0:181 log2 (global 3-component vector of float) +0:181 log2 (temp 3-component vector of float) 0:181 'inF0' (in 3-component vector of float) -0:182 max (global 3-component vector of float) +0:182 max (temp 3-component vector of float) 0:182 'inF0' (in 3-component vector of float) 0:182 'inF1' (in 3-component vector of float) -0:183 min (global 3-component vector of float) +0:183 min (temp 3-component vector of float) 0:183 'inF0' (in 3-component vector of float) 0:183 'inF1' (in 3-component vector of float) -0:185 normalize (global 3-component vector of float) +0:185 normalize (temp 3-component vector of float) 0:185 'inF0' (in 3-component vector of float) -0:186 pow (global 3-component vector of float) +0:186 pow (temp 3-component vector of float) 0:186 'inF0' (in 3-component vector of float) 0:186 'inF1' (in 3-component vector of float) -0:187 radians (global 3-component vector of float) +0:187 radians (temp 3-component vector of float) 0:187 'inF0' (in 3-component vector of float) -0:188 reflect (global 3-component vector of float) +0:188 reflect (temp 3-component vector of float) 0:188 'inF0' (in 3-component vector of float) 0:188 'inF1' (in 3-component vector of float) -0:189 refract (global 3-component vector of float) +0:189 refract (temp 3-component vector of float) 0:189 'inF0' (in 3-component vector of float) 0:189 'inF1' (in 3-component vector of float) 0:189 Constant: 0:189 2.000000 -0:? bitFieldReverse (global 3-component vector of uint) +0:? bitFieldReverse (temp 3-component vector of uint) 0:? Constant: 0:? 1 (const uint) 0:? 2 (const uint) 0:? 3 (const uint) -0:191 roundEven (global 3-component vector of float) +0:191 roundEven (temp 3-component vector of float) 0:191 'inF0' (in 3-component vector of float) -0:192 inverse sqrt (global 3-component vector of float) +0:192 inverse sqrt (temp 3-component vector of float) 0:192 'inF0' (in 3-component vector of float) 0:193 clamp (temp 3-component vector of float) 0:193 'inF0' (in 3-component vector of float) @@ -1852,9 +1852,9 @@ Shader version: 450 0:193 0.000000 0:193 Constant: 0:193 1.000000 -0:194 Sign (global 3-component vector of float) +0:194 Sign (temp 3-component vector of float) 0:194 'inF0' (in 3-component vector of float) -0:195 sine (global 3-component vector of float) +0:195 sine (temp 3-component vector of float) 0:195 'inF0' (in 3-component vector of float) 0:196 Sequence 0:196 move second child to first child (temp 3-component vector of float) @@ -1865,22 +1865,22 @@ Shader version: 450 0:196 'inF2' (in 3-component vector of float) 0:196 cosine (temp 3-component vector of float) 0:196 'inF0' (in 3-component vector of float) -0:197 hyp. sine (global 3-component vector of float) +0:197 hyp. sine (temp 3-component vector of float) 0:197 'inF0' (in 3-component vector of float) -0:198 smoothstep (global 3-component vector of float) +0:198 smoothstep (temp 3-component vector of float) 0:198 'inF0' (in 3-component vector of float) 0:198 'inF1' (in 3-component vector of float) 0:198 'inF2' (in 3-component vector of float) -0:199 sqrt (global 3-component vector of float) +0:199 sqrt (temp 3-component vector of float) 0:199 'inF0' (in 3-component vector of float) -0:200 step (global 3-component vector of float) +0:200 step (temp 3-component vector of float) 0:200 'inF0' (in 3-component vector of float) 0:200 'inF1' (in 3-component vector of float) -0:201 tangent (global 3-component vector of float) +0:201 tangent (temp 3-component vector of float) 0:201 'inF0' (in 3-component vector of float) -0:202 hyp. tangent (global 3-component vector of float) +0:202 hyp. tangent (temp 3-component vector of float) 0:202 'inF0' (in 3-component vector of float) -0:204 trunc (global 3-component vector of float) +0:204 trunc (temp 3-component vector of float) 0:204 'inF0' (in 3-component vector of float) 0:207 Branch: Return with expression 0:? Constant: @@ -1895,49 +1895,49 @@ Shader version: 450 0:211 'inU0' (in 4-component vector of uint) 0:211 'inU1' (in 4-component vector of uint) 0:? Sequence -0:212 all (global bool) +0:212 all (temp bool) 0:212 'inF0' (in 4-component vector of float) -0:213 Absolute value (global 4-component vector of float) +0:213 Absolute value (temp 4-component vector of float) 0:213 'inF0' (in 4-component vector of float) -0:214 arc cosine (global 4-component vector of float) +0:214 arc cosine (temp 4-component vector of float) 0:214 'inF0' (in 4-component vector of float) -0:215 any (global bool) +0:215 any (temp bool) 0:215 'inF0' (in 4-component vector of float) -0:216 arc sine (global 4-component vector of float) +0:216 arc sine (temp 4-component vector of float) 0:216 'inF0' (in 4-component vector of float) -0:217 floatBitsToInt (global 4-component vector of int) +0:217 floatBitsToInt (temp 4-component vector of int) 0:217 'inF0' (in 4-component vector of float) -0:218 floatBitsToUint (global 4-component vector of uint) +0:218 floatBitsToUint (temp 4-component vector of uint) 0:218 'inF0' (in 4-component vector of float) -0:219 intBitsToFloat (global 4-component vector of float) +0:219 intBitsToFloat (temp 4-component vector of float) 0:219 'inU0' (in 4-component vector of uint) -0:221 arc tangent (global 4-component vector of float) +0:221 arc tangent (temp 4-component vector of float) 0:221 'inF0' (in 4-component vector of float) -0:222 arc tangent (global 4-component vector of float) +0:222 arc tangent (temp 4-component vector of float) 0:222 'inF0' (in 4-component vector of float) 0:222 'inF1' (in 4-component vector of float) -0:223 Ceiling (global 4-component vector of float) +0:223 Ceiling (temp 4-component vector of float) 0:223 'inF0' (in 4-component vector of float) -0:224 clamp (global 4-component vector of float) +0:224 clamp (temp 4-component vector of float) 0:224 'inF0' (in 4-component vector of float) 0:224 'inF1' (in 4-component vector of float) 0:224 'inF2' (in 4-component vector of float) -0:225 cosine (global 4-component vector of float) +0:225 cosine (temp 4-component vector of float) 0:225 'inF0' (in 4-component vector of float) -0:226 hyp. cosine (global 4-component vector of float) +0:226 hyp. cosine (temp 4-component vector of float) 0:226 'inF0' (in 4-component vector of float) -0:? bitCount (global 4-component vector of uint) +0:? bitCount (temp 4-component vector of uint) 0:? Constant: 0:? 7 (const uint) 0:? 3 (const uint) 0:? 5 (const uint) 0:? 2 (const uint) -0:228 degrees (global 4-component vector of float) +0:228 degrees (temp 4-component vector of float) 0:228 'inF0' (in 4-component vector of float) -0:229 distance (global float) +0:229 distance (temp float) 0:229 'inF0' (in 4-component vector of float) 0:229 'inF1' (in 4-component vector of float) -0:230 dot-product (global float) +0:230 dot-product (temp float) 0:230 'inF0' (in 4-component vector of float) 0:230 'inF1' (in 4-component vector of float) 0:231 Construct vec4 (temp 4-component vector of float) @@ -1960,82 +1960,82 @@ Shader version: 450 0:231 'inF1' (in 4-component vector of float) 0:231 Constant: 0:231 3 (const int) -0:235 exp (global 4-component vector of float) +0:235 exp (temp 4-component vector of float) 0:235 'inF0' (in 4-component vector of float) -0:236 exp2 (global 4-component vector of float) +0:236 exp2 (temp 4-component vector of float) 0:236 'inF0' (in 4-component vector of float) -0:237 face-forward (global 4-component vector of float) +0:237 face-forward (temp 4-component vector of float) 0:237 'inF0' (in 4-component vector of float) 0:237 'inF1' (in 4-component vector of float) 0:237 'inF2' (in 4-component vector of float) -0:238 findMSB (global int) +0:238 findMSB (temp int) 0:238 Constant: 0:238 7 (const int) -0:239 findLSB (global int) +0:239 findLSB (temp int) 0:239 Constant: 0:239 7 (const int) -0:240 Floor (global 4-component vector of float) +0:240 Floor (temp 4-component vector of float) 0:240 'inF0' (in 4-component vector of float) -0:242 mod (global 4-component vector of float) +0:242 mod (temp 4-component vector of float) 0:242 'inF0' (in 4-component vector of float) 0:242 'inF1' (in 4-component vector of float) -0:243 Fraction (global 4-component vector of float) +0:243 Fraction (temp 4-component vector of float) 0:243 'inF0' (in 4-component vector of float) -0:244 frexp (global 4-component vector of float) +0:244 frexp (temp 4-component vector of float) 0:244 'inF0' (in 4-component vector of float) 0:244 'inF1' (in 4-component vector of float) -0:245 isinf (global 4-component vector of bool) +0:245 isinf (temp 4-component vector of bool) 0:245 'inF0' (in 4-component vector of float) -0:246 isnan (global 4-component vector of bool) +0:246 isnan (temp 4-component vector of bool) 0:246 'inF0' (in 4-component vector of float) -0:247 ldexp (global 4-component vector of float) +0:247 ldexp (temp 4-component vector of float) 0:247 'inF0' (in 4-component vector of float) 0:247 'inF1' (in 4-component vector of float) -0:248 mix (global 4-component vector of float) +0:248 mix (temp 4-component vector of float) 0:248 'inF0' (in 4-component vector of float) 0:248 'inF1' (in 4-component vector of float) 0:248 'inF2' (in 4-component vector of float) -0:249 length (global float) +0:249 length (temp float) 0:249 'inF0' (in 4-component vector of float) -0:250 log (global 4-component vector of float) +0:250 log (temp 4-component vector of float) 0:250 'inF0' (in 4-component vector of float) 0:251 vector-scale (temp 4-component vector of float) 0:251 log2 (temp 4-component vector of float) 0:251 'inF0' (in 4-component vector of float) 0:251 Constant: 0:251 0.301030 -0:252 log2 (global 4-component vector of float) +0:252 log2 (temp 4-component vector of float) 0:252 'inF0' (in 4-component vector of float) -0:253 max (global 4-component vector of float) +0:253 max (temp 4-component vector of float) 0:253 'inF0' (in 4-component vector of float) 0:253 'inF1' (in 4-component vector of float) -0:254 min (global 4-component vector of float) +0:254 min (temp 4-component vector of float) 0:254 'inF0' (in 4-component vector of float) 0:254 'inF1' (in 4-component vector of float) -0:256 normalize (global 4-component vector of float) +0:256 normalize (temp 4-component vector of float) 0:256 'inF0' (in 4-component vector of float) -0:257 pow (global 4-component vector of float) +0:257 pow (temp 4-component vector of float) 0:257 'inF0' (in 4-component vector of float) 0:257 'inF1' (in 4-component vector of float) -0:258 radians (global 4-component vector of float) +0:258 radians (temp 4-component vector of float) 0:258 'inF0' (in 4-component vector of float) -0:259 reflect (global 4-component vector of float) +0:259 reflect (temp 4-component vector of float) 0:259 'inF0' (in 4-component vector of float) 0:259 'inF1' (in 4-component vector of float) -0:260 refract (global 4-component vector of float) +0:260 refract (temp 4-component vector of float) 0:260 'inF0' (in 4-component vector of float) 0:260 'inF1' (in 4-component vector of float) 0:260 Constant: 0:260 2.000000 -0:? bitFieldReverse (global 4-component vector of uint) +0:? bitFieldReverse (temp 4-component vector of uint) 0:? Constant: 0:? 1 (const uint) 0:? 2 (const uint) 0:? 3 (const uint) 0:? 4 (const uint) -0:262 roundEven (global 4-component vector of float) +0:262 roundEven (temp 4-component vector of float) 0:262 'inF0' (in 4-component vector of float) -0:263 inverse sqrt (global 4-component vector of float) +0:263 inverse sqrt (temp 4-component vector of float) 0:263 'inF0' (in 4-component vector of float) 0:264 clamp (temp 4-component vector of float) 0:264 'inF0' (in 4-component vector of float) @@ -2043,9 +2043,9 @@ Shader version: 450 0:264 0.000000 0:264 Constant: 0:264 1.000000 -0:265 Sign (global 4-component vector of float) +0:265 Sign (temp 4-component vector of float) 0:265 'inF0' (in 4-component vector of float) -0:266 sine (global 4-component vector of float) +0:266 sine (temp 4-component vector of float) 0:266 'inF0' (in 4-component vector of float) 0:267 Sequence 0:267 move second child to first child (temp 4-component vector of float) @@ -2056,22 +2056,22 @@ Shader version: 450 0:267 'inF2' (in 4-component vector of float) 0:267 cosine (temp 4-component vector of float) 0:267 'inF0' (in 4-component vector of float) -0:268 hyp. sine (global 4-component vector of float) +0:268 hyp. sine (temp 4-component vector of float) 0:268 'inF0' (in 4-component vector of float) -0:269 smoothstep (global 4-component vector of float) +0:269 smoothstep (temp 4-component vector of float) 0:269 'inF0' (in 4-component vector of float) 0:269 'inF1' (in 4-component vector of float) 0:269 'inF2' (in 4-component vector of float) -0:270 sqrt (global 4-component vector of float) +0:270 sqrt (temp 4-component vector of float) 0:270 'inF0' (in 4-component vector of float) -0:271 step (global 4-component vector of float) +0:271 step (temp 4-component vector of float) 0:271 'inF0' (in 4-component vector of float) 0:271 'inF1' (in 4-component vector of float) -0:272 tangent (global 4-component vector of float) +0:272 tangent (temp 4-component vector of float) 0:272 'inF0' (in 4-component vector of float) -0:273 hyp. tangent (global 4-component vector of float) +0:273 hyp. tangent (temp 4-component vector of float) 0:273 'inF0' (in 4-component vector of float) -0:275 trunc (global 4-component vector of float) +0:275 trunc (temp 4-component vector of float) 0:275 'inF0' (in 4-component vector of float) 0:278 Branch: Return with expression 0:? Constant: @@ -2085,85 +2085,85 @@ Shader version: 450 0:336 'inF1' (in 2X2 matrix of float) 0:336 'inF2' (in 2X2 matrix of float) 0:? Sequence -0:338 all (global bool) +0:338 all (temp bool) 0:338 'inF0' (in 2X2 matrix of float) -0:338 Absolute value (global 2X2 matrix of float) +0:338 Absolute value (temp 2X2 matrix of float) 0:338 'inF0' (in 2X2 matrix of float) -0:338 arc cosine (global 2X2 matrix of float) +0:338 arc cosine (temp 2X2 matrix of float) 0:338 'inF0' (in 2X2 matrix of float) -0:338 any (global bool) +0:338 any (temp bool) 0:338 'inF0' (in 2X2 matrix of float) -0:338 arc sine (global 2X2 matrix of float) +0:338 arc sine (temp 2X2 matrix of float) 0:338 'inF0' (in 2X2 matrix of float) -0:338 arc tangent (global 2X2 matrix of float) +0:338 arc tangent (temp 2X2 matrix of float) 0:338 'inF0' (in 2X2 matrix of float) -0:338 arc tangent (global 2X2 matrix of float) +0:338 arc tangent (temp 2X2 matrix of float) 0:338 'inF0' (in 2X2 matrix of float) 0:338 'inF1' (in 2X2 matrix of float) -0:338 Ceiling (global 2X2 matrix of float) +0:338 Ceiling (temp 2X2 matrix of float) 0:338 'inF0' (in 2X2 matrix of float) -0:338 clamp (global 2X2 matrix of float) +0:338 clamp (temp 2X2 matrix of float) 0:338 'inF0' (in 2X2 matrix of float) 0:338 'inF1' (in 2X2 matrix of float) 0:338 'inF2' (in 2X2 matrix of float) -0:338 cosine (global 2X2 matrix of float) +0:338 cosine (temp 2X2 matrix of float) 0:338 'inF0' (in 2X2 matrix of float) -0:338 hyp. cosine (global 2X2 matrix of float) +0:338 hyp. cosine (temp 2X2 matrix of float) 0:338 'inF0' (in 2X2 matrix of float) -0:338 degrees (global 2X2 matrix of float) +0:338 degrees (temp 2X2 matrix of float) 0:338 'inF0' (in 2X2 matrix of float) -0:338 determinant (global float) +0:338 determinant (temp float) 0:338 'inF0' (in 2X2 matrix of float) -0:338 exp (global 2X2 matrix of float) +0:338 exp (temp 2X2 matrix of float) 0:338 'inF0' (in 2X2 matrix of float) -0:338 exp2 (global 2X2 matrix of float) +0:338 exp2 (temp 2X2 matrix of float) 0:338 'inF0' (in 2X2 matrix of float) -0:338 findMSB (global int) +0:338 findMSB (temp int) 0:338 Constant: 0:338 7 (const int) -0:338 findLSB (global int) +0:338 findLSB (temp int) 0:338 Constant: 0:338 7 (const int) -0:338 Floor (global 2X2 matrix of float) +0:338 Floor (temp 2X2 matrix of float) 0:338 'inF0' (in 2X2 matrix of float) -0:338 mod (global 2X2 matrix of float) +0:338 mod (temp 2X2 matrix of float) 0:338 'inF0' (in 2X2 matrix of float) 0:338 'inF1' (in 2X2 matrix of float) -0:338 Fraction (global 2X2 matrix of float) +0:338 Fraction (temp 2X2 matrix of float) 0:338 'inF0' (in 2X2 matrix of float) -0:338 frexp (global 2X2 matrix of float) +0:338 frexp (temp 2X2 matrix of float) 0:338 'inF0' (in 2X2 matrix of float) 0:338 'inF1' (in 2X2 matrix of float) -0:338 ldexp (global 2X2 matrix of float) +0:338 ldexp (temp 2X2 matrix of float) 0:338 'inF0' (in 2X2 matrix of float) 0:338 'inF1' (in 2X2 matrix of float) -0:338 mix (global 2X2 matrix of float) +0:338 mix (temp 2X2 matrix of float) 0:338 'inF0' (in 2X2 matrix of float) 0:338 'inF1' (in 2X2 matrix of float) 0:338 'inF2' (in 2X2 matrix of float) -0:338 log (global 2X2 matrix of float) +0:338 log (temp 2X2 matrix of float) 0:338 'inF0' (in 2X2 matrix of float) 0:338 matrix-scale (temp 2X2 matrix of float) 0:338 log2 (temp 2X2 matrix of float) 0:338 'inF0' (in 2X2 matrix of float) 0:338 Constant: 0:338 0.301030 -0:338 log2 (global 2X2 matrix of float) +0:338 log2 (temp 2X2 matrix of float) 0:338 'inF0' (in 2X2 matrix of float) -0:338 max (global 2X2 matrix of float) +0:338 max (temp 2X2 matrix of float) 0:338 'inF0' (in 2X2 matrix of float) 0:338 'inF1' (in 2X2 matrix of float) -0:338 min (global 2X2 matrix of float) +0:338 min (temp 2X2 matrix of float) 0:338 'inF0' (in 2X2 matrix of float) 0:338 'inF1' (in 2X2 matrix of float) -0:338 pow (global 2X2 matrix of float) +0:338 pow (temp 2X2 matrix of float) 0:338 'inF0' (in 2X2 matrix of float) 0:338 'inF1' (in 2X2 matrix of float) -0:338 radians (global 2X2 matrix of float) +0:338 radians (temp 2X2 matrix of float) 0:338 'inF0' (in 2X2 matrix of float) -0:338 roundEven (global 2X2 matrix of float) +0:338 roundEven (temp 2X2 matrix of float) 0:338 'inF0' (in 2X2 matrix of float) -0:338 inverse sqrt (global 2X2 matrix of float) +0:338 inverse sqrt (temp 2X2 matrix of float) 0:338 'inF0' (in 2X2 matrix of float) 0:338 clamp (temp 2X2 matrix of float) 0:338 'inF0' (in 2X2 matrix of float) @@ -2171,9 +2171,9 @@ Shader version: 450 0:338 0.000000 0:338 Constant: 0:338 1.000000 -0:338 Sign (global 2X2 matrix of float) +0:338 Sign (temp 2X2 matrix of float) 0:338 'inF0' (in 2X2 matrix of float) -0:338 sine (global 2X2 matrix of float) +0:338 sine (temp 2X2 matrix of float) 0:338 'inF0' (in 2X2 matrix of float) 0:338 Sequence 0:338 move second child to first child (temp 2X2 matrix of float) @@ -2184,24 +2184,24 @@ Shader version: 450 0:338 'inF2' (in 2X2 matrix of float) 0:338 cosine (temp 2X2 matrix of float) 0:338 'inF0' (in 2X2 matrix of float) -0:338 hyp. sine (global 2X2 matrix of float) +0:338 hyp. sine (temp 2X2 matrix of float) 0:338 'inF0' (in 2X2 matrix of float) -0:338 smoothstep (global 2X2 matrix of float) +0:338 smoothstep (temp 2X2 matrix of float) 0:338 'inF0' (in 2X2 matrix of float) 0:338 'inF1' (in 2X2 matrix of float) 0:338 'inF2' (in 2X2 matrix of float) -0:338 sqrt (global 2X2 matrix of float) +0:338 sqrt (temp 2X2 matrix of float) 0:338 'inF0' (in 2X2 matrix of float) -0:338 step (global 2X2 matrix of float) +0:338 step (temp 2X2 matrix of float) 0:338 'inF0' (in 2X2 matrix of float) 0:338 'inF1' (in 2X2 matrix of float) -0:338 tangent (global 2X2 matrix of float) +0:338 tangent (temp 2X2 matrix of float) 0:338 'inF0' (in 2X2 matrix of float) -0:338 hyp. tangent (global 2X2 matrix of float) +0:338 hyp. tangent (temp 2X2 matrix of float) 0:338 'inF0' (in 2X2 matrix of float) -0:338 transpose (global 2X2 matrix of float) +0:338 transpose (temp 2X2 matrix of float) 0:338 'inF0' (in 2X2 matrix of float) -0:338 trunc (global 2X2 matrix of float) +0:338 trunc (temp 2X2 matrix of float) 0:338 'inF0' (in 2X2 matrix of float) 0:341 Branch: Return with expression 0:? Constant: @@ -2215,85 +2215,85 @@ Shader version: 450 0:345 'inF1' (in 3X3 matrix of float) 0:345 'inF2' (in 3X3 matrix of float) 0:? Sequence -0:347 all (global bool) +0:347 all (temp bool) 0:347 'inF0' (in 3X3 matrix of float) -0:347 Absolute value (global 3X3 matrix of float) +0:347 Absolute value (temp 3X3 matrix of float) 0:347 'inF0' (in 3X3 matrix of float) -0:347 arc cosine (global 3X3 matrix of float) +0:347 arc cosine (temp 3X3 matrix of float) 0:347 'inF0' (in 3X3 matrix of float) -0:347 any (global bool) +0:347 any (temp bool) 0:347 'inF0' (in 3X3 matrix of float) -0:347 arc sine (global 3X3 matrix of float) +0:347 arc sine (temp 3X3 matrix of float) 0:347 'inF0' (in 3X3 matrix of float) -0:347 arc tangent (global 3X3 matrix of float) +0:347 arc tangent (temp 3X3 matrix of float) 0:347 'inF0' (in 3X3 matrix of float) -0:347 arc tangent (global 3X3 matrix of float) +0:347 arc tangent (temp 3X3 matrix of float) 0:347 'inF0' (in 3X3 matrix of float) 0:347 'inF1' (in 3X3 matrix of float) -0:347 Ceiling (global 3X3 matrix of float) +0:347 Ceiling (temp 3X3 matrix of float) 0:347 'inF0' (in 3X3 matrix of float) -0:347 clamp (global 3X3 matrix of float) +0:347 clamp (temp 3X3 matrix of float) 0:347 'inF0' (in 3X3 matrix of float) 0:347 'inF1' (in 3X3 matrix of float) 0:347 'inF2' (in 3X3 matrix of float) -0:347 cosine (global 3X3 matrix of float) +0:347 cosine (temp 3X3 matrix of float) 0:347 'inF0' (in 3X3 matrix of float) -0:347 hyp. cosine (global 3X3 matrix of float) +0:347 hyp. cosine (temp 3X3 matrix of float) 0:347 'inF0' (in 3X3 matrix of float) -0:347 degrees (global 3X3 matrix of float) +0:347 degrees (temp 3X3 matrix of float) 0:347 'inF0' (in 3X3 matrix of float) -0:347 determinant (global float) +0:347 determinant (temp float) 0:347 'inF0' (in 3X3 matrix of float) -0:347 exp (global 3X3 matrix of float) +0:347 exp (temp 3X3 matrix of float) 0:347 'inF0' (in 3X3 matrix of float) -0:347 exp2 (global 3X3 matrix of float) +0:347 exp2 (temp 3X3 matrix of float) 0:347 'inF0' (in 3X3 matrix of float) -0:347 findMSB (global int) +0:347 findMSB (temp int) 0:347 Constant: 0:347 7 (const int) -0:347 findLSB (global int) +0:347 findLSB (temp int) 0:347 Constant: 0:347 7 (const int) -0:347 Floor (global 3X3 matrix of float) +0:347 Floor (temp 3X3 matrix of float) 0:347 'inF0' (in 3X3 matrix of float) -0:347 mod (global 3X3 matrix of float) +0:347 mod (temp 3X3 matrix of float) 0:347 'inF0' (in 3X3 matrix of float) 0:347 'inF1' (in 3X3 matrix of float) -0:347 Fraction (global 3X3 matrix of float) +0:347 Fraction (temp 3X3 matrix of float) 0:347 'inF0' (in 3X3 matrix of float) -0:347 frexp (global 3X3 matrix of float) +0:347 frexp (temp 3X3 matrix of float) 0:347 'inF0' (in 3X3 matrix of float) 0:347 'inF1' (in 3X3 matrix of float) -0:347 ldexp (global 3X3 matrix of float) +0:347 ldexp (temp 3X3 matrix of float) 0:347 'inF0' (in 3X3 matrix of float) 0:347 'inF1' (in 3X3 matrix of float) -0:347 mix (global 3X3 matrix of float) +0:347 mix (temp 3X3 matrix of float) 0:347 'inF0' (in 3X3 matrix of float) 0:347 'inF1' (in 3X3 matrix of float) 0:347 'inF2' (in 3X3 matrix of float) -0:347 log (global 3X3 matrix of float) +0:347 log (temp 3X3 matrix of float) 0:347 'inF0' (in 3X3 matrix of float) 0:347 matrix-scale (temp 3X3 matrix of float) 0:347 log2 (temp 3X3 matrix of float) 0:347 'inF0' (in 3X3 matrix of float) 0:347 Constant: 0:347 0.301030 -0:347 log2 (global 3X3 matrix of float) +0:347 log2 (temp 3X3 matrix of float) 0:347 'inF0' (in 3X3 matrix of float) -0:347 max (global 3X3 matrix of float) +0:347 max (temp 3X3 matrix of float) 0:347 'inF0' (in 3X3 matrix of float) 0:347 'inF1' (in 3X3 matrix of float) -0:347 min (global 3X3 matrix of float) +0:347 min (temp 3X3 matrix of float) 0:347 'inF0' (in 3X3 matrix of float) 0:347 'inF1' (in 3X3 matrix of float) -0:347 pow (global 3X3 matrix of float) +0:347 pow (temp 3X3 matrix of float) 0:347 'inF0' (in 3X3 matrix of float) 0:347 'inF1' (in 3X3 matrix of float) -0:347 radians (global 3X3 matrix of float) +0:347 radians (temp 3X3 matrix of float) 0:347 'inF0' (in 3X3 matrix of float) -0:347 roundEven (global 3X3 matrix of float) +0:347 roundEven (temp 3X3 matrix of float) 0:347 'inF0' (in 3X3 matrix of float) -0:347 inverse sqrt (global 3X3 matrix of float) +0:347 inverse sqrt (temp 3X3 matrix of float) 0:347 'inF0' (in 3X3 matrix of float) 0:347 clamp (temp 3X3 matrix of float) 0:347 'inF0' (in 3X3 matrix of float) @@ -2301,9 +2301,9 @@ Shader version: 450 0:347 0.000000 0:347 Constant: 0:347 1.000000 -0:347 Sign (global 3X3 matrix of float) +0:347 Sign (temp 3X3 matrix of float) 0:347 'inF0' (in 3X3 matrix of float) -0:347 sine (global 3X3 matrix of float) +0:347 sine (temp 3X3 matrix of float) 0:347 'inF0' (in 3X3 matrix of float) 0:347 Sequence 0:347 move second child to first child (temp 3X3 matrix of float) @@ -2314,24 +2314,24 @@ Shader version: 450 0:347 'inF2' (in 3X3 matrix of float) 0:347 cosine (temp 3X3 matrix of float) 0:347 'inF0' (in 3X3 matrix of float) -0:347 hyp. sine (global 3X3 matrix of float) +0:347 hyp. sine (temp 3X3 matrix of float) 0:347 'inF0' (in 3X3 matrix of float) -0:347 smoothstep (global 3X3 matrix of float) +0:347 smoothstep (temp 3X3 matrix of float) 0:347 'inF0' (in 3X3 matrix of float) 0:347 'inF1' (in 3X3 matrix of float) 0:347 'inF2' (in 3X3 matrix of float) -0:347 sqrt (global 3X3 matrix of float) +0:347 sqrt (temp 3X3 matrix of float) 0:347 'inF0' (in 3X3 matrix of float) -0:347 step (global 3X3 matrix of float) +0:347 step (temp 3X3 matrix of float) 0:347 'inF0' (in 3X3 matrix of float) 0:347 'inF1' (in 3X3 matrix of float) -0:347 tangent (global 3X3 matrix of float) +0:347 tangent (temp 3X3 matrix of float) 0:347 'inF0' (in 3X3 matrix of float) -0:347 hyp. tangent (global 3X3 matrix of float) +0:347 hyp. tangent (temp 3X3 matrix of float) 0:347 'inF0' (in 3X3 matrix of float) -0:347 transpose (global 3X3 matrix of float) +0:347 transpose (temp 3X3 matrix of float) 0:347 'inF0' (in 3X3 matrix of float) -0:347 trunc (global 3X3 matrix of float) +0:347 trunc (temp 3X3 matrix of float) 0:347 'inF0' (in 3X3 matrix of float) 0:350 Branch: Return with expression 0:? Constant: @@ -2350,85 +2350,85 @@ Shader version: 450 0:354 'inF1' (in 4X4 matrix of float) 0:354 'inF2' (in 4X4 matrix of float) 0:? Sequence -0:356 all (global bool) +0:356 all (temp bool) 0:356 'inF0' (in 4X4 matrix of float) -0:356 Absolute value (global 4X4 matrix of float) +0:356 Absolute value (temp 4X4 matrix of float) 0:356 'inF0' (in 4X4 matrix of float) -0:356 arc cosine (global 4X4 matrix of float) +0:356 arc cosine (temp 4X4 matrix of float) 0:356 'inF0' (in 4X4 matrix of float) -0:356 any (global bool) +0:356 any (temp bool) 0:356 'inF0' (in 4X4 matrix of float) -0:356 arc sine (global 4X4 matrix of float) +0:356 arc sine (temp 4X4 matrix of float) 0:356 'inF0' (in 4X4 matrix of float) -0:356 arc tangent (global 4X4 matrix of float) +0:356 arc tangent (temp 4X4 matrix of float) 0:356 'inF0' (in 4X4 matrix of float) -0:356 arc tangent (global 4X4 matrix of float) +0:356 arc tangent (temp 4X4 matrix of float) 0:356 'inF0' (in 4X4 matrix of float) 0:356 'inF1' (in 4X4 matrix of float) -0:356 Ceiling (global 4X4 matrix of float) +0:356 Ceiling (temp 4X4 matrix of float) 0:356 'inF0' (in 4X4 matrix of float) -0:356 clamp (global 4X4 matrix of float) +0:356 clamp (temp 4X4 matrix of float) 0:356 'inF0' (in 4X4 matrix of float) 0:356 'inF1' (in 4X4 matrix of float) 0:356 'inF2' (in 4X4 matrix of float) -0:356 cosine (global 4X4 matrix of float) +0:356 cosine (temp 4X4 matrix of float) 0:356 'inF0' (in 4X4 matrix of float) -0:356 hyp. cosine (global 4X4 matrix of float) +0:356 hyp. cosine (temp 4X4 matrix of float) 0:356 'inF0' (in 4X4 matrix of float) -0:356 degrees (global 4X4 matrix of float) +0:356 degrees (temp 4X4 matrix of float) 0:356 'inF0' (in 4X4 matrix of float) -0:356 determinant (global float) +0:356 determinant (temp float) 0:356 'inF0' (in 4X4 matrix of float) -0:356 exp (global 4X4 matrix of float) +0:356 exp (temp 4X4 matrix of float) 0:356 'inF0' (in 4X4 matrix of float) -0:356 exp2 (global 4X4 matrix of float) +0:356 exp2 (temp 4X4 matrix of float) 0:356 'inF0' (in 4X4 matrix of float) -0:356 findMSB (global int) +0:356 findMSB (temp int) 0:356 Constant: 0:356 7 (const int) -0:356 findLSB (global int) +0:356 findLSB (temp int) 0:356 Constant: 0:356 7 (const int) -0:356 Floor (global 4X4 matrix of float) +0:356 Floor (temp 4X4 matrix of float) 0:356 'inF0' (in 4X4 matrix of float) -0:356 mod (global 4X4 matrix of float) +0:356 mod (temp 4X4 matrix of float) 0:356 'inF0' (in 4X4 matrix of float) 0:356 'inF1' (in 4X4 matrix of float) -0:356 Fraction (global 4X4 matrix of float) +0:356 Fraction (temp 4X4 matrix of float) 0:356 'inF0' (in 4X4 matrix of float) -0:356 frexp (global 4X4 matrix of float) +0:356 frexp (temp 4X4 matrix of float) 0:356 'inF0' (in 4X4 matrix of float) 0:356 'inF1' (in 4X4 matrix of float) -0:356 ldexp (global 4X4 matrix of float) +0:356 ldexp (temp 4X4 matrix of float) 0:356 'inF0' (in 4X4 matrix of float) 0:356 'inF1' (in 4X4 matrix of float) -0:356 mix (global 4X4 matrix of float) +0:356 mix (temp 4X4 matrix of float) 0:356 'inF0' (in 4X4 matrix of float) 0:356 'inF1' (in 4X4 matrix of float) 0:356 'inF2' (in 4X4 matrix of float) -0:356 log (global 4X4 matrix of float) +0:356 log (temp 4X4 matrix of float) 0:356 'inF0' (in 4X4 matrix of float) 0:356 matrix-scale (temp 4X4 matrix of float) 0:356 log2 (temp 4X4 matrix of float) 0:356 'inF0' (in 4X4 matrix of float) 0:356 Constant: 0:356 0.301030 -0:356 log2 (global 4X4 matrix of float) +0:356 log2 (temp 4X4 matrix of float) 0:356 'inF0' (in 4X4 matrix of float) -0:356 max (global 4X4 matrix of float) +0:356 max (temp 4X4 matrix of float) 0:356 'inF0' (in 4X4 matrix of float) 0:356 'inF1' (in 4X4 matrix of float) -0:356 min (global 4X4 matrix of float) +0:356 min (temp 4X4 matrix of float) 0:356 'inF0' (in 4X4 matrix of float) 0:356 'inF1' (in 4X4 matrix of float) -0:356 pow (global 4X4 matrix of float) +0:356 pow (temp 4X4 matrix of float) 0:356 'inF0' (in 4X4 matrix of float) 0:356 'inF1' (in 4X4 matrix of float) -0:356 radians (global 4X4 matrix of float) +0:356 radians (temp 4X4 matrix of float) 0:356 'inF0' (in 4X4 matrix of float) -0:356 roundEven (global 4X4 matrix of float) +0:356 roundEven (temp 4X4 matrix of float) 0:356 'inF0' (in 4X4 matrix of float) -0:356 inverse sqrt (global 4X4 matrix of float) +0:356 inverse sqrt (temp 4X4 matrix of float) 0:356 'inF0' (in 4X4 matrix of float) 0:356 clamp (temp 4X4 matrix of float) 0:356 'inF0' (in 4X4 matrix of float) @@ -2436,9 +2436,9 @@ Shader version: 450 0:356 0.000000 0:356 Constant: 0:356 1.000000 -0:356 Sign (global 4X4 matrix of float) +0:356 Sign (temp 4X4 matrix of float) 0:356 'inF0' (in 4X4 matrix of float) -0:356 sine (global 4X4 matrix of float) +0:356 sine (temp 4X4 matrix of float) 0:356 'inF0' (in 4X4 matrix of float) 0:356 Sequence 0:356 move second child to first child (temp 4X4 matrix of float) @@ -2449,24 +2449,24 @@ Shader version: 450 0:356 'inF2' (in 4X4 matrix of float) 0:356 cosine (temp 4X4 matrix of float) 0:356 'inF0' (in 4X4 matrix of float) -0:356 hyp. sine (global 4X4 matrix of float) +0:356 hyp. sine (temp 4X4 matrix of float) 0:356 'inF0' (in 4X4 matrix of float) -0:356 smoothstep (global 4X4 matrix of float) +0:356 smoothstep (temp 4X4 matrix of float) 0:356 'inF0' (in 4X4 matrix of float) 0:356 'inF1' (in 4X4 matrix of float) 0:356 'inF2' (in 4X4 matrix of float) -0:356 sqrt (global 4X4 matrix of float) +0:356 sqrt (temp 4X4 matrix of float) 0:356 'inF0' (in 4X4 matrix of float) -0:356 step (global 4X4 matrix of float) +0:356 step (temp 4X4 matrix of float) 0:356 'inF0' (in 4X4 matrix of float) 0:356 'inF1' (in 4X4 matrix of float) -0:356 tangent (global 4X4 matrix of float) +0:356 tangent (temp 4X4 matrix of float) 0:356 'inF0' (in 4X4 matrix of float) -0:356 hyp. tangent (global 4X4 matrix of float) +0:356 hyp. tangent (temp 4X4 matrix of float) 0:356 'inF0' (in 4X4 matrix of float) -0:356 transpose (global 4X4 matrix of float) +0:356 transpose (temp 4X4 matrix of float) 0:356 'inF0' (in 4X4 matrix of float) -0:356 trunc (global 4X4 matrix of float) +0:356 trunc (temp 4X4 matrix of float) 0:356 'inF0' (in 4X4 matrix of float) 0:359 Branch: Return with expression 0:? Constant: @@ -2516,7 +2516,7 @@ Shader version: 450 0:378 Sequence 0:378 move second child to first child (temp float) 0:378 'r3' (temp float) -0:378 dot-product (global float) +0:378 dot-product (temp float) 0:378 'inFV0' (in 2-component vector of float) 0:378 'inFV1' (in 2-component vector of float) 0:378 Sequence @@ -2579,7 +2579,7 @@ Shader version: 450 0:385 Sequence 0:385 move second child to first child (temp float) 0:385 'r3' (temp float) -0:385 dot-product (global float) +0:385 dot-product (temp float) 0:385 'inFV0' (in 3-component vector of float) 0:385 'inFV1' (in 3-component vector of float) 0:385 Sequence @@ -2642,7 +2642,7 @@ Shader version: 450 0:392 Sequence 0:392 move second child to first child (temp float) 0:392 'r3' (temp float) -0:392 dot-product (global float) +0:392 dot-product (temp float) 0:392 'inFV0' (in 4-component vector of float) 0:392 'inFV1' (in 4-component vector of float) 0:392 Sequence @@ -2720,13 +2720,13 @@ Shader version: 450 0:407 Sequence 0:407 move second child to first child (temp float) 0:407 'r05' (temp float) -0:407 dot-product (global float) +0:407 dot-product (temp float) 0:407 'inFV2' (in 2-component vector of float) 0:407 'inFV2' (in 2-component vector of float) 0:408 Sequence 0:408 move second child to first child (temp float) 0:408 'r06' (temp float) -0:408 dot-product (global float) +0:408 dot-product (temp float) 0:408 'inFV3' (in 3-component vector of float) 0:408 'inFV3' (in 3-component vector of float) 0:409 Sequence diff --git a/Test/baseResults/hlsl.matNx1.frag.out b/Test/baseResults/hlsl.matNx1.frag.out new file mode 100644 index 00000000..f9dd65f9 --- /dev/null +++ b/Test/baseResults/hlsl.matNx1.frag.out @@ -0,0 +1,261 @@ +hlsl.matNx1.frag +Shader version: 450 +gl_FragCoord origin is upper left +0:? Sequence +0:3 Function Definition: TestMatNx1( (temp void) +0:3 Function Parameters: +0:? Sequence +0:13 Sequence +0:13 move second child to first child (temp 1X1 matrix of float) +0:13 'r00' (temp 1X1 matrix of float) +0:13 transpose (temp 1X1 matrix of float) +0:13 'f1x1' (temp 1X1 matrix of float) +0:14 Sequence +0:14 move second child to first child (temp 1X2 matrix of float) +0:14 'r01' (temp 1X2 matrix of float) +0:14 transpose (temp 1X2 matrix of float) +0:14 'f2x1' (temp 2X1 matrix of float) +0:15 Sequence +0:15 move second child to first child (temp 1X3 matrix of float) +0:15 'r02' (temp 1X3 matrix of float) +0:15 transpose (temp 1X3 matrix of float) +0:15 'f3x1' (temp 3X1 matrix of float) +0:16 Sequence +0:16 move second child to first child (temp 1X4 matrix of float) +0:16 'r03' (temp 1X4 matrix of float) +0:16 transpose (temp 1X4 matrix of float) +0:16 'f4x1' (temp 4X1 matrix of float) +0:18 Sequence +0:18 move second child to first child (temp 1X1 matrix of float) +0:18 'r10' (temp 1X1 matrix of float) +0:18 transpose (temp 1X1 matrix of float) +0:18 'f1x1' (temp 1X1 matrix of float) +0:19 Sequence +0:19 move second child to first child (temp 2X1 matrix of float) +0:19 'r11' (temp 2X1 matrix of float) +0:19 transpose (temp 2X1 matrix of float) +0:19 'f1x2' (temp 1X2 matrix of float) +0:20 Sequence +0:20 move second child to first child (temp 3X1 matrix of float) +0:20 'r12' (temp 3X1 matrix of float) +0:20 transpose (temp 3X1 matrix of float) +0:20 'f1x3' (temp 1X3 matrix of float) +0:21 Sequence +0:21 move second child to first child (temp 4X1 matrix of float) +0:21 'r13' (temp 4X1 matrix of float) +0:21 transpose (temp 4X1 matrix of float) +0:21 'f1x4' (temp 1X4 matrix of float) +0:27 Function Definition: main( (temp structure{temp 4-component vector of float color}) +0:27 Function Parameters: +0:? Sequence +0:29 move second child to first child (temp 4-component vector of float) +0:29 color: direct index for structure (temp 4-component vector of float) +0:29 'ps_output' (temp structure{temp 4-component vector of float color}) +0:29 Constant: +0:29 0 (const int) +0:29 Constant: +0:29 1.000000 +0:29 1.000000 +0:29 1.000000 +0:29 1.000000 +0:30 Sequence +0:30 Sequence +0:30 move second child to first child (temp 4-component vector of float) +0:? 'color' (layout(location=0 ) out 4-component vector of float) +0:30 color: direct index for structure (temp 4-component vector of float) +0:30 'ps_output' (temp structure{temp 4-component vector of float color}) +0:30 Constant: +0:30 0 (const int) +0:30 Branch: Return +0:? Linker Objects +0:? 'color' (layout(location=0 ) out 4-component vector of float) + + +Linked fragment stage: + + +Shader version: 450 +gl_FragCoord origin is upper left +0:? Sequence +0:3 Function Definition: TestMatNx1( (temp void) +0:3 Function Parameters: +0:? Sequence +0:13 Sequence +0:13 move second child to first child (temp 1X1 matrix of float) +0:13 'r00' (temp 1X1 matrix of float) +0:13 transpose (temp 1X1 matrix of float) +0:13 'f1x1' (temp 1X1 matrix of float) +0:14 Sequence +0:14 move second child to first child (temp 1X2 matrix of float) +0:14 'r01' (temp 1X2 matrix of float) +0:14 transpose (temp 1X2 matrix of float) +0:14 'f2x1' (temp 2X1 matrix of float) +0:15 Sequence +0:15 move second child to first child (temp 1X3 matrix of float) +0:15 'r02' (temp 1X3 matrix of float) +0:15 transpose (temp 1X3 matrix of float) +0:15 'f3x1' (temp 3X1 matrix of float) +0:16 Sequence +0:16 move second child to first child (temp 1X4 matrix of float) +0:16 'r03' (temp 1X4 matrix of float) +0:16 transpose (temp 1X4 matrix of float) +0:16 'f4x1' (temp 4X1 matrix of float) +0:18 Sequence +0:18 move second child to first child (temp 1X1 matrix of float) +0:18 'r10' (temp 1X1 matrix of float) +0:18 transpose (temp 1X1 matrix of float) +0:18 'f1x1' (temp 1X1 matrix of float) +0:19 Sequence +0:19 move second child to first child (temp 2X1 matrix of float) +0:19 'r11' (temp 2X1 matrix of float) +0:19 transpose (temp 2X1 matrix of float) +0:19 'f1x2' (temp 1X2 matrix of float) +0:20 Sequence +0:20 move second child to first child (temp 3X1 matrix of float) +0:20 'r12' (temp 3X1 matrix of float) +0:20 transpose (temp 3X1 matrix of float) +0:20 'f1x3' (temp 1X3 matrix of float) +0:21 Sequence +0:21 move second child to first child (temp 4X1 matrix of float) +0:21 'r13' (temp 4X1 matrix of float) +0:21 transpose (temp 4X1 matrix of float) +0:21 'f1x4' (temp 1X4 matrix of float) +0:27 Function Definition: main( (temp structure{temp 4-component vector of float color}) +0:27 Function Parameters: +0:? Sequence +0:29 move second child to first child (temp 4-component vector of float) +0:29 color: direct index for structure (temp 4-component vector of float) +0:29 'ps_output' (temp structure{temp 4-component vector of float color}) +0:29 Constant: +0:29 0 (const int) +0:29 Constant: +0:29 1.000000 +0:29 1.000000 +0:29 1.000000 +0:29 1.000000 +0:30 Sequence +0:30 Sequence +0:30 move second child to first child (temp 4-component vector of float) +0:? 'color' (layout(location=0 ) out 4-component vector of float) +0:30 color: direct index for structure (temp 4-component vector of float) +0:30 'ps_output' (temp structure{temp 4-component vector of float color}) +0:30 Constant: +0:30 0 (const int) +0:30 Branch: Return +0:? Linker Objects +0:? 'color' (layout(location=0 ) out 4-component vector of float) + +// Module Version 10000 +// Generated by (magic number): 80001 +// Id's are bound by 72 + + Capability Shader + 1: ExtInstImport "GLSL.std.450" + MemoryModel Logical GLSL450 + EntryPoint Fragment 4 "main" 68 + ExecutionMode 4 OriginUpperLeft + Name 4 "main" + Name 6 "TestMatNx1(" + Name 12 "r00" + Name 13 "f1x1" + Name 19 "r01" + Name 22 "f2x1" + Name 28 "r02" + Name 31 "f3x1" + Name 37 "r03" + Name 40 "f4x1" + Name 43 "r10" + Name 46 "r11" + Name 47 "f1x2" + Name 50 "r12" + Name 51 "f1x3" + Name 54 "r13" + Name 55 "f1x4" + Name 58 "PS_OUTPUT" + MemberName 58(PS_OUTPUT) 0 "color" + Name 60 "ps_output" + Name 68 "color" + Decorate 68(color) Location 0 + 2: TypeVoid + 3: TypeFunction 2 + 8: TypeFloat 32 + 9: TypeVector 8(float) 1 + 10: TypeMatrix 9(fvec) 1 + 11: TypePointer Function 10 + 16: TypeVector 8(float) 2 + 17: TypeMatrix 16(fvec2) 1 + 18: TypePointer Function 17 + 20: TypeMatrix 9(fvec) 2 + 21: TypePointer Function 20 + 25: TypeVector 8(float) 3 + 26: TypeMatrix 25(fvec3) 1 + 27: TypePointer Function 26 + 29: TypeMatrix 9(fvec) 3 + 30: TypePointer Function 29 + 34: TypeVector 8(float) 4 + 35: TypeMatrix 34(fvec4) 1 + 36: TypePointer Function 35 + 38: TypeMatrix 9(fvec) 4 + 39: TypePointer Function 38 + 58(PS_OUTPUT): TypeStruct 34(fvec4) + 59: TypePointer Function 58(PS_OUTPUT) + 61: TypeInt 32 1 + 62: 61(int) Constant 0 + 63: 8(float) Constant 1065353216 + 64: 34(fvec4) ConstantComposite 63 63 63 63 + 65: TypePointer Function 34(fvec4) + 67: TypePointer Output 34(fvec4) + 68(color): 67(ptr) Variable Output + 4(main): 2 Function None 3 + 5: Label + 60(ps_output): 59(ptr) Variable Function + 66: 65(ptr) AccessChain 60(ps_output) 62 + Store 66 64 + 69: 65(ptr) AccessChain 60(ps_output) 62 + 70: 34(fvec4) Load 69 + Store 68(color) 70 + Return + FunctionEnd + 6(TestMatNx1(): 2 Function None 3 + 7: Label + 12(r00): 11(ptr) Variable Function + 13(f1x1): 11(ptr) Variable Function + 19(r01): 18(ptr) Variable Function + 22(f2x1): 21(ptr) Variable Function + 28(r02): 27(ptr) Variable Function + 31(f3x1): 30(ptr) Variable Function + 37(r03): 36(ptr) Variable Function + 40(f4x1): 39(ptr) Variable Function + 43(r10): 11(ptr) Variable Function + 46(r11): 21(ptr) Variable Function + 47(f1x2): 18(ptr) Variable Function + 50(r12): 30(ptr) Variable Function + 51(f1x3): 27(ptr) Variable Function + 54(r13): 39(ptr) Variable Function + 55(f1x4): 36(ptr) Variable Function + 14: 10 Load 13(f1x1) + 15: 10 Transpose 14 + Store 12(r00) 15 + 23: 20 Load 22(f2x1) + 24: 17 Transpose 23 + Store 19(r01) 24 + 32: 29 Load 31(f3x1) + 33: 26 Transpose 32 + Store 28(r02) 33 + 41: 38 Load 40(f4x1) + 42: 35 Transpose 41 + Store 37(r03) 42 + 44: 10 Load 13(f1x1) + 45: 10 Transpose 44 + Store 43(r10) 45 + 48: 17 Load 47(f1x2) + 49: 20 Transpose 48 + Store 46(r11) 49 + 52: 26 Load 51(f1x3) + 53: 29 Transpose 52 + Store 50(r12) 53 + 56: 35 Load 55(f1x4) + 57: 38 Transpose 56 + Store 54(r13) 57 + Return + FunctionEnd diff --git a/Test/baseResults/hlsl.matType.bool.frag.out b/Test/baseResults/hlsl.matType.bool.frag.out new file mode 100644 index 00000000..e24c8784 --- /dev/null +++ b/Test/baseResults/hlsl.matType.bool.frag.out @@ -0,0 +1,419 @@ +hlsl.matType.bool.frag +Shader version: 450 +gl_FragCoord origin is upper left +0:? Sequence +0:3 Function Definition: TestBoolMatTypes( (temp void) +0:3 Function Parameters: +0:? Sequence +0:25 Sequence +0:25 move second child to first child (temp 1X1 matrix of bool) +0:25 'r00' (temp 1X1 matrix of bool) +0:25 transpose (temp 1X1 matrix of bool) +0:25 'b1x1' (temp 1X1 matrix of bool) +0:26 Sequence +0:26 move second child to first child (temp 1X2 matrix of bool) +0:26 'r01' (temp 1X2 matrix of bool) +0:26 transpose (temp 1X2 matrix of bool) +0:26 'b2x1' (temp 2X1 matrix of bool) +0:27 Sequence +0:27 move second child to first child (temp 1X3 matrix of bool) +0:27 'r02' (temp 1X3 matrix of bool) +0:27 transpose (temp 1X3 matrix of bool) +0:27 'b3x1' (temp 3X1 matrix of bool) +0:28 Sequence +0:28 move second child to first child (temp 1X4 matrix of bool) +0:28 'r03' (temp 1X4 matrix of bool) +0:28 transpose (temp 1X4 matrix of bool) +0:28 'b4x1' (temp 4X1 matrix of bool) +0:30 Sequence +0:30 move second child to first child (temp 2X1 matrix of bool) +0:30 'r10' (temp 2X1 matrix of bool) +0:30 transpose (temp 2X1 matrix of bool) +0:30 'b1x2' (temp 1X2 matrix of bool) +0:31 Sequence +0:31 move second child to first child (temp 2X2 matrix of bool) +0:31 'r11' (temp 2X2 matrix of bool) +0:31 transpose (temp 2X2 matrix of bool) +0:31 'b2x2' (temp 2X2 matrix of bool) +0:32 Sequence +0:32 move second child to first child (temp 2X3 matrix of bool) +0:32 'r12' (temp 2X3 matrix of bool) +0:32 transpose (temp 2X3 matrix of bool) +0:32 'b3x2' (temp 3X2 matrix of bool) +0:33 Sequence +0:33 move second child to first child (temp 2X4 matrix of bool) +0:33 'r13' (temp 2X4 matrix of bool) +0:33 transpose (temp 2X4 matrix of bool) +0:33 'b4x2' (temp 4X2 matrix of bool) +0:35 Sequence +0:35 move second child to first child (temp 3X1 matrix of bool) +0:35 'r20' (temp 3X1 matrix of bool) +0:35 transpose (temp 3X1 matrix of bool) +0:35 'b1x3' (temp 1X3 matrix of bool) +0:36 Sequence +0:36 move second child to first child (temp 3X2 matrix of bool) +0:36 'r21' (temp 3X2 matrix of bool) +0:36 transpose (temp 3X2 matrix of bool) +0:36 'b2x3' (temp 2X3 matrix of bool) +0:37 Sequence +0:37 move second child to first child (temp 3X3 matrix of bool) +0:37 'r22' (temp 3X3 matrix of bool) +0:37 transpose (temp 3X3 matrix of bool) +0:37 'b3x3' (temp 3X3 matrix of bool) +0:38 Sequence +0:38 move second child to first child (temp 3X4 matrix of bool) +0:38 'r23' (temp 3X4 matrix of bool) +0:38 transpose (temp 3X4 matrix of bool) +0:38 'b4x3' (temp 4X3 matrix of bool) +0:40 Sequence +0:40 move second child to first child (temp 4X1 matrix of bool) +0:40 'r30' (temp 4X1 matrix of bool) +0:40 transpose (temp 4X1 matrix of bool) +0:40 'b1x4' (temp 1X4 matrix of bool) +0:41 Sequence +0:41 move second child to first child (temp 4X2 matrix of bool) +0:41 'r31' (temp 4X2 matrix of bool) +0:41 transpose (temp 4X2 matrix of bool) +0:41 'b2x4' (temp 2X4 matrix of bool) +0:42 Sequence +0:42 move second child to first child (temp 4X3 matrix of bool) +0:42 'r32' (temp 4X3 matrix of bool) +0:42 transpose (temp 4X3 matrix of bool) +0:42 'b3x4' (temp 3X4 matrix of bool) +0:43 Sequence +0:43 move second child to first child (temp 4X4 matrix of bool) +0:43 'r33' (temp 4X4 matrix of bool) +0:43 transpose (temp 4X4 matrix of bool) +0:43 'b4x4' (temp 4X4 matrix of bool) +0:49 Function Definition: main( (temp structure{temp 4-component vector of float color}) +0:49 Function Parameters: +0:? Sequence +0:51 move second child to first child (temp 4-component vector of float) +0:51 color: direct index for structure (temp 4-component vector of float) +0:51 'ps_output' (temp structure{temp 4-component vector of float color}) +0:51 Constant: +0:51 0 (const int) +0:? Constant: +0:? 0.000000 +0:? 0.000000 +0:? 0.000000 +0:? 0.000000 +0:52 Sequence +0:52 Sequence +0:52 move second child to first child (temp 4-component vector of float) +0:? 'color' (layout(location=0 ) out 4-component vector of float) +0:52 color: direct index for structure (temp 4-component vector of float) +0:52 'ps_output' (temp structure{temp 4-component vector of float color}) +0:52 Constant: +0:52 0 (const int) +0:52 Branch: Return +0:? Linker Objects +0:? 'color' (layout(location=0 ) out 4-component vector of float) + + +Linked fragment stage: + + +Shader version: 450 +gl_FragCoord origin is upper left +0:? Sequence +0:3 Function Definition: TestBoolMatTypes( (temp void) +0:3 Function Parameters: +0:? Sequence +0:25 Sequence +0:25 move second child to first child (temp 1X1 matrix of bool) +0:25 'r00' (temp 1X1 matrix of bool) +0:25 transpose (temp 1X1 matrix of bool) +0:25 'b1x1' (temp 1X1 matrix of bool) +0:26 Sequence +0:26 move second child to first child (temp 1X2 matrix of bool) +0:26 'r01' (temp 1X2 matrix of bool) +0:26 transpose (temp 1X2 matrix of bool) +0:26 'b2x1' (temp 2X1 matrix of bool) +0:27 Sequence +0:27 move second child to first child (temp 1X3 matrix of bool) +0:27 'r02' (temp 1X3 matrix of bool) +0:27 transpose (temp 1X3 matrix of bool) +0:27 'b3x1' (temp 3X1 matrix of bool) +0:28 Sequence +0:28 move second child to first child (temp 1X4 matrix of bool) +0:28 'r03' (temp 1X4 matrix of bool) +0:28 transpose (temp 1X4 matrix of bool) +0:28 'b4x1' (temp 4X1 matrix of bool) +0:30 Sequence +0:30 move second child to first child (temp 2X1 matrix of bool) +0:30 'r10' (temp 2X1 matrix of bool) +0:30 transpose (temp 2X1 matrix of bool) +0:30 'b1x2' (temp 1X2 matrix of bool) +0:31 Sequence +0:31 move second child to first child (temp 2X2 matrix of bool) +0:31 'r11' (temp 2X2 matrix of bool) +0:31 transpose (temp 2X2 matrix of bool) +0:31 'b2x2' (temp 2X2 matrix of bool) +0:32 Sequence +0:32 move second child to first child (temp 2X3 matrix of bool) +0:32 'r12' (temp 2X3 matrix of bool) +0:32 transpose (temp 2X3 matrix of bool) +0:32 'b3x2' (temp 3X2 matrix of bool) +0:33 Sequence +0:33 move second child to first child (temp 2X4 matrix of bool) +0:33 'r13' (temp 2X4 matrix of bool) +0:33 transpose (temp 2X4 matrix of bool) +0:33 'b4x2' (temp 4X2 matrix of bool) +0:35 Sequence +0:35 move second child to first child (temp 3X1 matrix of bool) +0:35 'r20' (temp 3X1 matrix of bool) +0:35 transpose (temp 3X1 matrix of bool) +0:35 'b1x3' (temp 1X3 matrix of bool) +0:36 Sequence +0:36 move second child to first child (temp 3X2 matrix of bool) +0:36 'r21' (temp 3X2 matrix of bool) +0:36 transpose (temp 3X2 matrix of bool) +0:36 'b2x3' (temp 2X3 matrix of bool) +0:37 Sequence +0:37 move second child to first child (temp 3X3 matrix of bool) +0:37 'r22' (temp 3X3 matrix of bool) +0:37 transpose (temp 3X3 matrix of bool) +0:37 'b3x3' (temp 3X3 matrix of bool) +0:38 Sequence +0:38 move second child to first child (temp 3X4 matrix of bool) +0:38 'r23' (temp 3X4 matrix of bool) +0:38 transpose (temp 3X4 matrix of bool) +0:38 'b4x3' (temp 4X3 matrix of bool) +0:40 Sequence +0:40 move second child to first child (temp 4X1 matrix of bool) +0:40 'r30' (temp 4X1 matrix of bool) +0:40 transpose (temp 4X1 matrix of bool) +0:40 'b1x4' (temp 1X4 matrix of bool) +0:41 Sequence +0:41 move second child to first child (temp 4X2 matrix of bool) +0:41 'r31' (temp 4X2 matrix of bool) +0:41 transpose (temp 4X2 matrix of bool) +0:41 'b2x4' (temp 2X4 matrix of bool) +0:42 Sequence +0:42 move second child to first child (temp 4X3 matrix of bool) +0:42 'r32' (temp 4X3 matrix of bool) +0:42 transpose (temp 4X3 matrix of bool) +0:42 'b3x4' (temp 3X4 matrix of bool) +0:43 Sequence +0:43 move second child to first child (temp 4X4 matrix of bool) +0:43 'r33' (temp 4X4 matrix of bool) +0:43 transpose (temp 4X4 matrix of bool) +0:43 'b4x4' (temp 4X4 matrix of bool) +0:49 Function Definition: main( (temp structure{temp 4-component vector of float color}) +0:49 Function Parameters: +0:? Sequence +0:51 move second child to first child (temp 4-component vector of float) +0:51 color: direct index for structure (temp 4-component vector of float) +0:51 'ps_output' (temp structure{temp 4-component vector of float color}) +0:51 Constant: +0:51 0 (const int) +0:? Constant: +0:? 0.000000 +0:? 0.000000 +0:? 0.000000 +0:? 0.000000 +0:52 Sequence +0:52 Sequence +0:52 move second child to first child (temp 4-component vector of float) +0:? 'color' (layout(location=0 ) out 4-component vector of float) +0:52 color: direct index for structure (temp 4-component vector of float) +0:52 'ps_output' (temp structure{temp 4-component vector of float color}) +0:52 Constant: +0:52 0 (const int) +0:52 Branch: Return +0:? Linker Objects +0:? 'color' (layout(location=0 ) out 4-component vector of float) + +// Module Version 10000 +// Generated by (magic number): 80001 +// Id's are bound by 125 + + Capability Shader + 1: ExtInstImport "GLSL.std.450" + MemoryModel Logical GLSL450 + EntryPoint Fragment 4 "main" 121 + ExecutionMode 4 OriginUpperLeft + Name 4 "main" + Name 6 "TestBoolMatTypes(" + Name 12 "r00" + Name 13 "b1x1" + Name 19 "r01" + Name 22 "b2x1" + Name 28 "r02" + Name 31 "b3x1" + Name 37 "r03" + Name 40 "b4x1" + Name 43 "r10" + Name 44 "b1x2" + Name 49 "r11" + Name 50 "b2x2" + Name 55 "r12" + Name 58 "b3x2" + Name 63 "r13" + Name 66 "b4x2" + Name 69 "r20" + Name 70 "b1x3" + Name 73 "r21" + Name 74 "b2x3" + Name 79 "r22" + Name 80 "b3x3" + Name 85 "r23" + Name 88 "b4x3" + Name 91 "r30" + Name 92 "b1x4" + Name 95 "r31" + Name 96 "b2x4" + Name 99 "r32" + Name 100 "b3x4" + Name 105 "r33" + Name 106 "b4x4" + Name 111 "PS_OUTPUT" + MemberName 111(PS_OUTPUT) 0 "color" + Name 113 "ps_output" + Name 121 "color" + Decorate 121(color) Location 0 + 2: TypeVoid + 3: TypeFunction 2 + 8: TypeBool + 9: TypeVector 8(bool) 1 + 10: TypeMatrix 9(bvec) 1 + 11: TypePointer Function 10 + 16: TypeVector 8(bool) 2 + 17: TypeMatrix 16(bvec2) 1 + 18: TypePointer Function 17 + 20: TypeMatrix 9(bvec) 2 + 21: TypePointer Function 20 + 25: TypeVector 8(bool) 3 + 26: TypeMatrix 25(bvec3) 1 + 27: TypePointer Function 26 + 29: TypeMatrix 9(bvec) 3 + 30: TypePointer Function 29 + 34: TypeVector 8(bool) 4 + 35: TypeMatrix 34(bvec4) 1 + 36: TypePointer Function 35 + 38: TypeMatrix 9(bvec) 4 + 39: TypePointer Function 38 + 47: TypeMatrix 16(bvec2) 2 + 48: TypePointer Function 47 + 53: TypeMatrix 25(bvec3) 2 + 54: TypePointer Function 53 + 56: TypeMatrix 16(bvec2) 3 + 57: TypePointer Function 56 + 61: TypeMatrix 34(bvec4) 2 + 62: TypePointer Function 61 + 64: TypeMatrix 16(bvec2) 4 + 65: TypePointer Function 64 + 77: TypeMatrix 25(bvec3) 3 + 78: TypePointer Function 77 + 83: TypeMatrix 34(bvec4) 3 + 84: TypePointer Function 83 + 86: TypeMatrix 25(bvec3) 4 + 87: TypePointer Function 86 + 103: TypeMatrix 34(bvec4) 4 + 104: TypePointer Function 103 + 109: TypeFloat 32 + 110: TypeVector 109(float) 4 + 111(PS_OUTPUT): TypeStruct 110(fvec4) + 112: TypePointer Function 111(PS_OUTPUT) + 114: TypeInt 32 1 + 115: 114(int) Constant 0 + 116: 109(float) Constant 0 + 117: 110(fvec4) ConstantComposite 116 116 116 116 + 118: TypePointer Function 110(fvec4) + 120: TypePointer Output 110(fvec4) + 121(color): 120(ptr) Variable Output + 4(main): 2 Function None 3 + 5: Label + 113(ps_output): 112(ptr) Variable Function + 119: 118(ptr) AccessChain 113(ps_output) 115 + Store 119 117 + 122: 118(ptr) AccessChain 113(ps_output) 115 + 123: 110(fvec4) Load 122 + Store 121(color) 123 + Return + FunctionEnd +6(TestBoolMatTypes(): 2 Function None 3 + 7: Label + 12(r00): 11(ptr) Variable Function + 13(b1x1): 11(ptr) Variable Function + 19(r01): 18(ptr) Variable Function + 22(b2x1): 21(ptr) Variable Function + 28(r02): 27(ptr) Variable Function + 31(b3x1): 30(ptr) Variable Function + 37(r03): 36(ptr) Variable Function + 40(b4x1): 39(ptr) Variable Function + 43(r10): 21(ptr) Variable Function + 44(b1x2): 18(ptr) Variable Function + 49(r11): 48(ptr) Variable Function + 50(b2x2): 48(ptr) Variable Function + 55(r12): 54(ptr) Variable Function + 58(b3x2): 57(ptr) Variable Function + 63(r13): 62(ptr) Variable Function + 66(b4x2): 65(ptr) Variable Function + 69(r20): 30(ptr) Variable Function + 70(b1x3): 27(ptr) Variable Function + 73(r21): 57(ptr) Variable Function + 74(b2x3): 54(ptr) Variable Function + 79(r22): 78(ptr) Variable Function + 80(b3x3): 78(ptr) Variable Function + 85(r23): 84(ptr) Variable Function + 88(b4x3): 87(ptr) Variable Function + 91(r30): 39(ptr) Variable Function + 92(b1x4): 36(ptr) Variable Function + 95(r31): 65(ptr) Variable Function + 96(b2x4): 62(ptr) Variable Function + 99(r32): 87(ptr) Variable Function + 100(b3x4): 84(ptr) Variable Function + 105(r33): 104(ptr) Variable Function + 106(b4x4): 104(ptr) Variable Function + 14: 10 Load 13(b1x1) + 15: 10 Transpose 14 + Store 12(r00) 15 + 23: 20 Load 22(b2x1) + 24: 17 Transpose 23 + Store 19(r01) 24 + 32: 29 Load 31(b3x1) + 33: 26 Transpose 32 + Store 28(r02) 33 + 41: 38 Load 40(b4x1) + 42: 35 Transpose 41 + Store 37(r03) 42 + 45: 17 Load 44(b1x2) + 46: 20 Transpose 45 + Store 43(r10) 46 + 51: 47 Load 50(b2x2) + 52: 47 Transpose 51 + Store 49(r11) 52 + 59: 56 Load 58(b3x2) + 60: 53 Transpose 59 + Store 55(r12) 60 + 67: 64 Load 66(b4x2) + 68: 61 Transpose 67 + Store 63(r13) 68 + 71: 26 Load 70(b1x3) + 72: 29 Transpose 71 + Store 69(r20) 72 + 75: 53 Load 74(b2x3) + 76: 56 Transpose 75 + Store 73(r21) 76 + 81: 77 Load 80(b3x3) + 82: 77 Transpose 81 + Store 79(r22) 82 + 89: 86 Load 88(b4x3) + 90: 83 Transpose 89 + Store 85(r23) 90 + 93: 35 Load 92(b1x4) + 94: 38 Transpose 93 + Store 91(r30) 94 + 97: 61 Load 96(b2x4) + 98: 64 Transpose 97 + Store 95(r31) 98 + 101: 83 Load 100(b3x4) + 102: 86 Transpose 101 + Store 99(r32) 102 + 107: 103 Load 106(b4x4) + 108: 103 Transpose 107 + Store 105(r33) 108 + Return + FunctionEnd diff --git a/Test/baseResults/hlsl.matType.int.frag.out b/Test/baseResults/hlsl.matType.int.frag.out new file mode 100644 index 00000000..d7ffb0f7 --- /dev/null +++ b/Test/baseResults/hlsl.matType.int.frag.out @@ -0,0 +1,738 @@ +hlsl.matType.int.frag +Shader version: 450 +gl_FragCoord origin is upper left +0:? Sequence +0:3 Function Definition: TestIntMatTypes( (temp void) +0:3 Function Parameters: +0:? Sequence +0:25 Sequence +0:25 move second child to first child (temp 1X1 matrix of int) +0:25 'r00' (temp 1X1 matrix of int) +0:25 transpose (temp 1X1 matrix of int) +0:25 'i1x1' (temp 1X1 matrix of int) +0:26 Sequence +0:26 move second child to first child (temp 1X2 matrix of int) +0:26 'r01' (temp 1X2 matrix of int) +0:26 transpose (temp 1X2 matrix of int) +0:26 'i2x1' (temp 2X1 matrix of int) +0:27 Sequence +0:27 move second child to first child (temp 1X3 matrix of int) +0:27 'r02' (temp 1X3 matrix of int) +0:27 transpose (temp 1X3 matrix of int) +0:27 'i3x1' (temp 3X1 matrix of int) +0:28 Sequence +0:28 move second child to first child (temp 1X4 matrix of int) +0:28 'r03' (temp 1X4 matrix of int) +0:28 transpose (temp 1X4 matrix of int) +0:28 'i4x1' (temp 4X1 matrix of int) +0:30 Sequence +0:30 move second child to first child (temp 2X1 matrix of int) +0:30 'r10' (temp 2X1 matrix of int) +0:30 transpose (temp 2X1 matrix of int) +0:30 'i1x2' (temp 1X2 matrix of int) +0:31 Sequence +0:31 move second child to first child (temp 2X2 matrix of int) +0:31 'r11' (temp 2X2 matrix of int) +0:31 transpose (temp 2X2 matrix of int) +0:31 'i2x2' (temp 2X2 matrix of int) +0:32 Sequence +0:32 move second child to first child (temp 2X3 matrix of int) +0:32 'r12' (temp 2X3 matrix of int) +0:32 transpose (temp 2X3 matrix of int) +0:32 'i3x2' (temp 3X2 matrix of int) +0:33 Sequence +0:33 move second child to first child (temp 2X4 matrix of int) +0:33 'r13' (temp 2X4 matrix of int) +0:33 transpose (temp 2X4 matrix of int) +0:33 'i4x2' (temp 4X2 matrix of int) +0:35 Sequence +0:35 move second child to first child (temp 3X1 matrix of int) +0:35 'r20' (temp 3X1 matrix of int) +0:35 transpose (temp 3X1 matrix of int) +0:35 'i1x3' (temp 1X3 matrix of int) +0:36 Sequence +0:36 move second child to first child (temp 3X2 matrix of int) +0:36 'r21' (temp 3X2 matrix of int) +0:36 transpose (temp 3X2 matrix of int) +0:36 'i2x3' (temp 2X3 matrix of int) +0:37 Sequence +0:37 move second child to first child (temp 3X3 matrix of int) +0:37 'r22' (temp 3X3 matrix of int) +0:37 transpose (temp 3X3 matrix of int) +0:37 'i3x3' (temp 3X3 matrix of int) +0:38 Sequence +0:38 move second child to first child (temp 3X4 matrix of int) +0:38 'r23' (temp 3X4 matrix of int) +0:38 transpose (temp 3X4 matrix of int) +0:38 'i4x3' (temp 4X3 matrix of int) +0:40 Sequence +0:40 move second child to first child (temp 4X1 matrix of int) +0:40 'r30' (temp 4X1 matrix of int) +0:40 transpose (temp 4X1 matrix of int) +0:40 'i1x4' (temp 1X4 matrix of int) +0:41 Sequence +0:41 move second child to first child (temp 4X2 matrix of int) +0:41 'r31' (temp 4X2 matrix of int) +0:41 transpose (temp 4X2 matrix of int) +0:41 'i2x4' (temp 2X4 matrix of int) +0:42 Sequence +0:42 move second child to first child (temp 4X3 matrix of int) +0:42 'r32' (temp 4X3 matrix of int) +0:42 transpose (temp 4X3 matrix of int) +0:42 'i3x4' (temp 3X4 matrix of int) +0:43 Sequence +0:43 move second child to first child (temp 4X4 matrix of int) +0:43 'r33' (temp 4X4 matrix of int) +0:43 transpose (temp 4X4 matrix of int) +0:43 'i4x4' (temp 4X4 matrix of int) +0:47 Function Definition: TestUintMatTypes( (temp void) +0:47 Function Parameters: +0:? Sequence +0:69 Sequence +0:69 move second child to first child (temp 1X1 matrix of uint) +0:69 'r00' (temp 1X1 matrix of uint) +0:69 transpose (temp 1X1 matrix of uint) +0:69 'u1x1' (temp 1X1 matrix of uint) +0:70 Sequence +0:70 move second child to first child (temp 1X2 matrix of uint) +0:70 'r01' (temp 1X2 matrix of uint) +0:70 transpose (temp 1X2 matrix of uint) +0:70 'u2x1' (temp 2X1 matrix of uint) +0:71 Sequence +0:71 move second child to first child (temp 1X3 matrix of uint) +0:71 'r02' (temp 1X3 matrix of uint) +0:71 transpose (temp 1X3 matrix of uint) +0:71 'u3x1' (temp 3X1 matrix of uint) +0:72 Sequence +0:72 move second child to first child (temp 1X4 matrix of uint) +0:72 'r03' (temp 1X4 matrix of uint) +0:72 transpose (temp 1X4 matrix of uint) +0:72 'u4x1' (temp 4X1 matrix of uint) +0:74 Sequence +0:74 move second child to first child (temp 2X1 matrix of uint) +0:74 'r10' (temp 2X1 matrix of uint) +0:74 transpose (temp 2X1 matrix of uint) +0:74 'u1x2' (temp 1X2 matrix of uint) +0:75 Sequence +0:75 move second child to first child (temp 2X2 matrix of uint) +0:75 'r11' (temp 2X2 matrix of uint) +0:75 transpose (temp 2X2 matrix of uint) +0:75 'u2x2' (temp 2X2 matrix of uint) +0:76 Sequence +0:76 move second child to first child (temp 2X3 matrix of uint) +0:76 'r12' (temp 2X3 matrix of uint) +0:76 transpose (temp 2X3 matrix of uint) +0:76 'u3x2' (temp 3X2 matrix of uint) +0:77 Sequence +0:77 move second child to first child (temp 2X4 matrix of uint) +0:77 'r13' (temp 2X4 matrix of uint) +0:77 transpose (temp 2X4 matrix of uint) +0:77 'u4x2' (temp 4X2 matrix of uint) +0:79 Sequence +0:79 move second child to first child (temp 3X1 matrix of uint) +0:79 'r20' (temp 3X1 matrix of uint) +0:79 transpose (temp 3X1 matrix of uint) +0:79 'u1x3' (temp 1X3 matrix of uint) +0:80 Sequence +0:80 move second child to first child (temp 3X2 matrix of uint) +0:80 'r21' (temp 3X2 matrix of uint) +0:80 transpose (temp 3X2 matrix of uint) +0:80 'u2x3' (temp 2X3 matrix of uint) +0:81 Sequence +0:81 move second child to first child (temp 3X3 matrix of uint) +0:81 'r22' (temp 3X3 matrix of uint) +0:81 transpose (temp 3X3 matrix of uint) +0:81 'u3x3' (temp 3X3 matrix of uint) +0:82 Sequence +0:82 move second child to first child (temp 3X4 matrix of uint) +0:82 'r23' (temp 3X4 matrix of uint) +0:82 transpose (temp 3X4 matrix of uint) +0:82 'u4x3' (temp 4X3 matrix of uint) +0:84 Sequence +0:84 move second child to first child (temp 4X1 matrix of uint) +0:84 'r30' (temp 4X1 matrix of uint) +0:84 transpose (temp 4X1 matrix of uint) +0:84 'u1x4' (temp 1X4 matrix of uint) +0:85 Sequence +0:85 move second child to first child (temp 4X2 matrix of uint) +0:85 'r31' (temp 4X2 matrix of uint) +0:85 transpose (temp 4X2 matrix of uint) +0:85 'u2x4' (temp 2X4 matrix of uint) +0:86 Sequence +0:86 move second child to first child (temp 4X3 matrix of uint) +0:86 'r32' (temp 4X3 matrix of uint) +0:86 transpose (temp 4X3 matrix of uint) +0:86 'u3x4' (temp 3X4 matrix of uint) +0:87 Sequence +0:87 move second child to first child (temp 4X4 matrix of uint) +0:87 'r33' (temp 4X4 matrix of uint) +0:87 transpose (temp 4X4 matrix of uint) +0:87 'u4x4' (temp 4X4 matrix of uint) +0:93 Function Definition: main( (temp structure{temp 4-component vector of float color}) +0:93 Function Parameters: +0:? Sequence +0:95 move second child to first child (temp 4-component vector of float) +0:95 color: direct index for structure (temp 4-component vector of float) +0:95 'ps_output' (temp structure{temp 4-component vector of float color}) +0:95 Constant: +0:95 0 (const int) +0:? Constant: +0:? 0.000000 +0:? 0.000000 +0:? 0.000000 +0:? 0.000000 +0:96 Sequence +0:96 Sequence +0:96 move second child to first child (temp 4-component vector of float) +0:? 'color' (layout(location=0 ) out 4-component vector of float) +0:96 color: direct index for structure (temp 4-component vector of float) +0:96 'ps_output' (temp structure{temp 4-component vector of float color}) +0:96 Constant: +0:96 0 (const int) +0:96 Branch: Return +0:? Linker Objects +0:? 'color' (layout(location=0 ) out 4-component vector of float) + + +Linked fragment stage: + + +Shader version: 450 +gl_FragCoord origin is upper left +0:? Sequence +0:3 Function Definition: TestIntMatTypes( (temp void) +0:3 Function Parameters: +0:? Sequence +0:25 Sequence +0:25 move second child to first child (temp 1X1 matrix of int) +0:25 'r00' (temp 1X1 matrix of int) +0:25 transpose (temp 1X1 matrix of int) +0:25 'i1x1' (temp 1X1 matrix of int) +0:26 Sequence +0:26 move second child to first child (temp 1X2 matrix of int) +0:26 'r01' (temp 1X2 matrix of int) +0:26 transpose (temp 1X2 matrix of int) +0:26 'i2x1' (temp 2X1 matrix of int) +0:27 Sequence +0:27 move second child to first child (temp 1X3 matrix of int) +0:27 'r02' (temp 1X3 matrix of int) +0:27 transpose (temp 1X3 matrix of int) +0:27 'i3x1' (temp 3X1 matrix of int) +0:28 Sequence +0:28 move second child to first child (temp 1X4 matrix of int) +0:28 'r03' (temp 1X4 matrix of int) +0:28 transpose (temp 1X4 matrix of int) +0:28 'i4x1' (temp 4X1 matrix of int) +0:30 Sequence +0:30 move second child to first child (temp 2X1 matrix of int) +0:30 'r10' (temp 2X1 matrix of int) +0:30 transpose (temp 2X1 matrix of int) +0:30 'i1x2' (temp 1X2 matrix of int) +0:31 Sequence +0:31 move second child to first child (temp 2X2 matrix of int) +0:31 'r11' (temp 2X2 matrix of int) +0:31 transpose (temp 2X2 matrix of int) +0:31 'i2x2' (temp 2X2 matrix of int) +0:32 Sequence +0:32 move second child to first child (temp 2X3 matrix of int) +0:32 'r12' (temp 2X3 matrix of int) +0:32 transpose (temp 2X3 matrix of int) +0:32 'i3x2' (temp 3X2 matrix of int) +0:33 Sequence +0:33 move second child to first child (temp 2X4 matrix of int) +0:33 'r13' (temp 2X4 matrix of int) +0:33 transpose (temp 2X4 matrix of int) +0:33 'i4x2' (temp 4X2 matrix of int) +0:35 Sequence +0:35 move second child to first child (temp 3X1 matrix of int) +0:35 'r20' (temp 3X1 matrix of int) +0:35 transpose (temp 3X1 matrix of int) +0:35 'i1x3' (temp 1X3 matrix of int) +0:36 Sequence +0:36 move second child to first child (temp 3X2 matrix of int) +0:36 'r21' (temp 3X2 matrix of int) +0:36 transpose (temp 3X2 matrix of int) +0:36 'i2x3' (temp 2X3 matrix of int) +0:37 Sequence +0:37 move second child to first child (temp 3X3 matrix of int) +0:37 'r22' (temp 3X3 matrix of int) +0:37 transpose (temp 3X3 matrix of int) +0:37 'i3x3' (temp 3X3 matrix of int) +0:38 Sequence +0:38 move second child to first child (temp 3X4 matrix of int) +0:38 'r23' (temp 3X4 matrix of int) +0:38 transpose (temp 3X4 matrix of int) +0:38 'i4x3' (temp 4X3 matrix of int) +0:40 Sequence +0:40 move second child to first child (temp 4X1 matrix of int) +0:40 'r30' (temp 4X1 matrix of int) +0:40 transpose (temp 4X1 matrix of int) +0:40 'i1x4' (temp 1X4 matrix of int) +0:41 Sequence +0:41 move second child to first child (temp 4X2 matrix of int) +0:41 'r31' (temp 4X2 matrix of int) +0:41 transpose (temp 4X2 matrix of int) +0:41 'i2x4' (temp 2X4 matrix of int) +0:42 Sequence +0:42 move second child to first child (temp 4X3 matrix of int) +0:42 'r32' (temp 4X3 matrix of int) +0:42 transpose (temp 4X3 matrix of int) +0:42 'i3x4' (temp 3X4 matrix of int) +0:43 Sequence +0:43 move second child to first child (temp 4X4 matrix of int) +0:43 'r33' (temp 4X4 matrix of int) +0:43 transpose (temp 4X4 matrix of int) +0:43 'i4x4' (temp 4X4 matrix of int) +0:47 Function Definition: TestUintMatTypes( (temp void) +0:47 Function Parameters: +0:? Sequence +0:69 Sequence +0:69 move second child to first child (temp 1X1 matrix of uint) +0:69 'r00' (temp 1X1 matrix of uint) +0:69 transpose (temp 1X1 matrix of uint) +0:69 'u1x1' (temp 1X1 matrix of uint) +0:70 Sequence +0:70 move second child to first child (temp 1X2 matrix of uint) +0:70 'r01' (temp 1X2 matrix of uint) +0:70 transpose (temp 1X2 matrix of uint) +0:70 'u2x1' (temp 2X1 matrix of uint) +0:71 Sequence +0:71 move second child to first child (temp 1X3 matrix of uint) +0:71 'r02' (temp 1X3 matrix of uint) +0:71 transpose (temp 1X3 matrix of uint) +0:71 'u3x1' (temp 3X1 matrix of uint) +0:72 Sequence +0:72 move second child to first child (temp 1X4 matrix of uint) +0:72 'r03' (temp 1X4 matrix of uint) +0:72 transpose (temp 1X4 matrix of uint) +0:72 'u4x1' (temp 4X1 matrix of uint) +0:74 Sequence +0:74 move second child to first child (temp 2X1 matrix of uint) +0:74 'r10' (temp 2X1 matrix of uint) +0:74 transpose (temp 2X1 matrix of uint) +0:74 'u1x2' (temp 1X2 matrix of uint) +0:75 Sequence +0:75 move second child to first child (temp 2X2 matrix of uint) +0:75 'r11' (temp 2X2 matrix of uint) +0:75 transpose (temp 2X2 matrix of uint) +0:75 'u2x2' (temp 2X2 matrix of uint) +0:76 Sequence +0:76 move second child to first child (temp 2X3 matrix of uint) +0:76 'r12' (temp 2X3 matrix of uint) +0:76 transpose (temp 2X3 matrix of uint) +0:76 'u3x2' (temp 3X2 matrix of uint) +0:77 Sequence +0:77 move second child to first child (temp 2X4 matrix of uint) +0:77 'r13' (temp 2X4 matrix of uint) +0:77 transpose (temp 2X4 matrix of uint) +0:77 'u4x2' (temp 4X2 matrix of uint) +0:79 Sequence +0:79 move second child to first child (temp 3X1 matrix of uint) +0:79 'r20' (temp 3X1 matrix of uint) +0:79 transpose (temp 3X1 matrix of uint) +0:79 'u1x3' (temp 1X3 matrix of uint) +0:80 Sequence +0:80 move second child to first child (temp 3X2 matrix of uint) +0:80 'r21' (temp 3X2 matrix of uint) +0:80 transpose (temp 3X2 matrix of uint) +0:80 'u2x3' (temp 2X3 matrix of uint) +0:81 Sequence +0:81 move second child to first child (temp 3X3 matrix of uint) +0:81 'r22' (temp 3X3 matrix of uint) +0:81 transpose (temp 3X3 matrix of uint) +0:81 'u3x3' (temp 3X3 matrix of uint) +0:82 Sequence +0:82 move second child to first child (temp 3X4 matrix of uint) +0:82 'r23' (temp 3X4 matrix of uint) +0:82 transpose (temp 3X4 matrix of uint) +0:82 'u4x3' (temp 4X3 matrix of uint) +0:84 Sequence +0:84 move second child to first child (temp 4X1 matrix of uint) +0:84 'r30' (temp 4X1 matrix of uint) +0:84 transpose (temp 4X1 matrix of uint) +0:84 'u1x4' (temp 1X4 matrix of uint) +0:85 Sequence +0:85 move second child to first child (temp 4X2 matrix of uint) +0:85 'r31' (temp 4X2 matrix of uint) +0:85 transpose (temp 4X2 matrix of uint) +0:85 'u2x4' (temp 2X4 matrix of uint) +0:86 Sequence +0:86 move second child to first child (temp 4X3 matrix of uint) +0:86 'r32' (temp 4X3 matrix of uint) +0:86 transpose (temp 4X3 matrix of uint) +0:86 'u3x4' (temp 3X4 matrix of uint) +0:87 Sequence +0:87 move second child to first child (temp 4X4 matrix of uint) +0:87 'r33' (temp 4X4 matrix of uint) +0:87 transpose (temp 4X4 matrix of uint) +0:87 'u4x4' (temp 4X4 matrix of uint) +0:93 Function Definition: main( (temp structure{temp 4-component vector of float color}) +0:93 Function Parameters: +0:? Sequence +0:95 move second child to first child (temp 4-component vector of float) +0:95 color: direct index for structure (temp 4-component vector of float) +0:95 'ps_output' (temp structure{temp 4-component vector of float color}) +0:95 Constant: +0:95 0 (const int) +0:? Constant: +0:? 0.000000 +0:? 0.000000 +0:? 0.000000 +0:? 0.000000 +0:96 Sequence +0:96 Sequence +0:96 move second child to first child (temp 4-component vector of float) +0:? 'color' (layout(location=0 ) out 4-component vector of float) +0:96 color: direct index for structure (temp 4-component vector of float) +0:96 'ps_output' (temp structure{temp 4-component vector of float color}) +0:96 Constant: +0:96 0 (const int) +0:96 Branch: Return +0:? Linker Objects +0:? 'color' (layout(location=0 ) out 4-component vector of float) + +// Module Version 10000 +// Generated by (magic number): 80001 +// Id's are bound by 227 + + Capability Shader + 1: ExtInstImport "GLSL.std.450" + MemoryModel Logical GLSL450 + EntryPoint Fragment 4 "main" 223 + ExecutionMode 4 OriginUpperLeft + Name 4 "main" + Name 6 "TestIntMatTypes(" + Name 8 "TestUintMatTypes(" + Name 14 "r00" + Name 15 "i1x1" + Name 21 "r01" + Name 24 "i2x1" + Name 30 "r02" + Name 33 "i3x1" + Name 39 "r03" + Name 42 "i4x1" + Name 45 "r10" + Name 46 "i1x2" + Name 51 "r11" + Name 52 "i2x2" + Name 57 "r12" + Name 60 "i3x2" + Name 65 "r13" + Name 68 "i4x2" + Name 71 "r20" + Name 72 "i1x3" + Name 75 "r21" + Name 76 "i2x3" + Name 81 "r22" + Name 82 "i3x3" + Name 87 "r23" + Name 90 "i4x3" + Name 93 "r30" + Name 94 "i1x4" + Name 97 "r31" + Name 98 "i2x4" + Name 101 "r32" + Name 102 "i3x4" + Name 107 "r33" + Name 108 "i4x4" + Name 115 "r00" + Name 116 "u1x1" + Name 122 "r01" + Name 125 "u2x1" + Name 131 "r02" + Name 134 "u3x1" + Name 140 "r03" + Name 143 "u4x1" + Name 146 "r10" + Name 147 "u1x2" + Name 152 "r11" + Name 153 "u2x2" + Name 158 "r12" + Name 161 "u3x2" + Name 166 "r13" + Name 169 "u4x2" + Name 172 "r20" + Name 173 "u1x3" + Name 176 "r21" + Name 177 "u2x3" + Name 182 "r22" + Name 183 "u3x3" + Name 188 "r23" + Name 191 "u4x3" + Name 194 "r30" + Name 195 "u1x4" + Name 198 "r31" + Name 199 "u2x4" + Name 202 "r32" + Name 203 "u3x4" + Name 208 "r33" + Name 209 "u4x4" + Name 214 "PS_OUTPUT" + MemberName 214(PS_OUTPUT) 0 "color" + Name 216 "ps_output" + Name 223 "color" + Decorate 223(color) Location 0 + 2: TypeVoid + 3: TypeFunction 2 + 10: TypeInt 32 1 + 11: TypeVector 10(int) 1 + 12: TypeMatrix 11(ivec) 1 + 13: TypePointer Function 12 + 18: TypeVector 10(int) 2 + 19: TypeMatrix 18(ivec2) 1 + 20: TypePointer Function 19 + 22: TypeMatrix 11(ivec) 2 + 23: TypePointer Function 22 + 27: TypeVector 10(int) 3 + 28: TypeMatrix 27(ivec3) 1 + 29: TypePointer Function 28 + 31: TypeMatrix 11(ivec) 3 + 32: TypePointer Function 31 + 36: TypeVector 10(int) 4 + 37: TypeMatrix 36(ivec4) 1 + 38: TypePointer Function 37 + 40: TypeMatrix 11(ivec) 4 + 41: TypePointer Function 40 + 49: TypeMatrix 18(ivec2) 2 + 50: TypePointer Function 49 + 55: TypeMatrix 27(ivec3) 2 + 56: TypePointer Function 55 + 58: TypeMatrix 18(ivec2) 3 + 59: TypePointer Function 58 + 63: TypeMatrix 36(ivec4) 2 + 64: TypePointer Function 63 + 66: TypeMatrix 18(ivec2) 4 + 67: TypePointer Function 66 + 79: TypeMatrix 27(ivec3) 3 + 80: TypePointer Function 79 + 85: TypeMatrix 36(ivec4) 3 + 86: TypePointer Function 85 + 88: TypeMatrix 27(ivec3) 4 + 89: TypePointer Function 88 + 105: TypeMatrix 36(ivec4) 4 + 106: TypePointer Function 105 + 111: TypeInt 32 0 + 112: TypeVector 111(int) 1 + 113: TypeMatrix 112(ivec) 1 + 114: TypePointer Function 113 + 119: TypeVector 111(int) 2 + 120: TypeMatrix 119(ivec2) 1 + 121: TypePointer Function 120 + 123: TypeMatrix 112(ivec) 2 + 124: TypePointer Function 123 + 128: TypeVector 111(int) 3 + 129: TypeMatrix 128(ivec3) 1 + 130: TypePointer Function 129 + 132: TypeMatrix 112(ivec) 3 + 133: TypePointer Function 132 + 137: TypeVector 111(int) 4 + 138: TypeMatrix 137(ivec4) 1 + 139: TypePointer Function 138 + 141: TypeMatrix 112(ivec) 4 + 142: TypePointer Function 141 + 150: TypeMatrix 119(ivec2) 2 + 151: TypePointer Function 150 + 156: TypeMatrix 128(ivec3) 2 + 157: TypePointer Function 156 + 159: TypeMatrix 119(ivec2) 3 + 160: TypePointer Function 159 + 164: TypeMatrix 137(ivec4) 2 + 165: TypePointer Function 164 + 167: TypeMatrix 119(ivec2) 4 + 168: TypePointer Function 167 + 180: TypeMatrix 128(ivec3) 3 + 181: TypePointer Function 180 + 186: TypeMatrix 137(ivec4) 3 + 187: TypePointer Function 186 + 189: TypeMatrix 128(ivec3) 4 + 190: TypePointer Function 189 + 206: TypeMatrix 137(ivec4) 4 + 207: TypePointer Function 206 + 212: TypeFloat 32 + 213: TypeVector 212(float) 4 + 214(PS_OUTPUT): TypeStruct 213(fvec4) + 215: TypePointer Function 214(PS_OUTPUT) + 217: 10(int) Constant 0 + 218: 212(float) Constant 0 + 219: 213(fvec4) ConstantComposite 218 218 218 218 + 220: TypePointer Function 213(fvec4) + 222: TypePointer Output 213(fvec4) + 223(color): 222(ptr) Variable Output + 4(main): 2 Function None 3 + 5: Label + 216(ps_output): 215(ptr) Variable Function + 221: 220(ptr) AccessChain 216(ps_output) 217 + Store 221 219 + 224: 220(ptr) AccessChain 216(ps_output) 217 + 225: 213(fvec4) Load 224 + Store 223(color) 225 + Return + FunctionEnd +6(TestIntMatTypes(): 2 Function None 3 + 7: Label + 14(r00): 13(ptr) Variable Function + 15(i1x1): 13(ptr) Variable Function + 21(r01): 20(ptr) Variable Function + 24(i2x1): 23(ptr) Variable Function + 30(r02): 29(ptr) Variable Function + 33(i3x1): 32(ptr) Variable Function + 39(r03): 38(ptr) Variable Function + 42(i4x1): 41(ptr) Variable Function + 45(r10): 23(ptr) Variable Function + 46(i1x2): 20(ptr) Variable Function + 51(r11): 50(ptr) Variable Function + 52(i2x2): 50(ptr) Variable Function + 57(r12): 56(ptr) Variable Function + 60(i3x2): 59(ptr) Variable Function + 65(r13): 64(ptr) Variable Function + 68(i4x2): 67(ptr) Variable Function + 71(r20): 32(ptr) Variable Function + 72(i1x3): 29(ptr) Variable Function + 75(r21): 59(ptr) Variable Function + 76(i2x3): 56(ptr) Variable Function + 81(r22): 80(ptr) Variable Function + 82(i3x3): 80(ptr) Variable Function + 87(r23): 86(ptr) Variable Function + 90(i4x3): 89(ptr) Variable Function + 93(r30): 41(ptr) Variable Function + 94(i1x4): 38(ptr) Variable Function + 97(r31): 67(ptr) Variable Function + 98(i2x4): 64(ptr) Variable Function + 101(r32): 89(ptr) Variable Function + 102(i3x4): 86(ptr) Variable Function + 107(r33): 106(ptr) Variable Function + 108(i4x4): 106(ptr) Variable Function + 16: 12 Load 15(i1x1) + 17: 12 Transpose 16 + Store 14(r00) 17 + 25: 22 Load 24(i2x1) + 26: 19 Transpose 25 + Store 21(r01) 26 + 34: 31 Load 33(i3x1) + 35: 28 Transpose 34 + Store 30(r02) 35 + 43: 40 Load 42(i4x1) + 44: 37 Transpose 43 + Store 39(r03) 44 + 47: 19 Load 46(i1x2) + 48: 22 Transpose 47 + Store 45(r10) 48 + 53: 49 Load 52(i2x2) + 54: 49 Transpose 53 + Store 51(r11) 54 + 61: 58 Load 60(i3x2) + 62: 55 Transpose 61 + Store 57(r12) 62 + 69: 66 Load 68(i4x2) + 70: 63 Transpose 69 + Store 65(r13) 70 + 73: 28 Load 72(i1x3) + 74: 31 Transpose 73 + Store 71(r20) 74 + 77: 55 Load 76(i2x3) + 78: 58 Transpose 77 + Store 75(r21) 78 + 83: 79 Load 82(i3x3) + 84: 79 Transpose 83 + Store 81(r22) 84 + 91: 88 Load 90(i4x3) + 92: 85 Transpose 91 + Store 87(r23) 92 + 95: 37 Load 94(i1x4) + 96: 40 Transpose 95 + Store 93(r30) 96 + 99: 63 Load 98(i2x4) + 100: 66 Transpose 99 + Store 97(r31) 100 + 103: 85 Load 102(i3x4) + 104: 88 Transpose 103 + Store 101(r32) 104 + 109: 105 Load 108(i4x4) + 110: 105 Transpose 109 + Store 107(r33) 110 + Return + FunctionEnd +8(TestUintMatTypes(): 2 Function None 3 + 9: Label + 115(r00): 114(ptr) Variable Function + 116(u1x1): 114(ptr) Variable Function + 122(r01): 121(ptr) Variable Function + 125(u2x1): 124(ptr) Variable Function + 131(r02): 130(ptr) Variable Function + 134(u3x1): 133(ptr) Variable Function + 140(r03): 139(ptr) Variable Function + 143(u4x1): 142(ptr) Variable Function + 146(r10): 124(ptr) Variable Function + 147(u1x2): 121(ptr) Variable Function + 152(r11): 151(ptr) Variable Function + 153(u2x2): 151(ptr) Variable Function + 158(r12): 157(ptr) Variable Function + 161(u3x2): 160(ptr) Variable Function + 166(r13): 165(ptr) Variable Function + 169(u4x2): 168(ptr) Variable Function + 172(r20): 133(ptr) Variable Function + 173(u1x3): 130(ptr) Variable Function + 176(r21): 160(ptr) Variable Function + 177(u2x3): 157(ptr) Variable Function + 182(r22): 181(ptr) Variable Function + 183(u3x3): 181(ptr) Variable Function + 188(r23): 187(ptr) Variable Function + 191(u4x3): 190(ptr) Variable Function + 194(r30): 142(ptr) Variable Function + 195(u1x4): 139(ptr) Variable Function + 198(r31): 168(ptr) Variable Function + 199(u2x4): 165(ptr) Variable Function + 202(r32): 190(ptr) Variable Function + 203(u3x4): 187(ptr) Variable Function + 208(r33): 207(ptr) Variable Function + 209(u4x4): 207(ptr) Variable Function + 117: 113 Load 116(u1x1) + 118: 113 Transpose 117 + Store 115(r00) 118 + 126: 123 Load 125(u2x1) + 127: 120 Transpose 126 + Store 122(r01) 127 + 135: 132 Load 134(u3x1) + 136: 129 Transpose 135 + Store 131(r02) 136 + 144: 141 Load 143(u4x1) + 145: 138 Transpose 144 + Store 140(r03) 145 + 148: 120 Load 147(u1x2) + 149: 123 Transpose 148 + Store 146(r10) 149 + 154: 150 Load 153(u2x2) + 155: 150 Transpose 154 + Store 152(r11) 155 + 162: 159 Load 161(u3x2) + 163: 156 Transpose 162 + Store 158(r12) 163 + 170: 167 Load 169(u4x2) + 171: 164 Transpose 170 + Store 166(r13) 171 + 174: 129 Load 173(u1x3) + 175: 132 Transpose 174 + Store 172(r20) 175 + 178: 156 Load 177(u2x3) + 179: 159 Transpose 178 + Store 176(r21) 179 + 184: 180 Load 183(u3x3) + 185: 180 Transpose 184 + Store 182(r22) 185 + 192: 189 Load 191(u4x3) + 193: 186 Transpose 192 + Store 188(r23) 193 + 196: 138 Load 195(u1x4) + 197: 141 Transpose 196 + Store 194(r30) 197 + 200: 164 Load 199(u2x4) + 201: 167 Transpose 200 + Store 198(r31) 201 + 204: 186 Load 203(u3x4) + 205: 189 Transpose 204 + Store 202(r32) 205 + 210: 206 Load 209(u4x4) + 211: 206 Transpose 210 + Store 208(r33) 211 + Return + FunctionEnd diff --git a/Test/baseResults/hlsl.max.frag.out b/Test/baseResults/hlsl.max.frag.out index 53646bb1..8995af35 100755 --- a/Test/baseResults/hlsl.max.frag.out +++ b/Test/baseResults/hlsl.max.frag.out @@ -10,7 +10,7 @@ gl_FragCoord origin is upper left 0:3 Sequence 0:3 move second child to first child (temp 4-component vector of float) 0:? '@entryPointOutput' (layout(location=0 ) out 4-component vector of float) -0:3 max (global 4-component vector of float) +0:3 max (temp 4-component vector of float) 0:3 'input1' (layout(location=0 ) in 4-component vector of float) 0:3 'input2' (layout(location=1 ) in 4-component vector of float) 0:3 Branch: Return @@ -34,7 +34,7 @@ gl_FragCoord origin is upper left 0:3 Sequence 0:3 move second child to first child (temp 4-component vector of float) 0:? '@entryPointOutput' (layout(location=0 ) out 4-component vector of float) -0:3 max (global 4-component vector of float) +0:3 max (temp 4-component vector of float) 0:3 'input1' (layout(location=0 ) in 4-component vector of float) 0:3 'input2' (layout(location=1 ) in 4-component vector of float) 0:3 Branch: Return diff --git a/Test/baseResults/hlsl.promote.vec1.frag.out b/Test/baseResults/hlsl.promote.vec1.frag.out index 3b684504..9179dbcc 100644 --- a/Test/baseResults/hlsl.promote.vec1.frag.out +++ b/Test/baseResults/hlsl.promote.vec1.frag.out @@ -13,13 +13,13 @@ gl_FragCoord origin is upper left 0:8 'f1b' (temp 1-component vector of float) 0:8 Construct float (temp 1-component vector of float) 0:8 'f1a' (temp float) -0:11 step (global 3-component vector of float) +0:11 step (temp 3-component vector of float) 0:11 Constant: 0:11 0.000000 0:11 0.000000 0:11 0.000000 0:11 'f3' (temp 3-component vector of float) -0:13 sine (global float) +0:13 sine (temp float) 0:13 Construct float (in float) 0:13 'f1b' (temp 1-component vector of float) 0:15 Sequence @@ -52,13 +52,13 @@ gl_FragCoord origin is upper left 0:8 'f1b' (temp 1-component vector of float) 0:8 Construct float (temp 1-component vector of float) 0:8 'f1a' (temp float) -0:11 step (global 3-component vector of float) +0:11 step (temp 3-component vector of float) 0:11 Constant: 0:11 0.000000 0:11 0.000000 0:11 0.000000 0:11 'f3' (temp 3-component vector of float) -0:13 sine (global float) +0:13 sine (temp float) 0:13 Construct float (in float) 0:13 'f1b' (temp 1-component vector of float) 0:15 Sequence diff --git a/Test/baseResults/hlsl.samplecmp.array.dx10.frag.out b/Test/baseResults/hlsl.samplecmp.array.dx10.frag.out index a1acd797..c4f5d11c 100644 --- a/Test/baseResults/hlsl.samplecmp.array.dx10.frag.out +++ b/Test/baseResults/hlsl.samplecmp.array.dx10.frag.out @@ -8,7 +8,7 @@ gl_FragCoord origin is upper left 0:42 Sequence 0:42 move second child to first child (temp float) 0:42 'r10' (temp float) -0:42 texture (global float) +0:42 texture (temp float) 0:42 Construct combined texture-sampler (temp sampler1DArrayShadow) 0:42 'g_tTex1df4a' (uniform texture1DArray) 0:42 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -21,7 +21,7 @@ gl_FragCoord origin is upper left 0:43 Sequence 0:43 move second child to first child (temp float) 0:43 'r12' (temp float) -0:43 texture (global float) +0:43 texture (temp float) 0:43 Construct combined texture-sampler (temp isampler1DArrayShadow) 0:43 'g_tTex1di4a' (uniform itexture1DArray) 0:43 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -34,7 +34,7 @@ gl_FragCoord origin is upper left 0:44 Sequence 0:44 move second child to first child (temp float) 0:44 'r14' (temp float) -0:44 texture (global float) +0:44 texture (temp float) 0:44 Construct combined texture-sampler (temp usampler1DArrayShadow) 0:44 'g_tTex1du4a' (uniform utexture1DArray) 0:44 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -47,7 +47,7 @@ gl_FragCoord origin is upper left 0:47 Sequence 0:47 move second child to first child (temp float) 0:47 'r30' (temp float) -0:47 texture (global float) +0:47 texture (temp float) 0:47 Construct combined texture-sampler (temp sampler2DArrayShadow) 0:47 'g_tTex2df4a' (uniform texture2DArray) 0:47 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -61,7 +61,7 @@ gl_FragCoord origin is upper left 0:48 Sequence 0:48 move second child to first child (temp float) 0:48 'r32' (temp float) -0:48 texture (global float) +0:48 texture (temp float) 0:48 Construct combined texture-sampler (temp isampler2DArrayShadow) 0:48 'g_tTex2di4a' (uniform itexture2DArray) 0:48 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -75,7 +75,7 @@ gl_FragCoord origin is upper left 0:49 Sequence 0:49 move second child to first child (temp float) 0:49 'r34' (temp float) -0:49 texture (global float) +0:49 texture (temp float) 0:49 Construct combined texture-sampler (temp usampler2DArrayShadow) 0:49 'g_tTex2du4a' (uniform utexture2DArray) 0:49 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -89,7 +89,7 @@ gl_FragCoord origin is upper left 0:52 Sequence 0:52 move second child to first child (temp float) 0:52 'r60' (temp float) -0:52 texture (global float) +0:52 texture (temp float) 0:52 Construct combined texture-sampler (temp samplerCubeArrayShadow) 0:52 'g_tTexcdf4a' (uniform textureCubeArray) 0:52 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -104,7 +104,7 @@ gl_FragCoord origin is upper left 0:53 Sequence 0:53 move second child to first child (temp float) 0:53 'r62' (temp float) -0:53 texture (global float) +0:53 texture (temp float) 0:53 Construct combined texture-sampler (temp isamplerCubeArrayShadow) 0:53 'g_tTexcdi4a' (uniform itextureCubeArray) 0:53 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -119,7 +119,7 @@ gl_FragCoord origin is upper left 0:54 Sequence 0:54 move second child to first child (temp float) 0:54 'r64' (temp float) -0:54 texture (global float) +0:54 texture (temp float) 0:54 Construct combined texture-sampler (temp usamplerCubeArrayShadow) 0:54 'g_tTexcdu4a' (uniform utextureCubeArray) 0:54 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -202,7 +202,7 @@ gl_FragCoord origin is upper left 0:42 Sequence 0:42 move second child to first child (temp float) 0:42 'r10' (temp float) -0:42 texture (global float) +0:42 texture (temp float) 0:42 Construct combined texture-sampler (temp sampler1DArrayShadow) 0:42 'g_tTex1df4a' (uniform texture1DArray) 0:42 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -215,7 +215,7 @@ gl_FragCoord origin is upper left 0:43 Sequence 0:43 move second child to first child (temp float) 0:43 'r12' (temp float) -0:43 texture (global float) +0:43 texture (temp float) 0:43 Construct combined texture-sampler (temp isampler1DArrayShadow) 0:43 'g_tTex1di4a' (uniform itexture1DArray) 0:43 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -228,7 +228,7 @@ gl_FragCoord origin is upper left 0:44 Sequence 0:44 move second child to first child (temp float) 0:44 'r14' (temp float) -0:44 texture (global float) +0:44 texture (temp float) 0:44 Construct combined texture-sampler (temp usampler1DArrayShadow) 0:44 'g_tTex1du4a' (uniform utexture1DArray) 0:44 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -241,7 +241,7 @@ gl_FragCoord origin is upper left 0:47 Sequence 0:47 move second child to first child (temp float) 0:47 'r30' (temp float) -0:47 texture (global float) +0:47 texture (temp float) 0:47 Construct combined texture-sampler (temp sampler2DArrayShadow) 0:47 'g_tTex2df4a' (uniform texture2DArray) 0:47 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -255,7 +255,7 @@ gl_FragCoord origin is upper left 0:48 Sequence 0:48 move second child to first child (temp float) 0:48 'r32' (temp float) -0:48 texture (global float) +0:48 texture (temp float) 0:48 Construct combined texture-sampler (temp isampler2DArrayShadow) 0:48 'g_tTex2di4a' (uniform itexture2DArray) 0:48 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -269,7 +269,7 @@ gl_FragCoord origin is upper left 0:49 Sequence 0:49 move second child to first child (temp float) 0:49 'r34' (temp float) -0:49 texture (global float) +0:49 texture (temp float) 0:49 Construct combined texture-sampler (temp usampler2DArrayShadow) 0:49 'g_tTex2du4a' (uniform utexture2DArray) 0:49 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -283,7 +283,7 @@ gl_FragCoord origin is upper left 0:52 Sequence 0:52 move second child to first child (temp float) 0:52 'r60' (temp float) -0:52 texture (global float) +0:52 texture (temp float) 0:52 Construct combined texture-sampler (temp samplerCubeArrayShadow) 0:52 'g_tTexcdf4a' (uniform textureCubeArray) 0:52 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -298,7 +298,7 @@ gl_FragCoord origin is upper left 0:53 Sequence 0:53 move second child to first child (temp float) 0:53 'r62' (temp float) -0:53 texture (global float) +0:53 texture (temp float) 0:53 Construct combined texture-sampler (temp isamplerCubeArrayShadow) 0:53 'g_tTexcdi4a' (uniform itextureCubeArray) 0:53 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -313,7 +313,7 @@ gl_FragCoord origin is upper left 0:54 Sequence 0:54 move second child to first child (temp float) 0:54 'r64' (temp float) -0:54 texture (global float) +0:54 texture (temp float) 0:54 Construct combined texture-sampler (temp usamplerCubeArrayShadow) 0:54 'g_tTexcdu4a' (uniform utextureCubeArray) 0:54 'g_sSamp' (layout(binding=0 ) uniform sampler) diff --git a/Test/baseResults/hlsl.samplecmp.basic.dx10.frag.out b/Test/baseResults/hlsl.samplecmp.basic.dx10.frag.out index 08f3b400..acd24b8b 100644 --- a/Test/baseResults/hlsl.samplecmp.basic.dx10.frag.out +++ b/Test/baseResults/hlsl.samplecmp.basic.dx10.frag.out @@ -8,7 +8,7 @@ gl_FragCoord origin is upper left 0:42 Sequence 0:42 move second child to first child (temp float) 0:42 'r00' (temp float) -0:42 texture (global float) +0:42 texture (temp float) 0:42 Construct combined texture-sampler (temp sampler1DShadow) 0:42 'g_tTex1df4' (layout(binding=0 ) uniform texture1D) 0:42 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -20,7 +20,7 @@ gl_FragCoord origin is upper left 0:43 Sequence 0:43 move second child to first child (temp float) 0:43 'r02' (temp float) -0:43 texture (global float) +0:43 texture (temp float) 0:43 Construct combined texture-sampler (temp isampler1DShadow) 0:43 'g_tTex1di4' (uniform itexture1D) 0:43 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -32,7 +32,7 @@ gl_FragCoord origin is upper left 0:44 Sequence 0:44 move second child to first child (temp float) 0:44 'r04' (temp float) -0:44 texture (global float) +0:44 texture (temp float) 0:44 Construct combined texture-sampler (temp usampler1DShadow) 0:44 'g_tTex1du4' (uniform utexture1D) 0:44 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -44,7 +44,7 @@ gl_FragCoord origin is upper left 0:47 Sequence 0:47 move second child to first child (temp float) 0:47 'r20' (temp float) -0:47 texture (global float) +0:47 texture (temp float) 0:47 Construct combined texture-sampler (temp sampler2DShadow) 0:47 'g_tTex2df4' (uniform texture2D) 0:47 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -57,7 +57,7 @@ gl_FragCoord origin is upper left 0:48 Sequence 0:48 move second child to first child (temp float) 0:48 'r22' (temp float) -0:48 texture (global float) +0:48 texture (temp float) 0:48 Construct combined texture-sampler (temp isampler2DShadow) 0:48 'g_tTex2di4' (uniform itexture2D) 0:48 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -70,7 +70,7 @@ gl_FragCoord origin is upper left 0:49 Sequence 0:49 move second child to first child (temp float) 0:49 'r24' (temp float) -0:49 texture (global float) +0:49 texture (temp float) 0:49 Construct combined texture-sampler (temp usampler2DShadow) 0:49 'g_tTex2du4' (uniform utexture2D) 0:49 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -83,7 +83,7 @@ gl_FragCoord origin is upper left 0:53 Sequence 0:53 move second child to first child (temp float) 0:53 'r50' (temp float) -0:53 texture (global float) +0:53 texture (temp float) 0:53 Construct combined texture-sampler (temp samplerCubeShadow) 0:53 'g_tTexcdf4' (uniform textureCube) 0:53 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -97,7 +97,7 @@ gl_FragCoord origin is upper left 0:54 Sequence 0:54 move second child to first child (temp float) 0:54 'r52' (temp float) -0:54 texture (global float) +0:54 texture (temp float) 0:54 Construct combined texture-sampler (temp isamplerCubeShadow) 0:54 'g_tTexcdi4' (uniform itextureCube) 0:54 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -111,7 +111,7 @@ gl_FragCoord origin is upper left 0:55 Sequence 0:55 move second child to first child (temp float) 0:55 'r54' (temp float) -0:55 texture (global float) +0:55 texture (temp float) 0:55 Construct combined texture-sampler (temp usamplerCubeShadow) 0:55 'g_tTexcdu4' (uniform utextureCube) 0:55 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -193,7 +193,7 @@ gl_FragCoord origin is upper left 0:42 Sequence 0:42 move second child to first child (temp float) 0:42 'r00' (temp float) -0:42 texture (global float) +0:42 texture (temp float) 0:42 Construct combined texture-sampler (temp sampler1DShadow) 0:42 'g_tTex1df4' (layout(binding=0 ) uniform texture1D) 0:42 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -205,7 +205,7 @@ gl_FragCoord origin is upper left 0:43 Sequence 0:43 move second child to first child (temp float) 0:43 'r02' (temp float) -0:43 texture (global float) +0:43 texture (temp float) 0:43 Construct combined texture-sampler (temp isampler1DShadow) 0:43 'g_tTex1di4' (uniform itexture1D) 0:43 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -217,7 +217,7 @@ gl_FragCoord origin is upper left 0:44 Sequence 0:44 move second child to first child (temp float) 0:44 'r04' (temp float) -0:44 texture (global float) +0:44 texture (temp float) 0:44 Construct combined texture-sampler (temp usampler1DShadow) 0:44 'g_tTex1du4' (uniform utexture1D) 0:44 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -229,7 +229,7 @@ gl_FragCoord origin is upper left 0:47 Sequence 0:47 move second child to first child (temp float) 0:47 'r20' (temp float) -0:47 texture (global float) +0:47 texture (temp float) 0:47 Construct combined texture-sampler (temp sampler2DShadow) 0:47 'g_tTex2df4' (uniform texture2D) 0:47 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -242,7 +242,7 @@ gl_FragCoord origin is upper left 0:48 Sequence 0:48 move second child to first child (temp float) 0:48 'r22' (temp float) -0:48 texture (global float) +0:48 texture (temp float) 0:48 Construct combined texture-sampler (temp isampler2DShadow) 0:48 'g_tTex2di4' (uniform itexture2D) 0:48 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -255,7 +255,7 @@ gl_FragCoord origin is upper left 0:49 Sequence 0:49 move second child to first child (temp float) 0:49 'r24' (temp float) -0:49 texture (global float) +0:49 texture (temp float) 0:49 Construct combined texture-sampler (temp usampler2DShadow) 0:49 'g_tTex2du4' (uniform utexture2D) 0:49 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -268,7 +268,7 @@ gl_FragCoord origin is upper left 0:53 Sequence 0:53 move second child to first child (temp float) 0:53 'r50' (temp float) -0:53 texture (global float) +0:53 texture (temp float) 0:53 Construct combined texture-sampler (temp samplerCubeShadow) 0:53 'g_tTexcdf4' (uniform textureCube) 0:53 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -282,7 +282,7 @@ gl_FragCoord origin is upper left 0:54 Sequence 0:54 move second child to first child (temp float) 0:54 'r52' (temp float) -0:54 texture (global float) +0:54 texture (temp float) 0:54 Construct combined texture-sampler (temp isamplerCubeShadow) 0:54 'g_tTexcdi4' (uniform itextureCube) 0:54 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -296,7 +296,7 @@ gl_FragCoord origin is upper left 0:55 Sequence 0:55 move second child to first child (temp float) 0:55 'r54' (temp float) -0:55 texture (global float) +0:55 texture (temp float) 0:55 Construct combined texture-sampler (temp usamplerCubeShadow) 0:55 'g_tTexcdu4' (uniform utextureCube) 0:55 'g_sSamp' (layout(binding=0 ) uniform sampler) diff --git a/Test/baseResults/hlsl.samplecmp.offset.dx10.frag.out b/Test/baseResults/hlsl.samplecmp.offset.dx10.frag.out index 70670a0f..fe2c74f5 100644 --- a/Test/baseResults/hlsl.samplecmp.offset.dx10.frag.out +++ b/Test/baseResults/hlsl.samplecmp.offset.dx10.frag.out @@ -8,7 +8,7 @@ gl_FragCoord origin is upper left 0:42 Sequence 0:42 move second child to first child (temp float) 0:42 'r01' (temp float) -0:42 textureOffset (global float) +0:42 textureOffset (temp float) 0:42 Construct combined texture-sampler (temp sampler1DShadow) 0:42 'g_tTex1df4' (layout(binding=0 ) uniform texture1D) 0:42 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -22,7 +22,7 @@ gl_FragCoord origin is upper left 0:43 Sequence 0:43 move second child to first child (temp float) 0:43 'r03' (temp float) -0:43 textureOffset (global float) +0:43 textureOffset (temp float) 0:43 Construct combined texture-sampler (temp isampler1DShadow) 0:43 'g_tTex1di4' (uniform itexture1D) 0:43 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -36,7 +36,7 @@ gl_FragCoord origin is upper left 0:44 Sequence 0:44 move second child to first child (temp float) 0:44 'r05' (temp float) -0:44 textureOffset (global float) +0:44 textureOffset (temp float) 0:44 Construct combined texture-sampler (temp usampler1DShadow) 0:44 'g_tTex1du4' (uniform utexture1D) 0:44 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -50,7 +50,7 @@ gl_FragCoord origin is upper left 0:47 Sequence 0:47 move second child to first child (temp float) 0:47 'r21' (temp float) -0:47 textureOffset (global float) +0:47 textureOffset (temp float) 0:47 Construct combined texture-sampler (temp sampler2DShadow) 0:47 'g_tTex2df4' (uniform texture2D) 0:47 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -66,7 +66,7 @@ gl_FragCoord origin is upper left 0:48 Sequence 0:48 move second child to first child (temp float) 0:48 'r23' (temp float) -0:48 textureOffset (global float) +0:48 textureOffset (temp float) 0:48 Construct combined texture-sampler (temp isampler2DShadow) 0:48 'g_tTex2di4' (uniform itexture2D) 0:48 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -82,7 +82,7 @@ gl_FragCoord origin is upper left 0:49 Sequence 0:49 move second child to first child (temp float) 0:49 'r25' (temp float) -0:49 textureOffset (global float) +0:49 textureOffset (temp float) 0:49 Construct combined texture-sampler (temp usampler2DShadow) 0:49 'g_tTex2du4' (uniform utexture2D) 0:49 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -166,7 +166,7 @@ gl_FragCoord origin is upper left 0:42 Sequence 0:42 move second child to first child (temp float) 0:42 'r01' (temp float) -0:42 textureOffset (global float) +0:42 textureOffset (temp float) 0:42 Construct combined texture-sampler (temp sampler1DShadow) 0:42 'g_tTex1df4' (layout(binding=0 ) uniform texture1D) 0:42 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -180,7 +180,7 @@ gl_FragCoord origin is upper left 0:43 Sequence 0:43 move second child to first child (temp float) 0:43 'r03' (temp float) -0:43 textureOffset (global float) +0:43 textureOffset (temp float) 0:43 Construct combined texture-sampler (temp isampler1DShadow) 0:43 'g_tTex1di4' (uniform itexture1D) 0:43 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -194,7 +194,7 @@ gl_FragCoord origin is upper left 0:44 Sequence 0:44 move second child to first child (temp float) 0:44 'r05' (temp float) -0:44 textureOffset (global float) +0:44 textureOffset (temp float) 0:44 Construct combined texture-sampler (temp usampler1DShadow) 0:44 'g_tTex1du4' (uniform utexture1D) 0:44 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -208,7 +208,7 @@ gl_FragCoord origin is upper left 0:47 Sequence 0:47 move second child to first child (temp float) 0:47 'r21' (temp float) -0:47 textureOffset (global float) +0:47 textureOffset (temp float) 0:47 Construct combined texture-sampler (temp sampler2DShadow) 0:47 'g_tTex2df4' (uniform texture2D) 0:47 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -224,7 +224,7 @@ gl_FragCoord origin is upper left 0:48 Sequence 0:48 move second child to first child (temp float) 0:48 'r23' (temp float) -0:48 textureOffset (global float) +0:48 textureOffset (temp float) 0:48 Construct combined texture-sampler (temp isampler2DShadow) 0:48 'g_tTex2di4' (uniform itexture2D) 0:48 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -240,7 +240,7 @@ gl_FragCoord origin is upper left 0:49 Sequence 0:49 move second child to first child (temp float) 0:49 'r25' (temp float) -0:49 textureOffset (global float) +0:49 textureOffset (temp float) 0:49 Construct combined texture-sampler (temp usampler2DShadow) 0:49 'g_tTex2du4' (uniform utexture2D) 0:49 'g_sSamp' (layout(binding=0 ) uniform sampler) diff --git a/Test/baseResults/hlsl.samplecmp.offsetarray.dx10.frag.out b/Test/baseResults/hlsl.samplecmp.offsetarray.dx10.frag.out index d4a86361..013a645c 100644 --- a/Test/baseResults/hlsl.samplecmp.offsetarray.dx10.frag.out +++ b/Test/baseResults/hlsl.samplecmp.offsetarray.dx10.frag.out @@ -8,7 +8,7 @@ gl_FragCoord origin is upper left 0:42 Sequence 0:42 move second child to first child (temp float) 0:42 'r11' (temp float) -0:42 textureOffset (global float) +0:42 textureOffset (temp float) 0:42 Construct combined texture-sampler (temp sampler1DArrayShadow) 0:42 'g_tTex1df4a' (uniform texture1DArray) 0:42 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -23,7 +23,7 @@ gl_FragCoord origin is upper left 0:43 Sequence 0:43 move second child to first child (temp float) 0:43 'r13' (temp float) -0:43 textureOffset (global float) +0:43 textureOffset (temp float) 0:43 Construct combined texture-sampler (temp isampler1DArrayShadow) 0:43 'g_tTex1di4a' (uniform itexture1DArray) 0:43 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -38,7 +38,7 @@ gl_FragCoord origin is upper left 0:44 Sequence 0:44 move second child to first child (temp float) 0:44 'r15' (temp float) -0:44 textureOffset (global float) +0:44 textureOffset (temp float) 0:44 Construct combined texture-sampler (temp usampler1DArrayShadow) 0:44 'g_tTex1du4a' (uniform utexture1DArray) 0:44 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -53,7 +53,7 @@ gl_FragCoord origin is upper left 0:47 Sequence 0:47 move second child to first child (temp float) 0:47 'r31' (temp float) -0:47 textureOffset (global float) +0:47 textureOffset (temp float) 0:47 Construct combined texture-sampler (temp sampler2DArrayShadow) 0:47 'g_tTex2df4a' (uniform texture2DArray) 0:47 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -70,7 +70,7 @@ gl_FragCoord origin is upper left 0:48 Sequence 0:48 move second child to first child (temp float) 0:48 'r33' (temp float) -0:48 textureOffset (global float) +0:48 textureOffset (temp float) 0:48 Construct combined texture-sampler (temp isampler2DArrayShadow) 0:48 'g_tTex2di4a' (uniform itexture2DArray) 0:48 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -87,7 +87,7 @@ gl_FragCoord origin is upper left 0:49 Sequence 0:49 move second child to first child (temp float) 0:49 'r35' (temp float) -0:49 textureOffset (global float) +0:49 textureOffset (temp float) 0:49 Construct combined texture-sampler (temp usampler2DArrayShadow) 0:49 'g_tTex2du4a' (uniform utexture2DArray) 0:49 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -172,7 +172,7 @@ gl_FragCoord origin is upper left 0:42 Sequence 0:42 move second child to first child (temp float) 0:42 'r11' (temp float) -0:42 textureOffset (global float) +0:42 textureOffset (temp float) 0:42 Construct combined texture-sampler (temp sampler1DArrayShadow) 0:42 'g_tTex1df4a' (uniform texture1DArray) 0:42 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -187,7 +187,7 @@ gl_FragCoord origin is upper left 0:43 Sequence 0:43 move second child to first child (temp float) 0:43 'r13' (temp float) -0:43 textureOffset (global float) +0:43 textureOffset (temp float) 0:43 Construct combined texture-sampler (temp isampler1DArrayShadow) 0:43 'g_tTex1di4a' (uniform itexture1DArray) 0:43 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -202,7 +202,7 @@ gl_FragCoord origin is upper left 0:44 Sequence 0:44 move second child to first child (temp float) 0:44 'r15' (temp float) -0:44 textureOffset (global float) +0:44 textureOffset (temp float) 0:44 Construct combined texture-sampler (temp usampler1DArrayShadow) 0:44 'g_tTex1du4a' (uniform utexture1DArray) 0:44 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -217,7 +217,7 @@ gl_FragCoord origin is upper left 0:47 Sequence 0:47 move second child to first child (temp float) 0:47 'r31' (temp float) -0:47 textureOffset (global float) +0:47 textureOffset (temp float) 0:47 Construct combined texture-sampler (temp sampler2DArrayShadow) 0:47 'g_tTex2df4a' (uniform texture2DArray) 0:47 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -234,7 +234,7 @@ gl_FragCoord origin is upper left 0:48 Sequence 0:48 move second child to first child (temp float) 0:48 'r33' (temp float) -0:48 textureOffset (global float) +0:48 textureOffset (temp float) 0:48 Construct combined texture-sampler (temp isampler2DArrayShadow) 0:48 'g_tTex2di4a' (uniform itexture2DArray) 0:48 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -251,7 +251,7 @@ gl_FragCoord origin is upper left 0:49 Sequence 0:49 move second child to first child (temp float) 0:49 'r35' (temp float) -0:49 textureOffset (global float) +0:49 textureOffset (temp float) 0:49 Construct combined texture-sampler (temp usampler2DArrayShadow) 0:49 'g_tTex2du4a' (uniform utexture2DArray) 0:49 'g_sSamp' (layout(binding=0 ) uniform sampler) diff --git a/Test/baseResults/hlsl.samplecmplevelzero.array.dx10.frag.out b/Test/baseResults/hlsl.samplecmplevelzero.array.dx10.frag.out index 2746fa77..29e02cd9 100644 --- a/Test/baseResults/hlsl.samplecmplevelzero.array.dx10.frag.out +++ b/Test/baseResults/hlsl.samplecmplevelzero.array.dx10.frag.out @@ -8,7 +8,7 @@ gl_FragCoord origin is upper left 0:42 Sequence 0:42 move second child to first child (temp float) 0:42 'r10' (temp float) -0:42 textureLod (global float) +0:42 textureLod (temp float) 0:42 Construct combined texture-sampler (temp sampler1DArrayShadow) 0:42 'g_tTex1df4a' (uniform texture1DArray) 0:42 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -23,7 +23,7 @@ gl_FragCoord origin is upper left 0:43 Sequence 0:43 move second child to first child (temp float) 0:43 'r12' (temp float) -0:43 textureLod (global float) +0:43 textureLod (temp float) 0:43 Construct combined texture-sampler (temp isampler1DArrayShadow) 0:43 'g_tTex1di4a' (uniform itexture1DArray) 0:43 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -38,7 +38,7 @@ gl_FragCoord origin is upper left 0:44 Sequence 0:44 move second child to first child (temp float) 0:44 'r14' (temp float) -0:44 textureLod (global float) +0:44 textureLod (temp float) 0:44 Construct combined texture-sampler (temp usampler1DArrayShadow) 0:44 'g_tTex1du4a' (uniform utexture1DArray) 0:44 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -53,7 +53,7 @@ gl_FragCoord origin is upper left 0:47 Sequence 0:47 move second child to first child (temp float) 0:47 'r30' (temp float) -0:47 textureLod (global float) +0:47 textureLod (temp float) 0:47 Construct combined texture-sampler (temp sampler2DArrayShadow) 0:47 'g_tTex2df4a' (uniform texture2DArray) 0:47 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -69,7 +69,7 @@ gl_FragCoord origin is upper left 0:48 Sequence 0:48 move second child to first child (temp float) 0:48 'r32' (temp float) -0:48 textureLod (global float) +0:48 textureLod (temp float) 0:48 Construct combined texture-sampler (temp isampler2DArrayShadow) 0:48 'g_tTex2di4a' (uniform itexture2DArray) 0:48 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -85,7 +85,7 @@ gl_FragCoord origin is upper left 0:49 Sequence 0:49 move second child to first child (temp float) 0:49 'r34' (temp float) -0:49 textureLod (global float) +0:49 textureLod (temp float) 0:49 Construct combined texture-sampler (temp usampler2DArrayShadow) 0:49 'g_tTex2du4a' (uniform utexture2DArray) 0:49 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -101,7 +101,7 @@ gl_FragCoord origin is upper left 0:52 Sequence 0:52 move second child to first child (temp float) 0:52 'r60' (temp float) -0:52 textureLod (global float) +0:52 textureLod (temp float) 0:52 Construct combined texture-sampler (temp samplerCubeArrayShadow) 0:52 'g_tTexcdf4a' (uniform textureCubeArray) 0:52 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -118,7 +118,7 @@ gl_FragCoord origin is upper left 0:53 Sequence 0:53 move second child to first child (temp float) 0:53 'r62' (temp float) -0:53 textureLod (global float) +0:53 textureLod (temp float) 0:53 Construct combined texture-sampler (temp isamplerCubeArrayShadow) 0:53 'g_tTexcdi4a' (uniform itextureCubeArray) 0:53 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -135,7 +135,7 @@ gl_FragCoord origin is upper left 0:54 Sequence 0:54 move second child to first child (temp float) 0:54 'r64' (temp float) -0:54 textureLod (global float) +0:54 textureLod (temp float) 0:54 Construct combined texture-sampler (temp usamplerCubeArrayShadow) 0:54 'g_tTexcdu4a' (uniform utextureCubeArray) 0:54 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -220,7 +220,7 @@ gl_FragCoord origin is upper left 0:42 Sequence 0:42 move second child to first child (temp float) 0:42 'r10' (temp float) -0:42 textureLod (global float) +0:42 textureLod (temp float) 0:42 Construct combined texture-sampler (temp sampler1DArrayShadow) 0:42 'g_tTex1df4a' (uniform texture1DArray) 0:42 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -235,7 +235,7 @@ gl_FragCoord origin is upper left 0:43 Sequence 0:43 move second child to first child (temp float) 0:43 'r12' (temp float) -0:43 textureLod (global float) +0:43 textureLod (temp float) 0:43 Construct combined texture-sampler (temp isampler1DArrayShadow) 0:43 'g_tTex1di4a' (uniform itexture1DArray) 0:43 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -250,7 +250,7 @@ gl_FragCoord origin is upper left 0:44 Sequence 0:44 move second child to first child (temp float) 0:44 'r14' (temp float) -0:44 textureLod (global float) +0:44 textureLod (temp float) 0:44 Construct combined texture-sampler (temp usampler1DArrayShadow) 0:44 'g_tTex1du4a' (uniform utexture1DArray) 0:44 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -265,7 +265,7 @@ gl_FragCoord origin is upper left 0:47 Sequence 0:47 move second child to first child (temp float) 0:47 'r30' (temp float) -0:47 textureLod (global float) +0:47 textureLod (temp float) 0:47 Construct combined texture-sampler (temp sampler2DArrayShadow) 0:47 'g_tTex2df4a' (uniform texture2DArray) 0:47 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -281,7 +281,7 @@ gl_FragCoord origin is upper left 0:48 Sequence 0:48 move second child to first child (temp float) 0:48 'r32' (temp float) -0:48 textureLod (global float) +0:48 textureLod (temp float) 0:48 Construct combined texture-sampler (temp isampler2DArrayShadow) 0:48 'g_tTex2di4a' (uniform itexture2DArray) 0:48 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -297,7 +297,7 @@ gl_FragCoord origin is upper left 0:49 Sequence 0:49 move second child to first child (temp float) 0:49 'r34' (temp float) -0:49 textureLod (global float) +0:49 textureLod (temp float) 0:49 Construct combined texture-sampler (temp usampler2DArrayShadow) 0:49 'g_tTex2du4a' (uniform utexture2DArray) 0:49 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -313,7 +313,7 @@ gl_FragCoord origin is upper left 0:52 Sequence 0:52 move second child to first child (temp float) 0:52 'r60' (temp float) -0:52 textureLod (global float) +0:52 textureLod (temp float) 0:52 Construct combined texture-sampler (temp samplerCubeArrayShadow) 0:52 'g_tTexcdf4a' (uniform textureCubeArray) 0:52 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -330,7 +330,7 @@ gl_FragCoord origin is upper left 0:53 Sequence 0:53 move second child to first child (temp float) 0:53 'r62' (temp float) -0:53 textureLod (global float) +0:53 textureLod (temp float) 0:53 Construct combined texture-sampler (temp isamplerCubeArrayShadow) 0:53 'g_tTexcdi4a' (uniform itextureCubeArray) 0:53 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -347,7 +347,7 @@ gl_FragCoord origin is upper left 0:54 Sequence 0:54 move second child to first child (temp float) 0:54 'r64' (temp float) -0:54 textureLod (global float) +0:54 textureLod (temp float) 0:54 Construct combined texture-sampler (temp usamplerCubeArrayShadow) 0:54 'g_tTexcdu4a' (uniform utextureCubeArray) 0:54 'g_sSamp' (layout(binding=0 ) uniform sampler) diff --git a/Test/baseResults/hlsl.samplecmplevelzero.basic.dx10.frag.out b/Test/baseResults/hlsl.samplecmplevelzero.basic.dx10.frag.out index e6c43725..de822764 100644 --- a/Test/baseResults/hlsl.samplecmplevelzero.basic.dx10.frag.out +++ b/Test/baseResults/hlsl.samplecmplevelzero.basic.dx10.frag.out @@ -8,7 +8,7 @@ gl_FragCoord origin is upper left 0:42 Sequence 0:42 move second child to first child (temp float) 0:42 'r00' (temp float) -0:42 textureLod (global float) +0:42 textureLod (temp float) 0:42 Construct combined texture-sampler (temp sampler1DShadow) 0:42 'g_tTex1df4' (layout(binding=0 ) uniform texture1D) 0:42 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -22,7 +22,7 @@ gl_FragCoord origin is upper left 0:43 Sequence 0:43 move second child to first child (temp float) 0:43 'r02' (temp float) -0:43 textureLod (global float) +0:43 textureLod (temp float) 0:43 Construct combined texture-sampler (temp isampler1DShadow) 0:43 'g_tTex1di4' (uniform itexture1D) 0:43 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -36,7 +36,7 @@ gl_FragCoord origin is upper left 0:44 Sequence 0:44 move second child to first child (temp float) 0:44 'r04' (temp float) -0:44 textureLod (global float) +0:44 textureLod (temp float) 0:44 Construct combined texture-sampler (temp usampler1DShadow) 0:44 'g_tTex1du4' (uniform utexture1D) 0:44 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -50,7 +50,7 @@ gl_FragCoord origin is upper left 0:47 Sequence 0:47 move second child to first child (temp float) 0:47 'r20' (temp float) -0:47 textureLod (global float) +0:47 textureLod (temp float) 0:47 Construct combined texture-sampler (temp sampler2DShadow) 0:47 'g_tTex2df4' (uniform texture2D) 0:47 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -65,7 +65,7 @@ gl_FragCoord origin is upper left 0:48 Sequence 0:48 move second child to first child (temp float) 0:48 'r22' (temp float) -0:48 textureLod (global float) +0:48 textureLod (temp float) 0:48 Construct combined texture-sampler (temp isampler2DShadow) 0:48 'g_tTex2di4' (uniform itexture2D) 0:48 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -80,7 +80,7 @@ gl_FragCoord origin is upper left 0:49 Sequence 0:49 move second child to first child (temp float) 0:49 'r24' (temp float) -0:49 textureLod (global float) +0:49 textureLod (temp float) 0:49 Construct combined texture-sampler (temp usampler2DShadow) 0:49 'g_tTex2du4' (uniform utexture2D) 0:49 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -95,7 +95,7 @@ gl_FragCoord origin is upper left 0:53 Sequence 0:53 move second child to first child (temp float) 0:53 'r50' (temp float) -0:53 textureLod (global float) +0:53 textureLod (temp float) 0:53 Construct combined texture-sampler (temp samplerCubeShadow) 0:53 'g_tTexcdf4' (uniform textureCube) 0:53 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -111,7 +111,7 @@ gl_FragCoord origin is upper left 0:54 Sequence 0:54 move second child to first child (temp float) 0:54 'r52' (temp float) -0:54 textureLod (global float) +0:54 textureLod (temp float) 0:54 Construct combined texture-sampler (temp isamplerCubeShadow) 0:54 'g_tTexcdi4' (uniform itextureCube) 0:54 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -127,7 +127,7 @@ gl_FragCoord origin is upper left 0:55 Sequence 0:55 move second child to first child (temp float) 0:55 'r54' (temp float) -0:55 textureLod (global float) +0:55 textureLod (temp float) 0:55 Construct combined texture-sampler (temp usamplerCubeShadow) 0:55 'g_tTexcdu4' (uniform utextureCube) 0:55 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -211,7 +211,7 @@ gl_FragCoord origin is upper left 0:42 Sequence 0:42 move second child to first child (temp float) 0:42 'r00' (temp float) -0:42 textureLod (global float) +0:42 textureLod (temp float) 0:42 Construct combined texture-sampler (temp sampler1DShadow) 0:42 'g_tTex1df4' (layout(binding=0 ) uniform texture1D) 0:42 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -225,7 +225,7 @@ gl_FragCoord origin is upper left 0:43 Sequence 0:43 move second child to first child (temp float) 0:43 'r02' (temp float) -0:43 textureLod (global float) +0:43 textureLod (temp float) 0:43 Construct combined texture-sampler (temp isampler1DShadow) 0:43 'g_tTex1di4' (uniform itexture1D) 0:43 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -239,7 +239,7 @@ gl_FragCoord origin is upper left 0:44 Sequence 0:44 move second child to first child (temp float) 0:44 'r04' (temp float) -0:44 textureLod (global float) +0:44 textureLod (temp float) 0:44 Construct combined texture-sampler (temp usampler1DShadow) 0:44 'g_tTex1du4' (uniform utexture1D) 0:44 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -253,7 +253,7 @@ gl_FragCoord origin is upper left 0:47 Sequence 0:47 move second child to first child (temp float) 0:47 'r20' (temp float) -0:47 textureLod (global float) +0:47 textureLod (temp float) 0:47 Construct combined texture-sampler (temp sampler2DShadow) 0:47 'g_tTex2df4' (uniform texture2D) 0:47 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -268,7 +268,7 @@ gl_FragCoord origin is upper left 0:48 Sequence 0:48 move second child to first child (temp float) 0:48 'r22' (temp float) -0:48 textureLod (global float) +0:48 textureLod (temp float) 0:48 Construct combined texture-sampler (temp isampler2DShadow) 0:48 'g_tTex2di4' (uniform itexture2D) 0:48 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -283,7 +283,7 @@ gl_FragCoord origin is upper left 0:49 Sequence 0:49 move second child to first child (temp float) 0:49 'r24' (temp float) -0:49 textureLod (global float) +0:49 textureLod (temp float) 0:49 Construct combined texture-sampler (temp usampler2DShadow) 0:49 'g_tTex2du4' (uniform utexture2D) 0:49 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -298,7 +298,7 @@ gl_FragCoord origin is upper left 0:53 Sequence 0:53 move second child to first child (temp float) 0:53 'r50' (temp float) -0:53 textureLod (global float) +0:53 textureLod (temp float) 0:53 Construct combined texture-sampler (temp samplerCubeShadow) 0:53 'g_tTexcdf4' (uniform textureCube) 0:53 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -314,7 +314,7 @@ gl_FragCoord origin is upper left 0:54 Sequence 0:54 move second child to first child (temp float) 0:54 'r52' (temp float) -0:54 textureLod (global float) +0:54 textureLod (temp float) 0:54 Construct combined texture-sampler (temp isamplerCubeShadow) 0:54 'g_tTexcdi4' (uniform itextureCube) 0:54 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -330,7 +330,7 @@ gl_FragCoord origin is upper left 0:55 Sequence 0:55 move second child to first child (temp float) 0:55 'r54' (temp float) -0:55 textureLod (global float) +0:55 textureLod (temp float) 0:55 Construct combined texture-sampler (temp usamplerCubeShadow) 0:55 'g_tTexcdu4' (uniform utextureCube) 0:55 'g_sSamp' (layout(binding=0 ) uniform sampler) diff --git a/Test/baseResults/hlsl.samplecmplevelzero.offset.dx10.frag.out b/Test/baseResults/hlsl.samplecmplevelzero.offset.dx10.frag.out index f66055df..216ed419 100644 --- a/Test/baseResults/hlsl.samplecmplevelzero.offset.dx10.frag.out +++ b/Test/baseResults/hlsl.samplecmplevelzero.offset.dx10.frag.out @@ -8,7 +8,7 @@ gl_FragCoord origin is upper left 0:42 Sequence 0:42 move second child to first child (temp float) 0:42 'r01' (temp float) -0:42 textureLodOffset (global float) +0:42 textureLodOffset (temp float) 0:42 Construct combined texture-sampler (temp sampler1DShadow) 0:42 'g_tTex1df4' (layout(binding=0 ) uniform texture1D) 0:42 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -24,7 +24,7 @@ gl_FragCoord origin is upper left 0:43 Sequence 0:43 move second child to first child (temp float) 0:43 'r03' (temp float) -0:43 textureLodOffset (global float) +0:43 textureLodOffset (temp float) 0:43 Construct combined texture-sampler (temp isampler1DShadow) 0:43 'g_tTex1di4' (uniform itexture1D) 0:43 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -40,7 +40,7 @@ gl_FragCoord origin is upper left 0:44 Sequence 0:44 move second child to first child (temp float) 0:44 'r05' (temp float) -0:44 textureLodOffset (global float) +0:44 textureLodOffset (temp float) 0:44 Construct combined texture-sampler (temp usampler1DShadow) 0:44 'g_tTex1du4' (uniform utexture1D) 0:44 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -56,7 +56,7 @@ gl_FragCoord origin is upper left 0:47 Sequence 0:47 move second child to first child (temp float) 0:47 'r21' (temp float) -0:47 textureLodOffset (global float) +0:47 textureLodOffset (temp float) 0:47 Construct combined texture-sampler (temp sampler2DShadow) 0:47 'g_tTex2df4' (uniform texture2D) 0:47 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -74,7 +74,7 @@ gl_FragCoord origin is upper left 0:48 Sequence 0:48 move second child to first child (temp float) 0:48 'r23' (temp float) -0:48 textureLodOffset (global float) +0:48 textureLodOffset (temp float) 0:48 Construct combined texture-sampler (temp isampler2DShadow) 0:48 'g_tTex2di4' (uniform itexture2D) 0:48 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -92,7 +92,7 @@ gl_FragCoord origin is upper left 0:49 Sequence 0:49 move second child to first child (temp float) 0:49 'r25' (temp float) -0:49 textureLodOffset (global float) +0:49 textureLodOffset (temp float) 0:49 Construct combined texture-sampler (temp usampler2DShadow) 0:49 'g_tTex2du4' (uniform utexture2D) 0:49 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -178,7 +178,7 @@ gl_FragCoord origin is upper left 0:42 Sequence 0:42 move second child to first child (temp float) 0:42 'r01' (temp float) -0:42 textureLodOffset (global float) +0:42 textureLodOffset (temp float) 0:42 Construct combined texture-sampler (temp sampler1DShadow) 0:42 'g_tTex1df4' (layout(binding=0 ) uniform texture1D) 0:42 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -194,7 +194,7 @@ gl_FragCoord origin is upper left 0:43 Sequence 0:43 move second child to first child (temp float) 0:43 'r03' (temp float) -0:43 textureLodOffset (global float) +0:43 textureLodOffset (temp float) 0:43 Construct combined texture-sampler (temp isampler1DShadow) 0:43 'g_tTex1di4' (uniform itexture1D) 0:43 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -210,7 +210,7 @@ gl_FragCoord origin is upper left 0:44 Sequence 0:44 move second child to first child (temp float) 0:44 'r05' (temp float) -0:44 textureLodOffset (global float) +0:44 textureLodOffset (temp float) 0:44 Construct combined texture-sampler (temp usampler1DShadow) 0:44 'g_tTex1du4' (uniform utexture1D) 0:44 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -226,7 +226,7 @@ gl_FragCoord origin is upper left 0:47 Sequence 0:47 move second child to first child (temp float) 0:47 'r21' (temp float) -0:47 textureLodOffset (global float) +0:47 textureLodOffset (temp float) 0:47 Construct combined texture-sampler (temp sampler2DShadow) 0:47 'g_tTex2df4' (uniform texture2D) 0:47 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -244,7 +244,7 @@ gl_FragCoord origin is upper left 0:48 Sequence 0:48 move second child to first child (temp float) 0:48 'r23' (temp float) -0:48 textureLodOffset (global float) +0:48 textureLodOffset (temp float) 0:48 Construct combined texture-sampler (temp isampler2DShadow) 0:48 'g_tTex2di4' (uniform itexture2D) 0:48 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -262,7 +262,7 @@ gl_FragCoord origin is upper left 0:49 Sequence 0:49 move second child to first child (temp float) 0:49 'r25' (temp float) -0:49 textureLodOffset (global float) +0:49 textureLodOffset (temp float) 0:49 Construct combined texture-sampler (temp usampler2DShadow) 0:49 'g_tTex2du4' (uniform utexture2D) 0:49 'g_sSamp' (layout(binding=0 ) uniform sampler) diff --git a/Test/baseResults/hlsl.samplecmplevelzero.offsetarray.dx10.frag.out b/Test/baseResults/hlsl.samplecmplevelzero.offsetarray.dx10.frag.out index 3b2b9126..2e5f3cda 100644 --- a/Test/baseResults/hlsl.samplecmplevelzero.offsetarray.dx10.frag.out +++ b/Test/baseResults/hlsl.samplecmplevelzero.offsetarray.dx10.frag.out @@ -8,7 +8,7 @@ gl_FragCoord origin is upper left 0:42 Sequence 0:42 move second child to first child (temp float) 0:42 'r11' (temp float) -0:42 textureLodOffset (global float) +0:42 textureLodOffset (temp float) 0:42 Construct combined texture-sampler (temp sampler1DArrayShadow) 0:42 'g_tTex1df4a' (uniform texture1DArray) 0:42 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -25,7 +25,7 @@ gl_FragCoord origin is upper left 0:43 Sequence 0:43 move second child to first child (temp float) 0:43 'r13' (temp float) -0:43 textureLodOffset (global float) +0:43 textureLodOffset (temp float) 0:43 Construct combined texture-sampler (temp isampler1DArrayShadow) 0:43 'g_tTex1di4a' (uniform itexture1DArray) 0:43 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -42,7 +42,7 @@ gl_FragCoord origin is upper left 0:44 Sequence 0:44 move second child to first child (temp float) 0:44 'r15' (temp float) -0:44 textureLodOffset (global float) +0:44 textureLodOffset (temp float) 0:44 Construct combined texture-sampler (temp usampler1DArrayShadow) 0:44 'g_tTex1du4a' (uniform utexture1DArray) 0:44 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -59,7 +59,7 @@ gl_FragCoord origin is upper left 0:47 Sequence 0:47 move second child to first child (temp float) 0:47 'r31' (temp float) -0:47 textureLodOffset (global float) +0:47 textureLodOffset (temp float) 0:47 Construct combined texture-sampler (temp sampler2DArrayShadow) 0:47 'g_tTex2df4a' (uniform texture2DArray) 0:47 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -78,7 +78,7 @@ gl_FragCoord origin is upper left 0:48 Sequence 0:48 move second child to first child (temp float) 0:48 'r33' (temp float) -0:48 textureLodOffset (global float) +0:48 textureLodOffset (temp float) 0:48 Construct combined texture-sampler (temp isampler2DArrayShadow) 0:48 'g_tTex2di4a' (uniform itexture2DArray) 0:48 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -97,7 +97,7 @@ gl_FragCoord origin is upper left 0:49 Sequence 0:49 move second child to first child (temp float) 0:49 'r35' (temp float) -0:49 textureLodOffset (global float) +0:49 textureLodOffset (temp float) 0:49 Construct combined texture-sampler (temp usampler2DArrayShadow) 0:49 'g_tTex2du4a' (uniform utexture2DArray) 0:49 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -184,7 +184,7 @@ gl_FragCoord origin is upper left 0:42 Sequence 0:42 move second child to first child (temp float) 0:42 'r11' (temp float) -0:42 textureLodOffset (global float) +0:42 textureLodOffset (temp float) 0:42 Construct combined texture-sampler (temp sampler1DArrayShadow) 0:42 'g_tTex1df4a' (uniform texture1DArray) 0:42 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -201,7 +201,7 @@ gl_FragCoord origin is upper left 0:43 Sequence 0:43 move second child to first child (temp float) 0:43 'r13' (temp float) -0:43 textureLodOffset (global float) +0:43 textureLodOffset (temp float) 0:43 Construct combined texture-sampler (temp isampler1DArrayShadow) 0:43 'g_tTex1di4a' (uniform itexture1DArray) 0:43 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -218,7 +218,7 @@ gl_FragCoord origin is upper left 0:44 Sequence 0:44 move second child to first child (temp float) 0:44 'r15' (temp float) -0:44 textureLodOffset (global float) +0:44 textureLodOffset (temp float) 0:44 Construct combined texture-sampler (temp usampler1DArrayShadow) 0:44 'g_tTex1du4a' (uniform utexture1DArray) 0:44 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -235,7 +235,7 @@ gl_FragCoord origin is upper left 0:47 Sequence 0:47 move second child to first child (temp float) 0:47 'r31' (temp float) -0:47 textureLodOffset (global float) +0:47 textureLodOffset (temp float) 0:47 Construct combined texture-sampler (temp sampler2DArrayShadow) 0:47 'g_tTex2df4a' (uniform texture2DArray) 0:47 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -254,7 +254,7 @@ gl_FragCoord origin is upper left 0:48 Sequence 0:48 move second child to first child (temp float) 0:48 'r33' (temp float) -0:48 textureLodOffset (global float) +0:48 textureLodOffset (temp float) 0:48 Construct combined texture-sampler (temp isampler2DArrayShadow) 0:48 'g_tTex2di4a' (uniform itexture2DArray) 0:48 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -273,7 +273,7 @@ gl_FragCoord origin is upper left 0:49 Sequence 0:49 move second child to first child (temp float) 0:49 'r35' (temp float) -0:49 textureLodOffset (global float) +0:49 textureLodOffset (temp float) 0:49 Construct combined texture-sampler (temp usampler2DArrayShadow) 0:49 'g_tTex2du4a' (uniform utexture2DArray) 0:49 'g_sSamp' (layout(binding=0 ) uniform sampler) diff --git a/Test/baseResults/hlsl.shapeConv.frag.out b/Test/baseResults/hlsl.shapeConv.frag.out index 0f2f9448..8278fac9 100755 --- a/Test/baseResults/hlsl.shapeConv.frag.out +++ b/Test/baseResults/hlsl.shapeConv.frag.out @@ -82,7 +82,7 @@ gl_FragCoord origin is upper left 0:19 7.000000 0:19 7.000000 0:19 'foo' (temp 3-component vector of float) -0:21 all (global bool) +0:21 all (temp bool) 0:21 Equal (temp 4-component vector of bool) 0:21 Construct vec4 (temp 4-component vector of float) 0:21 direct index (temp float) @@ -90,7 +90,7 @@ gl_FragCoord origin is upper left 0:21 Constant: 0:21 0 (const int) 0:21 'v' (temp 4-component vector of float) -0:22 any (global bool) +0:22 any (temp bool) 0:22 NotEqual (temp 4-component vector of bool) 0:22 Construct vec4 (temp 4-component vector of float) 0:22 'f' (in float) @@ -199,7 +199,7 @@ gl_FragCoord origin is upper left 0:19 7.000000 0:19 7.000000 0:19 'foo' (temp 3-component vector of float) -0:21 all (global bool) +0:21 all (temp bool) 0:21 Equal (temp 4-component vector of bool) 0:21 Construct vec4 (temp 4-component vector of float) 0:21 direct index (temp float) @@ -207,7 +207,7 @@ gl_FragCoord origin is upper left 0:21 Constant: 0:21 0 (const int) 0:21 'v' (temp 4-component vector of float) -0:22 any (global bool) +0:22 any (temp bool) 0:22 NotEqual (temp 4-component vector of bool) 0:22 Construct vec4 (temp 4-component vector of float) 0:22 'f' (in float) diff --git a/Test/baseResults/hlsl.sin.frag.out b/Test/baseResults/hlsl.sin.frag.out index 0836a618..629668ac 100755 --- a/Test/baseResults/hlsl.sin.frag.out +++ b/Test/baseResults/hlsl.sin.frag.out @@ -9,7 +9,7 @@ gl_FragCoord origin is upper left 0:3 Sequence 0:3 move second child to first child (temp 4-component vector of float) 0:? '@entryPointOutput' (layout(location=0 ) out 4-component vector of float) -0:3 sine (global 4-component vector of float) +0:3 sine (temp 4-component vector of float) 0:3 'input' (layout(location=0 ) in 4-component vector of float) 0:3 Branch: Return 0:? Linker Objects @@ -30,7 +30,7 @@ gl_FragCoord origin is upper left 0:3 Sequence 0:3 move second child to first child (temp 4-component vector of float) 0:? '@entryPointOutput' (layout(location=0 ) out 4-component vector of float) -0:3 sine (global 4-component vector of float) +0:3 sine (temp 4-component vector of float) 0:3 'input' (layout(location=0 ) in 4-component vector of float) 0:3 Branch: Return 0:? Linker Objects diff --git a/Test/baseResults/hlsl.whileLoop.frag.out b/Test/baseResults/hlsl.whileLoop.frag.out index eab2ba5c..699364ff 100755 --- a/Test/baseResults/hlsl.whileLoop.frag.out +++ b/Test/baseResults/hlsl.whileLoop.frag.out @@ -8,7 +8,7 @@ gl_FragCoord origin is upper left 0:? Sequence 0:3 Loop with condition tested first 0:3 Loop Condition -0:3 any (global bool) +0:3 any (temp bool) 0:3 NotEqual (temp 4-component vector of bool) 0:3 'input' (layout(location=0 ) in 4-component vector of float) 0:3 'input' (layout(location=0 ) in 4-component vector of float) @@ -51,7 +51,7 @@ gl_FragCoord origin is upper left 0:? Sequence 0:3 Loop with condition tested first 0:3 Loop Condition -0:3 any (global bool) +0:3 any (temp bool) 0:3 NotEqual (temp 4-component vector of bool) 0:3 'input' (layout(location=0 ) in 4-component vector of float) 0:3 'input' (layout(location=0 ) in 4-component vector of float) diff --git a/Test/hlsl.matNx1.frag b/Test/hlsl.matNx1.frag new file mode 100644 index 00000000..515bd470 --- /dev/null +++ b/Test/hlsl.matNx1.frag @@ -0,0 +1,31 @@ + +void TestMatNx1() +{ + float1x1 f1x1; + float2x1 f2x1; + float3x1 f3x1; + float4x1 f4x1; + + float1x2 f1x2; + float1x3 f1x3; + float1x4 f1x4; + + float1x1 r00 = transpose(f1x1); + float1x2 r01 = transpose(f2x1); + float1x3 r02 = transpose(f3x1); + float1x4 r03 = transpose(f4x1); + + float1x1 r10 = transpose(f1x1); + float2x1 r11 = transpose(f1x2); + float3x1 r12 = transpose(f1x3); + float4x1 r13 = transpose(f1x4); +} + +struct PS_OUTPUT { float4 color : SV_Target0; }; + +PS_OUTPUT main() +{ + PS_OUTPUT ps_output; + ps_output.color = 1.0; + return ps_output; +}; diff --git a/Test/hlsl.matType.bool.frag b/Test/hlsl.matType.bool.frag new file mode 100644 index 00000000..e4a62e36 --- /dev/null +++ b/Test/hlsl.matType.bool.frag @@ -0,0 +1,53 @@ + +void TestBoolMatTypes() +{ + bool1x1 b1x1; + bool2x1 b2x1; + bool3x1 b3x1; + bool4x1 b4x1; + + bool1x2 b1x2; + bool2x2 b2x2; + bool3x2 b3x2; + bool4x2 b4x2; + + bool1x3 b1x3; + bool2x3 b2x3; + bool3x3 b3x3; + bool4x3 b4x3; + + bool1x4 b1x4; + bool2x4 b2x4; + bool3x4 b3x4; + bool4x4 b4x4; + + // TODO: Currently SPIR-V disallows Nx1 or 1xN mats. + bool1x1 r00 = transpose(b1x1); + bool1x2 r01 = transpose(b2x1); + bool1x3 r02 = transpose(b3x1); + bool1x4 r03 = transpose(b4x1); + + bool2x1 r10 = transpose(b1x2); + bool2x2 r11 = transpose(b2x2); + bool2x3 r12 = transpose(b3x2); + bool2x4 r13 = transpose(b4x2); + + bool3x1 r20 = transpose(b1x3); + bool3x2 r21 = transpose(b2x3); + bool3x3 r22 = transpose(b3x3); + bool3x4 r23 = transpose(b4x3); + + bool4x1 r30 = transpose(b1x4); + bool4x2 r31 = transpose(b2x4); + bool4x3 r32 = transpose(b3x4); + bool4x4 r33 = transpose(b4x4); +} + +struct PS_OUTPUT { float4 color : SV_Target0; }; + +PS_OUTPUT main() +{ + PS_OUTPUT ps_output; + ps_output.color = float4(0,0,0,0); + return ps_output; +}; diff --git a/Test/hlsl.matType.int.frag b/Test/hlsl.matType.int.frag new file mode 100644 index 00000000..09e9f2ad --- /dev/null +++ b/Test/hlsl.matType.int.frag @@ -0,0 +1,97 @@ + +void TestIntMatTypes() +{ + int1x1 i1x1; + int2x1 i2x1; + int3x1 i3x1; + int4x1 i4x1; + + int1x2 i1x2; + int2x2 i2x2; + int3x2 i3x2; + int4x2 i4x2; + + int1x3 i1x3; + int2x3 i2x3; + int3x3 i3x3; + int4x3 i4x3; + + int1x4 i1x4; + int2x4 i2x4; + int3x4 i3x4; + int4x4 i4x4; + + // TODO: Currently SPIR-V disallows Nx1 or 1xN mats. + int1x1 r00 = transpose(i1x1); + int1x2 r01 = transpose(i2x1); + int1x3 r02 = transpose(i3x1); + int1x4 r03 = transpose(i4x1); + + int2x1 r10 = transpose(i1x2); + int2x2 r11 = transpose(i2x2); + int2x3 r12 = transpose(i3x2); + int2x4 r13 = transpose(i4x2); + + int3x1 r20 = transpose(i1x3); + int3x2 r21 = transpose(i2x3); + int3x3 r22 = transpose(i3x3); + int3x4 r23 = transpose(i4x3); + + int4x1 r30 = transpose(i1x4); + int4x2 r31 = transpose(i2x4); + int4x3 r32 = transpose(i3x4); + int4x4 r33 = transpose(i4x4); +} + +void TestUintMatTypes() +{ + uint1x1 u1x1; + uint2x1 u2x1; + uint3x1 u3x1; + uint4x1 u4x1; + + uint1x2 u1x2; + uint2x2 u2x2; + uint3x2 u3x2; + uint4x2 u4x2; + + uint1x3 u1x3; + uint2x3 u2x3; + uint3x3 u3x3; + uint4x3 u4x3; + + uint1x4 u1x4; + uint2x4 u2x4; + uint3x4 u3x4; + uint4x4 u4x4; + + // TODO: Currently SPIR-V disallows Nx1 or 1xN mats. + uint1x1 r00 = transpose(u1x1); + uint1x2 r01 = transpose(u2x1); + uint1x3 r02 = transpose(u3x1); + uint1x4 r03 = transpose(u4x1); + + uint2x1 r10 = transpose(u1x2); + uint2x2 r11 = transpose(u2x2); + uint2x3 r12 = transpose(u3x2); + uint2x4 r13 = transpose(u4x2); + + uint3x1 r20 = transpose(u1x3); + uint3x2 r21 = transpose(u2x3); + uint3x3 r22 = transpose(u3x3); + uint3x4 r23 = transpose(u4x3); + + uint4x1 r30 = transpose(u1x4); + uint4x2 r31 = transpose(u2x4); + uint4x3 r32 = transpose(u3x4); + uint4x4 r33 = transpose(u4x4); +} + +struct PS_OUTPUT { float4 color : SV_Target0; }; + +PS_OUTPUT main() +{ + PS_OUTPUT ps_output; + ps_output.color = float4(0,0,0,0); + return ps_output; +}; diff --git a/glslang/MachineIndependent/ShaderLang.cpp b/glslang/MachineIndependent/ShaderLang.cpp index 5b44af52..e0e94104 100644 --- a/glslang/MachineIndependent/ShaderLang.cpp +++ b/glslang/MachineIndependent/ShaderLang.cpp @@ -81,6 +81,28 @@ TBuiltInParseables* CreateBuiltInParseables(TInfoSink& infoSink, EShSource sourc } } +// Create a language specific version of a parse context. +TParseContextBase* CreateParseContext(TSymbolTable& symbolTable, TIntermediate& intermediate, + int version, EProfile profile, EShSource source, + EShLanguage language, TInfoSink& infoSink, + SpvVersion spvVersion, bool forwardCompatible, EShMessages messages, + bool parsingBuiltIns) +{ + switch (source) { + case EShSourceGlsl: + intermediate.setEntryPointName("main"); + return new TParseContext(symbolTable, intermediate, parsingBuiltIns, version, profile, spvVersion, + language, infoSink, forwardCompatible, messages); + + case EShSourceHlsl: + return new HlslParseContext(symbolTable, intermediate, parsingBuiltIns, version, profile, spvVersion, + language, infoSink, forwardCompatible, messages); + default: + infoSink.info.message(EPrefixInternalError, "Unable to determine source language"); + return nullptr; + } +} + // Local mapping functions for making arrays of symbol tables.... const int VersionCount = 15; // index range in MapVersionToIndex @@ -188,17 +210,22 @@ TPoolAllocator* PerProcessGPA = 0; // // Parse and add to the given symbol table the content of the given shader string. // -bool InitializeSymbolTable(const TString& builtIns, int version, EProfile profile, const SpvVersion& spvVersion, EShLanguage language, TInfoSink& infoSink, - TSymbolTable& symbolTable) +bool InitializeSymbolTable(const TString& builtIns, int version, EProfile profile, const SpvVersion& spvVersion, EShLanguage language, + EShSource source, TInfoSink& infoSink, TSymbolTable& symbolTable) { TIntermediate intermediate(language, version, profile); - TParseContext parseContext(symbolTable, intermediate, true, version, profile, spvVersion, language, infoSink); + intermediate.setSource(source); + + std::unique_ptr parseContext(CreateParseContext(symbolTable, intermediate, version, profile, source, + language, infoSink, spvVersion, true, EShMsgDefault, + true)); + TShader::ForbidInclude includer; - TPpContext ppContext(parseContext, "", includer); - TScanContext scanContext(parseContext); - parseContext.setScanContext(&scanContext); - parseContext.setPpContext(&ppContext); + TPpContext ppContext(*parseContext, "", includer); + TScanContext scanContext(*parseContext); + parseContext->setScanContext(&scanContext); + parseContext->setPpContext(&ppContext); // // Push the symbol table to give it an initial scope. This @@ -217,7 +244,7 @@ bool InitializeSymbolTable(const TString& builtIns, int version, EProfile profil return true; TInputScanner input(1, builtInShaders, builtInLengths); - if (! parseContext.parseShaderStrings(ppContext, input) != 0) { + if (! parseContext->parseShaderStrings(ppContext, input) != 0) { infoSink.info.message(EPrefixInternalError, "Unable to parse built-ins"); printf("Unable to parse built-ins\n%s\n", infoSink.info.c_str()); printf("%s\n", builtInShaders[0]); @@ -237,10 +264,12 @@ int CommonIndex(EProfile profile, EShLanguage language) // To initialize per-stage shared tables, with the common table already complete. // void InitializeStageSymbolTable(TBuiltInParseables& builtInParseables, int version, EProfile profile, const SpvVersion& spvVersion, - EShLanguage language, TInfoSink& infoSink, TSymbolTable** commonTable, TSymbolTable** symbolTables) + EShLanguage language, EShSource source, TInfoSink& infoSink, TSymbolTable** commonTable, + TSymbolTable** symbolTables) { (*symbolTables[language]).adoptLevels(*commonTable[CommonIndex(profile, language)]); - InitializeSymbolTable(builtInParseables.getStageString(language), version, profile, spvVersion, language, infoSink, *symbolTables[language]); + InitializeSymbolTable(builtInParseables.getStageString(language), version, profile, spvVersion, language, source, + infoSink, *symbolTables[language]); builtInParseables.identifyBuiltIns(version, profile, spvVersion, language, *symbolTables[language]); if (profile == EEsProfile && version >= 300) (*symbolTables[language]).setNoBuiltInRedeclarations(); @@ -259,32 +288,40 @@ bool InitializeSymbolTables(TInfoSink& infoSink, TSymbolTable** commonTable, TS builtInParseables->initialize(version, profile, spvVersion); // do the common tables - InitializeSymbolTable(builtInParseables->getCommonString(), version, profile, spvVersion, EShLangVertex, infoSink, *commonTable[EPcGeneral]); + InitializeSymbolTable(builtInParseables->getCommonString(), version, profile, spvVersion, EShLangVertex, source, + infoSink, *commonTable[EPcGeneral]); if (profile == EEsProfile) - InitializeSymbolTable(builtInParseables->getCommonString(), version, profile, spvVersion, EShLangFragment, infoSink, *commonTable[EPcFragment]); + InitializeSymbolTable(builtInParseables->getCommonString(), version, profile, spvVersion, EShLangFragment, source, + infoSink, *commonTable[EPcFragment]); // do the per-stage tables // always have vertex and fragment - InitializeStageSymbolTable(*builtInParseables, version, profile, spvVersion, EShLangVertex, infoSink, commonTable, symbolTables); - InitializeStageSymbolTable(*builtInParseables, version, profile, spvVersion, EShLangFragment, infoSink, commonTable, symbolTables); + InitializeStageSymbolTable(*builtInParseables, version, profile, spvVersion, EShLangVertex, source, + infoSink, commonTable, symbolTables); + InitializeStageSymbolTable(*builtInParseables, version, profile, spvVersion, EShLangFragment, source, + infoSink, commonTable, symbolTables); // check for tessellation if ((profile != EEsProfile && version >= 150) || (profile == EEsProfile && version >= 310)) { - InitializeStageSymbolTable(*builtInParseables, version, profile, spvVersion, EShLangTessControl, infoSink, commonTable, symbolTables); - InitializeStageSymbolTable(*builtInParseables, version, profile, spvVersion, EShLangTessEvaluation, infoSink, commonTable, symbolTables); + InitializeStageSymbolTable(*builtInParseables, version, profile, spvVersion, EShLangTessControl, source, + infoSink, commonTable, symbolTables); + InitializeStageSymbolTable(*builtInParseables, version, profile, spvVersion, EShLangTessEvaluation, source, + infoSink, commonTable, symbolTables); } // check for geometry if ((profile != EEsProfile && version >= 150) || (profile == EEsProfile && version >= 310)) - InitializeStageSymbolTable(*builtInParseables, version, profile, spvVersion, EShLangGeometry, infoSink, commonTable, symbolTables); + InitializeStageSymbolTable(*builtInParseables, version, profile, spvVersion, EShLangGeometry, source, + infoSink, commonTable, symbolTables); // check for compute if ((profile != EEsProfile && version >= 420) || (profile == EEsProfile && version >= 310)) - InitializeStageSymbolTable(*builtInParseables, version, profile, spvVersion, EShLangCompute, infoSink, commonTable, symbolTables); + InitializeStageSymbolTable(*builtInParseables, version, profile, spvVersion, EShLangCompute, source, + infoSink, commonTable, symbolTables); return true; } @@ -295,7 +332,7 @@ bool AddContextSpecificSymbols(const TBuiltInResource* resources, TInfoSink& inf std::unique_ptr builtInParseables(CreateBuiltInParseables(infoSink, source)); builtInParseables->initialize(*resources, version, profile, spvVersion, language); - InitializeSymbolTable(builtInParseables->getCommonString(), version, profile, spvVersion, language, infoSink, symbolTable); + InitializeSymbolTable(builtInParseables->getCommonString(), version, profile, spvVersion, language, source, infoSink, symbolTable); builtInParseables->identifyBuiltIns(version, profile, spvVersion, language, symbolTable, *resources); return true; @@ -694,15 +731,10 @@ bool ProcessDeferred( // Now we can process the full shader under proper symbols and rules. // - TParseContextBase* parseContext; - if (source == EShSourceHlsl) { - parseContext = new HlslParseContext(symbolTable, intermediate, false, version, profile, spvVersion, - compiler->getLanguage(), compiler->infoSink, forwardCompatible, messages); - } else { - intermediate.setEntryPointName("main"); - parseContext = new TParseContext(symbolTable, intermediate, false, version, profile, spvVersion, - compiler->getLanguage(), compiler->infoSink, forwardCompatible, messages); - } + TParseContextBase* parseContext = CreateParseContext(symbolTable, intermediate, version, profile, source, + compiler->getLanguage(), compiler->infoSink, + spvVersion, forwardCompatible, messages, false); + TPpContext ppContext(*parseContext, names[numPre]? names[numPre]: "", includer); // only GLSL (bison triggered, really) needs an externally set scan context @@ -940,7 +972,7 @@ struct DoPreprocessing { struct DoFullParse{ bool operator()(TParseContextBase& parseContext, TPpContext& ppContext, TInputScanner& fullInput, bool versionWillBeError, - TSymbolTable& symbolTable, TIntermediate& intermediate, + TSymbolTable&, TIntermediate& intermediate, EShOptimizationLevel optLevel, EShMessages messages) { bool success = true; diff --git a/gtests/Hlsl.FromFile.cpp b/gtests/Hlsl.FromFile.cpp index 5487fb98..e6d5cb17 100644 --- a/gtests/Hlsl.FromFile.cpp +++ b/gtests/Hlsl.FromFile.cpp @@ -147,6 +147,7 @@ INSTANTIATE_TEST_CASE_P( {"hlsl.logical.unary.frag", "main"}, {"hlsl.logical.binary.frag", "main"}, {"hlsl.logical.binary.vec.frag", "main"}, + {"hlsl.matNx1.frag", "main"}, {"hlsl.mintypes.frag", "main"}, {"hlsl.multiEntry.vert", "RealEntrypoint"}, {"hlsl.multiReturn.frag", "main"}, @@ -199,6 +200,8 @@ INSTANTIATE_TEST_CASE_P( {"hlsl.structin.vert", "main"}, {"hlsl.intrinsics.vert", "VertexShaderFunction"}, {"hlsl.matType.frag", "PixelShaderFunction"}, + {"hlsl.matType.bool.frag", "main"}, + {"hlsl.matType.int.frag", "main"}, {"hlsl.max.frag", "PixelShaderFunction"}, {"hlsl.precedence.frag", "PixelShaderFunction"}, {"hlsl.precedence2.frag", "PixelShaderFunction"}, diff --git a/hlsl/hlslParseables.cpp b/hlsl/hlslParseables.cpp index 7ab159dc..f1f371ed 100755 --- a/hlsl/hlslParseables.cpp +++ b/hlsl/hlslParseables.cpp @@ -55,7 +55,7 @@ namespace { // anonymous namespace functions -const bool UseHlslTypes = false; +const bool UseHlslTypes = true; const char* BaseTypeName(const char argOrder, const char* scalarName, const char* vecName, const char* matName) { @@ -246,24 +246,24 @@ glslang::TString& AppendTypeName(glslang::TString& s, const char* argOrder, cons if (UseHlslTypes) { switch (type) { - case '-': s += "void"; break; - case 'F': s += "float"; break; - case 'D': s += "double"; break; - case 'I': s += "int"; break; - case 'U': s += "uint"; break; - case 'B': s += "bool"; break; - case 'S': s += "sampler"; break; - case 's': s += "SamplerComparisonState"; break; + case '-': s += "void"; break; + case 'F': s += "float"; break; + case 'D': s += "double"; break; + case 'I': s += "int"; break; + case 'U': s += "uint"; break; + case 'B': s += "bool"; break; + case 'S': s += "sampler"; break; + case 's': s += "SamplerComparisonState"; break; case 'T': s += ((isBuffer && isImage) ? "RWBuffer" : isBuffer ? "Buffer" : - isImage ? "RWTexture" : "Texture"); break; - case 'i': s += ((isBuffer && isImage) ? "RWBuffer " : - isBuffer ? "Buffer " : - isImage ? "RWTexture " : "Texture "); break; - case 'u': s += ((isBuffer && isImage) ? "RWBuffer " : - isBuffer ? "Buffer " : - isImage ? "RWTexture " : "Texture ");break; - default: s += "UNKNOWN_TYPE"; break; + isImage ? "RWTexture" : "Texture"); break; + case 'i': s += ((isBuffer && isImage) ? "RWBuffer" : + isBuffer ? "Buffer" : + isImage ? "RWTexture" : "Texture"); break; + case 'u': s += ((isBuffer && isImage) ? "RWBuffer" : + isBuffer ? "Buffer" : + isImage ? "RWTexture" : "Texture"); break; + default: s += "UNKNOWN_TYPE"; break; } } else { switch (type) { @@ -336,36 +336,55 @@ glslang::TString& AppendTypeName(glslang::TString& s, const char* argOrder, cons if (isArrayed) s += "Array"; + // For HLSL, append return type for texture types + if (UseHlslTypes) { + switch (type) { + case 'i': s += ""; break; + case 'u': s += ""; break; + case 'T': s += ""; break; + default: break; + } + } + return s; } -// TODO: the GLSL parser is currently used to parse HLSL prototypes. However, many valid HLSL prototypes +// The GLSL parser can be used to parse a subset of HLSL prototypes. However, many valid HLSL prototypes // are not valid GLSL prototypes. This rejects the invalid ones. Thus, there is a single switch below // to enable creation of the entire HLSL space. -inline bool IsValidGlsl(const char* cname, char retOrder, char retType, char argOrder, char argType, - int dim0, int dim1, int dim0Max, int dim1Max) +inline bool IsValid(const char* cname, char retOrder, char retType, char argOrder, char argType, int dim0, int dim1) { - const bool isVec = dim0Max > 1 || argType == 'V'; - const bool isMat = dim1Max > 1 || argType == 'M'; - - if (!IsTextureType(argOrder) && - ((isVec && dim0 == 1) || // avoid vec1 - (isMat && dim0 == 1 && dim1 == 1))) // avoid mat1x1 - return false; + const bool isVec = (argOrder == 'V'); + const bool isMat = (argOrder == 'M'); - const std::string name(cname); // for ease of comparison. slow, but temporary, until HLSL parser is online. + const std::string name(cname); - if (isMat && dim1 == 1) // TODO: avoid mat Nx1 until we find the right GLSL profile + // these do not have vec1 versions + if (dim0 == 1 && (name == "length" || name == "normalize" || name == "reflect" || name == "refract")) return false; - if ((isMat && (argType == 'I' || argType == 'U' || argType == 'B')) || - (retOrder == 'M' && (retType == 'I' || retType == 'U' || retType == 'B'))) + if (!IsTextureType(argOrder) && (isVec && dim0 == 1)) // avoid vec1 return false; - if (name == "GetRenderTargetSamplePosition" || - name == "tex1D" || - name == "tex1Dgrad") - return false; + if (UseHlslTypes) { + // NO further restrictions for HLSL + } else { + // GLSL parser restrictions + if ((isMat && (argType == 'I' || argType == 'U' || argType == 'B')) || + (retOrder == 'M' && (retType == 'I' || retType == 'U' || retType == 'B'))) + return false; + + if (isMat && dim0 == 1 && dim1 == 1) // avoid mat1x1 + return false; + + if (isMat && dim1 == 1) // TODO: avoid mat Nx1 until we find the right GLSL profile + return false; + + if (name == "GetRenderTargetSamplePosition" || + name == "tex1D" || + name == "tex1Dgrad") + return false; + } return true; } @@ -534,10 +553,10 @@ void TBuiltInParseablesHlsl::initialize(int /*version*/, EProfile /*profile*/, c { "abort", nullptr, nullptr, "-", "-", EShLangAll }, { "abs", nullptr, nullptr, "SVM", "DFUI", EShLangAll }, { "acos", nullptr, nullptr, "SVM", "F", EShLangAll }, - { "all", "S", "B", "SVM", "BFI", EShLangAll }, + { "all", "S", "B", "SVM", "BFIU", EShLangAll }, { "AllMemoryBarrier", nullptr, nullptr, "-", "-", EShLangCS }, { "AllMemoryBarrierWithGroupSync", nullptr, nullptr, "-", "-", EShLangCS }, - { "any", "S", "B", "SVM", "BFI", EShLangAll }, + { "any", "S", "B", "SVM", "BFIU", EShLangAll }, { "asdouble", "S", "D", "S,", "U,", EShLangAll }, { "asdouble", "V2", "D", "V2,", "U,", EShLangAll }, { "asfloat", nullptr, "F", "SVM", "BFIU", EShLangAll }, @@ -682,7 +701,7 @@ void TBuiltInParseablesHlsl::initialize(int /*version*/, EProfile /*profile*/, c { "texCUBEgrad", "V4", "F", "V4,V3,,", "S,F,,", EShLangPS }, { "texCUBElod", "V4", "F", "V4,", "S,F", EShLangPS }, { "texCUBEproj", "V4", "F", "V4,", "S,F", EShLangPS }, - { "transpose", "^M", nullptr, "M", "F", EShLangAll }, + { "transpose", "^M", nullptr, "M", "FUIB", EShLangAll }, { "trunc", nullptr, nullptr, "SVM", "F", EShLangAll }, // Texture object methods. Return type can be overridden by shader declaration. @@ -835,10 +854,6 @@ void TBuiltInParseablesHlsl::initialize(int /*version*/, EProfile /*profile*/, c { nullptr, nullptr, nullptr, nullptr, nullptr, 0 }, }; - // Set this to true to avoid generating prototypes that will be invalid for the GLSL parser. - // TODO: turn it off (and remove the code) when the HLSL parser can be used to parse builtins. - static const bool skipInvalidGlsl = true; - // Create prototypes for the intrinsics. TODO: Avoid ranged based for until all compilers can handle it. for (int icount = 0; hlslIntrinsics[icount].name; ++icount) { const auto& intrinsic = hlslIntrinsics[icount]; @@ -874,8 +889,7 @@ void TBuiltInParseablesHlsl::initialize(int /*version*/, EProfile /*profile*/, c const char* retOrder = intrinsic.retOrder ? intrinsic.retOrder : argOrder; const char* retType = intrinsic.retType ? intrinsic.retType : argType; - if (skipInvalidGlsl && !IsValidGlsl(intrinsic.name, *retOrder, *retType, *argOrder, *argType, - dim0, dim1, dim0Max, dim1Max)) + if (!IsValid(intrinsic.name, *retOrder, *retType, *argOrder, *argType, dim0, dim1)) continue; // Reject some forms of sample methods that don't exist. diff --git a/hlsl/hlslScanContext.cpp b/hlsl/hlslScanContext.cpp index e7cd1fcf..aad9ff97 100755 --- a/hlsl/hlslScanContext.cpp +++ b/hlsl/hlslScanContext.cpp @@ -180,6 +180,22 @@ void HlslScanContext::fillInKeywordMap() (*KeywordMap)["min16uint3"] = EHTokMin16uint3; (*KeywordMap)["min16uint4"] = EHTokMin16uint4; + (*KeywordMap)["bool1x1"] = EHTokBool1x1; + (*KeywordMap)["bool1x2"] = EHTokBool1x2; + (*KeywordMap)["bool1x3"] = EHTokBool1x3; + (*KeywordMap)["bool1x4"] = EHTokBool1x4; + (*KeywordMap)["bool2x1"] = EHTokBool2x1; + (*KeywordMap)["bool2x2"] = EHTokBool2x2; + (*KeywordMap)["bool2x3"] = EHTokBool2x3; + (*KeywordMap)["bool2x4"] = EHTokBool2x4; + (*KeywordMap)["bool3x1"] = EHTokBool3x1; + (*KeywordMap)["bool3x2"] = EHTokBool3x2; + (*KeywordMap)["bool3x3"] = EHTokBool3x3; + (*KeywordMap)["bool3x4"] = EHTokBool3x4; + (*KeywordMap)["bool4x1"] = EHTokBool4x1; + (*KeywordMap)["bool4x2"] = EHTokBool4x2; + (*KeywordMap)["bool4x3"] = EHTokBool4x3; + (*KeywordMap)["bool4x4"] = EHTokBool4x4; (*KeywordMap)["int1x1"] = EHTokInt1x1; (*KeywordMap)["int1x2"] = EHTokInt1x2; (*KeywordMap)["int1x3"] = EHTokInt1x3; @@ -561,6 +577,22 @@ EHlslTokenClass HlslScanContext::tokenizeIdentifier() case EHTokMin16uint4: // matrix types + case EHTokBool1x1: + case EHTokBool1x2: + case EHTokBool1x3: + case EHTokBool1x4: + case EHTokBool2x1: + case EHTokBool2x2: + case EHTokBool2x3: + case EHTokBool2x4: + case EHTokBool3x1: + case EHTokBool3x2: + case EHTokBool3x3: + case EHTokBool3x4: + case EHTokBool4x1: + case EHTokBool4x2: + case EHTokBool4x3: + case EHTokBool4x4: case EHTokInt1x1: case EHTokInt1x2: case EHTokInt1x3: @@ -577,6 +609,22 @@ EHlslTokenClass HlslScanContext::tokenizeIdentifier() case EHTokInt4x2: case EHTokInt4x3: case EHTokInt4x4: + case EHTokUint1x1: + case EHTokUint1x2: + case EHTokUint1x3: + case EHTokUint1x4: + case EHTokUint2x1: + case EHTokUint2x2: + case EHTokUint2x3: + case EHTokUint2x4: + case EHTokUint3x1: + case EHTokUint3x2: + case EHTokUint3x3: + case EHTokUint3x4: + case EHTokUint4x1: + case EHTokUint4x2: + case EHTokUint4x3: + case EHTokUint4x4: case EHTokFloat1x1: case EHTokFloat1x2: case EHTokFloat1x3: -- cgit v1.2.3 From 75fd223f037d88e0b03f801a7dc5e6ed1a939172 Mon Sep 17 00:00:00 2001 From: steve-lunarg Date: Wed, 16 Nov 2016 13:22:11 -0700 Subject: HLSL: allow "sample" as a valid identifier. HLSL has keywords for various interpolation modifiers such as "linear", "centroid", "sample", etc. Of these, "sample" appears to be special, as it is also accepted as an identifier string, where the others are not. This PR adds this ability, so the construct "int sample = 42;" no longer produces a compilation error. New test = hlsl.identifier.sample.frag --- Test/baseResults/hlsl.identifier.sample.frag.out | 103 +++++++++++++++++++++++ Test/hlsl.identifier.sample.frag | 18 ++++ gtests/Hlsl.FromFile.cpp | 1 + hlsl/hlslGrammar.cpp | 13 +++ 4 files changed, 135 insertions(+) create mode 100644 Test/baseResults/hlsl.identifier.sample.frag.out create mode 100644 Test/hlsl.identifier.sample.frag diff --git a/Test/baseResults/hlsl.identifier.sample.frag.out b/Test/baseResults/hlsl.identifier.sample.frag.out new file mode 100644 index 00000000..8e740819 --- /dev/null +++ b/Test/baseResults/hlsl.identifier.sample.frag.out @@ -0,0 +1,103 @@ +hlsl.identifier.sample.frag +Shader version: 450 +gl_FragCoord origin is upper left +0:? Sequence +0:9 Function Definition: sample(i1; (temp int) +0:9 Function Parameters: +0:9 'x' (in int) +0:? Sequence +0:9 Branch: Return with expression +0:9 'x' (in int) +0:12 Function Definition: main( (temp 4-component vector of float) +0:12 Function Parameters: +0:? Sequence +0:15 Sequence +0:15 move second child to first child (temp int) +0:15 'sample' (temp int) +0:15 Constant: +0:15 3 (const int) +0:17 Sequence +0:17 move second child to first child (temp 4-component vector of float) +0:? '@entryPointOutput' (layout(location=0 ) out 4-component vector of float) +0:? Constant: +0:? 0.000000 +0:? 0.000000 +0:? 0.000000 +0:? 0.000000 +0:17 Branch: Return +0:? Linker Objects +0:? '@entryPointOutput' (layout(location=0 ) out 4-component vector of float) + + +Linked fragment stage: + + +Shader version: 450 +gl_FragCoord origin is upper left +0:? Sequence +0:9 Function Definition: sample(i1; (temp int) +0:9 Function Parameters: +0:9 'x' (in int) +0:? Sequence +0:9 Branch: Return with expression +0:9 'x' (in int) +0:12 Function Definition: main( (temp 4-component vector of float) +0:12 Function Parameters: +0:? Sequence +0:15 Sequence +0:15 move second child to first child (temp int) +0:15 'sample' (temp int) +0:15 Constant: +0:15 3 (const int) +0:17 Sequence +0:17 move second child to first child (temp 4-component vector of float) +0:? '@entryPointOutput' (layout(location=0 ) out 4-component vector of float) +0:? Constant: +0:? 0.000000 +0:? 0.000000 +0:? 0.000000 +0:? 0.000000 +0:17 Branch: Return +0:? Linker Objects +0:? '@entryPointOutput' (layout(location=0 ) out 4-component vector of float) + +// Module Version 10000 +// Generated by (magic number): 80001 +// Id's are bound by 24 + + Capability Shader + 1: ExtInstImport "GLSL.std.450" + MemoryModel Logical GLSL450 + EntryPoint Fragment 4 "main" 20 + ExecutionMode 4 OriginUpperLeft + Name 4 "main" + Name 10 "sample(i1;" + Name 9 "x" + Name 15 "sample" + Name 20 "@entryPointOutput" + Decorate 20(@entryPointOutput) Location 0 + 2: TypeVoid + 3: TypeFunction 2 + 6: TypeInt 32 1 + 7: TypePointer Function 6(int) + 8: TypeFunction 6(int) 7(ptr) + 16: 6(int) Constant 3 + 17: TypeFloat 32 + 18: TypeVector 17(float) 4 + 19: TypePointer Output 18(fvec4) +20(@entryPointOutput): 19(ptr) Variable Output + 21: 17(float) Constant 0 + 22: 18(fvec4) ConstantComposite 21 21 21 21 + 4(main): 2 Function None 3 + 5: Label + 15(sample): 7(ptr) Variable Function + Store 15(sample) 16 + Store 20(@entryPointOutput) 22 + Return + FunctionEnd + 10(sample(i1;): 6(int) Function None 8 + 9(x): 7(ptr) FunctionParameter + 11: Label + 12: 6(int) Load 9(x) + ReturnValue 12 + FunctionEnd diff --git a/Test/hlsl.identifier.sample.frag b/Test/hlsl.identifier.sample.frag new file mode 100644 index 00000000..3281a9ac --- /dev/null +++ b/Test/hlsl.identifier.sample.frag @@ -0,0 +1,18 @@ + +struct MyStruct { + sample float a; + noperspective float b; + linear float c; + centroid float d; +}; + +int sample(int x) { return x; } // HLSL allows this as an identifier as well. + +float4 main() : SV_Target0 +{ + // HLSL allows this as an identifier as well. + // However, this is not true of other qualifier keywords such as "linear". + int sample = 3; + + return float4(0,0,0,0); +} diff --git a/gtests/Hlsl.FromFile.cpp b/gtests/Hlsl.FromFile.cpp index 5487fb98..3b66109e 100644 --- a/gtests/Hlsl.FromFile.cpp +++ b/gtests/Hlsl.FromFile.cpp @@ -118,6 +118,7 @@ INSTANTIATE_TEST_CASE_P( {"hlsl.getdimensions.rw.dx10.frag", "main"}, {"hlsl.getdimensions.dx10.vert", "main"}, {"hlsl.getsampleposition.dx10.frag", "main"}, + {"hlsl.identifier.sample.frag", "main"}, {"hlsl.if.frag", "PixelShaderFunction"}, {"hlsl.inoutquals.frag", "main"}, {"hlsl.init.frag", "ShaderFunction"}, diff --git a/hlsl/hlslGrammar.cpp b/hlsl/hlslGrammar.cpp index e6f4b603..079a4690 100755 --- a/hlsl/hlslGrammar.cpp +++ b/hlsl/hlslGrammar.cpp @@ -85,6 +85,19 @@ bool HlslGrammar::acceptIdentifier(HlslToken& idToken) return true; } + // Even though "sample" is a keyword (for interpolation modifiers), it IS still accepted as + // an identifier. This appears to be a solitary exception: other interp modifier keywords such + // as "linear" or "centroid" NOT valid identifiers. This code special cases "sample", + // so e.g, "int sample;" is accepted. + if (peekTokenClass(EHTokSample)) { + idToken.string = NewPoolTString("sample"); + idToken.tokenClass = EHTokIdentifier; + idToken.symbol = nullptr; + idToken.loc = token.loc; + advanceToken(); + return true; + } + return false; } -- cgit v1.2.3 From f49cdf41831c2332bcb70469d6baca339a6c6d1a Mon Sep 17 00:00:00 2001 From: steve-lunarg Date: Thu, 17 Nov 2016 15:04:20 -0700 Subject: WIP: HLSL: Add GS support This PR adds: [maxvertexcount(n)] attributes point/line/triangle/lineadj/triangleadj qualifiers PointStream/LineStream/TriangleStream templatized types Append method on above template types RestartStrip method on above template types. --- Test/baseResults/hlsl.basic.geom.out | 201 +++++++++++++++++++++++++++++++++++ Test/hlsl.basic.geom | 25 +++++ glslang/Include/intermediate.h | 4 + gtests/Hlsl.FromFile.cpp | 1 + hlsl/hlslAttributes.cpp | 18 ++-- hlsl/hlslAttributes.h | 17 +-- hlsl/hlslGrammar.cpp | 106 +++++++++++++++++- hlsl/hlslGrammar.h | 4 +- hlsl/hlslParseHelper.cpp | 144 ++++++++++++++++++++++--- hlsl/hlslParseHelper.h | 4 + hlsl/hlslParseables.cpp | 9 ++ hlsl/hlslScanContext.cpp | 25 ++++- hlsl/hlslTokens.h | 12 +++ 13 files changed, 531 insertions(+), 39 deletions(-) create mode 100644 Test/baseResults/hlsl.basic.geom.out create mode 100644 Test/hlsl.basic.geom diff --git a/Test/baseResults/hlsl.basic.geom.out b/Test/baseResults/hlsl.basic.geom.out new file mode 100644 index 00000000..2c20b439 --- /dev/null +++ b/Test/baseResults/hlsl.basic.geom.out @@ -0,0 +1,201 @@ +hlsl.basic.geom +Shader version: 450 +invocations = -1 +max_vertices = 4 +input primitive = triangles +output primitive = line_strip +0:? Sequence +0:16 Function Definition: main(u1[3];u1[3];struct-PSInput-f1-i11; (temp void) +0:16 Function Parameters: +0:16 'VertexID' (layout(location=0 ) in 3-element array of uint) +0:16 'test' (layout(location=3 ) in 3-element array of uint) +0:16 'OutputStream' (out structure{temp float myfloat, temp int something}) +0:? Sequence +0:19 move second child to first child (temp float) +0:19 myfloat: direct index for structure (temp float) +0:19 'Vert' (temp structure{temp float myfloat, temp int something}) +0:19 Constant: +0:19 0 (const int) +0:19 Convert uint to float (temp float) +0:19 add (temp uint) +0:19 add (temp uint) +0:19 direct index (layout(location=3 ) temp uint) +0:19 'test' (layout(location=3 ) in 3-element array of uint) +0:19 Constant: +0:19 0 (const int) +0:19 direct index (layout(location=3 ) temp uint) +0:19 'test' (layout(location=3 ) in 3-element array of uint) +0:19 Constant: +0:19 1 (const int) +0:19 direct index (layout(location=3 ) temp uint) +0:19 'test' (layout(location=3 ) in 3-element array of uint) +0:19 Constant: +0:19 2 (const int) +0:20 move second child to first child (temp int) +0:20 something: direct index for structure (temp int) +0:20 'Vert' (temp structure{temp float myfloat, temp int something}) +0:20 Constant: +0:20 1 (const int) +0:20 Convert uint to int (temp int) +0:20 direct index (layout(location=0 ) temp uint) +0:20 'VertexID' (layout(location=0 ) in 3-element array of uint) +0:20 Constant: +0:20 0 (const int) +0:22 Sequence +0:22 move second child to first child (temp structure{temp float myfloat, temp int something}) +0:22 'OutputStream' (out structure{temp float myfloat, temp int something}) +0:22 'Vert' (temp structure{temp float myfloat, temp int something}) +0:22 EmitVertex (temp void) +0:23 Sequence +0:23 move second child to first child (temp structure{temp float myfloat, temp int something}) +0:23 'OutputStream' (out structure{temp float myfloat, temp int something}) +0:23 'Vert' (temp structure{temp float myfloat, temp int something}) +0:23 EmitVertex (temp void) +0:24 EndPrimitive (temp void) +0:? Linker Objects +0:? 'VertexID' (layout(location=0 ) in 3-element array of uint) +0:? 'test' (layout(location=3 ) in 3-element array of uint) +0:? 'myfloat' (layout(location=0 ) out float) +0:? 'something' (layout(location=1 ) out int) + + +Linked geometry stage: + + +Shader version: 450 +invocations = 1 +max_vertices = 4 +input primitive = triangles +output primitive = line_strip +0:? Sequence +0:16 Function Definition: main(u1[3];u1[3];struct-PSInput-f1-i11; (temp void) +0:16 Function Parameters: +0:16 'VertexID' (layout(location=0 ) in 3-element array of uint) +0:16 'test' (layout(location=3 ) in 3-element array of uint) +0:16 'OutputStream' (out structure{temp float myfloat, temp int something}) +0:? Sequence +0:19 move second child to first child (temp float) +0:19 myfloat: direct index for structure (temp float) +0:19 'Vert' (temp structure{temp float myfloat, temp int something}) +0:19 Constant: +0:19 0 (const int) +0:19 Convert uint to float (temp float) +0:19 add (temp uint) +0:19 add (temp uint) +0:19 direct index (layout(location=3 ) temp uint) +0:19 'test' (layout(location=3 ) in 3-element array of uint) +0:19 Constant: +0:19 0 (const int) +0:19 direct index (layout(location=3 ) temp uint) +0:19 'test' (layout(location=3 ) in 3-element array of uint) +0:19 Constant: +0:19 1 (const int) +0:19 direct index (layout(location=3 ) temp uint) +0:19 'test' (layout(location=3 ) in 3-element array of uint) +0:19 Constant: +0:19 2 (const int) +0:20 move second child to first child (temp int) +0:20 something: direct index for structure (temp int) +0:20 'Vert' (temp structure{temp float myfloat, temp int something}) +0:20 Constant: +0:20 1 (const int) +0:20 Convert uint to int (temp int) +0:20 direct index (layout(location=0 ) temp uint) +0:20 'VertexID' (layout(location=0 ) in 3-element array of uint) +0:20 Constant: +0:20 0 (const int) +0:22 Sequence +0:22 move second child to first child (temp structure{temp float myfloat, temp int something}) +0:22 'OutputStream' (out structure{temp float myfloat, temp int something}) +0:22 'Vert' (temp structure{temp float myfloat, temp int something}) +0:22 EmitVertex (temp void) +0:23 Sequence +0:23 move second child to first child (temp structure{temp float myfloat, temp int something}) +0:23 'OutputStream' (out structure{temp float myfloat, temp int something}) +0:23 'Vert' (temp structure{temp float myfloat, temp int something}) +0:23 EmitVertex (temp void) +0:24 EndPrimitive (temp void) +0:? Linker Objects +0:? 'VertexID' (layout(location=0 ) in 3-element array of uint) +0:? 'test' (layout(location=3 ) in 3-element array of uint) +0:? 'myfloat' (layout(location=0 ) out float) +0:? 'something' (layout(location=1 ) out int) + +// Module Version 10000 +// Generated by (magic number): 80001 +// Id's are bound by 45 + + Capability Geometry + 1: ExtInstImport "GLSL.std.450" + MemoryModel Logical GLSL450 + EntryPoint Geometry 4 "main" 16 31 38 42 44 + ExecutionMode 4 Triangles + ExecutionMode 4 Invocations 1 + ExecutionMode 4 OutputLineStrip + ExecutionMode 4 OutputVertices 4 + Name 4 "main" + Name 8 "PSInput" + MemberName 8(PSInput) 0 "myfloat" + MemberName 8(PSInput) 1 "something" + Name 10 "Vert" + Name 16 "test" + Name 31 "VertexID" + Name 38 "OutputStream" + Name 42 "myfloat" + Name 44 "something" + Decorate 16(test) Location 3 + Decorate 31(VertexID) Location 0 + Decorate 42(myfloat) Location 0 + Decorate 44(something) Location 1 + 2: TypeVoid + 3: TypeFunction 2 + 6: TypeFloat 32 + 7: TypeInt 32 1 + 8(PSInput): TypeStruct 6(float) 7(int) + 9: TypePointer Function 8(PSInput) + 11: 7(int) Constant 0 + 12: TypeInt 32 0 + 13: 12(int) Constant 3 + 14: TypeArray 12(int) 13 + 15: TypePointer Input 14 + 16(test): 15(ptr) Variable Input + 17: TypePointer Input 12(int) + 20: 7(int) Constant 1 + 24: 7(int) Constant 2 + 29: TypePointer Function 6(float) + 31(VertexID): 15(ptr) Variable Input + 35: TypePointer Function 7(int) + 37: TypePointer Output 8(PSInput) +38(OutputStream): 37(ptr) Variable Output + 41: TypePointer Output 6(float) + 42(myfloat): 41(ptr) Variable Output + 43: TypePointer Output 7(int) + 44(something): 43(ptr) Variable Output + 4(main): 2 Function None 3 + 5: Label + 10(Vert): 9(ptr) Variable Function + 18: 17(ptr) AccessChain 16(test) 11 + 19: 12(int) Load 18 + 21: 17(ptr) AccessChain 16(test) 20 + 22: 12(int) Load 21 + 23: 12(int) IAdd 19 22 + 25: 17(ptr) AccessChain 16(test) 24 + 26: 12(int) Load 25 + 27: 12(int) IAdd 23 26 + 28: 6(float) ConvertUToF 27 + 30: 29(ptr) AccessChain 10(Vert) 11 + Store 30 28 + 32: 17(ptr) AccessChain 31(VertexID) 11 + 33: 12(int) Load 32 + 34: 7(int) Bitcast 33 + 36: 35(ptr) AccessChain 10(Vert) 20 + Store 36 34 + 39: 8(PSInput) Load 10(Vert) + Store 38(OutputStream) 39 + EmitVertex + 40: 8(PSInput) Load 10(Vert) + Store 38(OutputStream) 40 + EmitVertex + EndPrimitive + Return + FunctionEnd diff --git a/Test/hlsl.basic.geom b/Test/hlsl.basic.geom new file mode 100644 index 00000000..79b061ee --- /dev/null +++ b/Test/hlsl.basic.geom @@ -0,0 +1,25 @@ +struct PSInput +{ + float myfloat : SOME_SEMANTIC; + int something : ANOTHER_SEMANTIC; +}; + +struct nametest { + int Append; // these are valid names even though they are also method names. + int RestartStrip; // ... +}; + +[maxvertexcount(4)] +void main(triangle in uint VertexID[3] : VertexID, + triangle uint test[3] : FOO, + inout LineStream OutputStream) +{ + PSInput Vert; + + Vert.myfloat = test[0] + test[1] + test[2]; + Vert.something = VertexID[0]; + + OutputStream.Append(Vert); + OutputStream.Append(Vert); + OutputStream.RestartStrip(); +} diff --git a/glslang/Include/intermediate.h b/glslang/Include/intermediate.h index db61b750..8f7ffcc0 100644 --- a/glslang/Include/intermediate.h +++ b/glslang/Include/intermediate.h @@ -621,6 +621,10 @@ enum TOperator { EOpMethodGatherCmpGreen, // ... EOpMethodGatherCmpBlue, // ... EOpMethodGatherCmpAlpha, // ... + + // geometry methods + EOpMethodAppend, // Geometry shader methods + EOpMethodRestartStrip, // ... }; class TIntermTraverser; diff --git a/gtests/Hlsl.FromFile.cpp b/gtests/Hlsl.FromFile.cpp index 5487fb98..2867140e 100644 --- a/gtests/Hlsl.FromFile.cpp +++ b/gtests/Hlsl.FromFile.cpp @@ -88,6 +88,7 @@ INSTANTIATE_TEST_CASE_P( {"hlsl.attribute.frag", "PixelShaderFunction"}, {"hlsl.attribute.expression.comp", "main"}, {"hlsl.basic.comp", "main"}, + {"hlsl.basic.geom", "main"}, {"hlsl.buffer.frag", "PixelShaderFunction"}, {"hlsl.calculatelod.dx10.frag", "main"}, {"hlsl.calculatelodunclamped.dx10.frag", "main"}, diff --git a/hlsl/hlslAttributes.cpp b/hlsl/hlslAttributes.cpp index 957f282e..966ff352 100644 --- a/hlsl/hlslAttributes.cpp +++ b/hlsl/hlslAttributes.cpp @@ -55,27 +55,29 @@ namespace glslang { else if (lowername == "domain") return EatDomain; else if (lowername == "earlydepthstencil") - return EatEarlydepthstencil; + return EatEarlyDepthStencil; else if (lowername == "fastopt") - return EatFastopt; + return EatFastOpt; else if (lowername == "flatten") return EatFlatten; else if (lowername == "forcecase") - return EatForcecase; + return EatForceCase; else if (lowername == "instance") return EatInstance; else if (lowername == "maxtessfactor") - return EatMaxtessfactor; + return EatMaxTessFactor; + else if (lowername == "maxvertexcount") + return EatMaxVertexCount; else if (lowername == "numthreads") - return EatNumthreads; + return EatNumThreads; else if (lowername == "outputcontrolpoints") - return EatOutputcontrolpoints; + return EatOutputControlPoints; else if (lowername == "outputtopology") - return EatOutputtopology; + return EatOutputTopology; else if (lowername == "partitioning") return EatPartitioning; else if (lowername == "patchconstantfunc") - return EatPatchconstantfunc; + return EatPatchConstantFunc; else if (lowername == "unroll") return EatUnroll; else diff --git a/hlsl/hlslAttributes.h b/hlsl/hlslAttributes.h index da5ee5ef..312a4564 100644 --- a/hlsl/hlslAttributes.h +++ b/hlsl/hlslAttributes.h @@ -48,17 +48,18 @@ namespace glslang { EatBranch, EatCall, EatDomain, - EatEarlydepthstencil, - EatFastopt, + EatEarlyDepthStencil, + EatFastOpt, EatFlatten, - EatForcecase, + EatForceCase, EatInstance, - EatMaxtessfactor, - EatNumthreads, - EatOutputcontrolpoints, - EatOutputtopology, + EatMaxTessFactor, + EatNumThreads, + EatMaxVertexCount, + EatOutputControlPoints, + EatOutputTopology, EatPartitioning, - EatPatchconstantfunc, + EatPatchConstantFunc, EatUnroll, }; } diff --git a/hlsl/hlslGrammar.cpp b/hlsl/hlslGrammar.cpp index e6f4b603..b2715eda 100755 --- a/hlsl/hlslGrammar.cpp +++ b/hlsl/hlslGrammar.cpp @@ -469,9 +469,14 @@ bool HlslGrammar::acceptFullySpecifiedType(TType& type) // Some qualifiers are set when parsing the type. Merge those with // whatever comes from acceptQualifier. assert(qualifier.layoutFormat == ElfNone); + qualifier.layoutFormat = type.getQualifier().layoutFormat; qualifier.precision = type.getQualifier().precision; - type.getQualifier() = qualifier; + + if (type.getQualifier().storage == EvqVaryingOut) + qualifier.storage = type.getQualifier().storage; + + type.getQualifier() = qualifier; } return true; @@ -544,6 +549,35 @@ bool HlslGrammar::acceptQualifier(TQualifier& qualifier) if (! acceptLayoutQualifierList(qualifier)) return false; continue; + + // GS geometries: these are specified on stage input variables, and are an error (not verified here) + // for output variables. + case EHTokPoint: + qualifier.storage = EvqIn; + if (!parseContext.handleInputGeometry(token.loc, ElgPoints)) + return false; + break; + case EHTokLine: + qualifier.storage = EvqIn; + if (!parseContext.handleInputGeometry(token.loc, ElgLines)) + return false; + break; + case EHTokTriangle: + qualifier.storage = EvqIn; + if (!parseContext.handleInputGeometry(token.loc, ElgTriangles)) + return false; + break; + case EHTokLineAdj: + qualifier.storage = EvqIn; + if (!parseContext.handleInputGeometry(token.loc, ElgLinesAdjacency)) + return false; + break; + case EHTokTriangleAdj: + qualifier.storage = EvqIn; + if (!parseContext.handleInputGeometry(token.loc, ElgTrianglesAdjacency)) + return false; + break; + default: return true; } @@ -608,7 +642,7 @@ bool HlslGrammar::acceptLayoutQualifierList(TQualifier& qualifier) // | UINT // | BOOL // -bool HlslGrammar::acceptTemplateType(TBasicType& basicType) +bool HlslGrammar::acceptTemplateVecMatBasicType(TBasicType& basicType) { switch (peek()) { case EHTokFloat: @@ -652,7 +686,7 @@ bool HlslGrammar::acceptVectorTemplateType(TType& type) } TBasicType basicType; - if (! acceptTemplateType(basicType)) { + if (! acceptTemplateVecMatBasicType(basicType)) { expected("scalar type"); return false; } @@ -704,7 +738,7 @@ bool HlslGrammar::acceptMatrixTemplateType(TType& type) } TBasicType basicType; - if (! acceptTemplateType(basicType)) { + if (! acceptTemplateVecMatBasicType(basicType)) { expected("scalar type"); return false; } @@ -753,6 +787,56 @@ bool HlslGrammar::acceptMatrixTemplateType(TType& type) return true; } +// layout_geometry +// : LINESTREAM +// | POINTSTREAM +// | TRIANGLESTREAM +// +bool HlslGrammar::acceptOutputPrimitiveGeometry(TLayoutGeometry& geometry) +{ + // read geometry type + const EHlslTokenClass geometryType = peek(); + + switch (geometryType) { + case EHTokPointStream: geometry = ElgPoints; break; + case EHTokLineStream: geometry = ElgLineStrip; break; + case EHTokTriangleStream: geometry = ElgTriangleStrip; break; + default: + return false; // not a layout geometry + } + + advanceToken(); // consume the layout keyword + return true; +} + +// stream_out_template_type +// : output_primitive_geometry_type LEFT_ANGLE type RIGHT_ANGLE +// +bool HlslGrammar::acceptStreamOutTemplateType(TType& type, TLayoutGeometry& geometry) +{ + geometry = ElgNone; + + if (! acceptOutputPrimitiveGeometry(geometry)) + return false; + + if (! acceptTokenClass(EHTokLeftAngle)) + return false; + + if (! acceptType(type)) { + expected("stream output type"); + return false; + } + + type.getQualifier().storage = EvqVaryingOut; + + if (! acceptTokenClass(EHTokRightAngle)) { + expected("right angle bracket"); + return false; + } + + return true; +} + // annotations // : LEFT_ANGLE declaration SEMI_COLON ... declaration SEMICOLON RIGHT_ANGLE // @@ -989,6 +1073,20 @@ bool HlslGrammar::acceptType(TType& type) return acceptMatrixTemplateType(type); break; + case EHTokPointStream: // fall through + case EHTokLineStream: // ... + case EHTokTriangleStream: // ... + { + TLayoutGeometry geometry; + if (! acceptStreamOutTemplateType(type, geometry)) + return false; + + if (! parseContext.handleOutputGeometry(token.loc, geometry)) + return false; + + return true; + } + case EHTokSampler: // fall through case EHTokSampler1d: // ... case EHTokSampler2d: // ... diff --git a/hlsl/hlslGrammar.h b/hlsl/hlslGrammar.h index c3e42f67..8804b217 100755 --- a/hlsl/hlslGrammar.h +++ b/hlsl/hlslGrammar.h @@ -72,9 +72,11 @@ namespace glslang { bool acceptQualifier(TQualifier&); bool acceptLayoutQualifierList(TQualifier&); bool acceptType(TType&); - bool acceptTemplateType(TBasicType&); + bool acceptTemplateVecMatBasicType(TBasicType&); bool acceptVectorTemplateType(TType&); bool acceptMatrixTemplateType(TType&); + bool acceptStreamOutTemplateType(TType&, TLayoutGeometry&); + bool acceptOutputPrimitiveGeometry(TLayoutGeometry&); bool acceptAnnotations(TQualifier&); bool acceptSamplerType(TType&); bool acceptTextureType(TType&); diff --git a/hlsl/hlslParseHelper.cpp b/hlsl/hlslParseHelper.cpp index ff2c3014..49577677 100755 --- a/hlsl/hlslParseHelper.cpp +++ b/hlsl/hlslParseHelper.cpp @@ -758,6 +758,13 @@ TIntermTyped* HlslParseContext::handleDotDereference(const TSourceLoc& loc, TInt return intermediate.addMethod(base, TType(sampler.type, EvqTemporary, vecSize), &field, loc); } } + } else if (field == "Append" || + field == "RestartStrip") { + // These methods only valid on stage in variables + // TODO: ... which are stream out types, if there's any way to test that here. + if (base->getType().getQualifier().storage == EvqVaryingOut) { + return intermediate.addMethod(base, TType(EbtVoid), &field, loc); + } } // It's not .length() if we get to here. @@ -1137,12 +1144,19 @@ TIntermAggregate* HlslParseContext::handleFunctionDefinition(const TSourceLoc& l postMainReturn = false; // Handle function attributes - const TIntermAggregate* numThreadliterals = attributes[EatNumthreads]; - if (numThreadliterals != nullptr && inEntryPoint) { - const TIntermSequence& sequence = numThreadliterals->getSequence(); + if (inEntryPoint) { + const TIntermAggregate* numThreads = attributes[EatNumThreads]; + if (numThreads != nullptr) { + const TIntermSequence& sequence = numThreads->getSequence(); - for (int lid = 0; lid < int(sequence.size()); ++lid) - intermediate.setLocalSize(lid, sequence[lid]->getAsConstantUnion()->getConstArray()[0].getIConst()); + for (int lid = 0; lid < int(sequence.size()); ++lid) + intermediate.setLocalSize(lid, sequence[lid]->getAsConstantUnion()->getConstArray()[0].getIConst()); + } + + const TIntermAggregate* maxVertexCount = attributes[EatMaxVertexCount]; + if (maxVertexCount != nullptr) { + intermediate.setVertices(maxVertexCount->getSequence()[0]->getAsConstantUnion()->getConstArray()[0].getIConst()); + } } return paramNodes; @@ -2063,6 +2077,55 @@ void HlslParseContext::decomposeSampleMethods(const TSourceLoc& loc, TIntermType } } +// +// Decompose geometry shader methods +// +void HlslParseContext::decomposeGeometryMethods(const TSourceLoc& loc, TIntermTyped*& node, TIntermNode* arguments) +{ + if (!node || !node->getAsOperator()) + return; + + const TOperator op = node->getAsOperator()->getOp(); + const TIntermAggregate* argAggregate = arguments ? arguments->getAsAggregate() : nullptr; + + switch (op) { + case EOpMethodAppend: + if (argAggregate) { + TIntermAggregate* sequence = nullptr; + TIntermAggregate* emit = new TIntermAggregate(EOpEmitVertex); + + emit->setLoc(loc); + emit->setType(TType(EbtVoid)); + + sequence = intermediate.growAggregate(sequence, + intermediate.addAssign(EOpAssign, + argAggregate->getSequence()[0]->getAsTyped(), + argAggregate->getSequence()[1]->getAsTyped(), loc), + loc); + + sequence = intermediate.growAggregate(sequence, emit); + + sequence->setOperator(EOpSequence); + sequence->setLoc(loc); + sequence->setType(TType(EbtVoid)); + node = sequence; + } + break; + + case EOpMethodRestartStrip: + { + TIntermAggregate* cut = new TIntermAggregate(EOpEndPrimitive); + cut->setLoc(loc); + cut->setType(TType(EbtVoid)); + node = cut; + } + break; + + default: + break; // most pass through unchanged + } +} + // // Optionally decompose intrinsics to AST opcodes. // @@ -2546,8 +2609,9 @@ TIntermTyped* HlslParseContext::handleFunctionCall(const TSourceLoc& loc, TFunct result = addOutputArgumentConversions(*fnCandidate, *result->getAsAggregate()); } - decomposeIntrinsic(loc, result, arguments); // HLSL->AST intrinsic decompositions - decomposeSampleMethods(loc, result, arguments); // HLSL->AST sample method decompositions + decomposeIntrinsic(loc, result, arguments); // HLSL->AST intrinsic decompositions + decomposeSampleMethods(loc, result, arguments); // HLSL->AST sample method decompositions + decomposeGeometryMethods(loc, result, arguments); // HLSL->AST geometry method decompositions } } @@ -4295,6 +4359,14 @@ const TFunction* HlslParseContext::findFunction(const TSourceLoc& loc, const TFu TVector candidateList; symbolTable.findFunctionNameList(call.getMangledName(), candidateList, builtIn); + // These builtin ops can accept any type, so we bypass the argument selection + if (candidateList.size() == 1 && builtIn && + (candidateList[0]->getBuiltInOp() == EOpMethodAppend || + candidateList[0]->getBuiltInOp() == EOpMethodRestartStrip)) { + + return candidateList[0]; + } + // can 'from' convert to 'to'? const auto convertible = [this](const TType& from, const TType& to) -> bool { if (from == to) @@ -5202,6 +5274,53 @@ void HlslParseContext::addQualifierToExisting(const TSourceLoc& loc, TQualifier addQualifierToExisting(loc, qualifier, *identifiers[i]); } +// +// Update the intermediate for the given input geometry +// +bool HlslParseContext::handleInputGeometry(const TSourceLoc& loc, const TLayoutGeometry& geometry) +{ + switch (geometry) { + case ElgPoints: // fall through + case ElgLines: // ... + case ElgTriangles: // ... + case ElgLinesAdjacency: // ... + case ElgTrianglesAdjacency: // ... + if (! intermediate.setInputPrimitive(geometry)) { + error(loc, "input primitive geometry redefinition", TQualifier::getGeometryString(geometry), ""); + return false; + } + break; + + default: + error(loc, "cannot apply to 'in'", TQualifier::getGeometryString(geometry), ""); + return false; + } + + return true; +} + +// +// Update the intermediate for the given output geometry +// +bool HlslParseContext::handleOutputGeometry(const TSourceLoc& loc, const TLayoutGeometry& geometry) +{ + switch (geometry) { + case ElgPoints: + case ElgLineStrip: + case ElgTriangleStrip: + if (! intermediate.setOutputPrimitive(geometry)) { + error(loc, "output primitive geometry redefinition", TQualifier::getGeometryString(geometry), ""); + return false; + } + break; + default: + error(loc, "cannot apply to 'out'", TQualifier::getGeometryString(geometry), ""); + return false; + } + + return true; +} + // // Updating default qualifier for the case of a declaration with just a qualifier, // no type, block, or identifier. @@ -5231,16 +5350,7 @@ void HlslParseContext::updateStandaloneQualifierDefaults(const TSourceLoc& loc, error(loc, "cannot apply to input", TQualifier::getGeometryString(publicType.shaderQualifiers.geometry), ""); } } else if (publicType.qualifier.storage == EvqVaryingOut) { - switch (publicType.shaderQualifiers.geometry) { - case ElgPoints: - case ElgLineStrip: - case ElgTriangleStrip: - if (! intermediate.setOutputPrimitive(publicType.shaderQualifiers.geometry)) - error(loc, "cannot change previously set output primitive", TQualifier::getGeometryString(publicType.shaderQualifiers.geometry), ""); - break; - default: - error(loc, "cannot apply to 'out'", TQualifier::getGeometryString(publicType.shaderQualifiers.geometry), ""); - } + handleOutputGeometry(loc, publicType.shaderQualifiers.geometry); } else error(loc, "cannot apply to:", TQualifier::getGeometryString(publicType.shaderQualifiers.geometry), GetStorageQualifierString(publicType.qualifier.storage)); } diff --git a/hlsl/hlslParseHelper.h b/hlsl/hlslParseHelper.h index 9a7285f9..3862c10f 100755 --- a/hlsl/hlslParseHelper.h +++ b/hlsl/hlslParseHelper.h @@ -81,6 +81,7 @@ public: TIntermTyped* handleFunctionCall(const TSourceLoc&, TFunction*, TIntermNode*); void decomposeIntrinsic(const TSourceLoc&, TIntermTyped*& node, TIntermNode* arguments); void decomposeSampleMethods(const TSourceLoc&, TIntermTyped*& node, TIntermNode* arguments); + void decomposeGeometryMethods(const TSourceLoc&, TIntermTyped*& node, TIntermNode* arguments); TIntermTyped* handleLengthMethod(const TSourceLoc&, TFunction*, TIntermNode*); void addInputArgumentConversions(const TFunction&, TIntermNode*&) const; TIntermTyped* addOutputArgumentConversions(const TFunction&, TIntermAggregate&); @@ -160,6 +161,9 @@ public: TLayoutFormat getLayoutFromTxType(const TSourceLoc&, const TType&); + bool handleOutputGeometry(const TSourceLoc&, const TLayoutGeometry& geometry); + bool handleInputGeometry(const TSourceLoc&, const TLayoutGeometry& geometry); + protected: void inheritGlobalDefaults(TQualifier& dst) const; TVariable* makeInternalVariable(const char* name, const TType&) const; diff --git a/hlsl/hlslParseables.cpp b/hlsl/hlslParseables.cpp index 7ab159dc..f8fed0d8 100755 --- a/hlsl/hlslParseables.cpp +++ b/hlsl/hlslParseables.cpp @@ -502,6 +502,7 @@ void TBuiltInParseablesHlsl::initialize(int /*version*/, EProfile /*profile*/, c static const EShLanguageMask EShLangCS = EShLangAll; static const EShLanguageMask EShLangPS = EShLangAll; static const EShLanguageMask EShLangHS = EShLangAll; + static const EShLanguageMask EShLangGS = EShLangAll; // This structure encodes the prototype information for each HLSL intrinsic. // Because explicit enumeration would be cumbersome, it's procedurally generated. @@ -831,6 +832,10 @@ void TBuiltInParseablesHlsl::initialize(int /*version*/, EProfile /*profile*/, c { "GatherCmpAlpha", /* O-4 */ "V4", nullptr, "%@,S,V,S,V,,,", "FIU,s,F,,I,,,", EShLangAll }, { "GatherCmpAlpha", /* O-4, status */"V4", nullptr, "%@,S,V,S,V,,,,S","FIU,s,F,,I,,,,U",EShLangAll }, + // geometry methods + { "Append", "-", "-", "-", "-", EShLangGS }, + { "RestartStrip", "-", "-", "-", "-", EShLangGS }, + // Mark end of list, since we want to avoid a range-based for, as some compilers don't handle it yet. { nullptr, nullptr, nullptr, nullptr, nullptr, 0 }, }; @@ -1140,6 +1145,10 @@ void TBuiltInParseablesHlsl::identifyBuiltIns(int /*version*/, EProfile /*profil symbolTable.relateToOperator("GatherCmpGreen", EOpMethodGatherCmpGreen); symbolTable.relateToOperator("GatherCmpBlue", EOpMethodGatherCmpBlue); symbolTable.relateToOperator("GatherCmpAlpha", EOpMethodGatherCmpAlpha); + + // GS methods + symbolTable.relateToOperator("Append", EOpMethodAppend); + symbolTable.relateToOperator("RestartStrip", EOpMethodRestartStrip); } // diff --git a/hlsl/hlslScanContext.cpp b/hlsl/hlslScanContext.cpp index e7cd1fcf..2c45b3ff 100755 --- a/hlsl/hlslScanContext.cpp +++ b/hlsl/hlslScanContext.cpp @@ -119,6 +119,16 @@ void HlslScanContext::fillInKeywordMap() (*KeywordMap)["inout"] = EHTokInOut; (*KeywordMap)["layout"] = EHTokLayout; + (*KeywordMap)["point"] = EHTokPoint; + (*KeywordMap)["line"] = EHTokLine; + (*KeywordMap)["triangle"] = EHTokTriangle; + (*KeywordMap)["lineadj"] = EHTokLineAdj; + (*KeywordMap)["triangleadj"] = EHTokTriangleAdj; + + (*KeywordMap)["PointStream"] = EHTokPointStream; + (*KeywordMap)["LineStream"] = EHTokLineStream; + (*KeywordMap)["TriangleStream"] = EHTokTriangleStream; + (*KeywordMap)["Buffer"] = EHTokBuffer; (*KeywordMap)["vector"] = EHTokVector; (*KeywordMap)["matrix"] = EHTokMatrix; @@ -496,7 +506,20 @@ EHlslTokenClass HlslScanContext::tokenizeIdentifier() case EHTokLayout: return keyword; - // template types + // primitive types + case EHTokPoint: + case EHTokLine: + case EHTokTriangle: + case EHTokLineAdj: + case EHTokTriangleAdj: + return keyword; + + // stream out types + case EHTokPointStream: + case EHTokLineStream: + case EHTokTriangleStream: + return keyword; + case EHTokBuffer: case EHTokVector: case EHTokMatrix: diff --git a/hlsl/hlslTokens.h b/hlsl/hlslTokens.h index d634c8ee..6902070c 100755 --- a/hlsl/hlslTokens.h +++ b/hlsl/hlslTokens.h @@ -66,6 +66,18 @@ enum EHlslTokenClass { EHTokInOut, EHTokLayout, + // primitive types + EHTokPoint, + EHTokLine, + EHTokTriangle, + EHTokLineAdj, + EHTokTriangleAdj, + + // stream out types + EHTokPointStream, + EHTokLineStream, + EHTokTriangleStream, + // template types EHTokBuffer, EHTokVector, -- cgit v1.2.3 From 32c294ed766bc26498d37450d1a9ba8a7c83e125 Mon Sep 17 00:00:00 2001 From: BearishSun Date: Tue, 22 Nov 2016 09:53:04 +0100 Subject: Adding a way to retrieve vertex attribute TType using TProgram reflection API (required in order to query location attributes). --- glslang/MachineIndependent/ShaderLang.cpp | 1 + glslang/Public/ShaderLang.h | 1 + 2 files changed, 2 insertions(+) diff --git a/glslang/MachineIndependent/ShaderLang.cpp b/glslang/MachineIndependent/ShaderLang.cpp index 5b44af52..8df493bc 100644 --- a/glslang/MachineIndependent/ShaderLang.cpp +++ b/glslang/MachineIndependent/ShaderLang.cpp @@ -1708,6 +1708,7 @@ int TProgram::getUniformArraySize(int index) const { return reflection int TProgram::getNumLiveAttributes() const { return reflection->getNumAttributes(); } const char* TProgram::getAttributeName(int index) const { return reflection->getAttribute(index).name.c_str(); } int TProgram::getAttributeType(int index) const { return reflection->getAttribute(index).glDefineType; } +const TType* TProgram::getAttributeTType(int index) const { return reflection->getAttribute(index).getType(); } const TType* TProgram::getUniformTType(int index) const { return reflection->getUniform(index).getType(); } const TType* TProgram::getUniformBlockTType(int index) const { return reflection->getUniformBlock(index).getType(); } diff --git a/glslang/Public/ShaderLang.h b/glslang/Public/ShaderLang.h index 9a76b40a..6793cdd3 100644 --- a/glslang/Public/ShaderLang.h +++ b/glslang/Public/ShaderLang.h @@ -511,6 +511,7 @@ public: int getAttributeType(int index) const; // can be used for glGetActiveAttrib() const TType* getUniformTType(int index) const; // returns a TType* const TType* getUniformBlockTType(int index) const; // returns a TType* + const TType* getAttributeTType(int index) const; // returns a TType* void dumpReflection(); -- cgit v1.2.3 From fca826212cddbef03d69c4d7ab3a3efa5e2c81e7 Mon Sep 17 00:00:00 2001 From: John Kessenich Date: Sat, 26 Nov 2016 13:23:20 -0700 Subject: Always correctly terminate main. Issue #588, PR #600. --- SPIRV/GlslangToSpv.cpp | 26 +++++++++++----------- Test/baseResults/hlsl.array.implicit-size.frag.out | 1 + Test/baseResults/hlsl.float1.frag.out | 1 + Test/baseResults/hlsl.float4.frag.out | 1 + Test/baseResults/hlsl.intrinsics.vert.out | 1 + Test/baseResults/hlsl.layout.frag.out | 1 + Test/baseResults/hlsl.matType.frag.out | 1 + Test/baseResults/hlsl.shapeConv.frag.out | 1 + Test/baseResults/hlsl.swizzle.frag.out | 1 + Test/baseResults/hlsl.typedef.frag.out | 1 + glslang/Include/revision.h | 4 ++-- 11 files changed, 24 insertions(+), 15 deletions(-) diff --git a/SPIRV/GlslangToSpv.cpp b/SPIRV/GlslangToSpv.cpp index 37aac177..fc269e9b 100755 --- a/SPIRV/GlslangToSpv.cpp +++ b/SPIRV/GlslangToSpv.cpp @@ -99,7 +99,7 @@ private: class TGlslangToSpvTraverser : public glslang::TIntermTraverser { public: TGlslangToSpvTraverser(const glslang::TIntermediate*, spv::SpvBuildLogger* logger); - virtual ~TGlslangToSpvTraverser(); + virtual ~TGlslangToSpvTraverser() { } bool visitAggregate(glslang::TVisit, glslang::TIntermAggregate*); bool visitBinary(glslang::TVisit, glslang::TIntermBinary*); @@ -111,6 +111,7 @@ public: bool visitLoop(glslang::TVisit, glslang::TIntermLoop*); bool visitBranch(glslang::TVisit visit, glslang::TIntermBranch*); + void finishSpv(); void dumpSpv(std::vector& out); protected: @@ -896,27 +897,27 @@ TGlslangToSpvTraverser::TGlslangToSpvTraverser(const glslang::TIntermediate* gls default: break; } - } -// Finish everything and dump -void TGlslangToSpvTraverser::dumpSpv(std::vector& out) +// Finish creating SPV, after the traversal is complete. +void TGlslangToSpvTraverser::finishSpv() { + if (! mainTerminated) { + builder.setBuildPoint(shaderEntry->getLastBlock()); + builder.leaveFunction(); + } + // finish off the entry-point SPV instruction by adding the Input/Output for (auto it = iOSet.cbegin(); it != iOSet.cend(); ++it) entryPoint->addIdOperand(*it); builder.eliminateDeadDecorations(); - builder.dump(out); } -TGlslangToSpvTraverser::~TGlslangToSpvTraverser() +// Write the SPV into 'out'. +void TGlslangToSpvTraverser::dumpSpv(std::vector& out) { - if (! mainTerminated) { - spv::Block* lastMainBlock = shaderEntry->getLastBlock(); - builder.setBuildPoint(lastMainBlock); - builder.leaveFunction(); - } + builder.dump(out); } // @@ -5120,9 +5121,8 @@ void GlslangToSpv(const glslang::TIntermediate& intermediate, std::vectortraverse(&it); - + it.finishSpv(); it.dumpSpv(spirv); glslang::GetThreadPoolAllocator().pop(); diff --git a/Test/baseResults/hlsl.array.implicit-size.frag.out b/Test/baseResults/hlsl.array.implicit-size.frag.out index d8e0ed86..ffa1c3ee 100644 --- a/Test/baseResults/hlsl.array.implicit-size.frag.out +++ b/Test/baseResults/hlsl.array.implicit-size.frag.out @@ -234,6 +234,7 @@ gl_FragCoord origin is upper left Store 18(g_array) 24 Store 28(g_array_unused) 31 Store 37(g_mystruct) 42 + Return FunctionEnd 12(main(struct-PS_OUTPUT-vf41;): 2 Function None 10 11(ps_output): 9(ptr) FunctionParameter diff --git a/Test/baseResults/hlsl.float1.frag.out b/Test/baseResults/hlsl.float1.frag.out index 83a243fc..a2e3cefb 100755 --- a/Test/baseResults/hlsl.float1.frag.out +++ b/Test/baseResults/hlsl.float1.frag.out @@ -92,6 +92,7 @@ gl_FragCoord origin is upper left 5: Label Store 14(f1) 15 Store 16(scalar) 17 + Return FunctionEnd 11(ShaderFunction(vf1;f1;): 6(float) Function None 8 9(inFloat1): 7(ptr) FunctionParameter diff --git a/Test/baseResults/hlsl.float4.frag.out b/Test/baseResults/hlsl.float4.frag.out index 8d45d6eb..600b4a10 100755 --- a/Test/baseResults/hlsl.float4.frag.out +++ b/Test/baseResults/hlsl.float4.frag.out @@ -82,6 +82,7 @@ gl_FragCoord origin is upper left 20: TypePointer Uniform 7(fvec4) 4(PixelShaderFunction): 2 Function None 3 5: Label + Return FunctionEnd 11(ShaderFunction(vf4;): 7(fvec4) Function None 9 10(input): 8(ptr) FunctionParameter diff --git a/Test/baseResults/hlsl.intrinsics.vert.out b/Test/baseResults/hlsl.intrinsics.vert.out index 7e7a5119..255e3334 100644 --- a/Test/baseResults/hlsl.intrinsics.vert.out +++ b/Test/baseResults/hlsl.intrinsics.vert.out @@ -3011,6 +3011,7 @@ Shader version: 450 1059: 76 ConstantComposite 1058 1058 1058 1058 4(VertexShaderFunction): 2 Function None 3 5: Label + Return FunctionEnd 16(VertexShaderFunctionS(f1;f1;f1;u1;u1;): 6(float) Function None 10 11(inF0): 7(ptr) FunctionParameter diff --git a/Test/baseResults/hlsl.layout.frag.out b/Test/baseResults/hlsl.layout.frag.out index e8fab995..538a26a1 100755 --- a/Test/baseResults/hlsl.layout.frag.out +++ b/Test/baseResults/hlsl.layout.frag.out @@ -119,6 +119,7 @@ gl_FragCoord origin is upper left 38: 17(int) SpecConstant 10 4(main): 2 Function None 3 5: Label + Return FunctionEnd 11(PixelShaderFunction(vf4;): 7(fvec4) Function None 9 10(input): 8(ptr) FunctionParameter diff --git a/Test/baseResults/hlsl.matType.frag.out b/Test/baseResults/hlsl.matType.frag.out index 9b8e4567..468387b0 100755 --- a/Test/baseResults/hlsl.matType.frag.out +++ b/Test/baseResults/hlsl.matType.frag.out @@ -90,6 +90,7 @@ gl_FragCoord origin is upper left 29: 28(ptr) Variable Uniform 4(PixelShaderFunction): 2 Function None 3 5: Label + Return FunctionEnd 11(ShaderFunction(vf1;f1;): 6(float) Function None 8 9(inFloat1): 7(ptr) FunctionParameter diff --git a/Test/baseResults/hlsl.shapeConv.frag.out b/Test/baseResults/hlsl.shapeConv.frag.out index 8278fac9..451bf886 100755 --- a/Test/baseResults/hlsl.shapeConv.frag.out +++ b/Test/baseResults/hlsl.shapeConv.frag.out @@ -282,6 +282,7 @@ gl_FragCoord origin is upper left 62: TypeVector 41(bool) 4 4(main): 2 Function None 3 5: Label + Return FunctionEnd 13(PixelShaderFunction(vf4;f1;): 7(fvec4) Function None 10 11(input): 8(ptr) FunctionParameter diff --git a/Test/baseResults/hlsl.swizzle.frag.out b/Test/baseResults/hlsl.swizzle.frag.out index 16951a34..cf4be74c 100755 --- a/Test/baseResults/hlsl.swizzle.frag.out +++ b/Test/baseResults/hlsl.swizzle.frag.out @@ -106,6 +106,7 @@ gl_FragCoord origin is upper left 4(PixelShaderFunction): 2 Function None 3 5: Label Store 14(AmbientColor) 18 + Return FunctionEnd 11(ShaderFunction(vf4;): 7(fvec4) Function None 9 10(input): 8(ptr) FunctionParameter diff --git a/Test/baseResults/hlsl.typedef.frag.out b/Test/baseResults/hlsl.typedef.frag.out index e8bda1af..10b3413f 100755 --- a/Test/baseResults/hlsl.typedef.frag.out +++ b/Test/baseResults/hlsl.typedef.frag.out @@ -106,6 +106,7 @@ gl_FragCoord origin is upper left 20: 9(int) Constant 2 4(PixelShaderFunction): 2 Function None 3 5: Label + Return FunctionEnd 14(ShaderFunction(vf4;i1;): 7(fvec4) Function None 11 12(input): 8(ptr) FunctionParameter diff --git a/glslang/Include/revision.h b/glslang/Include/revision.h index 4ec53322..841d2854 100644 --- a/glslang/Include/revision.h +++ b/glslang/Include/revision.h @@ -2,5 +2,5 @@ // For the version, it uses the latest git tag followed by the number of commits. // For the date, it uses the current date (when then script is run). -#define GLSLANG_REVISION "Overload400-PrecQual.1650" -#define GLSLANG_DATE "14-Nov-2016" +#define GLSLANG_REVISION "Overload400-PrecQual.1659" +#define GLSLANG_DATE "26-Nov-2016" -- cgit v1.2.3 From 517fe7a6ad7c61c6890fa7d1bec15e6ebe5509c2 Mon Sep 17 00:00:00 2001 From: John Kessenich Date: Sat, 26 Nov 2016 13:31:47 -0700 Subject: Non-functional: Rename some entry-point variables to entryPoint, not main. --- SPIRV/GlslangToSpv.cpp | 16 ++++++++-------- SPIRV/SpvBuilder.cpp | 8 ++++---- SPIRV/SpvBuilder.h | 2 +- glslang/Include/revision.h | 2 +- hlsl/hlslParseHelper.cpp | 4 ++-- hlsl/hlslParseHelper.h | 2 +- 6 files changed, 17 insertions(+), 17 deletions(-) diff --git a/SPIRV/GlslangToSpv.cpp b/SPIRV/GlslangToSpv.cpp index fc269e9b..7abd04d6 100755 --- a/SPIRV/GlslangToSpv.cpp +++ b/SPIRV/GlslangToSpv.cpp @@ -182,8 +182,8 @@ protected: // There is a 1:1 mapping between a spv builder and a module; this is thread safe spv::Builder builder; - bool inMain; - bool mainTerminated; + bool inEntryPoint; + bool entryPointTerminated; bool linkageOnly; // true when visiting the set of objects in the AST present only for establishing interface, whether or not they were statically used std::set iOSet; // all input/output variables from either static use or declaration of interface const glslang::TIntermediate* glslangIntermediate; @@ -769,7 +769,7 @@ TGlslangToSpvTraverser::TGlslangToSpvTraverser(const glslang::TIntermediate* gls : TIntermTraverser(true, false, true), shaderEntry(nullptr), currentFunction(nullptr), sequenceDepth(0), logger(buildLogger), builder((glslang::GetKhronosToolId() << 16) | GeneratorVersion, logger), - inMain(false), mainTerminated(false), linkageOnly(false), + inEntryPoint(false), entryPointTerminated(false), linkageOnly(false), glslangIntermediate(glslangIntermediate) { spv::ExecutionModel executionModel = TranslateExecutionModel(glslangIntermediate->getStage()); @@ -902,7 +902,7 @@ TGlslangToSpvTraverser::TGlslangToSpvTraverser(const glslang::TIntermediate* gls // Finish creating SPV, after the traversal is complete. void TGlslangToSpvTraverser::finishSpv() { - if (! mainTerminated) { + if (! entryPointTerminated) { builder.setBuildPoint(shaderEntry->getLastBlock()); builder.leaveFunction(); } @@ -1383,17 +1383,17 @@ bool TGlslangToSpvTraverser::visitAggregate(glslang::TVisit visit, glslang::TInt case glslang::EOpFunction: if (visit == glslang::EvPreVisit) { if (isShaderEntryPoint(node)) { - inMain = true; + inEntryPoint = true; builder.setBuildPoint(shaderEntry->getLastBlock()); currentFunction = shaderEntry; } else { handleFunctionEntry(node); } } else { - if (inMain) - mainTerminated = true; + if (inEntryPoint) + entryPointTerminated = true; builder.leaveFunction(); - inMain = false; + inEntryPoint = false; } return true; diff --git a/SPIRV/SpvBuilder.cpp b/SPIRV/SpvBuilder.cpp index 4703edc3..04b0f04f 100644 --- a/SPIRV/SpvBuilder.cpp +++ b/SPIRV/SpvBuilder.cpp @@ -64,7 +64,7 @@ Builder::Builder(unsigned int magicNumber, SpvBuildLogger* buildLogger) : builderNumber(magicNumber), buildPoint(0), uniqueId(0), - mainFunction(0), + entryPointFunction(0), generatingOpCodeForSpecConst(false), logger(buildLogger) { @@ -967,15 +967,15 @@ void Builder::addMemberDecoration(Id id, unsigned int member, Decoration decorat // Comments in header Function* Builder::makeEntryPoint(const char* entryPoint) { - assert(! mainFunction); + assert(! entryPointFunction); Block* entry; std::vector params; std::vector precisions; - mainFunction = makeFunctionEntry(NoPrecision, makeVoidType(), entryPoint, params, precisions, &entry); + entryPointFunction = makeFunctionEntry(NoPrecision, makeVoidType(), entryPoint, params, precisions, &entry); - return mainFunction; + return entryPointFunction; } // Comments in header diff --git a/SPIRV/SpvBuilder.h b/SPIRV/SpvBuilder.h index 0e8d9cae..e8524b2b 100755 --- a/SPIRV/SpvBuilder.h +++ b/SPIRV/SpvBuilder.h @@ -564,7 +564,7 @@ public: Module module; Block* buildPoint; Id uniqueId; - Function* mainFunction; + Function* entryPointFunction; bool generatingOpCodeForSpecConst; AccessChain accessChain; diff --git a/glslang/Include/revision.h b/glslang/Include/revision.h index 841d2854..77c4eed4 100644 --- a/glslang/Include/revision.h +++ b/glslang/Include/revision.h @@ -2,5 +2,5 @@ // For the version, it uses the latest git tag followed by the number of commits. // For the date, it uses the current date (when then script is run). -#define GLSLANG_REVISION "Overload400-PrecQual.1659" +#define GLSLANG_REVISION "Overload400-PrecQual.1660" #define GLSLANG_DATE "26-Nov-2016" diff --git a/hlsl/hlslParseHelper.cpp b/hlsl/hlslParseHelper.cpp index 49577677..b40546ef 100755 --- a/hlsl/hlslParseHelper.cpp +++ b/hlsl/hlslParseHelper.cpp @@ -55,7 +55,7 @@ HlslParseContext::HlslParseContext(TSymbolTable& symbolTable, TIntermediate& int TParseContextBase(symbolTable, interm, parsingBuiltins, version, profile, spvVersion, language, infoSink, forwardCompatible, messages), contextPragma(true, false), loopNestingLevel(0), annotationNestingLevel(0), structNestingLevel(0), controlFlowNestingLevel(0), - postMainReturn(false), + postEntryPointReturn(false), limits(resources.limits), entryPointOutput(nullptr), nextInLocation(0), nextOutLocation(0) @@ -1141,7 +1141,7 @@ TIntermAggregate* HlslParseContext::handleFunctionDefinition(const TSourceLoc& l intermediate.setAggregateOperator(paramNodes, EOpParameters, TType(EbtVoid), loc); loopNestingLevel = 0; controlFlowNestingLevel = 0; - postMainReturn = false; + postEntryPointReturn = false; // Handle function attributes if (inEntryPoint) { diff --git a/hlsl/hlslParseHelper.h b/hlsl/hlslParseHelper.h index 3862c10f..554243b6 100755 --- a/hlsl/hlslParseHelper.h +++ b/hlsl/hlslParseHelper.h @@ -193,7 +193,7 @@ protected: int controlFlowNestingLevel; // 0 if outside all flow control TList switchSequenceStack; // case, node, case, case, node, ...; ensure only one node between cases; stack of them for nesting bool inEntryPoint; // if inside a function, true if the function is the entry point - bool postMainReturn; // if inside a function, true if the function is the entry point and this is after a return statement + bool postEntryPointReturn; // if inside a function, true if the function is the entry point and this is after a return statement const TType* currentFunctionType; // the return type of the function that's currently being parsed bool functionReturnsValue; // true if a non-void function has a return TBuiltInResource resources; -- cgit v1.2.3 From e50dc536ff76310bd24fa222397cca9d0b6acacf Mon Sep 17 00:00:00 2001 From: John Kessenich Date: Sat, 26 Nov 2016 13:45:18 -0700 Subject: Warn on HLSL not finding entry point. Issue #588. --- Test/baseResults/hlsl.array.implicit-size.frag.out | 1 + Test/baseResults/hlsl.float1.frag.out | 1 + Test/baseResults/hlsl.float4.frag.out | 1 + Test/baseResults/hlsl.intrinsics.vert.out | 1 + Test/baseResults/hlsl.layout.frag.out | 1 + Test/baseResults/hlsl.matType.frag.out | 1 + Test/baseResults/hlsl.shapeConv.frag.out | 1 + Test/baseResults/hlsl.swizzle.frag.out | 1 + Test/baseResults/hlsl.typedef.frag.out | 1 + glslang/Include/revision.h | 2 +- glslang/MachineIndependent/linkValidate.cpp | 15 +++++++++++++-- glslang/MachineIndependent/localintermediate.h | 1 + 12 files changed, 24 insertions(+), 3 deletions(-) diff --git a/Test/baseResults/hlsl.array.implicit-size.frag.out b/Test/baseResults/hlsl.array.implicit-size.frag.out index ffa1c3ee..5674cb47 100644 --- a/Test/baseResults/hlsl.array.implicit-size.frag.out +++ b/Test/baseResults/hlsl.array.implicit-size.frag.out @@ -81,6 +81,7 @@ gl_FragCoord origin is upper left Linked fragment stage: +WARNING: Linking fragment stage: Entry point not found Shader version: 450 gl_FragCoord origin is upper left diff --git a/Test/baseResults/hlsl.float1.frag.out b/Test/baseResults/hlsl.float1.frag.out index a2e3cefb..641febd7 100755 --- a/Test/baseResults/hlsl.float1.frag.out +++ b/Test/baseResults/hlsl.float1.frag.out @@ -32,6 +32,7 @@ gl_FragCoord origin is upper left Linked fragment stage: +WARNING: Linking fragment stage: Entry point not found Shader version: 450 gl_FragCoord origin is upper left diff --git a/Test/baseResults/hlsl.float4.frag.out b/Test/baseResults/hlsl.float4.frag.out index 600b4a10..27c9a5c6 100755 --- a/Test/baseResults/hlsl.float4.frag.out +++ b/Test/baseResults/hlsl.float4.frag.out @@ -22,6 +22,7 @@ gl_FragCoord origin is upper left Linked fragment stage: +WARNING: Linking fragment stage: Entry point not found Shader version: 450 gl_FragCoord origin is upper left diff --git a/Test/baseResults/hlsl.intrinsics.vert.out b/Test/baseResults/hlsl.intrinsics.vert.out index 255e3334..bcf911bc 100644 --- a/Test/baseResults/hlsl.intrinsics.vert.out +++ b/Test/baseResults/hlsl.intrinsics.vert.out @@ -1396,6 +1396,7 @@ Shader version: 450 Linked vertex stage: +WARNING: Linking vertex stage: Entry point not found Shader version: 450 0:? Sequence diff --git a/Test/baseResults/hlsl.layout.frag.out b/Test/baseResults/hlsl.layout.frag.out index 538a26a1..0c12435a 100755 --- a/Test/baseResults/hlsl.layout.frag.out +++ b/Test/baseResults/hlsl.layout.frag.out @@ -33,6 +33,7 @@ gl_FragCoord origin is upper left Linked fragment stage: +WARNING: Linking fragment stage: Entry point not found Shader version: 450 gl_FragCoord origin is upper left diff --git a/Test/baseResults/hlsl.matType.frag.out b/Test/baseResults/hlsl.matType.frag.out index 468387b0..038ca738 100755 --- a/Test/baseResults/hlsl.matType.frag.out +++ b/Test/baseResults/hlsl.matType.frag.out @@ -15,6 +15,7 @@ gl_FragCoord origin is upper left Linked fragment stage: +WARNING: Linking fragment stage: Entry point not found Shader version: 450 gl_FragCoord origin is upper left diff --git a/Test/baseResults/hlsl.shapeConv.frag.out b/Test/baseResults/hlsl.shapeConv.frag.out index 451bf886..a15caac5 100755 --- a/Test/baseResults/hlsl.shapeConv.frag.out +++ b/Test/baseResults/hlsl.shapeConv.frag.out @@ -115,6 +115,7 @@ gl_FragCoord origin is upper left Linked fragment stage: +WARNING: Linking fragment stage: Entry point not found Shader version: 450 gl_FragCoord origin is upper left diff --git a/Test/baseResults/hlsl.swizzle.frag.out b/Test/baseResults/hlsl.swizzle.frag.out index cf4be74c..54fc662e 100755 --- a/Test/baseResults/hlsl.swizzle.frag.out +++ b/Test/baseResults/hlsl.swizzle.frag.out @@ -38,6 +38,7 @@ gl_FragCoord origin is upper left Linked fragment stage: +WARNING: Linking fragment stage: Entry point not found Shader version: 450 gl_FragCoord origin is upper left diff --git a/Test/baseResults/hlsl.typedef.frag.out b/Test/baseResults/hlsl.typedef.frag.out index 10b3413f..565f45fd 100755 --- a/Test/baseResults/hlsl.typedef.frag.out +++ b/Test/baseResults/hlsl.typedef.frag.out @@ -39,6 +39,7 @@ gl_FragCoord origin is upper left Linked fragment stage: +WARNING: Linking fragment stage: Entry point not found Shader version: 450 gl_FragCoord origin is upper left diff --git a/glslang/Include/revision.h b/glslang/Include/revision.h index 77c4eed4..57a322e4 100644 --- a/glslang/Include/revision.h +++ b/glslang/Include/revision.h @@ -2,5 +2,5 @@ // For the version, it uses the latest git tag followed by the number of commits. // For the date, it uses the current date (when then script is run). -#define GLSLANG_REVISION "Overload400-PrecQual.1660" +#define GLSLANG_REVISION "Overload400-PrecQual.1661" #define GLSLANG_DATE "26-Nov-2016" diff --git a/glslang/MachineIndependent/linkValidate.cpp b/glslang/MachineIndependent/linkValidate.cpp index 2e101347..bc473abc 100644 --- a/glslang/MachineIndependent/linkValidate.cpp +++ b/glslang/MachineIndependent/linkValidate.cpp @@ -60,6 +60,13 @@ void TIntermediate::error(TInfoSink& infoSink, const char* message) ++numErrors; } +// Link-time warning. +void TIntermediate::warn(TInfoSink& infoSink, const char* message) +{ + infoSink.info.prefix(EPrefixWarning); + infoSink.info << "Linking " << StageName(language) << " stage: " << message << "\n"; +} + // TODO: 4.4 offset/align: "Two blocks linked together in the same program with the same block // name must have the exact same set of members qualified with offset and their integral-constant // expression values must be the same, or a link-time error results." @@ -370,8 +377,12 @@ void TIntermediate::mergeErrorCheck(TInfoSink& infoSink, const TIntermSymbol& sy // void TIntermediate::finalCheck(TInfoSink& infoSink) { - if (source == EShSourceGlsl && numEntryPoints < 1) - error(infoSink, "Missing entry point: Each stage requires one entry point"); + if (numEntryPoints < 1) { + if (source == EShSourceGlsl) + error(infoSink, "Missing entry point: Each stage requires one entry point"); + else + warn(infoSink, "Entry point not found"); + } if (numPushConstants > 1) error(infoSink, "Only one push_constant block is allowed per stage"); diff --git a/glslang/MachineIndependent/localintermediate.h b/glslang/MachineIndependent/localintermediate.h index 6a4cfd08..e8608240 100644 --- a/glslang/MachineIndependent/localintermediate.h +++ b/glslang/MachineIndependent/localintermediate.h @@ -385,6 +385,7 @@ public: protected: TIntermSymbol* addSymbol(int Id, const TString&, const TType&, const TConstUnionArray&, TIntermTyped* subtree, const TSourceLoc&); void error(TInfoSink& infoSink, const char*); + void warn(TInfoSink& infoSink, const char*); void mergeBodies(TInfoSink&, TIntermSequence& globals, const TIntermSequence& unitGlobals); void mergeLinkerObjects(TInfoSink&, TIntermSequence& linkerObjects, const TIntermSequence& unitLinkerObjects); void mergeImplicitArraySizes(TType&, const TType&); -- cgit v1.2.3 From 509c4216e6af3d5fdf020c4a373473831923a42b Mon Sep 17 00:00:00 2001 From: John Kessenich Date: Sun, 27 Nov 2016 17:26:21 -0700 Subject: Non-functional: Fix typos. --- Test/baseResults/310AofA.vert.out | 2 +- Test/baseResults/430AofA.frag.out | 2 +- glslang/Include/ConstantUnion.h | 2 +- glslang/Include/revision.h | 4 ++-- glslang/MachineIndependent/ParseHelper.cpp | 2 +- hlsl/hlslParseHelper.cpp | 2 +- 6 files changed, 7 insertions(+), 7 deletions(-) diff --git a/Test/baseResults/310AofA.vert.out b/Test/baseResults/310AofA.vert.out index 83f105ca..28592d51 100644 --- a/Test/baseResults/310AofA.vert.out +++ b/Test/baseResults/310AofA.vert.out @@ -5,7 +5,7 @@ ERROR: 0:23: '' : array size required ERROR: 0:28: '[]' : only outermost dimension of an array of arrays can be implicitly sized ERROR: 0:40: '' : array size required ERROR: 0:48: 'constructor' : constructing non-array constituent from array argument -ERROR: 0:49: 'constructior' : array constructor argument not correct type to construct array element +ERROR: 0:49: 'constructor' : array constructor argument not correct type to construct array element ERROR: 0:62: '[' : array index out of range '4' ERROR: 0:78: 'assign' : cannot convert from 'global 4-element array of 7-element array of highp float' to 'global 5-element array of 7-element array of highp float' ERROR: 0:79: 'assign' : cannot convert from 'global 4-element array of 7-element array of highp float' to 'global implicitly-sized array of 7-element array of highp float' diff --git a/Test/baseResults/430AofA.frag.out b/Test/baseResults/430AofA.frag.out index 68285f73..f3bbfb8b 100644 --- a/Test/baseResults/430AofA.frag.out +++ b/Test/baseResults/430AofA.frag.out @@ -2,7 +2,7 @@ Warning, version 430 is not yet complete; most version-specific features are present, but some are missing. ERROR: 0:6: '[]' : only outermost dimension of an array of arrays can be implicitly sized ERROR: 0:14: 'constructor' : constructing non-array constituent from array argument -ERROR: 0:15: 'constructior' : array constructor argument not correct type to construct array element +ERROR: 0:15: 'constructor' : array constructor argument not correct type to construct array element ERROR: 0:28: '[' : array index out of range '4' ERROR: 0:56: 'constructor' : cannot convert parameter 2 from 'const 3-element array of 4-component vector of float' to 'temp 2-element array of 4-component vector of float' ERROR: 0:60: 'constructor' : cannot convert parameter 2 from 'const 2-element array of 4-component vector of float' to 'temp 3-element array of 4-component vector of float' diff --git a/glslang/Include/ConstantUnion.h b/glslang/Include/ConstantUnion.h index 8ee2c84c..ec6aff11 100644 --- a/glslang/Include/ConstantUnion.h +++ b/glslang/Include/ConstantUnion.h @@ -538,7 +538,7 @@ private: }; // Encapsulate having a pointer to an array of TConstUnion, -// which only needs to be allocated if it's size is going to be +// which only needs to be allocated if its size is going to be // bigger than 0. // // One convenience is being able to use [] to go inside the array, instead diff --git a/glslang/Include/revision.h b/glslang/Include/revision.h index 57a322e4..2cfdada1 100644 --- a/glslang/Include/revision.h +++ b/glslang/Include/revision.h @@ -2,5 +2,5 @@ // For the version, it uses the latest git tag followed by the number of commits. // For the date, it uses the current date (when then script is run). -#define GLSLANG_REVISION "Overload400-PrecQual.1661" -#define GLSLANG_DATE "26-Nov-2016" +#define GLSLANG_REVISION "Overload400-PrecQual.1662" +#define GLSLANG_DATE "27-Nov-2016" diff --git a/glslang/MachineIndependent/ParseHelper.cpp b/glslang/MachineIndependent/ParseHelper.cpp index 016f07a2..831e3ac0 100644 --- a/glslang/MachineIndependent/ParseHelper.cpp +++ b/glslang/MachineIndependent/ParseHelper.cpp @@ -2313,7 +2313,7 @@ bool TParseContext::constructorError(const TSourceLoc& loc, TIntermNode* node, T // At least the dimensionalities have to match. if (! function[0].type->isArray() || arraySizes.getNumDims() != function[0].type->getArraySizes().getNumDims() + 1) { - error(loc, "array constructor argument not correct type to construct array element", "constructior", ""); + error(loc, "array constructor argument not correct type to construct array element", "constructor", ""); return true; } diff --git a/hlsl/hlslParseHelper.cpp b/hlsl/hlslParseHelper.cpp index b40546ef..3f73a6fb 100755 --- a/hlsl/hlslParseHelper.cpp +++ b/hlsl/hlslParseHelper.cpp @@ -3381,7 +3381,7 @@ bool HlslParseContext::constructorError(const TSourceLoc& loc, TIntermNode* /*no // At least the dimensionalities have to match. if (! function[0].type->isArray() || arraySizes.getNumDims() != function[0].type->getArraySizes().getNumDims() + 1) { - error(loc, "array constructor argument not correct type to construct array element", "constructior", ""); + error(loc, "array constructor argument not correct type to construct array element", "constructor", ""); return true; } -- cgit v1.2.3 From 5307eb2d1b0227f54237154a58c0fc61cad8e80c Mon Sep 17 00:00:00 2001 From: John Kessenich Date: Sun, 27 Nov 2016 17:30:14 -0700 Subject: Non-functional: Change a bunch of 0 to nullptr. --- glslang/Include/revision.h | 2 +- glslang/MachineIndependent/Intermediate.cpp | 86 ++++++++++++++--------------- 2 files changed, 44 insertions(+), 44 deletions(-) diff --git a/glslang/Include/revision.h b/glslang/Include/revision.h index 2cfdada1..21df38d8 100644 --- a/glslang/Include/revision.h +++ b/glslang/Include/revision.h @@ -2,5 +2,5 @@ // For the version, it uses the latest git tag followed by the number of commits. // For the date, it uses the current date (when then script is run). -#define GLSLANG_REVISION "Overload400-PrecQual.1662" +#define GLSLANG_REVISION "Overload400-PrecQual.1663" #define GLSLANG_DATE "27-Nov-2016" diff --git a/glslang/MachineIndependent/Intermediate.cpp b/glslang/MachineIndependent/Intermediate.cpp index 9c2590fd..303c0ad2 100644 --- a/glslang/MachineIndependent/Intermediate.cpp +++ b/glslang/MachineIndependent/Intermediate.cpp @@ -114,7 +114,7 @@ TIntermTyped* TIntermediate::addBinaryMath(TOperator op, TIntermTyped* left, TIn { // No operations work on blocks if (left->getType().getBasicType() == EbtBlock || right->getType().getBasicType() == EbtBlock) - return 0; + return nullptr; // Try converting the children's base types to compatible types. TIntermTyped* child = addConversion(op, left->getType(), right); @@ -125,7 +125,7 @@ TIntermTyped* TIntermediate::addBinaryMath(TOperator op, TIntermTyped* left, TIn if (child) left = child; else - return 0; + return nullptr; } // Convert the children's type shape to be compatible. @@ -275,10 +275,10 @@ TIntermTyped* TIntermediate::addIndex(TOperator op, TIntermTyped* base, TIntermT TIntermTyped* TIntermediate::addUnaryMath(TOperator op, TIntermTyped* child, TSourceLoc loc) { if (child == 0) - return 0; + return nullptr; if (child->getType().getBasicType() == EbtBlock) - return 0; + return nullptr; switch (op) { case EOpLogicalNot: @@ -287,7 +287,7 @@ TIntermTyped* TIntermediate::addUnaryMath(TOperator op, TIntermTyped* child, TSo } if (child->getType().getBasicType() != EbtBool || child->getType().isMatrix() || child->getType().isArray() || child->getType().isVector()) { - return 0; + return nullptr; } break; @@ -297,7 +297,7 @@ TIntermTyped* TIntermediate::addUnaryMath(TOperator op, TIntermTyped* child, TSo case EOpPreDecrement: case EOpNegative: if (child->getType().getBasicType() == EbtStruct || child->getType().isArray()) - return 0; + return nullptr; default: break; // some compilers want this } @@ -325,8 +325,8 @@ TIntermTyped* TIntermediate::addUnaryMath(TOperator op, TIntermTyped* child, TSo child->getMatrixRows(), child->isVector()), child); - if (child == 0) - return 0; + if (child == nullptr) + return nullptr; } // @@ -379,8 +379,8 @@ TIntermTyped* TIntermediate::addBuiltInFunctionCall(const TSourceLoc& loc, TOper // including constness (which would differ from the prototype). // TIntermTyped* child = childNode->getAsTyped(); - if (child == 0) - return 0; + if (child == nullptr) + return nullptr; if (child->getAsConstantUnion()) { TIntermTyped* folded = child->getAsConstantUnion()->fold(op, returnType); @@ -416,7 +416,7 @@ TIntermTyped* TIntermediate::setAggregateOperator(TIntermNode* node, TOperator o // if (node) { aggNode = node->getAsAggregate(); - if (aggNode == 0 || aggNode->getOp() != EOpNull) { + if (aggNode == nullptr || aggNode->getOp() != EOpNull) { // // Make an aggregate containing this node. // @@ -451,7 +451,7 @@ TIntermTyped* TIntermediate::setAggregateOperator(TIntermNode* node, TOperator o // Generally, this is focused on basic type conversion, not shape conversion. // See addShapeConversion(). // -// Return 0 if a conversion can't be done. +// Return nullptr if a conversion can't be done. // TIntermTyped* TIntermediate::addConversion(TOperator op, const TType& type, TIntermTyped* node) const { @@ -460,7 +460,7 @@ TIntermTyped* TIntermediate::addConversion(TOperator op, const TType& type, TInt // switch (node->getBasicType()) { case EbtVoid: - return 0; + return nullptr; case EbtAtomicUint: case EbtSampler: // opaque types can be passed to functions @@ -478,7 +478,7 @@ TIntermTyped* TIntermediate::addConversion(TOperator op, const TType& type, TInt break; // otherwise, opaque types can't even be operated on, let alone converted - return 0; + return nullptr; default: break; } @@ -489,11 +489,11 @@ TIntermTyped* TIntermediate::addConversion(TOperator op, const TType& type, TInt // If one's a structure, then no conversions. if (type.isStruct() || node->isStruct()) - return 0; + return nullptr; // If one's an array, then no conversions. if (type.isArray() || node->getType().isArray()) - return 0; + return nullptr; // Note: callers are responsible for other aspects of shape, // like vector and matrix sizes. @@ -584,7 +584,7 @@ TIntermTyped* TIntermediate::addConversion(TOperator op, const TType& type, TInt if (canImplicitlyPromote(node->getType().getBasicType(), type.getBasicType(), op)) promoteTo = type.getBasicType(); else - return 0; + return nullptr; break; @@ -606,7 +606,7 @@ TIntermTyped* TIntermediate::addConversion(TOperator op, const TType& type, TInt return node; else - return 0; + return nullptr; default: // default is to require a match; all exceptions should have case statements above @@ -614,7 +614,7 @@ TIntermTyped* TIntermediate::addConversion(TOperator op, const TType& type, TInt if (type.getBasicType() == node->getType().getBasicType()) return node; else - return 0; + return nullptr; } if (node->getAsConstantUnion()) @@ -623,7 +623,7 @@ TIntermTyped* TIntermediate::addConversion(TOperator op, const TType& type, TInt // // Add a new newNode for the conversion. // - TIntermUnary* newNode = 0; + TIntermUnary* newNode = nullptr; TOperator newOp = EOpNull; @@ -642,7 +642,7 @@ TIntermTyped* TIntermediate::addConversion(TOperator op, const TType& type, TInt case EbtInt64: newOp = EOpConvInt64ToDouble; break; case EbtUint64: newOp = EOpConvUint64ToDouble; break; default: - return 0; + return nullptr; } break; case EbtFloat: @@ -657,7 +657,7 @@ TIntermTyped* TIntermediate::addConversion(TOperator op, const TType& type, TInt case EbtInt64: newOp = EOpConvInt64ToFloat; break; case EbtUint64: newOp = EOpConvUint64ToFloat; break; default: - return 0; + return nullptr; } break; #ifdef AMD_EXTENSIONS @@ -671,7 +671,7 @@ TIntermTyped* TIntermediate::addConversion(TOperator op, const TType& type, TInt case EbtInt64: newOp = EOpConvInt64ToFloat16; break; case EbtUint64: newOp = EOpConvUint64ToFloat16; break; default: - return 0; + return nullptr; } break; #endif @@ -687,7 +687,7 @@ TIntermTyped* TIntermediate::addConversion(TOperator op, const TType& type, TInt case EbtInt64: newOp = EOpConvInt64ToBool; break; case EbtUint64: newOp = EOpConvUint64ToBool; break; default: - return 0; + return nullptr; } break; case EbtInt: @@ -702,7 +702,7 @@ TIntermTyped* TIntermediate::addConversion(TOperator op, const TType& type, TInt case EbtInt64: newOp = EOpConvInt64ToInt; break; case EbtUint64: newOp = EOpConvUint64ToInt; break; default: - return 0; + return nullptr; } break; case EbtUint: @@ -717,7 +717,7 @@ TIntermTyped* TIntermediate::addConversion(TOperator op, const TType& type, TInt case EbtInt64: newOp = EOpConvInt64ToUint; break; case EbtUint64: newOp = EOpConvUint64ToUint; break; default: - return 0; + return nullptr; } break; case EbtInt64: @@ -732,7 +732,7 @@ TIntermTyped* TIntermediate::addConversion(TOperator op, const TType& type, TInt #endif case EbtUint64: newOp = EOpConvUint64ToInt64; break; default: - return 0; + return nullptr; } break; case EbtUint64: @@ -747,11 +747,11 @@ TIntermTyped* TIntermediate::addConversion(TOperator op, const TType& type, TInt #endif case EbtInt64: newOp = EOpConvInt64ToUint64; break; default: - return 0; + return nullptr; } break; default: - return 0; + return nullptr; } TType newType(promoteTo, EvqTemporary, node->getVectorSize(), node->getMatrixCols(), node->getMatrixRows()); @@ -1123,15 +1123,15 @@ TOperator TIntermediate::mapTypeToConstructorOp(const TType& type) const // Safe way to combine two nodes into an aggregate. Works with null pointers, // a node that's not a aggregate yet, etc. // -// Returns the resulting aggregate, unless 0 was passed in for +// Returns the resulting aggregate, unless nullptr was passed in for // both existing nodes. // TIntermAggregate* TIntermediate::growAggregate(TIntermNode* left, TIntermNode* right) { - if (left == 0 && right == 0) - return 0; + if (left == nullptr && right == nullptr) + return nullptr; - TIntermAggregate* aggNode = 0; + TIntermAggregate* aggNode = nullptr; if (left) aggNode = left->getAsAggregate(); if (! aggNode || aggNode->getOp() != EOpNull) { @@ -1158,12 +1158,12 @@ TIntermAggregate* TIntermediate::growAggregate(TIntermNode* left, TIntermNode* r // // Turn an existing node into an aggregate. // -// Returns an aggregate, unless 0 was passed in for the existing node. +// Returns an aggregate, unless nullptr was passed in for the existing node. // TIntermAggregate* TIntermediate::makeAggregate(TIntermNode* node) { - if (node == 0) - return 0; + if (node == nullptr) + return nullptr; TIntermAggregate* aggNode = new TIntermAggregate; aggNode->getSequence().push_back(node); @@ -1174,8 +1174,8 @@ TIntermAggregate* TIntermediate::makeAggregate(TIntermNode* node) TIntermAggregate* TIntermediate::makeAggregate(TIntermNode* node, const TSourceLoc& loc) { - if (node == 0) - return 0; + if (node == nullptr) + return nullptr; TIntermAggregate* aggNode = new TIntermAggregate; aggNode->getSequence().push_back(node); @@ -1237,7 +1237,7 @@ TIntermTyped* TIntermediate::addMethod(TIntermTyped* object, const TType& type, // a true path, and a false path. The two paths are specified // as separate parameters. // -// Returns the selection node created, or 0 if one could not be. +// Returns the selection node created, or nullptr if one could not be. // TIntermTyped* TIntermediate::addSelection(TIntermTyped* cond, TIntermTyped* trueBlock, TIntermTyped* falseBlock, const TSourceLoc& loc) { @@ -1252,12 +1252,12 @@ TIntermTyped* TIntermediate::addSelection(TIntermTyped* cond, TIntermTyped* true if (child) trueBlock = child; else - return 0; + return nullptr; } // After conversion, types have to match. if (falseBlock->getType() != trueBlock->getType()) - return 0; + return nullptr; // // See if all the operands are constant, then fold it otherwise not. @@ -1431,7 +1431,7 @@ TIntermAggregate* TIntermediate::addForLoop(TIntermNode* body, TIntermNode* init // TIntermBranch* TIntermediate::addBranch(TOperator branchOp, const TSourceLoc& loc) { - return addBranch(branchOp, 0, loc); + return addBranch(branchOp, nullptr, loc); } TIntermBranch* TIntermediate::addBranch(TOperator branchOp, TIntermTyped* expression, const TSourceLoc& loc) @@ -1448,7 +1448,7 @@ TIntermBranch* TIntermediate::addBranch(TOperator branchOp, TIntermTyped* expres // bool TIntermediate::postProcess(TIntermNode* root, EShLanguage /*language*/) { - if (root == 0) + if (root == nullptr) return true; // Finish off the top-level sequence -- cgit v1.2.3 From 1c98904014a258e446b5dc0edd26607a7085c17b Mon Sep 17 00:00:00 2001 From: John Kessenich Date: Sun, 27 Nov 2016 17:32:19 -0700 Subject: Fix crash by returning early from finalCheck() if there is no tree to process. --- glslang/Include/revision.h | 2 +- glslang/MachineIndependent/linkValidate.cpp | 3 +++ 2 files changed, 4 insertions(+), 1 deletion(-) diff --git a/glslang/Include/revision.h b/glslang/Include/revision.h index 21df38d8..66fec1a3 100644 --- a/glslang/Include/revision.h +++ b/glslang/Include/revision.h @@ -2,5 +2,5 @@ // For the version, it uses the latest git tag followed by the number of commits. // For the date, it uses the current date (when then script is run). -#define GLSLANG_REVISION "Overload400-PrecQual.1663" +#define GLSLANG_REVISION "Overload400-PrecQual.1664" #define GLSLANG_DATE "27-Nov-2016" diff --git a/glslang/MachineIndependent/linkValidate.cpp b/glslang/MachineIndependent/linkValidate.cpp index bc473abc..050fdae0 100644 --- a/glslang/MachineIndependent/linkValidate.cpp +++ b/glslang/MachineIndependent/linkValidate.cpp @@ -377,6 +377,9 @@ void TIntermediate::mergeErrorCheck(TInfoSink& infoSink, const TIntermSymbol& sy // void TIntermediate::finalCheck(TInfoSink& infoSink) { + if (getTreeRoot() == nullptr) + return; + if (numEntryPoints < 1) { if (source == EShSourceGlsl) error(infoSink, "Missing entry point: Each stage requires one entry point"); -- cgit v1.2.3 From 98ad48532157bbaa1cffc0625cbf0b514aa3ad74 Mon Sep 17 00:00:00 2001 From: John Kessenich Date: Sun, 27 Nov 2016 17:39:07 -0700 Subject: HLSL: Support {...} initializer lists that are too short. --- Test/baseResults/hlsl.partialInit.frag.out | 310 +++++++++++++++++++++++++ Test/hlsl.partialInit.frag | 22 ++ glslang/Include/revision.h | 2 +- glslang/MachineIndependent/Intermediate.cpp | 12 + glslang/MachineIndependent/localintermediate.h | 1 + gtests/Hlsl.FromFile.cpp | 1 + hlsl/hlslGrammar.cpp | 12 +- hlsl/hlslParseHelper.cpp | 45 +++- hlsl/hlslParseHelper.h | 1 + 9 files changed, 397 insertions(+), 9 deletions(-) create mode 100755 Test/baseResults/hlsl.partialInit.frag.out create mode 100755 Test/hlsl.partialInit.frag diff --git a/Test/baseResults/hlsl.partialInit.frag.out b/Test/baseResults/hlsl.partialInit.frag.out new file mode 100755 index 00000000..bac92378 --- /dev/null +++ b/Test/baseResults/hlsl.partialInit.frag.out @@ -0,0 +1,310 @@ +hlsl.partialInit.frag +Shader version: 450 +gl_FragCoord origin is upper left +0:? Sequence +0:8 Sequence +0:8 move second child to first child (temp 4-component vector of float) +0:8 'gv' (global 4-component vector of float) +0:8 Constant: +0:8 0.000000 +0:8 0.000000 +0:8 1.000000 +0:8 0.000000 +0:9 Sequence +0:9 move second child to first child (temp 3-element array of float) +0:9 'gfa' (global 3-element array of float) +0:9 Constant: +0:9 0.000000 +0:9 0.000000 +0:9 0.000000 +0:12 Function Definition: PixelShaderFunction(vf4; (temp structure{temp int a, temp float b, temp bool c, temp 4-component vector of float v}) +0:12 Function Parameters: +0:12 'input' (layout(location=0 ) in 4-component vector of float) +0:? Sequence +0:13 Sequence +0:13 move second child to first child (temp structure{temp int a, temp float b, temp bool c, temp 4-component vector of float v}) +0:13 'o2' (temp structure{temp int a, temp float b, temp bool c, temp 4-component vector of float v}) +0:13 Constant: +0:13 3 (const int) +0:13 0.000000 +0:13 false (const bool) +0:13 0.000000 +0:13 0.000000 +0:13 0.000000 +0:13 0.000000 +0:15 move second child to first child (temp 4-component vector of float) +0:15 v: direct index for structure (temp 4-component vector of float) +0:15 'o4' (temp structure{temp int a, temp float b, temp bool c, temp 4-component vector of float v}) +0:15 Constant: +0:15 3 (const int) +0:15 vector-scale (temp 4-component vector of float) +0:15 'gv' (global 4-component vector of float) +0:15 direct index (temp float) +0:15 'gfa' (global 3-element array of float) +0:15 Constant: +0:15 2 (const int) +0:16 Sequence +0:16 move second child to first child (temp structure{temp int a, temp float b, temp bool c, temp 4-component vector of float v}) +0:16 'o1' (temp structure{temp int a, temp float b, temp bool c, temp 4-component vector of float v}) +0:16 Constant: +0:16 0 (const int) +0:16 0.000000 +0:16 false (const bool) +0:16 0.000000 +0:16 0.000000 +0:16 0.000000 +0:16 0.000000 +0:19 move second child to first child (temp bool) +0:19 c: direct index for structure (temp bool) +0:19 'o4' (temp structure{temp int a, temp float b, temp bool c, temp 4-component vector of float v}) +0:19 Constant: +0:19 2 (const int) +0:19 c: direct index for structure (temp bool) +0:19 'o1' (temp structure{temp int a, temp float b, temp bool c, temp 4-component vector of float v}) +0:19 Constant: +0:19 2 (const int) +0:21 Sequence +0:21 Sequence +0:21 move second child to first child (temp int) +0:? 'a' (layout(location=0 ) out int) +0:21 a: direct index for structure (temp int) +0:21 'o4' (temp structure{temp int a, temp float b, temp bool c, temp 4-component vector of float v}) +0:21 Constant: +0:21 0 (const int) +0:21 move second child to first child (temp float) +0:? 'b' (layout(location=1 ) out float) +0:21 b: direct index for structure (temp float) +0:21 'o4' (temp structure{temp int a, temp float b, temp bool c, temp 4-component vector of float v}) +0:21 Constant: +0:21 1 (const int) +0:21 move second child to first child (temp bool) +0:? 'c' (layout(location=2 ) out bool) +0:21 c: direct index for structure (temp bool) +0:21 'o4' (temp structure{temp int a, temp float b, temp bool c, temp 4-component vector of float v}) +0:21 Constant: +0:21 2 (const int) +0:21 move second child to first child (temp 4-component vector of float) +0:? 'v' (layout(location=3 ) out 4-component vector of float) +0:21 v: direct index for structure (temp 4-component vector of float) +0:21 'o4' (temp structure{temp int a, temp float b, temp bool c, temp 4-component vector of float v}) +0:21 Constant: +0:21 3 (const int) +0:21 Branch: Return +0:? Linker Objects +0:? 'a' (layout(location=0 ) out int) +0:? 'b' (layout(location=1 ) out float) +0:? 'c' (layout(location=2 ) out bool) +0:? 'v' (layout(location=3 ) out 4-component vector of float) +0:? 'input' (layout(location=0 ) in 4-component vector of float) +0:? 'gv' (global 4-component vector of float) +0:? 'gfa' (global 3-element array of float) + + +Linked fragment stage: + + +Shader version: 450 +gl_FragCoord origin is upper left +0:? Sequence +0:8 Sequence +0:8 move second child to first child (temp 4-component vector of float) +0:8 'gv' (global 4-component vector of float) +0:8 Constant: +0:8 0.000000 +0:8 0.000000 +0:8 1.000000 +0:8 0.000000 +0:9 Sequence +0:9 move second child to first child (temp 3-element array of float) +0:9 'gfa' (global 3-element array of float) +0:9 Constant: +0:9 0.000000 +0:9 0.000000 +0:9 0.000000 +0:12 Function Definition: PixelShaderFunction(vf4; (temp structure{temp int a, temp float b, temp bool c, temp 4-component vector of float v}) +0:12 Function Parameters: +0:12 'input' (layout(location=0 ) in 4-component vector of float) +0:? Sequence +0:13 Sequence +0:13 move second child to first child (temp structure{temp int a, temp float b, temp bool c, temp 4-component vector of float v}) +0:13 'o2' (temp structure{temp int a, temp float b, temp bool c, temp 4-component vector of float v}) +0:13 Constant: +0:13 3 (const int) +0:13 0.000000 +0:13 false (const bool) +0:13 0.000000 +0:13 0.000000 +0:13 0.000000 +0:13 0.000000 +0:15 move second child to first child (temp 4-component vector of float) +0:15 v: direct index for structure (temp 4-component vector of float) +0:15 'o4' (temp structure{temp int a, temp float b, temp bool c, temp 4-component vector of float v}) +0:15 Constant: +0:15 3 (const int) +0:15 vector-scale (temp 4-component vector of float) +0:15 'gv' (global 4-component vector of float) +0:15 direct index (temp float) +0:15 'gfa' (global 3-element array of float) +0:15 Constant: +0:15 2 (const int) +0:16 Sequence +0:16 move second child to first child (temp structure{temp int a, temp float b, temp bool c, temp 4-component vector of float v}) +0:16 'o1' (temp structure{temp int a, temp float b, temp bool c, temp 4-component vector of float v}) +0:16 Constant: +0:16 0 (const int) +0:16 0.000000 +0:16 false (const bool) +0:16 0.000000 +0:16 0.000000 +0:16 0.000000 +0:16 0.000000 +0:19 move second child to first child (temp bool) +0:19 c: direct index for structure (temp bool) +0:19 'o4' (temp structure{temp int a, temp float b, temp bool c, temp 4-component vector of float v}) +0:19 Constant: +0:19 2 (const int) +0:19 c: direct index for structure (temp bool) +0:19 'o1' (temp structure{temp int a, temp float b, temp bool c, temp 4-component vector of float v}) +0:19 Constant: +0:19 2 (const int) +0:21 Sequence +0:21 Sequence +0:21 move second child to first child (temp int) +0:? 'a' (layout(location=0 ) out int) +0:21 a: direct index for structure (temp int) +0:21 'o4' (temp structure{temp int a, temp float b, temp bool c, temp 4-component vector of float v}) +0:21 Constant: +0:21 0 (const int) +0:21 move second child to first child (temp float) +0:? 'b' (layout(location=1 ) out float) +0:21 b: direct index for structure (temp float) +0:21 'o4' (temp structure{temp int a, temp float b, temp bool c, temp 4-component vector of float v}) +0:21 Constant: +0:21 1 (const int) +0:21 move second child to first child (temp bool) +0:? 'c' (layout(location=2 ) out bool) +0:21 c: direct index for structure (temp bool) +0:21 'o4' (temp structure{temp int a, temp float b, temp bool c, temp 4-component vector of float v}) +0:21 Constant: +0:21 2 (const int) +0:21 move second child to first child (temp 4-component vector of float) +0:? 'v' (layout(location=3 ) out 4-component vector of float) +0:21 v: direct index for structure (temp 4-component vector of float) +0:21 'o4' (temp structure{temp int a, temp float b, temp bool c, temp 4-component vector of float v}) +0:21 Constant: +0:21 3 (const int) +0:21 Branch: Return +0:? Linker Objects +0:? 'a' (layout(location=0 ) out int) +0:? 'b' (layout(location=1 ) out float) +0:? 'c' (layout(location=2 ) out bool) +0:? 'v' (layout(location=3 ) out 4-component vector of float) +0:? 'input' (layout(location=0 ) in 4-component vector of float) +0:? 'gv' (global 4-component vector of float) +0:? 'gfa' (global 3-element array of float) + +// Module Version 10000 +// Generated by (magic number): 80001 +// Id's are bound by 66 + + Capability Shader + 1: ExtInstImport "GLSL.std.450" + MemoryModel Logical GLSL450 + EntryPoint Fragment 4 "PixelShaderFunction" 45 50 56 60 65 + ExecutionMode 4 OriginUpperLeft + Name 4 "PixelShaderFunction" + Name 9 "gv" + Name 17 "gfa" + Name 21 "outs" + MemberName 21(outs) 0 "a" + MemberName 21(outs) 1 "b" + MemberName 21(outs) 2 "c" + MemberName 21(outs) 3 "v" + Name 23 "o2" + Name 28 "o4" + Name 37 "o1" + Name 45 "a" + Name 50 "b" + Name 56 "c" + Name 60 "v" + Name 65 "input" + Decorate 45(a) Location 0 + Decorate 50(b) Location 1 + Decorate 56(c) Location 2 + Decorate 60(v) Location 3 + Decorate 65(input) Location 0 + 2: TypeVoid + 3: TypeFunction 2 + 6: TypeFloat 32 + 7: TypeVector 6(float) 4 + 8: TypePointer Private 7(fvec4) + 9(gv): 8(ptr) Variable Private + 10: 6(float) Constant 0 + 11: 6(float) Constant 1065353216 + 12: 7(fvec4) ConstantComposite 10 10 11 10 + 13: TypeInt 32 0 + 14: 13(int) Constant 3 + 15: TypeArray 6(float) 14 + 16: TypePointer Private 15 + 17(gfa): 16(ptr) Variable Private + 18: 15 ConstantComposite 10 10 10 + 19: TypeInt 32 1 + 20: TypeBool + 21(outs): TypeStruct 19(int) 6(float) 20(bool) 7(fvec4) + 22: TypePointer Function 21(outs) + 24: 19(int) Constant 3 + 25: 20(bool) ConstantFalse + 26: 7(fvec4) ConstantComposite 10 10 10 10 + 27: 21(outs) ConstantComposite 24 10 25 26 + 30: 19(int) Constant 2 + 31: TypePointer Private 6(float) + 35: TypePointer Function 7(fvec4) + 38: 19(int) Constant 0 + 39: 21(outs) ConstantComposite 38 10 25 26 + 40: TypePointer Function 20(bool) + 44: TypePointer Output 19(int) + 45(a): 44(ptr) Variable Output + 46: TypePointer Function 19(int) + 49: TypePointer Output 6(float) + 50(b): 49(ptr) Variable Output + 51: 19(int) Constant 1 + 52: TypePointer Function 6(float) + 55: TypePointer Output 20(bool) + 56(c): 55(ptr) Variable Output + 59: TypePointer Output 7(fvec4) + 60(v): 59(ptr) Variable Output + 64: TypePointer Input 7(fvec4) + 65(input): 64(ptr) Variable Input +4(PixelShaderFunction): 2 Function None 3 + 5: Label + 23(o2): 22(ptr) Variable Function + 28(o4): 22(ptr) Variable Function + 37(o1): 22(ptr) Variable Function + Store 9(gv) 12 + Store 17(gfa) 18 + Store 23(o2) 27 + 29: 7(fvec4) Load 9(gv) + 32: 31(ptr) AccessChain 17(gfa) 30 + 33: 6(float) Load 32 + 34: 7(fvec4) VectorTimesScalar 29 33 + 36: 35(ptr) AccessChain 28(o4) 24 + Store 36 34 + Store 37(o1) 39 + 41: 40(ptr) AccessChain 37(o1) 30 + 42: 20(bool) Load 41 + 43: 40(ptr) AccessChain 28(o4) 30 + Store 43 42 + 47: 46(ptr) AccessChain 28(o4) 38 + 48: 19(int) Load 47 + Store 45(a) 48 + 53: 52(ptr) AccessChain 28(o4) 51 + 54: 6(float) Load 53 + Store 50(b) 54 + 57: 40(ptr) AccessChain 28(o4) 30 + 58: 20(bool) Load 57 + Store 56(c) 58 + 61: 35(ptr) AccessChain 28(o4) 24 + 62: 7(fvec4) Load 61 + Store 60(v) 62 + Return + FunctionEnd diff --git a/Test/hlsl.partialInit.frag b/Test/hlsl.partialInit.frag new file mode 100755 index 00000000..b5b0a580 --- /dev/null +++ b/Test/hlsl.partialInit.frag @@ -0,0 +1,22 @@ +struct outs { + int a; + float b; + bool c; + float4 v; +}; + +static float4 gv = {0,0,1}; +static float gfa[3] = {0,0}; + +outs PixelShaderFunction(float4 input) : COLOR0 +{ + outs o2 = { 3 }; + outs o4; + o4.v = gv * gfa[2]; + outs o1 = { }; +// outs o3 = (outs)0; +// o4 = (outs)0; + o4.c = o1.c; + + return o4; +} \ No newline at end of file diff --git a/glslang/Include/revision.h b/glslang/Include/revision.h index 66fec1a3..4d1ea9df 100644 --- a/glslang/Include/revision.h +++ b/glslang/Include/revision.h @@ -2,5 +2,5 @@ // For the version, it uses the latest git tag followed by the number of commits. // For the date, it uses the current date (when then script is run). -#define GLSLANG_REVISION "Overload400-PrecQual.1664" +#define GLSLANG_REVISION "Overload400-PrecQual.1665" #define GLSLANG_DATE "27-Nov-2016" diff --git a/glslang/MachineIndependent/Intermediate.cpp b/glslang/MachineIndependent/Intermediate.cpp index 303c0ad2..71b4b71a 100644 --- a/glslang/MachineIndependent/Intermediate.cpp +++ b/glslang/MachineIndependent/Intermediate.cpp @@ -858,6 +858,7 @@ bool TIntermediate::canImplicitlyPromote(TBasicType from, TBasicType to, TOperat case EOpLogicalAnd: case EOpLogicalOr: case EOpLogicalXor: + case EOpConstructStruct: return true; default: break; @@ -1184,6 +1185,17 @@ TIntermAggregate* TIntermediate::makeAggregate(TIntermNode* node, const TSourceL return aggNode; } +// +// Make an aggregate with an empty sequence. +// +TIntermAggregate* TIntermediate::makeAggregate(const TSourceLoc& loc) +{ + TIntermAggregate* aggNode = new TIntermAggregate; + aggNode->setLoc(loc); + + return aggNode; +} + // // For "if" test nodes. There are three children; a condition, // a true path, and a false path. The two paths are in the diff --git a/glslang/MachineIndependent/localintermediate.h b/glslang/MachineIndependent/localintermediate.h index e8608240..9ad50c74 100644 --- a/glslang/MachineIndependent/localintermediate.h +++ b/glslang/MachineIndependent/localintermediate.h @@ -221,6 +221,7 @@ public: TIntermAggregate* growAggregate(TIntermNode* left, TIntermNode* right, const TSourceLoc&); TIntermAggregate* makeAggregate(TIntermNode* node); TIntermAggregate* makeAggregate(TIntermNode* node, const TSourceLoc&); + TIntermAggregate* makeAggregate(const TSourceLoc&); TIntermTyped* setAggregateOperator(TIntermNode*, TOperator, const TType& type, TSourceLoc); bool areAllChildConst(TIntermAggregate* aggrNode); TIntermNode* addSelection(TIntermTyped* cond, TIntermNodePair code, const TSourceLoc&); diff --git a/gtests/Hlsl.FromFile.cpp b/gtests/Hlsl.FromFile.cpp index 8c611f20..429f445f 100644 --- a/gtests/Hlsl.FromFile.cpp +++ b/gtests/Hlsl.FromFile.cpp @@ -157,6 +157,7 @@ INSTANTIATE_TEST_CASE_P( {"hlsl.numericsuffixes.frag", "main"}, {"hlsl.numthreads.comp", "main_aux1"}, {"hlsl.overload.frag", "PixelShaderFunction"}, + {"hlsl.partialInit.frag", "PixelShaderFunction"}, {"hlsl.pp.line.frag", "main"}, {"hlsl.precise.frag", "main"}, {"hlsl.promote.binary.frag", "main"}, diff --git a/hlsl/hlslGrammar.cpp b/hlsl/hlslGrammar.cpp index b202dca6..10dfcc83 100755 --- a/hlsl/hlslGrammar.cpp +++ b/hlsl/hlslGrammar.cpp @@ -1896,7 +1896,8 @@ bool HlslGrammar::acceptExpression(TIntermTyped*& node) } // initializer -// : LEFT_BRACE initializer_list RIGHT_BRACE +// : LEFT_BRACE RIGHT_BRACE +// | LEFT_BRACE initializer_list RIGHT_BRACE // // initializer_list // : assignment_expression COMMA assignment_expression COMMA ... @@ -1907,8 +1908,15 @@ bool HlslGrammar::acceptInitializer(TIntermTyped*& node) if (! acceptTokenClass(EHTokLeftBrace)) return false; - // initializer_list + // RIGHT_BRACE TSourceLoc loc = token.loc; + if (acceptTokenClass(EHTokRightBrace)) { + // a zero-length initializer list + node = intermediate.makeAggregate(loc); + return true; + } + + // initializer_list node = nullptr; do { // assignment_expression diff --git a/hlsl/hlslParseHelper.cpp b/hlsl/hlslParseHelper.cpp index 3f73a6fb..0ed259a1 100755 --- a/hlsl/hlslParseHelper.cpp +++ b/hlsl/hlslParseHelper.cpp @@ -4594,7 +4594,8 @@ TIntermNode* HlslParseContext::executeInitializer(const TSourceLoc& loc, TInterm // constructor-style subtree, allowing the rest of the code to operate // identically for both kinds of initializers. // - initializer = convertInitializerList(loc, variable->getType(), initializer); + if (initializer->getAsAggregate() && initializer->getAsAggregate()->getOp() == EOpNull) + initializer = convertInitializerList(loc, variable->getType(), initializer); if (! initializer) { // error recovery; don't leave const without constant values if (qualifier == EvqConst) @@ -4679,8 +4680,15 @@ TIntermTyped* HlslParseContext::convertInitializerList(const TSourceLoc& loc, co // see if we have bottomed out in the tree within the initializer-list part TIntermAggregate* initList = initializer->getAsAggregate(); - if (! initList || initList->getOp() != EOpNull) - return initializer; + if (! initList || initList->getOp() != EOpNull) { + // We don't have a list, but if it's a scalar and the 'type' is a + // composite, we need to lengthen below to make it useful. + // Otherwise, this is an already formed object to initialize with. + if (type.isScalar() || !initializer->getType().isScalar()) + return initializer; + else + initList = intermediate.makeAggregate(initializer); + } // Of the initializer-list set of nodes, need to process bottom up, // so recurse deep, then process on the way up. @@ -4694,7 +4702,8 @@ TIntermTyped* HlslParseContext::convertInitializerList(const TSourceLoc& loc, co arrayType.newArraySizes(*type.getArraySizes()); // but get a fresh copy of the array information, to edit below // edit array sizes to fill in unsized dimensions - arrayType.changeOuterArraySize((int)initList->getSequence().size()); + if (type.isImplicitlySizedArray()) + arrayType.changeOuterArraySize((int)initList->getSequence().size()); TIntermTyped* firstInit = initList->getSequence()[0]->getAsTyped(); if (arrayType.isArrayOfArrays() && firstInit->getType().isArray() && arrayType.getArraySizes().getNumDims() == firstInit->getType().getArraySizes()->getNumDims() + 1) { @@ -4704,8 +4713,12 @@ TIntermTyped* HlslParseContext::convertInitializerList(const TSourceLoc& loc, co } } + // lengthen list to be long enough + lengthenList(loc, initList->getSequence(), arrayType.getOuterArraySize()); + + // recursively process each element TType elementType(arrayType, 0); // dereferenced type - for (size_t i = 0; i < initList->getSequence().size(); ++i) { + for (int i = 0; i < arrayType.getOuterArraySize(); ++i) { initList->getSequence()[i] = convertInitializerList(loc, elementType, initList->getSequence()[i]->getAsTyped()); if (initList->getSequence()[i] == nullptr) return nullptr; @@ -4713,6 +4726,9 @@ TIntermTyped* HlslParseContext::convertInitializerList(const TSourceLoc& loc, co return addConstructor(loc, initList, arrayType); } else if (type.isStruct()) { + // lengthen list to be long enough + lengthenList(loc, initList->getSequence(), type.getStruct()->size()); + if (type.getStruct()->size() != initList->getSequence().size()) { error(loc, "wrong number of structure members", "initializer list", ""); return nullptr; @@ -4728,6 +4744,9 @@ TIntermTyped* HlslParseContext::convertInitializerList(const TSourceLoc& loc, co // a series of rows and columns. We can just use the list directly as // a constructor; no further processing needed. } else { + // lengthen list to be long enough + lengthenList(loc, initList->getSequence(), type.getMatrixCols()); + if (type.getMatrixCols() != (int)initList->getSequence().size()) { error(loc, "wrong number of matrix columns:", "initializer list", type.getCompleteString().c_str()); return nullptr; @@ -4740,6 +4759,10 @@ TIntermTyped* HlslParseContext::convertInitializerList(const TSourceLoc& loc, co } } } else if (type.isVector()) { + // lengthen list to be long enough + lengthenList(loc, initList->getSequence(), type.getVectorSize()); + + // error check; we're at bottom, so work is finished below if (type.getVectorSize() != (int)initList->getSequence().size()) { error(loc, "wrong vector size (or rows in a matrix column):", "initializer list", type.getCompleteString().c_str()); return nullptr; @@ -4749,7 +4772,7 @@ TIntermTyped* HlslParseContext::convertInitializerList(const TSourceLoc& loc, co error(loc, "scalar expected one element:", "initializer list", type.getCompleteString().c_str()); return nullptr; } - } else { + } else { error(loc, "unexpected initializer-list type:", "initializer list", type.getCompleteString().c_str()); return nullptr; } @@ -4761,9 +4784,19 @@ TIntermTyped* HlslParseContext::convertInitializerList(const TSourceLoc& loc, co emulatedConstructorArguments = initList->getSequence()[0]; else emulatedConstructorArguments = initList; + return addConstructor(loc, emulatedConstructorArguments, type); } +// Lengthen list to be long enough to cover any gap from the current list size +// to 'size'. If the list is longer, do nothing. +// The value to lengthen with is the default for short lists. +void HlslParseContext::lengthenList(const TSourceLoc& loc, TIntermSequence& list, int size) +{ + for (int c = (int)list.size(); c < size; ++c) + list.push_back(intermediate.addConstantUnion(0, loc)); +} + // // Test for the correctness of the parameters passed to various constructor functions // and also convert them to the right data type, if allowed and required. diff --git a/hlsl/hlslParseHelper.h b/hlsl/hlslParseHelper.h index 554243b6..ca937678 100755 --- a/hlsl/hlslParseHelper.h +++ b/hlsl/hlslParseHelper.h @@ -128,6 +128,7 @@ public: const TFunction* findFunction(const TSourceLoc& loc, const TFunction& call, bool& builtIn); void declareTypedef(const TSourceLoc&, TString& identifier, const TType&, TArraySizes* typeArray = 0); TIntermNode* declareVariable(const TSourceLoc&, TString& identifier, TType&, TIntermTyped* initializer = 0); + void lengthenList(const TSourceLoc&, TIntermSequence& list, int size); TIntermTyped* addConstructor(const TSourceLoc&, TIntermNode*, const TType&); TIntermTyped* constructAggregate(TIntermNode*, const TType&, int, const TSourceLoc&); TIntermTyped* constructBuiltIn(const TType&, TOperator, TIntermTyped*, const TSourceLoc&, bool subset); -- cgit v1.2.3 From f97f2ce603ae190aafd2d1335e5a417e7bd2d2fe Mon Sep 17 00:00:00 2001 From: John Kessenich Date: Sun, 27 Nov 2016 22:51:36 -0700 Subject: HLSL: Support the constructor idiom "(struct type)0". This highly leverages the previous commit to handle partial initializers. --- Test/baseResults/hlsl.partialInit.frag.out | 460 ++++++++++++++++++----------- Test/hlsl.partialInit.frag | 11 +- glslang/Include/revision.h | 2 +- hlsl/hlslParseHelper.cpp | 22 +- hlsl/hlslParseHelper.h | 1 + 5 files changed, 314 insertions(+), 182 deletions(-) diff --git a/Test/baseResults/hlsl.partialInit.frag.out b/Test/baseResults/hlsl.partialInit.frag.out index bac92378..5bf838a4 100755 --- a/Test/baseResults/hlsl.partialInit.frag.out +++ b/Test/baseResults/hlsl.partialInit.frag.out @@ -17,79 +17,124 @@ gl_FragCoord origin is upper left 0:9 0.000000 0:9 0.000000 0:9 0.000000 -0:12 Function Definition: PixelShaderFunction(vf4; (temp structure{temp int a, temp float b, temp bool c, temp 4-component vector of float v}) -0:12 Function Parameters: -0:12 'input' (layout(location=0 ) in 4-component vector of float) +0:18 Function Definition: PixelShaderFunction(vf4; (temp structure{temp int a, temp float b, temp bool c, temp 4-component vector of float v}) +0:18 Function Parameters: +0:18 'input' (layout(location=0 ) in 4-component vector of float) 0:? Sequence -0:13 Sequence -0:13 move second child to first child (temp structure{temp int a, temp float b, temp bool c, temp 4-component vector of float v}) -0:13 'o2' (temp structure{temp int a, temp float b, temp bool c, temp 4-component vector of float v}) -0:13 Constant: -0:13 3 (const int) -0:13 0.000000 -0:13 false (const bool) -0:13 0.000000 -0:13 0.000000 -0:13 0.000000 -0:13 0.000000 -0:15 move second child to first child (temp 4-component vector of float) -0:15 v: direct index for structure (temp 4-component vector of float) -0:15 'o4' (temp structure{temp int a, temp float b, temp bool c, temp 4-component vector of float v}) -0:15 Constant: -0:15 3 (const int) -0:15 vector-scale (temp 4-component vector of float) -0:15 'gv' (global 4-component vector of float) -0:15 direct index (temp float) -0:15 'gfa' (global 3-element array of float) -0:15 Constant: -0:15 2 (const int) -0:16 Sequence -0:16 move second child to first child (temp structure{temp int a, temp float b, temp bool c, temp 4-component vector of float v}) -0:16 'o1' (temp structure{temp int a, temp float b, temp bool c, temp 4-component vector of float v}) -0:16 Constant: -0:16 0 (const int) -0:16 0.000000 -0:16 false (const bool) -0:16 0.000000 -0:16 0.000000 -0:16 0.000000 -0:16 0.000000 -0:19 move second child to first child (temp bool) -0:19 c: direct index for structure (temp bool) -0:19 'o4' (temp structure{temp int a, temp float b, temp bool c, temp 4-component vector of float v}) +0:19 Sequence +0:19 move second child to first child (temp structure{temp int a, temp float b, temp bool c, temp 4-component vector of float v}) +0:19 'o2' (temp structure{temp int a, temp float b, temp bool c, temp 4-component vector of float v}) 0:19 Constant: -0:19 2 (const int) -0:19 c: direct index for structure (temp bool) -0:19 'o1' (temp structure{temp int a, temp float b, temp bool c, temp 4-component vector of float v}) -0:19 Constant: -0:19 2 (const int) -0:21 Sequence -0:21 Sequence -0:21 move second child to first child (temp int) +0:19 3 (const int) +0:19 0.000000 +0:19 false (const bool) +0:19 0.000000 +0:19 0.000000 +0:19 0.000000 +0:19 0.000000 +0:21 move second child to first child (temp 4-component vector of float) +0:21 v: direct index for structure (temp 4-component vector of float) +0:21 'o4' (temp structure{temp int a, temp float b, temp bool c, temp 4-component vector of float v}) +0:21 Constant: +0:21 3 (const int) +0:21 vector-scale (temp 4-component vector of float) +0:21 'gv' (global 4-component vector of float) +0:21 direct index (temp float) +0:21 'gfa' (global 3-element array of float) +0:21 Constant: +0:21 2 (const int) +0:22 Sequence +0:22 move second child to first child (temp structure{temp int a, temp float b, temp bool c, temp 4-component vector of float v}) +0:22 'o1' (temp structure{temp int a, temp float b, temp bool c, temp 4-component vector of float v}) +0:22 Constant: +0:22 0 (const int) +0:22 0.000000 +0:22 false (const bool) +0:22 0.000000 +0:22 0.000000 +0:22 0.000000 +0:22 0.000000 +0:23 Sequence +0:23 move second child to first child (temp structure{temp int a, temp float b, temp bool c, temp 4-component vector of float v}) +0:23 'o3' (temp structure{temp int a, temp float b, temp bool c, temp 4-component vector of float v}) +0:23 Constant: +0:23 0 (const int) +0:23 0.000000 +0:23 false (const bool) +0:23 0.000000 +0:23 0.000000 +0:23 0.000000 +0:23 0.000000 +0:24 move second child to first child (temp structure{temp int a, temp float b, temp bool c, temp 4-component vector of float v}) +0:24 'o4' (temp structure{temp int a, temp float b, temp bool c, temp 4-component vector of float v}) +0:24 Constant: +0:24 0 (const int) +0:24 0.000000 +0:24 false (const bool) +0:24 0.000000 +0:24 0.000000 +0:24 0.000000 +0:24 0.000000 +0:25 move second child to first child (temp bool) +0:25 c: direct index for structure (temp bool) +0:25 'o4' (temp structure{temp int a, temp float b, temp bool c, temp 4-component vector of float v}) +0:25 Constant: +0:25 2 (const int) +0:25 c: direct index for structure (temp bool) +0:25 'o1' (temp structure{temp int a, temp float b, temp bool c, temp 4-component vector of float v}) +0:25 Constant: +0:25 2 (const int) +0:26 Sequence +0:26 move second child to first child (temp structure{temp 4X3 matrix of float m, temp structure{temp int a, temp float b, temp bool c, temp 4-component vector of float v} os, temp bool b}) +0:26 'nest' (temp structure{temp 4X3 matrix of float m, temp structure{temp int a, temp float b, temp bool c, temp 4-component vector of float v} os, temp bool b}) +0:26 Constant: +0:26 0.000000 +0:26 0.000000 +0:26 0.000000 +0:26 0.000000 +0:26 0.000000 +0:26 0.000000 +0:26 0.000000 +0:26 0.000000 +0:26 0.000000 +0:26 0.000000 +0:26 0.000000 +0:26 0.000000 +0:26 0 (const int) +0:26 0.000000 +0:26 false (const bool) +0:26 0.000000 +0:26 0.000000 +0:26 0.000000 +0:26 0.000000 +0:26 false (const bool) +0:28 Sequence +0:28 Sequence +0:28 move second child to first child (temp int) 0:? 'a' (layout(location=0 ) out int) -0:21 a: direct index for structure (temp int) -0:21 'o4' (temp structure{temp int a, temp float b, temp bool c, temp 4-component vector of float v}) -0:21 Constant: -0:21 0 (const int) -0:21 move second child to first child (temp float) +0:28 a: direct index for structure (temp int) +0:28 'o4' (temp structure{temp int a, temp float b, temp bool c, temp 4-component vector of float v}) +0:28 Constant: +0:28 0 (const int) +0:28 move second child to first child (temp float) 0:? 'b' (layout(location=1 ) out float) -0:21 b: direct index for structure (temp float) -0:21 'o4' (temp structure{temp int a, temp float b, temp bool c, temp 4-component vector of float v}) -0:21 Constant: -0:21 1 (const int) -0:21 move second child to first child (temp bool) +0:28 b: direct index for structure (temp float) +0:28 'o4' (temp structure{temp int a, temp float b, temp bool c, temp 4-component vector of float v}) +0:28 Constant: +0:28 1 (const int) +0:28 move second child to first child (temp bool) 0:? 'c' (layout(location=2 ) out bool) -0:21 c: direct index for structure (temp bool) -0:21 'o4' (temp structure{temp int a, temp float b, temp bool c, temp 4-component vector of float v}) -0:21 Constant: -0:21 2 (const int) -0:21 move second child to first child (temp 4-component vector of float) +0:28 c: direct index for structure (temp bool) +0:28 'o4' (temp structure{temp int a, temp float b, temp bool c, temp 4-component vector of float v}) +0:28 Constant: +0:28 2 (const int) +0:28 move second child to first child (temp 4-component vector of float) 0:? 'v' (layout(location=3 ) out 4-component vector of float) -0:21 v: direct index for structure (temp 4-component vector of float) -0:21 'o4' (temp structure{temp int a, temp float b, temp bool c, temp 4-component vector of float v}) -0:21 Constant: -0:21 3 (const int) -0:21 Branch: Return +0:28 v: direct index for structure (temp 4-component vector of float) +0:28 'o4' (temp structure{temp int a, temp float b, temp bool c, temp 4-component vector of float v}) +0:28 Constant: +0:28 3 (const int) +0:28 Branch: Return 0:? Linker Objects 0:? 'a' (layout(location=0 ) out int) 0:? 'b' (layout(location=1 ) out float) @@ -121,79 +166,124 @@ gl_FragCoord origin is upper left 0:9 0.000000 0:9 0.000000 0:9 0.000000 -0:12 Function Definition: PixelShaderFunction(vf4; (temp structure{temp int a, temp float b, temp bool c, temp 4-component vector of float v}) -0:12 Function Parameters: -0:12 'input' (layout(location=0 ) in 4-component vector of float) +0:18 Function Definition: PixelShaderFunction(vf4; (temp structure{temp int a, temp float b, temp bool c, temp 4-component vector of float v}) +0:18 Function Parameters: +0:18 'input' (layout(location=0 ) in 4-component vector of float) 0:? Sequence -0:13 Sequence -0:13 move second child to first child (temp structure{temp int a, temp float b, temp bool c, temp 4-component vector of float v}) -0:13 'o2' (temp structure{temp int a, temp float b, temp bool c, temp 4-component vector of float v}) -0:13 Constant: -0:13 3 (const int) -0:13 0.000000 -0:13 false (const bool) -0:13 0.000000 -0:13 0.000000 -0:13 0.000000 -0:13 0.000000 -0:15 move second child to first child (temp 4-component vector of float) -0:15 v: direct index for structure (temp 4-component vector of float) -0:15 'o4' (temp structure{temp int a, temp float b, temp bool c, temp 4-component vector of float v}) -0:15 Constant: -0:15 3 (const int) -0:15 vector-scale (temp 4-component vector of float) -0:15 'gv' (global 4-component vector of float) -0:15 direct index (temp float) -0:15 'gfa' (global 3-element array of float) -0:15 Constant: -0:15 2 (const int) -0:16 Sequence -0:16 move second child to first child (temp structure{temp int a, temp float b, temp bool c, temp 4-component vector of float v}) -0:16 'o1' (temp structure{temp int a, temp float b, temp bool c, temp 4-component vector of float v}) -0:16 Constant: -0:16 0 (const int) -0:16 0.000000 -0:16 false (const bool) -0:16 0.000000 -0:16 0.000000 -0:16 0.000000 -0:16 0.000000 -0:19 move second child to first child (temp bool) -0:19 c: direct index for structure (temp bool) -0:19 'o4' (temp structure{temp int a, temp float b, temp bool c, temp 4-component vector of float v}) -0:19 Constant: -0:19 2 (const int) -0:19 c: direct index for structure (temp bool) -0:19 'o1' (temp structure{temp int a, temp float b, temp bool c, temp 4-component vector of float v}) +0:19 Sequence +0:19 move second child to first child (temp structure{temp int a, temp float b, temp bool c, temp 4-component vector of float v}) +0:19 'o2' (temp structure{temp int a, temp float b, temp bool c, temp 4-component vector of float v}) 0:19 Constant: -0:19 2 (const int) -0:21 Sequence -0:21 Sequence -0:21 move second child to first child (temp int) +0:19 3 (const int) +0:19 0.000000 +0:19 false (const bool) +0:19 0.000000 +0:19 0.000000 +0:19 0.000000 +0:19 0.000000 +0:21 move second child to first child (temp 4-component vector of float) +0:21 v: direct index for structure (temp 4-component vector of float) +0:21 'o4' (temp structure{temp int a, temp float b, temp bool c, temp 4-component vector of float v}) +0:21 Constant: +0:21 3 (const int) +0:21 vector-scale (temp 4-component vector of float) +0:21 'gv' (global 4-component vector of float) +0:21 direct index (temp float) +0:21 'gfa' (global 3-element array of float) +0:21 Constant: +0:21 2 (const int) +0:22 Sequence +0:22 move second child to first child (temp structure{temp int a, temp float b, temp bool c, temp 4-component vector of float v}) +0:22 'o1' (temp structure{temp int a, temp float b, temp bool c, temp 4-component vector of float v}) +0:22 Constant: +0:22 0 (const int) +0:22 0.000000 +0:22 false (const bool) +0:22 0.000000 +0:22 0.000000 +0:22 0.000000 +0:22 0.000000 +0:23 Sequence +0:23 move second child to first child (temp structure{temp int a, temp float b, temp bool c, temp 4-component vector of float v}) +0:23 'o3' (temp structure{temp int a, temp float b, temp bool c, temp 4-component vector of float v}) +0:23 Constant: +0:23 0 (const int) +0:23 0.000000 +0:23 false (const bool) +0:23 0.000000 +0:23 0.000000 +0:23 0.000000 +0:23 0.000000 +0:24 move second child to first child (temp structure{temp int a, temp float b, temp bool c, temp 4-component vector of float v}) +0:24 'o4' (temp structure{temp int a, temp float b, temp bool c, temp 4-component vector of float v}) +0:24 Constant: +0:24 0 (const int) +0:24 0.000000 +0:24 false (const bool) +0:24 0.000000 +0:24 0.000000 +0:24 0.000000 +0:24 0.000000 +0:25 move second child to first child (temp bool) +0:25 c: direct index for structure (temp bool) +0:25 'o4' (temp structure{temp int a, temp float b, temp bool c, temp 4-component vector of float v}) +0:25 Constant: +0:25 2 (const int) +0:25 c: direct index for structure (temp bool) +0:25 'o1' (temp structure{temp int a, temp float b, temp bool c, temp 4-component vector of float v}) +0:25 Constant: +0:25 2 (const int) +0:26 Sequence +0:26 move second child to first child (temp structure{temp 4X3 matrix of float m, temp structure{temp int a, temp float b, temp bool c, temp 4-component vector of float v} os, temp bool b}) +0:26 'nest' (temp structure{temp 4X3 matrix of float m, temp structure{temp int a, temp float b, temp bool c, temp 4-component vector of float v} os, temp bool b}) +0:26 Constant: +0:26 0.000000 +0:26 0.000000 +0:26 0.000000 +0:26 0.000000 +0:26 0.000000 +0:26 0.000000 +0:26 0.000000 +0:26 0.000000 +0:26 0.000000 +0:26 0.000000 +0:26 0.000000 +0:26 0.000000 +0:26 0 (const int) +0:26 0.000000 +0:26 false (const bool) +0:26 0.000000 +0:26 0.000000 +0:26 0.000000 +0:26 0.000000 +0:26 false (const bool) +0:28 Sequence +0:28 Sequence +0:28 move second child to first child (temp int) 0:? 'a' (layout(location=0 ) out int) -0:21 a: direct index for structure (temp int) -0:21 'o4' (temp structure{temp int a, temp float b, temp bool c, temp 4-component vector of float v}) -0:21 Constant: -0:21 0 (const int) -0:21 move second child to first child (temp float) +0:28 a: direct index for structure (temp int) +0:28 'o4' (temp structure{temp int a, temp float b, temp bool c, temp 4-component vector of float v}) +0:28 Constant: +0:28 0 (const int) +0:28 move second child to first child (temp float) 0:? 'b' (layout(location=1 ) out float) -0:21 b: direct index for structure (temp float) -0:21 'o4' (temp structure{temp int a, temp float b, temp bool c, temp 4-component vector of float v}) -0:21 Constant: -0:21 1 (const int) -0:21 move second child to first child (temp bool) +0:28 b: direct index for structure (temp float) +0:28 'o4' (temp structure{temp int a, temp float b, temp bool c, temp 4-component vector of float v}) +0:28 Constant: +0:28 1 (const int) +0:28 move second child to first child (temp bool) 0:? 'c' (layout(location=2 ) out bool) -0:21 c: direct index for structure (temp bool) -0:21 'o4' (temp structure{temp int a, temp float b, temp bool c, temp 4-component vector of float v}) -0:21 Constant: -0:21 2 (const int) -0:21 move second child to first child (temp 4-component vector of float) +0:28 c: direct index for structure (temp bool) +0:28 'o4' (temp structure{temp int a, temp float b, temp bool c, temp 4-component vector of float v}) +0:28 Constant: +0:28 2 (const int) +0:28 move second child to first child (temp 4-component vector of float) 0:? 'v' (layout(location=3 ) out 4-component vector of float) -0:21 v: direct index for structure (temp 4-component vector of float) -0:21 'o4' (temp structure{temp int a, temp float b, temp bool c, temp 4-component vector of float v}) -0:21 Constant: -0:21 3 (const int) -0:21 Branch: Return +0:28 v: direct index for structure (temp 4-component vector of float) +0:28 'o4' (temp structure{temp int a, temp float b, temp bool c, temp 4-component vector of float v}) +0:28 Constant: +0:28 3 (const int) +0:28 Branch: Return 0:? Linker Objects 0:? 'a' (layout(location=0 ) out int) 0:? 'b' (layout(location=1 ) out float) @@ -205,12 +295,12 @@ gl_FragCoord origin is upper left // Module Version 10000 // Generated by (magic number): 80001 -// Id's are bound by 66 +// Id's are bound by 75 Capability Shader 1: ExtInstImport "GLSL.std.450" MemoryModel Logical GLSL450 - EntryPoint Fragment 4 "PixelShaderFunction" 45 50 56 60 65 + EntryPoint Fragment 4 "PixelShaderFunction" 54 59 65 69 74 ExecutionMode 4 OriginUpperLeft Name 4 "PixelShaderFunction" Name 9 "gv" @@ -223,16 +313,22 @@ gl_FragCoord origin is upper left Name 23 "o2" Name 28 "o4" Name 37 "o1" - Name 45 "a" - Name 50 "b" - Name 56 "c" - Name 60 "v" - Name 65 "input" - Decorate 45(a) Location 0 - Decorate 50(b) Location 1 - Decorate 56(c) Location 2 - Decorate 60(v) Location 3 - Decorate 65(input) Location 0 + Name 40 "o3" + Name 47 "Nest" + MemberName 47(Nest) 0 "m" + MemberName 47(Nest) 1 "os" + MemberName 47(Nest) 2 "b" + Name 49 "nest" + Name 54 "a" + Name 59 "b" + Name 65 "c" + Name 69 "v" + Name 74 "input" + Decorate 54(a) Location 0 + Decorate 59(b) Location 1 + Decorate 65(c) Location 2 + Decorate 69(v) Location 3 + Decorate 74(input) Location 0 2: TypeVoid 3: TypeFunction 2 6: TypeFloat 32 @@ -261,25 +357,34 @@ gl_FragCoord origin is upper left 35: TypePointer Function 7(fvec4) 38: 19(int) Constant 0 39: 21(outs) ConstantComposite 38 10 25 26 - 40: TypePointer Function 20(bool) - 44: TypePointer Output 19(int) - 45(a): 44(ptr) Variable Output - 46: TypePointer Function 19(int) - 49: TypePointer Output 6(float) - 50(b): 49(ptr) Variable Output - 51: 19(int) Constant 1 - 52: TypePointer Function 6(float) - 55: TypePointer Output 20(bool) - 56(c): 55(ptr) Variable Output - 59: TypePointer Output 7(fvec4) - 60(v): 59(ptr) Variable Output - 64: TypePointer Input 7(fvec4) - 65(input): 64(ptr) Variable Input + 41: TypePointer Function 20(bool) + 45: TypeVector 6(float) 3 + 46: TypeMatrix 45(fvec3) 4 + 47(Nest): TypeStruct 46 21(outs) 20(bool) + 48: TypePointer Function 47(Nest) + 50: 45(fvec3) ConstantComposite 10 10 10 + 51: 46 ConstantComposite 50 50 50 50 + 52: 47(Nest) ConstantComposite 51 39 25 + 53: TypePointer Output 19(int) + 54(a): 53(ptr) Variable Output + 55: TypePointer Function 19(int) + 58: TypePointer Output 6(float) + 59(b): 58(ptr) Variable Output + 60: 19(int) Constant 1 + 61: TypePointer Function 6(float) + 64: TypePointer Output 20(bool) + 65(c): 64(ptr) Variable Output + 68: TypePointer Output 7(fvec4) + 69(v): 68(ptr) Variable Output + 73: TypePointer Input 7(fvec4) + 74(input): 73(ptr) Variable Input 4(PixelShaderFunction): 2 Function None 3 5: Label 23(o2): 22(ptr) Variable Function 28(o4): 22(ptr) Variable Function 37(o1): 22(ptr) Variable Function + 40(o3): 22(ptr) Variable Function + 49(nest): 48(ptr) Variable Function Store 9(gv) 12 Store 17(gfa) 18 Store 23(o2) 27 @@ -290,21 +395,24 @@ gl_FragCoord origin is upper left 36: 35(ptr) AccessChain 28(o4) 24 Store 36 34 Store 37(o1) 39 - 41: 40(ptr) AccessChain 37(o1) 30 - 42: 20(bool) Load 41 - 43: 40(ptr) AccessChain 28(o4) 30 - Store 43 42 - 47: 46(ptr) AccessChain 28(o4) 38 - 48: 19(int) Load 47 - Store 45(a) 48 - 53: 52(ptr) AccessChain 28(o4) 51 - 54: 6(float) Load 53 - Store 50(b) 54 - 57: 40(ptr) AccessChain 28(o4) 30 - 58: 20(bool) Load 57 - Store 56(c) 58 - 61: 35(ptr) AccessChain 28(o4) 24 - 62: 7(fvec4) Load 61 - Store 60(v) 62 + Store 40(o3) 39 + Store 28(o4) 39 + 42: 41(ptr) AccessChain 37(o1) 30 + 43: 20(bool) Load 42 + 44: 41(ptr) AccessChain 28(o4) 30 + Store 44 43 + Store 49(nest) 52 + 56: 55(ptr) AccessChain 28(o4) 38 + 57: 19(int) Load 56 + Store 54(a) 57 + 62: 61(ptr) AccessChain 28(o4) 60 + 63: 6(float) Load 62 + Store 59(b) 63 + 66: 41(ptr) AccessChain 28(o4) 30 + 67: 20(bool) Load 66 + Store 65(c) 67 + 70: 35(ptr) AccessChain 28(o4) 24 + 71: 7(fvec4) Load 70 + Store 69(v) 71 Return FunctionEnd diff --git a/Test/hlsl.partialInit.frag b/Test/hlsl.partialInit.frag index b5b0a580..59e8a529 100755 --- a/Test/hlsl.partialInit.frag +++ b/Test/hlsl.partialInit.frag @@ -8,15 +8,22 @@ struct outs { static float4 gv = {0,0,1}; static float gfa[3] = {0,0}; +struct Nest { + float4x3 m; + outs os; + bool b; +}; + outs PixelShaderFunction(float4 input) : COLOR0 { outs o2 = { 3 }; outs o4; o4.v = gv * gfa[2]; outs o1 = { }; -// outs o3 = (outs)0; -// o4 = (outs)0; + outs o3 = (outs)0; + o4 = (outs)0; o4.c = o1.c; + Nest nest = (Nest)0; return o4; } \ No newline at end of file diff --git a/glslang/Include/revision.h b/glslang/Include/revision.h index 4d1ea9df..480953e0 100644 --- a/glslang/Include/revision.h +++ b/glslang/Include/revision.h @@ -2,5 +2,5 @@ // For the version, it uses the latest git tag followed by the number of commits. // For the date, it uses the current date (when then script is run). -#define GLSLANG_REVISION "Overload400-PrecQual.1665" +#define GLSLANG_REVISION "Overload400-PrecQual.1666" #define GLSLANG_DATE "27-Nov-2016" diff --git a/hlsl/hlslParseHelper.cpp b/hlsl/hlslParseHelper.cpp index 0ed259a1..8685dcd8 100755 --- a/hlsl/hlslParseHelper.cpp +++ b/hlsl/hlslParseHelper.cpp @@ -3285,7 +3285,7 @@ bool HlslParseContext::builtInName(const TString& /*identifier*/) // // Returns true if there was an error in construction. // -bool HlslParseContext::constructorError(const TSourceLoc& loc, TIntermNode* /*node*/, TFunction& function, +bool HlslParseContext::constructorError(const TSourceLoc& loc, TIntermNode* node, TFunction& function, TOperator op, TType& type) { type.shallowCopy(function.getType()); @@ -3411,6 +3411,9 @@ bool HlslParseContext::constructorError(const TSourceLoc& loc, TIntermNode* /*no return true; } + if (op == EOpConstructStruct && ! type.isArray() && isZeroConstructor(node)) + return false; + if (op == EOpConstructStruct && ! type.isArray() && (int)type.getStruct()->size() != function.getParamCount()) { error(loc, "Number of constructor parameters does not match the number of structure fields", "constructor", ""); return true; @@ -3422,11 +3425,15 @@ bool HlslParseContext::constructorError(const TSourceLoc& loc, TIntermNode* /*no return true; } - // TIntermTyped* typed = node->getAsTyped(); - return false; } +bool HlslParseContext::isZeroConstructor(const TIntermNode* node) +{ + return node->getAsTyped()->isScalar() && node->getAsConstantUnion() && + node->getAsConstantUnion()->getConstArray()[0].getIConst() == 0; +} + // Verify all the correct semantics for constructing a combined texture/sampler. // Return true if the semantics are incorrect. bool HlslParseContext::constructorTextureSamplerError(const TSourceLoc& loc, const TFunction& function) @@ -4672,6 +4679,11 @@ TIntermNode* HlslParseContext::executeInitializer(const TSourceLoc& loc, TInterm // creating a constructor-style initializer, ensuring we get the // same form. // +// Returns a node representing an expression for the initializer list expressed +// as the correct type. +// +// Returns nullptr if there is an error. +// TIntermTyped* HlslParseContext::convertInitializerList(const TSourceLoc& loc, const TType& type, TIntermTyped* initializer) { // Will operate recursively. Once a subtree is found that is constructor style, @@ -4808,6 +4820,10 @@ TIntermTyped* HlslParseContext::addConstructor(const TSourceLoc& loc, TIntermNod if (node == nullptr || node->getAsTyped() == nullptr) return nullptr; + // Handle the idiom "(struct type)0" + if (type.isStruct() && isZeroConstructor(node)) + return convertInitializerList(loc, type, intermediate.makeAggregate(loc)); + TIntermAggregate* aggrNode = node->getAsAggregate(); TOperator op = intermediate.mapTypeToConstructorOp(type); diff --git a/hlsl/hlslParseHelper.h b/hlsl/hlslParseHelper.h index ca937678..02e69814 100755 --- a/hlsl/hlslParseHelper.h +++ b/hlsl/hlslParseHelper.h @@ -172,6 +172,7 @@ protected: void declareArray(const TSourceLoc&, TString& identifier, const TType&, TSymbol*&, bool track); TIntermNode* executeInitializer(const TSourceLoc&, TIntermTyped* initializer, TVariable* variable); TIntermTyped* convertInitializerList(const TSourceLoc&, const TType&, TIntermTyped* initializer); + bool HlslParseContext::isZeroConstructor(const TIntermNode*); TOperator mapAtomicOp(const TSourceLoc& loc, TOperator op, bool isImage); // Return true if this node requires L-value conversion (e.g, to an imageStore). -- cgit v1.2.3 From 8ce6e2ba4907c5d062241947bb0300034ea23985 Mon Sep 17 00:00:00 2001 From: John Kessenich Date: Sun, 27 Nov 2016 23:00:14 -0700 Subject: Fix non-Windows build error. --- glslang/Include/revision.h | 2 +- hlsl/hlslParseHelper.h | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/glslang/Include/revision.h b/glslang/Include/revision.h index 480953e0..5445009c 100644 --- a/glslang/Include/revision.h +++ b/glslang/Include/revision.h @@ -2,5 +2,5 @@ // For the version, it uses the latest git tag followed by the number of commits. // For the date, it uses the current date (when then script is run). -#define GLSLANG_REVISION "Overload400-PrecQual.1666" +#define GLSLANG_REVISION "Overload400-PrecQual.1667" #define GLSLANG_DATE "27-Nov-2016" diff --git a/hlsl/hlslParseHelper.h b/hlsl/hlslParseHelper.h index 02e69814..246c7c49 100755 --- a/hlsl/hlslParseHelper.h +++ b/hlsl/hlslParseHelper.h @@ -172,7 +172,7 @@ protected: void declareArray(const TSourceLoc&, TString& identifier, const TType&, TSymbol*&, bool track); TIntermNode* executeInitializer(const TSourceLoc&, TIntermTyped* initializer, TVariable* variable); TIntermTyped* convertInitializerList(const TSourceLoc&, const TType&, TIntermTyped* initializer); - bool HlslParseContext::isZeroConstructor(const TIntermNode*); + bool isZeroConstructor(const TIntermNode*); TOperator mapAtomicOp(const TSourceLoc& loc, TOperator op, bool isImage); // Return true if this node requires L-value conversion (e.g, to an imageStore). -- cgit v1.2.3