HLSL Tests: Tests for previous commit, to make it easier to see what's changing.
diff --git a/Test/baseResults/hlsl.load.basic.dx10.vert.out b/Test/baseResults/hlsl.load.basic.dx10.vert.out
index 62e6128..4e1efad 100644
--- a/Test/baseResults/hlsl.load.basic.dx10.vert.out
+++ b/Test/baseResults/hlsl.load.basic.dx10.vert.out
@@ -1,85 +1,124 @@
 hlsl.load.basic.dx10.vert
 Shader version: 450
 0:? Sequence
-0:47  Function Definition: main( (global structure{temp 4-component vector of float Pos})
+0:47  Function Definition: main( (temp structure{temp 4-component vector of float Pos})
 0:47    Function Parameters: 
 0:?     Sequence
 0:51      textureFetch (global 4-component vector of float)
 0:51        'g_tTex1df4' (layout(binding=0 ) uniform texture1D)
 0:51        vector swizzle (temp int)
-0:51          'c2' (uniform 2-component vector of int)
+0:51          c2: direct index for structure (layout(offset=8 ) uniform 2-component vector of int)
+0:51            'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4})
+0:51            Constant:
+0:51              1 (const uint)
 0:51          Sequence
 0:51            Constant:
 0:51              0 (const int)
 0:51        direct index (temp int)
-0:51          'c2' (uniform 2-component vector of int)
+0:51          c2: direct index for structure (layout(offset=8 ) uniform 2-component vector of int)
+0:51            'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4})
+0:51            Constant:
+0:51              1 (const uint)
 0:51          Constant:
 0:51            1 (const int)
 0:52      textureFetch (global 4-component vector of int)
 0:52        'g_tTex1di4' (uniform itexture1D)
 0:52        vector swizzle (temp int)
-0:52          'c2' (uniform 2-component vector of int)
+0:52          c2: direct index for structure (layout(offset=8 ) uniform 2-component vector of int)
+0:52            'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4})
+0:52            Constant:
+0:52              1 (const uint)
 0:52          Sequence
 0:52            Constant:
 0:52              0 (const int)
 0:52        direct index (temp int)
-0:52          'c2' (uniform 2-component vector of int)
+0:52          c2: direct index for structure (layout(offset=8 ) uniform 2-component vector of int)
+0:52            'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4})
+0:52            Constant:
+0:52              1 (const uint)
 0:52          Constant:
 0:52            1 (const int)
 0:53      textureFetch (global 4-component vector of uint)
 0:53        'g_tTex1du4' (uniform utexture1D)
 0:53        vector swizzle (temp int)
-0:53          'c2' (uniform 2-component vector of int)
+0:53          c2: direct index for structure (layout(offset=8 ) uniform 2-component vector of int)
+0:53            'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4})
+0:53            Constant:
+0:53              1 (const uint)
 0:53          Sequence
 0:53            Constant:
 0:53              0 (const int)
 0:53        direct index (temp int)
-0:53          'c2' (uniform 2-component vector of int)
+0:53          c2: direct index for structure (layout(offset=8 ) uniform 2-component vector of int)
+0:53            'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4})
+0:53            Constant:
+0:53              1 (const uint)
 0:53          Constant:
 0:53            1 (const int)
 0:56      textureFetch (global 4-component vector of float)
 0:56        'g_tTex2df4' (uniform texture2D)
 0:56        vector swizzle (temp 2-component vector of int)
-0:56          'c3' (uniform 3-component vector of int)
+0:56          c3: direct index for structure (layout(offset=16 ) uniform 3-component vector of int)
+0:56            'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4})
+0:56            Constant:
+0:56              2 (const uint)
 0:56          Sequence
 0:56            Constant:
 0:56              0 (const int)
 0:56            Constant:
 0:56              1 (const int)
 0:56        direct index (temp int)
-0:56          'c3' (uniform 3-component vector of int)
+0:56          c3: direct index for structure (layout(offset=16 ) uniform 3-component vector of int)
+0:56            'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4})
+0:56            Constant:
+0:56              2 (const uint)
 0:56          Constant:
 0:56            2 (const int)
 0:57      textureFetch (global 4-component vector of int)
 0:57        'g_tTex2di4' (uniform itexture2D)
 0:57        vector swizzle (temp 2-component vector of int)
-0:57          'c3' (uniform 3-component vector of int)
+0:57          c3: direct index for structure (layout(offset=16 ) uniform 3-component vector of int)
+0:57            'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4})
+0:57            Constant:
+0:57              2 (const uint)
 0:57          Sequence
 0:57            Constant:
 0:57              0 (const int)
 0:57            Constant:
 0:57              1 (const int)
 0:57        direct index (temp int)
-0:57          'c3' (uniform 3-component vector of int)
+0:57          c3: direct index for structure (layout(offset=16 ) uniform 3-component vector of int)
+0:57            'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4})
+0:57            Constant:
+0:57              2 (const uint)
 0:57          Constant:
 0:57            2 (const int)
 0:58      textureFetch (global 4-component vector of uint)
 0:58        'g_tTex2du4' (uniform utexture2D)
 0:58        vector swizzle (temp 2-component vector of int)
-0:58          'c3' (uniform 3-component vector of int)
+0:58          c3: direct index for structure (layout(offset=16 ) uniform 3-component vector of int)
+0:58            'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4})
+0:58            Constant:
+0:58              2 (const uint)
 0:58          Sequence
 0:58            Constant:
 0:58              0 (const int)
 0:58            Constant:
 0:58              1 (const int)
 0:58        direct index (temp int)
-0:58          'c3' (uniform 3-component vector of int)
+0:58          c3: direct index for structure (layout(offset=16 ) uniform 3-component vector of int)
+0:58            'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4})
+0:58            Constant:
+0:58              2 (const uint)
 0:58          Constant:
 0:58            2 (const int)
 0:61      textureFetch (global 4-component vector of float)
 0:61        'g_tTex3df4' (uniform texture3D)
 0:61        vector swizzle (temp 3-component vector of int)
-0:61          'c4' (uniform 4-component vector of int)
+0:61          c4: direct index for structure (layout(offset=32 ) uniform 4-component vector of int)
+0:61            'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4})
+0:61            Constant:
+0:61              3 (const uint)
 0:61          Sequence
 0:61            Constant:
 0:61              0 (const int)
@@ -88,13 +127,19 @@
 0:61            Constant:
 0:61              2 (const int)
 0:61        direct index (temp int)
-0:61          'c4' (uniform 4-component vector of int)
+0:61          c4: direct index for structure (layout(offset=32 ) uniform 4-component vector of int)
+0:61            'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4})
+0:61            Constant:
+0:61              3 (const uint)
 0:61          Constant:
 0:61            3 (const int)
 0:62      textureFetch (global 4-component vector of int)
 0:62        'g_tTex3di4' (uniform itexture3D)
 0:62        vector swizzle (temp 3-component vector of int)
-0:62          'c4' (uniform 4-component vector of int)
+0:62          c4: direct index for structure (layout(offset=32 ) uniform 4-component vector of int)
+0:62            'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4})
+0:62            Constant:
+0:62              3 (const uint)
 0:62          Sequence
 0:62            Constant:
 0:62              0 (const int)
@@ -103,13 +148,19 @@
 0:62            Constant:
 0:62              2 (const int)
 0:62        direct index (temp int)
-0:62          'c4' (uniform 4-component vector of int)
+0:62          c4: direct index for structure (layout(offset=32 ) uniform 4-component vector of int)
+0:62            'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4})
+0:62            Constant:
+0:62              3 (const uint)
 0:62          Constant:
 0:62            3 (const int)
 0:63      textureFetch (global 4-component vector of uint)
 0:63        'g_tTex3du4' (uniform utexture3D)
 0:63        vector swizzle (temp 3-component vector of int)
-0:63          'c4' (uniform 4-component vector of int)
+0:63          c4: direct index for structure (layout(offset=32 ) uniform 4-component vector of int)
+0:63            'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4})
+0:63            Constant:
+0:63              3 (const uint)
 0:63          Sequence
 0:63            Constant:
 0:63              0 (const int)
@@ -118,7 +169,10 @@
 0:63            Constant:
 0:63              2 (const int)
 0:63        direct index (temp int)
-0:63          'c4' (uniform 4-component vector of int)
+0:63          c4: direct index for structure (layout(offset=32 ) uniform 4-component vector of int)
+0:63            'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4})
+0:63            Constant:
+0:63              3 (const uint)
 0:63          Constant:
 0:63            3 (const int)
 0:67      move second child to first child (temp 4-component vector of float)
@@ -163,15 +217,8 @@
 0:?     'g_tTexcdf4a' (uniform textureCubeArray)
 0:?     'g_tTexcdi4a' (uniform itextureCubeArray)
 0:?     'g_tTexcdu4a' (uniform utextureCubeArray)
-0:?     'c1' (uniform int)
-0:?     'c2' (uniform 2-component vector of int)
-0:?     'c3' (uniform 3-component vector of int)
-0:?     'c4' (uniform 4-component vector of int)
-0:?     'o1' (uniform int)
-0:?     'o2' (uniform 2-component vector of int)
-0:?     'o3' (uniform 3-component vector of int)
-0:?     'o4' (uniform 4-component vector of int)
 0:?     'Pos' (out 4-component vector of float Position)
+0:?     'anon@0' (uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4})
 
 
 Linked vertex stage:
@@ -179,85 +226,124 @@
 
 Shader version: 450
 0:? Sequence
-0:47  Function Definition: main( (global structure{temp 4-component vector of float Pos})
+0:47  Function Definition: main( (temp structure{temp 4-component vector of float Pos})
 0:47    Function Parameters: 
 0:?     Sequence
 0:51      textureFetch (global 4-component vector of float)
 0:51        'g_tTex1df4' (layout(binding=0 ) uniform texture1D)
 0:51        vector swizzle (temp int)
-0:51          'c2' (uniform 2-component vector of int)
+0:51          c2: direct index for structure (layout(offset=8 ) uniform 2-component vector of int)
+0:51            'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4})
+0:51            Constant:
+0:51              1 (const uint)
 0:51          Sequence
 0:51            Constant:
 0:51              0 (const int)
 0:51        direct index (temp int)
-0:51          'c2' (uniform 2-component vector of int)
+0:51          c2: direct index for structure (layout(offset=8 ) uniform 2-component vector of int)
+0:51            'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4})
+0:51            Constant:
+0:51              1 (const uint)
 0:51          Constant:
 0:51            1 (const int)
 0:52      textureFetch (global 4-component vector of int)
 0:52        'g_tTex1di4' (uniform itexture1D)
 0:52        vector swizzle (temp int)
-0:52          'c2' (uniform 2-component vector of int)
+0:52          c2: direct index for structure (layout(offset=8 ) uniform 2-component vector of int)
+0:52            'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4})
+0:52            Constant:
+0:52              1 (const uint)
 0:52          Sequence
 0:52            Constant:
 0:52              0 (const int)
 0:52        direct index (temp int)
-0:52          'c2' (uniform 2-component vector of int)
+0:52          c2: direct index for structure (layout(offset=8 ) uniform 2-component vector of int)
+0:52            'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4})
+0:52            Constant:
+0:52              1 (const uint)
 0:52          Constant:
 0:52            1 (const int)
 0:53      textureFetch (global 4-component vector of uint)
 0:53        'g_tTex1du4' (uniform utexture1D)
 0:53        vector swizzle (temp int)
-0:53          'c2' (uniform 2-component vector of int)
+0:53          c2: direct index for structure (layout(offset=8 ) uniform 2-component vector of int)
+0:53            'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4})
+0:53            Constant:
+0:53              1 (const uint)
 0:53          Sequence
 0:53            Constant:
 0:53              0 (const int)
 0:53        direct index (temp int)
-0:53          'c2' (uniform 2-component vector of int)
+0:53          c2: direct index for structure (layout(offset=8 ) uniform 2-component vector of int)
+0:53            'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4})
+0:53            Constant:
+0:53              1 (const uint)
 0:53          Constant:
 0:53            1 (const int)
 0:56      textureFetch (global 4-component vector of float)
 0:56        'g_tTex2df4' (uniform texture2D)
 0:56        vector swizzle (temp 2-component vector of int)
-0:56          'c3' (uniform 3-component vector of int)
+0:56          c3: direct index for structure (layout(offset=16 ) uniform 3-component vector of int)
+0:56            'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4})
+0:56            Constant:
+0:56              2 (const uint)
 0:56          Sequence
 0:56            Constant:
 0:56              0 (const int)
 0:56            Constant:
 0:56              1 (const int)
 0:56        direct index (temp int)
-0:56          'c3' (uniform 3-component vector of int)
+0:56          c3: direct index for structure (layout(offset=16 ) uniform 3-component vector of int)
+0:56            'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4})
+0:56            Constant:
+0:56              2 (const uint)
 0:56          Constant:
 0:56            2 (const int)
 0:57      textureFetch (global 4-component vector of int)
 0:57        'g_tTex2di4' (uniform itexture2D)
 0:57        vector swizzle (temp 2-component vector of int)
-0:57          'c3' (uniform 3-component vector of int)
+0:57          c3: direct index for structure (layout(offset=16 ) uniform 3-component vector of int)
+0:57            'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4})
+0:57            Constant:
+0:57              2 (const uint)
 0:57          Sequence
 0:57            Constant:
 0:57              0 (const int)
 0:57            Constant:
 0:57              1 (const int)
 0:57        direct index (temp int)
-0:57          'c3' (uniform 3-component vector of int)
+0:57          c3: direct index for structure (layout(offset=16 ) uniform 3-component vector of int)
+0:57            'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4})
+0:57            Constant:
+0:57              2 (const uint)
 0:57          Constant:
 0:57            2 (const int)
 0:58      textureFetch (global 4-component vector of uint)
 0:58        'g_tTex2du4' (uniform utexture2D)
 0:58        vector swizzle (temp 2-component vector of int)
-0:58          'c3' (uniform 3-component vector of int)
+0:58          c3: direct index for structure (layout(offset=16 ) uniform 3-component vector of int)
+0:58            'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4})
+0:58            Constant:
+0:58              2 (const uint)
 0:58          Sequence
 0:58            Constant:
 0:58              0 (const int)
 0:58            Constant:
 0:58              1 (const int)
 0:58        direct index (temp int)
-0:58          'c3' (uniform 3-component vector of int)
+0:58          c3: direct index for structure (layout(offset=16 ) uniform 3-component vector of int)
+0:58            'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4})
+0:58            Constant:
+0:58              2 (const uint)
 0:58          Constant:
 0:58            2 (const int)
 0:61      textureFetch (global 4-component vector of float)
 0:61        'g_tTex3df4' (uniform texture3D)
 0:61        vector swizzle (temp 3-component vector of int)
-0:61          'c4' (uniform 4-component vector of int)
+0:61          c4: direct index for structure (layout(offset=32 ) uniform 4-component vector of int)
+0:61            'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4})
+0:61            Constant:
+0:61              3 (const uint)
 0:61          Sequence
 0:61            Constant:
 0:61              0 (const int)
@@ -266,13 +352,19 @@
 0:61            Constant:
 0:61              2 (const int)
 0:61        direct index (temp int)
-0:61          'c4' (uniform 4-component vector of int)
+0:61          c4: direct index for structure (layout(offset=32 ) uniform 4-component vector of int)
+0:61            'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4})
+0:61            Constant:
+0:61              3 (const uint)
 0:61          Constant:
 0:61            3 (const int)
 0:62      textureFetch (global 4-component vector of int)
 0:62        'g_tTex3di4' (uniform itexture3D)
 0:62        vector swizzle (temp 3-component vector of int)
-0:62          'c4' (uniform 4-component vector of int)
+0:62          c4: direct index for structure (layout(offset=32 ) uniform 4-component vector of int)
+0:62            'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4})
+0:62            Constant:
+0:62              3 (const uint)
 0:62          Sequence
 0:62            Constant:
 0:62              0 (const int)
@@ -281,13 +373,19 @@
 0:62            Constant:
 0:62              2 (const int)
 0:62        direct index (temp int)
-0:62          'c4' (uniform 4-component vector of int)
+0:62          c4: direct index for structure (layout(offset=32 ) uniform 4-component vector of int)
+0:62            'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4})
+0:62            Constant:
+0:62              3 (const uint)
 0:62          Constant:
 0:62            3 (const int)
 0:63      textureFetch (global 4-component vector of uint)
 0:63        'g_tTex3du4' (uniform utexture3D)
 0:63        vector swizzle (temp 3-component vector of int)
-0:63          'c4' (uniform 4-component vector of int)
+0:63          c4: direct index for structure (layout(offset=32 ) uniform 4-component vector of int)
+0:63            'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4})
+0:63            Constant:
+0:63              3 (const uint)
 0:63          Sequence
 0:63            Constant:
 0:63              0 (const int)
@@ -296,7 +394,10 @@
 0:63            Constant:
 0:63              2 (const int)
 0:63        direct index (temp int)
-0:63          'c4' (uniform 4-component vector of int)
+0:63          c4: direct index for structure (layout(offset=32 ) uniform 4-component vector of int)
+0:63            'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4})
+0:63            Constant:
+0:63              3 (const uint)
 0:63          Constant:
 0:63            3 (const int)
 0:67      move second child to first child (temp 4-component vector of float)
@@ -341,86 +442,91 @@
 0:?     'g_tTexcdf4a' (uniform textureCubeArray)
 0:?     'g_tTexcdi4a' (uniform itextureCubeArray)
 0:?     'g_tTexcdu4a' (uniform utextureCubeArray)
-0:?     'c1' (uniform int)
-0:?     'c2' (uniform 2-component vector of int)
-0:?     'c3' (uniform 3-component vector of int)
-0:?     'c4' (uniform 4-component vector of int)
-0:?     'o1' (uniform int)
-0:?     'o2' (uniform 2-component vector of int)
-0:?     'o3' (uniform 3-component vector of int)
-0:?     'o4' (uniform 4-component vector of int)
 0:?     'Pos' (out 4-component vector of float Position)
+0:?     'anon@0' (uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4})
 
 // Module Version 10000
 // Generated by (magic number): 80001
-// Id's are bound by 163
+// Id's are bound by 166
 
                               Capability Shader
                               Capability Sampled1D
                               Capability SampledCubeArray
                1:             ExtInstImport  "GLSL.std.450"
                               MemoryModel Logical GLSL450
-                              EntryPoint Vertex 4  "main" 115
+                              EntryPoint Vertex 4  "main" 123
                               Name 4  "main"
                               Name 9  "g_tTex1df4"
-                              Name 14  "c2"
-                              Name 27  "g_tTex1di4"
-                              Name 37  "g_tTex1du4"
-                              Name 47  "g_tTex2df4"
-                              Name 51  "c3"
-                              Name 60  "g_tTex2di4"
-                              Name 69  "g_tTex2du4"
-                              Name 78  "g_tTex3df4"
-                              Name 81  "c4"
-                              Name 90  "g_tTex3di4"
-                              Name 99  "g_tTex3du4"
-                              Name 106  "VS_OUTPUT"
-                              MemberName 106(VS_OUTPUT) 0  "Pos"
-                              Name 108  "vsout"
-                              Name 115  "Pos"
-                              Name 121  "g_sSamp"
-                              Name 124  "g_tTexcdf4"
-                              Name 127  "g_tTexcdi4"
-                              Name 130  "g_tTexcdu4"
-                              Name 133  "g_tTex1df4a"
-                              Name 136  "g_tTex1di4a"
-                              Name 139  "g_tTex1du4a"
-                              Name 142  "g_tTex2df4a"
-                              Name 145  "g_tTex2di4a"
-                              Name 148  "g_tTex2du4a"
-                              Name 151  "g_tTexcdf4a"
-                              Name 154  "g_tTexcdi4a"
-                              Name 157  "g_tTexcdu4a"
-                              Name 158  "c1"
-                              Name 159  "o1"
-                              Name 160  "o2"
-                              Name 161  "o3"
-                              Name 162  "o4"
+                              Name 15  "$Global"
+                              MemberName 15($Global) 0  "c1"
+                              MemberName 15($Global) 1  "c2"
+                              MemberName 15($Global) 2  "c3"
+                              MemberName 15($Global) 3  "c4"
+                              MemberName 15($Global) 4  "o1"
+                              MemberName 15($Global) 5  "o2"
+                              MemberName 15($Global) 6  "o3"
+                              MemberName 15($Global) 7  "o4"
+                              Name 17  ""
+                              Name 31  "g_tTex1di4"
+                              Name 40  "g_tTex1du4"
+                              Name 50  "g_tTex2df4"
+                              Name 63  "g_tTex2di4"
+                              Name 73  "g_tTex2du4"
+                              Name 83  "g_tTex3df4"
+                              Name 96  "g_tTex3di4"
+                              Name 106  "g_tTex3du4"
+                              Name 114  "VS_OUTPUT"
+                              MemberName 114(VS_OUTPUT) 0  "Pos"
+                              Name 116  "vsout"
+                              Name 123  "Pos"
+                              Name 129  "g_sSamp"
+                              Name 132  "g_tTexcdf4"
+                              Name 135  "g_tTexcdi4"
+                              Name 138  "g_tTexcdu4"
+                              Name 141  "g_tTex1df4a"
+                              Name 144  "g_tTex1di4a"
+                              Name 147  "g_tTex1du4a"
+                              Name 150  "g_tTex2df4a"
+                              Name 153  "g_tTex2di4a"
+                              Name 156  "g_tTex2du4a"
+                              Name 159  "g_tTexcdf4a"
+                              Name 162  "g_tTexcdi4a"
+                              Name 165  "g_tTexcdu4a"
                               Decorate 9(g_tTex1df4) DescriptorSet 0
                               Decorate 9(g_tTex1df4) Binding 0
-                              Decorate 27(g_tTex1di4) DescriptorSet 0
-                              Decorate 37(g_tTex1du4) DescriptorSet 0
-                              Decorate 47(g_tTex2df4) DescriptorSet 0
-                              Decorate 60(g_tTex2di4) DescriptorSet 0
-                              Decorate 69(g_tTex2du4) DescriptorSet 0
-                              Decorate 78(g_tTex3df4) DescriptorSet 0
-                              Decorate 90(g_tTex3di4) DescriptorSet 0
-                              Decorate 99(g_tTex3du4) DescriptorSet 0
-                              Decorate 115(Pos) BuiltIn Position
-                              Decorate 121(g_sSamp) DescriptorSet 0
-                              Decorate 121(g_sSamp) Binding 0
-                              Decorate 124(g_tTexcdf4) DescriptorSet 0
-                              Decorate 127(g_tTexcdi4) DescriptorSet 0
-                              Decorate 130(g_tTexcdu4) DescriptorSet 0
-                              Decorate 133(g_tTex1df4a) DescriptorSet 0
-                              Decorate 136(g_tTex1di4a) DescriptorSet 0
-                              Decorate 139(g_tTex1du4a) DescriptorSet 0
-                              Decorate 142(g_tTex2df4a) DescriptorSet 0
-                              Decorate 145(g_tTex2di4a) DescriptorSet 0
-                              Decorate 148(g_tTex2du4a) DescriptorSet 0
-                              Decorate 151(g_tTexcdf4a) DescriptorSet 0
-                              Decorate 154(g_tTexcdi4a) DescriptorSet 0
-                              Decorate 157(g_tTexcdu4a) DescriptorSet 0
+                              MemberDecorate 15($Global) 0 Offset 0
+                              MemberDecorate 15($Global) 1 Offset 8
+                              MemberDecorate 15($Global) 2 Offset 16
+                              MemberDecorate 15($Global) 3 Offset 32
+                              MemberDecorate 15($Global) 4 Offset 48
+                              MemberDecorate 15($Global) 5 Offset 56
+                              MemberDecorate 15($Global) 6 Offset 64
+                              MemberDecorate 15($Global) 7 Offset 80
+                              Decorate 15($Global) Block
+                              Decorate 17 DescriptorSet 0
+                              Decorate 31(g_tTex1di4) DescriptorSet 0
+                              Decorate 40(g_tTex1du4) DescriptorSet 0
+                              Decorate 50(g_tTex2df4) DescriptorSet 0
+                              Decorate 63(g_tTex2di4) DescriptorSet 0
+                              Decorate 73(g_tTex2du4) DescriptorSet 0
+                              Decorate 83(g_tTex3df4) DescriptorSet 0
+                              Decorate 96(g_tTex3di4) DescriptorSet 0
+                              Decorate 106(g_tTex3du4) DescriptorSet 0
+                              Decorate 123(Pos) BuiltIn Position
+                              Decorate 129(g_sSamp) DescriptorSet 0
+                              Decorate 129(g_sSamp) Binding 0
+                              Decorate 132(g_tTexcdf4) DescriptorSet 0
+                              Decorate 135(g_tTexcdi4) DescriptorSet 0
+                              Decorate 138(g_tTexcdu4) DescriptorSet 0
+                              Decorate 141(g_tTex1df4a) DescriptorSet 0
+                              Decorate 144(g_tTex1di4a) DescriptorSet 0
+                              Decorate 147(g_tTex1du4a) DescriptorSet 0
+                              Decorate 150(g_tTex2df4a) DescriptorSet 0
+                              Decorate 153(g_tTex2di4a) DescriptorSet 0
+                              Decorate 156(g_tTex2du4a) DescriptorSet 0
+                              Decorate 159(g_tTexcdf4a) DescriptorSet 0
+                              Decorate 162(g_tTexcdi4a) DescriptorSet 0
+                              Decorate 165(g_tTexcdu4a) DescriptorSet 0
                2:             TypeVoid
                3:             TypeFunction 2
                6:             TypeFloat 32
@@ -429,159 +535,162 @@
    9(g_tTex1df4):      8(ptr) Variable UniformConstant
               11:             TypeInt 32 1
               12:             TypeVector 11(int) 2
-              13:             TypePointer UniformConstant 12(ivec2)
-          14(c2):     13(ptr) Variable UniformConstant
-              15:             TypeInt 32 0
-              16:     15(int) Constant 0
-              17:             TypePointer UniformConstant 11(int)
-              20:     15(int) Constant 1
-              23:             TypeVector 6(float) 4
-              25:             TypeImage 11(int) 1D sampled format:Unknown
-              26:             TypePointer UniformConstant 25
-  27(g_tTex1di4):     26(ptr) Variable UniformConstant
-              33:             TypeVector 11(int) 4
-              35:             TypeImage 15(int) 1D sampled format:Unknown
-              36:             TypePointer UniformConstant 35
-  37(g_tTex1du4):     36(ptr) Variable UniformConstant
-              43:             TypeVector 15(int) 4
-              45:             TypeImage 6(float) 2D sampled format:Unknown
-              46:             TypePointer UniformConstant 45
-  47(g_tTex2df4):     46(ptr) Variable UniformConstant
-              49:             TypeVector 11(int) 3
-              50:             TypePointer UniformConstant 49(ivec3)
-          51(c3):     50(ptr) Variable UniformConstant
-              54:     15(int) Constant 2
-              58:             TypeImage 11(int) 2D sampled format:Unknown
-              59:             TypePointer UniformConstant 58
-  60(g_tTex2di4):     59(ptr) Variable UniformConstant
-              67:             TypeImage 15(int) 2D sampled format:Unknown
-              68:             TypePointer UniformConstant 67
-  69(g_tTex2du4):     68(ptr) Variable UniformConstant
-              76:             TypeImage 6(float) 3D sampled format:Unknown
-              77:             TypePointer UniformConstant 76
-  78(g_tTex3df4):     77(ptr) Variable UniformConstant
-              80:             TypePointer UniformConstant 33(ivec4)
-          81(c4):     80(ptr) Variable UniformConstant
-              84:     15(int) Constant 3
-              88:             TypeImage 11(int) 3D sampled format:Unknown
-              89:             TypePointer UniformConstant 88
-  90(g_tTex3di4):     89(ptr) Variable UniformConstant
-              97:             TypeImage 15(int) 3D sampled format:Unknown
-              98:             TypePointer UniformConstant 97
-  99(g_tTex3du4):     98(ptr) Variable UniformConstant
-  106(VS_OUTPUT):             TypeStruct 23(fvec4)
-             107:             TypePointer Function 106(VS_OUTPUT)
-             109:     11(int) Constant 0
-             110:    6(float) Constant 0
-             111:   23(fvec4) ConstantComposite 110 110 110 110
-             112:             TypePointer Function 23(fvec4)
-             114:             TypePointer Output 23(fvec4)
-        115(Pos):    114(ptr) Variable Output
-             119:             TypeSampler
-             120:             TypePointer UniformConstant 119
-    121(g_sSamp):    120(ptr) Variable UniformConstant
-             122:             TypeImage 6(float) Cube sampled format:Unknown
-             123:             TypePointer UniformConstant 122
- 124(g_tTexcdf4):    123(ptr) Variable UniformConstant
-             125:             TypeImage 11(int) Cube sampled format:Unknown
-             126:             TypePointer UniformConstant 125
- 127(g_tTexcdi4):    126(ptr) Variable UniformConstant
-             128:             TypeImage 15(int) Cube sampled format:Unknown
-             129:             TypePointer UniformConstant 128
- 130(g_tTexcdu4):    129(ptr) Variable UniformConstant
-             131:             TypeImage 6(float) 1D array sampled format:Unknown
-             132:             TypePointer UniformConstant 131
-133(g_tTex1df4a):    132(ptr) Variable UniformConstant
-             134:             TypeImage 11(int) 1D array sampled format:Unknown
-             135:             TypePointer UniformConstant 134
-136(g_tTex1di4a):    135(ptr) Variable UniformConstant
-             137:             TypeImage 15(int) 1D array sampled format:Unknown
-             138:             TypePointer UniformConstant 137
-139(g_tTex1du4a):    138(ptr) Variable UniformConstant
-             140:             TypeImage 6(float) 2D array sampled format:Unknown
-             141:             TypePointer UniformConstant 140
-142(g_tTex2df4a):    141(ptr) Variable UniformConstant
-             143:             TypeImage 11(int) 2D array sampled format:Unknown
-             144:             TypePointer UniformConstant 143
-145(g_tTex2di4a):    144(ptr) Variable UniformConstant
-             146:             TypeImage 15(int) 2D array sampled format:Unknown
-             147:             TypePointer UniformConstant 146
-148(g_tTex2du4a):    147(ptr) Variable UniformConstant
-             149:             TypeImage 6(float) Cube array sampled format:Unknown
-             150:             TypePointer UniformConstant 149
-151(g_tTexcdf4a):    150(ptr) Variable UniformConstant
-             152:             TypeImage 11(int) Cube array sampled format:Unknown
-             153:             TypePointer UniformConstant 152
-154(g_tTexcdi4a):    153(ptr) Variable UniformConstant
-             155:             TypeImage 15(int) Cube array sampled format:Unknown
-             156:             TypePointer UniformConstant 155
-157(g_tTexcdu4a):    156(ptr) Variable UniformConstant
-         158(c1):     17(ptr) Variable UniformConstant
-         159(o1):     17(ptr) Variable UniformConstant
-         160(o2):     13(ptr) Variable UniformConstant
-         161(o3):     50(ptr) Variable UniformConstant
-         162(o4):     80(ptr) Variable UniformConstant
+              13:             TypeVector 11(int) 3
+              14:             TypeVector 11(int) 4
+     15($Global):             TypeStruct 11(int) 12(ivec2) 13(ivec3) 14(ivec4) 11(int) 12(ivec2) 13(ivec3) 14(ivec4)
+              16:             TypePointer Uniform 15($Global)
+              17:     16(ptr) Variable Uniform
+              18:     11(int) Constant 1
+              19:             TypeInt 32 0
+              20:     19(int) Constant 0
+              21:             TypePointer Uniform 11(int)
+              24:     19(int) Constant 1
+              27:             TypeVector 6(float) 4
+              29:             TypeImage 11(int) 1D sampled format:Unknown
+              30:             TypePointer UniformConstant 29
+  31(g_tTex1di4):     30(ptr) Variable UniformConstant
+              38:             TypeImage 19(int) 1D sampled format:Unknown
+              39:             TypePointer UniformConstant 38
+  40(g_tTex1du4):     39(ptr) Variable UniformConstant
+              46:             TypeVector 19(int) 4
+              48:             TypeImage 6(float) 2D sampled format:Unknown
+              49:             TypePointer UniformConstant 48
+  50(g_tTex2df4):     49(ptr) Variable UniformConstant
+              52:     11(int) Constant 2
+              53:             TypePointer Uniform 13(ivec3)
+              57:     19(int) Constant 2
+              61:             TypeImage 11(int) 2D sampled format:Unknown
+              62:             TypePointer UniformConstant 61
+  63(g_tTex2di4):     62(ptr) Variable UniformConstant
+              71:             TypeImage 19(int) 2D sampled format:Unknown
+              72:             TypePointer UniformConstant 71
+  73(g_tTex2du4):     72(ptr) Variable UniformConstant
+              81:             TypeImage 6(float) 3D sampled format:Unknown
+              82:             TypePointer UniformConstant 81
+  83(g_tTex3df4):     82(ptr) Variable UniformConstant
+              85:     11(int) Constant 3
+              86:             TypePointer Uniform 14(ivec4)
+              90:     19(int) Constant 3
+              94:             TypeImage 11(int) 3D sampled format:Unknown
+              95:             TypePointer UniformConstant 94
+  96(g_tTex3di4):     95(ptr) Variable UniformConstant
+             104:             TypeImage 19(int) 3D sampled format:Unknown
+             105:             TypePointer UniformConstant 104
+ 106(g_tTex3du4):    105(ptr) Variable UniformConstant
+  114(VS_OUTPUT):             TypeStruct 27(fvec4)
+             115:             TypePointer Function 114(VS_OUTPUT)
+             117:     11(int) Constant 0
+             118:    6(float) Constant 0
+             119:   27(fvec4) ConstantComposite 118 118 118 118
+             120:             TypePointer Function 27(fvec4)
+             122:             TypePointer Output 27(fvec4)
+        123(Pos):    122(ptr) Variable Output
+             127:             TypeSampler
+             128:             TypePointer UniformConstant 127
+    129(g_sSamp):    128(ptr) Variable UniformConstant
+             130:             TypeImage 6(float) Cube sampled format:Unknown
+             131:             TypePointer UniformConstant 130
+ 132(g_tTexcdf4):    131(ptr) Variable UniformConstant
+             133:             TypeImage 11(int) Cube sampled format:Unknown
+             134:             TypePointer UniformConstant 133
+ 135(g_tTexcdi4):    134(ptr) Variable UniformConstant
+             136:             TypeImage 19(int) Cube sampled format:Unknown
+             137:             TypePointer UniformConstant 136
+ 138(g_tTexcdu4):    137(ptr) Variable UniformConstant
+             139:             TypeImage 6(float) 1D array sampled format:Unknown
+             140:             TypePointer UniformConstant 139
+141(g_tTex1df4a):    140(ptr) Variable UniformConstant
+             142:             TypeImage 11(int) 1D array sampled format:Unknown
+             143:             TypePointer UniformConstant 142
+144(g_tTex1di4a):    143(ptr) Variable UniformConstant
+             145:             TypeImage 19(int) 1D array sampled format:Unknown
+             146:             TypePointer UniformConstant 145
+147(g_tTex1du4a):    146(ptr) Variable UniformConstant
+             148:             TypeImage 6(float) 2D array sampled format:Unknown
+             149:             TypePointer UniformConstant 148
+150(g_tTex2df4a):    149(ptr) Variable UniformConstant
+             151:             TypeImage 11(int) 2D array sampled format:Unknown
+             152:             TypePointer UniformConstant 151
+153(g_tTex2di4a):    152(ptr) Variable UniformConstant
+             154:             TypeImage 19(int) 2D array sampled format:Unknown
+             155:             TypePointer UniformConstant 154
+156(g_tTex2du4a):    155(ptr) Variable UniformConstant
+             157:             TypeImage 6(float) Cube array sampled format:Unknown
+             158:             TypePointer UniformConstant 157
+159(g_tTexcdf4a):    158(ptr) Variable UniformConstant
+             160:             TypeImage 11(int) Cube array sampled format:Unknown
+             161:             TypePointer UniformConstant 160
+162(g_tTexcdi4a):    161(ptr) Variable UniformConstant
+             163:             TypeImage 19(int) Cube array sampled format:Unknown
+             164:             TypePointer UniformConstant 163
+165(g_tTexcdu4a):    164(ptr) Variable UniformConstant
          4(main):           2 Function None 3
                5:             Label
-      108(vsout):    107(ptr) Variable Function
+      116(vsout):    115(ptr) Variable Function
               10:           7 Load 9(g_tTex1df4)
-              18:     17(ptr) AccessChain 14(c2) 16
-              19:     11(int) Load 18
-              21:     17(ptr) AccessChain 14(c2) 20
-              22:     11(int) Load 21
-              24:   23(fvec4) ImageFetch 10 19 Lod 22
-              28:          25 Load 27(g_tTex1di4)
-              29:     17(ptr) AccessChain 14(c2) 16
-              30:     11(int) Load 29
-              31:     17(ptr) AccessChain 14(c2) 20
-              32:     11(int) Load 31
-              34:   33(ivec4) ImageFetch 28 30 Lod 32
-              38:          35 Load 37(g_tTex1du4)
-              39:     17(ptr) AccessChain 14(c2) 16
-              40:     11(int) Load 39
-              41:     17(ptr) AccessChain 14(c2) 20
-              42:     11(int) Load 41
-              44:   43(ivec4) ImageFetch 38 40 Lod 42
-              48:          45 Load 47(g_tTex2df4)
-              52:   49(ivec3) Load 51(c3)
-              53:   12(ivec2) VectorShuffle 52 52 0 1
-              55:     17(ptr) AccessChain 51(c3) 54
-              56:     11(int) Load 55
-              57:   23(fvec4) ImageFetch 48 53 Lod 56
-              61:          58 Load 60(g_tTex2di4)
-              62:   49(ivec3) Load 51(c3)
-              63:   12(ivec2) VectorShuffle 62 62 0 1
-              64:     17(ptr) AccessChain 51(c3) 54
-              65:     11(int) Load 64
-              66:   33(ivec4) ImageFetch 61 63 Lod 65
-              70:          67 Load 69(g_tTex2du4)
-              71:   49(ivec3) Load 51(c3)
-              72:   12(ivec2) VectorShuffle 71 71 0 1
-              73:     17(ptr) AccessChain 51(c3) 54
-              74:     11(int) Load 73
-              75:   43(ivec4) ImageFetch 70 72 Lod 74
-              79:          76 Load 78(g_tTex3df4)
-              82:   33(ivec4) Load 81(c4)
-              83:   49(ivec3) VectorShuffle 82 82 0 1 2
-              85:     17(ptr) AccessChain 81(c4) 84
-              86:     11(int) Load 85
-              87:   23(fvec4) ImageFetch 79 83 Lod 86
-              91:          88 Load 90(g_tTex3di4)
-              92:   33(ivec4) Load 81(c4)
-              93:   49(ivec3) VectorShuffle 92 92 0 1 2
-              94:     17(ptr) AccessChain 81(c4) 84
-              95:     11(int) Load 94
-              96:   33(ivec4) ImageFetch 91 93 Lod 95
-             100:          97 Load 99(g_tTex3du4)
-             101:   33(ivec4) Load 81(c4)
-             102:   49(ivec3) VectorShuffle 101 101 0 1 2
-             103:     17(ptr) AccessChain 81(c4) 84
-             104:     11(int) Load 103
-             105:   43(ivec4) ImageFetch 100 102 Lod 104
-             113:    112(ptr) AccessChain 108(vsout) 109
-                              Store 113 111
-             116:    112(ptr) AccessChain 108(vsout) 109
-             117:   23(fvec4) Load 116
-                              Store 115(Pos) 117
+              22:     21(ptr) AccessChain 17 18 20
+              23:     11(int) Load 22
+              25:     21(ptr) AccessChain 17 18 24
+              26:     11(int) Load 25
+              28:   27(fvec4) ImageFetch 10 23 Lod 26
+              32:          29 Load 31(g_tTex1di4)
+              33:     21(ptr) AccessChain 17 18 20
+              34:     11(int) Load 33
+              35:     21(ptr) AccessChain 17 18 24
+              36:     11(int) Load 35
+              37:   14(ivec4) ImageFetch 32 34 Lod 36
+              41:          38 Load 40(g_tTex1du4)
+              42:     21(ptr) AccessChain 17 18 20
+              43:     11(int) Load 42
+              44:     21(ptr) AccessChain 17 18 24
+              45:     11(int) Load 44
+              47:   46(ivec4) ImageFetch 41 43 Lod 45
+              51:          48 Load 50(g_tTex2df4)
+              54:     53(ptr) AccessChain 17 52
+              55:   13(ivec3) Load 54
+              56:   12(ivec2) VectorShuffle 55 55 0 1
+              58:     21(ptr) AccessChain 17 52 57
+              59:     11(int) Load 58
+              60:   27(fvec4) ImageFetch 51 56 Lod 59
+              64:          61 Load 63(g_tTex2di4)
+              65:     53(ptr) AccessChain 17 52
+              66:   13(ivec3) Load 65
+              67:   12(ivec2) VectorShuffle 66 66 0 1
+              68:     21(ptr) AccessChain 17 52 57
+              69:     11(int) Load 68
+              70:   14(ivec4) ImageFetch 64 67 Lod 69
+              74:          71 Load 73(g_tTex2du4)
+              75:     53(ptr) AccessChain 17 52
+              76:   13(ivec3) Load 75
+              77:   12(ivec2) VectorShuffle 76 76 0 1
+              78:     21(ptr) AccessChain 17 52 57
+              79:     11(int) Load 78
+              80:   46(ivec4) ImageFetch 74 77 Lod 79
+              84:          81 Load 83(g_tTex3df4)
+              87:     86(ptr) AccessChain 17 85
+              88:   14(ivec4) Load 87
+              89:   13(ivec3) VectorShuffle 88 88 0 1 2
+              91:     21(ptr) AccessChain 17 85 90
+              92:     11(int) Load 91
+              93:   27(fvec4) ImageFetch 84 89 Lod 92
+              97:          94 Load 96(g_tTex3di4)
+              98:     86(ptr) AccessChain 17 85
+              99:   14(ivec4) Load 98
+             100:   13(ivec3) VectorShuffle 99 99 0 1 2
+             101:     21(ptr) AccessChain 17 85 90
+             102:     11(int) Load 101
+             103:   14(ivec4) ImageFetch 97 100 Lod 102
+             107:         104 Load 106(g_tTex3du4)
+             108:     86(ptr) AccessChain 17 85
+             109:   14(ivec4) Load 108
+             110:   13(ivec3) VectorShuffle 109 109 0 1 2
+             111:     21(ptr) AccessChain 17 85 90
+             112:     11(int) Load 111
+             113:   46(ivec4) ImageFetch 107 110 Lod 112
+             121:    120(ptr) AccessChain 116(vsout) 117
+                              Store 121 119
+             124:    120(ptr) AccessChain 116(vsout) 117
+             125:   27(fvec4) Load 124
+                              Store 123(Pos) 125
                               Return
                               FunctionEnd