hlsl.gathercmpRGBA.offset.dx10.frag
Shader version: 500
gl_FragCoord origin is upper left
0:? Sequence
0:38  Function Definition: @main( ( temp structure{ temp 4-component vector of float Color,  temp float Depth})
0:38    Function Parameters: 
0:?     Sequence
0:45      Sequence
0:45        move second child to first child ( temp 4-component vector of float)
0:45          'txval001' ( temp 4-component vector of float)
0:45          textureGatherOffset ( temp 4-component vector of float)
0:45            Construct combined texture-sampler ( temp sampler2DShadow)
0:45              'g_tTex2df4' ( uniform texture2D)
0:45              'g_sSampCmp' (layout( binding=0) uniform sampler)
0:45            c2: direct index for structure ( uniform 2-component vector of float)
0:45              'anon@0' (layout( row_major std140) uniform block{ uniform float c1,  uniform 2-component vector of float c2,  uniform 3-component vector of float c3,  uniform 4-component vector of float c4})
0:45              Constant:
0:45                1 (const uint)
0:45            Constant:
0:45              0.750000
0:?             Constant:
0:?               1 (const int)
0:?               0 (const int)
0:46      Sequence
0:46        move second child to first child ( temp 4-component vector of int)
0:46          'txval011' ( temp 4-component vector of int)
0:46          textureGatherOffset ( temp 4-component vector of int)
0:46            Construct combined texture-sampler ( temp isampler2DShadow)
0:46              'g_tTex2di4' ( uniform itexture2D)
0:46              'g_sSampCmp' (layout( binding=0) uniform sampler)
0:46            c2: direct index for structure ( uniform 2-component vector of float)
0:46              'anon@0' (layout( row_major std140) uniform block{ uniform float c1,  uniform 2-component vector of float c2,  uniform 3-component vector of float c3,  uniform 4-component vector of float c4})
0:46              Constant:
0:46                1 (const uint)
0:46            Constant:
0:46              0.750000
0:?             Constant:
0:?               1 (const int)
0:?               -1 (const int)
0:47      Sequence
0:47        move second child to first child ( temp 4-component vector of uint)
0:47          'txval021' ( temp 4-component vector of uint)
0:47          textureGatherOffset ( temp 4-component vector of uint)
0:47            Construct combined texture-sampler ( temp usampler2DShadow)
0:47              'g_tTex2du4' ( uniform utexture2D)
0:47              'g_sSampCmp' (layout( binding=0) uniform sampler)
0:47            c2: direct index for structure ( uniform 2-component vector of float)
0:47              'anon@0' (layout( row_major std140) uniform block{ uniform float c1,  uniform 2-component vector of float c2,  uniform 3-component vector of float c3,  uniform 4-component vector of float c4})
0:47              Constant:
0:47                1 (const uint)
0:47            Constant:
0:47              0.750000
0:?             Constant:
0:?               1 (const int)
0:?               1 (const int)
0:49      Sequence
0:49        move second child to first child ( temp 4-component vector of float)
0:49          'txval004' ( temp 4-component vector of float)
0:49          textureGatherOffsets ( temp 4-component vector of float)
0:49            Construct combined texture-sampler ( temp sampler2DShadow)
0:49              'g_tTex2df4' ( uniform texture2D)
0:49              'g_sSampCmp' (layout( binding=0) uniform sampler)
0:49            c2: direct index for structure ( uniform 2-component vector of float)
0:49              'anon@0' (layout( row_major std140) uniform block{ uniform float c1,  uniform 2-component vector of float c2,  uniform 3-component vector of float c3,  uniform 4-component vector of float c4})
0:49              Constant:
0:49                1 (const uint)
0:49            Constant:
0:49              0.750000
0:49            Constant:
0:49              1 (const int)
0:49              0 (const int)
0:49              1 (const int)
0:49              0 (const int)
0:49              1 (const int)
0:49              0 (const int)
0:49              1 (const int)
0:49              0 (const int)
0:50      Sequence
0:50        move second child to first child ( temp 4-component vector of int)
0:50          'txval014' ( temp 4-component vector of int)
0:50          textureGatherOffsets ( temp 4-component vector of int)
0:50            Construct combined texture-sampler ( temp isampler2DShadow)
0:50              'g_tTex2di4' ( uniform itexture2D)
0:50              'g_sSampCmp' (layout( binding=0) uniform sampler)
0:50            c2: direct index for structure ( uniform 2-component vector of float)
0:50              'anon@0' (layout( row_major std140) uniform block{ uniform float c1,  uniform 2-component vector of float c2,  uniform 3-component vector of float c3,  uniform 4-component vector of float c4})
0:50              Constant:
0:50                1 (const uint)
0:50            Constant:
0:50              0.750000
0:50            Constant:
0:50              1 (const int)
0:50              -1 (const int)
0:50              1 (const int)
0:50              -1 (const int)
0:50              1 (const int)
0:50              -1 (const int)
0:50              1 (const int)
0:50              -1 (const int)
0:51      Sequence
0:51        move second child to first child ( temp 4-component vector of uint)
0:51          'txval024' ( temp 4-component vector of uint)
0:51          textureGatherOffsets ( temp 4-component vector of uint)
0:51            Construct combined texture-sampler ( temp usampler2DShadow)
0:51              'g_tTex2du4' ( uniform utexture2D)
0:51              'g_sSampCmp' (layout( binding=0) uniform sampler)
0:51            c2: direct index for structure ( uniform 2-component vector of float)
0:51              'anon@0' (layout( row_major std140) uniform block{ uniform float c1,  uniform 2-component vector of float c2,  uniform 3-component vector of float c3,  uniform 4-component vector of float c4})
0:51              Constant:
0:51                1 (const uint)
0:51            Constant:
0:51              0.750000
0:51            Constant:
0:51              1 (const int)
0:51              1 (const int)
0:51              1 (const int)
0:51              1 (const int)
0:51              1 (const int)
0:51              1 (const int)
0:51              1 (const int)
0:51              1 (const int)
0:53      Sequence
0:53        move second child to first child ( temp 4-component vector of float)
0:53          'txval401' ( temp 4-component vector of float)
0:53          textureGatherOffset ( temp 4-component vector of float)
0:53            Construct combined texture-sampler ( temp sampler2DShadow)
0:53              'g_tTex2df4' ( uniform texture2D)
0:53              'g_sSampCmp' (layout( binding=0) uniform sampler)
0:53            c2: direct index for structure ( uniform 2-component vector of float)
0:53              'anon@0' (layout( row_major std140) uniform block{ uniform float c1,  uniform 2-component vector of float c2,  uniform 3-component vector of float c3,  uniform 4-component vector of float c4})
0:53              Constant:
0:53                1 (const uint)
0:53            Constant:
0:53              0.750000
0:?             Constant:
0:?               1 (const int)
0:?               0 (const int)
0:54      Sequence
0:54        move second child to first child ( temp 4-component vector of int)
0:54          'txval411' ( temp 4-component vector of int)
0:54          textureGatherOffset ( temp 4-component vector of int)
0:54            Construct combined texture-sampler ( temp isampler2DShadow)
0:54              'g_tTex2di4' ( uniform itexture2D)
0:54              'g_sSampCmp' (layout( binding=0) uniform sampler)
0:54            c2: direct index for structure ( uniform 2-component vector of float)
0:54              'anon@0' (layout( row_major std140) uniform block{ uniform float c1,  uniform 2-component vector of float c2,  uniform 3-component vector of float c3,  uniform 4-component vector of float c4})
0:54              Constant:
0:54                1 (const uint)
0:54            Constant:
0:54              0.750000
0:?             Constant:
0:?               1 (const int)
0:?               -1 (const int)
0:55      Sequence
0:55        move second child to first child ( temp 4-component vector of uint)
0:55          'txval421' ( temp 4-component vector of uint)
0:55          textureGatherOffset ( temp 4-component vector of uint)
0:55            Construct combined texture-sampler ( temp usampler2DShadow)
0:55              'g_tTex2du4' ( uniform utexture2D)
0:55              'g_sSampCmp' (layout( binding=0) uniform sampler)
0:55            c2: direct index for structure ( uniform 2-component vector of float)
0:55              'anon@0' (layout( row_major std140) uniform block{ uniform float c1,  uniform 2-component vector of float c2,  uniform 3-component vector of float c3,  uniform 4-component vector of float c4})
0:55              Constant:
0:55                1 (const uint)
0:55            Constant:
0:55              0.750000
0:?             Constant:
0:?               1 (const int)
0:?               1 (const int)
0:110      move second child to first child ( temp 4-component vector of float)
0:110        Color: direct index for structure ( temp 4-component vector of float)
0:110          'psout' ( temp structure{ temp 4-component vector of float Color,  temp float Depth})
0:110          Constant:
0:110            0 (const int)
0:110        Constant:
0:110          1.000000
0:110          1.000000
0:110          1.000000
0:110          1.000000
0:111      move second child to first child ( temp float)
0:111        Depth: direct index for structure ( temp float)
0:111          'psout' ( temp structure{ temp 4-component vector of float Color,  temp float Depth})
0:111          Constant:
0:111            1 (const int)
0:111        Constant:
0:111          1.000000
0:113      Branch: Return with expression
0:113        'psout' ( temp structure{ temp 4-component vector of float Color,  temp float Depth})
0:38  Function Definition: main( ( temp void)
0:38    Function Parameters: 
0:?     Sequence
0:38      Sequence
0:38        move second child to first child ( temp structure{ temp 4-component vector of float Color,  temp float Depth})
0:38          'flattenTemp' ( temp structure{ temp 4-component vector of float Color,  temp float Depth})
0:38          Function Call: @main( ( temp structure{ temp 4-component vector of float Color,  temp float Depth})
0:38        move second child to first child ( temp 4-component vector of float)
0:?           '@entryPointOutput.Color' (layout( location=0) out 4-component vector of float)
0:38          Color: direct index for structure ( temp 4-component vector of float)
0:38            'flattenTemp' ( temp structure{ temp 4-component vector of float Color,  temp float Depth})
0:38            Constant:
0:38              0 (const int)
0:38        move second child to first child ( temp float)
0:?           '@entryPointOutput.Depth' ( out float FragDepth)
0:38          Depth: direct index for structure ( temp float)
0:38            'flattenTemp' ( temp structure{ temp 4-component vector of float Color,  temp float Depth})
0:38            Constant:
0:38              1 (const int)
0:?   Linker Objects
0:?     'g_sSampCmp' (layout( binding=0) uniform sampler)
0:?     'g_tTex1df4a' (layout( binding=1) uniform texture1D)
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:?     'anon@0' (layout( row_major std140) uniform block{ uniform float c1,  uniform 2-component vector of float c2,  uniform 3-component vector of float c3,  uniform 4-component vector of float c4})
0:?     '@entryPointOutput.Depth' ( out float FragDepth)
0:?     '@entryPointOutput.Color' (layout( location=0) out 4-component vector of float)


Linked fragment stage:


Shader version: 500
gl_FragCoord origin is upper left
0:? Sequence
0:38  Function Definition: @main( ( temp structure{ temp 4-component vector of float Color,  temp float Depth})
0:38    Function Parameters: 
0:?     Sequence
0:45      Sequence
0:45        move second child to first child ( temp 4-component vector of float)
0:45          'txval001' ( temp 4-component vector of float)
0:45          textureGatherOffset ( temp 4-component vector of float)
0:45            Construct combined texture-sampler ( temp sampler2DShadow)
0:45              'g_tTex2df4' ( uniform texture2D)
0:45              'g_sSampCmp' (layout( binding=0) uniform sampler)
0:45            c2: direct index for structure ( uniform 2-component vector of float)
0:45              'anon@0' (layout( row_major std140) uniform block{ uniform float c1,  uniform 2-component vector of float c2,  uniform 3-component vector of float c3,  uniform 4-component vector of float c4})
0:45              Constant:
0:45                1 (const uint)
0:45            Constant:
0:45              0.750000
0:?             Constant:
0:?               1 (const int)
0:?               0 (const int)
0:46      Sequence
0:46        move second child to first child ( temp 4-component vector of int)
0:46          'txval011' ( temp 4-component vector of int)
0:46          textureGatherOffset ( temp 4-component vector of int)
0:46            Construct combined texture-sampler ( temp isampler2DShadow)
0:46              'g_tTex2di4' ( uniform itexture2D)
0:46              'g_sSampCmp' (layout( binding=0) uniform sampler)
0:46            c2: direct index for structure ( uniform 2-component vector of float)
0:46              'anon@0' (layout( row_major std140) uniform block{ uniform float c1,  uniform 2-component vector of float c2,  uniform 3-component vector of float c3,  uniform 4-component vector of float c4})
0:46              Constant:
0:46                1 (const uint)
0:46            Constant:
0:46              0.750000
0:?             Constant:
0:?               1 (const int)
0:?               -1 (const int)
0:47      Sequence
0:47        move second child to first child ( temp 4-component vector of uint)
0:47          'txval021' ( temp 4-component vector of uint)
0:47          textureGatherOffset ( temp 4-component vector of uint)
0:47            Construct combined texture-sampler ( temp usampler2DShadow)
0:47              'g_tTex2du4' ( uniform utexture2D)
0:47              'g_sSampCmp' (layout( binding=0) uniform sampler)
0:47            c2: direct index for structure ( uniform 2-component vector of float)
0:47              'anon@0' (layout( row_major std140) uniform block{ uniform float c1,  uniform 2-component vector of float c2,  uniform 3-component vector of float c3,  uniform 4-component vector of float c4})
0:47              Constant:
0:47                1 (const uint)
0:47            Constant:
0:47              0.750000
0:?             Constant:
0:?               1 (const int)
0:?               1 (const int)
0:49      Sequence
0:49        move second child to first child ( temp 4-component vector of float)
0:49          'txval004' ( temp 4-component vector of float)
0:49          textureGatherOffsets ( temp 4-component vector of float)
0:49            Construct combined texture-sampler ( temp sampler2DShadow)
0:49              'g_tTex2df4' ( uniform texture2D)
0:49              'g_sSampCmp' (layout( binding=0) uniform sampler)
0:49            c2: direct index for structure ( uniform 2-component vector of float)
0:49              'anon@0' (layout( row_major std140) uniform block{ uniform float c1,  uniform 2-component vector of float c2,  uniform 3-component vector of float c3,  uniform 4-component vector of float c4})
0:49              Constant:
0:49                1 (const uint)
0:49            Constant:
0:49              0.750000
0:49            Constant:
0:49              1 (const int)
0:49              0 (const int)
0:49              1 (const int)
0:49              0 (const int)
0:49              1 (const int)
0:49              0 (const int)
0:49              1 (const int)
0:49              0 (const int)
0:50      Sequence
0:50        move second child to first child ( temp 4-component vector of int)
0:50          'txval014' ( temp 4-component vector of int)
0:50          textureGatherOffsets ( temp 4-component vector of int)
0:50            Construct combined texture-sampler ( temp isampler2DShadow)
0:50              'g_tTex2di4' ( uniform itexture2D)
0:50              'g_sSampCmp' (layout( binding=0) uniform sampler)
0:50            c2: direct index for structure ( uniform 2-component vector of float)
0:50              'anon@0' (layout( row_major std140) uniform block{ uniform float c1,  uniform 2-component vector of float c2,  uniform 3-component vector of float c3,  uniform 4-component vector of float c4})
0:50              Constant:
0:50                1 (const uint)
0:50            Constant:
0:50              0.750000
0:50            Constant:
0:50              1 (const int)
0:50              -1 (const int)
0:50              1 (const int)
0:50              -1 (const int)
0:50              1 (const int)
0:50              -1 (const int)
0:50              1 (const int)
0:50              -1 (const int)
0:51      Sequence
0:51        move second child to first child ( temp 4-component vector of uint)
0:51          'txval024' ( temp 4-component vector of uint)
0:51          textureGatherOffsets ( temp 4-component vector of uint)
0:51            Construct combined texture-sampler ( temp usampler2DShadow)
0:51              'g_tTex2du4' ( uniform utexture2D)
0:51              'g_sSampCmp' (layout( binding=0) uniform sampler)
0:51            c2: direct index for structure ( uniform 2-component vector of float)
0:51              'anon@0' (layout( row_major std140) uniform block{ uniform float c1,  uniform 2-component vector of float c2,  uniform 3-component vector of float c3,  uniform 4-component vector of float c4})
0:51              Constant:
0:51                1 (const uint)
0:51            Constant:
0:51              0.750000
0:51            Constant:
0:51              1 (const int)
0:51              1 (const int)
0:51              1 (const int)
0:51              1 (const int)
0:51              1 (const int)
0:51              1 (const int)
0:51              1 (const int)
0:51              1 (const int)
0:53      Sequence
0:53        move second child to first child ( temp 4-component vector of float)
0:53          'txval401' ( temp 4-component vector of float)
0:53          textureGatherOffset ( temp 4-component vector of float)
0:53            Construct combined texture-sampler ( temp sampler2DShadow)
0:53              'g_tTex2df4' ( uniform texture2D)
0:53              'g_sSampCmp' (layout( binding=0) uniform sampler)
0:53            c2: direct index for structure ( uniform 2-component vector of float)
0:53              'anon@0' (layout( row_major std140) uniform block{ uniform float c1,  uniform 2-component vector of float c2,  uniform 3-component vector of float c3,  uniform 4-component vector of float c4})
0:53              Constant:
0:53                1 (const uint)
0:53            Constant:
0:53              0.750000
0:?             Constant:
0:?               1 (const int)
0:?               0 (const int)
0:54      Sequence
0:54        move second child to first child ( temp 4-component vector of int)
0:54          'txval411' ( temp 4-component vector of int)
0:54          textureGatherOffset ( temp 4-component vector of int)
0:54            Construct combined texture-sampler ( temp isampler2DShadow)
0:54              'g_tTex2di4' ( uniform itexture2D)
0:54              'g_sSampCmp' (layout( binding=0) uniform sampler)
0:54            c2: direct index for structure ( uniform 2-component vector of float)
0:54              'anon@0' (layout( row_major std140) uniform block{ uniform float c1,  uniform 2-component vector of float c2,  uniform 3-component vector of float c3,  uniform 4-component vector of float c4})
0:54              Constant:
0:54                1 (const uint)
0:54            Constant:
0:54              0.750000
0:?             Constant:
0:?               1 (const int)
0:?               -1 (const int)
0:55      Sequence
0:55        move second child to first child ( temp 4-component vector of uint)
0:55          'txval421' ( temp 4-component vector of uint)
0:55          textureGatherOffset ( temp 4-component vector of uint)
0:55            Construct combined texture-sampler ( temp usampler2DShadow)
0:55              'g_tTex2du4' ( uniform utexture2D)
0:55              'g_sSampCmp' (layout( binding=0) uniform sampler)
0:55            c2: direct index for structure ( uniform 2-component vector of float)
0:55              'anon@0' (layout( row_major std140) uniform block{ uniform float c1,  uniform 2-component vector of float c2,  uniform 3-component vector of float c3,  uniform 4-component vector of float c4})
0:55              Constant:
0:55                1 (const uint)
0:55            Constant:
0:55              0.750000
0:?             Constant:
0:?               1 (const int)
0:?               1 (const int)
0:110      move second child to first child ( temp 4-component vector of float)
0:110        Color: direct index for structure ( temp 4-component vector of float)
0:110          'psout' ( temp structure{ temp 4-component vector of float Color,  temp float Depth})
0:110          Constant:
0:110            0 (const int)
0:110        Constant:
0:110          1.000000
0:110          1.000000
0:110          1.000000
0:110          1.000000
0:111      move second child to first child ( temp float)
0:111        Depth: direct index for structure ( temp float)
0:111          'psout' ( temp structure{ temp 4-component vector of float Color,  temp float Depth})
0:111          Constant:
0:111            1 (const int)
0:111        Constant:
0:111          1.000000
0:113      Branch: Return with expression
0:113        'psout' ( temp structure{ temp 4-component vector of float Color,  temp float Depth})
0:38  Function Definition: main( ( temp void)
0:38    Function Parameters: 
0:?     Sequence
0:38      Sequence
0:38        move second child to first child ( temp structure{ temp 4-component vector of float Color,  temp float Depth})
0:38          'flattenTemp' ( temp structure{ temp 4-component vector of float Color,  temp float Depth})
0:38          Function Call: @main( ( temp structure{ temp 4-component vector of float Color,  temp float Depth})
0:38        move second child to first child ( temp 4-component vector of float)
0:?           '@entryPointOutput.Color' (layout( location=0) out 4-component vector of float)
0:38          Color: direct index for structure ( temp 4-component vector of float)
0:38            'flattenTemp' ( temp structure{ temp 4-component vector of float Color,  temp float Depth})
0:38            Constant:
0:38              0 (const int)
0:38        move second child to first child ( temp float)
0:?           '@entryPointOutput.Depth' ( out float FragDepth)
0:38          Depth: direct index for structure ( temp float)
0:38            'flattenTemp' ( temp structure{ temp 4-component vector of float Color,  temp float Depth})
0:38            Constant:
0:38              1 (const int)
0:?   Linker Objects
0:?     'g_sSampCmp' (layout( binding=0) uniform sampler)
0:?     'g_tTex1df4a' (layout( binding=1) uniform texture1D)
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:?     'anon@0' (layout( row_major std140) uniform block{ uniform float c1,  uniform 2-component vector of float c2,  uniform 3-component vector of float c3,  uniform 4-component vector of float c4})
0:?     '@entryPointOutput.Depth' ( out float FragDepth)
0:?     '@entryPointOutput.Color' (layout( location=0) out 4-component vector of float)

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

                              Capability Shader
                              Capability Sampled1D
               1:             ExtInstImport  "GLSL.std.450"
                              MemoryModel Logical GLSL450
                              EntryPoint Fragment 4  "main" 132 136
                              ExecutionMode 4 OriginUpperLeft
                              Source HLSL 500
                              Name 4  "main"
                              Name 8  "PS_OUTPUT"
                              MemberName 8(PS_OUTPUT) 0  "Color"
                              MemberName 8(PS_OUTPUT) 1  "Depth"
                              Name 10  "@main("
                              Name 13  "txval001"
                              Name 16  "g_tTex2df4"
                              Name 20  "g_sSampCmp"
                              Name 27  "$Global"
                              MemberName 27($Global) 0  "c1"
                              MemberName 27($Global) 1  "c2"
                              MemberName 27($Global) 2  "c3"
                              MemberName 27($Global) 3  "c4"
                              Name 29  ""
                              Name 42  "txval011"
                              Name 45  "g_tTex2di4"
                              Name 59  "txval021"
                              Name 62  "g_tTex2du4"
                              Name 72  "txval004"
                              Name 82  "txval014"
                              Name 90  "txval024"
                              Name 98  "txval401"
                              Name 105  "txval411"
                              Name 112  "txval421"
                              Name 120  "psout"
                              Name 129  "flattenTemp"
                              Name 132  "@entryPointOutput.Color"
                              Name 136  "@entryPointOutput.Depth"
                              Name 141  "g_tTex1df4a"
                              Name 142  "g_tTex1df4"
                              Name 145  "g_tTex1di4"
                              Name 148  "g_tTex1du4"
                              Name 151  "g_tTex3df4"
                              Name 154  "g_tTex3di4"
                              Name 157  "g_tTex3du4"
                              Name 160  "g_tTexcdf4"
                              Name 163  "g_tTexcdi4"
                              Name 166  "g_tTexcdu4"
                              Decorate 16(g_tTex2df4) DescriptorSet 0
                              Decorate 20(g_sSampCmp) DescriptorSet 0
                              Decorate 20(g_sSampCmp) Binding 0
                              MemberDecorate 27($Global) 0 Offset 0
                              MemberDecorate 27($Global) 1 Offset 8
                              MemberDecorate 27($Global) 2 Offset 16
                              MemberDecorate 27($Global) 3 Offset 32
                              Decorate 27($Global) Block
                              Decorate 29 DescriptorSet 0
                              Decorate 45(g_tTex2di4) DescriptorSet 0
                              Decorate 62(g_tTex2du4) DescriptorSet 0
                              Decorate 132(@entryPointOutput.Color) Location 0
                              Decorate 136(@entryPointOutput.Depth) BuiltIn FragDepth
                              Decorate 141(g_tTex1df4a) DescriptorSet 0
                              Decorate 141(g_tTex1df4a) Binding 1
                              Decorate 142(g_tTex1df4) DescriptorSet 0
                              Decorate 142(g_tTex1df4) Binding 0
                              Decorate 145(g_tTex1di4) DescriptorSet 0
                              Decorate 148(g_tTex1du4) DescriptorSet 0
                              Decorate 151(g_tTex3df4) DescriptorSet 0
                              Decorate 154(g_tTex3di4) DescriptorSet 0
                              Decorate 157(g_tTex3du4) DescriptorSet 0
                              Decorate 160(g_tTexcdf4) DescriptorSet 0
                              Decorate 163(g_tTexcdi4) DescriptorSet 0
                              Decorate 166(g_tTexcdu4) DescriptorSet 0
               2:             TypeVoid
               3:             TypeFunction 2
               6:             TypeFloat 32
               7:             TypeVector 6(float) 4
    8(PS_OUTPUT):             TypeStruct 7(fvec4) 6(float)
               9:             TypeFunction 8(PS_OUTPUT)
              12:             TypePointer Function 7(fvec4)
              14:             TypeImage 6(float) 2D sampled format:Unknown
              15:             TypePointer UniformConstant 14
  16(g_tTex2df4):     15(ptr) Variable UniformConstant
              18:             TypeSampler
              19:             TypePointer UniformConstant 18
  20(g_sSampCmp):     19(ptr) Variable UniformConstant
              22:             TypeImage 6(float) 2D depth sampled format:Unknown
              23:             TypeSampledImage 22
              25:             TypeVector 6(float) 2
              26:             TypeVector 6(float) 3
     27($Global):             TypeStruct 6(float) 25(fvec2) 26(fvec3) 7(fvec4)
              28:             TypePointer Uniform 27($Global)
              29:     28(ptr) Variable Uniform
              30:             TypeInt 32 1
              31:     30(int) Constant 1
              32:             TypePointer Uniform 25(fvec2)
              35:    6(float) Constant 1061158912
              36:             TypeVector 30(int) 2
              37:     30(int) Constant 0
              38:   36(ivec2) ConstantComposite 31 37
              40:             TypeVector 30(int) 4
              41:             TypePointer Function 40(ivec4)
              43:             TypeImage 30(int) 2D sampled format:Unknown
              44:             TypePointer UniformConstant 43
  45(g_tTex2di4):     44(ptr) Variable UniformConstant
              48:             TypeImage 30(int) 2D depth sampled format:Unknown
              49:             TypeSampledImage 48
              53:     30(int) Constant 4294967295
              54:   36(ivec2) ConstantComposite 31 53
              56:             TypeInt 32 0
              57:             TypeVector 56(int) 4
              58:             TypePointer Function 57(ivec4)
              60:             TypeImage 56(int) 2D sampled format:Unknown
              61:             TypePointer UniformConstant 60
  62(g_tTex2du4):     61(ptr) Variable UniformConstant
              65:             TypeImage 56(int) 2D depth sampled format:Unknown
              66:             TypeSampledImage 65
              70:   36(ivec2) ConstantComposite 31 31
              78:     56(int) Constant 4
              79:             TypeArray 36(ivec2) 78
              80:          79 ConstantComposite 38 38 38 38
              88:          79 ConstantComposite 54 54 54 54
              96:          79 ConstantComposite 70 70 70 70
             119:             TypePointer Function 8(PS_OUTPUT)
             121:    6(float) Constant 1065353216
             122:    7(fvec4) ConstantComposite 121 121 121 121
             124:             TypePointer Function 6(float)
             131:             TypePointer Output 7(fvec4)
132(@entryPointOutput.Color):    131(ptr) Variable Output
             135:             TypePointer Output 6(float)
136(@entryPointOutput.Depth):    135(ptr) Variable Output
             139:             TypeImage 6(float) 1D sampled format:Unknown
             140:             TypePointer UniformConstant 139
141(g_tTex1df4a):    140(ptr) Variable UniformConstant
 142(g_tTex1df4):    140(ptr) Variable UniformConstant
             143:             TypeImage 30(int) 1D sampled format:Unknown
             144:             TypePointer UniformConstant 143
 145(g_tTex1di4):    144(ptr) Variable UniformConstant
             146:             TypeImage 56(int) 1D sampled format:Unknown
             147:             TypePointer UniformConstant 146
 148(g_tTex1du4):    147(ptr) Variable UniformConstant
             149:             TypeImage 6(float) 3D sampled format:Unknown
             150:             TypePointer UniformConstant 149
 151(g_tTex3df4):    150(ptr) Variable UniformConstant
             152:             TypeImage 30(int) 3D sampled format:Unknown
             153:             TypePointer UniformConstant 152
 154(g_tTex3di4):    153(ptr) Variable UniformConstant
             155:             TypeImage 56(int) 3D sampled format:Unknown
             156:             TypePointer UniformConstant 155
 157(g_tTex3du4):    156(ptr) Variable UniformConstant
             158:             TypeImage 6(float) Cube sampled format:Unknown
             159:             TypePointer UniformConstant 158
 160(g_tTexcdf4):    159(ptr) Variable UniformConstant
             161:             TypeImage 30(int) Cube sampled format:Unknown
             162:             TypePointer UniformConstant 161
 163(g_tTexcdi4):    162(ptr) Variable UniformConstant
             164:             TypeImage 56(int) Cube sampled format:Unknown
             165:             TypePointer UniformConstant 164
 166(g_tTexcdu4):    165(ptr) Variable UniformConstant
         4(main):           2 Function None 3
               5:             Label
129(flattenTemp):    119(ptr) Variable Function
             130:8(PS_OUTPUT) FunctionCall 10(@main()
                              Store 129(flattenTemp) 130
             133:     12(ptr) AccessChain 129(flattenTemp) 37
             134:    7(fvec4) Load 133
                              Store 132(@entryPointOutput.Color) 134
             137:    124(ptr) AccessChain 129(flattenTemp) 31
             138:    6(float) Load 137
                              Store 136(@entryPointOutput.Depth) 138
                              Return
                              FunctionEnd
      10(@main():8(PS_OUTPUT) Function None 9
              11:             Label
    13(txval001):     12(ptr) Variable Function
    42(txval011):     41(ptr) Variable Function
    59(txval021):     58(ptr) Variable Function
    72(txval004):     12(ptr) Variable Function
    82(txval014):     41(ptr) Variable Function
    90(txval024):     58(ptr) Variable Function
    98(txval401):     12(ptr) Variable Function
   105(txval411):     41(ptr) Variable Function
   112(txval421):     58(ptr) Variable Function
      120(psout):    119(ptr) Variable Function
              17:          14 Load 16(g_tTex2df4)
              21:          18 Load 20(g_sSampCmp)
              24:          23 SampledImage 17 21
              33:     32(ptr) AccessChain 29 31
              34:   25(fvec2) Load 33
              39:    7(fvec4) ImageDrefGather 24 34 35 ConstOffset 38
                              Store 13(txval001) 39
              46:          43 Load 45(g_tTex2di4)
              47:          18 Load 20(g_sSampCmp)
              50:          49 SampledImage 46 47
              51:     32(ptr) AccessChain 29 31
              52:   25(fvec2) Load 51
              55:   40(ivec4) ImageDrefGather 50 52 35 ConstOffset 54
                              Store 42(txval011) 55
              63:          60 Load 62(g_tTex2du4)
              64:          18 Load 20(g_sSampCmp)
              67:          66 SampledImage 63 64
              68:     32(ptr) AccessChain 29 31
              69:   25(fvec2) Load 68
              71:   57(ivec4) ImageDrefGather 67 69 35 ConstOffset 70
                              Store 59(txval021) 71
              73:          14 Load 16(g_tTex2df4)
              74:          18 Load 20(g_sSampCmp)
              75:          23 SampledImage 73 74
              76:     32(ptr) AccessChain 29 31
              77:   25(fvec2) Load 76
              81:    7(fvec4) ImageDrefGather 75 77 35 ConstOffsets 80
                              Store 72(txval004) 81
              83:          43 Load 45(g_tTex2di4)
              84:          18 Load 20(g_sSampCmp)
              85:          49 SampledImage 83 84
              86:     32(ptr) AccessChain 29 31
              87:   25(fvec2) Load 86
              89:   40(ivec4) ImageDrefGather 85 87 35 ConstOffsets 88
                              Store 82(txval014) 89
              91:          60 Load 62(g_tTex2du4)
              92:          18 Load 20(g_sSampCmp)
              93:          66 SampledImage 91 92
              94:     32(ptr) AccessChain 29 31
              95:   25(fvec2) Load 94
              97:   57(ivec4) ImageDrefGather 93 95 35 ConstOffsets 96
                              Store 90(txval024) 97
              99:          14 Load 16(g_tTex2df4)
             100:          18 Load 20(g_sSampCmp)
             101:          23 SampledImage 99 100
             102:     32(ptr) AccessChain 29 31
             103:   25(fvec2) Load 102
             104:    7(fvec4) ImageDrefGather 101 103 35 ConstOffset 38
                              Store 98(txval401) 104
             106:          43 Load 45(g_tTex2di4)
             107:          18 Load 20(g_sSampCmp)
             108:          49 SampledImage 106 107
             109:     32(ptr) AccessChain 29 31
             110:   25(fvec2) Load 109
             111:   40(ivec4) ImageDrefGather 108 110 35 ConstOffset 54
                              Store 105(txval411) 111
             113:          60 Load 62(g_tTex2du4)
             114:          18 Load 20(g_sSampCmp)
             115:          66 SampledImage 113 114
             116:     32(ptr) AccessChain 29 31
             117:   25(fvec2) Load 116
             118:   57(ivec4) ImageDrefGather 115 117 35 ConstOffset 70
                              Store 112(txval421) 118
             123:     12(ptr) AccessChain 120(psout) 37
                              Store 123 122
             125:    124(ptr) AccessChain 120(psout) 31
                              Store 125 121
             126:8(PS_OUTPUT) Load 120(psout)
                              ReturnValue 126
                              FunctionEnd
