spv.debuginfo.hlsl.tese
Validation failed
// Module Version 10000
// Generated by (magic number): 8000b
// Id's are bound by 434

                              Capability Tessellation
                              Extension  "SPV_KHR_non_semantic_info"
               1:             ExtInstImport  "NonSemantic.Shader.DebugInfo.100"
               2:             ExtInstImport  "GLSL.std.450"
                              MemoryModel Logical GLSL450
                              EntryPoint TessellationEvaluation 5  "main" 325 340 349 358 365 371 411 415 419 422 425 428 431
                              ExecutionMode 5 Quads
               9:             String  "float"
              12:             String  "uint"
              25:             String  "TessLevelOuter"
              27:             String  ""
              31:             String  "TessLevelInner"
              34:             String  "ConstantsHSOutput"
              48:             String  "Pos"
              51:             String  "Normal"
              55:             String  "UV"
              59:             String  "HSOutput"
              67:             String  "WorldPos"
              77:             String  "DSOutput"
              84:             String  "@main"
              90:             String  "input"
              94:             String  "TessCoord"
              97:             String  "patch"
             103:             String  "output"
             113:             String  "uv1"
             117:             String  "int"
             131:             String  "uv2"
             151:             String  "n1"
             162:             String  "n2"
             181:             String  "pos1"
             192:             String  "pos2"
             203:             String  "pos"
             214:             String  "type.2d.image"
             216:             String  "@type.2d.image"
             221:             String  "displacementMapTexture"
             226:             String  "type.sampler"
             227:             String  "@type.sampler"
             231:             String  "displacementMapSampler"
             235:             String  "type.sampled.image"
             236:             String  "@type.sampled.image"
             250:             String  "modelview"
             255:             String  "lightPos"
             259:             String  "frustumPlanes"
             262:             String  "tessellatedEdgeSize"
             266:             String  "viewportDim"
             270:             String  "UBO"
             273:             String  "ubo"
                              Name 5  "main"
                              Name 23  "ConstantsHSOutput"
                              MemberName 23(ConstantsHSOutput) 0  "TessLevelOuter"
                              MemberName 23(ConstantsHSOutput) 1  "TessLevelInner"
                              Name 46  "HSOutput"
                              MemberName 46(HSOutput) 0  "Pos"
                              MemberName 46(HSOutput) 1  "Normal"
                              MemberName 46(HSOutput) 2  "UV"
                              Name 62  "DSOutput"
                              MemberName 62(DSOutput) 0  "Pos"
                              MemberName 62(DSOutput) 1  "Normal"
                              MemberName 62(DSOutput) 2  "UV"
                              MemberName 62(DSOutput) 3  "ViewVec"
                              MemberName 62(DSOutput) 4  "LightVec"
                              MemberName 62(DSOutput) 5  "EyePos"
                              MemberName 62(DSOutput) 6  "WorldPos"
                              Name 83  "@main(struct-ConstantsHSOutput-f1[4]-f1[2]1;vf2;struct-HSOutput-vf4-vf3-vf21[4];"
                              Name 80  "input"
                              Name 81  "TessCoord"
                              Name 82  "patch"
                              Name 101  "output"
                              Name 111  "uv1"
                              Name 129  "uv2"
                              Name 149  "n1"
                              Name 160  "n2"
                              Name 179  "pos1"
                              Name 190  "pos2"
                              Name 201  "pos"
                              Name 219  "displacementMapTexture"
                              Name 229  "displacementMapSampler"
                              Name 248  "UBO"
                              MemberName 248(UBO) 0  "projection"
                              MemberName 248(UBO) 1  "modelview"
                              MemberName 248(UBO) 2  "lightPos"
                              MemberName 248(UBO) 3  "frustumPlanes"
                              MemberName 248(UBO) 4  "displacementFactor"
                              MemberName 248(UBO) 5  "tessellationFactor"
                              MemberName 248(UBO) 6  "viewportDim"
                              MemberName 248(UBO) 7  "tessellatedEdgeSize"
                              Name 271  "ubo"
                              MemberName 271(ubo) 0  "ubo"
                              Name 276  ""
                              Name 323  "input"
                              Name 325  "input.TessLevelOuter"
                              Name 340  "input.TessLevelInner"
                              Name 347  "TessCoord"
                              Name 349  "TessCoord"
                              Name 355  "patch"
                              Name 358  "patch.Pos"
                              Name 365  "patch.Normal"
                              Name 371  "patch.UV"
                              Name 403  "flattenTemp"
                              Name 405  "param"
                              Name 407  "param"
                              Name 411  "@entryPointOutput.Pos"
                              Name 415  "@entryPointOutput.Normal"
                              Name 419  "@entryPointOutput.UV"
                              Name 422  "@entryPointOutput.ViewVec"
                              Name 425  "@entryPointOutput.LightVec"
                              Name 428  "@entryPointOutput.EyePos"
                              Name 431  "@entryPointOutput.WorldPos"
                              Decorate 219(displacementMapTexture) DescriptorSet 0
                              Decorate 219(displacementMapTexture) Binding 1
                              Decorate 229(displacementMapSampler) DescriptorSet 0
                              Decorate 229(displacementMapSampler) Binding 1
                              Decorate 246 ArrayStride 16
                              MemberDecorate 248(UBO) 0 RowMajor
                              MemberDecorate 248(UBO) 0 Offset 0
                              MemberDecorate 248(UBO) 0 MatrixStride 16
                              MemberDecorate 248(UBO) 1 RowMajor
                              MemberDecorate 248(UBO) 1 Offset 64
                              MemberDecorate 248(UBO) 1 MatrixStride 16
                              MemberDecorate 248(UBO) 2 Offset 128
                              MemberDecorate 248(UBO) 3 Offset 144
                              MemberDecorate 248(UBO) 4 Offset 240
                              MemberDecorate 248(UBO) 5 Offset 244
                              MemberDecorate 248(UBO) 6 Offset 248
                              MemberDecorate 248(UBO) 7 Offset 256
                              MemberDecorate 271(ubo) 0 Offset 0
                              Decorate 271(ubo) Block
                              Decorate 276 DescriptorSet 0
                              Decorate 276 Binding 0
                              Decorate 325(input.TessLevelOuter) Patch
                              Decorate 325(input.TessLevelOuter) BuiltIn TessLevelOuter
                              Decorate 340(input.TessLevelInner) Patch
                              Decorate 340(input.TessLevelInner) BuiltIn TessLevelInner
                              Decorate 349(TessCoord) Patch
                              Decorate 349(TessCoord) BuiltIn TessCoord
                              Decorate 358(patch.Pos) BuiltIn Position
                              Decorate 365(patch.Normal) Location 0
                              Decorate 371(patch.UV) Location 1
                              Decorate 411(@entryPointOutput.Pos) BuiltIn Position
                              Decorate 415(@entryPointOutput.Normal) Location 0
                              Decorate 419(@entryPointOutput.UV) Location 1
                              Decorate 422(@entryPointOutput.ViewVec) Location 2
                              Decorate 425(@entryPointOutput.LightVec) Location 3
                              Decorate 428(@entryPointOutput.EyePos) Location 4
                              Decorate 431(@entryPointOutput.WorldPos) Location 5
               3:             TypeVoid
               4:             TypeFunction 3
               7:             TypeFloat 32
              10:             TypeInt 32 0
              13:     10(int) Constant 32
              14:     10(int) Constant 6
              15:     10(int) Constant 0
              11:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 2(RoundEven) 12 13 14 15
              16:     10(int) Constant 3
               8:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 2(RoundEven) 9 13 16 15
              17:     10(int) Constant 4
              18:             TypeArray 7(float) 17
              19:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 5(SAbs) 8 17
              20:     10(int) Constant 2
              21:             TypeArray 7(float) 20
              22:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 5(SAbs) 8 20
23(ConstantsHSOutput):             TypeStruct 18 21
              26:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 35(Modf) 0 27
              28:     10(int) Constant 51
              29:     10(int) Constant 25
              24:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 11(Radians) 25 19 26 28 29 15 15 16
              32:     10(int) Constant 52
              30:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 11(Radians) 31 22 26 32 29 15 15 16
              35:     10(int) Constant 1
              37:     10(int) Constant 5
              36:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 1(Round) 35 17 26 37
              33:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 10(Fract) 34 35 26 15 15 36 34 15 16 24 30
              38:             TypePointer Function 23(ConstantsHSOutput)
              39:             TypeVector 7(float) 2
              40:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 6(FSign) 8 20
              41:             TypePointer Function 39(fvec2)
              42:             TypeVector 7(float) 4
              43:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 6(FSign) 8 17
              44:             TypeVector 7(float) 3
              45:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 6(FSign) 8 16
    46(HSOutput):             TypeStruct 42(fvec4) 44(fvec3) 39(fvec2)
              49:     10(int) Constant 44
              47:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 11(Radians) 48 43 26 49 13 15 15 16
              52:     10(int) Constant 45
              53:     10(int) Constant 35
              50:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 11(Radians) 51 45 26 52 53 15 15 16
              56:     10(int) Constant 46
              57:     10(int) Constant 31
              54:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 11(Radians) 55 40 26 56 57 15 15 16
              58:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 10(Fract) 59 35 26 15 15 36 59 15 16 47 50 54
              60:             TypeArray 46(HSOutput) 17
              61:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 5(SAbs) 58 17
    62(DSOutput):             TypeStruct 42(fvec4) 44(fvec3) 39(fvec2) 44(fvec3) 44(fvec3) 44(fvec3) 44(fvec3)
              64:     10(int) Constant 57
              65:     10(int) Constant 13
              63:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 11(Radians) 48 43 26 64 65 15 15 16
              68:     10(int) Constant 63
              69:     10(int) Constant 37
              66:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 11(Radians) 67 45 26 68 69 15 15 16
              71:     10(int) Constant 59
              70:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 11(Radians) 55 40 26 71 57 15 15 16
              72:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 11(Radians) 67 45 26 68 69 15 15 16
              73:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 11(Radians) 67 45 26 68 69 15 15 16
              74:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 11(Radians) 67 45 26 68 69 15 15 16
              75:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 11(Radians) 67 45 26 68 69 15 15 16
              76:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 10(Fract) 77 35 26 15 15 36 77 15 16 63 66 70 72 73 74 75
              78:             TypeFunction 62(DSOutput) 38(ptr) 41(ptr) 60
              79:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 8(Floor) 16 76 33 40 58
              85:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 20(Cosh) 84 79 26 15 15 36 84 16 15
              89:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 26(Pow) 90 33 26 15 15 85 17 35
              92:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 31(Sqrt)
              93:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 26(Pow) 94 40 26 15 15 85 17 20
              96:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 26(Pow) 97 58 26 15 15 85 17 16
             100:             TypePointer Function 62(DSOutput)
             104:     10(int) Constant 70
             102:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 26(Pow) 103 76 26 104 15 85 17
             106:    7(float) Constant 0
             107:   42(fvec4) ConstantComposite 106 106 106 106
             108:   44(fvec3) ConstantComposite 106 106 106
             109:   39(fvec2) ConstantComposite 106 106
             110:62(DSOutput) ConstantComposite 107 108 109 108 108 108 108
             114:     10(int) Constant 71
             112:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 26(Pow) 113 40 26 114 15 85 17
             116:             TypeInt 32 1
             118:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 2(RoundEven) 117 13 17 15
             119:    116(int) Constant 0
             120:    116(int) Constant 2
             122:    116(int) Constant 1
             124:             TypePointer Function 7(float)
             132:     10(int) Constant 72
             130:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 26(Pow) 131 40 26 132 15 85 17
             134:    116(int) Constant 3
             148:             TypePointer Function 44(fvec3)
             152:     10(int) Constant 75
             150:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 26(Pow) 151 45 26 152 15 85 17
             163:     10(int) Constant 76
             161:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 26(Pow) 162 45 26 163 15 85 17
             178:             TypePointer Function 42(fvec4)
             182:     10(int) Constant 80
             180:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 26(Pow) 181 43 26 182 15 85 17
             193:     10(int) Constant 81
             191:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 26(Pow) 192 43 26 193 15 85 17
             204:     10(int) Constant 82
             202:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 26(Pow) 203 43 26 204 15 85 17
             212:             TypeImage 7(float) 2D sampled format:Unknown
             215:     10(int) Constant 84
             217:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 0(Unknown)
             213:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 10(Fract) 214 15 26 215 15 36 216 217 16
             218:             TypePointer UniformConstant 212
219(displacementMapTexture):    218(ptr) Variable UniformConstant
             222:     10(int) Constant 8
             220:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 18(Atan) 221 213 26 215 15 36 221 219(displacementMapTexture) 222
             224:             TypeSampler
             225:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 10(Fract) 226 35 26 215 15 36 227 217 16
             228:             TypePointer UniformConstant 224
229(displacementMapSampler):    228(ptr) Variable UniformConstant
             230:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 18(Atan) 231 225 26 215 15 36 231 229(displacementMapSampler) 222
             233:             TypeSampledImage 212
             234:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 10(Fract) 235 15 26 215 15 36 236 217 16
             242:             TypeMatrix 42(fvec4) 4
             244:             TypeBool
             245:   244(bool) ConstantTrue
             243:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 108 43 17 245
             246:             TypeArray 42(fvec4) 14
             247:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 5(SAbs) 43 14
        248(UBO):             TypeStruct 242 242 42(fvec4) 246 7(float) 7(float) 39(fvec2) 7(float)
             251:     10(int) Constant 29
             252:     10(int) Constant 20
             249:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 11(Radians) 250 243 26 251 252 15 15 16
             253:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 11(Radians) 250 243 26 251 252 15 15 16
             256:     10(int) Constant 30
             257:     10(int) Constant 17
             254:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 11(Radians) 255 43 26 256 257 15 15 16
             260:     10(int) Constant 22
             258:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 11(Radians) 259 247 26 57 260 15 15 16
             263:     10(int) Constant 27
             261:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 11(Radians) 262 8 26 53 263 15 15 16
             264:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 11(Radians) 262 8 26 53 263 15 15 16
             267:     10(int) Constant 34
             265:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 11(Radians) 266 40 26 267 252 15 15 16
             268:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 11(Radians) 262 8 26 53 263 15 15 16
             269:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 10(Fract) 270 35 26 215 15 36 270 15 16 249 253 254 258 261 264 265 268
        271(ubo):             TypeStruct 248(UBO)
             272:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 11(Radians) 273 269 26 69 69 15 15 16
             274:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 10(Fract) 273 35 26 215 15 36 273 15 16 272
             275:             TypePointer Uniform 271(ubo)
             276:    275(ptr) Variable Uniform
             277:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 18(Atan) 27 274 26 215 15 36 27 276 222
             278:    116(int) Constant 4
             279:             TypePointer Uniform 7(float)
             288:             TypePointer Uniform 242
             300:             TypePointer Uniform 42(fvec4)
             309:    116(int) Constant 6
             313:    116(int) Constant 5
             324:             TypePointer Input 18
325(input.TessLevelOuter):    324(ptr) Variable Input
             326:             TypePointer Input 7(float)
             339:             TypePointer Input 21
340(input.TessLevelInner):    339(ptr) Variable Input
             348:             TypePointer Input 44(fvec3)
  349(TessCoord):    348(ptr) Variable Input
             354:             TypePointer Function 60
             356:             TypeArray 42(fvec4) 17
             357:             TypePointer Input 356
  358(patch.Pos):    357(ptr) Variable Input
             359:             TypePointer Input 42(fvec4)
             363:             TypeArray 44(fvec3) 17
             364:             TypePointer Input 363
365(patch.Normal):    364(ptr) Variable Input
             369:             TypeArray 39(fvec2) 17
             370:             TypePointer Input 369
   371(patch.UV):    370(ptr) Variable Input
             372:             TypePointer Input 39(fvec2)
             410:             TypePointer Output 42(fvec4)
411(@entryPointOutput.Pos):    410(ptr) Variable Output
             414:             TypePointer Output 44(fvec3)
415(@entryPointOutput.Normal):    414(ptr) Variable Output
             418:             TypePointer Output 39(fvec2)
419(@entryPointOutput.UV):    418(ptr) Variable Output
422(@entryPointOutput.ViewVec):    414(ptr) Variable Output
425(@entryPointOutput.LightVec):    414(ptr) Variable Output
428(@entryPointOutput.EyePos):    414(ptr) Variable Output
431(@entryPointOutput.WorldPos):    414(ptr) Variable Output
         5(main):           3 Function None 4
               6:             Label
      323(input):     38(ptr) Variable Function
  347(TessCoord):     41(ptr) Variable Function
      355(patch):    354(ptr) Variable Function
403(flattenTemp):    100(ptr) Variable Function
      405(param):     38(ptr) Variable Function
      407(param):     41(ptr) Variable Function
             327:    326(ptr) AccessChain 325(input.TessLevelOuter) 119
             328:    7(float) Load 327
             329:    124(ptr) AccessChain 323(input) 119 119
                              Store 329 328
             330:    326(ptr) AccessChain 325(input.TessLevelOuter) 122
             331:    7(float) Load 330
             332:    124(ptr) AccessChain 323(input) 119 122
                              Store 332 331
             333:    326(ptr) AccessChain 325(input.TessLevelOuter) 120
             334:    7(float) Load 333
             335:    124(ptr) AccessChain 323(input) 119 120
                              Store 335 334
             336:    326(ptr) AccessChain 325(input.TessLevelOuter) 134
             337:    7(float) Load 336
             338:    124(ptr) AccessChain 323(input) 119 134
                              Store 338 337
             341:    326(ptr) AccessChain 340(input.TessLevelInner) 119
             342:    7(float) Load 341
             343:    124(ptr) AccessChain 323(input) 122 119
                              Store 343 342
             344:    326(ptr) AccessChain 340(input.TessLevelInner) 122
             345:    7(float) Load 344
             346:    124(ptr) AccessChain 323(input) 122 122
                              Store 346 345
             350:   44(fvec3) Load 349(TessCoord)
             351:    7(float) CompositeExtract 350 0
             352:    7(float) CompositeExtract 350 1
             353:   39(fvec2) CompositeConstruct 351 352
                              Store 347(TessCoord) 353
             360:    359(ptr) AccessChain 358(patch.Pos) 119
             361:   42(fvec4) Load 360
             362:    178(ptr) AccessChain 355(patch) 119 119
                              Store 362 361
             366:    348(ptr) AccessChain 365(patch.Normal) 119
             367:   44(fvec3) Load 366
             368:    148(ptr) AccessChain 355(patch) 119 122
                              Store 368 367
             373:    372(ptr) AccessChain 371(patch.UV) 119
             374:   39(fvec2) Load 373
             375:     41(ptr) AccessChain 355(patch) 119 120
                              Store 375 374
             376:    359(ptr) AccessChain 358(patch.Pos) 122
             377:   42(fvec4) Load 376
             378:    178(ptr) AccessChain 355(patch) 122 119
                              Store 378 377
             379:    348(ptr) AccessChain 365(patch.Normal) 122
             380:   44(fvec3) Load 379
             381:    148(ptr) AccessChain 355(patch) 122 122
                              Store 381 380
             382:    372(ptr) AccessChain 371(patch.UV) 122
             383:   39(fvec2) Load 382
             384:     41(ptr) AccessChain 355(patch) 122 120
                              Store 384 383
             385:    359(ptr) AccessChain 358(patch.Pos) 120
             386:   42(fvec4) Load 385
             387:    178(ptr) AccessChain 355(patch) 120 119
                              Store 387 386
             388:    348(ptr) AccessChain 365(patch.Normal) 120
             389:   44(fvec3) Load 388
             390:    148(ptr) AccessChain 355(patch) 120 122
                              Store 390 389
             391:    372(ptr) AccessChain 371(patch.UV) 120
             392:   39(fvec2) Load 391
             393:     41(ptr) AccessChain 355(patch) 120 120
                              Store 393 392
             394:    359(ptr) AccessChain 358(patch.Pos) 134
             395:   42(fvec4) Load 394
             396:    178(ptr) AccessChain 355(patch) 134 119
                              Store 396 395
             397:    348(ptr) AccessChain 365(patch.Normal) 134
             398:   44(fvec3) Load 397
             399:    148(ptr) AccessChain 355(patch) 134 122
                              Store 399 398
             400:    372(ptr) AccessChain 371(patch.UV) 134
             401:   39(fvec2) Load 400
             402:     41(ptr) AccessChain 355(patch) 134 120
                              Store 402 401
             404:          60 Load 355(patch)
             406:23(ConstantsHSOutput) Load 323(input)
                              Store 405(param) 406
             408:   39(fvec2) Load 347(TessCoord)
                              Store 407(param) 408
             409:62(DSOutput) FunctionCall 83(@main(struct-ConstantsHSOutput-f1[4]-f1[2]1;vf2;struct-HSOutput-vf4-vf3-vf21[4];) 405(param) 407(param) 404
                              Store 403(flattenTemp) 409
             412:    178(ptr) AccessChain 403(flattenTemp) 119
             413:   42(fvec4) Load 412
                              Store 411(@entryPointOutput.Pos) 413
             416:    148(ptr) AccessChain 403(flattenTemp) 122
             417:   44(fvec3) Load 416
                              Store 415(@entryPointOutput.Normal) 417
             420:     41(ptr) AccessChain 403(flattenTemp) 120
             421:   39(fvec2) Load 420
                              Store 419(@entryPointOutput.UV) 421
             423:    148(ptr) AccessChain 403(flattenTemp) 134
             424:   44(fvec3) Load 423
                              Store 422(@entryPointOutput.ViewVec) 424
             426:    148(ptr) AccessChain 403(flattenTemp) 278
             427:   44(fvec3) Load 426
                              Store 425(@entryPointOutput.LightVec) 427
             429:    148(ptr) AccessChain 403(flattenTemp) 313
             430:   44(fvec3) Load 429
                              Store 428(@entryPointOutput.EyePos) 430
             432:    148(ptr) AccessChain 403(flattenTemp) 309
             433:   44(fvec3) Load 432
                              Store 431(@entryPointOutput.WorldPos) 433
                              Return
                              FunctionEnd
83(@main(struct-ConstantsHSOutput-f1[4]-f1[2]1;vf2;struct-HSOutput-vf4-vf3-vf21[4];):62(DSOutput) Function None 78
       80(input):     38(ptr) FunctionParameter
   81(TessCoord):     41(ptr) FunctionParameter
       82(patch):          60 FunctionParameter
              86:             Label
     101(output):    100(ptr) Variable Function
        111(uv1):     41(ptr) Variable Function
        129(uv2):     41(ptr) Variable Function
         149(n1):    148(ptr) Variable Function
         160(n2):    148(ptr) Variable Function
       179(pos1):    178(ptr) Variable Function
       190(pos2):    178(ptr) Variable Function
        201(pos):    178(ptr) Variable Function
              87:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 23(Acosh) 85
              88:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 103 26 15 15 15 15
              91:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 28(Log) 89 80(input) 92
              95:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 28(Log) 93 81(TessCoord) 92
              98:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 28(Log) 96 82(patch) 92
              99:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 101 85 83(@main(struct-ConstantsHSOutput-f1[4]-f1[2]1;vf2;struct-HSOutput-vf4-vf3-vf21[4];)
             105:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 28(Log) 102 101(output) 92
                              Store 101(output) 110
             115:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 28(Log) 112 111(uv1) 92
             121:   39(fvec2) CompositeExtract 82(patch) 0 2
             123:   39(fvec2) CompositeExtract 82(patch) 1 2
             125:    124(ptr) AccessChain 81(TessCoord) 15
             126:    7(float) Load 125
             127:   39(fvec2) CompositeConstruct 126 126
             128:   39(fvec2) ExtInst 2(GLSL.std.450) 46(FMix) 121 123 127
                              Store 111(uv1) 128
             133:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 28(Log) 130 129(uv2) 92
             135:   39(fvec2) CompositeExtract 82(patch) 3 2
             136:   39(fvec2) CompositeExtract 82(patch) 2 2
             137:    124(ptr) AccessChain 81(TessCoord) 15
             138:    7(float) Load 137
             139:   39(fvec2) CompositeConstruct 138 138
             140:   39(fvec2) ExtInst 2(GLSL.std.450) 46(FMix) 135 136 139
                              Store 129(uv2) 140
             141:   39(fvec2) Load 111(uv1)
             142:   39(fvec2) Load 129(uv2)
             143:    124(ptr) AccessChain 81(TessCoord) 35
             144:    7(float) Load 143
             145:   39(fvec2) CompositeConstruct 144 144
             146:   39(fvec2) ExtInst 2(GLSL.std.450) 46(FMix) 141 142 145
             147:     41(ptr) AccessChain 101(output) 120
                              Store 147 146
             153:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 28(Log) 150 149(n1) 92
             154:   44(fvec3) CompositeExtract 82(patch) 0 1
             155:   44(fvec3) CompositeExtract 82(patch) 1 1
             156:    124(ptr) AccessChain 81(TessCoord) 15
             157:    7(float) Load 156
             158:   44(fvec3) CompositeConstruct 157 157 157
             159:   44(fvec3) ExtInst 2(GLSL.std.450) 46(FMix) 154 155 158
                              Store 149(n1) 159
             164:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 28(Log) 161 160(n2) 92
             165:   44(fvec3) CompositeExtract 82(patch) 3 1
             166:   44(fvec3) CompositeExtract 82(patch) 2 1
             167:    124(ptr) AccessChain 81(TessCoord) 15
             168:    7(float) Load 167
             169:   44(fvec3) CompositeConstruct 168 168 168
             170:   44(fvec3) ExtInst 2(GLSL.std.450) 46(FMix) 165 166 169
                              Store 160(n2) 170
             171:   44(fvec3) Load 149(n1)
             172:   44(fvec3) Load 160(n2)
             173:    124(ptr) AccessChain 81(TessCoord) 35
             174:    7(float) Load 173
             175:   44(fvec3) CompositeConstruct 174 174 174
             176:   44(fvec3) ExtInst 2(GLSL.std.450) 46(FMix) 171 172 175
             177:    148(ptr) AccessChain 101(output) 122
                              Store 177 176
             183:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 28(Log) 180 179(pos1) 92
             184:   42(fvec4) CompositeExtract 82(patch) 0 0
             185:   42(fvec4) CompositeExtract 82(patch) 1 0
             186:    124(ptr) AccessChain 81(TessCoord) 15
             187:    7(float) Load 186
             188:   42(fvec4) CompositeConstruct 187 187 187 187
             189:   42(fvec4) ExtInst 2(GLSL.std.450) 46(FMix) 184 185 188
                              Store 179(pos1) 189
             194:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 28(Log) 191 190(pos2) 92
             195:   42(fvec4) CompositeExtract 82(patch) 3 0
             196:   42(fvec4) CompositeExtract 82(patch) 2 0
             197:    124(ptr) AccessChain 81(TessCoord) 15
             198:    7(float) Load 197
             199:   42(fvec4) CompositeConstruct 198 198 198 198
             200:   42(fvec4) ExtInst 2(GLSL.std.450) 46(FMix) 195 196 199
                              Store 190(pos2) 200
             205:           3 ExtInst 1(NonSemantic.Shader.DebugInfo.100) 28(Log) 202 201(pos) 92
             206:   42(fvec4) Load 179(pos1)
             207:   42(fvec4) Load 190(pos2)
             208:    124(ptr) AccessChain 81(TessCoord) 35
             209:    7(float) Load 208
             210:   42(fvec4) CompositeConstruct 209 209 209 209
             211:   42(fvec4) ExtInst 2(GLSL.std.450) 46(FMix) 206 207 210
                              Store 201(pos) 211
             223:         212 Load 219(displacementMapTexture)
             232:         224 Load 229(displacementMapSampler)
             237:         233 SampledImage 223 232
             238:     41(ptr) AccessChain 101(output) 120
             239:   39(fvec2) Load 238
             240:   42(fvec4) ImageSampleExplicitLod 237 239 Lod 106
             241:    7(float) CompositeExtract 240 0
             280:    279(ptr) AccessChain 276 119 278
             281:    7(float) Load 280
             282:    7(float) FMul 241 281
             283:    124(ptr) AccessChain 201(pos) 35
             284:    7(float) Load 283
             285:    7(float) FSub 284 282
             286:    124(ptr) AccessChain 201(pos) 35
                              Store 286 285
             287:   42(fvec4) Load 201(pos)
             289:    288(ptr) AccessChain 276 119 122
             290:         242 Load 289
             291:   42(fvec4) VectorTimesMatrix 287 290
             292:    288(ptr) AccessChain 276 119 119
             293:         242 Load 292
             294:   42(fvec4) VectorTimesMatrix 291 293
             295:    178(ptr) AccessChain 101(output) 119
                              Store 295 294
             296:   42(fvec4) Load 201(pos)
             297:   44(fvec3) VectorShuffle 296 296 0 1 2
             298:   44(fvec3) FNegate 297
             299:    148(ptr) AccessChain 101(output) 134
                              Store 299 298
             301:    300(ptr) AccessChain 276 119 120
             302:   42(fvec4) Load 301
             303:   44(fvec3) VectorShuffle 302 302 0 1 2
             304:    148(ptr) AccessChain 101(output) 134
             305:   44(fvec3) Load 304
             306:   44(fvec3) FAdd 303 305
             307:   44(fvec3) ExtInst 2(GLSL.std.450) 69(Normalize) 306
             308:    148(ptr) AccessChain 101(output) 278
                              Store 308 307
             310:   42(fvec4) Load 201(pos)
             311:   44(fvec3) VectorShuffle 310 310 0 1 2
             312:    148(ptr) AccessChain 101(output) 309
                              Store 312 311
             314:   42(fvec4) Load 201(pos)
             315:    288(ptr) AccessChain 276 119 122
             316:         242 Load 315
             317:   42(fvec4) VectorTimesMatrix 314 316
             318:   44(fvec3) VectorShuffle 317 317 0 1 2
             319:    148(ptr) AccessChain 101(output) 313
                              Store 319 318
             320:62(DSOutput) Load 101(output)
                              ReturnValue 320
                              FunctionEnd
