HLSL: Correctly identify which variables are global storage class.
authorJohn Kessenich <cepheus@frii.com>
Sat, 2 Jul 2016 01:35:53 +0000 (19:35 -0600)
committerJohn Kessenich <cepheus@frii.com>
Sat, 2 Jul 2016 01:35:53 +0000 (19:35 -0600)
35 files changed:
Test/baseResults/hlsl.array.frag.out
Test/baseResults/hlsl.assoc.frag.out
Test/baseResults/hlsl.attribute.frag.out
Test/baseResults/hlsl.cast.frag.out
Test/baseResults/hlsl.discard.frag.out
Test/baseResults/hlsl.doLoop.frag.out
Test/baseResults/hlsl.float1.frag.out
Test/baseResults/hlsl.float4.frag.out
Test/baseResults/hlsl.forLoop.frag.out
Test/baseResults/hlsl.if.frag.out
Test/baseResults/hlsl.init.frag.out
Test/baseResults/hlsl.intrinsics.barriers.comp.out
Test/baseResults/hlsl.intrinsics.comp.out
Test/baseResults/hlsl.intrinsics.double.frag.out
Test/baseResults/hlsl.intrinsics.evalfns.frag.out
Test/baseResults/hlsl.intrinsics.f1632.frag.out
Test/baseResults/hlsl.intrinsics.frag.out
Test/baseResults/hlsl.intrinsics.lit.frag.out
Test/baseResults/hlsl.intrinsics.negative.comp.out
Test/baseResults/hlsl.intrinsics.negative.frag.out
Test/baseResults/hlsl.intrinsics.negative.vert.out
Test/baseResults/hlsl.intrinsics.vert.out
Test/baseResults/hlsl.matType.frag.out
Test/baseResults/hlsl.max.frag.out
Test/baseResults/hlsl.precedence.frag.out
Test/baseResults/hlsl.precedence2.frag.out
Test/baseResults/hlsl.scope.frag.out
Test/baseResults/hlsl.sin.frag.out
Test/baseResults/hlsl.struct.frag.out
Test/baseResults/hlsl.switch.frag.out
Test/baseResults/hlsl.swizzle.frag.out
Test/baseResults/hlsl.templatetypes.frag.out
Test/baseResults/hlsl.void.frag.out
Test/baseResults/hlsl.whileLoop.frag.out
hlsl/hlslGrammar.cpp

index 113f152..6f29aa2 100755 (executable)
@@ -2,7 +2,7 @@ hlsl.array.frag
 Shader version: 450
 gl_FragCoord origin is upper left
 0:? Sequence
-0:11  Function Definition: PixelShaderFunction(i1;vf4[3]; (temp 4-component vector of float)
+0:11  Function Definition: PixelShaderFunction(i1;vf4[3]; (global 4-component vector of float)
 0:8    Function Parameters: 
 0:8      'i' (in int)
 0:8      'input' (in 3-element array of 4-component vector of float)
@@ -12,11 +12,11 @@ gl_FragCoord origin is upper left
 0:10          add (temp 4-component vector of float)
 0:10            add (temp 4-component vector of float)
 0:10              direct index (temp 4-component vector of float)
-0:10                'a' (temp 4-element array of 4-component vector of float)
+0:10                'a' (global 4-element array of 4-component vector of float)
 0:10                Constant:
 0:10                  1 (const int)
 0:10              indirect index (temp 4-component vector of float)
-0:10                'a' (temp 4-element array of 4-component vector of float)
+0:10                'a' (global 4-element array of 4-component vector of float)
 0:10                'i' (in int)
 0:10            add (temp 4-component vector of float)
 0:10              direct index (temp 4-component vector of float)
@@ -38,14 +38,14 @@ gl_FragCoord origin is upper left
 0:10            indirect index (temp 4-component vector of float)
 0:10              m: direct index for structure (temp 7-element array of 4-component vector of float)
 0:10                indirect index (temp structure{temp 7-element array of 4-component vector of float m})
-0:10                  's' (temp 11-element array of structure{temp 7-element array of 4-component vector of float m})
+0:10                  's' (global 11-element array of structure{temp 7-element array of 4-component vector of float m})
 0:10                  'i' (in int)
 0:10                Constant:
 0:10                  0 (const int)
 0:10              'i' (in int)
 0:?   Linker Objects
-0:?     'a' (temp 4-element array of 4-component vector of float)
-0:?     's' (temp 11-element array of structure{temp 7-element array of 4-component vector of float m})
+0:?     'a' (global 4-element array of 4-component vector of float)
+0:?     's' (global 11-element array of structure{temp 7-element array of 4-component vector of float m})
 
 
 Linked fragment stage:
@@ -54,7 +54,7 @@ Linked fragment stage:
 Shader version: 450
 gl_FragCoord origin is upper left
 0:? Sequence
-0:11  Function Definition: PixelShaderFunction(i1;vf4[3]; (temp 4-component vector of float)
+0:11  Function Definition: PixelShaderFunction(i1;vf4[3]; (global 4-component vector of float)
 0:8    Function Parameters: 
 0:8      'i' (in int)
 0:8      'input' (in 3-element array of 4-component vector of float)
@@ -64,11 +64,11 @@ gl_FragCoord origin is upper left
 0:10          add (temp 4-component vector of float)
 0:10            add (temp 4-component vector of float)
 0:10              direct index (temp 4-component vector of float)
-0:10                'a' (temp 4-element array of 4-component vector of float)
+0:10                'a' (global 4-element array of 4-component vector of float)
 0:10                Constant:
 0:10                  1 (const int)
 0:10              indirect index (temp 4-component vector of float)
-0:10                'a' (temp 4-element array of 4-component vector of float)
+0:10                'a' (global 4-element array of 4-component vector of float)
 0:10                'i' (in int)
 0:10            add (temp 4-component vector of float)
 0:10              direct index (temp 4-component vector of float)
@@ -90,18 +90,18 @@ gl_FragCoord origin is upper left
 0:10            indirect index (temp 4-component vector of float)
 0:10              m: direct index for structure (temp 7-element array of 4-component vector of float)
 0:10                indirect index (temp structure{temp 7-element array of 4-component vector of float m})
-0:10                  's' (temp 11-element array of structure{temp 7-element array of 4-component vector of float m})
+0:10                  's' (global 11-element array of structure{temp 7-element array of 4-component vector of float m})
 0:10                  'i' (in int)
 0:10                Constant:
 0:10                  0 (const int)
 0:10              'i' (in int)
 0:?   Linker Objects
-0:?     'a' (temp 4-element array of 4-component vector of float)
-0:?     's' (temp 11-element array of structure{temp 7-element array of 4-component vector of float m})
+0:?     'a' (global 4-element array of 4-component vector of float)
+0:?     's' (global 11-element array of structure{temp 7-element array of 4-component vector of float m})
 
 // Module Version 10000
 // Generated by (magic number): 80001
-// Id's are bound by 63
+// Id's are bound by 64
 
                               Capability Shader
                1:             ExtInstImport  "GLSL.std.450"
@@ -114,9 +114,9 @@ gl_FragCoord origin is upper left
                               Name 19  "i"
                               Name 27  "input"
                               Name 40  "b"
-                              Name 50  ""
-                              MemberName 50 0  "m"
-                              Name 54  "s"
+                              Name 51  ""
+                              MemberName 51 0  "m"
+                              Name 55  "s"
                2:             TypeVoid
                3:             TypeFunction 2
                6:             TypeFloat 32
@@ -124,10 +124,11 @@ gl_FragCoord origin is upper left
                8:             TypeInt 32 0
                9:      8(int) Constant 4
               10:             TypeArray 7(fvec4) 9
-              11:             TypePointer Function 10
+              11:             TypePointer Private 10
+           12(a):     11(ptr) Variable Private
               13:             TypeInt 32 1
               14:     13(int) Constant 1
-              15:             TypePointer Function 7(fvec4)
+              15:             TypePointer Private 7(fvec4)
               18:             TypePointer Input 13(int)
            19(i):     18(ptr) Variable Input
               24:      8(int) Constant 3
@@ -140,18 +141,18 @@ gl_FragCoord origin is upper left
               38:             TypeArray 7(fvec4) 37
               39:             TypePointer Function 38
               41:     13(int) Constant 5
-              48:      8(int) Constant 7
-              49:             TypeArray 7(fvec4) 48
-              50:             TypeStruct 49
-              51:      8(int) Constant 11
-              52:             TypeArray 50(struct) 51
-              53:             TypePointer Function 52
-              56:     13(int) Constant 0
+              42:             TypePointer Function 7(fvec4)
+              49:      8(int) Constant 7
+              50:             TypeArray 7(fvec4) 49
+              51:             TypeStruct 50
+              52:      8(int) Constant 11
+              53:             TypeArray 51(struct) 52
+              54:             TypePointer Private 53
+           55(s):     54(ptr) Variable Private
+              57:     13(int) Constant 0
 4(PixelShaderFunction):           2 Function None 3
                5:             Label
-           12(a):     11(ptr) Variable Function
            40(b):     39(ptr) Variable Function
-           54(s):     53(ptr) Variable Function
               16:     15(ptr) AccessChain 12(a) 14
               17:    7(fvec4) Load 16
               20:     13(int) Load 19(i)
@@ -165,17 +166,17 @@ gl_FragCoord origin is upper left
               34:    7(fvec4) Load 33
               35:    7(fvec4) FAdd 31 34
               36:    7(fvec4) FAdd 23 35
-              42:     15(ptr) AccessChain 40(b) 41
-              43:    7(fvec4) Load 42
-              44:     13(int) Load 19(i)
-              45:     15(ptr) AccessChain 40(b) 44
-              46:    7(fvec4) Load 45
-              47:    7(fvec4) FAdd 43 46
-              55:     13(int) Load 19(i)
-              57:     13(int) Load 19(i)
-              58:     15(ptr) AccessChain 54(s) 55 56 57
-              59:    7(fvec4) Load 58
-              60:    7(fvec4) FAdd 47 59
-              61:    7(fvec4) FAdd 36 60
-                              ReturnValue 61
+              43:     42(ptr) AccessChain 40(b) 41
+              44:    7(fvec4) Load 43
+              45:     13(int) Load 19(i)
+              46:     42(ptr) AccessChain 40(b) 45
+              47:    7(fvec4) Load 46
+              48:    7(fvec4) FAdd 44 47
+              56:     13(int) Load 19(i)
+              58:     13(int) Load 19(i)
+              59:     15(ptr) AccessChain 55(s) 56 57 58
+              60:    7(fvec4) Load 59
+              61:    7(fvec4) FAdd 48 60
+              62:    7(fvec4) FAdd 36 61
+                              ReturnValue 62
                               FunctionEnd
index bc06bd0..251c7be 100755 (executable)
@@ -2,7 +2,7 @@ hlsl.assoc.frag
 Shader version: 450
 gl_FragCoord origin is upper left
 0:? Sequence
-0:12  Function Definition: PixelShaderFunction(vf4;vf4;vf4;vf4;vf4; (temp 4-component vector of float)
+0:12  Function Definition: PixelShaderFunction(vf4;vf4;vf4;vf4;vf4; (global 4-component vector of float)
 0:8    Function Parameters: 
 0:8      'a1' (in 4-component vector of float)
 0:8      'a2' (in 4-component vector of float)
@@ -38,7 +38,7 @@ Linked fragment stage:
 Shader version: 450
 gl_FragCoord origin is upper left
 0:? Sequence
-0:12  Function Definition: PixelShaderFunction(vf4;vf4;vf4;vf4;vf4; (temp 4-component vector of float)
+0:12  Function Definition: PixelShaderFunction(vf4;vf4;vf4;vf4;vf4; (global 4-component vector of float)
 0:8    Function Parameters: 
 0:8      'a1' (in 4-component vector of float)
 0:8      'a2' (in 4-component vector of float)
index 3bfbea7..77e34fe 100755 (executable)
@@ -2,7 +2,7 @@ hlsl.attribute.frag
 Shader version: 450
 gl_FragCoord origin is upper left
 0:? Sequence
-0:14  Function Definition: PixelShaderFunction(vf4; (temp 4-component vector of float)
+0:14  Function Definition: PixelShaderFunction(vf4; (global 4-component vector of float)
 0:2    Function Parameters: 
 0:2      'input' (in 4-component vector of float)
 0:?     Sequence
@@ -20,7 +20,7 @@ Linked fragment stage:
 Shader version: 450
 gl_FragCoord origin is upper left
 0:? Sequence
-0:14  Function Definition: PixelShaderFunction(vf4; (temp 4-component vector of float)
+0:14  Function Definition: PixelShaderFunction(vf4; (global 4-component vector of float)
 0:2    Function Parameters: 
 0:2      'input' (in 4-component vector of float)
 0:?     Sequence
index 61ca29f..24b18cd 100755 (executable)
@@ -2,7 +2,7 @@ hlsl.cast.frag
 Shader version: 450
 gl_FragCoord origin is upper left
 0:? Sequence
-0:5  Function Definition: PixelShaderFunction(vf4; (temp 4-component vector of float)
+0:5  Function Definition: PixelShaderFunction(vf4; (global 4-component vector of float)
 0:2    Function Parameters: 
 0:2      'input' (in 4-component vector of float)
 0:?     Sequence
@@ -28,7 +28,7 @@ Linked fragment stage:
 Shader version: 450
 gl_FragCoord origin is upper left
 0:? Sequence
-0:5  Function Definition: PixelShaderFunction(vf4; (temp 4-component vector of float)
+0:5  Function Definition: PixelShaderFunction(vf4; (global 4-component vector of float)
 0:2    Function Parameters: 
 0:2      'input' (in 4-component vector of float)
 0:?     Sequence
index 7e549e1..324029a 100755 (executable)
@@ -2,7 +2,7 @@ hlsl.discard.frag
 Shader version: 450
 gl_FragCoord origin is upper left
 0:? Sequence
-0:7  Function Definition: foo(f1; (temp void)
+0:7  Function Definition: foo(f1; (global void)
 0:2    Function Parameters: 
 0:2      'f' (in float)
 0:?     Sequence
@@ -14,11 +14,11 @@ gl_FragCoord origin is upper left
 0:3            1.000000
 0:3        true case
 0:4        Branch: Kill
-0:15  Function Definition: PixelShaderFunction(vf4; (temp 4-component vector of float)
+0:15  Function Definition: PixelShaderFunction(vf4; (global 4-component vector of float)
 0:8    Function Parameters: 
 0:8      'input' (in 4-component vector of float)
 0:?     Sequence
-0:9      Function Call: foo(f1; (temp void)
+0:9      Function Call: foo(f1; (global void)
 0:9        direct index (temp float)
 0:9          'input' (in 4-component vector of float)
 0:9          Constant:
@@ -48,7 +48,7 @@ Linked fragment stage:
 Shader version: 450
 gl_FragCoord origin is upper left
 0:? Sequence
-0:7  Function Definition: foo(f1; (temp void)
+0:7  Function Definition: foo(f1; (global void)
 0:2    Function Parameters: 
 0:2      'f' (in float)
 0:?     Sequence
@@ -60,11 +60,11 @@ gl_FragCoord origin is upper left
 0:3            1.000000
 0:3        true case
 0:4        Branch: Kill
-0:15  Function Definition: PixelShaderFunction(vf4; (temp 4-component vector of float)
+0:15  Function Definition: PixelShaderFunction(vf4; (global 4-component vector of float)
 0:8    Function Parameters: 
 0:8      'input' (in 4-component vector of float)
 0:?     Sequence
-0:9      Function Call: foo(f1; (temp void)
+0:9      Function Call: foo(f1; (global void)
 0:9        direct index (temp float)
 0:9          'input' (in 4-component vector of float)
 0:9          Constant:
index 1ac86d8..c14a3a5 100755 (executable)
@@ -2,7 +2,7 @@ hlsl.doLoop.frag
 Shader version: 450
 gl_FragCoord origin is upper left
 0:? Sequence
-0:7  Function Definition: PixelShaderFunction(vf4; (temp 4-component vector of float)
+0:7  Function Definition: PixelShaderFunction(vf4; (global 4-component vector of float)
 0:2    Function Parameters: 
 0:2      'input' (in 4-component vector of float)
 0:?     Sequence
@@ -33,7 +33,7 @@ Linked fragment stage:
 Shader version: 450
 gl_FragCoord origin is upper left
 0:? Sequence
-0:7  Function Definition: PixelShaderFunction(vf4; (temp 4-component vector of float)
+0:7  Function Definition: PixelShaderFunction(vf4; (global 4-component vector of float)
 0:2    Function Parameters: 
 0:2      'input' (in 4-component vector of float)
 0:?     Sequence
index 6effb9a..07de03e 100755 (executable)
@@ -4,15 +4,15 @@ gl_FragCoord origin is upper left
 0:? Sequence
 0:1  Sequence
 0:1    move second child to first child (temp 1-component vector of float)
-0:1      'f1' (temp 1-component vector of float)
+0:1      'f1' (global 1-component vector of float)
 0:1      Constant:
 0:1        1.000000
 0:2  Sequence
 0:2    move second child to first child (temp float)
-0:2      'scalar' (temp float)
+0:2      'scalar' (global float)
 0:2      Constant:
 0:2        2.000000
-0:8  Function Definition: ShaderFunction(vf1;f1; (temp 1-component vector of float)
+0:8  Function Definition: ShaderFunction(vf1;f1; (global 1-component vector of float)
 0:5    Function Parameters: 
 0:5      'inFloat1' (in 1-component vector of float)
 0:5      'inScalar' (in float)
@@ -20,14 +20,14 @@ gl_FragCoord origin is upper left
 0:6      Branch: Return with expression
 0:6        add (temp 1-component vector of float)
 0:6          vector-scale (temp 1-component vector of float)
-0:6            'f1' (temp 1-component vector of float)
-0:6            'scalar' (temp float)
+0:6            'f1' (global 1-component vector of float)
+0:6            'scalar' (global float)
 0:6          vector-scale (temp 1-component vector of float)
 0:6            'inFloat1' (in 1-component vector of float)
 0:6            'inScalar' (in float)
 0:?   Linker Objects
-0:?     'f1' (temp 1-component vector of float)
-0:?     'scalar' (temp float)
+0:?     'f1' (global 1-component vector of float)
+0:?     'scalar' (global float)
 
 
 Linked fragment stage:
@@ -38,15 +38,15 @@ gl_FragCoord origin is upper left
 0:? Sequence
 0:1  Sequence
 0:1    move second child to first child (temp 1-component vector of float)
-0:1      'f1' (temp 1-component vector of float)
+0:1      'f1' (global 1-component vector of float)
 0:1      Constant:
 0:1        1.000000
 0:2  Sequence
 0:2    move second child to first child (temp float)
-0:2      'scalar' (temp float)
+0:2      'scalar' (global float)
 0:2      Constant:
 0:2        2.000000
-0:8  Function Definition: ShaderFunction(vf1;f1; (temp 1-component vector of float)
+0:8  Function Definition: ShaderFunction(vf1;f1; (global 1-component vector of float)
 0:5    Function Parameters: 
 0:5      'inFloat1' (in 1-component vector of float)
 0:5      'inScalar' (in float)
@@ -54,18 +54,18 @@ gl_FragCoord origin is upper left
 0:6      Branch: Return with expression
 0:6        add (temp 1-component vector of float)
 0:6          vector-scale (temp 1-component vector of float)
-0:6            'f1' (temp 1-component vector of float)
-0:6            'scalar' (temp float)
+0:6            'f1' (global 1-component vector of float)
+0:6            'scalar' (global float)
 0:6          vector-scale (temp 1-component vector of float)
 0:6            'inFloat1' (in 1-component vector of float)
 0:6            'inScalar' (in float)
 0:?   Linker Objects
-0:?     'f1' (temp 1-component vector of float)
-0:?     'scalar' (temp float)
+0:?     'f1' (global 1-component vector of float)
+0:?     'scalar' (global float)
 
 // Module Version 10000
 // Generated by (magic number): 80001
-// Id's are bound by 26
+// Id's are bound by 27
 
                               Capability Shader
                1:             ExtInstImport  "GLSL.std.450"
@@ -77,32 +77,33 @@ gl_FragCoord origin is upper left
                               Name 11  "ShaderFunction(vf1;f1;"
                               Name 9  "inFloat1"
                               Name 10  "inScalar"
-                              Name 13  "f1"
-                              Name 15  "scalar"
+                              Name 14  "f1"
+                              Name 16  "scalar"
                2:             TypeVoid
                3:             TypeFunction 2
                6:             TypeFloat 32
                7:             TypePointer Function 6(float)
                8:             TypeFunction 6(float) 7(ptr) 7(ptr)
-              14:    6(float) Constant 1065353216
-              16:    6(float) Constant 1073741824
+              13:             TypePointer Private 6(float)
+          14(f1):     13(ptr) Variable Private
+              15:    6(float) Constant 1065353216
+      16(scalar):     13(ptr) Variable Private
+              17:    6(float) Constant 1073741824
 4(PixelShaderFunction):           2 Function None 3
                5:             Label
-          13(f1):      7(ptr) Variable Function
-      15(scalar):      7(ptr) Variable Function
-                              Store 13(f1) 14
-                              Store 15(scalar) 16
+                              Store 14(f1) 15
+                              Store 16(scalar) 17
                               FunctionEnd
 11(ShaderFunction(vf1;f1;):    6(float) Function None 8
      9(inFloat1):      7(ptr) FunctionParameter
     10(inScalar):      7(ptr) FunctionParameter
               12:             Label
-              17:    6(float) Load 13(f1)
-              18:    6(float) Load 15(scalar)
-              19:    6(float) IMul 17 18
-              20:    6(float) Load 9(inFloat1)
-              21:    6(float) Load 10(inScalar)
-              22:    6(float) IMul 20 21
-              23:    6(float) FAdd 19 22
-                              ReturnValue 23
+              18:    6(float) Load 14(f1)
+              19:    6(float) Load 16(scalar)
+              20:    6(float) IMul 18 19
+              21:    6(float) Load 9(inFloat1)
+              22:    6(float) Load 10(inScalar)
+              23:    6(float) IMul 21 22
+              24:    6(float) FAdd 20 23
+                              ReturnValue 24
                               FunctionEnd
index cad5006..a086d95 100755 (executable)
@@ -4,26 +4,26 @@ gl_FragCoord origin is upper left
 0:? Sequence
 0:1  Sequence
 0:1    move second child to first child (temp 4-component vector of float)
-0:1      'AmbientColor' (temp 4-component vector of float)
+0:1      'AmbientColor' (global 4-component vector of float)
 0:?       Constant:
 0:?         1.000000
 0:?         0.500000
 0:?         0.000000
 0:?         1.000000
-0:12  Function Definition: ShaderFunction(vf4; (temp 4-component vector of float)
+0:12  Function Definition: ShaderFunction(vf4; (global 4-component vector of float)
 0:9    Function Parameters: 
 0:9      'input' (in 4-component vector of float)
 0:?     Sequence
 0:10      Branch: Return with expression
 0:10        component-wise multiply (temp 4-component vector of float)
 0:10          'input' (in 4-component vector of float)
-0:10          'AmbientColor' (temp 4-component vector of float)
+0:10          'AmbientColor' (global 4-component vector of float)
 0:?   Linker Objects
-0:?     'AmbientColor' (temp 4-component vector of float)
-0:?     'ff1' (temp bool Face)
-0:?     'ff2' (temp 4-component vector of float)
-0:?     'ff3' (temp 4-component vector of float)
-0:?     'ff4' (temp 4-component vector of float FragCoord)
+0:?     'AmbientColor' (global 4-component vector of float)
+0:?     'ff1' (global bool Face)
+0:?     'ff2' (global 4-component vector of float)
+0:?     'ff3' (global 4-component vector of float)
+0:?     'ff4' (global 4-component vector of float FragCoord)
 
 
 Linked fragment stage:
@@ -34,30 +34,30 @@ gl_FragCoord origin is upper left
 0:? Sequence
 0:1  Sequence
 0:1    move second child to first child (temp 4-component vector of float)
-0:1      'AmbientColor' (temp 4-component vector of float)
+0:1      'AmbientColor' (global 4-component vector of float)
 0:?       Constant:
 0:?         1.000000
 0:?         0.500000
 0:?         0.000000
 0:?         1.000000
-0:12  Function Definition: ShaderFunction(vf4; (temp 4-component vector of float)
+0:12  Function Definition: ShaderFunction(vf4; (global 4-component vector of float)
 0:9    Function Parameters: 
 0:9      'input' (in 4-component vector of float)
 0:?     Sequence
 0:10      Branch: Return with expression
 0:10        component-wise multiply (temp 4-component vector of float)
 0:10          'input' (in 4-component vector of float)
-0:10          'AmbientColor' (temp 4-component vector of float)
+0:10          'AmbientColor' (global 4-component vector of float)
 0:?   Linker Objects
-0:?     'AmbientColor' (temp 4-component vector of float)
-0:?     'ff1' (temp bool Face)
-0:?     'ff2' (temp 4-component vector of float)
-0:?     'ff3' (temp 4-component vector of float)
-0:?     'ff4' (temp 4-component vector of float FragCoord)
+0:?     'AmbientColor' (global 4-component vector of float)
+0:?     'ff1' (global bool Face)
+0:?     'ff2' (global 4-component vector of float)
+0:?     'ff3' (global 4-component vector of float)
+0:?     'ff4' (global 4-component vector of float FragCoord)
 
 // Module Version 10000
 // Generated by (magic number): 80001
-// Id's are bound by 29
+// Id's are bound by 30
 
                               Capability Shader
                1:             ExtInstImport  "GLSL.std.450"
@@ -68,39 +68,40 @@ gl_FragCoord origin is upper left
                               Name 4  "PixelShaderFunction"
                               Name 11  "ShaderFunction(vf4;"
                               Name 10  "input"
-                              Name 13  "AmbientColor"
-                              Name 25  "ff1"
-                              Name 26  "ff2"
-                              Name 27  "ff3"
-                              Name 28  "ff4"
-                              Decorate 25(ff1) BuiltIn FrontFacing
-                              Decorate 28(ff4) BuiltIn FragCoord
+                              Name 14  "AmbientColor"
+                              Name 26  "ff1"
+                              Name 27  "ff2"
+                              Name 28  "ff3"
+                              Name 29  "ff4"
+                              Decorate 26(ff1) BuiltIn FrontFacing
+                              Decorate 29(ff4) BuiltIn FragCoord
                2:             TypeVoid
                3:             TypeFunction 2
                6:             TypeFloat 32
                7:             TypeVector 6(float) 4
                8:             TypePointer Function 7(fvec4)
                9:             TypeFunction 7(fvec4) 8(ptr)
-              14:    6(float) Constant 1065353216
-              15:    6(float) Constant 1056964608
-              16:    6(float) Constant 0
-              17:    7(fvec4) ConstantComposite 14 15 16 14
-              23:             TypeBool
-              24:             TypePointer Function 23(bool)
+              13:             TypePointer Private 7(fvec4)
+14(AmbientColor):     13(ptr) Variable Private
+              15:    6(float) Constant 1065353216
+              16:    6(float) Constant 1056964608
+              17:    6(float) Constant 0
+              18:    7(fvec4) ConstantComposite 15 16 17 15
+              24:             TypeBool
+              25:             TypePointer Private 24(bool)
+         26(ff1):     25(ptr) Variable Private
+         27(ff2):     13(ptr) Variable Private
+         28(ff3):     13(ptr) Variable Private
+         29(ff4):     13(ptr) Variable Private
 4(PixelShaderFunction):           2 Function None 3
                5:             Label
-13(AmbientColor):      8(ptr) Variable Function
-                              Store 13(AmbientColor) 17
+                              Store 14(AmbientColor) 18
                               FunctionEnd
 11(ShaderFunction(vf4;):    7(fvec4) Function None 9
        10(input):      8(ptr) FunctionParameter
               12:             Label
-         25(ff1):     24(ptr) Variable Function
-         26(ff2):      8(ptr) Variable Function
-         27(ff3):      8(ptr) Variable Function
-         28(ff4):      8(ptr) Variable Function
-              18:    7(fvec4) Load 10(input)
-              19:    7(fvec4) Load 13(AmbientColor)
-              20:    7(fvec4) FMul 18 19
-                              ReturnValue 20
+              19:    7(fvec4) Load 10(input)
+              20:    7(fvec4) Load 14(AmbientColor)
+              21:    7(fvec4) FMul 19 20
+                              ReturnValue 21
                               FunctionEnd
index b073cbd..9764e26 100755 (executable)
@@ -2,7 +2,7 @@ hlsl.forLoop.frag
 Shader version: 450
 gl_FragCoord origin is upper left
 0:? Sequence
-0:14  Function Definition: PixelShaderFunction(vf4; (temp 4-component vector of float)
+0:14  Function Definition: PixelShaderFunction(vf4; (global 4-component vector of float)
 0:2    Function Parameters: 
 0:2      'input' (in 4-component vector of float)
 0:?     Sequence
@@ -116,7 +116,7 @@ Linked fragment stage:
 Shader version: 450
 gl_FragCoord origin is upper left
 0:? Sequence
-0:14  Function Definition: PixelShaderFunction(vf4; (temp 4-component vector of float)
+0:14  Function Definition: PixelShaderFunction(vf4; (global 4-component vector of float)
 0:2    Function Parameters: 
 0:2      'input' (in 4-component vector of float)
 0:?     Sequence
index ad9f2ba..4554ec6 100755 (executable)
@@ -2,7 +2,7 @@ hlsl.if.frag
 Shader version: 450
 gl_FragCoord origin is upper left
 0:? Sequence
-0:34  Function Definition: PixelShaderFunction(vf4; (temp 4-component vector of float)
+0:34  Function Definition: PixelShaderFunction(vf4; (global 4-component vector of float)
 0:2    Function Parameters: 
 0:2      'input' (in 4-component vector of float)
 0:?     Sequence
@@ -83,7 +83,7 @@ Linked fragment stage:
 Shader version: 450
 gl_FragCoord origin is upper left
 0:? Sequence
-0:34  Function Definition: PixelShaderFunction(vf4; (temp 4-component vector of float)
+0:34  Function Definition: PixelShaderFunction(vf4; (global 4-component vector of float)
 0:2    Function Parameters: 
 0:2      'input' (in 4-component vector of float)
 0:?     Sequence
index 06fbe42..a3176ce 100755 (executable)
@@ -4,14 +4,14 @@ gl_FragCoord origin is upper left
 0:? Sequence
 0:1  Sequence
 0:1    move second child to first child (temp 4-component vector of float)
-0:1      'a1' (temp 4-component vector of float)
+0:1      'a1' (global 4-component vector of float)
 0:?       Constant:
 0:?         1.000000
 0:?         0.500000
 0:?         0.000000
 0:?         1.000000
 0:1    move second child to first child (temp 4-component vector of float)
-0:1      'b1' (temp 4-component vector of float)
+0:1      'b1' (global 4-component vector of float)
 0:?       Constant:
 0:?         2.000000
 0:?         2.500000
@@ -19,29 +19,29 @@ gl_FragCoord origin is upper left
 0:?         2.200000
 0:2  Sequence
 0:2    move second child to first child (temp float)
-0:2      'a2' (temp float)
+0:2      'a2' (global float)
 0:2      Constant:
 0:2        0.200000
 0:?   Sequence
 0:3    move second child to first child (temp float)
-0:3      'b3' (temp float)
+0:3      'b3' (global float)
 0:3      Constant:
 0:3        0.300000
 0:?   Sequence
 0:4    move second child to first child (temp float)
-0:4      'b4' (temp float)
+0:4      'b4' (global float)
 0:4      Constant:
 0:4        0.400000
 0:5  Sequence
 0:5    move second child to first child (temp float)
-0:5      'a5' (temp float)
+0:5      'a5' (global float)
 0:5      Constant:
 0:5        0.500000
 0:5    move second child to first child (temp float)
-0:5      'c5' (temp float)
+0:5      'c5' (global float)
 0:5      Constant:
 0:5        1.500000
-0:13  Function Definition: ShaderFunction(vf4; (temp 4-component vector of float)
+0:13  Function Definition: ShaderFunction(vf4; (global 4-component vector of float)
 0:8    Function Parameters: 
 0:8      'input' (in 4-component vector of float)
 0:?     Sequence
@@ -56,20 +56,20 @@ gl_FragCoord origin is upper left
 0:11      Branch: Return with expression
 0:11        component-wise multiply (temp 4-component vector of float)
 0:11          'input' (in 4-component vector of float)
-0:11          'a1' (temp 4-component vector of float)
+0:11          'a1' (global 4-component vector of float)
 0:?   Linker Objects
-0:?     'a1' (temp 4-component vector of float)
-0:?     'b1' (temp 4-component vector of float)
-0:?     'a2' (temp float)
-0:?     'b2' (temp float)
-0:?     'a3' (temp float)
-0:?     'b3' (temp float)
-0:?     'a4' (temp float)
-0:?     'b4' (temp float)
-0:?     'c4' (temp float)
-0:?     'a5' (temp float)
-0:?     'b5' (temp float)
-0:?     'c5' (temp float)
+0:?     'a1' (global 4-component vector of float)
+0:?     'b1' (global 4-component vector of float)
+0:?     'a2' (global float)
+0:?     'b2' (global float)
+0:?     'a3' (global float)
+0:?     'b3' (global float)
+0:?     'a4' (global float)
+0:?     'b4' (global float)
+0:?     'c4' (global float)
+0:?     'a5' (global float)
+0:?     'b5' (global float)
+0:?     'c5' (global float)
 
 
 Linked fragment stage:
@@ -80,14 +80,14 @@ gl_FragCoord origin is upper left
 0:? Sequence
 0:1  Sequence
 0:1    move second child to first child (temp 4-component vector of float)
-0:1      'a1' (temp 4-component vector of float)
+0:1      'a1' (global 4-component vector of float)
 0:?       Constant:
 0:?         1.000000
 0:?         0.500000
 0:?         0.000000
 0:?         1.000000
 0:1    move second child to first child (temp 4-component vector of float)
-0:1      'b1' (temp 4-component vector of float)
+0:1      'b1' (global 4-component vector of float)
 0:?       Constant:
 0:?         2.000000
 0:?         2.500000
@@ -95,29 +95,29 @@ gl_FragCoord origin is upper left
 0:?         2.200000
 0:2  Sequence
 0:2    move second child to first child (temp float)
-0:2      'a2' (temp float)
+0:2      'a2' (global float)
 0:2      Constant:
 0:2        0.200000
 0:?   Sequence
 0:3    move second child to first child (temp float)
-0:3      'b3' (temp float)
+0:3      'b3' (global float)
 0:3      Constant:
 0:3        0.300000
 0:?   Sequence
 0:4    move second child to first child (temp float)
-0:4      'b4' (temp float)
+0:4      'b4' (global float)
 0:4      Constant:
 0:4        0.400000
 0:5  Sequence
 0:5    move second child to first child (temp float)
-0:5      'a5' (temp float)
+0:5      'a5' (global float)
 0:5      Constant:
 0:5        0.500000
 0:5    move second child to first child (temp float)
-0:5      'c5' (temp float)
+0:5      'c5' (global float)
 0:5      Constant:
 0:5        1.500000
-0:13  Function Definition: ShaderFunction(vf4; (temp 4-component vector of float)
+0:13  Function Definition: ShaderFunction(vf4; (global 4-component vector of float)
 0:8    Function Parameters: 
 0:8      'input' (in 4-component vector of float)
 0:?     Sequence
@@ -132,29 +132,29 @@ gl_FragCoord origin is upper left
 0:11      Branch: Return with expression
 0:11        component-wise multiply (temp 4-component vector of float)
 0:11          'input' (in 4-component vector of float)
-0:11          'a1' (temp 4-component vector of float)
+0:11          'a1' (global 4-component vector of float)
 0:?   Linker Objects
-0:?     'a1' (temp 4-component vector of float)
-0:?     'b1' (temp 4-component vector of float)
-0:?     'a2' (temp float)
-0:?     'b2' (temp float)
-0:?     'a3' (temp float)
-0:?     'b3' (temp float)
-0:?     'a4' (temp float)
-0:?     'b4' (temp float)
-0:?     'c4' (temp float)
-0:?     'a5' (temp float)
-0:?     'b5' (temp float)
-0:?     'c5' (temp float)
+0:?     'a1' (global 4-component vector of float)
+0:?     'b1' (global 4-component vector of float)
+0:?     'a2' (global float)
+0:?     'b2' (global float)
+0:?     'a3' (global float)
+0:?     'b3' (global float)
+0:?     'a4' (global float)
+0:?     'b4' (global float)
+0:?     'c4' (global float)
+0:?     'a5' (global float)
+0:?     'b5' (global float)
+0:?     'c5' (global float)
 
 // Module Version 10000
 // Generated by (magic number): 80001
-// Id's are bound by 43
+// Id's are bound by 44
 
                               Capability Shader
                1:             ExtInstImport  "GLSL.std.450"
                               MemoryModel Logical GLSL450
-                              EntryPoint Fragment 4  "ShaderFunction" 33
+                              EntryPoint Fragment 4  "ShaderFunction" 34
                               ExecutionMode 4 OriginUpperLeft
                               Source HLSL 450
                               Name 4  "ShaderFunction"
@@ -165,50 +165,51 @@ gl_FragCoord origin is upper left
                               Name 25  "b4"
                               Name 27  "a5"
                               Name 28  "c5"
-                              Name 30  "a2"
-                              Name 33  "input"
-                              Name 38  "b2"
-                              Name 39  "a3"
-                              Name 40  "a4"
-                              Name 41  "c4"
-                              Name 42  "b5"
+                              Name 31  "a2"
+                              Name 34  "input"
+                              Name 39  "b2"
+                              Name 40  "a3"
+                              Name 41  "a4"
+                              Name 42  "c4"
+                              Name 43  "b5"
                2:             TypeVoid
                3:             TypeFunction 2
                6:             TypeFloat 32
                7:             TypeVector 6(float) 4
-               8:             TypePointer Function 7(fvec4)
+               8:             TypePointer Private 7(fvec4)
+           9(a1):      8(ptr) Variable Private
               10:    6(float) Constant 1065353216
               11:    6(float) Constant 1056964608
               12:    6(float) Constant 0
               13:    7(fvec4) ConstantComposite 10 11 12 10
+          14(b1):      8(ptr) Variable Private
               15:    6(float) Constant 1073741824
               16:    6(float) Constant 1075838976
               17:    6(float) Constant 1074161254
               18:    6(float) Constant 1074580685
               19:    7(fvec4) ConstantComposite 15 16 17 18
-              20:             TypePointer Function 6(float)
+              20:             TypePointer Private 6(float)
+          21(a2):     20(ptr) Variable Private
               22:    6(float) Constant 1045220557
+          23(b3):     20(ptr) Variable Private
               24:    6(float) Constant 1050253722
+          25(b4):     20(ptr) Variable Private
               26:    6(float) Constant 1053609165
+          27(a5):     20(ptr) Variable Private
+          28(c5):     20(ptr) Variable Private
               29:    6(float) Constant 1069547520
-              31:    7(fvec4) ConstantComposite 22 24 26 11
-              32:             TypePointer Input 7(fvec4)
-       33(input):     32(ptr) Variable Input
+              30:             TypePointer Function 7(fvec4)
+              32:    7(fvec4) ConstantComposite 22 24 26 11
+              33:             TypePointer Input 7(fvec4)
+       34(input):     33(ptr) Variable Input
+          39(b2):     20(ptr) Variable Private
+          40(a3):     20(ptr) Variable Private
+          41(a4):     20(ptr) Variable Private
+          42(c4):     20(ptr) Variable Private
+          43(b5):     20(ptr) Variable Private
 4(ShaderFunction):           2 Function None 3
                5:             Label
-           9(a1):      8(ptr) Variable Function
-          14(b1):      8(ptr) Variable Function
-          21(a2):     20(ptr) Variable Function
-          23(b3):     20(ptr) Variable Function
-          25(b4):     20(ptr) Variable Function
-          27(a5):     20(ptr) Variable Function
-          28(c5):     20(ptr) Variable Function
-          30(a2):      8(ptr) Variable Function
-          38(b2):     20(ptr) Variable Function
-          39(a3):     20(ptr) Variable Function
-          40(a4):     20(ptr) Variable Function
-          41(c4):     20(ptr) Variable Function
-          42(b5):     20(ptr) Variable Function
+          31(a2):     30(ptr) Variable Function
                               Store 9(a1) 13
                               Store 14(b1) 19
                               Store 21(a2) 22
@@ -216,9 +217,9 @@ gl_FragCoord origin is upper left
                               Store 25(b4) 26
                               Store 27(a5) 11
                               Store 28(c5) 29
-                              Store 30(a2) 31
-              34:    7(fvec4) Load 33(input)
-              35:    7(fvec4) Load 9(a1)
-              36:    7(fvec4) FMul 34 35
-                              ReturnValue 36
+                              Store 31(a2) 32
+              35:    7(fvec4) Load 34(input)
+              36:    7(fvec4) Load 9(a1)
+              37:    7(fvec4) FMul 35 36
+                              ReturnValue 37
                               FunctionEnd
index ba8a04b..c400fea 100644 (file)
@@ -2,7 +2,7 @@ hlsl.intrinsics.barriers.comp
 Shader version: 450
 local_size = (1, 1, 1)
 0:? Sequence
-0:14  Function Definition: ComputeShaderFunction( (temp float)
+0:14  Function Definition: ComputeShaderFunction( (global float)
 0:3    Function Parameters: 
 0:?     Sequence
 0:4      MemoryBarrier (global void)
@@ -23,7 +23,7 @@ Linked compute stage:
 Shader version: 450
 local_size = (1, 1, 1)
 0:? Sequence
-0:14  Function Definition: ComputeShaderFunction( (temp float)
+0:14  Function Definition: ComputeShaderFunction( (global float)
 0:3    Function Parameters: 
 0:?     Sequence
 0:4      MemoryBarrier (global void)
index 820d2d5..4c7eabb 100644 (file)
@@ -2,7 +2,7 @@ hlsl.intrinsics.comp
 Shader version: 450
 local_size = (1, 1, 1)
 0:? Sequence
-0:44  Function Definition: ComputeShaderFunctionS(f1;f1;f1;u1;u1; (temp float)
+0:44  Function Definition: ComputeShaderFunctionS(f1;f1;f1;u1;u1; (global float)
 0:17    Function Parameters: 
 0:17      'inF0' (in float)
 0:17      'inF1' (in float)
@@ -13,68 +13,68 @@ local_size = (1, 1, 1)
 0:21      all (global bool)
 0:21        'inF0' (in float)
 0:24      AtomicAdd (global void)
-0:24        'gs_ua' (temp uint)
-0:24        'gs_ub' (temp uint)
+0:24        'gs_ua' (global uint)
+0:24        'gs_ub' (global uint)
 0:25      move second child to first child (temp uint)
 0:25        'out_u1' (temp uint)
 0:25        AtomicAdd (temp uint)
-0:25          'gs_ua' (temp uint)
-0:25          'gs_ub' (temp uint)
+0:25          'gs_ua' (global uint)
+0:25          'gs_ub' (global uint)
 0:26      AtomicAnd (global void)
-0:26        'gs_ua' (temp uint)
-0:26        'gs_ub' (temp uint)
+0:26        'gs_ua' (global uint)
+0:26        'gs_ub' (global uint)
 0:27      move second child to first child (temp uint)
 0:27        'out_u1' (temp uint)
 0:27        AtomicAnd (temp uint)
-0:27          'gs_ua' (temp uint)
-0:27          'gs_ub' (temp uint)
+0:27          'gs_ua' (global uint)
+0:27          'gs_ub' (global uint)
 0:28      move second child to first child (temp uint)
 0:28        'out_u1' (temp uint)
 0:28        AtomicCompSwap (temp uint)
-0:28          'gs_ua' (temp uint)
-0:28          'gs_ub' (temp uint)
-0:28          'gs_uc' (temp uint)
+0:28          'gs_ua' (global uint)
+0:28          'gs_ub' (global uint)
+0:28          'gs_uc' (global uint)
 0:29      move second child to first child (temp uint)
 0:29        'out_u1' (temp uint)
 0:29        AtomicExchange (temp uint)
-0:29          'gs_ua' (temp uint)
-0:29          'gs_ub' (temp uint)
+0:29          'gs_ua' (global uint)
+0:29          'gs_ub' (global uint)
 0:30      AtomicMax (global void)
-0:30        'gs_ua' (temp uint)
-0:30        'gs_ub' (temp uint)
+0:30        'gs_ua' (global uint)
+0:30        'gs_ub' (global uint)
 0:31      move second child to first child (temp uint)
 0:31        'out_u1' (temp uint)
 0:31        AtomicMax (temp uint)
-0:31          'gs_ua' (temp uint)
-0:31          'gs_ub' (temp uint)
+0:31          'gs_ua' (global uint)
+0:31          'gs_ub' (global uint)
 0:32      AtomicMin (global void)
-0:32        'gs_ua' (temp uint)
-0:32        'gs_ub' (temp uint)
+0:32        'gs_ua' (global uint)
+0:32        'gs_ub' (global uint)
 0:33      move second child to first child (temp uint)
 0:33        'out_u1' (temp uint)
 0:33        AtomicMin (temp uint)
-0:33          'gs_ua' (temp uint)
-0:33          'gs_ub' (temp uint)
+0:33          'gs_ua' (global uint)
+0:33          'gs_ub' (global uint)
 0:34      AtomicOr (global void)
-0:34        'gs_ua' (temp uint)
-0:34        'gs_ub' (temp uint)
+0:34        'gs_ua' (global uint)
+0:34        'gs_ub' (global uint)
 0:35      move second child to first child (temp uint)
 0:35        'out_u1' (temp uint)
 0:35        AtomicOr (temp uint)
-0:35          'gs_ua' (temp uint)
-0:35          'gs_ub' (temp uint)
+0:35          'gs_ua' (global uint)
+0:35          'gs_ub' (global uint)
 0:36      AtomicXor (global void)
-0:36        'gs_ua' (temp uint)
-0:36        'gs_ub' (temp uint)
+0:36        'gs_ua' (global uint)
+0:36        'gs_ub' (global uint)
 0:37      move second child to first child (temp uint)
 0:37        'out_u1' (temp uint)
 0:37        AtomicXor (temp uint)
-0:37          'gs_ua' (temp uint)
-0:37          'gs_ub' (temp uint)
+0:37          'gs_ua' (global uint)
+0:37          'gs_ub' (global uint)
 0:41      Branch: Return with expression
 0:41        Constant:
 0:41          0.000000
-0:50  Function Definition: ComputeShaderFunction1(vf1;vf1;vf1; (temp 1-component vector of float)
+0:50  Function Definition: ComputeShaderFunction1(vf1;vf1;vf1; (global 1-component vector of float)
 0:45    Function Parameters: 
 0:45      'inF0' (in 1-component vector of float)
 0:45      'inF1' (in 1-component vector of float)
@@ -83,7 +83,7 @@ local_size = (1, 1, 1)
 0:47      Branch: Return with expression
 0:47        Constant:
 0:47          0.000000
-0:77  Function Definition: ComputeShaderFunction2(vf2;vf2;vf2;vu2;vu2; (temp 2-component vector of float)
+0:77  Function Definition: ComputeShaderFunction2(vf2;vf2;vf2;vu2;vu2; (global 2-component vector of float)
 0:51    Function Parameters: 
 0:51      'inF0' (in 2-component vector of float)
 0:51      'inF1' (in 2-component vector of float)
@@ -94,69 +94,69 @@ local_size = (1, 1, 1)
 0:55      all (global bool)
 0:55        'inF0' (in 2-component vector of float)
 0:58      AtomicAdd (global void)
-0:58        'gs_ua2' (temp 2-component vector of uint)
-0:58        'gs_ub2' (temp 2-component vector of uint)
+0:58        'gs_ua2' (global 2-component vector of uint)
+0:58        'gs_ub2' (global 2-component vector of uint)
 0:59      move second child to first child (temp 2-component vector of uint)
 0:59        'out_u2' (temp 2-component vector of uint)
 0:59        AtomicAdd (temp 2-component vector of uint)
-0:59          'gs_ua2' (temp 2-component vector of uint)
-0:59          'gs_ub2' (temp 2-component vector of uint)
+0:59          'gs_ua2' (global 2-component vector of uint)
+0:59          'gs_ub2' (global 2-component vector of uint)
 0:60      AtomicAnd (global void)
-0:60        'gs_ua2' (temp 2-component vector of uint)
-0:60        'gs_ub2' (temp 2-component vector of uint)
+0:60        'gs_ua2' (global 2-component vector of uint)
+0:60        'gs_ub2' (global 2-component vector of uint)
 0:61      move second child to first child (temp 2-component vector of uint)
 0:61        'out_u2' (temp 2-component vector of uint)
 0:61        AtomicAnd (temp 2-component vector of uint)
-0:61          'gs_ua2' (temp 2-component vector of uint)
-0:61          'gs_ub2' (temp 2-component vector of uint)
+0:61          'gs_ua2' (global 2-component vector of uint)
+0:61          'gs_ub2' (global 2-component vector of uint)
 0:62      move second child to first child (temp 2-component vector of uint)
 0:62        'out_u2' (temp 2-component vector of uint)
 0:62        AtomicCompSwap (temp 2-component vector of uint)
-0:62          'gs_ua2' (temp 2-component vector of uint)
-0:62          'gs_ub2' (temp 2-component vector of uint)
-0:62          'gs_uc2' (temp 2-component vector of uint)
+0:62          'gs_ua2' (global 2-component vector of uint)
+0:62          'gs_ub2' (global 2-component vector of uint)
+0:62          'gs_uc2' (global 2-component vector of uint)
 0:63      move second child to first child (temp 2-component vector of uint)
 0:63        'out_u2' (temp 2-component vector of uint)
 0:63        AtomicExchange (temp 2-component vector of uint)
-0:63          'gs_ua2' (temp 2-component vector of uint)
-0:63          'gs_ub2' (temp 2-component vector of uint)
+0:63          'gs_ua2' (global 2-component vector of uint)
+0:63          'gs_ub2' (global 2-component vector of uint)
 0:64      AtomicMax (global void)
-0:64        'gs_ua2' (temp 2-component vector of uint)
-0:64        'gs_ub2' (temp 2-component vector of uint)
+0:64        'gs_ua2' (global 2-component vector of uint)
+0:64        'gs_ub2' (global 2-component vector of uint)
 0:65      move second child to first child (temp 2-component vector of uint)
 0:65        'out_u2' (temp 2-component vector of uint)
 0:65        AtomicMax (temp 2-component vector of uint)
-0:65          'gs_ua2' (temp 2-component vector of uint)
-0:65          'gs_ub2' (temp 2-component vector of uint)
+0:65          'gs_ua2' (global 2-component vector of uint)
+0:65          'gs_ub2' (global 2-component vector of uint)
 0:66      AtomicMin (global void)
-0:66        'gs_ua2' (temp 2-component vector of uint)
-0:66        'gs_ub2' (temp 2-component vector of uint)
+0:66        'gs_ua2' (global 2-component vector of uint)
+0:66        'gs_ub2' (global 2-component vector of uint)
 0:67      move second child to first child (temp 2-component vector of uint)
 0:67        'out_u2' (temp 2-component vector of uint)
 0:67        AtomicMin (temp 2-component vector of uint)
-0:67          'gs_ua2' (temp 2-component vector of uint)
-0:67          'gs_ub2' (temp 2-component vector of uint)
+0:67          'gs_ua2' (global 2-component vector of uint)
+0:67          'gs_ub2' (global 2-component vector of uint)
 0:68      AtomicOr (global void)
-0:68        'gs_ua2' (temp 2-component vector of uint)
-0:68        'gs_ub2' (temp 2-component vector of uint)
+0:68        'gs_ua2' (global 2-component vector of uint)
+0:68        'gs_ub2' (global 2-component vector of uint)
 0:69      move second child to first child (temp 2-component vector of uint)
 0:69        'out_u2' (temp 2-component vector of uint)
 0:69        AtomicOr (temp 2-component vector of uint)
-0:69          'gs_ua2' (temp 2-component vector of uint)
-0:69          'gs_ub2' (temp 2-component vector of uint)
+0:69          'gs_ua2' (global 2-component vector of uint)
+0:69          'gs_ub2' (global 2-component vector of uint)
 0:70      AtomicXor (global void)
-0:70        'gs_ua2' (temp 2-component vector of uint)
-0:70        'gs_ub2' (temp 2-component vector of uint)
+0:70        'gs_ua2' (global 2-component vector of uint)
+0:70        'gs_ub2' (global 2-component vector of uint)
 0:71      move second child to first child (temp 2-component vector of uint)
 0:71        'out_u2' (temp 2-component vector of uint)
 0:71        AtomicXor (temp 2-component vector of uint)
-0:71          'gs_ua2' (temp 2-component vector of uint)
-0:71          'gs_ub2' (temp 2-component vector of uint)
+0:71          'gs_ua2' (global 2-component vector of uint)
+0:71          'gs_ub2' (global 2-component vector of uint)
 0:74      Branch: Return with expression
 0:?         Constant:
 0:?           1.000000
 0:?           2.000000
-0:104  Function Definition: ComputeShaderFunction3(vf3;vf3;vf3;vu3;vu3; (temp 3-component vector of float)
+0:104  Function Definition: ComputeShaderFunction3(vf3;vf3;vf3;vu3;vu3; (global 3-component vector of float)
 0:78    Function Parameters: 
 0:78      'inF0' (in 3-component vector of float)
 0:78      'inF1' (in 3-component vector of float)
@@ -167,70 +167,70 @@ local_size = (1, 1, 1)
 0:82      all (global bool)
 0:82        'inF0' (in 3-component vector of float)
 0:85      AtomicAdd (global void)
-0:85        'gs_ua3' (temp 3-component vector of uint)
-0:85        'gs_ub3' (temp 3-component vector of uint)
+0:85        'gs_ua3' (global 3-component vector of uint)
+0:85        'gs_ub3' (global 3-component vector of uint)
 0:86      move second child to first child (temp 3-component vector of uint)
 0:86        'out_u3' (temp 3-component vector of uint)
 0:86        AtomicAdd (temp 3-component vector of uint)
-0:86          'gs_ua3' (temp 3-component vector of uint)
-0:86          'gs_ub3' (temp 3-component vector of uint)
+0:86          'gs_ua3' (global 3-component vector of uint)
+0:86          'gs_ub3' (global 3-component vector of uint)
 0:87      AtomicAnd (global void)
-0:87        'gs_ua3' (temp 3-component vector of uint)
-0:87        'gs_ub3' (temp 3-component vector of uint)
+0:87        'gs_ua3' (global 3-component vector of uint)
+0:87        'gs_ub3' (global 3-component vector of uint)
 0:88      move second child to first child (temp 3-component vector of uint)
 0:88        'out_u3' (temp 3-component vector of uint)
 0:88        AtomicAnd (temp 3-component vector of uint)
-0:88          'gs_ua3' (temp 3-component vector of uint)
-0:88          'gs_ub3' (temp 3-component vector of uint)
+0:88          'gs_ua3' (global 3-component vector of uint)
+0:88          'gs_ub3' (global 3-component vector of uint)
 0:89      move second child to first child (temp 3-component vector of uint)
 0:89        'out_u3' (temp 3-component vector of uint)
 0:89        AtomicCompSwap (temp 3-component vector of uint)
-0:89          'gs_ua3' (temp 3-component vector of uint)
-0:89          'gs_ub3' (temp 3-component vector of uint)
-0:89          'gs_uc3' (temp 3-component vector of uint)
+0:89          'gs_ua3' (global 3-component vector of uint)
+0:89          'gs_ub3' (global 3-component vector of uint)
+0:89          'gs_uc3' (global 3-component vector of uint)
 0:90      move second child to first child (temp 3-component vector of uint)
 0:90        'out_u3' (temp 3-component vector of uint)
 0:90        AtomicExchange (temp 3-component vector of uint)
-0:90          'gs_ua3' (temp 3-component vector of uint)
-0:90          'gs_ub3' (temp 3-component vector of uint)
+0:90          'gs_ua3' (global 3-component vector of uint)
+0:90          'gs_ub3' (global 3-component vector of uint)
 0:91      AtomicMax (global void)
-0:91        'gs_ua3' (temp 3-component vector of uint)
-0:91        'gs_ub3' (temp 3-component vector of uint)
+0:91        'gs_ua3' (global 3-component vector of uint)
+0:91        'gs_ub3' (global 3-component vector of uint)
 0:92      move second child to first child (temp 3-component vector of uint)
 0:92        'out_u3' (temp 3-component vector of uint)
 0:92        AtomicMax (temp 3-component vector of uint)
-0:92          'gs_ua3' (temp 3-component vector of uint)
-0:92          'gs_ub3' (temp 3-component vector of uint)
+0:92          'gs_ua3' (global 3-component vector of uint)
+0:92          'gs_ub3' (global 3-component vector of uint)
 0:93      AtomicMin (global void)
-0:93        'gs_ua3' (temp 3-component vector of uint)
-0:93        'gs_ub3' (temp 3-component vector of uint)
+0:93        'gs_ua3' (global 3-component vector of uint)
+0:93        'gs_ub3' (global 3-component vector of uint)
 0:94      move second child to first child (temp 3-component vector of uint)
 0:94        'out_u3' (temp 3-component vector of uint)
 0:94        AtomicMin (temp 3-component vector of uint)
-0:94          'gs_ua3' (temp 3-component vector of uint)
-0:94          'gs_ub3' (temp 3-component vector of uint)
+0:94          'gs_ua3' (global 3-component vector of uint)
+0:94          'gs_ub3' (global 3-component vector of uint)
 0:95      AtomicOr (global void)
-0:95        'gs_ua3' (temp 3-component vector of uint)
-0:95        'gs_ub3' (temp 3-component vector of uint)
+0:95        'gs_ua3' (global 3-component vector of uint)
+0:95        'gs_ub3' (global 3-component vector of uint)
 0:96      move second child to first child (temp 3-component vector of uint)
 0:96        'out_u3' (temp 3-component vector of uint)
 0:96        AtomicOr (temp 3-component vector of uint)
-0:96          'gs_ua3' (temp 3-component vector of uint)
-0:96          'gs_ub3' (temp 3-component vector of uint)
+0:96          'gs_ua3' (global 3-component vector of uint)
+0:96          'gs_ub3' (global 3-component vector of uint)
 0:97      AtomicXor (global void)
-0:97        'gs_ua3' (temp 3-component vector of uint)
-0:97        'gs_ub3' (temp 3-component vector of uint)
+0:97        'gs_ua3' (global 3-component vector of uint)
+0:97        'gs_ub3' (global 3-component vector of uint)
 0:98      move second child to first child (temp 3-component vector of uint)
 0:98        'out_u3' (temp 3-component vector of uint)
 0:98        AtomicXor (temp 3-component vector of uint)
-0:98          'gs_ua3' (temp 3-component vector of uint)
-0:98          'gs_ub3' (temp 3-component vector of uint)
+0:98          'gs_ua3' (global 3-component vector of uint)
+0:98          'gs_ub3' (global 3-component vector of uint)
 0:101      Branch: Return with expression
 0:?         Constant:
 0:?           1.000000
 0:?           2.000000
 0:?           3.000000
-0:130  Function Definition: ComputeShaderFunction(vf4;vf4;vf4;vu4;vu4; (temp 4-component vector of float)
+0:130  Function Definition: ComputeShaderFunction(vf4;vf4;vf4;vu4;vu4; (global 4-component vector of float)
 0:105    Function Parameters: 
 0:105      'inF0' (in 4-component vector of float)
 0:105      'inF1' (in 4-component vector of float)
@@ -241,64 +241,64 @@ local_size = (1, 1, 1)
 0:109      all (global bool)
 0:109        'inF0' (in 4-component vector of float)
 0:112      AtomicAdd (global void)
-0:112        'gs_ua4' (temp 4-component vector of uint)
-0:112        'gs_ub4' (temp 4-component vector of uint)
+0:112        'gs_ua4' (global 4-component vector of uint)
+0:112        'gs_ub4' (global 4-component vector of uint)
 0:113      move second child to first child (temp 4-component vector of uint)
 0:113        'out_u4' (temp 4-component vector of uint)
 0:113        AtomicAdd (temp 4-component vector of uint)
-0:113          'gs_ua4' (temp 4-component vector of uint)
-0:113          'gs_ub4' (temp 4-component vector of uint)
+0:113          'gs_ua4' (global 4-component vector of uint)
+0:113          'gs_ub4' (global 4-component vector of uint)
 0:114      AtomicAnd (global void)
-0:114        'gs_ua4' (temp 4-component vector of uint)
-0:114        'gs_ub4' (temp 4-component vector of uint)
+0:114        'gs_ua4' (global 4-component vector of uint)
+0:114        'gs_ub4' (global 4-component vector of uint)
 0:115      move second child to first child (temp 4-component vector of uint)
 0:115        'out_u4' (temp 4-component vector of uint)
 0:115        AtomicAnd (temp 4-component vector of uint)
-0:115          'gs_ua4' (temp 4-component vector of uint)
-0:115          'gs_ub4' (temp 4-component vector of uint)
+0:115          'gs_ua4' (global 4-component vector of uint)
+0:115          'gs_ub4' (global 4-component vector of uint)
 0:116      move second child to first child (temp 4-component vector of uint)
 0:116        'out_u4' (temp 4-component vector of uint)
 0:116        AtomicCompSwap (temp 4-component vector of uint)
-0:116          'gs_ua4' (temp 4-component vector of uint)
-0:116          'gs_ub4' (temp 4-component vector of uint)
-0:116          'gs_uc4' (temp 4-component vector of uint)
+0:116          'gs_ua4' (global 4-component vector of uint)
+0:116          'gs_ub4' (global 4-component vector of uint)
+0:116          'gs_uc4' (global 4-component vector of uint)
 0:117      move second child to first child (temp 4-component vector of uint)
 0:117        'out_u4' (temp 4-component vector of uint)
 0:117        AtomicExchange (temp 4-component vector of uint)
-0:117          'gs_ua4' (temp 4-component vector of uint)
-0:117          'gs_ub4' (temp 4-component vector of uint)
+0:117          'gs_ua4' (global 4-component vector of uint)
+0:117          'gs_ub4' (global 4-component vector of uint)
 0:118      AtomicMax (global void)
-0:118        'gs_ua4' (temp 4-component vector of uint)
-0:118        'gs_ub4' (temp 4-component vector of uint)
+0:118        'gs_ua4' (global 4-component vector of uint)
+0:118        'gs_ub4' (global 4-component vector of uint)
 0:119      move second child to first child (temp 4-component vector of uint)
 0:119        'out_u4' (temp 4-component vector of uint)
 0:119        AtomicMax (temp 4-component vector of uint)
-0:119          'gs_ua4' (temp 4-component vector of uint)
-0:119          'gs_ub4' (temp 4-component vector of uint)
+0:119          'gs_ua4' (global 4-component vector of uint)
+0:119          'gs_ub4' (global 4-component vector of uint)
 0:120      AtomicMin (global void)
-0:120        'gs_ua4' (temp 4-component vector of uint)
-0:120        'gs_ub4' (temp 4-component vector of uint)
+0:120        'gs_ua4' (global 4-component vector of uint)
+0:120        'gs_ub4' (global 4-component vector of uint)
 0:121      move second child to first child (temp 4-component vector of uint)
 0:121        'out_u4' (temp 4-component vector of uint)
 0:121        AtomicMin (temp 4-component vector of uint)
-0:121          'gs_ua4' (temp 4-component vector of uint)
-0:121          'gs_ub4' (temp 4-component vector of uint)
+0:121          'gs_ua4' (global 4-component vector of uint)
+0:121          'gs_ub4' (global 4-component vector of uint)
 0:122      AtomicOr (global void)
-0:122        'gs_ua4' (temp 4-component vector of uint)
-0:122        'gs_ub4' (temp 4-component vector of uint)
+0:122        'gs_ua4' (global 4-component vector of uint)
+0:122        'gs_ub4' (global 4-component vector of uint)
 0:123      move second child to first child (temp 4-component vector of uint)
 0:123        'out_u4' (temp 4-component vector of uint)
 0:123        AtomicOr (temp 4-component vector of uint)
-0:123          'gs_ua4' (temp 4-component vector of uint)
-0:123          'gs_ub4' (temp 4-component vector of uint)
+0:123          'gs_ua4' (global 4-component vector of uint)
+0:123          'gs_ub4' (global 4-component vector of uint)
 0:124      AtomicXor (global void)
-0:124        'gs_ua4' (temp 4-component vector of uint)
-0:124        'gs_ub4' (temp 4-component vector of uint)
+0:124        'gs_ua4' (global 4-component vector of uint)
+0:124        'gs_ub4' (global 4-component vector of uint)
 0:125      move second child to first child (temp 4-component vector of uint)
 0:125        'out_u4' (temp 4-component vector of uint)
 0:125        AtomicXor (temp 4-component vector of uint)
-0:125          'gs_ua4' (temp 4-component vector of uint)
-0:125          'gs_ub4' (temp 4-component vector of uint)
+0:125          'gs_ua4' (global 4-component vector of uint)
+0:125          'gs_ub4' (global 4-component vector of uint)
 0:128      Branch: Return with expression
 0:?         Constant:
 0:?           1.000000
@@ -306,18 +306,18 @@ local_size = (1, 1, 1)
 0:?           3.000000
 0:?           4.000000
 0:?   Linker Objects
-0:?     'gs_ua' (temp uint)
-0:?     'gs_ub' (temp uint)
-0:?     'gs_uc' (temp uint)
-0:?     'gs_ua2' (temp 2-component vector of uint)
-0:?     'gs_ub2' (temp 2-component vector of uint)
-0:?     'gs_uc2' (temp 2-component vector of uint)
-0:?     'gs_ua3' (temp 3-component vector of uint)
-0:?     'gs_ub3' (temp 3-component vector of uint)
-0:?     'gs_uc3' (temp 3-component vector of uint)
-0:?     'gs_ua4' (temp 4-component vector of uint)
-0:?     'gs_ub4' (temp 4-component vector of uint)
-0:?     'gs_uc4' (temp 4-component vector of uint)
+0:?     'gs_ua' (global uint)
+0:?     'gs_ub' (global uint)
+0:?     'gs_uc' (global uint)
+0:?     'gs_ua2' (global 2-component vector of uint)
+0:?     'gs_ub2' (global 2-component vector of uint)
+0:?     'gs_uc2' (global 2-component vector of uint)
+0:?     'gs_ua3' (global 3-component vector of uint)
+0:?     'gs_ub3' (global 3-component vector of uint)
+0:?     'gs_uc3' (global 3-component vector of uint)
+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)
 
 
 Linked compute stage:
@@ -326,7 +326,7 @@ Linked compute stage:
 Shader version: 450
 local_size = (1, 1, 1)
 0:? Sequence
-0:44  Function Definition: ComputeShaderFunctionS(f1;f1;f1;u1;u1; (temp float)
+0:44  Function Definition: ComputeShaderFunctionS(f1;f1;f1;u1;u1; (global float)
 0:17    Function Parameters: 
 0:17      'inF0' (in float)
 0:17      'inF1' (in float)
@@ -337,68 +337,68 @@ local_size = (1, 1, 1)
 0:21      all (global bool)
 0:21        'inF0' (in float)
 0:24      AtomicAdd (global void)
-0:24        'gs_ua' (temp uint)
-0:24        'gs_ub' (temp uint)
+0:24        'gs_ua' (global uint)
+0:24        'gs_ub' (global uint)
 0:25      move second child to first child (temp uint)
 0:25        'out_u1' (temp uint)
 0:25        AtomicAdd (temp uint)
-0:25          'gs_ua' (temp uint)
-0:25          'gs_ub' (temp uint)
+0:25          'gs_ua' (global uint)
+0:25          'gs_ub' (global uint)
 0:26      AtomicAnd (global void)
-0:26        'gs_ua' (temp uint)
-0:26        'gs_ub' (temp uint)
+0:26        'gs_ua' (global uint)
+0:26        'gs_ub' (global uint)
 0:27      move second child to first child (temp uint)
 0:27        'out_u1' (temp uint)
 0:27        AtomicAnd (temp uint)
-0:27          'gs_ua' (temp uint)
-0:27          'gs_ub' (temp uint)
+0:27          'gs_ua' (global uint)
+0:27          'gs_ub' (global uint)
 0:28      move second child to first child (temp uint)
 0:28        'out_u1' (temp uint)
 0:28        AtomicCompSwap (temp uint)
-0:28          'gs_ua' (temp uint)
-0:28          'gs_ub' (temp uint)
-0:28          'gs_uc' (temp uint)
+0:28          'gs_ua' (global uint)
+0:28          'gs_ub' (global uint)
+0:28          'gs_uc' (global uint)
 0:29      move second child to first child (temp uint)
 0:29        'out_u1' (temp uint)
 0:29        AtomicExchange (temp uint)
-0:29          'gs_ua' (temp uint)
-0:29          'gs_ub' (temp uint)
+0:29          'gs_ua' (global uint)
+0:29          'gs_ub' (global uint)
 0:30      AtomicMax (global void)
-0:30        'gs_ua' (temp uint)
-0:30        'gs_ub' (temp uint)
+0:30        'gs_ua' (global uint)
+0:30        'gs_ub' (global uint)
 0:31      move second child to first child (temp uint)
 0:31        'out_u1' (temp uint)
 0:31        AtomicMax (temp uint)
-0:31          'gs_ua' (temp uint)
-0:31          'gs_ub' (temp uint)
+0:31          'gs_ua' (global uint)
+0:31          'gs_ub' (global uint)
 0:32      AtomicMin (global void)
-0:32        'gs_ua' (temp uint)
-0:32        'gs_ub' (temp uint)
+0:32        'gs_ua' (global uint)
+0:32        'gs_ub' (global uint)
 0:33      move second child to first child (temp uint)
 0:33        'out_u1' (temp uint)
 0:33        AtomicMin (temp uint)
-0:33          'gs_ua' (temp uint)
-0:33          'gs_ub' (temp uint)
+0:33          'gs_ua' (global uint)
+0:33          'gs_ub' (global uint)
 0:34      AtomicOr (global void)
-0:34        'gs_ua' (temp uint)
-0:34        'gs_ub' (temp uint)
+0:34        'gs_ua' (global uint)
+0:34        'gs_ub' (global uint)
 0:35      move second child to first child (temp uint)
 0:35        'out_u1' (temp uint)
 0:35        AtomicOr (temp uint)
-0:35          'gs_ua' (temp uint)
-0:35          'gs_ub' (temp uint)
+0:35          'gs_ua' (global uint)
+0:35          'gs_ub' (global uint)
 0:36      AtomicXor (global void)
-0:36        'gs_ua' (temp uint)
-0:36        'gs_ub' (temp uint)
+0:36        'gs_ua' (global uint)
+0:36        'gs_ub' (global uint)
 0:37      move second child to first child (temp uint)
 0:37        'out_u1' (temp uint)
 0:37        AtomicXor (temp uint)
-0:37          'gs_ua' (temp uint)
-0:37          'gs_ub' (temp uint)
+0:37          'gs_ua' (global uint)
+0:37          'gs_ub' (global uint)
 0:41      Branch: Return with expression
 0:41        Constant:
 0:41          0.000000
-0:50  Function Definition: ComputeShaderFunction1(vf1;vf1;vf1; (temp 1-component vector of float)
+0:50  Function Definition: ComputeShaderFunction1(vf1;vf1;vf1; (global 1-component vector of float)
 0:45    Function Parameters: 
 0:45      'inF0' (in 1-component vector of float)
 0:45      'inF1' (in 1-component vector of float)
@@ -407,7 +407,7 @@ local_size = (1, 1, 1)
 0:47      Branch: Return with expression
 0:47        Constant:
 0:47          0.000000
-0:77  Function Definition: ComputeShaderFunction2(vf2;vf2;vf2;vu2;vu2; (temp 2-component vector of float)
+0:77  Function Definition: ComputeShaderFunction2(vf2;vf2;vf2;vu2;vu2; (global 2-component vector of float)
 0:51    Function Parameters: 
 0:51      'inF0' (in 2-component vector of float)
 0:51      'inF1' (in 2-component vector of float)
@@ -418,69 +418,69 @@ local_size = (1, 1, 1)
 0:55      all (global bool)
 0:55        'inF0' (in 2-component vector of float)
 0:58      AtomicAdd (global void)
-0:58        'gs_ua2' (temp 2-component vector of uint)
-0:58        'gs_ub2' (temp 2-component vector of uint)
+0:58        'gs_ua2' (global 2-component vector of uint)
+0:58        'gs_ub2' (global 2-component vector of uint)
 0:59      move second child to first child (temp 2-component vector of uint)
 0:59        'out_u2' (temp 2-component vector of uint)
 0:59        AtomicAdd (temp 2-component vector of uint)
-0:59          'gs_ua2' (temp 2-component vector of uint)
-0:59          'gs_ub2' (temp 2-component vector of uint)
+0:59          'gs_ua2' (global 2-component vector of uint)
+0:59          'gs_ub2' (global 2-component vector of uint)
 0:60      AtomicAnd (global void)
-0:60        'gs_ua2' (temp 2-component vector of uint)
-0:60        'gs_ub2' (temp 2-component vector of uint)
+0:60        'gs_ua2' (global 2-component vector of uint)
+0:60        'gs_ub2' (global 2-component vector of uint)
 0:61      move second child to first child (temp 2-component vector of uint)
 0:61        'out_u2' (temp 2-component vector of uint)
 0:61        AtomicAnd (temp 2-component vector of uint)
-0:61          'gs_ua2' (temp 2-component vector of uint)
-0:61          'gs_ub2' (temp 2-component vector of uint)
+0:61          'gs_ua2' (global 2-component vector of uint)
+0:61          'gs_ub2' (global 2-component vector of uint)
 0:62      move second child to first child (temp 2-component vector of uint)
 0:62        'out_u2' (temp 2-component vector of uint)
 0:62        AtomicCompSwap (temp 2-component vector of uint)
-0:62          'gs_ua2' (temp 2-component vector of uint)
-0:62          'gs_ub2' (temp 2-component vector of uint)
-0:62          'gs_uc2' (temp 2-component vector of uint)
+0:62          'gs_ua2' (global 2-component vector of uint)
+0:62          'gs_ub2' (global 2-component vector of uint)
+0:62          'gs_uc2' (global 2-component vector of uint)
 0:63      move second child to first child (temp 2-component vector of uint)
 0:63        'out_u2' (temp 2-component vector of uint)
 0:63        AtomicExchange (temp 2-component vector of uint)
-0:63          'gs_ua2' (temp 2-component vector of uint)
-0:63          'gs_ub2' (temp 2-component vector of uint)
+0:63          'gs_ua2' (global 2-component vector of uint)
+0:63          'gs_ub2' (global 2-component vector of uint)
 0:64      AtomicMax (global void)
-0:64        'gs_ua2' (temp 2-component vector of uint)
-0:64        'gs_ub2' (temp 2-component vector of uint)
+0:64        'gs_ua2' (global 2-component vector of uint)
+0:64        'gs_ub2' (global 2-component vector of uint)
 0:65      move second child to first child (temp 2-component vector of uint)
 0:65        'out_u2' (temp 2-component vector of uint)
 0:65        AtomicMax (temp 2-component vector of uint)
-0:65          'gs_ua2' (temp 2-component vector of uint)
-0:65          'gs_ub2' (temp 2-component vector of uint)
+0:65          'gs_ua2' (global 2-component vector of uint)
+0:65          'gs_ub2' (global 2-component vector of uint)
 0:66      AtomicMin (global void)
-0:66        'gs_ua2' (temp 2-component vector of uint)
-0:66        'gs_ub2' (temp 2-component vector of uint)
+0:66        'gs_ua2' (global 2-component vector of uint)
+0:66        'gs_ub2' (global 2-component vector of uint)
 0:67      move second child to first child (temp 2-component vector of uint)
 0:67        'out_u2' (temp 2-component vector of uint)
 0:67        AtomicMin (temp 2-component vector of uint)
-0:67          'gs_ua2' (temp 2-component vector of uint)
-0:67          'gs_ub2' (temp 2-component vector of uint)
+0:67          'gs_ua2' (global 2-component vector of uint)
+0:67          'gs_ub2' (global 2-component vector of uint)
 0:68      AtomicOr (global void)
-0:68        'gs_ua2' (temp 2-component vector of uint)
-0:68        'gs_ub2' (temp 2-component vector of uint)
+0:68        'gs_ua2' (global 2-component vector of uint)
+0:68        'gs_ub2' (global 2-component vector of uint)
 0:69      move second child to first child (temp 2-component vector of uint)
 0:69        'out_u2' (temp 2-component vector of uint)
 0:69        AtomicOr (temp 2-component vector of uint)
-0:69          'gs_ua2' (temp 2-component vector of uint)
-0:69          'gs_ub2' (temp 2-component vector of uint)
+0:69          'gs_ua2' (global 2-component vector of uint)
+0:69          'gs_ub2' (global 2-component vector of uint)
 0:70      AtomicXor (global void)
-0:70        'gs_ua2' (temp 2-component vector of uint)
-0:70        'gs_ub2' (temp 2-component vector of uint)
+0:70        'gs_ua2' (global 2-component vector of uint)
+0:70        'gs_ub2' (global 2-component vector of uint)
 0:71      move second child to first child (temp 2-component vector of uint)
 0:71        'out_u2' (temp 2-component vector of uint)
 0:71        AtomicXor (temp 2-component vector of uint)
-0:71          'gs_ua2' (temp 2-component vector of uint)
-0:71          'gs_ub2' (temp 2-component vector of uint)
+0:71          'gs_ua2' (global 2-component vector of uint)
+0:71          'gs_ub2' (global 2-component vector of uint)
 0:74      Branch: Return with expression
 0:?         Constant:
 0:?           1.000000
 0:?           2.000000
-0:104  Function Definition: ComputeShaderFunction3(vf3;vf3;vf3;vu3;vu3; (temp 3-component vector of float)
+0:104  Function Definition: ComputeShaderFunction3(vf3;vf3;vf3;vu3;vu3; (global 3-component vector of float)
 0:78    Function Parameters: 
 0:78      'inF0' (in 3-component vector of float)
 0:78      'inF1' (in 3-component vector of float)
@@ -491,70 +491,70 @@ local_size = (1, 1, 1)
 0:82      all (global bool)
 0:82        'inF0' (in 3-component vector of float)
 0:85      AtomicAdd (global void)
-0:85        'gs_ua3' (temp 3-component vector of uint)
-0:85        'gs_ub3' (temp 3-component vector of uint)
+0:85        'gs_ua3' (global 3-component vector of uint)
+0:85        'gs_ub3' (global 3-component vector of uint)
 0:86      move second child to first child (temp 3-component vector of uint)
 0:86        'out_u3' (temp 3-component vector of uint)
 0:86        AtomicAdd (temp 3-component vector of uint)
-0:86          'gs_ua3' (temp 3-component vector of uint)
-0:86          'gs_ub3' (temp 3-component vector of uint)
+0:86          'gs_ua3' (global 3-component vector of uint)
+0:86          'gs_ub3' (global 3-component vector of uint)
 0:87      AtomicAnd (global void)
-0:87        'gs_ua3' (temp 3-component vector of uint)
-0:87        'gs_ub3' (temp 3-component vector of uint)
+0:87        'gs_ua3' (global 3-component vector of uint)
+0:87        'gs_ub3' (global 3-component vector of uint)
 0:88      move second child to first child (temp 3-component vector of uint)
 0:88        'out_u3' (temp 3-component vector of uint)
 0:88        AtomicAnd (temp 3-component vector of uint)
-0:88          'gs_ua3' (temp 3-component vector of uint)
-0:88          'gs_ub3' (temp 3-component vector of uint)
+0:88          'gs_ua3' (global 3-component vector of uint)
+0:88          'gs_ub3' (global 3-component vector of uint)
 0:89      move second child to first child (temp 3-component vector of uint)
 0:89        'out_u3' (temp 3-component vector of uint)
 0:89        AtomicCompSwap (temp 3-component vector of uint)
-0:89          'gs_ua3' (temp 3-component vector of uint)
-0:89          'gs_ub3' (temp 3-component vector of uint)
-0:89          'gs_uc3' (temp 3-component vector of uint)
+0:89          'gs_ua3' (global 3-component vector of uint)
+0:89          'gs_ub3' (global 3-component vector of uint)
+0:89          'gs_uc3' (global 3-component vector of uint)
 0:90      move second child to first child (temp 3-component vector of uint)
 0:90        'out_u3' (temp 3-component vector of uint)
 0:90        AtomicExchange (temp 3-component vector of uint)
-0:90          'gs_ua3' (temp 3-component vector of uint)
-0:90          'gs_ub3' (temp 3-component vector of uint)
+0:90          'gs_ua3' (global 3-component vector of uint)
+0:90          'gs_ub3' (global 3-component vector of uint)
 0:91      AtomicMax (global void)
-0:91        'gs_ua3' (temp 3-component vector of uint)
-0:91        'gs_ub3' (temp 3-component vector of uint)
+0:91        'gs_ua3' (global 3-component vector of uint)
+0:91        'gs_ub3' (global 3-component vector of uint)
 0:92      move second child to first child (temp 3-component vector of uint)
 0:92        'out_u3' (temp 3-component vector of uint)
 0:92        AtomicMax (temp 3-component vector of uint)
-0:92          'gs_ua3' (temp 3-component vector of uint)
-0:92          'gs_ub3' (temp 3-component vector of uint)
+0:92          'gs_ua3' (global 3-component vector of uint)
+0:92          'gs_ub3' (global 3-component vector of uint)
 0:93      AtomicMin (global void)
-0:93        'gs_ua3' (temp 3-component vector of uint)
-0:93        'gs_ub3' (temp 3-component vector of uint)
+0:93        'gs_ua3' (global 3-component vector of uint)
+0:93        'gs_ub3' (global 3-component vector of uint)
 0:94      move second child to first child (temp 3-component vector of uint)
 0:94        'out_u3' (temp 3-component vector of uint)
 0:94        AtomicMin (temp 3-component vector of uint)
-0:94          'gs_ua3' (temp 3-component vector of uint)
-0:94          'gs_ub3' (temp 3-component vector of uint)
+0:94          'gs_ua3' (global 3-component vector of uint)
+0:94          'gs_ub3' (global 3-component vector of uint)
 0:95      AtomicOr (global void)
-0:95        'gs_ua3' (temp 3-component vector of uint)
-0:95        'gs_ub3' (temp 3-component vector of uint)
+0:95        'gs_ua3' (global 3-component vector of uint)
+0:95        'gs_ub3' (global 3-component vector of uint)
 0:96      move second child to first child (temp 3-component vector of uint)
 0:96        'out_u3' (temp 3-component vector of uint)
 0:96        AtomicOr (temp 3-component vector of uint)
-0:96          'gs_ua3' (temp 3-component vector of uint)
-0:96          'gs_ub3' (temp 3-component vector of uint)
+0:96          'gs_ua3' (global 3-component vector of uint)
+0:96          'gs_ub3' (global 3-component vector of uint)
 0:97      AtomicXor (global void)
-0:97        'gs_ua3' (temp 3-component vector of uint)
-0:97        'gs_ub3' (temp 3-component vector of uint)
+0:97        'gs_ua3' (global 3-component vector of uint)
+0:97        'gs_ub3' (global 3-component vector of uint)
 0:98      move second child to first child (temp 3-component vector of uint)
 0:98        'out_u3' (temp 3-component vector of uint)
 0:98        AtomicXor (temp 3-component vector of uint)
-0:98          'gs_ua3' (temp 3-component vector of uint)
-0:98          'gs_ub3' (temp 3-component vector of uint)
+0:98          'gs_ua3' (global 3-component vector of uint)
+0:98          'gs_ub3' (global 3-component vector of uint)
 0:101      Branch: Return with expression
 0:?         Constant:
 0:?           1.000000
 0:?           2.000000
 0:?           3.000000
-0:130  Function Definition: ComputeShaderFunction(vf4;vf4;vf4;vu4;vu4; (temp 4-component vector of float)
+0:130  Function Definition: ComputeShaderFunction(vf4;vf4;vf4;vu4;vu4; (global 4-component vector of float)
 0:105    Function Parameters: 
 0:105      'inF0' (in 4-component vector of float)
 0:105      'inF1' (in 4-component vector of float)
@@ -565,64 +565,64 @@ local_size = (1, 1, 1)
 0:109      all (global bool)
 0:109        'inF0' (in 4-component vector of float)
 0:112      AtomicAdd (global void)
-0:112        'gs_ua4' (temp 4-component vector of uint)
-0:112        'gs_ub4' (temp 4-component vector of uint)
+0:112        'gs_ua4' (global 4-component vector of uint)
+0:112        'gs_ub4' (global 4-component vector of uint)
 0:113      move second child to first child (temp 4-component vector of uint)
 0:113        'out_u4' (temp 4-component vector of uint)
 0:113        AtomicAdd (temp 4-component vector of uint)
-0:113          'gs_ua4' (temp 4-component vector of uint)
-0:113          'gs_ub4' (temp 4-component vector of uint)
+0:113          'gs_ua4' (global 4-component vector of uint)
+0:113          'gs_ub4' (global 4-component vector of uint)
 0:114      AtomicAnd (global void)
-0:114        'gs_ua4' (temp 4-component vector of uint)
-0:114        'gs_ub4' (temp 4-component vector of uint)
+0:114        'gs_ua4' (global 4-component vector of uint)
+0:114        'gs_ub4' (global 4-component vector of uint)
 0:115      move second child to first child (temp 4-component vector of uint)
 0:115        'out_u4' (temp 4-component vector of uint)
 0:115        AtomicAnd (temp 4-component vector of uint)
-0:115          'gs_ua4' (temp 4-component vector of uint)
-0:115          'gs_ub4' (temp 4-component vector of uint)
+0:115          'gs_ua4' (global 4-component vector of uint)
+0:115          'gs_ub4' (global 4-component vector of uint)
 0:116      move second child to first child (temp 4-component vector of uint)
 0:116        'out_u4' (temp 4-component vector of uint)
 0:116        AtomicCompSwap (temp 4-component vector of uint)
-0:116          'gs_ua4' (temp 4-component vector of uint)
-0:116          'gs_ub4' (temp 4-component vector of uint)
-0:116          'gs_uc4' (temp 4-component vector of uint)
+0:116          'gs_ua4' (global 4-component vector of uint)
+0:116          'gs_ub4' (global 4-component vector of uint)
+0:116          'gs_uc4' (global 4-component vector of uint)
 0:117      move second child to first child (temp 4-component vector of uint)
 0:117        'out_u4' (temp 4-component vector of uint)
 0:117        AtomicExchange (temp 4-component vector of uint)
-0:117          'gs_ua4' (temp 4-component vector of uint)
-0:117          'gs_ub4' (temp 4-component vector of uint)
+0:117          'gs_ua4' (global 4-component vector of uint)
+0:117          'gs_ub4' (global 4-component vector of uint)
 0:118      AtomicMax (global void)
-0:118        'gs_ua4' (temp 4-component vector of uint)
-0:118        'gs_ub4' (temp 4-component vector of uint)
+0:118        'gs_ua4' (global 4-component vector of uint)
+0:118        'gs_ub4' (global 4-component vector of uint)
 0:119      move second child to first child (temp 4-component vector of uint)
 0:119        'out_u4' (temp 4-component vector of uint)
 0:119        AtomicMax (temp 4-component vector of uint)
-0:119          'gs_ua4' (temp 4-component vector of uint)
-0:119          'gs_ub4' (temp 4-component vector of uint)
+0:119          'gs_ua4' (global 4-component vector of uint)
+0:119          'gs_ub4' (global 4-component vector of uint)
 0:120      AtomicMin (global void)
-0:120        'gs_ua4' (temp 4-component vector of uint)
-0:120        'gs_ub4' (temp 4-component vector of uint)
+0:120        'gs_ua4' (global 4-component vector of uint)
+0:120        'gs_ub4' (global 4-component vector of uint)
 0:121      move second child to first child (temp 4-component vector of uint)
 0:121        'out_u4' (temp 4-component vector of uint)
 0:121        AtomicMin (temp 4-component vector of uint)
-0:121          'gs_ua4' (temp 4-component vector of uint)
-0:121          'gs_ub4' (temp 4-component vector of uint)
+0:121          'gs_ua4' (global 4-component vector of uint)
+0:121          'gs_ub4' (global 4-component vector of uint)
 0:122      AtomicOr (global void)
-0:122        'gs_ua4' (temp 4-component vector of uint)
-0:122        'gs_ub4' (temp 4-component vector of uint)
+0:122        'gs_ua4' (global 4-component vector of uint)
+0:122        'gs_ub4' (global 4-component vector of uint)
 0:123      move second child to first child (temp 4-component vector of uint)
 0:123        'out_u4' (temp 4-component vector of uint)
 0:123        AtomicOr (temp 4-component vector of uint)
-0:123          'gs_ua4' (temp 4-component vector of uint)
-0:123          'gs_ub4' (temp 4-component vector of uint)
+0:123          'gs_ua4' (global 4-component vector of uint)
+0:123          'gs_ub4' (global 4-component vector of uint)
 0:124      AtomicXor (global void)
-0:124        'gs_ua4' (temp 4-component vector of uint)
-0:124        'gs_ub4' (temp 4-component vector of uint)
+0:124        'gs_ua4' (global 4-component vector of uint)
+0:124        'gs_ub4' (global 4-component vector of uint)
 0:125      move second child to first child (temp 4-component vector of uint)
 0:125        'out_u4' (temp 4-component vector of uint)
 0:125        AtomicXor (temp 4-component vector of uint)
-0:125          'gs_ua4' (temp 4-component vector of uint)
-0:125          'gs_ub4' (temp 4-component vector of uint)
+0:125          'gs_ua4' (global 4-component vector of uint)
+0:125          'gs_ub4' (global 4-component vector of uint)
 0:128      Branch: Return with expression
 0:?         Constant:
 0:?           1.000000
@@ -630,27 +630,27 @@ local_size = (1, 1, 1)
 0:?           3.000000
 0:?           4.000000
 0:?   Linker Objects
-0:?     'gs_ua' (temp uint)
-0:?     'gs_ub' (temp uint)
-0:?     'gs_uc' (temp uint)
-0:?     'gs_ua2' (temp 2-component vector of uint)
-0:?     'gs_ub2' (temp 2-component vector of uint)
-0:?     'gs_uc2' (temp 2-component vector of uint)
-0:?     'gs_ua3' (temp 3-component vector of uint)
-0:?     'gs_ub3' (temp 3-component vector of uint)
-0:?     'gs_uc3' (temp 3-component vector of uint)
-0:?     'gs_ua4' (temp 4-component vector of uint)
-0:?     'gs_ub4' (temp 4-component vector of uint)
-0:?     'gs_uc4' (temp 4-component vector of uint)
+0:?     'gs_ua' (global uint)
+0:?     'gs_ub' (global uint)
+0:?     'gs_uc' (global uint)
+0:?     'gs_ua2' (global 2-component vector of uint)
+0:?     'gs_ub2' (global 2-component vector of uint)
+0:?     'gs_uc2' (global 2-component vector of uint)
+0:?     'gs_ua3' (global 3-component vector of uint)
+0:?     'gs_ub3' (global 3-component vector of uint)
+0:?     'gs_uc3' (global 3-component vector of uint)
+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)
 
 // Module Version 10000
 // Generated by (magic number): 80001
-// Id's are bound by 213
+// Id's are bound by 217
 
                               Capability Shader
                1:             ExtInstImport  "GLSL.std.450"
                               MemoryModel Logical GLSL450
-                              EntryPoint GLCompute 4  "ComputeShaderFunction" 172
+                              EntryPoint GLCompute 4  "ComputeShaderFunction" 175
                               ExecutionMode 4 LocalSize 1 1 1
                               Source HLSL 450
                               Name 4  "ComputeShaderFunction"
@@ -676,23 +676,23 @@ local_size = (1, 1, 1)
                               Name 43  "inF2"
                               Name 44  "inU0"
                               Name 45  "inU1"
-                              Name 51  "gs_ua"
-                              Name 52  "gs_ub"
-                              Name 57  "out_u1"
-                              Name 65  "gs_uc"
-                              Name 93  "gs_ua2"
-                              Name 94  "gs_ub2"
-                              Name 97  "out_u2"
-                              Name 105  "gs_uc2"
-                              Name 133  "gs_ua3"
-                              Name 134  "gs_ub3"
-                              Name 137  "out_u3"
-                              Name 145  "gs_uc3"
-                              Name 172  "inF0"
-                              Name 177  "gs_ua4"
-                              Name 178  "gs_ub4"
-                              Name 181  "out_u4"
-                              Name 189  "gs_uc4"
+                              Name 52  "gs_ua"
+                              Name 53  "gs_ub"
+                              Name 58  "out_u1"
+                              Name 66  "gs_uc"
+                              Name 95  "gs_ua2"
+                              Name 96  "gs_ub2"
+                              Name 99  "out_u2"
+                              Name 107  "gs_uc2"
+                              Name 136  "gs_ua3"
+                              Name 137  "gs_ub3"
+                              Name 140  "out_u3"
+                              Name 148  "gs_uc3"
+                              Name 175  "inF0"
+                              Name 180  "gs_ua4"
+                              Name 181  "gs_ub4"
+                              Name 185  "out_u4"
+                              Name 193  "gs_uc4"
                2:             TypeVoid
                3:             TypeFunction 2
                6:             TypeFloat 32
@@ -712,67 +712,80 @@ local_size = (1, 1, 1)
               39:             TypePointer Function 38(ivec3)
               40:             TypeFunction 36(fvec3) 37(ptr) 37(ptr) 37(ptr) 39(ptr) 39(ptr)
               49:             TypeBool
-              54:      8(int) Constant 1
-              55:      8(int) Constant 0
-              86:    6(float) Constant 0
-             126:    6(float) Constant 1065353216
-             127:    6(float) Constant 1073741824
-             128:   24(fvec2) ConstantComposite 126 127
-             166:    6(float) Constant 1077936128
-             167:   36(fvec3) ConstantComposite 126 127 166
-             170:             TypeVector 6(float) 4
-             171:             TypePointer Input 170(fvec4)
-       172(inF0):    171(ptr) Variable Input
-             175:             TypeVector 8(int) 4
-             176:             TypePointer Function 175(ivec4)
-             210:    6(float) Constant 1082130432
-             211:  170(fvec4) ConstantComposite 126 127 166 210
+              51:             TypePointer Private 8(int)
+       52(gs_ua):     51(ptr) Variable Private
+       53(gs_ub):     51(ptr) Variable Private
+              55:      8(int) Constant 1
+              56:      8(int) Constant 0
+       66(gs_uc):     51(ptr) Variable Private
+              87:    6(float) Constant 0
+              94:             TypePointer Private 26(ivec2)
+      95(gs_ua2):     94(ptr) Variable Private
+      96(gs_ub2):     94(ptr) Variable Private
+     107(gs_uc2):     94(ptr) Variable Private
+             128:    6(float) Constant 1065353216
+             129:    6(float) Constant 1073741824
+             130:   24(fvec2) ConstantComposite 128 129
+             135:             TypePointer Private 38(ivec3)
+     136(gs_ua3):    135(ptr) Variable Private
+     137(gs_ub3):    135(ptr) Variable Private
+     148(gs_uc3):    135(ptr) Variable Private
+             169:    6(float) Constant 1077936128
+             170:   36(fvec3) ConstantComposite 128 129 169
+             173:             TypeVector 6(float) 4
+             174:             TypePointer Input 173(fvec4)
+       175(inF0):    174(ptr) Variable Input
+             178:             TypeVector 8(int) 4
+             179:             TypePointer Private 178(ivec4)
+     180(gs_ua4):    179(ptr) Variable Private
+     181(gs_ub4):    179(ptr) Variable Private
+             184:             TypePointer Function 178(ivec4)
+     193(gs_uc4):    179(ptr) Variable Private
+             214:    6(float) Constant 1082130432
+             215:  173(fvec4) ConstantComposite 128 129 169 214
 4(ComputeShaderFunction):           2 Function None 3
                5:             Label
-     177(gs_ua4):    176(ptr) Variable Function
-     178(gs_ub4):    176(ptr) Variable Function
-     181(out_u4):    176(ptr) Variable Function
-     189(gs_uc4):    176(ptr) Variable Function
-             173:  170(fvec4) Load 172(inF0)
-             174:    49(bool) All 173
-             179:  175(ivec4) Load 178(gs_ub4)
-             180:           2 AtomicIAdd 177(gs_ua4) 54 55 179
-             182:  175(ivec4) Load 178(gs_ub4)
-             183:  175(ivec4) AtomicIAdd 177(gs_ua4) 54 55 182
-                              Store 181(out_u4) 183
-             184:  175(ivec4) Load 178(gs_ub4)
-             185:           2 AtomicAnd 177(gs_ua4) 54 55 184
-             186:  175(ivec4) Load 178(gs_ub4)
-             187:  175(ivec4) AtomicAnd 177(gs_ua4) 54 55 186
-                              Store 181(out_u4) 187
-             188:  175(ivec4) Load 178(gs_ub4)
-             190:  175(ivec4) Load 189(gs_uc4)
-             191:  175(ivec4) AtomicCompareExchange 177(gs_ua4) 54 55 55 190 188
-                              Store 181(out_u4) 191
-             192:  175(ivec4) Load 178(gs_ub4)
-             193:  175(ivec4) AtomicExchange 177(gs_ua4) 54 55 192
-                              Store 181(out_u4) 193
-             194:  175(ivec4) Load 178(gs_ub4)
-             195:           2 AtomicSMax 177(gs_ua4) 54 55 194
-             196:  175(ivec4) Load 178(gs_ub4)
-             197:  175(ivec4) AtomicUMax 177(gs_ua4) 54 55 196
-                              Store 181(out_u4) 197
-             198:  175(ivec4) Load 178(gs_ub4)
-             199:           2 AtomicSMin 177(gs_ua4) 54 55 198
-             200:  175(ivec4) Load 178(gs_ub4)
-             201:  175(ivec4) AtomicUMin 177(gs_ua4) 54 55 200
-                              Store 181(out_u4) 201
-             202:  175(ivec4) Load 178(gs_ub4)
-             203:           2 AtomicOr 177(gs_ua4) 54 55 202
-             204:  175(ivec4) Load 178(gs_ub4)
-             205:  175(ivec4) AtomicOr 177(gs_ua4) 54 55 204
-                              Store 181(out_u4) 205
-             206:  175(ivec4) Load 178(gs_ub4)
-             207:           2 AtomicXor 177(gs_ua4) 54 55 206
-             208:  175(ivec4) Load 178(gs_ub4)
-             209:  175(ivec4) AtomicXor 177(gs_ua4) 54 55 208
-                              Store 181(out_u4) 209
-                              ReturnValue 211
+     185(out_u4):    184(ptr) Variable Function
+             176:  173(fvec4) Load 175(inF0)
+             177:    49(bool) All 176
+             182:  178(ivec4) Load 181(gs_ub4)
+             183:           2 AtomicIAdd 180(gs_ua4) 55 56 182
+             186:  178(ivec4) Load 181(gs_ub4)
+             187:  178(ivec4) AtomicIAdd 180(gs_ua4) 55 56 186
+                              Store 185(out_u4) 187
+             188:  178(ivec4) Load 181(gs_ub4)
+             189:           2 AtomicAnd 180(gs_ua4) 55 56 188
+             190:  178(ivec4) Load 181(gs_ub4)
+             191:  178(ivec4) AtomicAnd 180(gs_ua4) 55 56 190
+                              Store 185(out_u4) 191
+             192:  178(ivec4) Load 181(gs_ub4)
+             194:  178(ivec4) Load 193(gs_uc4)
+             195:  178(ivec4) AtomicCompareExchange 180(gs_ua4) 55 56 56 194 192
+                              Store 185(out_u4) 195
+             196:  178(ivec4) Load 181(gs_ub4)
+             197:  178(ivec4) AtomicExchange 180(gs_ua4) 55 56 196
+                              Store 185(out_u4) 197
+             198:  178(ivec4) Load 181(gs_ub4)
+             199:           2 AtomicSMax 180(gs_ua4) 55 56 198
+             200:  178(ivec4) Load 181(gs_ub4)
+             201:  178(ivec4) AtomicUMax 180(gs_ua4) 55 56 200
+                              Store 185(out_u4) 201
+             202:  178(ivec4) Load 181(gs_ub4)
+             203:           2 AtomicSMin 180(gs_ua4) 55 56 202
+             204:  178(ivec4) Load 181(gs_ub4)
+             205:  178(ivec4) AtomicUMin 180(gs_ua4) 55 56 204
+                              Store 185(out_u4) 205
+             206:  178(ivec4) Load 181(gs_ub4)
+             207:           2 AtomicOr 180(gs_ua4) 55 56 206
+             208:  178(ivec4) Load 181(gs_ub4)
+             209:  178(ivec4) AtomicOr 180(gs_ua4) 55 56 208
+                              Store 185(out_u4) 209
+             210:  178(ivec4) Load 181(gs_ub4)
+             211:           2 AtomicXor 180(gs_ua4) 55 56 210
+             212:  178(ivec4) Load 181(gs_ub4)
+             213:  178(ivec4) AtomicXor 180(gs_ua4) 55 56 212
+                              Store 185(out_u4) 213
+                              ReturnValue 215
                               FunctionEnd
 16(ComputeShaderFunctionS(f1;f1;f1;u1;u1;):    6(float) Function None 10
         11(inF0):      7(ptr) FunctionParameter
@@ -781,57 +794,54 @@ local_size = (1, 1, 1)
         14(inU0):      9(ptr) FunctionParameter
         15(inU1):      9(ptr) FunctionParameter
               17:             Label
-       51(gs_ua):      9(ptr) Variable Function
-       52(gs_ub):      9(ptr) Variable Function
-      57(out_u1):      9(ptr) Variable Function
-       65(gs_uc):      9(ptr) Variable Function
+      58(out_u1):      9(ptr) Variable Function
               48:    6(float) Load 11(inF0)
               50:    49(bool) All 48
-              53:      8(int) Load 52(gs_ub)
-              56:           2 AtomicIAdd 51(gs_ua) 54 55 53
-              58:      8(int) Load 52(gs_ub)
-              59:      8(int) AtomicIAdd 51(gs_ua) 54 55 58
-                              Store 57(out_u1) 59
-              60:      8(int) Load 52(gs_ub)
-              61:           2 AtomicAnd 51(gs_ua) 54 55 60
-              62:      8(int) Load 52(gs_ub)
-              63:      8(int) AtomicAnd 51(gs_ua) 54 55 62
-                              Store 57(out_u1) 63
-              64:      8(int) Load 52(gs_ub)
-              66:      8(int) Load 65(gs_uc)
-              67:      8(int) AtomicCompareExchange 51(gs_ua) 54 55 55 66 64
-                              Store 57(out_u1) 67
-              68:      8(int) Load 52(gs_ub)
-              69:      8(int) AtomicExchange 51(gs_ua) 54 55 68
-                              Store 57(out_u1) 69
-              70:      8(int) Load 52(gs_ub)
-              71:           2 AtomicSMax 51(gs_ua) 54 55 70
-              72:      8(int) Load 52(gs_ub)
-              73:      8(int) AtomicUMax 51(gs_ua) 54 55 72
-                              Store 57(out_u1) 73
-              74:      8(int) Load 52(gs_ub)
-              75:           2 AtomicSMin 51(gs_ua) 54 55 74
-              76:      8(int) Load 52(gs_ub)
-              77:      8(int) AtomicUMin 51(gs_ua) 54 55 76
-                              Store 57(out_u1) 77
-              78:      8(int) Load 52(gs_ub)
-              79:           2 AtomicOr 51(gs_ua) 54 55 78
-              80:      8(int) Load 52(gs_ub)
-              81:      8(int) AtomicOr 51(gs_ua) 54 55 80
-                              Store 57(out_u1) 81
-              82:      8(int) Load 52(gs_ub)
-              83:           2 AtomicXor 51(gs_ua) 54 55 82
-              84:      8(int) Load 52(gs_ub)
-              85:      8(int) AtomicXor 51(gs_ua) 54 55 84
-                              Store 57(out_u1) 85
-                              ReturnValue 86
+              54:      8(int) Load 53(gs_ub)
+              57:           2 AtomicIAdd 52(gs_ua) 55 56 54
+              59:      8(int) Load 53(gs_ub)
+              60:      8(int) AtomicIAdd 52(gs_ua) 55 56 59
+                              Store 58(out_u1) 60
+              61:      8(int) Load 53(gs_ub)
+              62:           2 AtomicAnd 52(gs_ua) 55 56 61
+              63:      8(int) Load 53(gs_ub)
+              64:      8(int) AtomicAnd 52(gs_ua) 55 56 63
+                              Store 58(out_u1) 64
+              65:      8(int) Load 53(gs_ub)
+              67:      8(int) Load 66(gs_uc)
+              68:      8(int) AtomicCompareExchange 52(gs_ua) 55 56 56 67 65
+                              Store 58(out_u1) 68
+              69:      8(int) Load 53(gs_ub)
+              70:      8(int) AtomicExchange 52(gs_ua) 55 56 69
+                              Store 58(out_u1) 70
+              71:      8(int) Load 53(gs_ub)
+              72:           2 AtomicSMax 52(gs_ua) 55 56 71
+              73:      8(int) Load 53(gs_ub)
+              74:      8(int) AtomicUMax 52(gs_ua) 55 56 73
+                              Store 58(out_u1) 74
+              75:      8(int) Load 53(gs_ub)
+              76:           2 AtomicSMin 52(gs_ua) 55 56 75
+              77:      8(int) Load 53(gs_ub)
+              78:      8(int) AtomicUMin 52(gs_ua) 55 56 77
+                              Store 58(out_u1) 78
+              79:      8(int) Load 53(gs_ub)
+              80:           2 AtomicOr 52(gs_ua) 55 56 79
+              81:      8(int) Load 53(gs_ub)
+              82:      8(int) AtomicOr 52(gs_ua) 55 56 81
+                              Store 58(out_u1) 82
+              83:      8(int) Load 53(gs_ub)
+              84:           2 AtomicXor 52(gs_ua) 55 56 83
+              85:      8(int) Load 53(gs_ub)
+              86:      8(int) AtomicXor 52(gs_ua) 55 56 85
+                              Store 58(out_u1) 86
+                              ReturnValue 87
                               FunctionEnd
 22(ComputeShaderFunction1(vf1;vf1;vf1;):    6(float) Function None 18
         19(inF0):      7(ptr) FunctionParameter
         20(inF1):      7(ptr) FunctionParameter
         21(inF2):      7(ptr) FunctionParameter
               23:             Label
-                              ReturnValue 86
+                              ReturnValue 87
                               FunctionEnd
 34(ComputeShaderFunction2(vf2;vf2;vf2;vu2;vu2;):   24(fvec2) Function None 28
         29(inF0):     25(ptr) FunctionParameter
@@ -840,50 +850,47 @@ local_size = (1, 1, 1)
         32(inU0):     27(ptr) FunctionParameter
         33(inU1):     27(ptr) FunctionParameter
               35:             Label
-      93(gs_ua2):     27(ptr) Variable Function
-      94(gs_ub2):     27(ptr) Variable Function
-      97(out_u2):     27(ptr) Variable Function
-     105(gs_uc2):     27(ptr) Variable Function
-              91:   24(fvec2) Load 29(inF0)
-              92:    49(bool) All 91
-              95:   26(ivec2) Load 94(gs_ub2)
-              96:           2 AtomicIAdd 93(gs_ua2) 54 55 95
-              98:   26(ivec2) Load 94(gs_ub2)
-              99:   26(ivec2) AtomicIAdd 93(gs_ua2) 54 55 98
-                              Store 97(out_u2) 99
-             100:   26(ivec2) Load 94(gs_ub2)
-             101:           2 AtomicAnd 93(gs_ua2) 54 55 100
-             102:   26(ivec2) Load 94(gs_ub2)
-             103:   26(ivec2) AtomicAnd 93(gs_ua2) 54 55 102
-                              Store 97(out_u2) 103
-             104:   26(ivec2) Load 94(gs_ub2)
-             106:   26(ivec2) Load 105(gs_uc2)
-             107:   26(ivec2) AtomicCompareExchange 93(gs_ua2) 54 55 55 106 104
-                              Store 97(out_u2) 107
-             108:   26(ivec2) Load 94(gs_ub2)
-             109:   26(ivec2) AtomicExchange 93(gs_ua2) 54 55 108
-                              Store 97(out_u2) 109
-             110:   26(ivec2) Load 94(gs_ub2)
-             111:           2 AtomicSMax 93(gs_ua2) 54 55 110
-             112:   26(ivec2) Load 94(gs_ub2)
-             113:   26(ivec2) AtomicUMax 93(gs_ua2) 54 55 112
-                              Store 97(out_u2) 113
-             114:   26(ivec2) Load 94(gs_ub2)
-             115:           2 AtomicSMin 93(gs_ua2) 54 55 114
-             116:   26(ivec2) Load 94(gs_ub2)
-             117:   26(ivec2) AtomicUMin 93(gs_ua2) 54 55 116
-                              Store 97(out_u2) 117
-             118:   26(ivec2) Load 94(gs_ub2)
-             119:           2 AtomicOr 93(gs_ua2) 54 55 118
-             120:   26(ivec2) Load 94(gs_ub2)
-             121:   26(ivec2) AtomicOr 93(gs_ua2) 54 55 120
-                              Store 97(out_u2) 121
-             122:   26(ivec2) Load 94(gs_ub2)
-             123:           2 AtomicXor 93(gs_ua2) 54 55 122
-             124:   26(ivec2) Load 94(gs_ub2)
-             125:   26(ivec2) AtomicXor 93(gs_ua2) 54 55 124
-                              Store 97(out_u2) 125
-                              ReturnValue 128
+      99(out_u2):     27(ptr) Variable Function
+              92:   24(fvec2) Load 29(inF0)
+              93:    49(bool) All 92
+              97:   26(ivec2) Load 96(gs_ub2)
+              98:           2 AtomicIAdd 95(gs_ua2) 55 56 97
+             100:   26(ivec2) Load 96(gs_ub2)
+             101:   26(ivec2) AtomicIAdd 95(gs_ua2) 55 56 100
+                              Store 99(out_u2) 101
+             102:   26(ivec2) Load 96(gs_ub2)
+             103:           2 AtomicAnd 95(gs_ua2) 55 56 102
+             104:   26(ivec2) Load 96(gs_ub2)
+             105:   26(ivec2) AtomicAnd 95(gs_ua2) 55 56 104
+                              Store 99(out_u2) 105
+             106:   26(ivec2) Load 96(gs_ub2)
+             108:   26(ivec2) Load 107(gs_uc2)
+             109:   26(ivec2) AtomicCompareExchange 95(gs_ua2) 55 56 56 108 106
+                              Store 99(out_u2) 109
+             110:   26(ivec2) Load 96(gs_ub2)
+             111:   26(ivec2) AtomicExchange 95(gs_ua2) 55 56 110
+                              Store 99(out_u2) 111
+             112:   26(ivec2) Load 96(gs_ub2)
+             113:           2 AtomicSMax 95(gs_ua2) 55 56 112
+             114:   26(ivec2) Load 96(gs_ub2)
+             115:   26(ivec2) AtomicUMax 95(gs_ua2) 55 56 114
+                              Store 99(out_u2) 115
+             116:   26(ivec2) Load 96(gs_ub2)
+             117:           2 AtomicSMin 95(gs_ua2) 55 56 116
+             118:   26(ivec2) Load 96(gs_ub2)
+             119:   26(ivec2) AtomicUMin 95(gs_ua2) 55 56 118
+                              Store 99(out_u2) 119
+             120:   26(ivec2) Load 96(gs_ub2)
+             121:           2 AtomicOr 95(gs_ua2) 55 56 120
+             122:   26(ivec2) Load 96(gs_ub2)
+             123:   26(ivec2) AtomicOr 95(gs_ua2) 55 56 122
+                              Store 99(out_u2) 123
+             124:   26(ivec2) Load 96(gs_ub2)
+             125:           2 AtomicXor 95(gs_ua2) 55 56 124
+             126:   26(ivec2) Load 96(gs_ub2)
+             127:   26(ivec2) AtomicXor 95(gs_ua2) 55 56 126
+                              Store 99(out_u2) 127
+                              ReturnValue 130
                               FunctionEnd
 46(ComputeShaderFunction3(vf3;vf3;vf3;vu3;vu3;):   36(fvec3) Function None 40
         41(inF0):     37(ptr) FunctionParameter
@@ -892,48 +899,45 @@ local_size = (1, 1, 1)
         44(inU0):     39(ptr) FunctionParameter
         45(inU1):     39(ptr) FunctionParameter
               47:             Label
-     133(gs_ua3):     39(ptr) Variable Function
-     134(gs_ub3):     39(ptr) Variable Function
-     137(out_u3):     39(ptr) Variable Function
-     145(gs_uc3):     39(ptr) Variable Function
-             131:   36(fvec3) Load 41(inF0)
-             132:    49(bool) All 131
-             135:   38(ivec3) Load 134(gs_ub3)
-             136:           2 AtomicIAdd 133(gs_ua3) 54 55 135
-             138:   38(ivec3) Load 134(gs_ub3)
-             139:   38(ivec3) AtomicIAdd 133(gs_ua3) 54 55 138
-                              Store 137(out_u3) 139
-             140:   38(ivec3) Load 134(gs_ub3)
-             141:           2 AtomicAnd 133(gs_ua3) 54 55 140
-             142:   38(ivec3) Load 134(gs_ub3)
-             143:   38(ivec3) AtomicAnd 133(gs_ua3) 54 55 142
-                              Store 137(out_u3) 143
-             144:   38(ivec3) Load 134(gs_ub3)
-             146:   38(ivec3) Load 145(gs_uc3)
-             147:   38(ivec3) AtomicCompareExchange 133(gs_ua3) 54 55 55 146 144
-                              Store 137(out_u3) 147
-             148:   38(ivec3) Load 134(gs_ub3)
-             149:   38(ivec3) AtomicExchange 133(gs_ua3) 54 55 148
-                              Store 137(out_u3) 149
-             150:   38(ivec3) Load 134(gs_ub3)
-             151:           2 AtomicSMax 133(gs_ua3) 54 55 150
-             152:   38(ivec3) Load 134(gs_ub3)
-             153:   38(ivec3) AtomicUMax 133(gs_ua3) 54 55 152
-                              Store 137(out_u3) 153
-             154:   38(ivec3) Load 134(gs_ub3)
-             155:           2 AtomicSMin 133(gs_ua3) 54 55 154
-             156:   38(ivec3) Load 134(gs_ub3)
-             157:   38(ivec3) AtomicUMin 133(gs_ua3) 54 55 156
-                              Store 137(out_u3) 157
-             158:   38(ivec3) Load 134(gs_ub3)
-             159:           2 AtomicOr 133(gs_ua3) 54 55 158
-             160:   38(ivec3) Load 134(gs_ub3)
-             161:   38(ivec3) AtomicOr 133(gs_ua3) 54 55 160
-                              Store 137(out_u3) 161
-             162:   38(ivec3) Load 134(gs_ub3)
-             163:           2 AtomicXor 133(gs_ua3) 54 55 162
-             164:   38(ivec3) Load 134(gs_ub3)
-             165:   38(ivec3) AtomicXor 133(gs_ua3) 54 55 164
-                              Store 137(out_u3) 165
-                              ReturnValue 167
+     140(out_u3):     39(ptr) Variable Function
+             133:   36(fvec3) Load 41(inF0)
+             134:    49(bool) All 133
+             138:   38(ivec3) Load 137(gs_ub3)
+             139:           2 AtomicIAdd 136(gs_ua3) 55 56 138
+             141:   38(ivec3) Load 137(gs_ub3)
+             142:   38(ivec3) AtomicIAdd 136(gs_ua3) 55 56 141
+                              Store 140(out_u3) 142
+             143:   38(ivec3) Load 137(gs_ub3)
+             144:           2 AtomicAnd 136(gs_ua3) 55 56 143
+             145:   38(ivec3) Load 137(gs_ub3)
+             146:   38(ivec3) AtomicAnd 136(gs_ua3) 55 56 145
+                              Store 140(out_u3) 146
+             147:   38(ivec3) Load 137(gs_ub3)
+             149:   38(ivec3) Load 148(gs_uc3)
+             150:   38(ivec3) AtomicCompareExchange 136(gs_ua3) 55 56 56 149 147
+                              Store 140(out_u3) 150
+             151:   38(ivec3) Load 137(gs_ub3)
+             152:   38(ivec3) AtomicExchange 136(gs_ua3) 55 56 151
+                              Store 140(out_u3) 152
+             153:   38(ivec3) Load 137(gs_ub3)
+             154:           2 AtomicSMax 136(gs_ua3) 55 56 153
+             155:   38(ivec3) Load 137(gs_ub3)
+             156:   38(ivec3) AtomicUMax 136(gs_ua3) 55 56 155
+                              Store 140(out_u3) 156
+             157:   38(ivec3) Load 137(gs_ub3)
+             158:           2 AtomicSMin 136(gs_ua3) 55 56 157
+             159:   38(ivec3) Load 137(gs_ub3)
+             160:   38(ivec3) AtomicUMin 136(gs_ua3) 55 56 159
+                              Store 140(out_u3) 160
+             161:   38(ivec3) Load 137(gs_ub3)
+             162:           2 AtomicOr 136(gs_ua3) 55 56 161
+             163:   38(ivec3) Load 137(gs_ub3)
+             164:   38(ivec3) AtomicOr 136(gs_ua3) 55 56 163
+                              Store 140(out_u3) 164
+             165:   38(ivec3) Load 137(gs_ub3)
+             166:           2 AtomicXor 136(gs_ua3) 55 56 165
+             167:   38(ivec3) Load 137(gs_ub3)
+             168:   38(ivec3) AtomicXor 136(gs_ua3) 55 56 167
+                              Store 140(out_u3) 168
+                              ReturnValue 170
                               FunctionEnd
index 494cc0f..8bfc072 100644 (file)
@@ -2,7 +2,7 @@ hlsl.intrinsics.double.frag
 Shader version: 450
 gl_FragCoord origin is upper left
 0:? Sequence
-0:12  Function Definition: PixelShaderFunction(d1;d1;d1;vd2;vd3;vd4;u1;u1; (temp float)
+0:12  Function Definition: PixelShaderFunction(d1;d1;d1;vd2;vd3;vd4;u1;u1; (global float)
 0:5    Function Parameters: 
 0:5      'inDV1a' (in double)
 0:5      'inDV1b' (in double)
@@ -39,7 +39,7 @@ Linked fragment stage:
 Shader version: 450
 gl_FragCoord origin is upper left
 0:? Sequence
-0:12  Function Definition: PixelShaderFunction(d1;d1;d1;vd2;vd3;vd4;u1;u1; (temp float)
+0:12  Function Definition: PixelShaderFunction(d1;d1;d1;vd2;vd3;vd4;u1;u1; (global float)
 0:5    Function Parameters: 
 0:5      'inDV1a' (in double)
 0:5      'inDV1b' (in double)
index 1c22b25..f1b6411 100644 (file)
@@ -2,7 +2,7 @@ hlsl.intrinsics.evalfns.frag
 Shader version: 450
 gl_FragCoord origin is upper left
 0:? Sequence
-0:11  Function Definition: main(f1;vf2;vf3;vf4;vi2; (temp void)
+0:11  Function Definition: main(f1;vf2;vf3;vf4;vi2; (global void)
 0:3    Function Parameters: 
 0:3      'inF1' (in float)
 0:3      'inF2' (in 2-component vector of float)
@@ -52,7 +52,7 @@ Linked fragment stage:
 Shader version: 450
 gl_FragCoord origin is upper left
 0:? Sequence
-0:11  Function Definition: main(f1;vf2;vf3;vf4;vi2; (temp void)
+0:11  Function Definition: main(f1;vf2;vf3;vf4;vi2; (global void)
 0:3    Function Parameters: 
 0:3      'inF1' (in float)
 0:3      'inF2' (in 2-component vector of float)
index ce51929..7340531 100644 (file)
@@ -9,7 +9,7 @@ ERROR: 4 compilation errors.  No code generated.
 Shader version: 450
 gl_FragCoord origin is upper left
 ERROR: node is still EOpNull!
-0:8  Function Definition: PixelShaderFunctionS(f1; (temp float)
+0:8  Function Definition: PixelShaderFunctionS(f1; (global float)
 0:2    Function Parameters: 
 0:2      'inF0' (in float)
 0:?     Sequence
@@ -19,14 +19,14 @@ ERROR: node is still EOpNull!
 0:5      Branch: Return with expression
 0:5        Constant:
 0:5          0.000000
-0:14  Function Definition: PixelShaderFunction1(vf1; (temp 1-component vector of float)
+0:14  Function Definition: PixelShaderFunction1(vf1; (global 1-component vector of float)
 0:9    Function Parameters: 
 0:9      'inF0' (in 1-component vector of float)
 0:?     Sequence
 0:11      Branch: Return with expression
 0:11        Constant:
 0:11          0.000000
-0:21  Function Definition: PixelShaderFunction2(vf2; (temp 2-component vector of float)
+0:21  Function Definition: PixelShaderFunction2(vf2; (global 2-component vector of float)
 0:15    Function Parameters: 
 0:15      'inF0' (in 2-component vector of float)
 0:?     Sequence
@@ -37,7 +37,7 @@ ERROR: node is still EOpNull!
 0:?         Constant:
 0:?           1.000000
 0:?           2.000000
-0:28  Function Definition: PixelShaderFunction3(vf3; (temp 3-component vector of float)
+0:28  Function Definition: PixelShaderFunction3(vf3; (global 3-component vector of float)
 0:22    Function Parameters: 
 0:22      'inF0' (in 3-component vector of float)
 0:?     Sequence
@@ -49,7 +49,7 @@ ERROR: node is still EOpNull!
 0:?           1.000000
 0:?           2.000000
 0:?           3.000000
-0:35  Function Definition: PixelShaderFunction(vf4; (temp 4-component vector of float)
+0:35  Function Definition: PixelShaderFunction(vf4; (global 4-component vector of float)
 0:29    Function Parameters: 
 0:29      'inF0' (in 4-component vector of float)
 0:?     Sequence
@@ -71,7 +71,7 @@ Linked fragment stage:
 Shader version: 450
 gl_FragCoord origin is upper left
 ERROR: node is still EOpNull!
-0:8  Function Definition: PixelShaderFunctionS(f1; (temp float)
+0:8  Function Definition: PixelShaderFunctionS(f1; (global float)
 0:2    Function Parameters: 
 0:2      'inF0' (in float)
 0:?     Sequence
@@ -81,14 +81,14 @@ ERROR: node is still EOpNull!
 0:5      Branch: Return with expression
 0:5        Constant:
 0:5          0.000000
-0:14  Function Definition: PixelShaderFunction1(vf1; (temp 1-component vector of float)
+0:14  Function Definition: PixelShaderFunction1(vf1; (global 1-component vector of float)
 0:9    Function Parameters: 
 0:9      'inF0' (in 1-component vector of float)
 0:?     Sequence
 0:11      Branch: Return with expression
 0:11        Constant:
 0:11          0.000000
-0:21  Function Definition: PixelShaderFunction2(vf2; (temp 2-component vector of float)
+0:21  Function Definition: PixelShaderFunction2(vf2; (global 2-component vector of float)
 0:15    Function Parameters: 
 0:15      'inF0' (in 2-component vector of float)
 0:?     Sequence
@@ -99,7 +99,7 @@ ERROR: node is still EOpNull!
 0:?         Constant:
 0:?           1.000000
 0:?           2.000000
-0:28  Function Definition: PixelShaderFunction3(vf3; (temp 3-component vector of float)
+0:28  Function Definition: PixelShaderFunction3(vf3; (global 3-component vector of float)
 0:22    Function Parameters: 
 0:22      'inF0' (in 3-component vector of float)
 0:?     Sequence
@@ -111,7 +111,7 @@ ERROR: node is still EOpNull!
 0:?           1.000000
 0:?           2.000000
 0:?           3.000000
-0:35  Function Definition: PixelShaderFunction(vf4; (temp 4-component vector of float)
+0:35  Function Definition: PixelShaderFunction(vf4; (global 4-component vector of float)
 0:29    Function Parameters: 
 0:29      'inF0' (in 4-component vector of float)
 0:?     Sequence
index aec3602..f6c4147 100644 (file)
@@ -2,7 +2,7 @@ hlsl.intrinsics.frag
 Shader version: 450
 gl_FragCoord origin is upper left
 0:? Sequence
-0:88  Function Definition: PixelShaderFunctionS(f1;f1;f1;u1;u1; (temp float)
+0:88  Function Definition: PixelShaderFunctionS(f1;f1;f1;u1;u1; (global float)
 0:17    Function Parameters: 
 0:17      'inF0' (in float)
 0:17      'inF1' (in float)
@@ -339,7 +339,7 @@ gl_FragCoord origin is upper left
 0:85      Branch: Return with expression
 0:85        Constant:
 0:85          0.000000
-0:94  Function Definition: PixelShaderFunction1(vf1;vf1;vf1; (temp 1-component vector of float)
+0:94  Function Definition: PixelShaderFunction1(vf1;vf1;vf1; (global 1-component vector of float)
 0:89    Function Parameters: 
 0:89      'inF0' (in 1-component vector of float)
 0:89      'inF1' (in 1-component vector of float)
@@ -348,7 +348,7 @@ gl_FragCoord origin is upper left
 0:91      Branch: Return with expression
 0:91        Constant:
 0:91          0.000000
-0:177  Function Definition: PixelShaderFunction2(vf2;vf2;vf2;vu2;vu2; (temp 2-component vector of float)
+0:177  Function Definition: PixelShaderFunction2(vf2;vf2;vf2;vu2;vu2; (global 2-component vector of float)
 0:95    Function Parameters: 
 0:95      'inF0' (in 2-component vector of float)
 0:95      'inF1' (in 2-component vector of float)
@@ -733,7 +733,7 @@ gl_FragCoord origin is upper left
 0:?         Constant:
 0:?           1.000000
 0:?           2.000000
-0:258  Function Definition: PixelShaderFunction3(vf3;vf3;vf3;vu3;vu3; (temp 3-component vector of float)
+0:258  Function Definition: PixelShaderFunction3(vf3;vf3;vf3;vu3;vu3; (global 3-component vector of float)
 0:178    Function Parameters: 
 0:178      'inF0' (in 3-component vector of float)
 0:178      'inF1' (in 3-component vector of float)
@@ -1130,7 +1130,7 @@ gl_FragCoord origin is upper left
 0:?           1.000000
 0:?           2.000000
 0:?           3.000000
-0:399  Function Definition: PixelShaderFunction(vf4;vf4;vf4;vu4;vu4; (temp 4-component vector of float)
+0:399  Function Definition: PixelShaderFunction(vf4;vf4;vf4;vu4;vu4; (global 4-component vector of float)
 0:259    Function Parameters: 
 0:259      'inF0' (in 4-component vector of float)
 0:259      'inF1' (in 4-component vector of float)
@@ -1550,7 +1550,7 @@ gl_FragCoord origin is upper left
 0:?           2.000000
 0:?           3.000000
 0:?           4.000000
-0:408  Function Definition: PixelShaderFunction2x2(mf22;mf22;mf22; (temp 2X2 matrix of float)
+0:408  Function Definition: PixelShaderFunction2x2(mf22;mf22;mf22; (global 2X2 matrix of float)
 0:400    Function Parameters: 
 0:400      'inF0' (in 2X2 matrix of float)
 0:400      'inF1' (in 2X2 matrix of float)
@@ -1838,7 +1838,7 @@ gl_FragCoord origin is upper left
 0:?           2.000000
 0:?           2.000000
 0:?           2.000000
-0:417  Function Definition: PixelShaderFunction3x3(mf33;mf33;mf33; (temp 3X3 matrix of float)
+0:417  Function Definition: PixelShaderFunction3x3(mf33;mf33;mf33; (global 3X3 matrix of float)
 0:409    Function Parameters: 
 0:409      'inF0' (in 3X3 matrix of float)
 0:409      'inF1' (in 3X3 matrix of float)
@@ -2136,7 +2136,7 @@ gl_FragCoord origin is upper left
 0:?           3.000000
 0:?           3.000000
 0:?           3.000000
-0:438  Function Definition: PixelShaderFunction4x4(mf44;mf44;mf44; (temp 4X4 matrix of float)
+0:438  Function Definition: PixelShaderFunction4x4(mf44;mf44;mf44; (global 4X4 matrix of float)
 0:418    Function Parameters: 
 0:418      'inF0' (in 4X4 matrix of float)
 0:418      'inF1' (in 4X4 matrix of float)
@@ -2448,7 +2448,7 @@ gl_FragCoord origin is upper left
 0:?           4.000000
 0:?           4.000000
 0:?           4.000000
-0:445  Function Definition: TestGenMul2(f1;f1;vf2;vf2;mf22;mf22; (temp void)
+0:445  Function Definition: TestGenMul2(f1;f1;vf2;vf2;mf22;mf22; (global void)
 0:441    Function Parameters: 
 0:441      'inF0' (in float)
 0:441      'inF1' (in float)
@@ -2511,7 +2511,7 @@ gl_FragCoord origin is upper left
 0:442          matrix-multiply (temp 2X2 matrix of float)
 0:442            'inFM0' (in 2X2 matrix of float)
 0:442            'inFM1' (in 2X2 matrix of float)
-0:452  Function Definition: TestGenMul3(f1;f1;vf3;vf3;mf33;mf33; (temp void)
+0:452  Function Definition: TestGenMul3(f1;f1;vf3;vf3;mf33;mf33; (global void)
 0:448    Function Parameters: 
 0:448      'inF0' (in float)
 0:448      'inF1' (in float)
@@ -2574,7 +2574,7 @@ gl_FragCoord origin is upper left
 0:449          matrix-multiply (temp 3X3 matrix of float)
 0:449            'inFM0' (in 3X3 matrix of float)
 0:449            'inFM1' (in 3X3 matrix of float)
-0:460  Function Definition: TestGenMul4(f1;f1;vf4;vf4;mf44;mf44; (temp void)
+0:460  Function Definition: TestGenMul4(f1;f1;vf4;vf4;mf44;mf44; (global void)
 0:455    Function Parameters: 
 0:455      'inF0' (in float)
 0:455      'inF1' (in float)
@@ -2637,7 +2637,7 @@ gl_FragCoord origin is upper left
 0:456          matrix-multiply (temp 4X4 matrix of float)
 0:456            'inFM0' (in 4X4 matrix of float)
 0:456            'inFM1' (in 4X4 matrix of float)
-0:484  Function Definition: TestGenMulNxM(f1;f1;vf2;vf3;mf32;mf23;mf33;mf43;mf42; (temp void)
+0:484  Function Definition: TestGenMulNxM(f1;f1;vf2;vf3;mf32;mf23;mf33;mf43;mf42; (global void)
 0:465    Function Parameters: 
 0:465      'inF0' (in float)
 0:465      'inF1' (in float)
@@ -2752,18 +2752,18 @@ gl_FragCoord origin is upper left
 0:482            'inFM3x2' (in 2X3 matrix of float)
 0:482            'inFM2x4' (in 4X2 matrix of float)
 0:?   Linker Objects
-0:?     'gs_ua' (temp uint)
-0:?     'gs_ub' (temp uint)
-0:?     'gs_uc' (temp uint)
-0:?     'gs_ua2' (temp 2-component vector of uint)
-0:?     'gs_ub2' (temp 2-component vector of uint)
-0:?     'gs_uc2' (temp 2-component vector of uint)
-0:?     'gs_ua3' (temp 3-component vector of uint)
-0:?     'gs_ub3' (temp 3-component vector of uint)
-0:?     'gs_uc3' (temp 3-component vector of uint)
-0:?     'gs_ua4' (temp 4-component vector of uint)
-0:?     'gs_ub4' (temp 4-component vector of uint)
-0:?     'gs_uc4' (temp 4-component vector of uint)
+0:?     'gs_ua' (global uint)
+0:?     'gs_ub' (global uint)
+0:?     'gs_uc' (global uint)
+0:?     'gs_ua2' (global 2-component vector of uint)
+0:?     'gs_ub2' (global 2-component vector of uint)
+0:?     'gs_uc2' (global 2-component vector of uint)
+0:?     'gs_ua3' (global 3-component vector of uint)
+0:?     'gs_ub3' (global 3-component vector of uint)
+0:?     'gs_uc3' (global 3-component vector of uint)
+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)
 
 
 Linked fragment stage:
@@ -2772,7 +2772,7 @@ Linked fragment stage:
 Shader version: 450
 gl_FragCoord origin is upper left
 0:? Sequence
-0:88  Function Definition: PixelShaderFunctionS(f1;f1;f1;u1;u1; (temp float)
+0:88  Function Definition: PixelShaderFunctionS(f1;f1;f1;u1;u1; (global float)
 0:17    Function Parameters: 
 0:17      'inF0' (in float)
 0:17      'inF1' (in float)
@@ -3109,7 +3109,7 @@ gl_FragCoord origin is upper left
 0:85      Branch: Return with expression
 0:85        Constant:
 0:85          0.000000
-0:94  Function Definition: PixelShaderFunction1(vf1;vf1;vf1; (temp 1-component vector of float)
+0:94  Function Definition: PixelShaderFunction1(vf1;vf1;vf1; (global 1-component vector of float)
 0:89    Function Parameters: 
 0:89      'inF0' (in 1-component vector of float)
 0:89      'inF1' (in 1-component vector of float)
@@ -3118,7 +3118,7 @@ gl_FragCoord origin is upper left
 0:91      Branch: Return with expression
 0:91        Constant:
 0:91          0.000000
-0:177  Function Definition: PixelShaderFunction2(vf2;vf2;vf2;vu2;vu2; (temp 2-component vector of float)
+0:177  Function Definition: PixelShaderFunction2(vf2;vf2;vf2;vu2;vu2; (global 2-component vector of float)
 0:95    Function Parameters: 
 0:95      'inF0' (in 2-component vector of float)
 0:95      'inF1' (in 2-component vector of float)
@@ -3503,7 +3503,7 @@ gl_FragCoord origin is upper left
 0:?         Constant:
 0:?           1.000000
 0:?           2.000000
-0:258  Function Definition: PixelShaderFunction3(vf3;vf3;vf3;vu3;vu3; (temp 3-component vector of float)
+0:258  Function Definition: PixelShaderFunction3(vf3;vf3;vf3;vu3;vu3; (global 3-component vector of float)
 0:178    Function Parameters: 
 0:178      'inF0' (in 3-component vector of float)
 0:178      'inF1' (in 3-component vector of float)
@@ -3900,7 +3900,7 @@ gl_FragCoord origin is upper left
 0:?           1.000000
 0:?           2.000000
 0:?           3.000000
-0:399  Function Definition: PixelShaderFunction(vf4;vf4;vf4;vu4;vu4; (temp 4-component vector of float)
+0:399  Function Definition: PixelShaderFunction(vf4;vf4;vf4;vu4;vu4; (global 4-component vector of float)
 0:259    Function Parameters: 
 0:259      'inF0' (in 4-component vector of float)
 0:259      'inF1' (in 4-component vector of float)
@@ -4320,7 +4320,7 @@ gl_FragCoord origin is upper left
 0:?           2.000000
 0:?           3.000000
 0:?           4.000000
-0:408  Function Definition: PixelShaderFunction2x2(mf22;mf22;mf22; (temp 2X2 matrix of float)
+0:408  Function Definition: PixelShaderFunction2x2(mf22;mf22;mf22; (global 2X2 matrix of float)
 0:400    Function Parameters: 
 0:400      'inF0' (in 2X2 matrix of float)
 0:400      'inF1' (in 2X2 matrix of float)
@@ -4608,7 +4608,7 @@ gl_FragCoord origin is upper left
 0:?           2.000000
 0:?           2.000000
 0:?           2.000000
-0:417  Function Definition: PixelShaderFunction3x3(mf33;mf33;mf33; (temp 3X3 matrix of float)
+0:417  Function Definition: PixelShaderFunction3x3(mf33;mf33;mf33; (global 3X3 matrix of float)
 0:409    Function Parameters: 
 0:409      'inF0' (in 3X3 matrix of float)
 0:409      'inF1' (in 3X3 matrix of float)
@@ -4906,7 +4906,7 @@ gl_FragCoord origin is upper left
 0:?           3.000000
 0:?           3.000000
 0:?           3.000000
-0:438  Function Definition: PixelShaderFunction4x4(mf44;mf44;mf44; (temp 4X4 matrix of float)
+0:438  Function Definition: PixelShaderFunction4x4(mf44;mf44;mf44; (global 4X4 matrix of float)
 0:418    Function Parameters: 
 0:418      'inF0' (in 4X4 matrix of float)
 0:418      'inF1' (in 4X4 matrix of float)
@@ -5218,7 +5218,7 @@ gl_FragCoord origin is upper left
 0:?           4.000000
 0:?           4.000000
 0:?           4.000000
-0:445  Function Definition: TestGenMul2(f1;f1;vf2;vf2;mf22;mf22; (temp void)
+0:445  Function Definition: TestGenMul2(f1;f1;vf2;vf2;mf22;mf22; (global void)
 0:441    Function Parameters: 
 0:441      'inF0' (in float)
 0:441      'inF1' (in float)
@@ -5281,7 +5281,7 @@ gl_FragCoord origin is upper left
 0:442          matrix-multiply (temp 2X2 matrix of float)
 0:442            'inFM0' (in 2X2 matrix of float)
 0:442            'inFM1' (in 2X2 matrix of float)
-0:452  Function Definition: TestGenMul3(f1;f1;vf3;vf3;mf33;mf33; (temp void)
+0:452  Function Definition: TestGenMul3(f1;f1;vf3;vf3;mf33;mf33; (global void)
 0:448    Function Parameters: 
 0:448      'inF0' (in float)
 0:448      'inF1' (in float)
@@ -5344,7 +5344,7 @@ gl_FragCoord origin is upper left
 0:449          matrix-multiply (temp 3X3 matrix of float)
 0:449            'inFM0' (in 3X3 matrix of float)
 0:449            'inFM1' (in 3X3 matrix of float)
-0:460  Function Definition: TestGenMul4(f1;f1;vf4;vf4;mf44;mf44; (temp void)
+0:460  Function Definition: TestGenMul4(f1;f1;vf4;vf4;mf44;mf44; (global void)
 0:455    Function Parameters: 
 0:455      'inF0' (in float)
 0:455      'inF1' (in float)
@@ -5407,7 +5407,7 @@ gl_FragCoord origin is upper left
 0:456          matrix-multiply (temp 4X4 matrix of float)
 0:456            'inFM0' (in 4X4 matrix of float)
 0:456            'inFM1' (in 4X4 matrix of float)
-0:484  Function Definition: TestGenMulNxM(f1;f1;vf2;vf3;mf32;mf23;mf33;mf43;mf42; (temp void)
+0:484  Function Definition: TestGenMulNxM(f1;f1;vf2;vf3;mf32;mf23;mf33;mf43;mf42; (global void)
 0:465    Function Parameters: 
 0:465      'inF0' (in float)
 0:465      'inF1' (in float)
@@ -5522,22 +5522,22 @@ gl_FragCoord origin is upper left
 0:482            'inFM3x2' (in 2X3 matrix of float)
 0:482            'inFM2x4' (in 4X2 matrix of float)
 0:?   Linker Objects
-0:?     'gs_ua' (temp uint)
-0:?     'gs_ub' (temp uint)
-0:?     'gs_uc' (temp uint)
-0:?     'gs_ua2' (temp 2-component vector of uint)
-0:?     'gs_ub2' (temp 2-component vector of uint)
-0:?     'gs_uc2' (temp 2-component vector of uint)
-0:?     'gs_ua3' (temp 3-component vector of uint)
-0:?     'gs_ub3' (temp 3-component vector of uint)
-0:?     'gs_uc3' (temp 3-component vector of uint)
-0:?     'gs_ua4' (temp 4-component vector of uint)
-0:?     'gs_ub4' (temp 4-component vector of uint)
-0:?     'gs_uc4' (temp 4-component vector of uint)
+0:?     'gs_ua' (global uint)
+0:?     'gs_ub' (global uint)
+0:?     'gs_uc' (global uint)
+0:?     'gs_ua2' (global 2-component vector of uint)
+0:?     'gs_ub2' (global 2-component vector of uint)
+0:?     'gs_uc2' (global 2-component vector of uint)
+0:?     'gs_ua3' (global 3-component vector of uint)
+0:?     'gs_ub3' (global 3-component vector of uint)
+0:?     'gs_uc3' (global 3-component vector of uint)
+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)
 
 // Module Version 10000
 // Generated by (magic number): 80001
-// Id's are bound by 1802
+// Id's are bound by 1806
 
                               Capability Shader
                               Capability DerivativeControl
@@ -6052,18 +6052,18 @@ gl_FragCoord origin is upper left
                               Name 1778  "r14"
                               Name 1782  "r15"
                               Name 1786  "r16"
-                              Name 1790  "gs_ua"
-                              Name 1791  "gs_ub"
-                              Name 1792  "gs_uc"
-                              Name 1793  "gs_ua2"
-                              Name 1794  "gs_ub2"
-                              Name 1795  "gs_uc2"
-                              Name 1796  "gs_ua3"
-                              Name 1797  "gs_ub3"
-                              Name 1798  "gs_uc3"
-                              Name 1799  "gs_ua4"
-                              Name 1800  "gs_ub4"
-                              Name 1801  "gs_uc4"
+                              Name 1791  "gs_ua"
+                              Name 1792  "gs_ub"
+                              Name 1793  "gs_uc"
+                              Name 1795  "gs_ua2"
+                              Name 1796  "gs_ub2"
+                              Name 1797  "gs_uc2"
+                              Name 1799  "gs_ua3"
+                              Name 1800  "gs_ub3"
+                              Name 1801  "gs_uc3"
+                              Name 1803  "gs_ua4"
+                              Name 1804  "gs_ub4"
+                              Name 1805  "gs_uc4"
                2:             TypeVoid
                3:             TypeFunction 2
                6:             TypeFloat 32
@@ -6180,6 +6180,22 @@ gl_FragCoord origin is upper left
    1522(ResType):             TypeStruct 65 819(ivec4)
             1610:   64(fvec4) ConstantComposite 1053 1053 1053 1053
             1611:          65 ConstantComposite 1610 1610 1610 1610
+            1790:             TypePointer Private 8(int)
+     1791(gs_ua):   1790(ptr) Variable Private
+     1792(gs_ub):   1790(ptr) Variable Private
+     1793(gs_uc):   1790(ptr) Variable Private
+            1794:             TypePointer Private 26(ivec2)
+    1795(gs_ua2):   1794(ptr) Variable Private
+    1796(gs_ub2):   1794(ptr) Variable Private
+    1797(gs_uc2):   1794(ptr) Variable Private
+            1798:             TypePointer Private 38(ivec3)
+    1799(gs_ua3):   1798(ptr) Variable Private
+    1800(gs_ub3):   1798(ptr) Variable Private
+    1801(gs_uc3):   1798(ptr) Variable Private
+            1802:             TypePointer Private 824(ivec4)
+    1803(gs_ua4):   1802(ptr) Variable Private
+    1804(gs_ub4):   1802(ptr) Variable Private
+    1805(gs_uc4):   1802(ptr) Variable Private
 4(PixelShaderFunction):           2 Function None 3
                5:             Label
        802(r000):    122(ptr) Variable Function
@@ -8255,18 +8271,6 @@ gl_FragCoord origin is upper left
        1778(r14):    102(ptr) Variable Function
        1782(r15):    108(ptr) Variable Function
        1786(r16):    106(ptr) Variable Function
-     1790(gs_ua):      9(ptr) Variable Function
-     1791(gs_ub):      9(ptr) Variable Function
-     1792(gs_uc):      9(ptr) Variable Function
-    1793(gs_ua2):     27(ptr) Variable Function
-    1794(gs_ub2):     27(ptr) Variable Function
-    1795(gs_uc2):     27(ptr) Variable Function
-    1796(gs_ua3):     39(ptr) Variable Function
-    1797(gs_ub3):     39(ptr) Variable Function
-    1798(gs_uc3):     39(ptr) Variable Function
-    1799(gs_ua4):    825(ptr) Variable Function
-    1800(gs_ub4):    825(ptr) Variable Function
-    1801(gs_uc4):    825(ptr) Variable Function
             1723:    6(float) Load 110(inF0)
             1724:    6(float) Load 111(inF1)
             1725:    6(float) FMul 1723 1724
index 1bb37df..fe6f93c 100644 (file)
@@ -2,7 +2,7 @@ hlsl.intrinsics.lit.frag
 Shader version: 450
 gl_FragCoord origin is upper left
 0:? Sequence
-0:5  Function Definition: PixelShaderFunction(f1;f1;f1; (temp void)
+0:5  Function Definition: PixelShaderFunction(f1;f1;f1; (global void)
 0:2    Function Parameters: 
 0:2      'n_dot_l' (in float)
 0:2      'n_dot_h' (in float)
@@ -44,7 +44,7 @@ Linked fragment stage:
 Shader version: 450
 gl_FragCoord origin is upper left
 0:? Sequence
-0:5  Function Definition: PixelShaderFunction(f1;f1;f1; (temp void)
+0:5  Function Definition: PixelShaderFunction(f1;f1;f1; (global void)
 0:2    Function Parameters: 
 0:2      'n_dot_l' (in float)
 0:2      'n_dot_h' (in float)
index e27ab5b..043fa82 100644 (file)
@@ -152,7 +152,7 @@ ERROR: 147 compilation errors.  No code generated.
 Shader version: 450
 local_size = (1, 1, 1)
 ERROR: node is still EOpNull!
-0:56  Function Definition: ComputeShaderFunctionS(f1;f1;f1;i1; (temp float)
+0:56  Function Definition: ComputeShaderFunctionS(f1;f1;f1;i1; (global float)
 0:2    Function Parameters: 
 0:2      'inF0' (in float)
 0:2      'inF1' (in float)
@@ -246,7 +246,7 @@ ERROR: node is still EOpNull!
 0:53      Branch: Return with expression
 0:53        Constant:
 0:53          0.000000
-0:65  Function Definition: ComputeShaderFunction1(vf1;vf1;vf1;vi1; (temp 1-component vector of float)
+0:65  Function Definition: ComputeShaderFunction1(vf1;vf1;vf1;vi1; (global 1-component vector of float)
 0:57    Function Parameters: 
 0:57      'inF0' (in 1-component vector of float)
 0:57      'inF1' (in 1-component vector of float)
@@ -258,7 +258,7 @@ ERROR: node is still EOpNull!
 0:62      Branch: Return with expression
 0:62        Constant:
 0:62          0.000000
-0:112  Function Definition: ComputeShaderFunction2(vf2;vf2;vf2;vi2; (temp 2-component vector of float)
+0:112  Function Definition: ComputeShaderFunction2(vf2;vf2;vf2;vi2; (global 2-component vector of float)
 0:66    Function Parameters: 
 0:66      'inF0' (in 2-component vector of float)
 0:66      'inF1' (in 2-component vector of float)
@@ -341,7 +341,7 @@ ERROR: node is still EOpNull!
 0:?         Constant:
 0:?           1.000000
 0:?           2.000000
-0:157  Function Definition: ComputeShaderFunction3(vf3;vf3;vf3;vi3; (temp 3-component vector of float)
+0:157  Function Definition: ComputeShaderFunction3(vf3;vf3;vf3;vi3; (global 3-component vector of float)
 0:113    Function Parameters: 
 0:113      'inF0' (in 3-component vector of float)
 0:113      'inF1' (in 3-component vector of float)
@@ -421,7 +421,7 @@ ERROR: node is still EOpNull!
 0:?           1.000000
 0:?           2.000000
 0:?           3.000000
-0:202  Function Definition: ComputeShaderFunction(vf4;vf4;vf4;vi4; (temp 4-component vector of float)
+0:202  Function Definition: ComputeShaderFunction(vf4;vf4;vf4;vi4; (global 4-component vector of float)
 0:158    Function Parameters: 
 0:158      'inF0' (in 4-component vector of float)
 0:158      'inF1' (in 4-component vector of float)
@@ -511,7 +511,7 @@ Linked compute stage:
 Shader version: 450
 local_size = (1, 1, 1)
 ERROR: node is still EOpNull!
-0:56  Function Definition: ComputeShaderFunctionS(f1;f1;f1;i1; (temp float)
+0:56  Function Definition: ComputeShaderFunctionS(f1;f1;f1;i1; (global float)
 0:2    Function Parameters: 
 0:2      'inF0' (in float)
 0:2      'inF1' (in float)
@@ -605,7 +605,7 @@ ERROR: node is still EOpNull!
 0:53      Branch: Return with expression
 0:53        Constant:
 0:53          0.000000
-0:65  Function Definition: ComputeShaderFunction1(vf1;vf1;vf1;vi1; (temp 1-component vector of float)
+0:65  Function Definition: ComputeShaderFunction1(vf1;vf1;vf1;vi1; (global 1-component vector of float)
 0:57    Function Parameters: 
 0:57      'inF0' (in 1-component vector of float)
 0:57      'inF1' (in 1-component vector of float)
@@ -617,7 +617,7 @@ ERROR: node is still EOpNull!
 0:62      Branch: Return with expression
 0:62        Constant:
 0:62          0.000000
-0:112  Function Definition: ComputeShaderFunction2(vf2;vf2;vf2;vi2; (temp 2-component vector of float)
+0:112  Function Definition: ComputeShaderFunction2(vf2;vf2;vf2;vi2; (global 2-component vector of float)
 0:66    Function Parameters: 
 0:66      'inF0' (in 2-component vector of float)
 0:66      'inF1' (in 2-component vector of float)
@@ -700,7 +700,7 @@ ERROR: node is still EOpNull!
 0:?         Constant:
 0:?           1.000000
 0:?           2.000000
-0:157  Function Definition: ComputeShaderFunction3(vf3;vf3;vf3;vi3; (temp 3-component vector of float)
+0:157  Function Definition: ComputeShaderFunction3(vf3;vf3;vf3;vi3; (global 3-component vector of float)
 0:113    Function Parameters: 
 0:113      'inF0' (in 3-component vector of float)
 0:113      'inF1' (in 3-component vector of float)
@@ -780,7 +780,7 @@ ERROR: node is still EOpNull!
 0:?           1.000000
 0:?           2.000000
 0:?           3.000000
-0:202  Function Definition: ComputeShaderFunction(vf4;vf4;vf4;vi4; (temp 4-component vector of float)
+0:202  Function Definition: ComputeShaderFunction(vf4;vf4;vf4;vi4; (global 4-component vector of float)
 0:158    Function Parameters: 
 0:158      'inF0' (in 4-component vector of float)
 0:158      'inF1' (in 4-component vector of float)
index d065e07..829b699 100644 (file)
@@ -91,7 +91,7 @@ ERROR: 86 compilation errors.  No code generated.
 Shader version: 450
 gl_FragCoord origin is upper left
 ERROR: node is still EOpNull!
-0:35  Function Definition: PixelShaderFunctionS(f1;f1;f1;i1; (temp float)
+0:35  Function Definition: PixelShaderFunctionS(f1;f1;f1;i1; (global float)
 0:2    Function Parameters: 
 0:2      'inF0' (in float)
 0:2      'inF1' (in float)
@@ -135,7 +135,7 @@ ERROR: node is still EOpNull!
 0:32      Branch: Return with expression
 0:32        Constant:
 0:32          0.000000
-0:44  Function Definition: PixelShaderFunction1(vf1;vf1;vf1;vi1; (temp 1-component vector of float)
+0:44  Function Definition: PixelShaderFunction1(vf1;vf1;vf1;vi1; (global 1-component vector of float)
 0:36    Function Parameters: 
 0:36      'inF0' (in 1-component vector of float)
 0:36      'inF1' (in 1-component vector of float)
@@ -147,7 +147,7 @@ ERROR: node is still EOpNull!
 0:41      Branch: Return with expression
 0:41        Constant:
 0:41          0.000000
-0:62  Function Definition: PixelShaderFunction2(vf2;vf2;vf2;vi2; (temp 2-component vector of float)
+0:62  Function Definition: PixelShaderFunction2(vf2;vf2;vf2;vi2; (global 2-component vector of float)
 0:45    Function Parameters: 
 0:45      'inF0' (in 2-component vector of float)
 0:45      'inF1' (in 2-component vector of float)
@@ -180,7 +180,7 @@ ERROR: node is still EOpNull!
 0:?         Constant:
 0:?           1.000000
 0:?           2.000000
-0:79  Function Definition: PixelShaderFunction3(vf3;vf3;vf3;vi3; (temp 3-component vector of float)
+0:79  Function Definition: PixelShaderFunction3(vf3;vf3;vf3;vi3; (global 3-component vector of float)
 0:63    Function Parameters: 
 0:63      'inF0' (in 3-component vector of float)
 0:63      'inF1' (in 3-component vector of float)
@@ -210,7 +210,7 @@ ERROR: node is still EOpNull!
 0:?           1.000000
 0:?           2.000000
 0:?           3.000000
-0:114  Function Definition: PixelShaderFunction(vf4;vf4;vf4;vi4; (temp 4-component vector of float)
+0:114  Function Definition: PixelShaderFunction(vf4;vf4;vf4;vi4; (global 4-component vector of float)
 0:80    Function Parameters: 
 0:80      'inF0' (in 4-component vector of float)
 0:80      'inF1' (in 4-component vector of float)
@@ -241,7 +241,7 @@ ERROR: node is still EOpNull!
 0:?           2.000000
 0:?           3.000000
 0:?           4.000000
-0:122  Function Definition: PixelShaderFunction2x2(mf22;mf22;mf22; (temp 2X2 matrix of float)
+0:122  Function Definition: PixelShaderFunction2x2(mf22;mf22;mf22; (global 2X2 matrix of float)
 0:115    Function Parameters: 
 0:115      'inF0' (in 2X2 matrix of float)
 0:115      'inF1' (in 2X2 matrix of float)
@@ -279,7 +279,7 @@ ERROR: node is still EOpNull!
 0:?           2.000000
 0:?           2.000000
 0:?           2.000000
-0:130  Function Definition: PixelShaderFunction3x3(mf33;mf33;mf33; (temp 3X3 matrix of float)
+0:130  Function Definition: PixelShaderFunction3x3(mf33;mf33;mf33; (global 3X3 matrix of float)
 0:123    Function Parameters: 
 0:123      'inF0' (in 3X3 matrix of float)
 0:123      'inF1' (in 3X3 matrix of float)
@@ -322,7 +322,7 @@ ERROR: node is still EOpNull!
 0:?           3.000000
 0:?           3.000000
 0:?           3.000000
-0:137  Function Definition: PixelShaderFunction4x4(mf44;mf44;mf44; (temp 4X4 matrix of float)
+0:137  Function Definition: PixelShaderFunction4x4(mf44;mf44;mf44; (global 4X4 matrix of float)
 0:131    Function Parameters: 
 0:131      'inF0' (in 4X4 matrix of float)
 0:131      'inF1' (in 4X4 matrix of float)
@@ -381,7 +381,7 @@ Linked fragment stage:
 Shader version: 450
 gl_FragCoord origin is upper left
 ERROR: node is still EOpNull!
-0:35  Function Definition: PixelShaderFunctionS(f1;f1;f1;i1; (temp float)
+0:35  Function Definition: PixelShaderFunctionS(f1;f1;f1;i1; (global float)
 0:2    Function Parameters: 
 0:2      'inF0' (in float)
 0:2      'inF1' (in float)
@@ -425,7 +425,7 @@ ERROR: node is still EOpNull!
 0:32      Branch: Return with expression
 0:32        Constant:
 0:32          0.000000
-0:44  Function Definition: PixelShaderFunction1(vf1;vf1;vf1;vi1; (temp 1-component vector of float)
+0:44  Function Definition: PixelShaderFunction1(vf1;vf1;vf1;vi1; (global 1-component vector of float)
 0:36    Function Parameters: 
 0:36      'inF0' (in 1-component vector of float)
 0:36      'inF1' (in 1-component vector of float)
@@ -437,7 +437,7 @@ ERROR: node is still EOpNull!
 0:41      Branch: Return with expression
 0:41        Constant:
 0:41          0.000000
-0:62  Function Definition: PixelShaderFunction2(vf2;vf2;vf2;vi2; (temp 2-component vector of float)
+0:62  Function Definition: PixelShaderFunction2(vf2;vf2;vf2;vi2; (global 2-component vector of float)
 0:45    Function Parameters: 
 0:45      'inF0' (in 2-component vector of float)
 0:45      'inF1' (in 2-component vector of float)
@@ -470,7 +470,7 @@ ERROR: node is still EOpNull!
 0:?         Constant:
 0:?           1.000000
 0:?           2.000000
-0:79  Function Definition: PixelShaderFunction3(vf3;vf3;vf3;vi3; (temp 3-component vector of float)
+0:79  Function Definition: PixelShaderFunction3(vf3;vf3;vf3;vi3; (global 3-component vector of float)
 0:63    Function Parameters: 
 0:63      'inF0' (in 3-component vector of float)
 0:63      'inF1' (in 3-component vector of float)
@@ -500,7 +500,7 @@ ERROR: node is still EOpNull!
 0:?           1.000000
 0:?           2.000000
 0:?           3.000000
-0:114  Function Definition: PixelShaderFunction(vf4;vf4;vf4;vi4; (temp 4-component vector of float)
+0:114  Function Definition: PixelShaderFunction(vf4;vf4;vf4;vi4; (global 4-component vector of float)
 0:80    Function Parameters: 
 0:80      'inF0' (in 4-component vector of float)
 0:80      'inF1' (in 4-component vector of float)
@@ -531,7 +531,7 @@ ERROR: node is still EOpNull!
 0:?           2.000000
 0:?           3.000000
 0:?           4.000000
-0:122  Function Definition: PixelShaderFunction2x2(mf22;mf22;mf22; (temp 2X2 matrix of float)
+0:122  Function Definition: PixelShaderFunction2x2(mf22;mf22;mf22; (global 2X2 matrix of float)
 0:115    Function Parameters: 
 0:115      'inF0' (in 2X2 matrix of float)
 0:115      'inF1' (in 2X2 matrix of float)
@@ -569,7 +569,7 @@ ERROR: node is still EOpNull!
 0:?           2.000000
 0:?           2.000000
 0:?           2.000000
-0:130  Function Definition: PixelShaderFunction3x3(mf33;mf33;mf33; (temp 3X3 matrix of float)
+0:130  Function Definition: PixelShaderFunction3x3(mf33;mf33;mf33; (global 3X3 matrix of float)
 0:123    Function Parameters: 
 0:123      'inF0' (in 3X3 matrix of float)
 0:123      'inF1' (in 3X3 matrix of float)
@@ -612,7 +612,7 @@ ERROR: node is still EOpNull!
 0:?           3.000000
 0:?           3.000000
 0:?           3.000000
-0:137  Function Definition: PixelShaderFunction4x4(mf44;mf44;mf44; (temp 4X4 matrix of float)
+0:137  Function Definition: PixelShaderFunction4x4(mf44;mf44;mf44; (global 4X4 matrix of float)
 0:131    Function Parameters: 
 0:131      'inF0' (in 4X4 matrix of float)
 0:131      'inF1' (in 4X4 matrix of float)
index 11123cb..0e974a1 100644 (file)
@@ -230,7 +230,7 @@ ERROR: 226 compilation errors.  No code generated.
 
 Shader version: 450
 ERROR: node is still EOpNull!
-0:74  Function Definition: VertexShaderFunctionS(f1;f1;f1;i1; (temp float)
+0:74  Function Definition: VertexShaderFunctionS(f1;f1;f1;i1; (global float)
 0:15    Function Parameters: 
 0:15      'inF0' (in float)
 0:15      'inF1' (in float)
@@ -338,7 +338,7 @@ ERROR: node is still EOpNull!
 0:71      Branch: Return with expression
 0:71        Constant:
 0:71          0.000000
-0:83  Function Definition: VertexShaderFunction1(vf1;vf1;vf1;vi1; (temp 1-component vector of float)
+0:83  Function Definition: VertexShaderFunction1(vf1;vf1;vf1;vi1; (global 1-component vector of float)
 0:75    Function Parameters: 
 0:75      'inF0' (in 1-component vector of float)
 0:75      'inF1' (in 1-component vector of float)
@@ -350,7 +350,7 @@ ERROR: node is still EOpNull!
 0:80      Branch: Return with expression
 0:80        Constant:
 0:80          0.000000
-0:130  Function Definition: VertexShaderFunction2(vf2;vf2;vf2;vi2; (temp 2-component vector of float)
+0:130  Function Definition: VertexShaderFunction2(vf2;vf2;vf2;vi2; (global 2-component vector of float)
 0:84    Function Parameters: 
 0:84      'inF0' (in 2-component vector of float)
 0:84      'inF1' (in 2-component vector of float)
@@ -433,7 +433,7 @@ ERROR: node is still EOpNull!
 0:?         Constant:
 0:?           1.000000
 0:?           2.000000
-0:175  Function Definition: VertexShaderFunction3(vf3;vf3;vf3;vi3; (temp 3-component vector of float)
+0:175  Function Definition: VertexShaderFunction3(vf3;vf3;vf3;vi3; (global 3-component vector of float)
 0:131    Function Parameters: 
 0:131      'inF0' (in 3-component vector of float)
 0:131      'inF1' (in 3-component vector of float)
@@ -513,7 +513,7 @@ ERROR: node is still EOpNull!
 0:?           1.000000
 0:?           2.000000
 0:?           3.000000
-0:250  Function Definition: VertexShaderFunction(vf4;vf4;vf4;vi4; (temp 4-component vector of float)
+0:250  Function Definition: VertexShaderFunction(vf4;vf4;vf4;vi4; (global 4-component vector of float)
 0:176    Function Parameters: 
 0:176      'inF0' (in 4-component vector of float)
 0:176      'inF1' (in 4-component vector of float)
@@ -594,7 +594,7 @@ ERROR: node is still EOpNull!
 0:?           2.000000
 0:?           3.000000
 0:?           4.000000
-0:258  Function Definition: VertexShaderFunction2x2(mf22;mf22;mf22; (temp 2X2 matrix of float)
+0:258  Function Definition: VertexShaderFunction2x2(mf22;mf22;mf22; (global 2X2 matrix of float)
 0:251    Function Parameters: 
 0:251      'inF0' (in 2X2 matrix of float)
 0:251      'inF1' (in 2X2 matrix of float)
@@ -654,7 +654,7 @@ ERROR: node is still EOpNull!
 0:?           2.000000
 0:?           2.000000
 0:?           2.000000
-0:266  Function Definition: VertexShaderFunction3x3(mf33;mf33;mf33; (temp 3X3 matrix of float)
+0:266  Function Definition: VertexShaderFunction3x3(mf33;mf33;mf33; (global 3X3 matrix of float)
 0:259    Function Parameters: 
 0:259      'inF0' (in 3X3 matrix of float)
 0:259      'inF1' (in 3X3 matrix of float)
@@ -719,7 +719,7 @@ ERROR: node is still EOpNull!
 0:?           3.000000
 0:?           3.000000
 0:?           3.000000
-0:273  Function Definition: VertexShaderFunction4x4(mf44;mf44;mf44; (temp 4X4 matrix of float)
+0:273  Function Definition: VertexShaderFunction4x4(mf44;mf44;mf44; (global 4X4 matrix of float)
 0:267    Function Parameters: 
 0:267      'inF0' (in 4X4 matrix of float)
 0:267      'inF1' (in 4X4 matrix of float)
@@ -792,18 +792,18 @@ ERROR: node is still EOpNull!
 0:?           4.000000
 0:?           4.000000
 0:?   Linker Objects
-0:?     'gs_ua' (temp uint)
-0:?     'gs_ub' (temp uint)
-0:?     'gs_uc' (temp uint)
-0:?     'gs_ua2' (temp 2-component vector of uint)
-0:?     'gs_ub2' (temp 2-component vector of uint)
-0:?     'gs_uc2' (temp 2-component vector of uint)
-0:?     'gs_ua3' (temp 3-component vector of uint)
-0:?     'gs_ub3' (temp 3-component vector of uint)
-0:?     'gs_uc3' (temp 3-component vector of uint)
-0:?     'gs_ua4' (temp 4-component vector of uint)
-0:?     'gs_ub4' (temp 4-component vector of uint)
-0:?     'gs_uc4' (temp 4-component vector of uint)
+0:?     'gs_ua' (global uint)
+0:?     'gs_ub' (global uint)
+0:?     'gs_uc' (global uint)
+0:?     'gs_ua2' (global 2-component vector of uint)
+0:?     'gs_ub2' (global 2-component vector of uint)
+0:?     'gs_uc2' (global 2-component vector of uint)
+0:?     'gs_ua3' (global 3-component vector of uint)
+0:?     'gs_ub3' (global 3-component vector of uint)
+0:?     'gs_uc3' (global 3-component vector of uint)
+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)
 
 
 Linked vertex stage:
@@ -811,7 +811,7 @@ Linked vertex stage:
 
 Shader version: 450
 ERROR: node is still EOpNull!
-0:74  Function Definition: VertexShaderFunctionS(f1;f1;f1;i1; (temp float)
+0:74  Function Definition: VertexShaderFunctionS(f1;f1;f1;i1; (global float)
 0:15    Function Parameters: 
 0:15      'inF0' (in float)
 0:15      'inF1' (in float)
@@ -919,7 +919,7 @@ ERROR: node is still EOpNull!
 0:71      Branch: Return with expression
 0:71        Constant:
 0:71          0.000000
-0:83  Function Definition: VertexShaderFunction1(vf1;vf1;vf1;vi1; (temp 1-component vector of float)
+0:83  Function Definition: VertexShaderFunction1(vf1;vf1;vf1;vi1; (global 1-component vector of float)
 0:75    Function Parameters: 
 0:75      'inF0' (in 1-component vector of float)
 0:75      'inF1' (in 1-component vector of float)
@@ -931,7 +931,7 @@ ERROR: node is still EOpNull!
 0:80      Branch: Return with expression
 0:80        Constant:
 0:80          0.000000
-0:130  Function Definition: VertexShaderFunction2(vf2;vf2;vf2;vi2; (temp 2-component vector of float)
+0:130  Function Definition: VertexShaderFunction2(vf2;vf2;vf2;vi2; (global 2-component vector of float)
 0:84    Function Parameters: 
 0:84      'inF0' (in 2-component vector of float)
 0:84      'inF1' (in 2-component vector of float)
@@ -1014,7 +1014,7 @@ ERROR: node is still EOpNull!
 0:?         Constant:
 0:?           1.000000
 0:?           2.000000
-0:175  Function Definition: VertexShaderFunction3(vf3;vf3;vf3;vi3; (temp 3-component vector of float)
+0:175  Function Definition: VertexShaderFunction3(vf3;vf3;vf3;vi3; (global 3-component vector of float)
 0:131    Function Parameters: 
 0:131      'inF0' (in 3-component vector of float)
 0:131      'inF1' (in 3-component vector of float)
@@ -1094,7 +1094,7 @@ ERROR: node is still EOpNull!
 0:?           1.000000
 0:?           2.000000
 0:?           3.000000
-0:250  Function Definition: VertexShaderFunction(vf4;vf4;vf4;vi4; (temp 4-component vector of float)
+0:250  Function Definition: VertexShaderFunction(vf4;vf4;vf4;vi4; (global 4-component vector of float)
 0:176    Function Parameters: 
 0:176      'inF0' (in 4-component vector of float)
 0:176      'inF1' (in 4-component vector of float)
@@ -1175,7 +1175,7 @@ ERROR: node is still EOpNull!
 0:?           2.000000
 0:?           3.000000
 0:?           4.000000
-0:258  Function Definition: VertexShaderFunction2x2(mf22;mf22;mf22; (temp 2X2 matrix of float)
+0:258  Function Definition: VertexShaderFunction2x2(mf22;mf22;mf22; (global 2X2 matrix of float)
 0:251    Function Parameters: 
 0:251      'inF0' (in 2X2 matrix of float)
 0:251      'inF1' (in 2X2 matrix of float)
@@ -1235,7 +1235,7 @@ ERROR: node is still EOpNull!
 0:?           2.000000
 0:?           2.000000
 0:?           2.000000
-0:266  Function Definition: VertexShaderFunction3x3(mf33;mf33;mf33; (temp 3X3 matrix of float)
+0:266  Function Definition: VertexShaderFunction3x3(mf33;mf33;mf33; (global 3X3 matrix of float)
 0:259    Function Parameters: 
 0:259      'inF0' (in 3X3 matrix of float)
 0:259      'inF1' (in 3X3 matrix of float)
@@ -1300,7 +1300,7 @@ ERROR: node is still EOpNull!
 0:?           3.000000
 0:?           3.000000
 0:?           3.000000
-0:273  Function Definition: VertexShaderFunction4x4(mf44;mf44;mf44; (temp 4X4 matrix of float)
+0:273  Function Definition: VertexShaderFunction4x4(mf44;mf44;mf44; (global 4X4 matrix of float)
 0:267    Function Parameters: 
 0:267      'inF0' (in 4X4 matrix of float)
 0:267      'inF1' (in 4X4 matrix of float)
@@ -1373,17 +1373,17 @@ ERROR: node is still EOpNull!
 0:?           4.000000
 0:?           4.000000
 0:?   Linker Objects
-0:?     'gs_ua' (temp uint)
-0:?     'gs_ub' (temp uint)
-0:?     'gs_uc' (temp uint)
-0:?     'gs_ua2' (temp 2-component vector of uint)
-0:?     'gs_ub2' (temp 2-component vector of uint)
-0:?     'gs_uc2' (temp 2-component vector of uint)
-0:?     'gs_ua3' (temp 3-component vector of uint)
-0:?     'gs_ub3' (temp 3-component vector of uint)
-0:?     'gs_uc3' (temp 3-component vector of uint)
-0:?     'gs_ua4' (temp 4-component vector of uint)
-0:?     'gs_ub4' (temp 4-component vector of uint)
-0:?     'gs_uc4' (temp 4-component vector of uint)
+0:?     'gs_ua' (global uint)
+0:?     'gs_ub' (global uint)
+0:?     'gs_uc' (global uint)
+0:?     'gs_ua2' (global 2-component vector of uint)
+0:?     'gs_ub2' (global 2-component vector of uint)
+0:?     'gs_uc2' (global 2-component vector of uint)
+0:?     'gs_ua3' (global 3-component vector of uint)
+0:?     'gs_ub3' (global 3-component vector of uint)
+0:?     'gs_uc3' (global 3-component vector of uint)
+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)
 
 SPIR-V is not generated for failed compile or link
index 7c8a1c4..926501e 100644 (file)
@@ -1,7 +1,7 @@
 hlsl.intrinsics.vert
 Shader version: 450
 0:? Sequence
-0:63  Function Definition: VertexShaderFunctionS(f1;f1;f1;u1;u1; (temp float)
+0:63  Function Definition: VertexShaderFunctionS(f1;f1;f1;u1;u1; (global float)
 0:2    Function Parameters: 
 0:2      'inF0' (in float)
 0:2      'inF1' (in float)
@@ -142,7 +142,7 @@ Shader version: 450
 0:60      Branch: Return with expression
 0:60        Constant:
 0:60          0.000000
-0:69  Function Definition: VertexShaderFunction1(vf1;vf1;vf1; (temp 1-component vector of float)
+0:69  Function Definition: VertexShaderFunction1(vf1;vf1;vf1; (global 1-component vector of float)
 0:64    Function Parameters: 
 0:64      'inF0' (in 1-component vector of float)
 0:64      'inF1' (in 1-component vector of float)
@@ -151,7 +151,7 @@ Shader version: 450
 0:66      Branch: Return with expression
 0:66        Constant:
 0:66          0.000000
-0:139  Function Definition: VertexShaderFunction2(vf2;vf2;vf2;vu2;vu2; (temp 2-component vector of float)
+0:139  Function Definition: VertexShaderFunction2(vf2;vf2;vf2;vu2;vu2; (global 2-component vector of float)
 0:70    Function Parameters: 
 0:70      'inF0' (in 2-component vector of float)
 0:70      'inF1' (in 2-component vector of float)
@@ -317,7 +317,7 @@ Shader version: 450
 0:?         Constant:
 0:?           1.000000
 0:?           2.000000
-0:210  Function Definition: VertexShaderFunction3(vf3;vf3;vf3;vu3;vu3; (temp 3-component vector of float)
+0:210  Function Definition: VertexShaderFunction3(vf3;vf3;vf3;vu3;vu3; (global 3-component vector of float)
 0:140    Function Parameters: 
 0:140      'inF0' (in 3-component vector of float)
 0:140      'inF1' (in 3-component vector of float)
@@ -489,7 +489,7 @@ Shader version: 450
 0:?           1.000000
 0:?           2.000000
 0:?           3.000000
-0:335  Function Definition: VertexShaderFunction4(vf4;vf4;vf4;vu4;vu4; (temp 4-component vector of float)
+0:335  Function Definition: VertexShaderFunction4(vf4;vf4;vf4;vu4;vu4; (global 4-component vector of float)
 0:211    Function Parameters: 
 0:211      'inF0' (in 4-component vector of float)
 0:211      'inF1' (in 4-component vector of float)
@@ -681,7 +681,7 @@ Shader version: 450
 0:?           2.000000
 0:?           3.000000
 0:?           4.000000
-0:344  Function Definition: VertexShaderFunction2x2(mf22;mf22;mf22; (temp 2X2 matrix of float)
+0:344  Function Definition: VertexShaderFunction2x2(mf22;mf22;mf22; (global 2X2 matrix of float)
 0:336    Function Parameters: 
 0:336      'inF0' (in 2X2 matrix of float)
 0:336      'inF1' (in 2X2 matrix of float)
@@ -811,7 +811,7 @@ Shader version: 450
 0:?           2.000000
 0:?           2.000000
 0:?           2.000000
-0:353  Function Definition: VertexShaderFunction3x3(mf33;mf33;mf33; (temp 3X3 matrix of float)
+0:353  Function Definition: VertexShaderFunction3x3(mf33;mf33;mf33; (global 3X3 matrix of float)
 0:345    Function Parameters: 
 0:345      'inF0' (in 3X3 matrix of float)
 0:345      'inF1' (in 3X3 matrix of float)
@@ -946,7 +946,7 @@ Shader version: 450
 0:?           3.000000
 0:?           3.000000
 0:?           3.000000
-0:374  Function Definition: VertexShaderFunction4x4(mf44;mf44;mf44; (temp 4X4 matrix of float)
+0:374  Function Definition: VertexShaderFunction4x4(mf44;mf44;mf44; (global 4X4 matrix of float)
 0:354    Function Parameters: 
 0:354      'inF0' (in 4X4 matrix of float)
 0:354      'inF1' (in 4X4 matrix of float)
@@ -1088,7 +1088,7 @@ Shader version: 450
 0:?           4.000000
 0:?           4.000000
 0:?           4.000000
-0:381  Function Definition: TestGenMul2(f1;f1;vf2;vf2;mf22;mf22; (temp void)
+0:381  Function Definition: TestGenMul2(f1;f1;vf2;vf2;mf22;mf22; (global void)
 0:377    Function Parameters: 
 0:377      'inF0' (in float)
 0:377      'inF1' (in float)
@@ -1151,7 +1151,7 @@ Shader version: 450
 0:378          matrix-multiply (temp 2X2 matrix of float)
 0:378            'inFM0' (in 2X2 matrix of float)
 0:378            'inFM1' (in 2X2 matrix of float)
-0:388  Function Definition: TestGenMul3(f1;f1;vf3;vf3;mf33;mf33; (temp void)
+0:388  Function Definition: TestGenMul3(f1;f1;vf3;vf3;mf33;mf33; (global void)
 0:384    Function Parameters: 
 0:384      'inF0' (in float)
 0:384      'inF1' (in float)
@@ -1214,7 +1214,7 @@ Shader version: 450
 0:385          matrix-multiply (temp 3X3 matrix of float)
 0:385            'inFM0' (in 3X3 matrix of float)
 0:385            'inFM1' (in 3X3 matrix of float)
-0:396  Function Definition: TestGenMul4(f1;f1;vf4;vf4;mf44;mf44; (temp void)
+0:396  Function Definition: TestGenMul4(f1;f1;vf4;vf4;mf44;mf44; (global void)
 0:391    Function Parameters: 
 0:391      'inF0' (in float)
 0:391      'inF1' (in float)
@@ -1277,7 +1277,7 @@ Shader version: 450
 0:392          matrix-multiply (temp 4X4 matrix of float)
 0:392            'inFM0' (in 4X4 matrix of float)
 0:392            'inFM1' (in 4X4 matrix of float)
-0:420  Function Definition: TestGenMulNxM(f1;f1;vf2;vf3;mf32;mf23;mf33;mf43;mf42; (temp void)
+0:420  Function Definition: TestGenMulNxM(f1;f1;vf2;vf3;mf32;mf23;mf33;mf43;mf42; (global void)
 0:401    Function Parameters: 
 0:401      'inF0' (in float)
 0:401      'inF1' (in float)
@@ -1399,7 +1399,7 @@ Linked vertex stage:
 
 Shader version: 450
 0:? Sequence
-0:63  Function Definition: VertexShaderFunctionS(f1;f1;f1;u1;u1; (temp float)
+0:63  Function Definition: VertexShaderFunctionS(f1;f1;f1;u1;u1; (global float)
 0:2    Function Parameters: 
 0:2      'inF0' (in float)
 0:2      'inF1' (in float)
@@ -1540,7 +1540,7 @@ Shader version: 450
 0:60      Branch: Return with expression
 0:60        Constant:
 0:60          0.000000
-0:69  Function Definition: VertexShaderFunction1(vf1;vf1;vf1; (temp 1-component vector of float)
+0:69  Function Definition: VertexShaderFunction1(vf1;vf1;vf1; (global 1-component vector of float)
 0:64    Function Parameters: 
 0:64      'inF0' (in 1-component vector of float)
 0:64      'inF1' (in 1-component vector of float)
@@ -1549,7 +1549,7 @@ Shader version: 450
 0:66      Branch: Return with expression
 0:66        Constant:
 0:66          0.000000
-0:139  Function Definition: VertexShaderFunction2(vf2;vf2;vf2;vu2;vu2; (temp 2-component vector of float)
+0:139  Function Definition: VertexShaderFunction2(vf2;vf2;vf2;vu2;vu2; (global 2-component vector of float)
 0:70    Function Parameters: 
 0:70      'inF0' (in 2-component vector of float)
 0:70      'inF1' (in 2-component vector of float)
@@ -1715,7 +1715,7 @@ Shader version: 450
 0:?         Constant:
 0:?           1.000000
 0:?           2.000000
-0:210  Function Definition: VertexShaderFunction3(vf3;vf3;vf3;vu3;vu3; (temp 3-component vector of float)
+0:210  Function Definition: VertexShaderFunction3(vf3;vf3;vf3;vu3;vu3; (global 3-component vector of float)
 0:140    Function Parameters: 
 0:140      'inF0' (in 3-component vector of float)
 0:140      'inF1' (in 3-component vector of float)
@@ -1887,7 +1887,7 @@ Shader version: 450
 0:?           1.000000
 0:?           2.000000
 0:?           3.000000
-0:335  Function Definition: VertexShaderFunction4(vf4;vf4;vf4;vu4;vu4; (temp 4-component vector of float)
+0:335  Function Definition: VertexShaderFunction4(vf4;vf4;vf4;vu4;vu4; (global 4-component vector of float)
 0:211    Function Parameters: 
 0:211      'inF0' (in 4-component vector of float)
 0:211      'inF1' (in 4-component vector of float)
@@ -2079,7 +2079,7 @@ Shader version: 450
 0:?           2.000000
 0:?           3.000000
 0:?           4.000000
-0:344  Function Definition: VertexShaderFunction2x2(mf22;mf22;mf22; (temp 2X2 matrix of float)
+0:344  Function Definition: VertexShaderFunction2x2(mf22;mf22;mf22; (global 2X2 matrix of float)
 0:336    Function Parameters: 
 0:336      'inF0' (in 2X2 matrix of float)
 0:336      'inF1' (in 2X2 matrix of float)
@@ -2209,7 +2209,7 @@ Shader version: 450
 0:?           2.000000
 0:?           2.000000
 0:?           2.000000
-0:353  Function Definition: VertexShaderFunction3x3(mf33;mf33;mf33; (temp 3X3 matrix of float)
+0:353  Function Definition: VertexShaderFunction3x3(mf33;mf33;mf33; (global 3X3 matrix of float)
 0:345    Function Parameters: 
 0:345      'inF0' (in 3X3 matrix of float)
 0:345      'inF1' (in 3X3 matrix of float)
@@ -2344,7 +2344,7 @@ Shader version: 450
 0:?           3.000000
 0:?           3.000000
 0:?           3.000000
-0:374  Function Definition: VertexShaderFunction4x4(mf44;mf44;mf44; (temp 4X4 matrix of float)
+0:374  Function Definition: VertexShaderFunction4x4(mf44;mf44;mf44; (global 4X4 matrix of float)
 0:354    Function Parameters: 
 0:354      'inF0' (in 4X4 matrix of float)
 0:354      'inF1' (in 4X4 matrix of float)
@@ -2486,7 +2486,7 @@ Shader version: 450
 0:?           4.000000
 0:?           4.000000
 0:?           4.000000
-0:381  Function Definition: TestGenMul2(f1;f1;vf2;vf2;mf22;mf22; (temp void)
+0:381  Function Definition: TestGenMul2(f1;f1;vf2;vf2;mf22;mf22; (global void)
 0:377    Function Parameters: 
 0:377      'inF0' (in float)
 0:377      'inF1' (in float)
@@ -2549,7 +2549,7 @@ Shader version: 450
 0:378          matrix-multiply (temp 2X2 matrix of float)
 0:378            'inFM0' (in 2X2 matrix of float)
 0:378            'inFM1' (in 2X2 matrix of float)
-0:388  Function Definition: TestGenMul3(f1;f1;vf3;vf3;mf33;mf33; (temp void)
+0:388  Function Definition: TestGenMul3(f1;f1;vf3;vf3;mf33;mf33; (global void)
 0:384    Function Parameters: 
 0:384      'inF0' (in float)
 0:384      'inF1' (in float)
@@ -2612,7 +2612,7 @@ Shader version: 450
 0:385          matrix-multiply (temp 3X3 matrix of float)
 0:385            'inFM0' (in 3X3 matrix of float)
 0:385            'inFM1' (in 3X3 matrix of float)
-0:396  Function Definition: TestGenMul4(f1;f1;vf4;vf4;mf44;mf44; (temp void)
+0:396  Function Definition: TestGenMul4(f1;f1;vf4;vf4;mf44;mf44; (global void)
 0:391    Function Parameters: 
 0:391      'inF0' (in float)
 0:391      'inF1' (in float)
@@ -2675,7 +2675,7 @@ Shader version: 450
 0:392          matrix-multiply (temp 4X4 matrix of float)
 0:392            'inFM0' (in 4X4 matrix of float)
 0:392            'inFM1' (in 4X4 matrix of float)
-0:420  Function Definition: TestGenMulNxM(f1;f1;vf2;vf3;mf32;mf23;mf33;mf43;mf42; (temp void)
+0:420  Function Definition: TestGenMulNxM(f1;f1;vf2;vf3;mf32;mf23;mf33;mf43;mf42; (global void)
 0:401    Function Parameters: 
 0:401      'inF0' (in float)
 0:401      'inF1' (in float)
index 8742e3f..b081a4a 100755 (executable)
@@ -4,20 +4,20 @@ gl_FragCoord origin is upper left
 0:? Sequence
 0:1  Sequence
 0:1    move second child to first child (temp 1-component vector of float)
-0:1      'f1' (temp 1-component vector of float)
+0:1      'f1' (global 1-component vector of float)
 0:1      Constant:
 0:1        1.000000
-0:11  Function Definition: ShaderFunction(vf1;f1; (temp 1-component vector of float)
+0:11  Function Definition: ShaderFunction(vf1;f1; (global 1-component vector of float)
 0:9    Function Parameters: 
 0:9      'inFloat1' (in 1-component vector of float)
 0:9      'inScalar' (in float)
 0:?   Linker Objects
-0:?     'f1' (temp 1-component vector of float)
-0:?     'fmat11' (temp 1X1 matrix of float)
-0:?     'fmat41' (temp 1X4 matrix of float)
-0:?     'fmat12' (temp 2X1 matrix of float)
-0:?     'dmat23' (temp 3X2 matrix of double)
-0:?     'int44' (temp 4X4 matrix of int)
+0:?     'f1' (global 1-component vector of float)
+0:?     'fmat11' (global 1X1 matrix of float)
+0:?     'fmat41' (global 1X4 matrix of float)
+0:?     'fmat12' (global 2X1 matrix of float)
+0:?     'dmat23' (global 3X2 matrix of double)
+0:?     'int44' (global 4X4 matrix of int)
 
 
 Linked fragment stage:
@@ -28,24 +28,24 @@ gl_FragCoord origin is upper left
 0:? Sequence
 0:1  Sequence
 0:1    move second child to first child (temp 1-component vector of float)
-0:1      'f1' (temp 1-component vector of float)
+0:1      'f1' (global 1-component vector of float)
 0:1      Constant:
 0:1        1.000000
-0:11  Function Definition: ShaderFunction(vf1;f1; (temp 1-component vector of float)
+0:11  Function Definition: ShaderFunction(vf1;f1; (global 1-component vector of float)
 0:9    Function Parameters: 
 0:9      'inFloat1' (in 1-component vector of float)
 0:9      'inScalar' (in float)
 0:?   Linker Objects
-0:?     'f1' (temp 1-component vector of float)
-0:?     'fmat11' (temp 1X1 matrix of float)
-0:?     'fmat41' (temp 1X4 matrix of float)
-0:?     'fmat12' (temp 2X1 matrix of float)
-0:?     'dmat23' (temp 3X2 matrix of double)
-0:?     'int44' (temp 4X4 matrix of int)
+0:?     'f1' (global 1-component vector of float)
+0:?     'fmat11' (global 1X1 matrix of float)
+0:?     'fmat41' (global 1X4 matrix of float)
+0:?     'fmat12' (global 2X1 matrix of float)
+0:?     'dmat23' (global 3X2 matrix of double)
+0:?     'int44' (global 4X4 matrix of int)
 
 // Module Version 10000
 // Generated by (magic number): 80001
-// Id's are bound by 37
+// Id's are bound by 38
 
                               Capability Shader
                               Capability Float64
@@ -58,48 +58,49 @@ gl_FragCoord origin is upper left
                               Name 11  "ShaderFunction(vf1;f1;"
                               Name 9  "inFloat1"
                               Name 10  "inScalar"
-                              Name 13  "f1"
-                              Name 19  "fmat11"
-                              Name 23  "fmat41"
-                              Name 26  "fmat12"
-                              Name 31  "dmat23"
-                              Name 36  "int44"
+                              Name 14  "f1"
+                              Name 20  "fmat11"
+                              Name 24  "fmat41"
+                              Name 27  "fmat12"
+                              Name 32  "dmat23"
+                              Name 37  "int44"
                2:             TypeVoid
                3:             TypeFunction 2
                6:             TypeFloat 32
                7:             TypePointer Function 6(float)
                8:             TypeFunction 6(float) 7(ptr) 7(ptr)
-              14:    6(float) Constant 1065353216
-              16:             TypeVector 6(float) 1
-              17:             TypeMatrix 16(fvec) 1
-              18:             TypePointer Function 17
-              20:             TypeVector 6(float) 4
-              21:             TypeMatrix 20(fvec4) 1
-              22:             TypePointer Function 21
-              24:             TypeMatrix 16(fvec) 2
-              25:             TypePointer Function 24
-              27:             TypeFloat 64
-              28:             TypeVector 27(float) 2
-              29:             TypeMatrix 28(fvec2) 3
-              30:             TypePointer Function 29
-              32:             TypeInt 32 1
-              33:             TypeVector 32(int) 4
-              34:             TypeMatrix 33(ivec4) 4
-              35:             TypePointer Function 34
+              13:             TypePointer Private 6(float)
+          14(f1):     13(ptr) Variable Private
+              15:    6(float) Constant 1065353216
+              17:             TypeVector 6(float) 1
+              18:             TypeMatrix 17(fvec) 1
+              19:             TypePointer Private 18
+      20(fmat11):     19(ptr) Variable Private
+              21:             TypeVector 6(float) 4
+              22:             TypeMatrix 21(fvec4) 1
+              23:             TypePointer Private 22
+      24(fmat41):     23(ptr) Variable Private
+              25:             TypeMatrix 17(fvec) 2
+              26:             TypePointer Private 25
+      27(fmat12):     26(ptr) Variable Private
+              28:             TypeFloat 64
+              29:             TypeVector 28(float) 2
+              30:             TypeMatrix 29(fvec2) 3
+              31:             TypePointer Private 30
+      32(dmat23):     31(ptr) Variable Private
+              33:             TypeInt 32 1
+              34:             TypeVector 33(int) 4
+              35:             TypeMatrix 34(ivec4) 4
+              36:             TypePointer Private 35
+       37(int44):     36(ptr) Variable Private
 4(PixelShaderFunction):           2 Function None 3
                5:             Label
-          13(f1):      7(ptr) Variable Function
-                              Store 13(f1) 14
+                              Store 14(f1) 15
                               FunctionEnd
 11(ShaderFunction(vf1;f1;):    6(float) Function None 8
      9(inFloat1):      7(ptr) FunctionParameter
     10(inScalar):      7(ptr) FunctionParameter
               12:             Label
-      19(fmat11):     18(ptr) Variable Function
-      23(fmat41):     22(ptr) Variable Function
-      26(fmat12):     25(ptr) Variable Function
-      31(dmat23):     30(ptr) Variable Function
-       36(int44):     35(ptr) Variable Function
-              15:    6(float) Undef
-                              ReturnValue 15
+              16:    6(float) Undef
+                              ReturnValue 16
                               FunctionEnd
index 02f82bf..aad4799 100755 (executable)
@@ -2,7 +2,7 @@ hlsl.max.frag
 Shader version: 450
 gl_FragCoord origin is upper left
 0:? Sequence
-0:5  Function Definition: PixelShaderFunction(vf4;vf4; (temp 4-component vector of float)
+0:5  Function Definition: PixelShaderFunction(vf4;vf4; (global 4-component vector of float)
 0:2    Function Parameters: 
 0:2      'input1' (in 4-component vector of float)
 0:2      'input2' (in 4-component vector of float)
@@ -20,7 +20,7 @@ Linked fragment stage:
 Shader version: 450
 gl_FragCoord origin is upper left
 0:? Sequence
-0:5  Function Definition: PixelShaderFunction(vf4;vf4; (temp 4-component vector of float)
+0:5  Function Definition: PixelShaderFunction(vf4;vf4; (global 4-component vector of float)
 0:2    Function Parameters: 
 0:2      'input1' (in 4-component vector of float)
 0:2      'input2' (in 4-component vector of float)
index 40e1789..d351353 100755 (executable)
@@ -2,7 +2,7 @@ hlsl.precedence.frag
 Shader version: 450
 gl_FragCoord origin is upper left
 0:? Sequence
-0:10  Function Definition: PixelShaderFunction(vf4;vf4;vf4;vf4; (temp 4-component vector of float)
+0:10  Function Definition: PixelShaderFunction(vf4;vf4;vf4;vf4; (global 4-component vector of float)
 0:7    Function Parameters: 
 0:7      'a1' (in 4-component vector of float)
 0:7      'a2' (in 4-component vector of float)
@@ -26,7 +26,7 @@ Linked fragment stage:
 Shader version: 450
 gl_FragCoord origin is upper left
 0:? Sequence
-0:10  Function Definition: PixelShaderFunction(vf4;vf4;vf4;vf4; (temp 4-component vector of float)
+0:10  Function Definition: PixelShaderFunction(vf4;vf4;vf4;vf4; (global 4-component vector of float)
 0:7    Function Parameters: 
 0:7      'a1' (in 4-component vector of float)
 0:7      'a2' (in 4-component vector of float)
index 02b8995..bfe2643 100755 (executable)
@@ -2,7 +2,7 @@ hlsl.precedence2.frag
 Shader version: 450
 gl_FragCoord origin is upper left
 0:? Sequence
-0:10  Function Definition: PixelShaderFunction(i1;i1;i1;i1; (temp int)
+0:10  Function Definition: PixelShaderFunction(i1;i1;i1;i1; (global int)
 0:7    Function Parameters: 
 0:7      'a1' (in int)
 0:7      'a2' (in int)
@@ -34,7 +34,7 @@ Linked fragment stage:
 Shader version: 450
 gl_FragCoord origin is upper left
 0:? Sequence
-0:10  Function Definition: PixelShaderFunction(i1;i1;i1;i1; (temp int)
+0:10  Function Definition: PixelShaderFunction(i1;i1;i1;i1; (global int)
 0:7    Function Parameters: 
 0:7      'a1' (in int)
 0:7      'a2' (in int)
index 97ac03e..082e142 100755 (executable)
@@ -2,7 +2,7 @@ hlsl.scope.frag
 Shader version: 450
 gl_FragCoord origin is upper left
 0:? Sequence
-0:31  Function Definition: PixelShaderFunction(vf4; (temp 4-component vector of float)
+0:31  Function Definition: PixelShaderFunction(vf4; (global 4-component vector of float)
 0:2    Function Parameters: 
 0:2      'input' (in 4-component vector of float)
 0:?     Sequence
@@ -46,7 +46,7 @@ Linked fragment stage:
 Shader version: 450
 gl_FragCoord origin is upper left
 0:? Sequence
-0:31  Function Definition: PixelShaderFunction(vf4; (temp 4-component vector of float)
+0:31  Function Definition: PixelShaderFunction(vf4; (global 4-component vector of float)
 0:2    Function Parameters: 
 0:2      'input' (in 4-component vector of float)
 0:?     Sequence
index c4875d5..e145ab1 100755 (executable)
@@ -2,7 +2,7 @@ hlsl.sin.frag
 Shader version: 450
 gl_FragCoord origin is upper left
 0:? Sequence
-0:5  Function Definition: PixelShaderFunction(vf4; (temp 4-component vector of float)
+0:5  Function Definition: PixelShaderFunction(vf4; (global 4-component vector of float)
 0:2    Function Parameters: 
 0:2      'input' (in 4-component vector of float)
 0:?     Sequence
@@ -18,7 +18,7 @@ Linked fragment stage:
 Shader version: 450
 gl_FragCoord origin is upper left
 0:? Sequence
-0:5  Function Definition: PixelShaderFunction(vf4; (temp 4-component vector of float)
+0:5  Function Definition: PixelShaderFunction(vf4; (global 4-component vector of float)
 0:2    Function Parameters: 
 0:2      'input' (in 4-component vector of float)
 0:?     Sequence
index 43b1ecb..a70bba6 100755 (executable)
@@ -2,7 +2,7 @@ hlsl.struct.frag
 Shader version: 450
 gl_FragCoord origin is upper left
 0:? Sequence
-0:40  Function Definition: PixelShaderFunction(vf4; (temp 4-component vector of float)
+0:40  Function Definition: PixelShaderFunction(vf4; (global 4-component vector of float)
 0:31    Function Parameters: 
 0:31      'input' (in 4-component vector of float)
 0:?     Sequence
@@ -11,19 +11,19 @@ gl_FragCoord origin is upper left
 0:36        's3' (temp structure{temp 3-component vector of bool b3})
 0:37      move second child to first child (temp 4-component vector of float)
 0:37        i: direct index for structure (temp 4-component vector of float)
-0:37          's2' (temp structure{temp 4-component vector of float i})
+0:37          's2' (global structure{temp 4-component vector of float i})
 0:37          Constant:
 0:37            0 (const int)
 0:37        ff4: direct index for structure (temp 4-component vector of float FragCoord)
-0:37          's4' (temp structure{smooth in 4-component vector of float a, flat temp bool b, centroid noperspective temp 1-component vector of float c, centroid sample temp 2-component vector of float d, temp bool Face ff1, temp bool ff2, temp bool ff3, temp 4-component vector of float FragCoord ff4})
+0:37          's4' (global structure{smooth in 4-component vector of float a, flat temp bool b, centroid noperspective temp 1-component vector of float c, centroid sample temp 2-component vector of float d, temp bool Face ff1, temp bool ff2, temp bool ff3, temp 4-component vector of float FragCoord ff4})
 0:37          Constant:
 0:37            7 (const int)
 0:39      Branch: Return with expression
 0:39        'input' (in 4-component vector of float)
 0:?   Linker Objects
-0:?     's1' (temp structure{temp bool b, temp bool c, temp 4-component vector of float a, temp 4-component vector of float d})
-0:?     's2' (temp structure{temp 4-component vector of float i})
-0:?     's4' (temp structure{smooth in 4-component vector of float a, flat temp bool b, centroid noperspective temp 1-component vector of float c, centroid sample temp 2-component vector of float d, temp bool Face ff1, temp bool ff2, temp bool ff3, temp 4-component vector of float FragCoord ff4})
+0:?     's1' (global structure{temp bool b, temp bool c, temp 4-component vector of float a, temp 4-component vector of float d})
+0:?     's2' (global structure{temp 4-component vector of float i})
+0:?     's4' (global structure{smooth in 4-component vector of float a, flat temp bool b, centroid noperspective temp 1-component vector of float c, centroid sample temp 2-component vector of float d, temp bool Face ff1, temp bool ff2, temp bool ff3, temp 4-component vector of float FragCoord ff4})
 
 
 Linked fragment stage:
@@ -32,7 +32,7 @@ Linked fragment stage:
 Shader version: 450
 gl_FragCoord origin is upper left
 0:? Sequence
-0:40  Function Definition: PixelShaderFunction(vf4; (temp 4-component vector of float)
+0:40  Function Definition: PixelShaderFunction(vf4; (global 4-component vector of float)
 0:31    Function Parameters: 
 0:31      'input' (in 4-component vector of float)
 0:?     Sequence
@@ -41,19 +41,19 @@ gl_FragCoord origin is upper left
 0:36        's3' (temp structure{temp 3-component vector of bool b3})
 0:37      move second child to first child (temp 4-component vector of float)
 0:37        i: direct index for structure (temp 4-component vector of float)
-0:37          's2' (temp structure{temp 4-component vector of float i})
+0:37          's2' (global structure{temp 4-component vector of float i})
 0:37          Constant:
 0:37            0 (const int)
 0:37        ff4: direct index for structure (temp 4-component vector of float FragCoord)
-0:37          's4' (temp structure{smooth in 4-component vector of float a, flat temp bool b, centroid noperspective temp 1-component vector of float c, centroid sample temp 2-component vector of float d, temp bool Face ff1, temp bool ff2, temp bool ff3, temp 4-component vector of float FragCoord ff4})
+0:37          's4' (global structure{smooth in 4-component vector of float a, flat temp bool b, centroid noperspective temp 1-component vector of float c, centroid sample temp 2-component vector of float d, temp bool Face ff1, temp bool ff2, temp bool ff3, temp 4-component vector of float FragCoord ff4})
 0:37          Constant:
 0:37            7 (const int)
 0:39      Branch: Return with expression
 0:39        'input' (in 4-component vector of float)
 0:?   Linker Objects
-0:?     's1' (temp structure{temp bool b, temp bool c, temp 4-component vector of float a, temp 4-component vector of float d})
-0:?     's2' (temp structure{temp 4-component vector of float i})
-0:?     's4' (temp structure{smooth in 4-component vector of float a, flat temp bool b, centroid noperspective temp 1-component vector of float c, centroid sample temp 2-component vector of float d, temp bool Face ff1, temp bool ff2, temp bool ff3, temp 4-component vector of float FragCoord ff4})
+0:?     's1' (global structure{temp bool b, temp bool c, temp 4-component vector of float a, temp 4-component vector of float d})
+0:?     's2' (global structure{temp 4-component vector of float i})
+0:?     's4' (global structure{smooth in 4-component vector of float a, flat temp bool b, centroid noperspective temp 1-component vector of float c, centroid sample temp 2-component vector of float d, temp bool Face ff1, temp bool ff2, temp bool ff3, temp 4-component vector of float FragCoord ff4})
 
 // Module Version 10000
 // Generated by (magic number): 80001
@@ -100,24 +100,24 @@ gl_FragCoord origin is upper left
               17:             TypeFloat 32
               18:             TypeVector 17(float) 4
               19:             TypeStruct 18(fvec4)
-              20:             TypePointer Function 19(struct)
+              20:             TypePointer Private 19(struct)
+          21(s2):     20(ptr) Variable Private
               22:             TypeInt 32 1
               23:     22(int) Constant 0
               24:             TypeVector 17(float) 2
               25:             TypeStruct 18(fvec4) 6(bool) 17(float) 24(fvec2) 6(bool) 6(bool) 6(bool) 18(fvec4)
-              26:             TypePointer Function 25(struct)
+              26:             TypePointer Private 25(struct)
+          27(s4):     26(ptr) Variable Private
               28:     22(int) Constant 7
-              29:             TypePointer Function 18(fvec4)
+              29:             TypePointer Private 18(fvec4)
               33:             TypePointer Input 18(fvec4)
        34(input):     33(ptr) Variable Input
          37(myS):             TypeStruct 6(bool) 6(bool) 18(fvec4) 18(fvec4)
-              38:             TypePointer Function 37(myS)
+              38:             TypePointer Private 37(myS)
+          39(s1):     38(ptr) Variable Private
 4(PixelShaderFunction):           2 Function None 3
                5:             Label
           10(s3):      9(ptr) Variable Function
-          21(s2):     20(ptr) Variable Function
-          27(s4):     26(ptr) Variable Function
-          39(s1):     38(ptr) Variable Function
               11:       8(FS) Load 10(s3)
               12:       8(FS) Load 10(s3)
               13:    7(bvec3) CompositeExtract 11 0
index 7163bc0..c4af33f 100755 (executable)
@@ -2,7 +2,7 @@ hlsl.switch.frag
 Shader version: 450
 gl_FragCoord origin is upper left
 0:? Sequence
-0:56  Function Definition: PixelShaderFunction(vf4;i1;i1; (temp 4-component vector of float)
+0:56  Function Definition: PixelShaderFunction(vf4;i1;i1; (global 4-component vector of float)
 0:2    Function Parameters: 
 0:2      'input' (in 4-component vector of float)
 0:2      'c' (in int)
@@ -130,7 +130,7 @@ Linked fragment stage:
 Shader version: 450
 gl_FragCoord origin is upper left
 0:? Sequence
-0:56  Function Definition: PixelShaderFunction(vf4;i1;i1; (temp 4-component vector of float)
+0:56  Function Definition: PixelShaderFunction(vf4;i1;i1; (global 4-component vector of float)
 0:2    Function Parameters: 
 0:2      'input' (in 4-component vector of float)
 0:2      'c' (in int)
index 36298e2..7bb2818 100755 (executable)
@@ -4,13 +4,13 @@ gl_FragCoord origin is upper left
 0:? Sequence
 0:1  Sequence
 0:1    move second child to first child (temp 4-component vector of float)
-0:1      'AmbientColor' (temp 4-component vector of float)
+0:1      'AmbientColor' (global 4-component vector of float)
 0:?       Constant:
 0:?         1.000000
 0:?         0.500000
 0:?         0.000000
 0:?         1.000000
-0:7  Function Definition: ShaderFunction(vf4; (temp 4-component vector of float)
+0:7  Function Definition: ShaderFunction(vf4; (global 4-component vector of float)
 0:4    Function Parameters: 
 0:4      'input' (in 4-component vector of float)
 0:?     Sequence
@@ -29,11 +29,11 @@ gl_FragCoord origin is upper left
 0:5                0 (const int)
 0:5          Construct vec4 (temp 4-component vector of float)
 0:5            direct index (temp float)
-0:5              'AmbientColor' (temp 4-component vector of float)
+0:5              'AmbientColor' (global 4-component vector of float)
 0:5              Constant:
 0:5                2 (const int)
 0:?   Linker Objects
-0:?     'AmbientColor' (temp 4-component vector of float)
+0:?     'AmbientColor' (global 4-component vector of float)
 
 
 Linked fragment stage:
@@ -44,13 +44,13 @@ gl_FragCoord origin is upper left
 0:? Sequence
 0:1  Sequence
 0:1    move second child to first child (temp 4-component vector of float)
-0:1      'AmbientColor' (temp 4-component vector of float)
+0:1      'AmbientColor' (global 4-component vector of float)
 0:?       Constant:
 0:?         1.000000
 0:?         0.500000
 0:?         0.000000
 0:?         1.000000
-0:7  Function Definition: ShaderFunction(vf4; (temp 4-component vector of float)
+0:7  Function Definition: ShaderFunction(vf4; (global 4-component vector of float)
 0:4    Function Parameters: 
 0:4      'input' (in 4-component vector of float)
 0:?     Sequence
@@ -69,15 +69,15 @@ gl_FragCoord origin is upper left
 0:5                0 (const int)
 0:5          Construct vec4 (temp 4-component vector of float)
 0:5            direct index (temp float)
-0:5              'AmbientColor' (temp 4-component vector of float)
+0:5              'AmbientColor' (global 4-component vector of float)
 0:5              Constant:
 0:5                2 (const int)
 0:?   Linker Objects
-0:?     'AmbientColor' (temp 4-component vector of float)
+0:?     'AmbientColor' (global 4-component vector of float)
 
 // Module Version 10000
 // Generated by (magic number): 80001
-// Id's are bound by 29
+// Id's are bound by 30
 
                               Capability Shader
                1:             ExtInstImport  "GLSL.std.450"
@@ -88,33 +88,34 @@ gl_FragCoord origin is upper left
                               Name 4  "PixelShaderFunction"
                               Name 11  "ShaderFunction(vf4;"
                               Name 10  "input"
-                              Name 13  "AmbientColor"
+                              Name 14  "AmbientColor"
                2:             TypeVoid
                3:             TypeFunction 2
                6:             TypeFloat 32
                7:             TypeVector 6(float) 4
                8:             TypePointer Function 7(fvec4)
                9:             TypeFunction 7(fvec4) 8(ptr)
-              14:    6(float) Constant 1065353216
-              15:    6(float) Constant 1056964608
-              16:    6(float) Constant 0
-              17:    7(fvec4) ConstantComposite 14 15 16 14
-              20:             TypeInt 32 0
-              21:     20(int) Constant 2
-              22:             TypePointer Function 6(float)
+              13:             TypePointer Private 7(fvec4)
+14(AmbientColor):     13(ptr) Variable Private
+              15:    6(float) Constant 1065353216
+              16:    6(float) Constant 1056964608
+              17:    6(float) Constant 0
+              18:    7(fvec4) ConstantComposite 15 16 17 15
+              21:             TypeInt 32 0
+              22:     21(int) Constant 2
+              23:             TypePointer Private 6(float)
 4(PixelShaderFunction):           2 Function None 3
                5:             Label
-13(AmbientColor):      8(ptr) Variable Function
-                              Store 13(AmbientColor) 17
+                              Store 14(AmbientColor) 18
                               FunctionEnd
 11(ShaderFunction(vf4;):    7(fvec4) Function None 9
        10(input):      8(ptr) FunctionParameter
               12:             Label
-              18:    7(fvec4) Load 10(input)
-              19:    7(fvec4) VectorShuffle 18 18 3 3 1 0
-              23:     22(ptr) AccessChain 13(AmbientColor) 21
-              24:    6(float) Load 23
-              25:    7(fvec4) CompositeConstruct 24 24 24 24
-              26:    7(fvec4) FMul 19 25
-                              ReturnValue 26
+              19:    7(fvec4) Load 10(input)
+              20:    7(fvec4) VectorShuffle 19 19 3 3 1 0
+              24:     23(ptr) AccessChain 14(AmbientColor) 22
+              25:    6(float) Load 24
+              26:    7(fvec4) CompositeConstruct 25 25 25 25
+              27:    7(fvec4) FMul 20 26
+                              ReturnValue 27
                               FunctionEnd
index 048b12a..5acb877 100644 (file)
@@ -2,7 +2,7 @@ hlsl.templatetypes.frag
 Shader version: 450
 gl_FragCoord origin is upper left
 0:? Sequence
-0:48  Function Definition: PixelShaderFunction( (temp float)
+0:48  Function Definition: PixelShaderFunction( (global float)
 0:3    Function Parameters: 
 0:?     Sequence
 0:4      Sequence
@@ -251,7 +251,7 @@ Linked fragment stage:
 Shader version: 450
 gl_FragCoord origin is upper left
 0:? Sequence
-0:48  Function Definition: PixelShaderFunction( (temp float)
+0:48  Function Definition: PixelShaderFunction( (global float)
 0:3    Function Parameters: 
 0:?     Sequence
 0:4      Sequence
index 0ddc331..c3fc10c 100755 (executable)
@@ -2,16 +2,16 @@ hlsl.void.frag
 Shader version: 450
 gl_FragCoord origin is upper left
 0:? Sequence
-0:2  Function Definition: foo1( (temp void)
+0:2  Function Definition: foo1( (global void)
 0:1    Function Parameters: 
-0:4  Function Definition: foo2( (temp void)
+0:4  Function Definition: foo2( (global void)
 0:2    Function Parameters: 
-0:8  Function Definition: PixelShaderFunction(vf4; (temp 4-component vector of float)
+0:8  Function Definition: PixelShaderFunction(vf4; (global 4-component vector of float)
 0:5    Function Parameters: 
 0:5      'input' (in 4-component vector of float)
 0:?     Sequence
-0:6      Function Call: foo1( (temp void)
-0:7      Function Call: foo2( (temp void)
+0:6      Function Call: foo1( (global void)
+0:7      Function Call: foo2( (global void)
 0:?   Linker Objects
 
 
@@ -21,16 +21,16 @@ Linked fragment stage:
 Shader version: 450
 gl_FragCoord origin is upper left
 0:? Sequence
-0:2  Function Definition: foo1( (temp void)
+0:2  Function Definition: foo1( (global void)
 0:1    Function Parameters: 
-0:4  Function Definition: foo2( (temp void)
+0:4  Function Definition: foo2( (global void)
 0:2    Function Parameters: 
-0:8  Function Definition: PixelShaderFunction(vf4; (temp 4-component vector of float)
+0:8  Function Definition: PixelShaderFunction(vf4; (global 4-component vector of float)
 0:5    Function Parameters: 
 0:5      'input' (in 4-component vector of float)
 0:?     Sequence
-0:6      Function Call: foo1( (temp void)
-0:7      Function Call: foo2( (temp void)
+0:6      Function Call: foo1( (global void)
+0:7      Function Call: foo2( (global void)
 0:?   Linker Objects
 
 // Module Version 10000
index f4be34a..aece52a 100755 (executable)
@@ -2,7 +2,7 @@ hlsl.whileLoop.frag
 Shader version: 450
 gl_FragCoord origin is upper left
 0:? Sequence
-0:8  Function Definition: PixelShaderFunction(vf4; (temp 4-component vector of float)
+0:8  Function Definition: PixelShaderFunction(vf4; (global 4-component vector of float)
 0:2    Function Parameters: 
 0:2      'input' (in 4-component vector of float)
 0:?     Sequence
@@ -39,7 +39,7 @@ Linked fragment stage:
 Shader version: 450
 gl_FragCoord origin is upper left
 0:? Sequence
-0:8  Function Definition: PixelShaderFunction(vf4; (temp 4-component vector of float)
+0:8  Function Definition: PixelShaderFunction(vf4; (global 4-component vector of float)
 0:2    Function Parameters: 
 0:2      'input' (in 4-component vector of float)
 0:?     Sequence
index ee65d17..6a74891 100755 (executable)
@@ -134,6 +134,8 @@ bool HlslGrammar::acceptDeclaration(TIntermNode*& node)
     TType type;
     if (! acceptFullySpecifiedType(type))
         return false;
+    if (type.getQualifier().storage == EvqTemporary && parseContext.symbolTable.atGlobalLevel())
+        type.getQualifier().storage = EvqGlobal;
 
     // identifier
     HlslToken idToken;