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

// 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
