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:?             Constant:
0:?               0.100000
0:?               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:?             Constant:
0:?               0.300000
0:?               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:?             Constant:
0:?               0.500000
0:?               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:?             Constant:
0:?               0.100000
0:?               0.200000
0:?               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:?             Constant:
0:?               0.400000
0:?               0.500000
0:?               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:?             Constant:
0:?               0.700000
0:?               0.800000
0:?               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:?             Constant:
0:?               0.100000
0:?               0.200000
0:?               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:?             Constant:
0:?               0.400000
0:?               0.500000
0:?               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:?             Constant:
0:?               0.700000
0:?               0.800000
0:?               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:?             Constant:
0:?               0.100000
0:?               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:?             Constant:
0:?               0.300000
0:?               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:?             Constant:
0:?               0.500000
0:?               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:?             Constant:
0:?               0.100000
0:?               0.200000
0:?               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:?             Constant:
0:?               0.400000
0:?               0.500000
0:?               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:?             Constant:
0:?               0.700000
0:?               0.800000
0:?               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:?             Constant:
0:?               0.100000
0:?               0.200000
0:?               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:?             Constant:
0:?               0.400000
0:?               0.500000
0:?               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:?             Constant:
0:?               0.700000
0:?               0.800000
0:?               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): 80007
// 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 73(g_tTex1du4) DescriptorSet 0
                              Decorate 83(g_tTex2df4) DescriptorSet 0
                              Decorate 94(g_tTex2di4) DescriptorSet 0
                              Decorate 105(g_tTex2du4) DescriptorSet 0
                              Decorate 117(g_tTex3df4) DescriptorSet 0
                              Decorate 128(g_tTex3di4) DescriptorSet 0
                              Decorate 138(g_tTex3du4) DescriptorSet 0
                              Decorate 151(g_tTexcdf4) DescriptorSet 0
                              Decorate 160(g_tTexcdi4) DescriptorSet 0
                              Decorate 169(g_tTexcdu4) DescriptorSet 0
                              Decorate 188(@entryPointOutput.Color) Location 0
                              Decorate 192(@entryPointOutput.Depth) BuiltIn FragDepth
                              Decorate 195(g_sSamp2d) DescriptorSet 0
                              Decorate 196(g_sSamp2D_b) DescriptorSet 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
