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 texture2DShadow)
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 itexture2DShadow)
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 utexture2DShadow)
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 texture2DShadow)
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 itexture2DShadow)
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 utexture2DShadow)
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 texture2DShadow)
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 itexture2DShadow)
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 utexture2DShadow)
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 texture2DShadow)
0:?     'g_tTex2di4' ( uniform itexture2DShadow)
0:?     'g_tTex2du4' ( uniform utexture2DShadow)
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 texture2DShadow)
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 itexture2DShadow)
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 utexture2DShadow)
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 texture2DShadow)
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 itexture2DShadow)
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 utexture2DShadow)
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 texture2DShadow)
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 itexture2DShadow)
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 utexture2DShadow)
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 texture2DShadow)
0:?     'g_tTex2di4' ( uniform itexture2DShadow)
0:?     'g_tTex2du4' ( uniform utexture2DShadow)
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): 80005
// Id's are bound by 164

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