hlsl.load.basic.dx10.vert
Shader version: 450
0:? Sequence
0:47  Function Definition: main( (temp structure{temp 4-component vector of float Pos})
0:47    Function Parameters: 
0:?     Sequence
0:51      textureFetch (temp 4-component vector of float)
0:51        'g_tTex1df4' (layout(binding=0 ) uniform texture1D)
0:51        vector swizzle (temp 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: 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 (temp 4-component vector of int)
0:52        'g_tTex1di4' (uniform itexture1D)
0:52        vector swizzle (temp 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: 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 (temp 4-component vector of uint)
0:53        'g_tTex1du4' (uniform utexture1D)
0:53        vector swizzle (temp 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: 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 (temp 4-component vector of float)
0:56        'g_tTex2df4' (uniform texture2D)
0:56        vector swizzle (temp 2-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: 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 (temp 4-component vector of int)
0:57        'g_tTex2di4' (uniform itexture2D)
0:57        vector swizzle (temp 2-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: 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 (temp 4-component vector of uint)
0:58        'g_tTex2du4' (uniform utexture2D)
0:58        vector swizzle (temp 2-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: 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 (temp 4-component vector of float)
0:61        'g_tTex3df4' (uniform texture3D)
0:61        vector swizzle (temp 3-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)
0:61            Constant:
0:61              1 (const int)
0:61            Constant:
0:61              2 (const int)
0:61        direct index (temp 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 (temp 4-component vector of int)
0:62        'g_tTex3di4' (uniform itexture3D)
0:62        vector swizzle (temp 3-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)
0:62            Constant:
0:62              1 (const int)
0:62            Constant:
0:62              2 (const int)
0:62        direct index (temp 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 (temp 4-component vector of uint)
0:63        'g_tTex3du4' (uniform utexture3D)
0:63        vector swizzle (temp 3-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)
0:63            Constant:
0:63              1 (const int)
0:63            Constant:
0:63              2 (const int)
0:63        direct index (temp 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)
0:67        Pos: direct index for structure (temp 4-component vector of float)
0:67          'vsout' (temp structure{temp 4-component vector of float Pos})
0:67          Constant:
0:67            0 (const int)
0:?         Constant:
0:?           0.000000
0:?           0.000000
0:?           0.000000
0:?           0.000000
0:69      Sequence
0:69        Sequence
0:69          move second child to first child (temp 4-component vector of float)
0:?             'Pos' (out 4-component vector of float Position)
0:69            Pos: direct index for structure (temp 4-component vector of float)
0:69              'vsout' (temp structure{temp 4-component vector of float Pos})
0:69              Constant:
0:69                0 (const int)
0:69        Branch: Return
0:?   Linker Objects
0:?     'Pos' (out 4-component vector of float Position)
0:?     'g_sSamp' (layout(binding=0 ) uniform sampler)
0:?     'g_tTex1df4' (layout(binding=0 ) uniform texture1D)
0:?     'g_tTex1di4' (uniform itexture1D)
0:?     'g_tTex1du4' (uniform utexture1D)
0:?     'g_tTex2df4' (uniform texture2D)
0:?     'g_tTex2di4' (uniform itexture2D)
0:?     'g_tTex2du4' (uniform utexture2D)
0:?     'g_tTex3df4' (uniform texture3D)
0:?     'g_tTex3di4' (uniform itexture3D)
0:?     'g_tTex3du4' (uniform utexture3D)
0:?     'g_tTexcdf4' (uniform textureCube)
0:?     'g_tTexcdi4' (uniform itextureCube)
0:?     'g_tTexcdu4' (uniform utextureCube)
0:?     'g_tTex1df4a' (uniform texture1DArray)
0:?     'g_tTex1di4a' (uniform itexture1DArray)
0:?     'g_tTex1du4a' (uniform utexture1DArray)
0:?     'g_tTex2df4a' (uniform texture2DArray)
0:?     'g_tTex2di4a' (uniform itexture2DArray)
0:?     'g_tTex2du4a' (uniform utexture2DArray)
0:?     'g_tTexcdf4a' (uniform textureCubeArray)
0:?     'g_tTexcdi4a' (uniform itextureCubeArray)
0:?     'g_tTexcdu4a' (uniform utextureCubeArray)
0:?     'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4})


Linked vertex stage:


Shader version: 450
0:? Sequence
0:47  Function Definition: main( (temp structure{temp 4-component vector of float Pos})
0:47    Function Parameters: 
0:?     Sequence
0:51      textureFetch (temp 4-component vector of float)
0:51        'g_tTex1df4' (layout(binding=0 ) uniform texture1D)
0:51        vector swizzle (temp 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: 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 (temp 4-component vector of int)
0:52        'g_tTex1di4' (uniform itexture1D)
0:52        vector swizzle (temp 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: 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 (temp 4-component vector of uint)
0:53        'g_tTex1du4' (uniform utexture1D)
0:53        vector swizzle (temp 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: 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 (temp 4-component vector of float)
0:56        'g_tTex2df4' (uniform texture2D)
0:56        vector swizzle (temp 2-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: 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 (temp 4-component vector of int)
0:57        'g_tTex2di4' (uniform itexture2D)
0:57        vector swizzle (temp 2-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: 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 (temp 4-component vector of uint)
0:58        'g_tTex2du4' (uniform utexture2D)
0:58        vector swizzle (temp 2-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: 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 (temp 4-component vector of float)
0:61        'g_tTex3df4' (uniform texture3D)
0:61        vector swizzle (temp 3-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)
0:61            Constant:
0:61              1 (const int)
0:61            Constant:
0:61              2 (const int)
0:61        direct index (temp 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 (temp 4-component vector of int)
0:62        'g_tTex3di4' (uniform itexture3D)
0:62        vector swizzle (temp 3-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)
0:62            Constant:
0:62              1 (const int)
0:62            Constant:
0:62              2 (const int)
0:62        direct index (temp 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 (temp 4-component vector of uint)
0:63        'g_tTex3du4' (uniform utexture3D)
0:63        vector swizzle (temp 3-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)
0:63            Constant:
0:63              1 (const int)
0:63            Constant:
0:63              2 (const int)
0:63        direct index (temp 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)
0:67        Pos: direct index for structure (temp 4-component vector of float)
0:67          'vsout' (temp structure{temp 4-component vector of float Pos})
0:67          Constant:
0:67            0 (const int)
0:?         Constant:
0:?           0.000000
0:?           0.000000
0:?           0.000000
0:?           0.000000
0:69      Sequence
0:69        Sequence
0:69          move second child to first child (temp 4-component vector of float)
0:?             'Pos' (out 4-component vector of float Position)
0:69            Pos: direct index for structure (temp 4-component vector of float)
0:69              'vsout' (temp structure{temp 4-component vector of float Pos})
0:69              Constant:
0:69                0 (const int)
0:69        Branch: Return
0:?   Linker Objects
0:?     'Pos' (out 4-component vector of float Position)
0:?     'g_sSamp' (layout(binding=0 ) uniform sampler)
0:?     'g_tTex1df4' (layout(binding=0 ) uniform texture1D)
0:?     'g_tTex1di4' (uniform itexture1D)
0:?     'g_tTex1du4' (uniform utexture1D)
0:?     'g_tTex2df4' (uniform texture2D)
0:?     'g_tTex2di4' (uniform itexture2D)
0:?     'g_tTex2du4' (uniform utexture2D)
0:?     'g_tTex3df4' (uniform texture3D)
0:?     'g_tTex3di4' (uniform itexture3D)
0:?     'g_tTex3du4' (uniform utexture3D)
0:?     'g_tTexcdf4' (uniform textureCube)
0:?     'g_tTexcdi4' (uniform itextureCube)
0:?     'g_tTexcdu4' (uniform utextureCube)
0:?     'g_tTex1df4a' (uniform texture1DArray)
0:?     'g_tTex1di4a' (uniform itexture1DArray)
0:?     'g_tTex1du4a' (uniform utexture1DArray)
0:?     'g_tTex2df4a' (uniform texture2DArray)
0:?     'g_tTex2di4a' (uniform itexture2DArray)
0:?     'g_tTex2du4a' (uniform utexture2DArray)
0:?     'g_tTexcdf4a' (uniform textureCubeArray)
0:?     'g_tTexcdi4a' (uniform itextureCubeArray)
0:?     'g_tTexcdu4a' (uniform utextureCubeArray)
0:?     'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4})

// Module Version 10000
// Generated by (magic number): 80001
// Id's are bound by 166

                              Capability Shader
                              Capability Sampled1D
                              Capability SampledCubeArray
               1:             ExtInstImport  "GLSL.std.450"
                              MemoryModel Logical GLSL450
                              EntryPoint Vertex 4  "main" 123
                              Name 4  "main"
                              Name 9  "g_tTex1df4"
                              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
                              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
               7:             TypeImage 6(float) 1D sampled format:Unknown
               8:             TypePointer UniformConstant 7
   9(g_tTex1df4):      8(ptr) Variable UniformConstant
              11:             TypeInt 32 1
              12:             TypeVector 11(int) 2
              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
      116(vsout):    115(ptr) Variable Function
              10:           7 Load 9(g_tTex1df4)
              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
