hlsl.load.2dms.dx10.frag
Shader version: 450
gl_FragCoord origin is upper left
0:? Sequence
0:28  Function Definition: main( (temp structure{temp 4-component vector of float Color, temp float Depth})
0:28    Function Parameters: 
0:?     Sequence
0:32      textureFetch (temp 4-component vector of float)
0:32        'g_tTex2dmsf4' (uniform texture2DMS)
0:32        c2: direct index for structure (layout(offset=8 ) uniform 2-component vector of int)
0:32          '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:32          Constant:
0:32            1 (const uint)
0:32        Constant:
0:32          3 (const int)
0:33      textureFetch (temp 4-component vector of int)
0:33        'g_tTex2dmsi4' (uniform itexture2DMS)
0:33        c2: direct index for structure (layout(offset=8 ) uniform 2-component vector of int)
0:33          '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:33          Constant:
0:33            1 (const uint)
0:33        Constant:
0:33          3 (const int)
0:34      textureFetch (temp 4-component vector of uint)
0:34        'g_tTex2dmsu4' (uniform utexture2DMS)
0:34        c2: direct index for structure (layout(offset=8 ) uniform 2-component vector of int)
0:34          '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:34          Constant:
0:34            1 (const uint)
0:34        Constant:
0:34          3 (const int)
0:37      textureFetchOffset (temp 4-component vector of float)
0:37        'g_tTex2dmsf4' (uniform texture2DMS)
0:37        c2: direct index for structure (layout(offset=8 ) uniform 2-component vector of int)
0:37          '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:37          Constant:
0:37            1 (const uint)
0:37        Constant:
0:37          3 (const int)
0:37        o2: direct index for structure (layout(offset=56 ) uniform 2-component vector of int)
0:37          '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:37          Constant:
0:37            5 (const uint)
0:38      textureFetchOffset (temp 4-component vector of int)
0:38        'g_tTex2dmsi4' (uniform itexture2DMS)
0:38        c2: direct index for structure (layout(offset=8 ) uniform 2-component vector of int)
0:38          '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:38          Constant:
0:38            1 (const uint)
0:38        Constant:
0:38          3 (const int)
0:38        o2: direct index for structure (layout(offset=56 ) uniform 2-component vector of int)
0:38          '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:38          Constant:
0:38            5 (const uint)
0:39      textureFetchOffset (temp 4-component vector of uint)
0:39        'g_tTex2dmsu4' (uniform utexture2DMS)
0:39        c2: direct index for structure (layout(offset=8 ) uniform 2-component vector of int)
0:39          '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:39          Constant:
0:39            1 (const uint)
0:39        Constant:
0:39          3 (const int)
0:39        o2: direct index for structure (layout(offset=56 ) uniform 2-component vector of int)
0:39          '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:39          Constant:
0:39            5 (const uint)
0:42      textureFetch (temp 4-component vector of float)
0:42        'g_tTex2dmsf4a' (uniform texture2DMSArray)
0:42        c3: direct index for structure (layout(offset=16 ) uniform 3-component vector of int)
0:42          '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:42          Constant:
0:42            2 (const uint)
0:42        Constant:
0:42          3 (const int)
0:43      textureFetch (temp 4-component vector of int)
0:43        'g_tTex2dmsi4a' (uniform itexture2DMSArray)
0:43        c3: direct index for structure (layout(offset=16 ) uniform 3-component vector of int)
0:43          '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:43          Constant:
0:43            2 (const uint)
0:43        Constant:
0:43          3 (const int)
0:44      textureFetch (temp 4-component vector of uint)
0:44        'g_tTex2dmsu4a' (uniform utexture2DMSArray)
0:44        c3: direct index for structure (layout(offset=16 ) uniform 3-component vector of int)
0:44          '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:44          Constant:
0:44            2 (const uint)
0:44        Constant:
0:44          3 (const int)
0:47      textureFetchOffset (temp 4-component vector of float)
0:47        'g_tTex2dmsf4a' (uniform texture2DMSArray)
0:47        c3: direct index for structure (layout(offset=16 ) uniform 3-component vector of int)
0:47          '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:47          Constant:
0:47            2 (const uint)
0:47        Constant:
0:47          3 (const int)
0:47        o2: direct index for structure (layout(offset=56 ) uniform 2-component vector of int)
0:47          '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:47          Constant:
0:47            5 (const uint)
0:48      textureFetchOffset (temp 4-component vector of int)
0:48        'g_tTex2dmsi4a' (uniform itexture2DMSArray)
0:48        c3: direct index for structure (layout(offset=16 ) uniform 3-component vector of int)
0:48          '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:48          Constant:
0:48            2 (const uint)
0:48        Constant:
0:48          3 (const int)
0:48        o2: direct index for structure (layout(offset=56 ) uniform 2-component vector of int)
0:48          '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:48          Constant:
0:48            5 (const uint)
0:49      textureFetchOffset (temp 4-component vector of uint)
0:49        'g_tTex2dmsu4a' (uniform utexture2DMSArray)
0:49        c3: direct index for structure (layout(offset=16 ) uniform 3-component vector of int)
0:49          '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:49          Constant:
0:49            2 (const uint)
0:49        Constant:
0:49          3 (const int)
0:49        o2: direct index for structure (layout(offset=56 ) uniform 2-component vector of int)
0:49          '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:49          Constant:
0:49            5 (const uint)
0:51      move second child to first child (temp 4-component vector of float)
0:51        Color: direct index for structure (temp 4-component vector of float)
0:51          'psout' (temp structure{temp 4-component vector of float Color, temp float Depth})
0:51          Constant:
0:51            0 (const int)
0:51        Constant:
0:51          1.000000
0:51          1.000000
0:51          1.000000
0:51          1.000000
0:52      move second child to first child (temp float)
0:52        Depth: direct index for structure (temp float)
0:52          'psout' (temp structure{temp 4-component vector of float Color, temp float Depth})
0:52          Constant:
0:52            1 (const int)
0:52        Constant:
0:52          1.000000
0:54      Sequence
0:54        Sequence
0:54          move second child to first child (temp 4-component vector of float)
0:?             'Color' (layout(location=0 ) out 4-component vector of float)
0:54            Color: direct index for structure (temp 4-component vector of float)
0:54              'psout' (temp structure{temp 4-component vector of float Color, temp float Depth})
0:54              Constant:
0:54                0 (const int)
0:54          move second child to first child (temp float)
0:?             'Depth' (out float FragDepth)
0:54            Depth: direct index for structure (temp float)
0:54              'psout' (temp structure{temp 4-component vector of float Color, temp float Depth})
0:54              Constant:
0:54                1 (const int)
0:54        Branch: Return
0:?   Linker Objects
0:?     'Color' (layout(location=0 ) out 4-component vector of float)
0:?     'Depth' (out float FragDepth)
0:?     'g_sSamp' (layout(binding=0 ) uniform sampler)
0:?     'g_tTex2dmsf4' (uniform texture2DMS)
0:?     'g_tTex2dmsi4' (uniform itexture2DMS)
0:?     'g_tTex2dmsu4' (uniform utexture2DMS)
0:?     'g_tTex2dmsf4a' (uniform texture2DMSArray)
0:?     'g_tTex2dmsi4a' (uniform itexture2DMSArray)
0:?     'g_tTex2dmsu4a' (uniform utexture2DMSArray)
0:?     'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4})


Linked fragment stage:


Shader version: 450
gl_FragCoord origin is upper left
0:? Sequence
0:28  Function Definition: main( (temp structure{temp 4-component vector of float Color, temp float Depth})
0:28    Function Parameters: 
0:?     Sequence
0:32      textureFetch (temp 4-component vector of float)
0:32        'g_tTex2dmsf4' (uniform texture2DMS)
0:32        c2: direct index for structure (layout(offset=8 ) uniform 2-component vector of int)
0:32          '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:32          Constant:
0:32            1 (const uint)
0:32        Constant:
0:32          3 (const int)
0:33      textureFetch (temp 4-component vector of int)
0:33        'g_tTex2dmsi4' (uniform itexture2DMS)
0:33        c2: direct index for structure (layout(offset=8 ) uniform 2-component vector of int)
0:33          '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:33          Constant:
0:33            1 (const uint)
0:33        Constant:
0:33          3 (const int)
0:34      textureFetch (temp 4-component vector of uint)
0:34        'g_tTex2dmsu4' (uniform utexture2DMS)
0:34        c2: direct index for structure (layout(offset=8 ) uniform 2-component vector of int)
0:34          '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:34          Constant:
0:34            1 (const uint)
0:34        Constant:
0:34          3 (const int)
0:37      textureFetchOffset (temp 4-component vector of float)
0:37        'g_tTex2dmsf4' (uniform texture2DMS)
0:37        c2: direct index for structure (layout(offset=8 ) uniform 2-component vector of int)
0:37          '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:37          Constant:
0:37            1 (const uint)
0:37        Constant:
0:37          3 (const int)
0:37        o2: direct index for structure (layout(offset=56 ) uniform 2-component vector of int)
0:37          '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:37          Constant:
0:37            5 (const uint)
0:38      textureFetchOffset (temp 4-component vector of int)
0:38        'g_tTex2dmsi4' (uniform itexture2DMS)
0:38        c2: direct index for structure (layout(offset=8 ) uniform 2-component vector of int)
0:38          '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:38          Constant:
0:38            1 (const uint)
0:38        Constant:
0:38          3 (const int)
0:38        o2: direct index for structure (layout(offset=56 ) uniform 2-component vector of int)
0:38          '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:38          Constant:
0:38            5 (const uint)
0:39      textureFetchOffset (temp 4-component vector of uint)
0:39        'g_tTex2dmsu4' (uniform utexture2DMS)
0:39        c2: direct index for structure (layout(offset=8 ) uniform 2-component vector of int)
0:39          '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:39          Constant:
0:39            1 (const uint)
0:39        Constant:
0:39          3 (const int)
0:39        o2: direct index for structure (layout(offset=56 ) uniform 2-component vector of int)
0:39          '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:39          Constant:
0:39            5 (const uint)
0:42      textureFetch (temp 4-component vector of float)
0:42        'g_tTex2dmsf4a' (uniform texture2DMSArray)
0:42        c3: direct index for structure (layout(offset=16 ) uniform 3-component vector of int)
0:42          '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:42          Constant:
0:42            2 (const uint)
0:42        Constant:
0:42          3 (const int)
0:43      textureFetch (temp 4-component vector of int)
0:43        'g_tTex2dmsi4a' (uniform itexture2DMSArray)
0:43        c3: direct index for structure (layout(offset=16 ) uniform 3-component vector of int)
0:43          '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:43          Constant:
0:43            2 (const uint)
0:43        Constant:
0:43          3 (const int)
0:44      textureFetch (temp 4-component vector of uint)
0:44        'g_tTex2dmsu4a' (uniform utexture2DMSArray)
0:44        c3: direct index for structure (layout(offset=16 ) uniform 3-component vector of int)
0:44          '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:44          Constant:
0:44            2 (const uint)
0:44        Constant:
0:44          3 (const int)
0:47      textureFetchOffset (temp 4-component vector of float)
0:47        'g_tTex2dmsf4a' (uniform texture2DMSArray)
0:47        c3: direct index for structure (layout(offset=16 ) uniform 3-component vector of int)
0:47          '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:47          Constant:
0:47            2 (const uint)
0:47        Constant:
0:47          3 (const int)
0:47        o2: direct index for structure (layout(offset=56 ) uniform 2-component vector of int)
0:47          '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:47          Constant:
0:47            5 (const uint)
0:48      textureFetchOffset (temp 4-component vector of int)
0:48        'g_tTex2dmsi4a' (uniform itexture2DMSArray)
0:48        c3: direct index for structure (layout(offset=16 ) uniform 3-component vector of int)
0:48          '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:48          Constant:
0:48            2 (const uint)
0:48        Constant:
0:48          3 (const int)
0:48        o2: direct index for structure (layout(offset=56 ) uniform 2-component vector of int)
0:48          '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:48          Constant:
0:48            5 (const uint)
0:49      textureFetchOffset (temp 4-component vector of uint)
0:49        'g_tTex2dmsu4a' (uniform utexture2DMSArray)
0:49        c3: direct index for structure (layout(offset=16 ) uniform 3-component vector of int)
0:49          '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:49          Constant:
0:49            2 (const uint)
0:49        Constant:
0:49          3 (const int)
0:49        o2: direct index for structure (layout(offset=56 ) uniform 2-component vector of int)
0:49          '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:49          Constant:
0:49            5 (const uint)
0:51      move second child to first child (temp 4-component vector of float)
0:51        Color: direct index for structure (temp 4-component vector of float)
0:51          'psout' (temp structure{temp 4-component vector of float Color, temp float Depth})
0:51          Constant:
0:51            0 (const int)
0:51        Constant:
0:51          1.000000
0:51          1.000000
0:51          1.000000
0:51          1.000000
0:52      move second child to first child (temp float)
0:52        Depth: direct index for structure (temp float)
0:52          'psout' (temp structure{temp 4-component vector of float Color, temp float Depth})
0:52          Constant:
0:52            1 (const int)
0:52        Constant:
0:52          1.000000
0:54      Sequence
0:54        Sequence
0:54          move second child to first child (temp 4-component vector of float)
0:?             'Color' (layout(location=0 ) out 4-component vector of float)
0:54            Color: direct index for structure (temp 4-component vector of float)
0:54              'psout' (temp structure{temp 4-component vector of float Color, temp float Depth})
0:54              Constant:
0:54                0 (const int)
0:54          move second child to first child (temp float)
0:?             'Depth' (out float FragDepth)
0:54            Depth: direct index for structure (temp float)
0:54              'psout' (temp structure{temp 4-component vector of float Color, temp float Depth})
0:54              Constant:
0:54                1 (const int)
0:54        Branch: Return
0:?   Linker Objects
0:?     'Color' (layout(location=0 ) out 4-component vector of float)
0:?     'Depth' (out float FragDepth)
0:?     'g_sSamp' (layout(binding=0 ) uniform sampler)
0:?     'g_tTex2dmsf4' (uniform texture2DMS)
0:?     'g_tTex2dmsi4' (uniform itexture2DMS)
0:?     'g_tTex2dmsu4' (uniform utexture2DMS)
0:?     'g_tTex2dmsf4a' (uniform texture2DMSArray)
0:?     'g_tTex2dmsi4a' (uniform itexture2DMSArray)
0:?     'g_tTex2dmsu4a' (uniform utexture2DMSArray)
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 123

                              Capability Shader
                              Capability ImageGatherExtended
                              Capability ImageMSArray
               1:             ExtInstImport  "GLSL.std.450"
                              MemoryModel Logical GLSL450
                              EntryPoint Fragment 4  "main" 112 116
                              ExecutionMode 4 OriginUpperLeft
                              Name 4  "main"
                              Name 9  "g_tTex2dmsf4"
                              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 27  "g_tTex2dmsi4"
                              Name 35  "g_tTex2dmsu4"
                              Name 62  "g_tTex2dmsf4a"
                              Name 71  "g_tTex2dmsi4a"
                              Name 78  "g_tTex2dmsu4a"
                              Name 101  "PS_OUTPUT"
                              MemberName 101(PS_OUTPUT) 0  "Color"
                              MemberName 101(PS_OUTPUT) 1  "Depth"
                              Name 103  "psout"
                              Name 112  "Color"
                              Name 116  "Depth"
                              Name 122  "g_sSamp"
                              Decorate 9(g_tTex2dmsf4) 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 27(g_tTex2dmsi4) DescriptorSet 0
                              Decorate 35(g_tTex2dmsu4) DescriptorSet 0
                              Decorate 62(g_tTex2dmsf4a) DescriptorSet 0
                              Decorate 71(g_tTex2dmsi4a) DescriptorSet 0
                              Decorate 78(g_tTex2dmsu4a) DescriptorSet 0
                              Decorate 112(Color) Location 0
                              Decorate 116(Depth) BuiltIn FragDepth
                              Decorate 122(g_sSamp) DescriptorSet 0
                              Decorate 122(g_sSamp) Binding 0
               2:             TypeVoid
               3:             TypeFunction 2
               6:             TypeFloat 32
               7:             TypeImage 6(float) 2D multi-sampled sampled format:Unknown
               8:             TypePointer UniformConstant 7
 9(g_tTex2dmsf4):      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:             TypePointer Uniform 12(ivec2)
              22:     11(int) Constant 3
              23:             TypeVector 6(float) 4
              25:             TypeImage 11(int) 2D multi-sampled sampled format:Unknown
              26:             TypePointer UniformConstant 25
27(g_tTex2dmsi4):     26(ptr) Variable UniformConstant
              32:             TypeInt 32 0
              33:             TypeImage 32(int) 2D multi-sampled sampled format:Unknown
              34:             TypePointer UniformConstant 33
35(g_tTex2dmsu4):     34(ptr) Variable UniformConstant
              39:             TypeVector 32(int) 4
              44:     11(int) Constant 5
              60:             TypeImage 6(float) 2D array multi-sampled sampled format:Unknown
              61:             TypePointer UniformConstant 60
62(g_tTex2dmsf4a):     61(ptr) Variable UniformConstant
              64:     11(int) Constant 2
              65:             TypePointer Uniform 13(ivec3)
              69:             TypeImage 11(int) 2D array multi-sampled sampled format:Unknown
              70:             TypePointer UniformConstant 69
71(g_tTex2dmsi4a):     70(ptr) Variable UniformConstant
              76:             TypeImage 32(int) 2D array multi-sampled sampled format:Unknown
              77:             TypePointer UniformConstant 76
78(g_tTex2dmsu4a):     77(ptr) Variable UniformConstant
  101(PS_OUTPUT):             TypeStruct 23(fvec4) 6(float)
             102:             TypePointer Function 101(PS_OUTPUT)
             104:     11(int) Constant 0
             105:    6(float) Constant 1065353216
             106:   23(fvec4) ConstantComposite 105 105 105 105
             107:             TypePointer Function 23(fvec4)
             109:             TypePointer Function 6(float)
             111:             TypePointer Output 23(fvec4)
      112(Color):    111(ptr) Variable Output
             115:             TypePointer Output 6(float)
      116(Depth):    115(ptr) Variable Output
             120:             TypeSampler
             121:             TypePointer UniformConstant 120
    122(g_sSamp):    121(ptr) Variable UniformConstant
         4(main):           2 Function None 3
               5:             Label
      103(psout):    102(ptr) Variable Function
              10:           7 Load 9(g_tTex2dmsf4)
              20:     19(ptr) AccessChain 17 18
              21:   12(ivec2) Load 20
              24:   23(fvec4) ImageFetch 10 21 Sample 22
              28:          25 Load 27(g_tTex2dmsi4)
              29:     19(ptr) AccessChain 17 18
              30:   12(ivec2) Load 29
              31:   14(ivec4) ImageFetch 28 30 Sample 22
              36:          33 Load 35(g_tTex2dmsu4)
              37:     19(ptr) AccessChain 17 18
              38:   12(ivec2) Load 37
              40:   39(ivec4) ImageFetch 36 38 Sample 22
              41:           7 Load 9(g_tTex2dmsf4)
              42:     19(ptr) AccessChain 17 18
              43:   12(ivec2) Load 42
              45:     19(ptr) AccessChain 17 44
              46:   12(ivec2) Load 45
              47:   23(fvec4) ImageFetch 41 43 Offset Sample 46 22
              48:          25 Load 27(g_tTex2dmsi4)
              49:     19(ptr) AccessChain 17 18
              50:   12(ivec2) Load 49
              51:     19(ptr) AccessChain 17 44
              52:   12(ivec2) Load 51
              53:   14(ivec4) ImageFetch 48 50 Offset Sample 52 22
              54:          33 Load 35(g_tTex2dmsu4)
              55:     19(ptr) AccessChain 17 18
              56:   12(ivec2) Load 55
              57:     19(ptr) AccessChain 17 44
              58:   12(ivec2) Load 57
              59:   39(ivec4) ImageFetch 54 56 Offset Sample 58 22
              63:          60 Load 62(g_tTex2dmsf4a)
              66:     65(ptr) AccessChain 17 64
              67:   13(ivec3) Load 66
              68:   23(fvec4) ImageFetch 63 67 Sample 22
              72:          69 Load 71(g_tTex2dmsi4a)
              73:     65(ptr) AccessChain 17 64
              74:   13(ivec3) Load 73
              75:   14(ivec4) ImageFetch 72 74 Sample 22
              79:          76 Load 78(g_tTex2dmsu4a)
              80:     65(ptr) AccessChain 17 64
              81:   13(ivec3) Load 80
              82:   39(ivec4) ImageFetch 79 81 Sample 22
              83:          60 Load 62(g_tTex2dmsf4a)
              84:     65(ptr) AccessChain 17 64
              85:   13(ivec3) Load 84
              86:     19(ptr) AccessChain 17 44
              87:   12(ivec2) Load 86
              88:   23(fvec4) ImageFetch 83 85 Offset Sample 87 22
              89:          69 Load 71(g_tTex2dmsi4a)
              90:     65(ptr) AccessChain 17 64
              91:   13(ivec3) Load 90
              92:     19(ptr) AccessChain 17 44
              93:   12(ivec2) Load 92
              94:   14(ivec4) ImageFetch 89 91 Offset Sample 93 22
              95:          76 Load 78(g_tTex2dmsu4a)
              96:     65(ptr) AccessChain 17 64
              97:   13(ivec3) Load 96
              98:     19(ptr) AccessChain 17 44
              99:   12(ivec2) Load 98
             100:   39(ivec4) ImageFetch 95 97 Offset Sample 99 22
             108:    107(ptr) AccessChain 103(psout) 104
                              Store 108 106
             110:    109(ptr) AccessChain 103(psout) 18
                              Store 110 105
             113:    107(ptr) AccessChain 103(psout) 104
             114:   23(fvec4) Load 113
                              Store 112(Color) 114
             117:    109(ptr) AccessChain 103(psout) 18
             118:    6(float) Load 117
                              Store 116(Depth) 118
                              Return
                              FunctionEnd
