hlsl.sample.basic.dx10.frag
WARNING: 0:4: 'immediate sampler state' : unimplemented 

Shader version: 500
gl_FragCoord origin is upper left
using depth_any
0:? Sequence
0:53  Function Definition: @main( ( temp structure{ temp 4-component vector of float Color,  temp float Depth})
0:53    Function Parameters: 
0:?     Sequence
0:57      move second child to first child ( temp int)
0:57        CalculateLevelOfDetail: direct index for structure ( temp int)
0:57          'mtest' ( temp structure{ temp int Sample,  temp int CalculateLevelOfDetail,  temp int CalculateLevelOfDetailUnclamped,  temp int Gather,  temp int GetDimensions,  temp int GetSamplePosition,  temp int Load,  temp int SampleBias,  temp int SampleCmp,  temp int SampleCmpLevelZero,  temp int SampleGrad,  temp int SampleLevel})
0:57          Constant:
0:57            1 (const int)
0:57        Constant:
0:57          1 (const int)
0:58      move second child to first child ( temp int)
0:58        CalculateLevelOfDetailUnclamped: direct index for structure ( temp int)
0:58          'mtest' ( temp structure{ temp int Sample,  temp int CalculateLevelOfDetail,  temp int CalculateLevelOfDetailUnclamped,  temp int Gather,  temp int GetDimensions,  temp int GetSamplePosition,  temp int Load,  temp int SampleBias,  temp int SampleCmp,  temp int SampleCmpLevelZero,  temp int SampleGrad,  temp int SampleLevel})
0:58          Constant:
0:58            2 (const int)
0:58        Constant:
0:58          1 (const int)
0:59      move second child to first child ( temp int)
0:59        Gather: direct index for structure ( temp int)
0:59          'mtest' ( temp structure{ temp int Sample,  temp int CalculateLevelOfDetail,  temp int CalculateLevelOfDetailUnclamped,  temp int Gather,  temp int GetDimensions,  temp int GetSamplePosition,  temp int Load,  temp int SampleBias,  temp int SampleCmp,  temp int SampleCmpLevelZero,  temp int SampleGrad,  temp int SampleLevel})
0:59          Constant:
0:59            3 (const int)
0:59        Constant:
0:59          1 (const int)
0:60      move second child to first child ( temp int)
0:60        GetDimensions: direct index for structure ( temp int)
0:60          'mtest' ( temp structure{ temp int Sample,  temp int CalculateLevelOfDetail,  temp int CalculateLevelOfDetailUnclamped,  temp int Gather,  temp int GetDimensions,  temp int GetSamplePosition,  temp int Load,  temp int SampleBias,  temp int SampleCmp,  temp int SampleCmpLevelZero,  temp int SampleGrad,  temp int SampleLevel})
0:60          Constant:
0:60            4 (const int)
0:60        Constant:
0:60          1 (const int)
0:61      move second child to first child ( temp int)
0:61        GetSamplePosition: direct index for structure ( temp int)
0:61          'mtest' ( temp structure{ temp int Sample,  temp int CalculateLevelOfDetail,  temp int CalculateLevelOfDetailUnclamped,  temp int Gather,  temp int GetDimensions,  temp int GetSamplePosition,  temp int Load,  temp int SampleBias,  temp int SampleCmp,  temp int SampleCmpLevelZero,  temp int SampleGrad,  temp int SampleLevel})
0:61          Constant:
0:61            5 (const int)
0:61        Constant:
0:61          1 (const int)
0:62      move second child to first child ( temp int)
0:62        Load: direct index for structure ( temp int)
0:62          'mtest' ( temp structure{ temp int Sample,  temp int CalculateLevelOfDetail,  temp int CalculateLevelOfDetailUnclamped,  temp int Gather,  temp int GetDimensions,  temp int GetSamplePosition,  temp int Load,  temp int SampleBias,  temp int SampleCmp,  temp int SampleCmpLevelZero,  temp int SampleGrad,  temp int SampleLevel})
0:62          Constant:
0:62            6 (const int)
0:62        Constant:
0:62          1 (const int)
0:63      move second child to first child ( temp int)
0:63        Sample: direct index for structure ( temp int)
0:63          'mtest' ( temp structure{ temp int Sample,  temp int CalculateLevelOfDetail,  temp int CalculateLevelOfDetailUnclamped,  temp int Gather,  temp int GetDimensions,  temp int GetSamplePosition,  temp int Load,  temp int SampleBias,  temp int SampleCmp,  temp int SampleCmpLevelZero,  temp int SampleGrad,  temp int SampleLevel})
0:63          Constant:
0:63            0 (const int)
0:63        Constant:
0:63          1 (const int)
0:64      move second child to first child ( temp int)
0:64        SampleBias: direct index for structure ( temp int)
0:64          'mtest' ( temp structure{ temp int Sample,  temp int CalculateLevelOfDetail,  temp int CalculateLevelOfDetailUnclamped,  temp int Gather,  temp int GetDimensions,  temp int GetSamplePosition,  temp int Load,  temp int SampleBias,  temp int SampleCmp,  temp int SampleCmpLevelZero,  temp int SampleGrad,  temp int SampleLevel})
0:64          Constant:
0:64            7 (const int)
0:64        Constant:
0:64          1 (const int)
0:65      move second child to first child ( temp int)
0:65        SampleCmp: direct index for structure ( temp int)
0:65          'mtest' ( temp structure{ temp int Sample,  temp int CalculateLevelOfDetail,  temp int CalculateLevelOfDetailUnclamped,  temp int Gather,  temp int GetDimensions,  temp int GetSamplePosition,  temp int Load,  temp int SampleBias,  temp int SampleCmp,  temp int SampleCmpLevelZero,  temp int SampleGrad,  temp int SampleLevel})
0:65          Constant:
0:65            8 (const int)
0:65        Constant:
0:65          1 (const int)
0:66      move second child to first child ( temp int)
0:66        SampleCmpLevelZero: direct index for structure ( temp int)
0:66          'mtest' ( temp structure{ temp int Sample,  temp int CalculateLevelOfDetail,  temp int CalculateLevelOfDetailUnclamped,  temp int Gather,  temp int GetDimensions,  temp int GetSamplePosition,  temp int Load,  temp int SampleBias,  temp int SampleCmp,  temp int SampleCmpLevelZero,  temp int SampleGrad,  temp int SampleLevel})
0:66          Constant:
0:66            9 (const int)
0:66        Constant:
0:66          1 (const int)
0:67      move second child to first child ( temp int)
0:67        SampleGrad: direct index for structure ( temp int)
0:67          'mtest' ( temp structure{ temp int Sample,  temp int CalculateLevelOfDetail,  temp int CalculateLevelOfDetailUnclamped,  temp int Gather,  temp int GetDimensions,  temp int GetSamplePosition,  temp int Load,  temp int SampleBias,  temp int SampleCmp,  temp int SampleCmpLevelZero,  temp int SampleGrad,  temp int SampleLevel})
0:67          Constant:
0:67            10 (const int)
0:67        Constant:
0:67          1 (const int)
0:68      move second child to first child ( temp int)
0:68        SampleLevel: direct index for structure ( temp int)
0:68          'mtest' ( temp structure{ temp int Sample,  temp int CalculateLevelOfDetail,  temp int CalculateLevelOfDetailUnclamped,  temp int Gather,  temp int GetDimensions,  temp int GetSamplePosition,  temp int Load,  temp int SampleBias,  temp int SampleCmp,  temp int SampleCmpLevelZero,  temp int SampleGrad,  temp int SampleLevel})
0:68          Constant:
0:68            11 (const int)
0:68        Constant:
0:68          1 (const int)
0:70      Sequence
0:70        move second child to first child ( temp 4-component vector of float)
0:70          'txval10' ( temp 4-component vector of float)
0:70          texture ( temp 4-component vector of float)
0:70            Construct combined texture-sampler ( temp sampler1D)
0:70              'g_tTex1df4' (layout( binding=0) uniform texture1D)
0:70              'g_sSamp' (layout( binding=0) uniform sampler)
0:70            Constant:
0:70              0.100000
0:71      Sequence
0:71        move second child to first child ( temp 4-component vector of int)
0:71          'txval11' ( temp 4-component vector of int)
0:71          texture ( temp 4-component vector of int)
0:71            Construct combined texture-sampler ( temp isampler1D)
0:71              'g_tTex1di4' ( uniform itexture1D)
0:71              'g_sSamp' (layout( binding=0) uniform sampler)
0:71            Constant:
0:71              0.200000
0:72      Sequence
0:72        move second child to first child ( temp 4-component vector of uint)
0:72          'txval12' ( temp 4-component vector of uint)
0:72          texture ( temp 4-component vector of uint)
0:72            Construct combined texture-sampler ( temp usampler1D)
0:72              'g_tTex1du4' ( uniform utexture1D)
0:72              'g_sSamp' (layout( binding=0) uniform sampler)
0:72            Constant:
0:72              0.300000
0:74      Sequence
0:74        move second child to first child ( temp 4-component vector of float)
0:74          'txval20' ( temp 4-component vector of float)
0:74          texture ( temp 4-component vector of float)
0:74            Construct combined texture-sampler ( temp sampler2D)
0:74              'g_tTex2df4' ( uniform texture2D)
0:74              'g_sSamp' (layout( binding=0) uniform sampler)
0:74            Constant:
0:74              0.100000
0:74              0.200000
0:75      Sequence
0:75        move second child to first child ( temp 4-component vector of int)
0:75          'txval21' ( temp 4-component vector of int)
0:75          texture ( temp 4-component vector of int)
0:75            Construct combined texture-sampler ( temp isampler2D)
0:75              'g_tTex2di4' ( uniform itexture2D)
0:75              'g_sSamp' (layout( binding=0) uniform sampler)
0:75            Constant:
0:75              0.300000
0:75              0.400000
0:76      Sequence
0:76        move second child to first child ( temp 4-component vector of uint)
0:76          'txval22' ( temp 4-component vector of uint)
0:76          texture ( temp 4-component vector of uint)
0:76            Construct combined texture-sampler ( temp usampler2D)
0:76              'g_tTex2du4' ( uniform utexture2D)
0:76              'g_sSamp' (layout( binding=0) uniform sampler)
0:76            Constant:
0:76              0.500000
0:76              0.600000
0:78      Sequence
0:78        move second child to first child ( temp 4-component vector of float)
0:78          'txval30' ( temp 4-component vector of float)
0:78          texture ( temp 4-component vector of float)
0:78            Construct combined texture-sampler ( temp sampler3D)
0:78              'g_tTex3df4' ( uniform texture3D)
0:78              'g_sSamp' (layout( binding=0) uniform sampler)
0:78            Constant:
0:78              0.100000
0:78              0.200000
0:78              0.300000
0:79      Sequence
0:79        move second child to first child ( temp 4-component vector of int)
0:79          'txval31' ( temp 4-component vector of int)
0:79          texture ( temp 4-component vector of int)
0:79            Construct combined texture-sampler ( temp isampler3D)
0:79              'g_tTex3di4' ( uniform itexture3D)
0:79              'g_sSamp' (layout( binding=0) uniform sampler)
0:79            Constant:
0:79              0.400000
0:79              0.500000
0:79              0.600000
0:80      Sequence
0:80        move second child to first child ( temp 4-component vector of uint)
0:80          'txval32' ( temp 4-component vector of uint)
0:80          texture ( temp 4-component vector of uint)
0:80            Construct combined texture-sampler ( temp usampler3D)
0:80              'g_tTex3du4' ( uniform utexture3D)
0:80              'g_sSamp' (layout( binding=0) uniform sampler)
0:80            Constant:
0:80              0.700000
0:80              0.800000
0:80              0.900000
0:82      Sequence
0:82        move second child to first child ( temp 4-component vector of float)
0:82          'txval40' ( temp 4-component vector of float)
0:82          texture ( temp 4-component vector of float)
0:82            Construct combined texture-sampler ( temp samplerCube)
0:82              'g_tTexcdf4' ( uniform textureCube)
0:82              'g_sSamp' (layout( binding=0) uniform sampler)
0:82            Constant:
0:82              0.100000
0:82              0.200000
0:82              0.300000
0:83      Sequence
0:83        move second child to first child ( temp 4-component vector of int)
0:83          'txval41' ( temp 4-component vector of int)
0:83          texture ( temp 4-component vector of int)
0:83            Construct combined texture-sampler ( temp isamplerCube)
0:83              'g_tTexcdi4' ( uniform itextureCube)
0:83              'g_sSamp' (layout( binding=0) uniform sampler)
0:83            Constant:
0:83              0.400000
0:83              0.500000
0:83              0.600000
0:84      Sequence
0:84        move second child to first child ( temp 4-component vector of uint)
0:84          'txval42' ( temp 4-component vector of uint)
0:84          texture ( temp 4-component vector of uint)
0:84            Construct combined texture-sampler ( temp usamplerCube)
0:84              'g_tTexcdu4' ( uniform utextureCube)
0:84              'g_sSamp' (layout( binding=0) uniform sampler)
0:84            Constant:
0:84              0.700000
0:84              0.800000
0:84              0.900000
0:86      move second child to first child ( temp 4-component vector of float)
0:86        Color: direct index for structure ( temp 4-component vector of float)
0:86          'psout' ( temp structure{ temp 4-component vector of float Color,  temp float Depth})
0:86          Constant:
0:86            0 (const int)
0:86        Constant:
0:86          1.000000
0:86          1.000000
0:86          1.000000
0:86          1.000000
0:87      move second child to first child ( temp float)
0:87        Depth: direct index for structure ( temp float)
0:87          'psout' ( temp structure{ temp 4-component vector of float Color,  temp float Depth})
0:87          Constant:
0:87            1 (const int)
0:87        Constant:
0:87          1.000000
0:89      Branch: Return with expression
0:89        'psout' ( temp structure{ temp 4-component vector of float Color,  temp float Depth})
0:53  Function Definition: main( ( temp void)
0:53    Function Parameters: 
0:?     Sequence
0:53      Sequence
0:53        move second child to first child ( temp structure{ temp 4-component vector of float Color,  temp float Depth})
0:53          'flattenTemp' ( temp structure{ temp 4-component vector of float Color,  temp float Depth})
0:53          Function Call: @main( ( temp structure{ temp 4-component vector of float Color,  temp float Depth})
0:53        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:53          Color: direct index for structure ( temp 4-component vector of float)
0:53            'flattenTemp' ( temp structure{ temp 4-component vector of float Color,  temp float Depth})
0:53            Constant:
0:53              0 (const int)
0:53        move second child to first child ( temp float)
0:?           '@entryPointOutput.Depth' ( out float FragDepth)
0:53          Depth: direct index for structure ( temp float)
0:53            'flattenTemp' ( temp structure{ temp 4-component vector of float Color,  temp float Depth})
0:53            Constant:
0:53              1 (const int)
0:?   Linker Objects
0:?     'g_sSamp' (layout( binding=0) uniform sampler)
0:?     'g_sSamp2d' ( uniform sampler)
0:?     'g_sSamp2D_b' ( 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:?     '@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
using depth_any
0:? Sequence
0:53  Function Definition: @main( ( temp structure{ temp 4-component vector of float Color,  temp float Depth})
0:53    Function Parameters: 
0:?     Sequence
0:57      move second child to first child ( temp int)
0:57        CalculateLevelOfDetail: direct index for structure ( temp int)
0:57          'mtest' ( temp structure{ temp int Sample,  temp int CalculateLevelOfDetail,  temp int CalculateLevelOfDetailUnclamped,  temp int Gather,  temp int GetDimensions,  temp int GetSamplePosition,  temp int Load,  temp int SampleBias,  temp int SampleCmp,  temp int SampleCmpLevelZero,  temp int SampleGrad,  temp int SampleLevel})
0:57          Constant:
0:57            1 (const int)
0:57        Constant:
0:57          1 (const int)
0:58      move second child to first child ( temp int)
0:58        CalculateLevelOfDetailUnclamped: direct index for structure ( temp int)
0:58          'mtest' ( temp structure{ temp int Sample,  temp int CalculateLevelOfDetail,  temp int CalculateLevelOfDetailUnclamped,  temp int Gather,  temp int GetDimensions,  temp int GetSamplePosition,  temp int Load,  temp int SampleBias,  temp int SampleCmp,  temp int SampleCmpLevelZero,  temp int SampleGrad,  temp int SampleLevel})
0:58          Constant:
0:58            2 (const int)
0:58        Constant:
0:58          1 (const int)
0:59      move second child to first child ( temp int)
0:59        Gather: direct index for structure ( temp int)
0:59          'mtest' ( temp structure{ temp int Sample,  temp int CalculateLevelOfDetail,  temp int CalculateLevelOfDetailUnclamped,  temp int Gather,  temp int GetDimensions,  temp int GetSamplePosition,  temp int Load,  temp int SampleBias,  temp int SampleCmp,  temp int SampleCmpLevelZero,  temp int SampleGrad,  temp int SampleLevel})
0:59          Constant:
0:59            3 (const int)
0:59        Constant:
0:59          1 (const int)
0:60      move second child to first child ( temp int)
0:60        GetDimensions: direct index for structure ( temp int)
0:60          'mtest' ( temp structure{ temp int Sample,  temp int CalculateLevelOfDetail,  temp int CalculateLevelOfDetailUnclamped,  temp int Gather,  temp int GetDimensions,  temp int GetSamplePosition,  temp int Load,  temp int SampleBias,  temp int SampleCmp,  temp int SampleCmpLevelZero,  temp int SampleGrad,  temp int SampleLevel})
0:60          Constant:
0:60            4 (const int)
0:60        Constant:
0:60          1 (const int)
0:61      move second child to first child ( temp int)
0:61        GetSamplePosition: direct index for structure ( temp int)
0:61          'mtest' ( temp structure{ temp int Sample,  temp int CalculateLevelOfDetail,  temp int CalculateLevelOfDetailUnclamped,  temp int Gather,  temp int GetDimensions,  temp int GetSamplePosition,  temp int Load,  temp int SampleBias,  temp int SampleCmp,  temp int SampleCmpLevelZero,  temp int SampleGrad,  temp int SampleLevel})
0:61          Constant:
0:61            5 (const int)
0:61        Constant:
0:61          1 (const int)
0:62      move second child to first child ( temp int)
0:62        Load: direct index for structure ( temp int)
0:62          'mtest' ( temp structure{ temp int Sample,  temp int CalculateLevelOfDetail,  temp int CalculateLevelOfDetailUnclamped,  temp int Gather,  temp int GetDimensions,  temp int GetSamplePosition,  temp int Load,  temp int SampleBias,  temp int SampleCmp,  temp int SampleCmpLevelZero,  temp int SampleGrad,  temp int SampleLevel})
0:62          Constant:
0:62            6 (const int)
0:62        Constant:
0:62          1 (const int)
0:63      move second child to first child ( temp int)
0:63        Sample: direct index for structure ( temp int)
0:63          'mtest' ( temp structure{ temp int Sample,  temp int CalculateLevelOfDetail,  temp int CalculateLevelOfDetailUnclamped,  temp int Gather,  temp int GetDimensions,  temp int GetSamplePosition,  temp int Load,  temp int SampleBias,  temp int SampleCmp,  temp int SampleCmpLevelZero,  temp int SampleGrad,  temp int SampleLevel})
0:63          Constant:
0:63            0 (const int)
0:63        Constant:
0:63          1 (const int)
0:64      move second child to first child ( temp int)
0:64        SampleBias: direct index for structure ( temp int)
0:64          'mtest' ( temp structure{ temp int Sample,  temp int CalculateLevelOfDetail,  temp int CalculateLevelOfDetailUnclamped,  temp int Gather,  temp int GetDimensions,  temp int GetSamplePosition,  temp int Load,  temp int SampleBias,  temp int SampleCmp,  temp int SampleCmpLevelZero,  temp int SampleGrad,  temp int SampleLevel})
0:64          Constant:
0:64            7 (const int)
0:64        Constant:
0:64          1 (const int)
0:65      move second child to first child ( temp int)
0:65        SampleCmp: direct index for structure ( temp int)
0:65          'mtest' ( temp structure{ temp int Sample,  temp int CalculateLevelOfDetail,  temp int CalculateLevelOfDetailUnclamped,  temp int Gather,  temp int GetDimensions,  temp int GetSamplePosition,  temp int Load,  temp int SampleBias,  temp int SampleCmp,  temp int SampleCmpLevelZero,  temp int SampleGrad,  temp int SampleLevel})
0:65          Constant:
0:65            8 (const int)
0:65        Constant:
0:65          1 (const int)
0:66      move second child to first child ( temp int)
0:66        SampleCmpLevelZero: direct index for structure ( temp int)
0:66          'mtest' ( temp structure{ temp int Sample,  temp int CalculateLevelOfDetail,  temp int CalculateLevelOfDetailUnclamped,  temp int Gather,  temp int GetDimensions,  temp int GetSamplePosition,  temp int Load,  temp int SampleBias,  temp int SampleCmp,  temp int SampleCmpLevelZero,  temp int SampleGrad,  temp int SampleLevel})
0:66          Constant:
0:66            9 (const int)
0:66        Constant:
0:66          1 (const int)
0:67      move second child to first child ( temp int)
0:67        SampleGrad: direct index for structure ( temp int)
0:67          'mtest' ( temp structure{ temp int Sample,  temp int CalculateLevelOfDetail,  temp int CalculateLevelOfDetailUnclamped,  temp int Gather,  temp int GetDimensions,  temp int GetSamplePosition,  temp int Load,  temp int SampleBias,  temp int SampleCmp,  temp int SampleCmpLevelZero,  temp int SampleGrad,  temp int SampleLevel})
0:67          Constant:
0:67            10 (const int)
0:67        Constant:
0:67          1 (const int)
0:68      move second child to first child ( temp int)
0:68        SampleLevel: direct index for structure ( temp int)
0:68          'mtest' ( temp structure{ temp int Sample,  temp int CalculateLevelOfDetail,  temp int CalculateLevelOfDetailUnclamped,  temp int Gather,  temp int GetDimensions,  temp int GetSamplePosition,  temp int Load,  temp int SampleBias,  temp int SampleCmp,  temp int SampleCmpLevelZero,  temp int SampleGrad,  temp int SampleLevel})
0:68          Constant:
0:68            11 (const int)
0:68        Constant:
0:68          1 (const int)
0:70      Sequence
0:70        move second child to first child ( temp 4-component vector of float)
0:70          'txval10' ( temp 4-component vector of float)
0:70          texture ( temp 4-component vector of float)
0:70            Construct combined texture-sampler ( temp sampler1D)
0:70              'g_tTex1df4' (layout( binding=0) uniform texture1D)
0:70              'g_sSamp' (layout( binding=0) uniform sampler)
0:70            Constant:
0:70              0.100000
0:71      Sequence
0:71        move second child to first child ( temp 4-component vector of int)
0:71          'txval11' ( temp 4-component vector of int)
0:71          texture ( temp 4-component vector of int)
0:71            Construct combined texture-sampler ( temp isampler1D)
0:71              'g_tTex1di4' ( uniform itexture1D)
0:71              'g_sSamp' (layout( binding=0) uniform sampler)
0:71            Constant:
0:71              0.200000
0:72      Sequence
0:72        move second child to first child ( temp 4-component vector of uint)
0:72          'txval12' ( temp 4-component vector of uint)
0:72          texture ( temp 4-component vector of uint)
0:72            Construct combined texture-sampler ( temp usampler1D)
0:72              'g_tTex1du4' ( uniform utexture1D)
0:72              'g_sSamp' (layout( binding=0) uniform sampler)
0:72            Constant:
0:72              0.300000
0:74      Sequence
0:74        move second child to first child ( temp 4-component vector of float)
0:74          'txval20' ( temp 4-component vector of float)
0:74          texture ( temp 4-component vector of float)
0:74            Construct combined texture-sampler ( temp sampler2D)
0:74              'g_tTex2df4' ( uniform texture2D)
0:74              'g_sSamp' (layout( binding=0) uniform sampler)
0:74            Constant:
0:74              0.100000
0:74              0.200000
0:75      Sequence
0:75        move second child to first child ( temp 4-component vector of int)
0:75          'txval21' ( temp 4-component vector of int)
0:75          texture ( temp 4-component vector of int)
0:75            Construct combined texture-sampler ( temp isampler2D)
0:75              'g_tTex2di4' ( uniform itexture2D)
0:75              'g_sSamp' (layout( binding=0) uniform sampler)
0:75            Constant:
0:75              0.300000
0:75              0.400000
0:76      Sequence
0:76        move second child to first child ( temp 4-component vector of uint)
0:76          'txval22' ( temp 4-component vector of uint)
0:76          texture ( temp 4-component vector of uint)
0:76            Construct combined texture-sampler ( temp usampler2D)
0:76              'g_tTex2du4' ( uniform utexture2D)
0:76              'g_sSamp' (layout( binding=0) uniform sampler)
0:76            Constant:
0:76              0.500000
0:76              0.600000
0:78      Sequence
0:78        move second child to first child ( temp 4-component vector of float)
0:78          'txval30' ( temp 4-component vector of float)
0:78          texture ( temp 4-component vector of float)
0:78            Construct combined texture-sampler ( temp sampler3D)
0:78              'g_tTex3df4' ( uniform texture3D)
0:78              'g_sSamp' (layout( binding=0) uniform sampler)
0:78            Constant:
0:78              0.100000
0:78              0.200000
0:78              0.300000
0:79      Sequence
0:79        move second child to first child ( temp 4-component vector of int)
0:79          'txval31' ( temp 4-component vector of int)
0:79          texture ( temp 4-component vector of int)
0:79            Construct combined texture-sampler ( temp isampler3D)
0:79              'g_tTex3di4' ( uniform itexture3D)
0:79              'g_sSamp' (layout( binding=0) uniform sampler)
0:79            Constant:
0:79              0.400000
0:79              0.500000
0:79              0.600000
0:80      Sequence
0:80        move second child to first child ( temp 4-component vector of uint)
0:80          'txval32' ( temp 4-component vector of uint)
0:80          texture ( temp 4-component vector of uint)
0:80            Construct combined texture-sampler ( temp usampler3D)
0:80              'g_tTex3du4' ( uniform utexture3D)
0:80              'g_sSamp' (layout( binding=0) uniform sampler)
0:80            Constant:
0:80              0.700000
0:80              0.800000
0:80              0.900000
0:82      Sequence
0:82        move second child to first child ( temp 4-component vector of float)
0:82          'txval40' ( temp 4-component vector of float)
0:82          texture ( temp 4-component vector of float)
0:82            Construct combined texture-sampler ( temp samplerCube)
0:82              'g_tTexcdf4' ( uniform textureCube)
0:82              'g_sSamp' (layout( binding=0) uniform sampler)
0:82            Constant:
0:82              0.100000
0:82              0.200000
0:82              0.300000
0:83      Sequence
0:83        move second child to first child ( temp 4-component vector of int)
0:83          'txval41' ( temp 4-component vector of int)
0:83          texture ( temp 4-component vector of int)
0:83            Construct combined texture-sampler ( temp isamplerCube)
0:83              'g_tTexcdi4' ( uniform itextureCube)
0:83              'g_sSamp' (layout( binding=0) uniform sampler)
0:83            Constant:
0:83              0.400000
0:83              0.500000
0:83              0.600000
0:84      Sequence
0:84        move second child to first child ( temp 4-component vector of uint)
0:84          'txval42' ( temp 4-component vector of uint)
0:84          texture ( temp 4-component vector of uint)
0:84            Construct combined texture-sampler ( temp usamplerCube)
0:84              'g_tTexcdu4' ( uniform utextureCube)
0:84              'g_sSamp' (layout( binding=0) uniform sampler)
0:84            Constant:
0:84              0.700000
0:84              0.800000
0:84              0.900000
0:86      move second child to first child ( temp 4-component vector of float)
0:86        Color: direct index for structure ( temp 4-component vector of float)
0:86          'psout' ( temp structure{ temp 4-component vector of float Color,  temp float Depth})
0:86          Constant:
0:86            0 (const int)
0:86        Constant:
0:86          1.000000
0:86          1.000000
0:86          1.000000
0:86          1.000000
0:87      move second child to first child ( temp float)
0:87        Depth: direct index for structure ( temp float)
0:87          'psout' ( temp structure{ temp 4-component vector of float Color,  temp float Depth})
0:87          Constant:
0:87            1 (const int)
0:87        Constant:
0:87          1.000000
0:89      Branch: Return with expression
0:89        'psout' ( temp structure{ temp 4-component vector of float Color,  temp float Depth})
0:53  Function Definition: main( ( temp void)
0:53    Function Parameters: 
0:?     Sequence
0:53      Sequence
0:53        move second child to first child ( temp structure{ temp 4-component vector of float Color,  temp float Depth})
0:53          'flattenTemp' ( temp structure{ temp 4-component vector of float Color,  temp float Depth})
0:53          Function Call: @main( ( temp structure{ temp 4-component vector of float Color,  temp float Depth})
0:53        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:53          Color: direct index for structure ( temp 4-component vector of float)
0:53            'flattenTemp' ( temp structure{ temp 4-component vector of float Color,  temp float Depth})
0:53            Constant:
0:53              0 (const int)
0:53        move second child to first child ( temp float)
0:?           '@entryPointOutput.Depth' ( out float FragDepth)
0:53          Depth: direct index for structure ( temp float)
0:53            'flattenTemp' ( temp structure{ temp 4-component vector of float Color,  temp float Depth})
0:53            Constant:
0:53              1 (const int)
0:?   Linker Objects
0:?     'g_sSamp' (layout( binding=0) uniform sampler)
0:?     'g_sSamp2d' ( uniform sampler)
0:?     'g_sSamp2D_b' ( 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:?     '@entryPointOutput.Depth' ( out float FragDepth)
0:?     '@entryPointOutput.Color' (layout( location=0) out 4-component vector of float)

// Module Version 10000
// Generated by (magic number): 8000a
// Id's are bound by 198

                              Capability Shader
                              Capability Sampled1D
               1:             ExtInstImport  "GLSL.std.450"
                              MemoryModel Logical GLSL450
                              EntryPoint Fragment 4  "main" 188 192
                              ExecutionMode 4 OriginUpperLeft
                              ExecutionMode 4 DepthReplacing
                              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  "MemberTest"
                              MemberName 13(MemberTest) 0  "Sample"
                              MemberName 13(MemberTest) 1  "CalculateLevelOfDetail"
                              MemberName 13(MemberTest) 2  "CalculateLevelOfDetailUnclamped"
                              MemberName 13(MemberTest) 3  "Gather"
                              MemberName 13(MemberTest) 4  "GetDimensions"
                              MemberName 13(MemberTest) 5  "GetSamplePosition"
                              MemberName 13(MemberTest) 6  "Load"
                              MemberName 13(MemberTest) 7  "SampleBias"
                              MemberName 13(MemberTest) 8  "SampleCmp"
                              MemberName 13(MemberTest) 9  "SampleCmpLevelZero"
                              MemberName 13(MemberTest) 10  "SampleGrad"
                              MemberName 13(MemberTest) 11  "SampleLevel"
                              Name 15  "mtest"
                              Name 42  "txval10"
                              Name 45  "g_tTex1df4"
                              Name 49  "g_sSamp"
                              Name 57  "txval11"
                              Name 60  "g_tTex1di4"
                              Name 70  "txval12"
                              Name 73  "g_tTex1du4"
                              Name 80  "txval20"
                              Name 83  "g_tTex2df4"
                              Name 91  "txval21"
                              Name 94  "g_tTex2di4"
                              Name 102  "txval22"
                              Name 105  "g_tTex2du4"
                              Name 114  "txval30"
                              Name 117  "g_tTex3df4"
                              Name 125  "txval31"
                              Name 128  "g_tTex3di4"
                              Name 135  "txval32"
                              Name 138  "g_tTex3du4"
                              Name 148  "txval40"
                              Name 151  "g_tTexcdf4"
                              Name 157  "txval41"
                              Name 160  "g_tTexcdi4"
                              Name 166  "txval42"
                              Name 169  "g_tTexcdu4"
                              Name 176  "psout"
                              Name 185  "flattenTemp"
                              Name 188  "@entryPointOutput.Color"
                              Name 192  "@entryPointOutput.Depth"
                              Name 195  "g_sSamp2d"
                              Name 196  "g_sSamp2D_b"
                              Name 197  "g_tTex1df4a"
                              Decorate 45(g_tTex1df4) DescriptorSet 0
                              Decorate 45(g_tTex1df4) Binding 0
                              Decorate 49(g_sSamp) DescriptorSet 0
                              Decorate 49(g_sSamp) Binding 0
                              Decorate 60(g_tTex1di4) DescriptorSet 0
                              Decorate 60(g_tTex1di4) Binding 2
                              Decorate 73(g_tTex1du4) DescriptorSet 0
                              Decorate 73(g_tTex1du4) Binding 3
                              Decorate 83(g_tTex2df4) DescriptorSet 0
                              Decorate 83(g_tTex2df4) Binding 4
                              Decorate 94(g_tTex2di4) DescriptorSet 0
                              Decorate 94(g_tTex2di4) Binding 5
                              Decorate 105(g_tTex2du4) DescriptorSet 0
                              Decorate 105(g_tTex2du4) Binding 6
                              Decorate 117(g_tTex3df4) DescriptorSet 0
                              Decorate 117(g_tTex3df4) Binding 7
                              Decorate 128(g_tTex3di4) DescriptorSet 0
                              Decorate 128(g_tTex3di4) Binding 8
                              Decorate 138(g_tTex3du4) DescriptorSet 0
                              Decorate 138(g_tTex3du4) Binding 9
                              Decorate 151(g_tTexcdf4) DescriptorSet 0
                              Decorate 151(g_tTexcdf4) Binding 10
                              Decorate 160(g_tTexcdi4) DescriptorSet 0
                              Decorate 160(g_tTexcdi4) Binding 11
                              Decorate 169(g_tTexcdu4) DescriptorSet 0
                              Decorate 169(g_tTexcdu4) Binding 12
                              Decorate 188(@entryPointOutput.Color) Location 0
                              Decorate 192(@entryPointOutput.Depth) BuiltIn FragDepth
                              Decorate 195(g_sSamp2d) DescriptorSet 0
                              Decorate 195(g_sSamp2d) Binding 0
                              Decorate 196(g_sSamp2D_b) DescriptorSet 0
                              Decorate 196(g_sSamp2D_b) Binding 0
                              Decorate 197(g_tTex1df4a) DescriptorSet 0
                              Decorate 197(g_tTex1df4a) Binding 1
               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:             TypeInt 32 1
  13(MemberTest):             TypeStruct 12(int) 12(int) 12(int) 12(int) 12(int) 12(int) 12(int) 12(int) 12(int) 12(int) 12(int) 12(int)
              14:             TypePointer Function 13(MemberTest)
              16:     12(int) Constant 1
              17:             TypePointer Function 12(int)
              19:     12(int) Constant 2
              21:     12(int) Constant 3
              23:     12(int) Constant 4
              25:     12(int) Constant 5
              27:     12(int) Constant 6
              29:     12(int) Constant 0
              31:     12(int) Constant 7
              33:     12(int) Constant 8
              35:     12(int) Constant 9
              37:     12(int) Constant 10
              39:     12(int) Constant 11
              41:             TypePointer Function 7(fvec4)
              43:             TypeImage 6(float) 1D sampled format:Unknown
              44:             TypePointer UniformConstant 43
  45(g_tTex1df4):     44(ptr) Variable UniformConstant
              47:             TypeSampler
              48:             TypePointer UniformConstant 47
     49(g_sSamp):     48(ptr) Variable UniformConstant
              51:             TypeSampledImage 43
              53:    6(float) Constant 1036831949
              55:             TypeVector 12(int) 4
              56:             TypePointer Function 55(ivec4)
              58:             TypeImage 12(int) 1D sampled format:Unknown
              59:             TypePointer UniformConstant 58
  60(g_tTex1di4):     59(ptr) Variable UniformConstant
              63:             TypeSampledImage 58
              65:    6(float) Constant 1045220557
              67:             TypeInt 32 0
              68:             TypeVector 67(int) 4
              69:             TypePointer Function 68(ivec4)
              71:             TypeImage 67(int) 1D sampled format:Unknown
              72:             TypePointer UniformConstant 71
  73(g_tTex1du4):     72(ptr) Variable UniformConstant
              76:             TypeSampledImage 71
              78:    6(float) Constant 1050253722
              81:             TypeImage 6(float) 2D sampled format:Unknown
              82:             TypePointer UniformConstant 81
  83(g_tTex2df4):     82(ptr) Variable UniformConstant
              86:             TypeSampledImage 81
              88:             TypeVector 6(float) 2
              89:   88(fvec2) ConstantComposite 53 65
              92:             TypeImage 12(int) 2D sampled format:Unknown
              93:             TypePointer UniformConstant 92
  94(g_tTex2di4):     93(ptr) Variable UniformConstant
              97:             TypeSampledImage 92
              99:    6(float) Constant 1053609165
             100:   88(fvec2) ConstantComposite 78 99
             103:             TypeImage 67(int) 2D sampled format:Unknown
             104:             TypePointer UniformConstant 103
 105(g_tTex2du4):    104(ptr) Variable UniformConstant
             108:             TypeSampledImage 103
             110:    6(float) Constant 1056964608
             111:    6(float) Constant 1058642330
             112:   88(fvec2) ConstantComposite 110 111
             115:             TypeImage 6(float) 3D sampled format:Unknown
             116:             TypePointer UniformConstant 115
 117(g_tTex3df4):    116(ptr) Variable UniformConstant
             120:             TypeSampledImage 115
             122:             TypeVector 6(float) 3
             123:  122(fvec3) ConstantComposite 53 65 78
             126:             TypeImage 12(int) 3D sampled format:Unknown
             127:             TypePointer UniformConstant 126
 128(g_tTex3di4):    127(ptr) Variable UniformConstant
             131:             TypeSampledImage 126
             133:  122(fvec3) ConstantComposite 99 110 111
             136:             TypeImage 67(int) 3D sampled format:Unknown
             137:             TypePointer UniformConstant 136
 138(g_tTex3du4):    137(ptr) Variable UniformConstant
             141:             TypeSampledImage 136
             143:    6(float) Constant 1060320051
             144:    6(float) Constant 1061997773
             145:    6(float) Constant 1063675494
             146:  122(fvec3) ConstantComposite 143 144 145
             149:             TypeImage 6(float) Cube sampled format:Unknown
             150:             TypePointer UniformConstant 149
 151(g_tTexcdf4):    150(ptr) Variable UniformConstant
             154:             TypeSampledImage 149
             158:             TypeImage 12(int) Cube sampled format:Unknown
             159:             TypePointer UniformConstant 158
 160(g_tTexcdi4):    159(ptr) Variable UniformConstant
             163:             TypeSampledImage 158
             167:             TypeImage 67(int) Cube sampled format:Unknown
             168:             TypePointer UniformConstant 167
 169(g_tTexcdu4):    168(ptr) Variable UniformConstant
             172:             TypeSampledImage 167
             175:             TypePointer Function 8(PS_OUTPUT)
             177:    6(float) Constant 1065353216
             178:    7(fvec4) ConstantComposite 177 177 177 177
             180:             TypePointer Function 6(float)
             187:             TypePointer Output 7(fvec4)
188(@entryPointOutput.Color):    187(ptr) Variable Output
             191:             TypePointer Output 6(float)
192(@entryPointOutput.Depth):    191(ptr) Variable Output
  195(g_sSamp2d):     48(ptr) Variable UniformConstant
196(g_sSamp2D_b):     48(ptr) Variable UniformConstant
197(g_tTex1df4a):     44(ptr) Variable UniformConstant
         4(main):           2 Function None 3
               5:             Label
185(flattenTemp):    175(ptr) Variable Function
             186:8(PS_OUTPUT) FunctionCall 10(@main()
                              Store 185(flattenTemp) 186
             189:     41(ptr) AccessChain 185(flattenTemp) 29
             190:    7(fvec4) Load 189
                              Store 188(@entryPointOutput.Color) 190
             193:    180(ptr) AccessChain 185(flattenTemp) 16
             194:    6(float) Load 193
                              Store 192(@entryPointOutput.Depth) 194
                              Return
                              FunctionEnd
      10(@main():8(PS_OUTPUT) Function None 9
              11:             Label
       15(mtest):     14(ptr) Variable Function
     42(txval10):     41(ptr) Variable Function
     57(txval11):     56(ptr) Variable Function
     70(txval12):     69(ptr) Variable Function
     80(txval20):     41(ptr) Variable Function
     91(txval21):     56(ptr) Variable Function
    102(txval22):     69(ptr) Variable Function
    114(txval30):     41(ptr) Variable Function
    125(txval31):     56(ptr) Variable Function
    135(txval32):     69(ptr) Variable Function
    148(txval40):     41(ptr) Variable Function
    157(txval41):     56(ptr) Variable Function
    166(txval42):     69(ptr) Variable Function
      176(psout):    175(ptr) Variable Function
              18:     17(ptr) AccessChain 15(mtest) 16
                              Store 18 16
              20:     17(ptr) AccessChain 15(mtest) 19
                              Store 20 16
              22:     17(ptr) AccessChain 15(mtest) 21
                              Store 22 16
              24:     17(ptr) AccessChain 15(mtest) 23
                              Store 24 16
              26:     17(ptr) AccessChain 15(mtest) 25
                              Store 26 16
              28:     17(ptr) AccessChain 15(mtest) 27
                              Store 28 16
              30:     17(ptr) AccessChain 15(mtest) 29
                              Store 30 16
              32:     17(ptr) AccessChain 15(mtest) 31
                              Store 32 16
              34:     17(ptr) AccessChain 15(mtest) 33
                              Store 34 16
              36:     17(ptr) AccessChain 15(mtest) 35
                              Store 36 16
              38:     17(ptr) AccessChain 15(mtest) 37
                              Store 38 16
              40:     17(ptr) AccessChain 15(mtest) 39
                              Store 40 16
              46:          43 Load 45(g_tTex1df4)
              50:          47 Load 49(g_sSamp)
              52:          51 SampledImage 46 50
              54:    7(fvec4) ImageSampleImplicitLod 52 53
                              Store 42(txval10) 54
              61:          58 Load 60(g_tTex1di4)
              62:          47 Load 49(g_sSamp)
              64:          63 SampledImage 61 62
              66:   55(ivec4) ImageSampleImplicitLod 64 65
                              Store 57(txval11) 66
              74:          71 Load 73(g_tTex1du4)
              75:          47 Load 49(g_sSamp)
              77:          76 SampledImage 74 75
              79:   68(ivec4) ImageSampleImplicitLod 77 78
                              Store 70(txval12) 79
              84:          81 Load 83(g_tTex2df4)
              85:          47 Load 49(g_sSamp)
              87:          86 SampledImage 84 85
              90:    7(fvec4) ImageSampleImplicitLod 87 89
                              Store 80(txval20) 90
              95:          92 Load 94(g_tTex2di4)
              96:          47 Load 49(g_sSamp)
              98:          97 SampledImage 95 96
             101:   55(ivec4) ImageSampleImplicitLod 98 100
                              Store 91(txval21) 101
             106:         103 Load 105(g_tTex2du4)
             107:          47 Load 49(g_sSamp)
             109:         108 SampledImage 106 107
             113:   68(ivec4) ImageSampleImplicitLod 109 112
                              Store 102(txval22) 113
             118:         115 Load 117(g_tTex3df4)
             119:          47 Load 49(g_sSamp)
             121:         120 SampledImage 118 119
             124:    7(fvec4) ImageSampleImplicitLod 121 123
                              Store 114(txval30) 124
             129:         126 Load 128(g_tTex3di4)
             130:          47 Load 49(g_sSamp)
             132:         131 SampledImage 129 130
             134:   55(ivec4) ImageSampleImplicitLod 132 133
                              Store 125(txval31) 134
             139:         136 Load 138(g_tTex3du4)
             140:          47 Load 49(g_sSamp)
             142:         141 SampledImage 139 140
             147:   68(ivec4) ImageSampleImplicitLod 142 146
                              Store 135(txval32) 147
             152:         149 Load 151(g_tTexcdf4)
             153:          47 Load 49(g_sSamp)
             155:         154 SampledImage 152 153
             156:    7(fvec4) ImageSampleImplicitLod 155 123
                              Store 148(txval40) 156
             161:         158 Load 160(g_tTexcdi4)
             162:          47 Load 49(g_sSamp)
             164:         163 SampledImage 161 162
             165:   55(ivec4) ImageSampleImplicitLod 164 133
                              Store 157(txval41) 165
             170:         167 Load 169(g_tTexcdu4)
             171:          47 Load 49(g_sSamp)
             173:         172 SampledImage 170 171
             174:   68(ivec4) ImageSampleImplicitLod 173 146
                              Store 166(txval42) 174
             179:     41(ptr) AccessChain 176(psout) 29
                              Store 179 178
             181:    180(ptr) AccessChain 176(psout) 16
                              Store 181 177
             182:8(PS_OUTPUT) Load 176(psout)
                              ReturnValue 182
                              FunctionEnd
