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

// Module Version 10000
// Generated by (magic number): 80005
// 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
                              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
