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


Linked fragment stage:


// Module Version 10000
// Generated by (magic number): 80001
// Id's are bound by 190

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