Branimir Karadžić před 8 roky
rodič
revize
0c3926586a
100 změnil soubory, kde provedl 2464 přidání a 686 odebrání
  1. 17 2
      3rdparty/glslang/SPIRV/GlslangToSpv.cpp
  2. 2 2
      3rdparty/glslang/SPIRV/doc.cpp
  3. 6 0
      3rdparty/glslang/SPIRV/spirv.hpp
  4. 53 56
      3rdparty/glslang/StandAlone/StandAlone.cpp
  5. 5 8
      3rdparty/glslang/StandAlone/Worklist.h
  6. 3 0
      3rdparty/glslang/Test/450.geom
  7. 60 49
      3rdparty/glslang/Test/baseResults/450.geom.out
  8. 3 2
      3rdparty/glslang/Test/baseResults/hlsl.amend.frag.out
  9. 3 2
      3rdparty/glslang/Test/baseResults/hlsl.array.flatten.frag.out
  10. 3 2
      3rdparty/glslang/Test/baseResults/hlsl.array.frag.out
  11. 3 2
      3rdparty/glslang/Test/baseResults/hlsl.array.implicit-size.frag.out
  12. 3 2
      3rdparty/glslang/Test/baseResults/hlsl.array.multidim.frag.out
  13. 3 2
      3rdparty/glslang/Test/baseResults/hlsl.assoc.frag.out
  14. 3 2
      3rdparty/glslang/Test/baseResults/hlsl.attribute.expression.comp.out
  15. 3 2
      3rdparty/glslang/Test/baseResults/hlsl.attribute.frag.out
  16. 3 2
      3rdparty/glslang/Test/baseResults/hlsl.basic.comp.out
  17. 44 35
      3rdparty/glslang/Test/baseResults/hlsl.basic.geom.out
  18. 3 2
      3rdparty/glslang/Test/baseResults/hlsl.buffer.frag.out
  19. 3 2
      3rdparty/glslang/Test/baseResults/hlsl.calculatelod.dx10.frag.out
  20. 2 2
      3rdparty/glslang/Test/baseResults/hlsl.calculatelodunclamped.dx10.frag.out
  21. 3 2
      3rdparty/glslang/Test/baseResults/hlsl.cast.frag.out
  22. 3 2
      3rdparty/glslang/Test/baseResults/hlsl.clip.frag.out
  23. 3 2
      3rdparty/glslang/Test/baseResults/hlsl.comparison.vec.frag.out
  24. 3 2
      3rdparty/glslang/Test/baseResults/hlsl.conditional.frag.out
  25. 3 2
      3rdparty/glslang/Test/baseResults/hlsl.constructexpr.frag.out
  26. 1 0
      3rdparty/glslang/Test/baseResults/hlsl.deadFunctionMissingBody.vert.out
  27. 3 2
      3rdparty/glslang/Test/baseResults/hlsl.depthGreater.frag.out
  28. 3 2
      3rdparty/glslang/Test/baseResults/hlsl.depthLess.frag.out
  29. 3 2
      3rdparty/glslang/Test/baseResults/hlsl.discard.frag.out
  30. 3 2
      3rdparty/glslang/Test/baseResults/hlsl.doLoop.frag.out
  31. 3 2
      3rdparty/glslang/Test/baseResults/hlsl.domain.1.tese.out
  32. 419 0
      3rdparty/glslang/Test/baseResults/hlsl.domain.2.tese.out
  33. 393 0
      3rdparty/glslang/Test/baseResults/hlsl.domain.3.tese.out
  34. 3 2
      3rdparty/glslang/Test/baseResults/hlsl.emptystructreturn.frag.out
  35. 3 2
      3rdparty/glslang/Test/baseResults/hlsl.emptystructreturn.vert.out
  36. 3 2
      3rdparty/glslang/Test/baseResults/hlsl.entry-in.frag.out
  37. 3 2
      3rdparty/glslang/Test/baseResults/hlsl.entry-out.frag.out
  38. 3 2
      3rdparty/glslang/Test/baseResults/hlsl.entry.rename.frag.out
  39. 3 2
      3rdparty/glslang/Test/baseResults/hlsl.flatten.return.frag.out
  40. 3 2
      3rdparty/glslang/Test/baseResults/hlsl.float1.frag.out
  41. 3 2
      3rdparty/glslang/Test/baseResults/hlsl.float4.frag.out
  42. 3 2
      3rdparty/glslang/Test/baseResults/hlsl.forLoop.frag.out
  43. 3 2
      3rdparty/glslang/Test/baseResults/hlsl.gather.array.dx10.frag.out
  44. 3 2
      3rdparty/glslang/Test/baseResults/hlsl.gather.basic.dx10.frag.out
  45. 3 2
      3rdparty/glslang/Test/baseResults/hlsl.gather.basic.dx10.vert.out
  46. 3 2
      3rdparty/glslang/Test/baseResults/hlsl.gather.offset.dx10.frag.out
  47. 3 2
      3rdparty/glslang/Test/baseResults/hlsl.gather.offsetarray.dx10.frag.out
  48. 3 2
      3rdparty/glslang/Test/baseResults/hlsl.gatherRGBA.array.dx10.frag.out
  49. 3 2
      3rdparty/glslang/Test/baseResults/hlsl.gatherRGBA.basic.dx10.frag.out
  50. 3 2
      3rdparty/glslang/Test/baseResults/hlsl.gatherRGBA.offset.dx10.frag.out
  51. 3 2
      3rdparty/glslang/Test/baseResults/hlsl.gatherRGBA.offsetarray.dx10.frag.out
  52. 3 2
      3rdparty/glslang/Test/baseResults/hlsl.gathercmpRGBA.offset.dx10.frag.out
  53. 3 2
      3rdparty/glslang/Test/baseResults/hlsl.getdimensions.dx10.frag.out
  54. 3 2
      3rdparty/glslang/Test/baseResults/hlsl.getdimensions.dx10.vert.out
  55. 3 2
      3rdparty/glslang/Test/baseResults/hlsl.getdimensions.rw.dx10.frag.out
  56. 2 2
      3rdparty/glslang/Test/baseResults/hlsl.getsampleposition.dx10.frag.out
  57. 85 0
      3rdparty/glslang/Test/baseResults/hlsl.hlslOffset.vert.out
  58. 3 2
      3rdparty/glslang/Test/baseResults/hlsl.hull.1.tesc.out
  59. 3 2
      3rdparty/glslang/Test/baseResults/hlsl.hull.2.tesc.out
  60. 3 2
      3rdparty/glslang/Test/baseResults/hlsl.hull.ctrlpt-1.tesc.out
  61. 634 0
      3rdparty/glslang/Test/baseResults/hlsl.hull.ctrlpt-2.tesc.out
  62. 3 2
      3rdparty/glslang/Test/baseResults/hlsl.hull.void.tesc.out
  63. 3 2
      3rdparty/glslang/Test/baseResults/hlsl.identifier.sample.frag.out
  64. 3 2
      3rdparty/glslang/Test/baseResults/hlsl.if.frag.out
  65. 3 2
      3rdparty/glslang/Test/baseResults/hlsl.implicitBool.frag.out
  66. 3 2
      3rdparty/glslang/Test/baseResults/hlsl.init.frag.out
  67. 3 2
      3rdparty/glslang/Test/baseResults/hlsl.init2.frag.out
  68. 3 2
      3rdparty/glslang/Test/baseResults/hlsl.inoutquals.frag.out
  69. 3 2
      3rdparty/glslang/Test/baseResults/hlsl.intrinsic.frexp.frag.out
  70. 3 2
      3rdparty/glslang/Test/baseResults/hlsl.intrinsic.frexp.vert.out
  71. 3 2
      3rdparty/glslang/Test/baseResults/hlsl.intrinsics.barriers.comp.out
  72. 3 2
      3rdparty/glslang/Test/baseResults/hlsl.intrinsics.comp.out
  73. 3 2
      3rdparty/glslang/Test/baseResults/hlsl.intrinsics.d3dcolortoubyte4.frag.out
  74. 3 2
      3rdparty/glslang/Test/baseResults/hlsl.intrinsics.double.frag.out
  75. 3 2
      3rdparty/glslang/Test/baseResults/hlsl.intrinsics.evalfns.frag.out
  76. 3 2
      3rdparty/glslang/Test/baseResults/hlsl.intrinsics.f1632.frag.out
  77. 3 2
      3rdparty/glslang/Test/baseResults/hlsl.intrinsics.f3216.frag.out
  78. 3 2
      3rdparty/glslang/Test/baseResults/hlsl.intrinsics.frag.out
  79. 3 2
      3rdparty/glslang/Test/baseResults/hlsl.intrinsics.lit.frag.out
  80. 3 2
      3rdparty/glslang/Test/baseResults/hlsl.intrinsics.negative.comp.out
  81. 2 2
      3rdparty/glslang/Test/baseResults/hlsl.intrinsics.negative.frag.out
  82. 3 2
      3rdparty/glslang/Test/baseResults/hlsl.intrinsics.negative.vert.out
  83. 3 2
      3rdparty/glslang/Test/baseResults/hlsl.intrinsics.promote.down.frag.out
  84. 105 107
      3rdparty/glslang/Test/baseResults/hlsl.intrinsics.promote.frag.out
  85. 10 10
      3rdparty/glslang/Test/baseResults/hlsl.intrinsics.promote.outputs.frag.out
  86. 3 2
      3rdparty/glslang/Test/baseResults/hlsl.intrinsics.vert.out
  87. 141 0
      3rdparty/glslang/Test/baseResults/hlsl.isfinite.frag.out
  88. 3 2
      3rdparty/glslang/Test/baseResults/hlsl.layout.frag.out
  89. 3 2
      3rdparty/glslang/Test/baseResults/hlsl.load.2dms.dx10.frag.out
  90. 3 2
      3rdparty/glslang/Test/baseResults/hlsl.load.array.dx10.frag.out
  91. 3 2
      3rdparty/glslang/Test/baseResults/hlsl.load.basic.dx10.frag.out
  92. 3 2
      3rdparty/glslang/Test/baseResults/hlsl.load.basic.dx10.vert.out
  93. 120 125
      3rdparty/glslang/Test/baseResults/hlsl.load.buffer.dx10.frag.out
  94. 123 128
      3rdparty/glslang/Test/baseResults/hlsl.load.buffer.float.dx10.frag.out
  95. 3 2
      3rdparty/glslang/Test/baseResults/hlsl.load.offset.dx10.frag.out
  96. 3 2
      3rdparty/glslang/Test/baseResults/hlsl.load.offsetarray.dx10.frag.out
  97. 3 2
      3rdparty/glslang/Test/baseResults/hlsl.load.rwbuffer.dx10.frag.out
  98. 3 2
      3rdparty/glslang/Test/baseResults/hlsl.load.rwtexture.array.dx10.frag.out
  99. 3 2
      3rdparty/glslang/Test/baseResults/hlsl.load.rwtexture.dx10.frag.out
  100. 3 2
      3rdparty/glslang/Test/baseResults/hlsl.logical.binary.frag.out

+ 17 - 2
3rdparty/glslang/SPIRV/GlslangToSpv.cpp

@@ -222,8 +222,7 @@ spv::SourceLanguage TranslateSourceLanguage(glslang::EShSource source, EProfile
             return spv::SourceLanguageUnknown;
         }
     case glslang::EShSourceHlsl:
-        // Use SourceLanguageUnknown instead of SourceLanguageHLSL for now, until Vulkan knows what HLSL is
-        return spv::SourceLanguageUnknown;
+        return spv::SourceLanguageHLSL;
     default:
         return spv::SourceLanguageUnknown;
     }
@@ -2728,7 +2727,23 @@ void TGlslangToSpvTraverser::updateMemberOffset(const glslang::TType& /*structTy
     int memberSize;
     int dummyStride;
     int memberAlignment = glslangIntermediate->getBaseAlignment(memberType, memberSize, dummyStride, explicitLayout == glslang::ElpStd140, matrixLayout == glslang::ElmRowMajor);
+
+    // Adjust alignment for HLSL rules
+    if (glslangIntermediate->usingHlslOFfsets() &&
+        ! memberType.isArray() && memberType.isVector()) {
+        int dummySize;
+        int componentAlignment = glslangIntermediate->getBaseAlignmentScalar(memberType, dummySize);
+        if (componentAlignment <= 4)
+            memberAlignment = componentAlignment;
+    }
+
+    // Bump up to member alignment
     glslang::RoundToPow2(currentOffset, memberAlignment);
+
+    // Bump up to vec4 if there is a bad straddle
+    if (glslangIntermediate->improperStraddle(memberType, memberSize, currentOffset))
+        glslang::RoundToPow2(currentOffset, 16);
+
     nextOffset = currentOffset + memberSize;
 }
 

+ 2 - 2
3rdparty/glslang/SPIRV/doc.cpp

@@ -68,9 +68,9 @@ namespace spv {
 // Also, the ceilings are declared next to these, to help keep them in sync.
 // Ceilings should be
 //  - one more than the maximum value an enumerant takes on, for non-mask enumerants
-//    (for non-sparse enums, this is the number of enumurants)
+//    (for non-sparse enums, this is the number of enumerants)
 //  - the number of bits consumed by the set of masks
-//    (for non-sparse mask enums, this is the number of enumurants)
+//    (for non-sparse mask enums, this is the number of enumerants)
 //
 
 const int SourceLanguageCeiling = 6; // HLSL todo: need official enumerant

+ 6 - 0
3rdparty/glslang/SPIRV/spirv.hpp

@@ -61,6 +61,7 @@ enum SourceLanguage {
     SourceLanguageGLSL = 2,
     SourceLanguageOpenCL_C = 3,
     SourceLanguageOpenCL_CPP = 4,
+    SourceLanguageHLSL = 5,
     SourceLanguageMax = 0x7fffffff,
 };
 
@@ -137,6 +138,7 @@ enum StorageClass {
     StorageClassPushConstant = 9,
     StorageClassAtomicCounter = 10,
     StorageClassImage = 11,
+    StorageClassStorageBuffer = 12,
     StorageClassMax = 0x7fffffff,
 };
 
@@ -616,12 +618,16 @@ enum Capability {
     CapabilitySubgroupBallotKHR = 4423,
     CapabilityDrawParameters = 4427,
     CapabilitySubgroupVoteKHR = 4431,
+    CapabilityStorageBuffer16BitAccess = 4433,
     CapabilityStorageUniformBufferBlock16 = 4433,
     CapabilityStorageUniform16 = 4434,
+    CapabilityUniformAndStorageBuffer16BitAccess = 4434,
     CapabilityStoragePushConstant16 = 4435,
     CapabilityStorageInputOutput16 = 4436,
     CapabilityDeviceGroup = 4437,
     CapabilityMultiView = 4439,
+    CapabilityVariablePointersStorageBuffer = 4441,
+    CapabilityVariablePointers = 4442,
     CapabilitySampleMaskOverrideCoverageNV = 5249,
     CapabilityGeometryShaderPassthroughNV = 5251,
     CapabilityShaderViewportIndexLayerNV = 5254,

+ 53 - 56
3rdparty/glslang/StandAlone/StandAlone.cpp

@@ -51,6 +51,8 @@
 #include <cctype>
 #include <cmath>
 #include <array>
+#include <memory>
+#include <thread>
 
 #include "../glslang/OSDependent/osinclude.h"
 
@@ -84,6 +86,7 @@ enum TOptions {
     EOptionFlattenUniformArrays = (1 << 20),
     EOptionNoStorageFormat      = (1 << 21),
     EOptionKeepUncalled         = (1 << 22),
+    EOptionHlslOffsets          = (1 << 23),
 };
 
 //
@@ -150,13 +153,6 @@ void ProcessConfigFile()
         delete[] config;
 }
 
-// thread-safe list of shaders to asynchronously grab and compile
-glslang::TWorklist Worklist;
-
-// array of unique places to leave the shader names and infologs for the asynchronous compiles
-glslang::TWorkItem** Work = 0;
-int NumWorkItems = 0;
-
 int Options = 0;
 const char* ExecutableName = nullptr;
 const char* binaryFileName = nullptr;
@@ -253,7 +249,7 @@ void ProcessBindingBase(int& argc, char**& argv, std::array<unsigned int, EShLan
 //
 // Does not return (it exits) if command-line is fatally flawed.
 //
-void ProcessArguments(int argc, char* argv[])
+void ProcessArguments(std::vector<std::unique_ptr<glslang::TWorkItem>>& workItems, int argc, char* argv[])
 {
     baseSamplerBinding.fill(0);
     baseTextureBinding.fill(0);
@@ -262,10 +258,7 @@ void ProcessArguments(int argc, char* argv[])
     baseSsboBinding.fill(0);
 
     ExecutableName = argv[0];
-    NumWorkItems = argc;  // will include some empties where the '-' options were, but it doesn't matter, they'll be 0
-    Work = new glslang::TWorkItem*[NumWorkItems];
-    for (int w = 0; w < NumWorkItems; ++w)
-        Work[w] = 0;
+    workItems.reserve(argc);
 
     argc--;
     argv++;
@@ -319,8 +312,7 @@ void ProcessArguments(int argc, char* argv[])
                         } else
                             Error("no <C-variable-name> provided for --variable-name");
                         break;
-                    }
-                    else if (lowerword == "source-entrypoint" || // synonyms
+                    } else if (lowerword == "source-entrypoint" || // synonyms
                                lowerword == "sep") {
                         sourceEntryPointName = argv[1];
                         if (argc > 0) {
@@ -332,6 +324,8 @@ void ProcessArguments(int argc, char* argv[])
                     } else if (lowerword == "keep-uncalled" || // synonyms
                                lowerword == "ku") {
                         Options |= EOptionKeepUncalled;
+                    } else if (lowerword == "hlsl-offsets") {
+                        Options |= EOptionHlslOffsets;
                     } else {
                         usage();
                     }
@@ -420,9 +414,7 @@ void ProcessArguments(int argc, char* argv[])
                 Options |= EOptionSuppressInfolog;
                 break;
             case 't':
-                #ifdef _WIN32
-                    Options |= EOptionMultiThreaded;
-                #endif
+                Options |= EOptionMultiThreaded;
                 break;
             case 'v':
                 Options |= EOptionDumpVersions;
@@ -440,8 +432,7 @@ void ProcessArguments(int argc, char* argv[])
         } else {
             std::string name(argv[0]);
             if (! SetConfigFile(name)) {
-                Work[argc] = new glslang::TWorkItem(name);
-                Worklist.add(Work[argc]);
+                workItems.push_back(std::unique_ptr<glslang::TWorkItem>(new glslang::TWorkItem(name)));
             }
         }
     }
@@ -482,20 +473,20 @@ void SetMessageOptions(EShMessages& messages)
         messages = (EShMessages)(messages | EShMsgCascadingErrors);
     if (Options & EOptionKeepUncalled)
         messages = (EShMessages)(messages | EShMsgKeepUncalled);
+    if (Options & EOptionHlslOffsets)
+        messages = (EShMessages)(messages | EShMsgHlslOffsets);
 }
 
 //
 // Thread entry point, for non-linking asynchronous mode.
 //
-// Return 0 for failure, 1 for success.
-//
-unsigned int CompileShaders(void*)
+void CompileShaders(glslang::TWorklist& worklist)
 {
     glslang::TWorkItem* workItem;
-    while (Worklist.remove(workItem)) {
+    while (worklist.remove(workItem)) {
         ShHandle compiler = ShConstructCompiler(FindLanguage(workItem->name), Options);
         if (compiler == 0)
-            return 0;
+            return;
 
         CompileFile(workItem->name.c_str(), compiler);
 
@@ -504,8 +495,6 @@ unsigned int CompileShaders(void*)
 
         ShDestruct(compiler);
     }
-
-    return 0;
 }
 
 // Outputs the given string, but only if it is non-null and non-empty.
@@ -705,7 +694,7 @@ void CompileAndLinkShaderUnits(std::vector<ShaderCompUnit> compUnits)
 // performance and memory testing, the actual compile/link can be put in
 // a loop, independent of processing the work items and file IO.
 //
-void CompileAndLinkShaderFiles()
+void CompileAndLinkShaderFiles(glslang::TWorklist& Worklist)
 {
     std::vector<ShaderCompUnit> compUnits;
 
@@ -747,11 +736,19 @@ void CompileAndLinkShaderFiles()
 
 int C_DECL main(int argc, char* argv[])
 {
-    ProcessArguments(argc, argv);
+    // array of unique places to leave the shader names and infologs for the asynchronous compiles
+    std::vector<std::unique_ptr<glslang::TWorkItem>> workItems;
+    ProcessArguments(workItems, argc, argv);
+
+    glslang::TWorklist workList;
+    std::for_each(workItems.begin(), workItems.end(), [&workList](std::unique_ptr<glslang::TWorkItem>& item) {
+        assert(item);
+        workList.add(item.get());
+    });
 
     if (Options & EOptionDumpConfig) {
         printf("%s", glslang::GetDefaultTBuiltInResourceString().c_str());
-        if (Worklist.empty())
+        if (workList.empty())
             return ESuccess;
     }
 
@@ -766,11 +763,11 @@ int C_DECL main(int argc, char* argv[])
         printf("Khronos Tool ID %d\n", glslang::GetKhronosToolId());
         printf("GL_KHR_vulkan_glsl version %d\n", 100);
         printf("ARB_GL_gl_spirv version %d\n", 100);
-        if (Worklist.empty())
+        if (workList.empty())
             return ESuccess;
     }
 
-    if (Worklist.empty()) {
+    if (workList.empty()) {
         usage();
     }
 
@@ -784,47 +781,42 @@ int C_DECL main(int argc, char* argv[])
     if (Options & EOptionLinkProgram ||
         Options & EOptionOutputPreprocessed) {
         glslang::InitializeProcess();
-        CompileAndLinkShaderFiles();
+        CompileAndLinkShaderFiles(workList);
         glslang::FinalizeProcess();
-        for (int w = 0; w < NumWorkItems; ++w) {
-          if (Work[w]) {
-            delete Work[w];
-          }
-        }
     } else {
         ShInitialize();
 
-        bool printShaderNames = Worklist.size() > 1;
+        bool printShaderNames = workList.size() > 1;
 
-        if (Options & EOptionMultiThreaded) {
-            const int NumThreads = 16;
-            void* threads[NumThreads];
-            for (int t = 0; t < NumThreads; ++t) {
-                threads[t] = glslang::OS_CreateThread(&CompileShaders);
-                if (! threads[t]) {
+        if (Options & EOptionMultiThreaded)
+        {
+            std::array<std::thread, 16> threads;
+            for (unsigned int t = 0; t < threads.size(); ++t)
+            {
+                threads[t] = std::thread(CompileShaders, std::ref(workList));
+                if (threads[t].get_id() == std::thread::id())
+                {
                     printf("Failed to create thread\n");
                     return EFailThreadCreate;
                 }
             }
-            glslang::OS_WaitForAllThreads(threads, NumThreads);
+
+            std::for_each(threads.begin(), threads.end(), [](std::thread& t) { t.join(); });
         } else
-            CompileShaders(0);
+            CompileShaders(workList);
 
         // Print out all the resulting infologs
-        for (int w = 0; w < NumWorkItems; ++w) {
-            if (Work[w]) {
-                if (printShaderNames || Work[w]->results.size() > 0)
-                    PutsIfNonEmpty(Work[w]->name.c_str());
-                PutsIfNonEmpty(Work[w]->results.c_str());
-                delete Work[w];
+        for (size_t w = 0; w < workItems.size(); ++w) {
+            if (workItems[w]) {
+                if (printShaderNames || workItems[w]->results.size() > 0)
+                    PutsIfNonEmpty(workItems[w]->name.c_str());
+                PutsIfNonEmpty(workItems[w]->results.c_str());
             }
         }
 
         ShFinalize();
     }
 
-    delete[] Work;
-
     if (CompileFailed)
         return EFailCompile;
     if (LinkFailed)
@@ -1010,8 +1002,13 @@ void usage()
            "\n"
            "  --keep-uncalled                         don't eliminate uncalled functions when linking\n"
            "  --ku                                    synonym for --keep-uncalled\n"
-           "  --variable-name <name>                  Creates a C header file that contains a uint32_t array named <name> initialized with the shader binary code.\n"
-           "  --vn <name>                             synonym for --variable-name <name>.\n"
+           "\n"
+           "  --variable-name <name>                  Creates a C header file that contains a uint32_t array named <name>\n"
+           "                                          initialized with the shader binary code.\n"
+           "  --vn <name>                             synonym for --variable-name <name>\n"
+           "\n"
+           "  --hlsl-offsets                          Allow block offsets to follow HLSL rules instead of GLSL rules.\n"
+           "                                          Works independently of source language.\n"
            );
 
     exit(EFailUsage);

+ 5 - 8
3rdparty/glslang/StandAlone/Worklist.h

@@ -36,8 +36,9 @@
 #define WORKLIST_H_INCLUDED
 
 #include "../glslang/OSDependent/osinclude.h"
-#include <string>
 #include <list>
+#include <mutex>
+#include <string>
 
 namespace glslang {
 
@@ -58,24 +59,19 @@ namespace glslang {
 
         void add(TWorkItem* item)
         {
-            GetGlobalLock();
-
+            std::lock_guard<std::mutex> guard(mutex);
             worklist.push_back(item);
-
-            ReleaseGlobalLock();
         }
 
         bool remove(TWorkItem*& item)
         {
-            GetGlobalLock();
+            std::lock_guard<std::mutex> guard(mutex);
 
             if (worklist.empty())
                 return false;
             item = worklist.front();
             worklist.pop_front();
 
-            ReleaseGlobalLock();
-
             return true;
         }
 
@@ -90,6 +86,7 @@ namespace glslang {
         }
 
     protected:
+        std::mutex mutex;
         std::list<TWorkItem*> worklist;
     };
 

+ 3 - 0
3rdparty/glslang/Test/450.geom

@@ -8,7 +8,10 @@ out gl_PerVertex {
     float gl_CullDistance[3];
 };
 
+layout(triangles) in;
+
 void main()
 {
+    gl_in[3].gl_Position; // ERROR, out of range
     gl_CullDistance[2] = gl_in[1].gl_CullDistance[2];
 }

+ 60 - 49
3rdparty/glslang/Test/baseResults/450.geom.out

@@ -1,72 +1,83 @@
 450.geom
 Warning, version 450 is not yet complete; most version-specific features are present, but some are missing.
+ERROR: 0:15: '[' :  array index out of range '3'
+ERROR: 0:15: 'gl_Position' : no such field in structure 
+ERROR: 2 compilation errors.  No code generated.
+
 
 Shader version: 450
 invocations = -1
 max_vertices = -1
-input primitive = none
+input primitive = triangles
 output primitive = none
-0:? Sequence
-0:11  Function Definition: main( ( global void)
-0:11    Function Parameters: 
-0:13    Sequence
-0:13      move second child to first child ( temp float)
-0:13        direct index (layout( stream=0) temp float CullDistance)
-0:13          gl_CullDistance: direct index for structure (layout( stream=0) out 3-element array of float CullDistance)
-0:13            'anon@0' (layout( stream=0) out block{layout( stream=0) out 3-element array of float CullDistance gl_CullDistance})
-0:13            Constant:
-0:13              3 (const uint)
-0:13          Constant:
-0:13            2 (const int)
-0:13        direct index ( temp float CullDistance)
-0:13          gl_CullDistance: direct index for structure ( in 3-element array of float CullDistance)
-0:13            direct index ( temp block{ in 3-element array of float CullDistance gl_CullDistance})
-0:13              'gl_in' ( in implicitly-sized array of block{ in 3-element array of float CullDistance gl_CullDistance})
-0:13              Constant:
-0:13                1 (const int)
-0:13            Constant:
-0:13              0 (const int)
-0:13          Constant:
-0:13            2 (const int)
+ERROR: node is still EOpNull!
+0:13  Function Definition: main( ( global void)
+0:13    Function Parameters: 
+0:15    Sequence
+0:15      direct index ( temp block{ in 3-element array of float CullDistance gl_CullDistance})
+0:15        'gl_in' ( in 3-element array of block{ in 3-element array of float CullDistance gl_CullDistance})
+0:15        Constant:
+0:15          3 (const int)
+0:16      move second child to first child ( temp float)
+0:16        direct index (layout( stream=0) temp float CullDistance)
+0:16          gl_CullDistance: direct index for structure (layout( stream=0) out 3-element array of float CullDistance)
+0:16            'anon@0' (layout( stream=0) out block{layout( stream=0) out 3-element array of float CullDistance gl_CullDistance})
+0:16            Constant:
+0:16              3 (const uint)
+0:16          Constant:
+0:16            2 (const int)
+0:16        direct index ( temp float CullDistance)
+0:16          gl_CullDistance: direct index for structure ( in 3-element array of float CullDistance)
+0:16            direct index ( temp block{ in 3-element array of float CullDistance gl_CullDistance})
+0:16              'gl_in' ( in 3-element array of block{ in 3-element array of float CullDistance gl_CullDistance})
+0:16              Constant:
+0:16                1 (const int)
+0:16            Constant:
+0:16              0 (const int)
+0:16          Constant:
+0:16            2 (const int)
 0:?   Linker Objects
-0:?     'gl_in' ( in implicitly-sized array of block{ in 3-element array of float CullDistance gl_CullDistance})
+0:?     'gl_in' ( in 3-element array of block{ in 3-element array of float CullDistance gl_CullDistance})
 0:?     'anon@0' (layout( stream=0) out block{layout( stream=0) out 3-element array of float CullDistance gl_CullDistance})
 
 
 Linked geometry stage:
 
-ERROR: Linking geometry stage: At least one shader must specify an input layout primitive
 ERROR: Linking geometry stage: At least one shader must specify an output layout primitive
 ERROR: Linking geometry stage: At least one shader must specify a layout(max_vertices = value)
 
 Shader version: 450
 invocations = 1
 max_vertices = -1
-input primitive = none
+input primitive = triangles
 output primitive = none
-0:? Sequence
-0:11  Function Definition: main( ( global void)
-0:11    Function Parameters: 
-0:13    Sequence
-0:13      move second child to first child ( temp float)
-0:13        direct index (layout( stream=0) temp float CullDistance)
-0:13          gl_CullDistance: direct index for structure (layout( stream=0) out 3-element array of float CullDistance)
-0:13            'anon@0' (layout( stream=0) out block{layout( stream=0) out 3-element array of float CullDistance gl_CullDistance})
-0:13            Constant:
-0:13              3 (const uint)
-0:13          Constant:
-0:13            2 (const int)
-0:13        direct index ( temp float CullDistance)
-0:13          gl_CullDistance: direct index for structure ( in 3-element array of float CullDistance)
-0:13            direct index ( temp block{ in 3-element array of float CullDistance gl_CullDistance})
-0:13              'gl_in' ( in 2-element array of block{ in 3-element array of float CullDistance gl_CullDistance})
-0:13              Constant:
-0:13                1 (const int)
-0:13            Constant:
-0:13              0 (const int)
-0:13          Constant:
-0:13            2 (const int)
+ERROR: node is still EOpNull!
+0:13  Function Definition: main( ( global void)
+0:13    Function Parameters: 
+0:15    Sequence
+0:15      direct index ( temp block{ in 3-element array of float CullDistance gl_CullDistance})
+0:15        'gl_in' ( in 3-element array of block{ in 3-element array of float CullDistance gl_CullDistance})
+0:15        Constant:
+0:15          3 (const int)
+0:16      move second child to first child ( temp float)
+0:16        direct index (layout( stream=0) temp float CullDistance)
+0:16          gl_CullDistance: direct index for structure (layout( stream=0) out 3-element array of float CullDistance)
+0:16            'anon@0' (layout( stream=0) out block{layout( stream=0) out 3-element array of float CullDistance gl_CullDistance})
+0:16            Constant:
+0:16              3 (const uint)
+0:16          Constant:
+0:16            2 (const int)
+0:16        direct index ( temp float CullDistance)
+0:16          gl_CullDistance: direct index for structure ( in 3-element array of float CullDistance)
+0:16            direct index ( temp block{ in 3-element array of float CullDistance gl_CullDistance})
+0:16              'gl_in' ( in 3-element array of block{ in 3-element array of float CullDistance gl_CullDistance})
+0:16              Constant:
+0:16                1 (const int)
+0:16            Constant:
+0:16              0 (const int)
+0:16          Constant:
+0:16            2 (const int)
 0:?   Linker Objects
-0:?     'gl_in' ( in 2-element array of block{ in 3-element array of float CullDistance gl_CullDistance})
+0:?     'gl_in' ( in 3-element array of block{ in 3-element array of float CullDistance gl_CullDistance})
 0:?     'anon@0' (layout( stream=0) out block{layout( stream=0) out 3-element array of float CullDistance gl_CullDistance})
 

+ 3 - 2
3rdparty/glslang/Test/baseResults/hlsl.amend.frag.out

@@ -1,5 +1,5 @@
 hlsl.amend.frag
-Shader version: 450
+Shader version: 500
 gl_FragCoord origin is upper left
 0:? Sequence
 0:3  Sequence
@@ -81,7 +81,7 @@ gl_FragCoord origin is upper left
 Linked fragment stage:
 
 
-Shader version: 450
+Shader version: 500
 gl_FragCoord origin is upper left
 0:? Sequence
 0:3  Sequence
@@ -168,6 +168,7 @@ gl_FragCoord origin is upper left
                               MemoryModel Logical GLSL450
                               EntryPoint Fragment 4  "f1"
                               ExecutionMode 4 OriginUpperLeft
+                              Source HLSL 500
                               Name 4  "f1"
                               Name 6  "@f1("
                               Name 8  "f2("

+ 3 - 2
3rdparty/glslang/Test/baseResults/hlsl.array.flatten.frag.out

@@ -1,5 +1,5 @@
 hlsl.array.flatten.frag
-Shader version: 450
+Shader version: 500
 gl_FragCoord origin is upper left
 0:? Sequence
 0:17  Function Definition: TestFn1( ( temp 4-component vector of float)
@@ -173,7 +173,7 @@ gl_FragCoord origin is upper left
 Linked fragment stage:
 
 
-Shader version: 450
+Shader version: 500
 gl_FragCoord origin is upper left
 0:? Sequence
 0:17  Function Definition: TestFn1( ( temp 4-component vector of float)
@@ -353,6 +353,7 @@ gl_FragCoord origin is upper left
                               MemoryModel Logical GLSL450
                               EntryPoint Fragment 4  "main" 128
                               ExecutionMode 4 OriginUpperLeft
+                              Source HLSL 500
                               Name 4  "main"
                               Name 9  "TestFn1("
                               Name 22  "TestFn2(t11[3];p1[3];"

+ 3 - 2
3rdparty/glslang/Test/baseResults/hlsl.array.frag.out

@@ -1,5 +1,5 @@
 hlsl.array.frag
-Shader version: 450
+Shader version: 500
 gl_FragCoord origin is upper left
 0:? Sequence
 0:8  Function Definition: @PixelShaderFunction(i1;vf4[3]; ( temp 4-component vector of float)
@@ -76,7 +76,7 @@ gl_FragCoord origin is upper left
 Linked fragment stage:
 
 
-Shader version: 450
+Shader version: 500
 gl_FragCoord origin is upper left
 0:? Sequence
 0:8  Function Definition: @PixelShaderFunction(i1;vf4[3]; ( temp 4-component vector of float)
@@ -158,6 +158,7 @@ gl_FragCoord origin is upper left
                               MemoryModel Logical GLSL450
                               EntryPoint Fragment 4  "PixelShaderFunction" 68 72 75
                               ExecutionMode 4 OriginUpperLeft
+                              Source HLSL 500
                               Name 4  "PixelShaderFunction"
                               Name 17  "@PixelShaderFunction(i1;vf4[3];"
                               Name 15  "i"

+ 3 - 2
3rdparty/glslang/Test/baseResults/hlsl.array.implicit-size.frag.out

@@ -1,5 +1,5 @@
 hlsl.array.implicit-size.frag
-Shader version: 450
+Shader version: 500
 gl_FragCoord origin is upper left
 0:? Sequence
 0:3  Sequence
@@ -83,7 +83,7 @@ Linked fragment stage:
 
 WARNING: Linking fragment stage: Entry point not found
 
-Shader version: 450
+Shader version: 500
 gl_FragCoord origin is upper left
 0:? Sequence
 0:3  Sequence
@@ -171,6 +171,7 @@ gl_FragCoord origin is upper left
                               MemoryModel Logical GLSL450
                               EntryPoint Fragment 4  "PixelShaderFunction"
                               ExecutionMode 4 OriginUpperLeft
+                              Source HLSL 500
                               Name 4  "PixelShaderFunction"
                               Name 8  "PS_OUTPUT"
                               MemberName 8(PS_OUTPUT) 0  "color"

+ 3 - 2
3rdparty/glslang/Test/baseResults/hlsl.array.multidim.frag.out

@@ -1,5 +1,5 @@
 hlsl.array.multidim.frag
-Shader version: 450
+Shader version: 500
 gl_FragCoord origin is upper left
 0:? Sequence
 0:10  Function Definition: @main( ( temp structure{ temp 4-component vector of float Color})
@@ -68,7 +68,7 @@ gl_FragCoord origin is upper left
 Linked fragment stage:
 
 
-Shader version: 450
+Shader version: 500
 gl_FragCoord origin is upper left
 0:? Sequence
 0:10  Function Definition: @main( ( temp structure{ temp 4-component vector of float Color})
@@ -142,6 +142,7 @@ gl_FragCoord origin is upper left
                               MemoryModel Logical GLSL450
                               EntryPoint Fragment 4  "main" 54
                               ExecutionMode 4 OriginUpperLeft
+                              Source HLSL 500
                               Name 4  "main"
                               Name 8  "PS_OUTPUT"
                               MemberName 8(PS_OUTPUT) 0  "Color"

+ 3 - 2
3rdparty/glslang/Test/baseResults/hlsl.assoc.frag.out

@@ -1,5 +1,5 @@
 hlsl.assoc.frag
-Shader version: 450
+Shader version: 500
 gl_FragCoord origin is upper left
 0:? Sequence
 0:8  Function Definition: @PixelShaderFunction(vf4;vf4;vf4;vf4;vf4; ( temp 4-component vector of float)
@@ -67,7 +67,7 @@ gl_FragCoord origin is upper left
 Linked fragment stage:
 
 
-Shader version: 450
+Shader version: 500
 gl_FragCoord origin is upper left
 0:? Sequence
 0:8  Function Definition: @PixelShaderFunction(vf4;vf4;vf4;vf4;vf4; ( temp 4-component vector of float)
@@ -140,6 +140,7 @@ gl_FragCoord origin is upper left
                               MemoryModel Logical GLSL450
                               EntryPoint Fragment 4  "PixelShaderFunction" 31 34 37 40 43 46
                               ExecutionMode 4 OriginUpperLeft
+                              Source HLSL 500
                               Name 4  "PixelShaderFunction"
                               Name 15  "@PixelShaderFunction(vf4;vf4;vf4;vf4;vf4;"
                               Name 10  "a1"

+ 3 - 2
3rdparty/glslang/Test/baseResults/hlsl.attribute.expression.comp.out

@@ -1,5 +1,5 @@
 hlsl.attribute.expression.comp
-Shader version: 450
+Shader version: 500
 local_size = (4, 6, 8)
 0:? Sequence
 0:9  Function Definition: @main( ( temp 4-component vector of float)
@@ -42,7 +42,7 @@ local_size = (4, 6, 8)
 Linked compute stage:
 
 
-Shader version: 450
+Shader version: 500
 local_size = (4, 6, 8)
 0:? Sequence
 0:9  Function Definition: @main( ( temp 4-component vector of float)
@@ -90,6 +90,7 @@ local_size = (4, 6, 8)
                               MemoryModel Logical GLSL450
                               EntryPoint GLCompute 4  "main" 37
                               ExecutionMode 4 LocalSize 4 6 8
+                              Source HLSL 500
                               Name 4  "main"
                               Name 9  "@main("
                               Name 13  "x"

+ 3 - 2
3rdparty/glslang/Test/baseResults/hlsl.attribute.frag.out

@@ -1,5 +1,5 @@
 hlsl.attribute.frag
-Shader version: 450
+Shader version: 500
 gl_FragCoord origin is upper left
 0:? Sequence
 0:2  Function Definition: @PixelShaderFunction(vf4; ( temp void)
@@ -26,7 +26,7 @@ gl_FragCoord origin is upper left
 Linked fragment stage:
 
 
-Shader version: 450
+Shader version: 500
 gl_FragCoord origin is upper left
 0:? Sequence
 0:2  Function Definition: @PixelShaderFunction(vf4; ( temp void)
@@ -58,6 +58,7 @@ gl_FragCoord origin is upper left
                               MemoryModel Logical GLSL450
                               EntryPoint Fragment 4  "PixelShaderFunction" 19
                               ExecutionMode 4 OriginUpperLeft
+                              Source HLSL 500
                               Name 4  "PixelShaderFunction"
                               Name 11  "@PixelShaderFunction(vf4;"
                               Name 10  "input"

+ 3 - 2
3rdparty/glslang/Test/baseResults/hlsl.basic.comp.out

@@ -1,5 +1,5 @@
 hlsl.basic.comp
-Shader version: 450
+Shader version: 500
 local_size = (1, 1, 1)
 0:? Sequence
 0:4  Function Definition: @main(i1;i1; ( temp void)
@@ -31,7 +31,7 @@ local_size = (1, 1, 1)
 Linked compute stage:
 
 
-Shader version: 450
+Shader version: 500
 local_size = (1, 1, 1)
 0:? Sequence
 0:4  Function Definition: @main(i1;i1; ( temp void)
@@ -68,6 +68,7 @@ local_size = (1, 1, 1)
                               MemoryModel Logical GLSL450
                               EntryPoint GLCompute 4  "main" 18 21
                               ExecutionMode 4 LocalSize 1 1 1
+                              Source HLSL 500
                               Name 4  "main"
                               Name 11  "@main(i1;i1;"
                               Name 9  "dti"

+ 44 - 35
3rdparty/glslang/Test/baseResults/hlsl.basic.geom.out

@@ -1,5 +1,5 @@
 hlsl.basic.geom
-Shader version: 450
+Shader version: 500
 invocations = -1
 max_vertices = 4
 input primitive = triangles
@@ -43,12 +43,12 @@ output primitive = line_strip
 0:20              0 (const int)
 0:22      Sequence
 0:22        move second child to first child ( temp structure{ temp float myfloat,  temp int something})
-0:22          'OutputStream' ( out structure{ temp float myfloat,  temp int something})
+0:22          'OutputStream' (layout( location=0) out structure{ temp float myfloat,  temp int something})
 0:22          'Vert' ( temp structure{ temp float myfloat,  temp int something})
 0:22        EmitVertex ( temp void)
 0:23      Sequence
 0:23        move second child to first child ( temp structure{ temp float myfloat,  temp int something})
-0:23          'OutputStream' ( out structure{ temp float myfloat,  temp int something})
+0:23          'OutputStream' (layout( location=0) out structure{ temp float myfloat,  temp int something})
 0:23          'Vert' ( temp structure{ temp float myfloat,  temp int something})
 0:23        EmitVertex ( temp void)
 0:24      EndPrimitive ( temp void)
@@ -68,12 +68,13 @@ output primitive = line_strip
 0:?   Linker Objects
 0:?     'VertexID' (layout( location=0) in 3-element array of uint)
 0:?     'test' (layout( location=1) in 3-element array of uint)
+0:?     'OutputStream' (layout( location=0) out structure{ temp float myfloat,  temp int something})
 
 
 Linked geometry stage:
 
 
-Shader version: 450
+Shader version: 500
 invocations = 1
 max_vertices = 4
 input primitive = triangles
@@ -117,12 +118,12 @@ output primitive = line_strip
 0:20              0 (const int)
 0:22      Sequence
 0:22        move second child to first child ( temp structure{ temp float myfloat,  temp int something})
-0:22          'OutputStream' ( out structure{ temp float myfloat,  temp int something})
+0:22          'OutputStream' (layout( location=0) out structure{ temp float myfloat,  temp int something})
 0:22          'Vert' ( temp structure{ temp float myfloat,  temp int something})
 0:22        EmitVertex ( temp void)
 0:23      Sequence
 0:23        move second child to first child ( temp structure{ temp float myfloat,  temp int something})
-0:23          'OutputStream' ( out structure{ temp float myfloat,  temp int something})
+0:23          'OutputStream' (layout( location=0) out structure{ temp float myfloat,  temp int something})
 0:23          'Vert' ( temp structure{ temp float myfloat,  temp int something})
 0:23        EmitVertex ( temp void)
 0:24      EndPrimitive ( temp void)
@@ -142,19 +143,21 @@ output primitive = line_strip
 0:?   Linker Objects
 0:?     'VertexID' (layout( location=0) in 3-element array of uint)
 0:?     'test' (layout( location=1) in 3-element array of uint)
+0:?     'OutputStream' (layout( location=0) out structure{ temp float myfloat,  temp int something})
 
 // Module Version 10000
 // Generated by (magic number): 80001
-// Id's are bound by 57
+// Id's are bound by 60
 
                               Capability Geometry
                1:             ExtInstImport  "GLSL.std.450"
                               MemoryModel Logical GLSL450
-                              EntryPoint Geometry 4  "main" 45 48
+                              EntryPoint Geometry 4  "main" 42 47 50
                               ExecutionMode 4 Triangles
                               ExecutionMode 4 Invocations 1
                               ExecutionMode 4 OutputLineStrip
                               ExecutionMode 4 OutputVertices 4
+                              Source HLSL 500
                               Name 4  "main"
                               Name 12  "PSInput"
                               MemberName 12(PSInput) 0  "myfloat"
@@ -164,16 +167,18 @@ output primitive = line_strip
                               Name 16  "test"
                               Name 17  "OutputStream"
                               Name 20  "Vert"
-                              Name 43  "VertexID"
+                              Name 42  "OutputStream"
                               Name 45  "VertexID"
-                              Name 47  "test"
-                              Name 48  "test"
-                              Name 50  "OutputStream"
-                              Name 51  "param"
+                              Name 47  "VertexID"
+                              Name 49  "test"
+                              Name 50  "test"
+                              Name 52  "OutputStream"
                               Name 53  "param"
                               Name 55  "param"
-                              Decorate 45(VertexID) Location 0
-                              Decorate 48(test) Location 1
+                              Name 57  "param"
+                              Decorate 42(OutputStream) Location 0
+                              Decorate 47(VertexID) Location 0
+                              Decorate 50(test) Location 1
                2:             TypeVoid
                3:             TypeFunction 2
                6:             TypeInt 32 0
@@ -191,26 +196,30 @@ output primitive = line_strip
               29:     11(int) Constant 2
               34:             TypePointer Function 10(float)
               39:             TypePointer Function 11(int)
-              44:             TypePointer Input 8
-    45(VertexID):     44(ptr) Variable Input
-        48(test):     44(ptr) Variable Input
+              41:             TypePointer Output 12(PSInput)
+42(OutputStream):     41(ptr) Variable Output
+              46:             TypePointer Input 8
+    47(VertexID):     46(ptr) Variable Input
+        50(test):     46(ptr) Variable Input
          4(main):           2 Function None 3
                5:             Label
-    43(VertexID):      9(ptr) Variable Function
-        47(test):      9(ptr) Variable Function
-50(OutputStream):     13(ptr) Variable Function
-       51(param):      9(ptr) Variable Function
+    45(VertexID):      9(ptr) Variable Function
+        49(test):      9(ptr) Variable Function
+52(OutputStream):     13(ptr) Variable Function
        53(param):      9(ptr) Variable Function
-       55(param):     13(ptr) Variable Function
-              46:           8 Load 45(VertexID)
-                              Store 43(VertexID) 46
-              49:           8 Load 48(test)
-                              Store 47(test) 49
-              52:           8 Load 43(VertexID)
-                              Store 51(param) 52
-              54:           8 Load 47(test)
+       55(param):      9(ptr) Variable Function
+       57(param):     13(ptr) Variable Function
+              48:           8 Load 47(VertexID)
+                              Store 45(VertexID) 48
+              51:           8 Load 50(test)
+                              Store 49(test) 51
+              54:           8 Load 45(VertexID)
                               Store 53(param) 54
-              56:           2 FunctionCall 18(@main(u1[3];u1[3];struct-PSInput-f1-i11;) 51(param) 53(param) 55(param)
+              56:           8 Load 49(test)
+                              Store 55(param) 56
+              58:           2 FunctionCall 18(@main(u1[3];u1[3];struct-PSInput-f1-i11;) 53(param) 55(param) 57(param)
+              59: 12(PSInput) Load 57(param)
+                              Store 52(OutputStream) 59
                               Return
                               FunctionEnd
 18(@main(u1[3];u1[3];struct-PSInput-f1-i11;):           2 Function None 14
@@ -235,11 +244,11 @@ output primitive = line_strip
               38:     11(int) Bitcast 37
               40:     39(ptr) AccessChain 20(Vert) 25
                               Store 40 38
-              41: 12(PSInput) Load 20(Vert)
-                              Store 17(OutputStream) 41
+              43: 12(PSInput) Load 20(Vert)
+                              Store 42(OutputStream) 43
                               EmitVertex
-              42: 12(PSInput) Load 20(Vert)
-                              Store 17(OutputStream) 42
+              44: 12(PSInput) Load 20(Vert)
+                              Store 42(OutputStream) 44
                               EmitVertex
                               EndPrimitive
                               Return

+ 3 - 2
3rdparty/glslang/Test/baseResults/hlsl.buffer.frag.out

@@ -1,5 +1,5 @@
 hlsl.buffer.frag
-Shader version: 450
+Shader version: 500
 gl_FragCoord origin is upper left
 0:? Sequence
 0:30  Function Definition: @PixelShaderFunction(vf4; ( temp 4-component vector of float)
@@ -50,7 +50,7 @@ gl_FragCoord origin is upper left
 Linked fragment stage:
 
 
-Shader version: 450
+Shader version: 500
 gl_FragCoord origin is upper left
 0:? Sequence
 0:30  Function Definition: @PixelShaderFunction(vf4; ( temp 4-component vector of float)
@@ -106,6 +106,7 @@ gl_FragCoord origin is upper left
                               MemoryModel Logical GLSL450
                               EntryPoint Fragment 4  "PixelShaderFunction" 46 49
                               ExecutionMode 4 OriginUpperLeft
+                              Source HLSL 500
                               Name 4  "PixelShaderFunction"
                               Name 11  "@PixelShaderFunction(vf4;"
                               Name 10  "input"

+ 3 - 2
3rdparty/glslang/Test/baseResults/hlsl.calculatelod.dx10.frag.out

@@ -1,5 +1,5 @@
 hlsl.calculatelod.dx10.frag
-Shader version: 450
+Shader version: 500
 gl_FragCoord origin is upper left
 0:? Sequence
 0:24  Function Definition: @main( ( temp structure{ temp 4-component vector of float Color,  temp float Depth})
@@ -179,7 +179,7 @@ gl_FragCoord origin is upper left
 Linked fragment stage:
 
 
-Shader version: 450
+Shader version: 500
 gl_FragCoord origin is upper left
 0:? Sequence
 0:24  Function Definition: @main( ( temp structure{ temp 4-component vector of float Color,  temp float Depth})
@@ -367,6 +367,7 @@ gl_FragCoord origin is upper left
                               MemoryModel Logical GLSL450
                               EntryPoint Fragment 4  "main" 140 144
                               ExecutionMode 4 OriginUpperLeft
+                              Source HLSL 500
                               Name 4  "main"
                               Name 8  "PS_OUTPUT"
                               MemberName 8(PS_OUTPUT) 0  "Color"

+ 2 - 2
3rdparty/glslang/Test/baseResults/hlsl.calculatelodunclamped.dx10.frag.out

@@ -11,7 +11,7 @@ ERROR: 0:38: '' : unimplemented: CalculateLevelOfDetailUnclamped
 ERROR: 9 compilation errors.  No code generated.
 
 
-Shader version: 450
+Shader version: 500
 gl_FragCoord origin is upper left
 ERROR: node is still EOpNull!
 0:24  Function Definition: @main( ( temp structure{ temp 4-component vector of float Color,  temp float Depth})
@@ -191,7 +191,7 @@ ERROR: node is still EOpNull!
 Linked fragment stage:
 
 
-Shader version: 450
+Shader version: 500
 gl_FragCoord origin is upper left
 ERROR: node is still EOpNull!
 0:24  Function Definition: @main( ( temp structure{ temp 4-component vector of float Color,  temp float Depth})

+ 3 - 2
3rdparty/glslang/Test/baseResults/hlsl.cast.frag.out

@@ -1,5 +1,5 @@
 hlsl.cast.frag
-Shader version: 450
+Shader version: 500
 gl_FragCoord origin is upper left
 0:? Sequence
 0:2  Function Definition: @PixelShaderFunction(vf4; ( temp 4-component vector of float)
@@ -37,7 +37,7 @@ gl_FragCoord origin is upper left
 Linked fragment stage:
 
 
-Shader version: 450
+Shader version: 500
 gl_FragCoord origin is upper left
 0:? Sequence
 0:2  Function Definition: @PixelShaderFunction(vf4; ( temp 4-component vector of float)
@@ -80,6 +80,7 @@ gl_FragCoord origin is upper left
                               MemoryModel Logical GLSL450
                               EntryPoint Fragment 4  "PixelShaderFunction" 32 35
                               ExecutionMode 4 OriginUpperLeft
+                              Source HLSL 500
                               Name 4  "PixelShaderFunction"
                               Name 11  "@PixelShaderFunction(vf4;"
                               Name 10  "input"

+ 3 - 2
3rdparty/glslang/Test/baseResults/hlsl.clip.frag.out

@@ -1,5 +1,5 @@
 hlsl.clip.frag
-Shader version: 450
+Shader version: 500
 gl_FragCoord origin is upper left
 0:? Sequence
 0:3  Function Definition: GetEntitySelectClip( ( temp float)
@@ -38,7 +38,7 @@ gl_FragCoord origin is upper left
 Linked fragment stage:
 
 
-Shader version: 450
+Shader version: 500
 gl_FragCoord origin is upper left
 0:? Sequence
 0:3  Function Definition: GetEntitySelectClip( ( temp float)
@@ -82,6 +82,7 @@ gl_FragCoord origin is upper left
                               MemoryModel Logical GLSL450
                               EntryPoint Fragment 4  "main" 28
                               ExecutionMode 4 OriginUpperLeft
+                              Source HLSL 500
                               Name 4  "main"
                               Name 8  "GetEntitySelectClip("
                               Name 12  "@main("

+ 3 - 2
3rdparty/glslang/Test/baseResults/hlsl.comparison.vec.frag.out

@@ -1,5 +1,5 @@
 hlsl.comparison.vec.frag
-Shader version: 450
+Shader version: 500
 gl_FragCoord origin is upper left
 0:? Sequence
 0:4  Function Definition: Bug1(vf4; ( temp void)
@@ -132,7 +132,7 @@ gl_FragCoord origin is upper left
 Linked fragment stage:
 
 
-Shader version: 450
+Shader version: 500
 gl_FragCoord origin is upper left
 0:? Sequence
 0:4  Function Definition: Bug1(vf4; ( temp void)
@@ -270,6 +270,7 @@ gl_FragCoord origin is upper left
                               MemoryModel Logical GLSL450
                               EntryPoint Fragment 4  "main" 90
                               ExecutionMode 4 OriginUpperLeft
+                              Source HLSL 500
                               Name 4  "main"
                               Name 11  "Bug1(vf4;"
                               Name 10  "a"

+ 3 - 2
3rdparty/glslang/Test/baseResults/hlsl.conditional.frag.out

@@ -1,5 +1,5 @@
 hlsl.conditional.frag
-Shader version: 450
+Shader version: 500
 gl_FragCoord origin is upper left
 0:? Sequence
 0:2  Function Definition: @PixelShaderFunction(vf4; ( temp 4-component vector of float)
@@ -125,7 +125,7 @@ gl_FragCoord origin is upper left
 Linked fragment stage:
 
 
-Shader version: 450
+Shader version: 500
 gl_FragCoord origin is upper left
 0:? Sequence
 0:2  Function Definition: @PixelShaderFunction(vf4; ( temp 4-component vector of float)
@@ -256,6 +256,7 @@ gl_FragCoord origin is upper left
                               MemoryModel Logical GLSL450
                               EntryPoint Fragment 4  "PixelShaderFunction" 95 98
                               ExecutionMode 4 OriginUpperLeft
+                              Source HLSL 500
                               Name 4  "PixelShaderFunction"
                               Name 11  "@PixelShaderFunction(vf4;"
                               Name 10  "input"

+ 3 - 2
3rdparty/glslang/Test/baseResults/hlsl.constructexpr.frag.out

@@ -1,5 +1,5 @@
 hlsl.constructexpr.frag
-Shader version: 450
+Shader version: 500
 gl_FragCoord origin is upper left
 0:? Sequence
 0:4  Function Definition: @main( ( temp structure{ temp 4-component vector of float color})
@@ -53,7 +53,7 @@ gl_FragCoord origin is upper left
 Linked fragment stage:
 
 
-Shader version: 450
+Shader version: 500
 gl_FragCoord origin is upper left
 0:? Sequence
 0:4  Function Definition: @main( ( temp structure{ temp 4-component vector of float color})
@@ -112,6 +112,7 @@ gl_FragCoord origin is upper left
                               MemoryModel Logical GLSL450
                               EntryPoint Fragment 4  "main" 37
                               ExecutionMode 4 OriginUpperLeft
+                              Source HLSL 500
                               Name 4  "main"
                               Name 8  "PS_OUTPUT"
                               MemberName 8(PS_OUTPUT) 0  "color"

+ 1 - 0
3rdparty/glslang/Test/baseResults/hlsl.deadFunctionMissingBody.vert.out

@@ -7,6 +7,7 @@ hlsl.deadFunctionMissingBody.vert
                1:             ExtInstImport  "GLSL.std.450"
                               MemoryModel Logical GLSL450
                               EntryPoint Vertex 4  "main" 16
+                              Source HLSL 500
                               Name 4  "main"
                               Name 9  "@main("
                               Name 16  "@entryPointOutput"

+ 3 - 2
3rdparty/glslang/Test/baseResults/hlsl.depthGreater.frag.out

@@ -1,5 +1,5 @@
 hlsl.depthGreater.frag
-Shader version: 450
+Shader version: 500
 gl_FragCoord origin is upper left
 using depth_greater
 0:? Sequence
@@ -26,7 +26,7 @@ using depth_greater
 Linked fragment stage:
 
 
-Shader version: 450
+Shader version: 500
 gl_FragCoord origin is upper left
 using depth_greater
 0:? Sequence
@@ -59,6 +59,7 @@ using depth_greater
                               EntryPoint Fragment 4  "PixelShaderFunction" 18
                               ExecutionMode 4 OriginUpperLeft
                               ExecutionMode 4 DepthGreater
+                              Source HLSL 500
                               Name 4  "PixelShaderFunction"
                               Name 10  "@PixelShaderFunction(f1;"
                               Name 9  "depth"

+ 3 - 2
3rdparty/glslang/Test/baseResults/hlsl.depthLess.frag.out

@@ -1,5 +1,5 @@
 hlsl.depthLess.frag
-Shader version: 450
+Shader version: 500
 gl_FragCoord origin is upper left
 using depth_less
 0:? Sequence
@@ -22,7 +22,7 @@ using depth_less
 Linked fragment stage:
 
 
-Shader version: 450
+Shader version: 500
 gl_FragCoord origin is upper left
 using depth_less
 0:? Sequence
@@ -51,6 +51,7 @@ using depth_less
                               EntryPoint Fragment 4  "PixelShaderFunction" 14
                               ExecutionMode 4 OriginUpperLeft
                               ExecutionMode 4 DepthLess
+                              Source HLSL 500
                               Name 4  "PixelShaderFunction"
                               Name 8  "@PixelShaderFunction("
                               Name 14  "@entryPointOutput"

+ 3 - 2
3rdparty/glslang/Test/baseResults/hlsl.discard.frag.out

@@ -1,5 +1,5 @@
 hlsl.discard.frag
-Shader version: 450
+Shader version: 500
 gl_FragCoord origin is upper left
 0:? Sequence
 0:2  Function Definition: foo(f1; ( temp void)
@@ -55,7 +55,7 @@ gl_FragCoord origin is upper left
 Linked fragment stage:
 
 
-Shader version: 450
+Shader version: 500
 gl_FragCoord origin is upper left
 0:? Sequence
 0:2  Function Definition: foo(f1; ( temp void)
@@ -116,6 +116,7 @@ gl_FragCoord origin is upper left
                               MemoryModel Logical GLSL450
                               EntryPoint Fragment 4  "PixelShaderFunction" 45
                               ExecutionMode 4 OriginUpperLeft
+                              Source HLSL 500
                               Name 4  "PixelShaderFunction"
                               Name 10  "foo(f1;"
                               Name 9  "f"

+ 3 - 2
3rdparty/glslang/Test/baseResults/hlsl.doLoop.frag.out

@@ -1,5 +1,5 @@
 hlsl.doLoop.frag
-Shader version: 450
+Shader version: 500
 gl_FragCoord origin is upper left
 0:? Sequence
 0:2  Function Definition: @PixelShaderFunction(vf4; ( temp 4-component vector of float)
@@ -43,7 +43,7 @@ gl_FragCoord origin is upper left
 Linked fragment stage:
 
 
-Shader version: 450
+Shader version: 500
 gl_FragCoord origin is upper left
 0:? Sequence
 0:2  Function Definition: @PixelShaderFunction(vf4; ( temp 4-component vector of float)
@@ -92,6 +92,7 @@ gl_FragCoord origin is upper left
                               MemoryModel Logical GLSL450
                               EntryPoint Fragment 4  "PixelShaderFunction" 37 40
                               ExecutionMode 4 OriginUpperLeft
+                              Source HLSL 500
                               Name 4  "PixelShaderFunction"
                               Name 11  "@PixelShaderFunction(vf4;"
                               Name 10  "input"

+ 3 - 2
3rdparty/glslang/Test/baseResults/hlsl.domain.1.tese.out

@@ -1,5 +1,5 @@
 hlsl.domain.1.tese
-Shader version: 450
+Shader version: 500
 input primitive = triangles
 vertex spacing = none
 triangle order = none
@@ -123,7 +123,7 @@ triangle order = none
 Linked tessellation evaluation stage:
 
 
-Shader version: 450
+Shader version: 500
 input primitive = triangles
 vertex spacing = none
 triangle order = none
@@ -252,6 +252,7 @@ triangle order = none
                               MemoryModel Logical GLSL450
                               EntryPoint TessellationEvaluation 4  "main" 51 55 61 76 81 90
                               ExecutionMode 4 Triangles
+                              Source HLSL 500
                               Name 4  "main"
                               Name 9  "ds_in_t"
                               MemberName 9(ds_in_t) 0  "pos"

+ 419 - 0
3rdparty/glslang/Test/baseResults/hlsl.domain.2.tese.out

@@ -0,0 +1,419 @@
+hlsl.domain.2.tese
+Shader version: 500
+input primitive = triangles
+vertex spacing = none
+triangle order = none
+0:? Sequence
+0:25  Function Definition: @main(struct-pcf_in_t-f1[3]-f1-f11;struct-ds_in_t-vf4-vf31[3];vf3; ( temp structure{ temp 4-component vector of float pos,  temp 3-component vector of float norm})
+0:25    Function Parameters: 
+0:25      'pcf_data' ( in structure{ temp 3-element array of float flTessFactor,  temp float flInsideTessFactor,  temp float foo})
+0:25      'i' ( const (read only) 3-element array of structure{ temp 4-component vector of float pos,  temp 3-component vector of float norm})
+0:25      'tesscoord' ( in 3-component vector of float)
+0:?     Sequence
+0:28      move second child to first child ( temp 4-component vector of float)
+0:28        pos: direct index for structure ( temp 4-component vector of float)
+0:28          'o' ( temp structure{ temp 4-component vector of float pos,  temp 3-component vector of float norm})
+0:28          Constant:
+0:28            0 (const int)
+0:28        add ( temp 4-component vector of float)
+0:28          pos: direct index for structure ( temp 4-component vector of float)
+0:28            direct index ( temp structure{ temp 4-component vector of float pos,  temp 3-component vector of float norm})
+0:28              'i' ( const (read only) 3-element array of structure{ temp 4-component vector of float pos,  temp 3-component vector of float norm})
+0:28              Constant:
+0:28                0 (const int)
+0:28            Constant:
+0:28              0 (const int)
+0:28          direct index ( temp float)
+0:28            'tesscoord' ( in 3-component vector of float)
+0:28            Constant:
+0:28              0 (const int)
+0:29      move second child to first child ( temp 3-component vector of float)
+0:29        norm: direct index for structure ( temp 3-component vector of float)
+0:29          'o' ( temp structure{ temp 4-component vector of float pos,  temp 3-component vector of float norm})
+0:29          Constant:
+0:29            1 (const int)
+0:29        add ( temp 3-component vector of float)
+0:29          norm: direct index for structure ( temp 3-component vector of float)
+0:29            direct index ( temp structure{ temp 4-component vector of float pos,  temp 3-component vector of float norm})
+0:29              'i' ( const (read only) 3-element array of structure{ temp 4-component vector of float pos,  temp 3-component vector of float norm})
+0:29              Constant:
+0:29                0 (const int)
+0:29            Constant:
+0:29              1 (const int)
+0:29          direct index ( temp float)
+0:29            'tesscoord' ( in 3-component vector of float)
+0:29            Constant:
+0:29              1 (const int)
+0:31      direct index ( temp float)
+0:31        'tesscoord' ( in 3-component vector of float)
+0:31        Constant:
+0:31          2 (const int)
+0:33      Branch: Return with expression
+0:33        'o' ( temp structure{ temp 4-component vector of float pos,  temp 3-component vector of float norm})
+0:25  Function Definition: main( ( temp void)
+0:25    Function Parameters: 
+0:?     Sequence
+0:25      Sequence
+0:25        move second child to first child ( temp float)
+0:25          direct index ( temp float)
+0:25            flTessFactor: direct index for structure ( temp 3-element array of float)
+0:?               'pcf_data' ( temp structure{ temp 3-element array of float flTessFactor,  temp float flInsideTessFactor,  temp float foo})
+0:25              Constant:
+0:25                0 (const int)
+0:25            Constant:
+0:25              0 (const int)
+0:25          direct index ( patch in float TessLevelOuter)
+0:?             'pcf_data_flTessFactor' ( patch in 4-element array of float TessLevelOuter)
+0:25            Constant:
+0:25              0 (const int)
+0:25        move second child to first child ( temp float)
+0:25          direct index ( temp float)
+0:25            flTessFactor: direct index for structure ( temp 3-element array of float)
+0:?               'pcf_data' ( temp structure{ temp 3-element array of float flTessFactor,  temp float flInsideTessFactor,  temp float foo})
+0:25              Constant:
+0:25                0 (const int)
+0:25            Constant:
+0:25              1 (const int)
+0:25          direct index ( patch in float TessLevelOuter)
+0:?             'pcf_data_flTessFactor' ( patch in 4-element array of float TessLevelOuter)
+0:25            Constant:
+0:25              1 (const int)
+0:25        move second child to first child ( temp float)
+0:25          direct index ( temp float)
+0:25            flTessFactor: direct index for structure ( temp 3-element array of float)
+0:?               'pcf_data' ( temp structure{ temp 3-element array of float flTessFactor,  temp float flInsideTessFactor,  temp float foo})
+0:25              Constant:
+0:25                0 (const int)
+0:25            Constant:
+0:25              2 (const int)
+0:25          direct index ( patch in float TessLevelOuter)
+0:?             'pcf_data_flTessFactor' ( patch in 4-element array of float TessLevelOuter)
+0:25            Constant:
+0:25              2 (const int)
+0:25        move second child to first child ( temp float)
+0:25          flInsideTessFactor: direct index for structure ( temp float)
+0:?             'pcf_data' ( temp structure{ temp 3-element array of float flTessFactor,  temp float flInsideTessFactor,  temp float foo})
+0:25            Constant:
+0:25              1 (const int)
+0:25          direct index ( patch in float TessLevelInner)
+0:?             'pcf_data_flInsideTessFactor' ( patch in 2-element array of float TessLevelInner)
+0:25            Constant:
+0:25              0 (const int)
+0:25        move second child to first child ( temp float)
+0:25          foo: direct index for structure ( temp float)
+0:?             'pcf_data' ( temp structure{ temp 3-element array of float flTessFactor,  temp float flInsideTessFactor,  temp float foo})
+0:25            Constant:
+0:25              2 (const int)
+0:25          foo: direct index for structure ( temp float)
+0:25            'pcf_data' (layout( location=2) patch in structure{ temp float foo})
+0:25            Constant:
+0:25              0 (const int)
+0:25      move second child to first child ( temp 3-element array of structure{ temp 4-component vector of float pos,  temp 3-component vector of float norm})
+0:?         'i' ( temp 3-element array of structure{ temp 4-component vector of float pos,  temp 3-component vector of float norm})
+0:?         'i' (layout( location=0) in 3-element array of structure{ temp 4-component vector of float pos,  temp 3-component vector of float norm})
+0:25      move second child to first child ( temp 3-component vector of float)
+0:?         'tesscoord' ( temp 3-component vector of float)
+0:?         'tesscoord' ( patch in 3-component vector of float TessCoord)
+0:25      move second child to first child ( temp structure{ temp 4-component vector of float pos,  temp 3-component vector of float norm})
+0:?         '@entryPointOutput' (layout( location=0) out structure{ temp 4-component vector of float pos,  temp 3-component vector of float norm})
+0:25        Function Call: @main(struct-pcf_in_t-f1[3]-f1-f11;struct-ds_in_t-vf4-vf31[3];vf3; ( temp structure{ temp 4-component vector of float pos,  temp 3-component vector of float norm})
+0:?           'pcf_data' ( temp structure{ temp 3-element array of float flTessFactor,  temp float flInsideTessFactor,  temp float foo})
+0:?           'i' ( temp 3-element array of structure{ temp 4-component vector of float pos,  temp 3-component vector of float norm})
+0:?           'tesscoord' ( temp 3-component vector of float)
+0:?   Linker Objects
+0:?     '@entryPointOutput' (layout( location=0) out structure{ temp 4-component vector of float pos,  temp 3-component vector of float norm})
+0:?     'i' (layout( location=0) in 3-element array of structure{ temp 4-component vector of float pos,  temp 3-component vector of float norm})
+0:?     'tesscoord' ( patch in 3-component vector of float TessCoord)
+0:?     'pcf_data' (layout( location=2) patch in structure{ temp float foo})
+0:?     'pcf_data_flTessFactor' ( patch in 4-element array of float TessLevelOuter)
+0:?     'pcf_data_flInsideTessFactor' ( patch in 2-element array of float TessLevelInner)
+
+
+Linked tessellation evaluation stage:
+
+
+Shader version: 500
+input primitive = triangles
+vertex spacing = none
+triangle order = none
+0:? Sequence
+0:25  Function Definition: @main(struct-pcf_in_t-f1[3]-f1-f11;struct-ds_in_t-vf4-vf31[3];vf3; ( temp structure{ temp 4-component vector of float pos,  temp 3-component vector of float norm})
+0:25    Function Parameters: 
+0:25      'pcf_data' ( in structure{ temp 3-element array of float flTessFactor,  temp float flInsideTessFactor,  temp float foo})
+0:25      'i' ( const (read only) 3-element array of structure{ temp 4-component vector of float pos,  temp 3-component vector of float norm})
+0:25      'tesscoord' ( in 3-component vector of float)
+0:?     Sequence
+0:28      move second child to first child ( temp 4-component vector of float)
+0:28        pos: direct index for structure ( temp 4-component vector of float)
+0:28          'o' ( temp structure{ temp 4-component vector of float pos,  temp 3-component vector of float norm})
+0:28          Constant:
+0:28            0 (const int)
+0:28        add ( temp 4-component vector of float)
+0:28          pos: direct index for structure ( temp 4-component vector of float)
+0:28            direct index ( temp structure{ temp 4-component vector of float pos,  temp 3-component vector of float norm})
+0:28              'i' ( const (read only) 3-element array of structure{ temp 4-component vector of float pos,  temp 3-component vector of float norm})
+0:28              Constant:
+0:28                0 (const int)
+0:28            Constant:
+0:28              0 (const int)
+0:28          direct index ( temp float)
+0:28            'tesscoord' ( in 3-component vector of float)
+0:28            Constant:
+0:28              0 (const int)
+0:29      move second child to first child ( temp 3-component vector of float)
+0:29        norm: direct index for structure ( temp 3-component vector of float)
+0:29          'o' ( temp structure{ temp 4-component vector of float pos,  temp 3-component vector of float norm})
+0:29          Constant:
+0:29            1 (const int)
+0:29        add ( temp 3-component vector of float)
+0:29          norm: direct index for structure ( temp 3-component vector of float)
+0:29            direct index ( temp structure{ temp 4-component vector of float pos,  temp 3-component vector of float norm})
+0:29              'i' ( const (read only) 3-element array of structure{ temp 4-component vector of float pos,  temp 3-component vector of float norm})
+0:29              Constant:
+0:29                0 (const int)
+0:29            Constant:
+0:29              1 (const int)
+0:29          direct index ( temp float)
+0:29            'tesscoord' ( in 3-component vector of float)
+0:29            Constant:
+0:29              1 (const int)
+0:31      direct index ( temp float)
+0:31        'tesscoord' ( in 3-component vector of float)
+0:31        Constant:
+0:31          2 (const int)
+0:33      Branch: Return with expression
+0:33        'o' ( temp structure{ temp 4-component vector of float pos,  temp 3-component vector of float norm})
+0:25  Function Definition: main( ( temp void)
+0:25    Function Parameters: 
+0:?     Sequence
+0:25      Sequence
+0:25        move second child to first child ( temp float)
+0:25          direct index ( temp float)
+0:25            flTessFactor: direct index for structure ( temp 3-element array of float)
+0:?               'pcf_data' ( temp structure{ temp 3-element array of float flTessFactor,  temp float flInsideTessFactor,  temp float foo})
+0:25              Constant:
+0:25                0 (const int)
+0:25            Constant:
+0:25              0 (const int)
+0:25          direct index ( patch in float TessLevelOuter)
+0:?             'pcf_data_flTessFactor' ( patch in 4-element array of float TessLevelOuter)
+0:25            Constant:
+0:25              0 (const int)
+0:25        move second child to first child ( temp float)
+0:25          direct index ( temp float)
+0:25            flTessFactor: direct index for structure ( temp 3-element array of float)
+0:?               'pcf_data' ( temp structure{ temp 3-element array of float flTessFactor,  temp float flInsideTessFactor,  temp float foo})
+0:25              Constant:
+0:25                0 (const int)
+0:25            Constant:
+0:25              1 (const int)
+0:25          direct index ( patch in float TessLevelOuter)
+0:?             'pcf_data_flTessFactor' ( patch in 4-element array of float TessLevelOuter)
+0:25            Constant:
+0:25              1 (const int)
+0:25        move second child to first child ( temp float)
+0:25          direct index ( temp float)
+0:25            flTessFactor: direct index for structure ( temp 3-element array of float)
+0:?               'pcf_data' ( temp structure{ temp 3-element array of float flTessFactor,  temp float flInsideTessFactor,  temp float foo})
+0:25              Constant:
+0:25                0 (const int)
+0:25            Constant:
+0:25              2 (const int)
+0:25          direct index ( patch in float TessLevelOuter)
+0:?             'pcf_data_flTessFactor' ( patch in 4-element array of float TessLevelOuter)
+0:25            Constant:
+0:25              2 (const int)
+0:25        move second child to first child ( temp float)
+0:25          flInsideTessFactor: direct index for structure ( temp float)
+0:?             'pcf_data' ( temp structure{ temp 3-element array of float flTessFactor,  temp float flInsideTessFactor,  temp float foo})
+0:25            Constant:
+0:25              1 (const int)
+0:25          direct index ( patch in float TessLevelInner)
+0:?             'pcf_data_flInsideTessFactor' ( patch in 2-element array of float TessLevelInner)
+0:25            Constant:
+0:25              0 (const int)
+0:25        move second child to first child ( temp float)
+0:25          foo: direct index for structure ( temp float)
+0:?             'pcf_data' ( temp structure{ temp 3-element array of float flTessFactor,  temp float flInsideTessFactor,  temp float foo})
+0:25            Constant:
+0:25              2 (const int)
+0:25          foo: direct index for structure ( temp float)
+0:25            'pcf_data' (layout( location=2) patch in structure{ temp float foo})
+0:25            Constant:
+0:25              0 (const int)
+0:25      move second child to first child ( temp 3-element array of structure{ temp 4-component vector of float pos,  temp 3-component vector of float norm})
+0:?         'i' ( temp 3-element array of structure{ temp 4-component vector of float pos,  temp 3-component vector of float norm})
+0:?         'i' (layout( location=0) in 3-element array of structure{ temp 4-component vector of float pos,  temp 3-component vector of float norm})
+0:25      move second child to first child ( temp 3-component vector of float)
+0:?         'tesscoord' ( temp 3-component vector of float)
+0:?         'tesscoord' ( patch in 3-component vector of float TessCoord)
+0:25      move second child to first child ( temp structure{ temp 4-component vector of float pos,  temp 3-component vector of float norm})
+0:?         '@entryPointOutput' (layout( location=0) out structure{ temp 4-component vector of float pos,  temp 3-component vector of float norm})
+0:25        Function Call: @main(struct-pcf_in_t-f1[3]-f1-f11;struct-ds_in_t-vf4-vf31[3];vf3; ( temp structure{ temp 4-component vector of float pos,  temp 3-component vector of float norm})
+0:?           'pcf_data' ( temp structure{ temp 3-element array of float flTessFactor,  temp float flInsideTessFactor,  temp float foo})
+0:?           'i' ( temp 3-element array of structure{ temp 4-component vector of float pos,  temp 3-component vector of float norm})
+0:?           'tesscoord' ( temp 3-component vector of float)
+0:?   Linker Objects
+0:?     '@entryPointOutput' (layout( location=0) out structure{ temp 4-component vector of float pos,  temp 3-component vector of float norm})
+0:?     'i' (layout( location=0) in 3-element array of structure{ temp 4-component vector of float pos,  temp 3-component vector of float norm})
+0:?     'tesscoord' ( patch in 3-component vector of float TessCoord)
+0:?     'pcf_data' (layout( location=2) patch in structure{ temp float foo})
+0:?     'pcf_data_flTessFactor' ( patch in 4-element array of float TessLevelOuter)
+0:?     'pcf_data_flInsideTessFactor' ( patch in 2-element array of float TessLevelInner)
+
+// Module Version 10000
+// Generated by (magic number): 80001
+// Id's are bound by 94
+
+                              Capability Tessellation
+               1:             ExtInstImport  "GLSL.std.450"
+                              MemoryModel Logical GLSL450
+                              EntryPoint TessellationEvaluation 4  "main" 52 67 73 80 84 87
+                              ExecutionMode 4 Triangles
+                              Source HLSL 500
+                              Name 4  "main"
+                              Name 10  "pcf_in_t"
+                              MemberName 10(pcf_in_t) 0  "flTessFactor"
+                              MemberName 10(pcf_in_t) 1  "flInsideTessFactor"
+                              MemberName 10(pcf_in_t) 2  "foo"
+                              Name 14  "ds_in_t"
+                              MemberName 14(ds_in_t) 0  "pos"
+                              MemberName 14(ds_in_t) 1  "norm"
+                              Name 17  "gs_in_t"
+                              MemberName 17(gs_in_t) 0  "pos"
+                              MemberName 17(gs_in_t) 1  "norm"
+                              Name 22  "@main(struct-pcf_in_t-f1[3]-f1-f11;struct-ds_in_t-vf4-vf31[3];vf3;"
+                              Name 19  "pcf_data"
+                              Name 20  "i"
+                              Name 21  "tesscoord"
+                              Name 25  "o"
+                              Name 48  "pcf_data"
+                              Name 52  "pcf_data_flTessFactor"
+                              Name 67  "pcf_data_flInsideTessFactor"
+                              Name 71  "pcf_in_t"
+                              MemberName 71(pcf_in_t) 0  "foo"
+                              Name 73  "pcf_data"
+                              Name 78  "i"
+                              Name 80  "i"
+                              Name 82  "tesscoord"
+                              Name 84  "tesscoord"
+                              Name 87  "@entryPointOutput"
+                              Name 89  "param"
+                              Name 91  "param"
+                              Decorate 52(pcf_data_flTessFactor) Patch
+                              Decorate 52(pcf_data_flTessFactor) BuiltIn TessLevelOuter
+                              Decorate 67(pcf_data_flInsideTessFactor) Patch
+                              Decorate 67(pcf_data_flInsideTessFactor) BuiltIn TessLevelInner
+                              MemberDecorate 71(pcf_in_t) 0 Patch
+                              Decorate 73(pcf_data) Patch
+                              Decorate 73(pcf_data) Location 2
+                              Decorate 80(i) Location 0
+                              Decorate 84(tesscoord) Patch
+                              Decorate 84(tesscoord) BuiltIn TessCoord
+                              Decorate 87(@entryPointOutput) Location 0
+               2:             TypeVoid
+               3:             TypeFunction 2
+               6:             TypeFloat 32
+               7:             TypeInt 32 0
+               8:      7(int) Constant 3
+               9:             TypeArray 6(float) 8
+    10(pcf_in_t):             TypeStruct 9 6(float) 6(float)
+              11:             TypePointer Function 10(pcf_in_t)
+              12:             TypeVector 6(float) 4
+              13:             TypeVector 6(float) 3
+     14(ds_in_t):             TypeStruct 12(fvec4) 13(fvec3)
+              15:             TypeArray 14(ds_in_t) 8
+              16:             TypePointer Function 13(fvec3)
+     17(gs_in_t):             TypeStruct 12(fvec4) 13(fvec3)
+              18:             TypeFunction 17(gs_in_t) 11(ptr) 15 16(ptr)
+              24:             TypePointer Function 17(gs_in_t)
+              26:             TypeInt 32 1
+              27:     26(int) Constant 0
+              29:      7(int) Constant 0
+              30:             TypePointer Function 6(float)
+              35:             TypePointer Function 12(fvec4)
+              37:     26(int) Constant 1
+              39:      7(int) Constant 1
+              49:      7(int) Constant 4
+              50:             TypeArray 6(float) 49
+              51:             TypePointer Input 50
+52(pcf_data_flTessFactor):     51(ptr) Variable Input
+              53:             TypePointer Input 6(float)
+              60:     26(int) Constant 2
+              64:      7(int) Constant 2
+              65:             TypeArray 6(float) 64
+              66:             TypePointer Input 65
+67(pcf_data_flInsideTessFactor):     66(ptr) Variable Input
+    71(pcf_in_t):             TypeStruct 6(float)
+              72:             TypePointer Input 71(pcf_in_t)
+    73(pcf_data):     72(ptr) Variable Input
+              77:             TypePointer Function 15
+              79:             TypePointer Input 15
+           80(i):     79(ptr) Variable Input
+              83:             TypePointer Input 13(fvec3)
+   84(tesscoord):     83(ptr) Variable Input
+              86:             TypePointer Output 17(gs_in_t)
+87(@entryPointOutput):     86(ptr) Variable Output
+         4(main):           2 Function None 3
+               5:             Label
+    48(pcf_data):     11(ptr) Variable Function
+           78(i):     77(ptr) Variable Function
+   82(tesscoord):     16(ptr) Variable Function
+       89(param):     11(ptr) Variable Function
+       91(param):     16(ptr) Variable Function
+              54:     53(ptr) AccessChain 52(pcf_data_flTessFactor) 27
+              55:    6(float) Load 54
+              56:     30(ptr) AccessChain 48(pcf_data) 27 27
+                              Store 56 55
+              57:     53(ptr) AccessChain 52(pcf_data_flTessFactor) 37
+              58:    6(float) Load 57
+              59:     30(ptr) AccessChain 48(pcf_data) 27 37
+                              Store 59 58
+              61:     53(ptr) AccessChain 52(pcf_data_flTessFactor) 60
+              62:    6(float) Load 61
+              63:     30(ptr) AccessChain 48(pcf_data) 27 60
+                              Store 63 62
+              68:     53(ptr) AccessChain 67(pcf_data_flInsideTessFactor) 27
+              69:    6(float) Load 68
+              70:     30(ptr) AccessChain 48(pcf_data) 37
+                              Store 70 69
+              74:     53(ptr) AccessChain 73(pcf_data) 27
+              75:    6(float) Load 74
+              76:     30(ptr) AccessChain 48(pcf_data) 60
+                              Store 76 75
+              81:          15 Load 80(i)
+                              Store 78(i) 81
+              85:   13(fvec3) Load 84(tesscoord)
+                              Store 82(tesscoord) 85
+              88:          15 Load 78(i)
+              90:10(pcf_in_t) Load 48(pcf_data)
+                              Store 89(param) 90
+              92:   13(fvec3) Load 82(tesscoord)
+                              Store 91(param) 92
+              93: 17(gs_in_t) FunctionCall 22(@main(struct-pcf_in_t-f1[3]-f1-f11;struct-ds_in_t-vf4-vf31[3];vf3;) 89(param) 88 91(param)
+                              Store 87(@entryPointOutput) 93
+                              Return
+                              FunctionEnd
+22(@main(struct-pcf_in_t-f1[3]-f1-f11;struct-ds_in_t-vf4-vf31[3];vf3;): 17(gs_in_t) Function None 18
+    19(pcf_data):     11(ptr) FunctionParameter
+           20(i):          15 FunctionParameter
+   21(tesscoord):     16(ptr) FunctionParameter
+              23:             Label
+           25(o):     24(ptr) Variable Function
+              28:   12(fvec4) CompositeExtract 20(i) 0 0
+              31:     30(ptr) AccessChain 21(tesscoord) 29
+              32:    6(float) Load 31
+              33:   12(fvec4) CompositeConstruct 32 32 32 32
+              34:   12(fvec4) FAdd 28 33
+              36:     35(ptr) AccessChain 25(o) 27
+                              Store 36 34
+              38:   13(fvec3) CompositeExtract 20(i) 0 1
+              40:     30(ptr) AccessChain 21(tesscoord) 39
+              41:    6(float) Load 40
+              42:   13(fvec3) CompositeConstruct 41 41 41
+              43:   13(fvec3) FAdd 38 42
+              44:     16(ptr) AccessChain 25(o) 37
+                              Store 44 43
+              45: 17(gs_in_t) Load 25(o)
+                              ReturnValue 45
+                              FunctionEnd

+ 393 - 0
3rdparty/glslang/Test/baseResults/hlsl.domain.3.tese.out

@@ -0,0 +1,393 @@
+hlsl.domain.3.tese
+Shader version: 500
+input primitive = isolines
+vertex spacing = none
+triangle order = none
+0:? Sequence
+0:24  Function Definition: @main(struct-ds_in_t-vf4-vf31[2];vf2;struct-pcf_in_t-f1[3]-f11; ( temp structure{ temp 4-component vector of float pos,  temp 3-component vector of float norm})
+0:24    Function Parameters: 
+0:24      'i' ( const (read only) 2-element array of structure{ temp 4-component vector of float pos,  temp 3-component vector of float norm})
+0:24      'tesscoord' ( in 2-component vector of float)
+0:24      'pcf_data' ( in structure{ temp 3-element array of float flTessFactor,  temp float flInsideTessFactor})
+0:?     Sequence
+0:27      move second child to first child ( temp 4-component vector of float)
+0:27        pos: direct index for structure ( temp 4-component vector of float)
+0:27          'o' ( temp structure{ temp 4-component vector of float pos,  temp 3-component vector of float norm})
+0:27          Constant:
+0:27            0 (const int)
+0:27        add ( temp 4-component vector of float)
+0:27          pos: direct index for structure ( temp 4-component vector of float)
+0:27            direct index ( temp structure{ temp 4-component vector of float pos,  temp 3-component vector of float norm})
+0:27              'i' ( const (read only) 2-element array of structure{ temp 4-component vector of float pos,  temp 3-component vector of float norm})
+0:27              Constant:
+0:27                0 (const int)
+0:27            Constant:
+0:27              0 (const int)
+0:27          direct index ( temp float)
+0:27            'tesscoord' ( in 2-component vector of float)
+0:27            Constant:
+0:27              0 (const int)
+0:28      move second child to first child ( temp 3-component vector of float)
+0:28        norm: direct index for structure ( temp 3-component vector of float)
+0:28          'o' ( temp structure{ temp 4-component vector of float pos,  temp 3-component vector of float norm})
+0:28          Constant:
+0:28            1 (const int)
+0:28        add ( temp 3-component vector of float)
+0:28          norm: direct index for structure ( temp 3-component vector of float)
+0:28            direct index ( temp structure{ temp 4-component vector of float pos,  temp 3-component vector of float norm})
+0:28              'i' ( const (read only) 2-element array of structure{ temp 4-component vector of float pos,  temp 3-component vector of float norm})
+0:28              Constant:
+0:28                0 (const int)
+0:28            Constant:
+0:28              1 (const int)
+0:28          direct index ( temp float)
+0:28            'tesscoord' ( in 2-component vector of float)
+0:28            Constant:
+0:28              1 (const int)
+0:30      Branch: Return with expression
+0:30        'o' ( temp structure{ temp 4-component vector of float pos,  temp 3-component vector of float norm})
+0:24  Function Definition: main( ( temp void)
+0:24    Function Parameters: 
+0:?     Sequence
+0:24      move second child to first child ( temp 2-element array of structure{ temp 4-component vector of float pos,  temp 3-component vector of float norm})
+0:?         'i' ( temp 2-element array of structure{ temp 4-component vector of float pos,  temp 3-component vector of float norm})
+0:?         'i' (layout( location=0) in 2-element array of structure{ temp 4-component vector of float pos,  temp 3-component vector of float norm})
+0:24      move second child to first child ( temp 2-component vector of float)
+0:?         'tesscoord' ( temp 2-component vector of float)
+0:?         Construct vec2 ( temp 2-component vector of float)
+0:?           'tesscoord' ( patch in 3-component vector of float TessCoord)
+0:24      Sequence
+0:24        move second child to first child ( temp float)
+0:24          direct index ( temp float)
+0:24            flTessFactor: direct index for structure ( temp 3-element array of float)
+0:?               'pcf_data' ( temp structure{ temp 3-element array of float flTessFactor,  temp float flInsideTessFactor})
+0:24              Constant:
+0:24                0 (const int)
+0:24            Constant:
+0:24              0 (const int)
+0:24          direct index ( patch in float TessLevelOuter)
+0:?             'pcf_data_flTessFactor' ( patch in 4-element array of float TessLevelOuter)
+0:24            Constant:
+0:24              0 (const int)
+0:24        move second child to first child ( temp float)
+0:24          direct index ( temp float)
+0:24            flTessFactor: direct index for structure ( temp 3-element array of float)
+0:?               'pcf_data' ( temp structure{ temp 3-element array of float flTessFactor,  temp float flInsideTessFactor})
+0:24              Constant:
+0:24                0 (const int)
+0:24            Constant:
+0:24              1 (const int)
+0:24          direct index ( patch in float TessLevelOuter)
+0:?             'pcf_data_flTessFactor' ( patch in 4-element array of float TessLevelOuter)
+0:24            Constant:
+0:24              1 (const int)
+0:24        move second child to first child ( temp float)
+0:24          direct index ( temp float)
+0:24            flTessFactor: direct index for structure ( temp 3-element array of float)
+0:?               'pcf_data' ( temp structure{ temp 3-element array of float flTessFactor,  temp float flInsideTessFactor})
+0:24              Constant:
+0:24                0 (const int)
+0:24            Constant:
+0:24              2 (const int)
+0:24          direct index ( patch in float TessLevelOuter)
+0:?             'pcf_data_flTessFactor' ( patch in 4-element array of float TessLevelOuter)
+0:24            Constant:
+0:24              2 (const int)
+0:24        move second child to first child ( temp float)
+0:24          flInsideTessFactor: direct index for structure ( temp float)
+0:?             'pcf_data' ( temp structure{ temp 3-element array of float flTessFactor,  temp float flInsideTessFactor})
+0:24            Constant:
+0:24              1 (const int)
+0:24          direct index ( patch in float TessLevelInner)
+0:?             'pcf_data_flInsideTessFactor' ( patch in 2-element array of float TessLevelInner)
+0:24            Constant:
+0:24              0 (const int)
+0:24      move second child to first child ( temp structure{ temp 4-component vector of float pos,  temp 3-component vector of float norm})
+0:?         '@entryPointOutput' (layout( location=0) out structure{ temp 4-component vector of float pos,  temp 3-component vector of float norm})
+0:24        Function Call: @main(struct-ds_in_t-vf4-vf31[2];vf2;struct-pcf_in_t-f1[3]-f11; ( temp structure{ temp 4-component vector of float pos,  temp 3-component vector of float norm})
+0:?           'i' ( temp 2-element array of structure{ temp 4-component vector of float pos,  temp 3-component vector of float norm})
+0:?           'tesscoord' ( temp 2-component vector of float)
+0:?           'pcf_data' ( temp structure{ temp 3-element array of float flTessFactor,  temp float flInsideTessFactor})
+0:?   Linker Objects
+0:?     '@entryPointOutput' (layout( location=0) out structure{ temp 4-component vector of float pos,  temp 3-component vector of float norm})
+0:?     'i' (layout( location=0) in 2-element array of structure{ temp 4-component vector of float pos,  temp 3-component vector of float norm})
+0:?     'tesscoord' ( patch in 3-component vector of float TessCoord)
+0:?     'pcf_data' (layout( location=2) patch in structure{})
+0:?     'pcf_data_flTessFactor' ( patch in 4-element array of float TessLevelOuter)
+0:?     'pcf_data_flInsideTessFactor' ( patch in 2-element array of float TessLevelInner)
+
+
+Linked tessellation evaluation stage:
+
+
+Shader version: 500
+input primitive = isolines
+vertex spacing = none
+triangle order = none
+0:? Sequence
+0:24  Function Definition: @main(struct-ds_in_t-vf4-vf31[2];vf2;struct-pcf_in_t-f1[3]-f11; ( temp structure{ temp 4-component vector of float pos,  temp 3-component vector of float norm})
+0:24    Function Parameters: 
+0:24      'i' ( const (read only) 2-element array of structure{ temp 4-component vector of float pos,  temp 3-component vector of float norm})
+0:24      'tesscoord' ( in 2-component vector of float)
+0:24      'pcf_data' ( in structure{ temp 3-element array of float flTessFactor,  temp float flInsideTessFactor})
+0:?     Sequence
+0:27      move second child to first child ( temp 4-component vector of float)
+0:27        pos: direct index for structure ( temp 4-component vector of float)
+0:27          'o' ( temp structure{ temp 4-component vector of float pos,  temp 3-component vector of float norm})
+0:27          Constant:
+0:27            0 (const int)
+0:27        add ( temp 4-component vector of float)
+0:27          pos: direct index for structure ( temp 4-component vector of float)
+0:27            direct index ( temp structure{ temp 4-component vector of float pos,  temp 3-component vector of float norm})
+0:27              'i' ( const (read only) 2-element array of structure{ temp 4-component vector of float pos,  temp 3-component vector of float norm})
+0:27              Constant:
+0:27                0 (const int)
+0:27            Constant:
+0:27              0 (const int)
+0:27          direct index ( temp float)
+0:27            'tesscoord' ( in 2-component vector of float)
+0:27            Constant:
+0:27              0 (const int)
+0:28      move second child to first child ( temp 3-component vector of float)
+0:28        norm: direct index for structure ( temp 3-component vector of float)
+0:28          'o' ( temp structure{ temp 4-component vector of float pos,  temp 3-component vector of float norm})
+0:28          Constant:
+0:28            1 (const int)
+0:28        add ( temp 3-component vector of float)
+0:28          norm: direct index for structure ( temp 3-component vector of float)
+0:28            direct index ( temp structure{ temp 4-component vector of float pos,  temp 3-component vector of float norm})
+0:28              'i' ( const (read only) 2-element array of structure{ temp 4-component vector of float pos,  temp 3-component vector of float norm})
+0:28              Constant:
+0:28                0 (const int)
+0:28            Constant:
+0:28              1 (const int)
+0:28          direct index ( temp float)
+0:28            'tesscoord' ( in 2-component vector of float)
+0:28            Constant:
+0:28              1 (const int)
+0:30      Branch: Return with expression
+0:30        'o' ( temp structure{ temp 4-component vector of float pos,  temp 3-component vector of float norm})
+0:24  Function Definition: main( ( temp void)
+0:24    Function Parameters: 
+0:?     Sequence
+0:24      move second child to first child ( temp 2-element array of structure{ temp 4-component vector of float pos,  temp 3-component vector of float norm})
+0:?         'i' ( temp 2-element array of structure{ temp 4-component vector of float pos,  temp 3-component vector of float norm})
+0:?         'i' (layout( location=0) in 2-element array of structure{ temp 4-component vector of float pos,  temp 3-component vector of float norm})
+0:24      move second child to first child ( temp 2-component vector of float)
+0:?         'tesscoord' ( temp 2-component vector of float)
+0:?         Construct vec2 ( temp 2-component vector of float)
+0:?           'tesscoord' ( patch in 3-component vector of float TessCoord)
+0:24      Sequence
+0:24        move second child to first child ( temp float)
+0:24          direct index ( temp float)
+0:24            flTessFactor: direct index for structure ( temp 3-element array of float)
+0:?               'pcf_data' ( temp structure{ temp 3-element array of float flTessFactor,  temp float flInsideTessFactor})
+0:24              Constant:
+0:24                0 (const int)
+0:24            Constant:
+0:24              0 (const int)
+0:24          direct index ( patch in float TessLevelOuter)
+0:?             'pcf_data_flTessFactor' ( patch in 4-element array of float TessLevelOuter)
+0:24            Constant:
+0:24              0 (const int)
+0:24        move second child to first child ( temp float)
+0:24          direct index ( temp float)
+0:24            flTessFactor: direct index for structure ( temp 3-element array of float)
+0:?               'pcf_data' ( temp structure{ temp 3-element array of float flTessFactor,  temp float flInsideTessFactor})
+0:24              Constant:
+0:24                0 (const int)
+0:24            Constant:
+0:24              1 (const int)
+0:24          direct index ( patch in float TessLevelOuter)
+0:?             'pcf_data_flTessFactor' ( patch in 4-element array of float TessLevelOuter)
+0:24            Constant:
+0:24              1 (const int)
+0:24        move second child to first child ( temp float)
+0:24          direct index ( temp float)
+0:24            flTessFactor: direct index for structure ( temp 3-element array of float)
+0:?               'pcf_data' ( temp structure{ temp 3-element array of float flTessFactor,  temp float flInsideTessFactor})
+0:24              Constant:
+0:24                0 (const int)
+0:24            Constant:
+0:24              2 (const int)
+0:24          direct index ( patch in float TessLevelOuter)
+0:?             'pcf_data_flTessFactor' ( patch in 4-element array of float TessLevelOuter)
+0:24            Constant:
+0:24              2 (const int)
+0:24        move second child to first child ( temp float)
+0:24          flInsideTessFactor: direct index for structure ( temp float)
+0:?             'pcf_data' ( temp structure{ temp 3-element array of float flTessFactor,  temp float flInsideTessFactor})
+0:24            Constant:
+0:24              1 (const int)
+0:24          direct index ( patch in float TessLevelInner)
+0:?             'pcf_data_flInsideTessFactor' ( patch in 2-element array of float TessLevelInner)
+0:24            Constant:
+0:24              0 (const int)
+0:24      move second child to first child ( temp structure{ temp 4-component vector of float pos,  temp 3-component vector of float norm})
+0:?         '@entryPointOutput' (layout( location=0) out structure{ temp 4-component vector of float pos,  temp 3-component vector of float norm})
+0:24        Function Call: @main(struct-ds_in_t-vf4-vf31[2];vf2;struct-pcf_in_t-f1[3]-f11; ( temp structure{ temp 4-component vector of float pos,  temp 3-component vector of float norm})
+0:?           'i' ( temp 2-element array of structure{ temp 4-component vector of float pos,  temp 3-component vector of float norm})
+0:?           'tesscoord' ( temp 2-component vector of float)
+0:?           'pcf_data' ( temp structure{ temp 3-element array of float flTessFactor,  temp float flInsideTessFactor})
+0:?   Linker Objects
+0:?     '@entryPointOutput' (layout( location=0) out structure{ temp 4-component vector of float pos,  temp 3-component vector of float norm})
+0:?     'i' (layout( location=0) in 2-element array of structure{ temp 4-component vector of float pos,  temp 3-component vector of float norm})
+0:?     'tesscoord' ( patch in 3-component vector of float TessCoord)
+0:?     'pcf_data' (layout( location=2) patch in structure{})
+0:?     'pcf_data_flTessFactor' ( patch in 4-element array of float TessLevelOuter)
+0:?     'pcf_data_flInsideTessFactor' ( patch in 2-element array of float TessLevelInner)
+
+// Module Version 10000
+// Generated by (magic number): 80001
+// Id's are bound by 96
+
+                              Capability Tessellation
+               1:             ExtInstImport  "GLSL.std.450"
+                              MemoryModel Logical GLSL450
+                              EntryPoint TessellationEvaluation 4  "main" 54 58 67 81 86 95
+                              ExecutionMode 4 Isolines
+                              Source HLSL 500
+                              Name 4  "main"
+                              Name 9  "ds_in_t"
+                              MemberName 9(ds_in_t) 0  "pos"
+                              MemberName 9(ds_in_t) 1  "norm"
+                              Name 17  "pcf_in_t"
+                              MemberName 17(pcf_in_t) 0  "flTessFactor"
+                              MemberName 17(pcf_in_t) 1  "flInsideTessFactor"
+                              Name 19  "gs_in_t"
+                              MemberName 19(gs_in_t) 0  "pos"
+                              MemberName 19(gs_in_t) 1  "norm"
+                              Name 24  "@main(struct-ds_in_t-vf4-vf31[2];vf2;struct-pcf_in_t-f1[3]-f11;"
+                              Name 21  "i"
+                              Name 22  "tesscoord"
+                              Name 23  "pcf_data"
+                              Name 27  "o"
+                              Name 52  "i"
+                              Name 54  "i"
+                              Name 56  "tesscoord"
+                              Name 58  "tesscoord"
+                              Name 63  "pcf_data"
+                              Name 67  "pcf_data_flTessFactor"
+                              Name 81  "pcf_data_flInsideTessFactor"
+                              Name 86  "@entryPointOutput"
+                              Name 88  "param"
+                              Name 90  "param"
+                              Name 93  "pcf_in_t"
+                              Name 95  "pcf_data"
+                              Decorate 54(i) Location 0
+                              Decorate 58(tesscoord) Patch
+                              Decorate 58(tesscoord) BuiltIn TessCoord
+                              Decorate 67(pcf_data_flTessFactor) Patch
+                              Decorate 67(pcf_data_flTessFactor) BuiltIn TessLevelOuter
+                              Decorate 81(pcf_data_flInsideTessFactor) Patch
+                              Decorate 81(pcf_data_flInsideTessFactor) BuiltIn TessLevelInner
+                              Decorate 86(@entryPointOutput) Location 0
+                              Decorate 95(pcf_data) Patch
+                              Decorate 95(pcf_data) Location 2
+               2:             TypeVoid
+               3:             TypeFunction 2
+               6:             TypeFloat 32
+               7:             TypeVector 6(float) 4
+               8:             TypeVector 6(float) 3
+      9(ds_in_t):             TypeStruct 7(fvec4) 8(fvec3)
+              10:             TypeInt 32 0
+              11:     10(int) Constant 2
+              12:             TypeArray 9(ds_in_t) 11
+              13:             TypeVector 6(float) 2
+              14:             TypePointer Function 13(fvec2)
+              15:     10(int) Constant 3
+              16:             TypeArray 6(float) 15
+    17(pcf_in_t):             TypeStruct 16 6(float)
+              18:             TypePointer Function 17(pcf_in_t)
+     19(gs_in_t):             TypeStruct 7(fvec4) 8(fvec3)
+              20:             TypeFunction 19(gs_in_t) 12 14(ptr) 18(ptr)
+              26:             TypePointer Function 19(gs_in_t)
+              28:             TypeInt 32 1
+              29:     28(int) Constant 0
+              31:     10(int) Constant 0
+              32:             TypePointer Function 6(float)
+              37:             TypePointer Function 7(fvec4)
+              39:     28(int) Constant 1
+              41:     10(int) Constant 1
+              46:             TypePointer Function 8(fvec3)
+              51:             TypePointer Function 12
+              53:             TypePointer Input 12
+           54(i):     53(ptr) Variable Input
+              57:             TypePointer Input 8(fvec3)
+   58(tesscoord):     57(ptr) Variable Input
+              64:     10(int) Constant 4
+              65:             TypeArray 6(float) 64
+              66:             TypePointer Input 65
+67(pcf_data_flTessFactor):     66(ptr) Variable Input
+              68:             TypePointer Input 6(float)
+              75:     28(int) Constant 2
+              79:             TypeArray 6(float) 11
+              80:             TypePointer Input 79
+81(pcf_data_flInsideTessFactor):     80(ptr) Variable Input
+              85:             TypePointer Output 19(gs_in_t)
+86(@entryPointOutput):     85(ptr) Variable Output
+    93(pcf_in_t):             TypeStruct
+              94:             TypePointer Input 93(pcf_in_t)
+    95(pcf_data):     94(ptr) Variable Input
+         4(main):           2 Function None 3
+               5:             Label
+           52(i):     51(ptr) Variable Function
+   56(tesscoord):     14(ptr) Variable Function
+    63(pcf_data):     18(ptr) Variable Function
+       88(param):     14(ptr) Variable Function
+       90(param):     18(ptr) Variable Function
+              55:          12 Load 54(i)
+                              Store 52(i) 55
+              59:    8(fvec3) Load 58(tesscoord)
+              60:    6(float) CompositeExtract 59 0
+              61:    6(float) CompositeExtract 59 1
+              62:   13(fvec2) CompositeConstruct 60 61
+                              Store 56(tesscoord) 62
+              69:     68(ptr) AccessChain 67(pcf_data_flTessFactor) 29
+              70:    6(float) Load 69
+              71:     32(ptr) AccessChain 63(pcf_data) 29 29
+                              Store 71 70
+              72:     68(ptr) AccessChain 67(pcf_data_flTessFactor) 39
+              73:    6(float) Load 72
+              74:     32(ptr) AccessChain 63(pcf_data) 29 39
+                              Store 74 73
+              76:     68(ptr) AccessChain 67(pcf_data_flTessFactor) 75
+              77:    6(float) Load 76
+              78:     32(ptr) AccessChain 63(pcf_data) 29 75
+                              Store 78 77
+              82:     68(ptr) AccessChain 81(pcf_data_flInsideTessFactor) 29
+              83:    6(float) Load 82
+              84:     32(ptr) AccessChain 63(pcf_data) 39
+                              Store 84 83
+              87:          12 Load 52(i)
+              89:   13(fvec2) Load 56(tesscoord)
+                              Store 88(param) 89
+              91:17(pcf_in_t) Load 63(pcf_data)
+                              Store 90(param) 91
+              92: 19(gs_in_t) FunctionCall 24(@main(struct-ds_in_t-vf4-vf31[2];vf2;struct-pcf_in_t-f1[3]-f11;) 87 88(param) 90(param)
+                              Store 86(@entryPointOutput) 92
+                              Return
+                              FunctionEnd
+24(@main(struct-ds_in_t-vf4-vf31[2];vf2;struct-pcf_in_t-f1[3]-f11;): 19(gs_in_t) Function None 20
+           21(i):          12 FunctionParameter
+   22(tesscoord):     14(ptr) FunctionParameter
+    23(pcf_data):     18(ptr) FunctionParameter
+              25:             Label
+           27(o):     26(ptr) Variable Function
+              30:    7(fvec4) CompositeExtract 21(i) 0 0
+              33:     32(ptr) AccessChain 22(tesscoord) 31
+              34:    6(float) Load 33
+              35:    7(fvec4) CompositeConstruct 34 34 34 34
+              36:    7(fvec4) FAdd 30 35
+              38:     37(ptr) AccessChain 27(o) 29
+                              Store 38 36
+              40:    8(fvec3) CompositeExtract 21(i) 0 1
+              42:     32(ptr) AccessChain 22(tesscoord) 41
+              43:    6(float) Load 42
+              44:    8(fvec3) CompositeConstruct 43 43 43
+              45:    8(fvec3) FAdd 40 44
+              47:     46(ptr) AccessChain 27(o) 39
+                              Store 47 45
+              48: 19(gs_in_t) Load 27(o)
+                              ReturnValue 48
+                              FunctionEnd

+ 3 - 2
3rdparty/glslang/Test/baseResults/hlsl.emptystructreturn.frag.out

@@ -1,5 +1,5 @@
 hlsl.emptystructreturn.frag
-Shader version: 450
+Shader version: 500
 gl_FragCoord origin is upper left
 0:? Sequence
 0:10  Function Definition: @main(struct-ps_in1; ( temp structure{})
@@ -26,7 +26,7 @@ gl_FragCoord origin is upper left
 Linked fragment stage:
 
 
-Shader version: 450
+Shader version: 500
 gl_FragCoord origin is upper left
 0:? Sequence
 0:10  Function Definition: @main(struct-ps_in1; ( temp structure{})
@@ -58,6 +58,7 @@ gl_FragCoord origin is upper left
                               MemoryModel Logical GLSL450
                               EntryPoint Fragment 4  "main" 20 23
                               ExecutionMode 4 OriginUpperLeft
+                              Source HLSL 500
                               Name 4  "main"
                               Name 6  "ps_in"
                               Name 8  "ps_out"

+ 3 - 2
3rdparty/glslang/Test/baseResults/hlsl.emptystructreturn.vert.out

@@ -1,5 +1,5 @@
 hlsl.emptystructreturn.vert
-Shader version: 450
+Shader version: 500
 0:? Sequence
 0:10  Function Definition: @main(struct-vs_in1; ( temp structure{})
 0:10    Function Parameters: 
@@ -25,7 +25,7 @@ Shader version: 450
 Linked vertex stage:
 
 
-Shader version: 450
+Shader version: 500
 0:? Sequence
 0:10  Function Definition: @main(struct-vs_in1; ( temp structure{})
 0:10    Function Parameters: 
@@ -55,6 +55,7 @@ Shader version: 450
                1:             ExtInstImport  "GLSL.std.450"
                               MemoryModel Logical GLSL450
                               EntryPoint Vertex 4  "main" 20 23
+                              Source HLSL 500
                               Name 4  "main"
                               Name 6  "vs_in"
                               Name 8  "vs_out"

+ 3 - 2
3rdparty/glslang/Test/baseResults/hlsl.entry-in.frag.out

@@ -1,5 +1,5 @@
 hlsl.entry-in.frag
-Shader version: 450
+Shader version: 500
 gl_FragCoord origin is upper left
 0:? Sequence
 0:8  Function Definition: fun(struct-InParam-vf2-vf4-vi21; ( temp float)
@@ -89,7 +89,7 @@ gl_FragCoord origin is upper left
 Linked fragment stage:
 
 
-Shader version: 450
+Shader version: 500
 gl_FragCoord origin is upper left
 0:? Sequence
 0:8  Function Definition: fun(struct-InParam-vf2-vf4-vi21; ( temp float)
@@ -184,6 +184,7 @@ gl_FragCoord origin is upper left
                               MemoryModel Logical GLSL450
                               EntryPoint Fragment 4  "PixelShaderFunction" 56 63 73
                               ExecutionMode 4 OriginUpperLeft
+                              Source HLSL 500
                               Name 4  "PixelShaderFunction"
                               Name 11  "InParam"
                               MemberName 11(InParam) 0  "v"

+ 3 - 2
3rdparty/glslang/Test/baseResults/hlsl.entry-out.frag.out

@@ -1,5 +1,5 @@
 hlsl.entry-out.frag
-Shader version: 450
+Shader version: 500
 gl_FragCoord origin is upper left
 0:? Sequence
 0:7  Function Definition: fun(struct-OutParam-vf2-vi21; ( temp void)
@@ -123,7 +123,7 @@ gl_FragCoord origin is upper left
 Linked fragment stage:
 
 
-Shader version: 450
+Shader version: 500
 gl_FragCoord origin is upper left
 0:? Sequence
 0:7  Function Definition: fun(struct-OutParam-vf2-vi21; ( temp void)
@@ -252,6 +252,7 @@ gl_FragCoord origin is upper left
                               MemoryModel Logical GLSL450
                               EntryPoint Fragment 4  "PixelShaderFunction" 57 60 73 76 80 83 86
                               ExecutionMode 4 OriginUpperLeft
+                              Source HLSL 500
                               Name 4  "PixelShaderFunction"
                               Name 10  "OutParam"
                               MemberName 10(OutParam) 0  "v"

+ 3 - 2
3rdparty/glslang/Test/baseResults/hlsl.entry.rename.frag.out

@@ -1,5 +1,5 @@
 hlsl.entry.rename.frag
-Shader version: 450
+Shader version: 500
 gl_FragCoord origin is upper left
 0:? Sequence
 0:7  Function Definition: not_the_entry_point( ( temp void)
@@ -37,7 +37,7 @@ gl_FragCoord origin is upper left
 Linked fragment stage:
 
 
-Shader version: 450
+Shader version: 500
 gl_FragCoord origin is upper left
 0:? Sequence
 0:7  Function Definition: not_the_entry_point( ( temp void)
@@ -80,6 +80,7 @@ gl_FragCoord origin is upper left
                               MemoryModel Logical GLSL450
                               EntryPoint Fragment 4  "main_in_spv" 26
                               ExecutionMode 4 OriginUpperLeft
+                              Source HLSL 500
                               Name 4  "main_in_spv"
                               Name 6  "not_the_entry_point("
                               Name 10  "PS_OUTPUT"

+ 3 - 2
3rdparty/glslang/Test/baseResults/hlsl.flatten.return.frag.out

@@ -1,5 +1,5 @@
 hlsl.flatten.return.frag
-Shader version: 450
+Shader version: 500
 gl_FragCoord origin is upper left
 0:? Sequence
 0:11  Function Definition: Func1( ( temp structure{ temp 4-component vector of float color,  temp float other_struct_member1,  temp float other_struct_member2,  temp float other_struct_member3})
@@ -60,7 +60,7 @@ gl_FragCoord origin is upper left
 Linked fragment stage:
 
 
-Shader version: 450
+Shader version: 500
 gl_FragCoord origin is upper left
 0:? Sequence
 0:11  Function Definition: Func1( ( temp structure{ temp 4-component vector of float color,  temp float other_struct_member1,  temp float other_struct_member2,  temp float other_struct_member3})
@@ -126,6 +126,7 @@ gl_FragCoord origin is upper left
                               MemoryModel Logical GLSL450
                               EntryPoint Fragment 4  "main" 29 36 41 45
                               ExecutionMode 4 OriginUpperLeft
+                              Source HLSL 500
                               Name 4  "main"
                               Name 8  "PS_OUTPUT"
                               MemberName 8(PS_OUTPUT) 0  "color"

+ 3 - 2
3rdparty/glslang/Test/baseResults/hlsl.float1.frag.out

@@ -1,5 +1,5 @@
 hlsl.float1.frag
-Shader version: 450
+Shader version: 500
 gl_FragCoord origin is upper left
 0:? Sequence
 0:1  Sequence
@@ -34,7 +34,7 @@ Linked fragment stage:
 
 WARNING: Linking fragment stage: Entry point not found
 
-Shader version: 450
+Shader version: 500
 gl_FragCoord origin is upper left
 0:? Sequence
 0:1  Sequence
@@ -73,6 +73,7 @@ gl_FragCoord origin is upper left
                               MemoryModel Logical GLSL450
                               EntryPoint Fragment 4  "PixelShaderFunction"
                               ExecutionMode 4 OriginUpperLeft
+                              Source HLSL 500
                               Name 4  "PixelShaderFunction"
                               Name 11  "ShaderFunction(vf1;f1;"
                               Name 9  "inFloat1"

+ 3 - 2
3rdparty/glslang/Test/baseResults/hlsl.float4.frag.out

@@ -2,7 +2,7 @@ hlsl.float4.frag
 WARNING: 0:5: 'register' : ignoring shader_profile 
 WARNING: 0:6: 'register' : ignoring shader_profile 
 
-Shader version: 450
+Shader version: 500
 gl_FragCoord origin is upper left
 0:? Sequence
 0:9  Function Definition: ShaderFunction(vf4; ( temp 4-component vector of float)
@@ -24,7 +24,7 @@ Linked fragment stage:
 
 WARNING: Linking fragment stage: Entry point not found
 
-Shader version: 450
+Shader version: 500
 gl_FragCoord origin is upper left
 0:? Sequence
 0:9  Function Definition: ShaderFunction(vf4; ( temp 4-component vector of float)
@@ -50,6 +50,7 @@ gl_FragCoord origin is upper left
                               MemoryModel Logical GLSL450
                               EntryPoint Fragment 4  "PixelShaderFunction"
                               ExecutionMode 4 OriginUpperLeft
+                              Source HLSL 500
                               Name 4  "PixelShaderFunction"
                               Name 11  "ShaderFunction(vf4;"
                               Name 10  "input"

+ 3 - 2
3rdparty/glslang/Test/baseResults/hlsl.forLoop.frag.out

@@ -1,5 +1,5 @@
 hlsl.forLoop.frag
-Shader version: 450
+Shader version: 500
 gl_FragCoord origin is upper left
 0:? Sequence
 0:2  Function Definition: @PixelShaderFunction(vf4; ( temp 4-component vector of float)
@@ -128,7 +128,7 @@ gl_FragCoord origin is upper left
 Linked fragment stage:
 
 
-Shader version: 450
+Shader version: 500
 gl_FragCoord origin is upper left
 0:? Sequence
 0:2  Function Definition: @PixelShaderFunction(vf4; ( temp 4-component vector of float)
@@ -262,6 +262,7 @@ gl_FragCoord origin is upper left
                               MemoryModel Logical GLSL450
                               EntryPoint Fragment 4  "PixelShaderFunction" 117 120
                               ExecutionMode 4 OriginUpperLeft
+                              Source HLSL 500
                               Name 4  "PixelShaderFunction"
                               Name 11  "@PixelShaderFunction(vf4;"
                               Name 10  "input"

+ 3 - 2
3rdparty/glslang/Test/baseResults/hlsl.gather.array.dx10.frag.out

@@ -1,5 +1,5 @@
 hlsl.gather.array.dx10.frag
-Shader version: 450
+Shader version: 500
 gl_FragCoord origin is upper left
 0:? Sequence
 0:24  Function Definition: @main( ( temp structure{ temp 4-component vector of float Color,  temp float Depth})
@@ -131,7 +131,7 @@ gl_FragCoord origin is upper left
 Linked fragment stage:
 
 
-Shader version: 450
+Shader version: 500
 gl_FragCoord origin is upper left
 0:? Sequence
 0:24  Function Definition: @main( ( temp structure{ temp 4-component vector of float Color,  temp float Depth})
@@ -270,6 +270,7 @@ gl_FragCoord origin is upper left
                               MemoryModel Logical GLSL450
                               EntryPoint Fragment 4  "main" 107 111
                               ExecutionMode 4 OriginUpperLeft
+                              Source HLSL 500
                               Name 4  "main"
                               Name 8  "PS_OUTPUT"
                               MemberName 8(PS_OUTPUT) 0  "Color"

+ 3 - 2
3rdparty/glslang/Test/baseResults/hlsl.gather.basic.dx10.frag.out

@@ -1,5 +1,5 @@
 hlsl.gather.basic.dx10.frag
-Shader version: 450
+Shader version: 500
 gl_FragCoord origin is upper left
 0:? Sequence
 0:29  Function Definition: @main( ( temp structure{ temp 4-component vector of float Color,  temp float Depth})
@@ -129,7 +129,7 @@ gl_FragCoord origin is upper left
 Linked fragment stage:
 
 
-Shader version: 450
+Shader version: 500
 gl_FragCoord origin is upper left
 0:? Sequence
 0:29  Function Definition: @main( ( temp structure{ temp 4-component vector of float Color,  temp float Depth})
@@ -265,6 +265,7 @@ gl_FragCoord origin is upper left
                               MemoryModel Logical GLSL450
                               EntryPoint Fragment 4  "main" 108 112
                               ExecutionMode 4 OriginUpperLeft
+                              Source HLSL 500
                               Name 4  "main"
                               Name 8  "PS_OUTPUT"
                               MemberName 8(PS_OUTPUT) 0  "Color"

+ 3 - 2
3rdparty/glslang/Test/baseResults/hlsl.gather.basic.dx10.vert.out

@@ -1,5 +1,5 @@
 hlsl.gather.basic.dx10.vert
-Shader version: 450
+Shader version: 500
 0:? Sequence
 0:28  Function Definition: @main( ( temp structure{ temp 4-component vector of float Pos})
 0:28    Function Parameters: 
@@ -111,7 +111,7 @@ Shader version: 450
 Linked vertex stage:
 
 
-Shader version: 450
+Shader version: 500
 0:? Sequence
 0:28  Function Definition: @main( ( temp structure{ temp 4-component vector of float Pos})
 0:28    Function Parameters: 
@@ -228,6 +228,7 @@ Shader version: 450
                1:             ExtInstImport  "GLSL.std.450"
                               MemoryModel Logical GLSL450
                               EntryPoint Vertex 4  "main" 103 128
+                              Source HLSL 500
                               Name 4  "main"
                               Name 8  "VS_OUTPUT"
                               MemberName 8(VS_OUTPUT) 0  "Pos"

+ 3 - 2
3rdparty/glslang/Test/baseResults/hlsl.gather.offset.dx10.frag.out

@@ -1,5 +1,5 @@
 hlsl.gather.offset.dx10.frag
-Shader version: 450
+Shader version: 500
 gl_FragCoord origin is upper left
 0:? Sequence
 0:28  Function Definition: @main( ( temp structure{ temp 4-component vector of float Color,  temp float Depth})
@@ -104,7 +104,7 @@ gl_FragCoord origin is upper left
 Linked fragment stage:
 
 
-Shader version: 450
+Shader version: 500
 gl_FragCoord origin is upper left
 0:? Sequence
 0:28  Function Definition: @main( ( temp structure{ temp 4-component vector of float Color,  temp float Depth})
@@ -215,6 +215,7 @@ gl_FragCoord origin is upper left
                               MemoryModel Logical GLSL450
                               EntryPoint Fragment 4  "main" 79 83
                               ExecutionMode 4 OriginUpperLeft
+                              Source HLSL 500
                               Name 4  "main"
                               Name 8  "PS_OUTPUT"
                               MemberName 8(PS_OUTPUT) 0  "Color"

+ 3 - 2
3rdparty/glslang/Test/baseResults/hlsl.gather.offsetarray.dx10.frag.out

@@ -1,5 +1,5 @@
 hlsl.gather.offsetarray.dx10.frag
-Shader version: 450
+Shader version: 500
 gl_FragCoord origin is upper left
 0:? Sequence
 0:20  Function Definition: @main( ( temp structure{ temp 4-component vector of float Color,  temp float Depth})
@@ -101,7 +101,7 @@ gl_FragCoord origin is upper left
 Linked fragment stage:
 
 
-Shader version: 450
+Shader version: 500
 gl_FragCoord origin is upper left
 0:? Sequence
 0:20  Function Definition: @main( ( temp structure{ temp 4-component vector of float Color,  temp float Depth})
@@ -209,6 +209,7 @@ gl_FragCoord origin is upper left
                               MemoryModel Logical GLSL450
                               EntryPoint Fragment 4  "main" 80 84
                               ExecutionMode 4 OriginUpperLeft
+                              Source HLSL 500
                               Name 4  "main"
                               Name 8  "PS_OUTPUT"
                               MemberName 8(PS_OUTPUT) 0  "Color"

+ 3 - 2
3rdparty/glslang/Test/baseResults/hlsl.gatherRGBA.array.dx10.frag.out

@@ -1,5 +1,5 @@
 hlsl.gatherRGBA.array.dx10.frag
-Shader version: 450
+Shader version: 500
 gl_FragCoord origin is upper left
 0:? Sequence
 0:28  Function Definition: @main( ( temp structure{ temp 4-component vector of float Color,  temp float Depth})
@@ -375,7 +375,7 @@ gl_FragCoord origin is upper left
 Linked fragment stage:
 
 
-Shader version: 450
+Shader version: 500
 gl_FragCoord origin is upper left
 0:? Sequence
 0:28  Function Definition: @main( ( temp structure{ temp 4-component vector of float Color,  temp float Depth})
@@ -758,6 +758,7 @@ gl_FragCoord origin is upper left
                               MemoryModel Logical GLSL450
                               EntryPoint Fragment 4  "main" 238 242
                               ExecutionMode 4 OriginUpperLeft
+                              Source HLSL 500
                               Name 4  "main"
                               Name 8  "PS_OUTPUT"
                               MemberName 8(PS_OUTPUT) 0  "Color"

+ 3 - 2
3rdparty/glslang/Test/baseResults/hlsl.gatherRGBA.basic.dx10.frag.out

@@ -1,5 +1,5 @@
 hlsl.gatherRGBA.basic.dx10.frag
-Shader version: 450
+Shader version: 500
 gl_FragCoord origin is upper left
 0:? Sequence
 0:34  Function Definition: @main( ( temp structure{ temp 4-component vector of float Color,  temp float Depth})
@@ -379,7 +379,7 @@ gl_FragCoord origin is upper left
 Linked fragment stage:
 
 
-Shader version: 450
+Shader version: 500
 gl_FragCoord origin is upper left
 0:? Sequence
 0:34  Function Definition: @main( ( temp structure{ temp 4-component vector of float Color,  temp float Depth})
@@ -765,6 +765,7 @@ gl_FragCoord origin is upper left
                               MemoryModel Logical GLSL450
                               EntryPoint Fragment 4  "main" 238 242
                               ExecutionMode 4 OriginUpperLeft
+                              Source HLSL 500
                               Name 4  "main"
                               Name 8  "PS_OUTPUT"
                               MemberName 8(PS_OUTPUT) 0  "Color"

+ 3 - 2
3rdparty/glslang/Test/baseResults/hlsl.gatherRGBA.offset.dx10.frag.out

@@ -1,5 +1,5 @@
 hlsl.gatherRGBA.offset.dx10.frag
-Shader version: 450
+Shader version: 500
 gl_FragCoord origin is upper left
 0:? Sequence
 0:39  Function Definition: @main( ( temp structure{ temp 4-component vector of float Color,  temp float Depth})
@@ -631,7 +631,7 @@ gl_FragCoord origin is upper left
 Linked fragment stage:
 
 
-Shader version: 450
+Shader version: 500
 gl_FragCoord origin is upper left
 0:? Sequence
 0:39  Function Definition: @main( ( temp structure{ temp 4-component vector of float Color,  temp float Depth})
@@ -1270,6 +1270,7 @@ gl_FragCoord origin is upper left
                               MemoryModel Logical GLSL450
                               EntryPoint Fragment 4  "main" 363 367
                               ExecutionMode 4 OriginUpperLeft
+                              Source HLSL 500
                               Name 4  "main"
                               Name 8  "PS_OUTPUT"
                               MemberName 8(PS_OUTPUT) 0  "Color"

+ 3 - 2
3rdparty/glslang/Test/baseResults/hlsl.gatherRGBA.offsetarray.dx10.frag.out

@@ -1,5 +1,5 @@
 hlsl.gatherRGBA.offsetarray.dx10.frag
-Shader version: 450
+Shader version: 500
 gl_FragCoord origin is upper left
 0:? Sequence
 0:33  Function Definition: @main( ( temp structure{ temp 4-component vector of float Color,  temp float Depth})
@@ -627,7 +627,7 @@ gl_FragCoord origin is upper left
 Linked fragment stage:
 
 
-Shader version: 450
+Shader version: 500
 gl_FragCoord origin is upper left
 0:? Sequence
 0:33  Function Definition: @main( ( temp structure{ temp 4-component vector of float Color,  temp float Depth})
@@ -1263,6 +1263,7 @@ gl_FragCoord origin is upper left
                               MemoryModel Logical GLSL450
                               EntryPoint Fragment 4  "main" 363 367
                               ExecutionMode 4 OriginUpperLeft
+                              Source HLSL 500
                               Name 4  "main"
                               Name 8  "PS_OUTPUT"
                               MemberName 8(PS_OUTPUT) 0  "Color"

+ 3 - 2
3rdparty/glslang/Test/baseResults/hlsl.gathercmpRGBA.offset.dx10.frag.out

@@ -1,5 +1,5 @@
 hlsl.gathercmpRGBA.offset.dx10.frag
-Shader version: 450
+Shader version: 500
 gl_FragCoord origin is upper left
 0:? Sequence
 0:38  Function Definition: @main( ( temp structure{ temp 4-component vector of float Color,  temp float Depth})
@@ -180,7 +180,7 @@ gl_FragCoord origin is upper left
 Linked fragment stage:
 
 
-Shader version: 450
+Shader version: 500
 gl_FragCoord origin is upper left
 0:? Sequence
 0:38  Function Definition: @main( ( temp structure{ temp 4-component vector of float Color,  temp float Depth})
@@ -367,6 +367,7 @@ gl_FragCoord origin is upper left
                               MemoryModel Logical GLSL450
                               EntryPoint Fragment 4  "main" 111 115
                               ExecutionMode 4 OriginUpperLeft
+                              Source HLSL 500
                               Name 4  "main"
                               Name 8  "PS_OUTPUT"
                               MemberName 8(PS_OUTPUT) 0  "Color"

+ 3 - 2
3rdparty/glslang/Test/baseResults/hlsl.getdimensions.dx10.frag.out

@@ -1,5 +1,5 @@
 hlsl.getdimensions.dx10.frag
-Shader version: 450
+Shader version: 500
 gl_FragCoord origin is upper left
 0:? Sequence
 0:46  Function Definition: @main( ( temp structure{ temp 4-component vector of float Color,  temp float Depth})
@@ -1159,7 +1159,7 @@ gl_FragCoord origin is upper left
 Linked fragment stage:
 
 
-Shader version: 450
+Shader version: 500
 gl_FragCoord origin is upper left
 0:? Sequence
 0:46  Function Definition: @main( ( temp structure{ temp 4-component vector of float Color,  temp float Depth})
@@ -2328,6 +2328,7 @@ gl_FragCoord origin is upper left
                               MemoryModel Logical GLSL450
                               EntryPoint Fragment 4  "main" 540 544
                               ExecutionMode 4 OriginUpperLeft
+                              Source HLSL 500
                               Name 4  "main"
                               Name 8  "PS_OUTPUT"
                               MemberName 8(PS_OUTPUT) 0  "Color"

+ 3 - 2
3rdparty/glslang/Test/baseResults/hlsl.getdimensions.dx10.vert.out

@@ -1,5 +1,5 @@
 hlsl.getdimensions.dx10.vert
-Shader version: 450
+Shader version: 500
 0:? Sequence
 0:11  Function Definition: @main( ( temp structure{ temp 4-component vector of float Pos})
 0:11    Function Parameters: 
@@ -59,7 +59,7 @@ Shader version: 450
 Linked vertex stage:
 
 
-Shader version: 450
+Shader version: 500
 0:? Sequence
 0:11  Function Definition: @main( ( temp structure{ temp 4-component vector of float Pos})
 0:11    Function Parameters: 
@@ -125,6 +125,7 @@ Shader version: 450
                1:             ExtInstImport  "GLSL.std.450"
                               MemoryModel Logical GLSL450
                               EntryPoint Vertex 4  "main" 42 50
+                              Source HLSL 500
                               Name 4  "main"
                               Name 8  "VS_OUTPUT"
                               MemberName 8(VS_OUTPUT) 0  "Pos"

+ 3 - 2
3rdparty/glslang/Test/baseResults/hlsl.getdimensions.rw.dx10.frag.out

@@ -1,5 +1,5 @@
 hlsl.getdimensions.rw.dx10.frag
-Shader version: 450
+Shader version: 500
 gl_FragCoord origin is upper left
 0:? Sequence
 0:44  Function Definition: @main( ( temp structure{ temp 4-component vector of float Color,  temp float Depth})
@@ -359,7 +359,7 @@ gl_FragCoord origin is upper left
 Linked fragment stage:
 
 
-Shader version: 450
+Shader version: 500
 gl_FragCoord origin is upper left
 0:? Sequence
 0:44  Function Definition: @main( ( temp structure{ temp 4-component vector of float Color,  temp float Depth})
@@ -727,6 +727,7 @@ gl_FragCoord origin is upper left
                               MemoryModel Logical GLSL450
                               EntryPoint Fragment 4  "main" 216 220
                               ExecutionMode 4 OriginUpperLeft
+                              Source HLSL 500
                               Name 4  "main"
                               Name 8  "PS_OUTPUT"
                               MemberName 8(PS_OUTPUT) 0  "Color"

+ 2 - 2
3rdparty/glslang/Test/baseResults/hlsl.getsampleposition.dx10.frag.out

@@ -4,7 +4,7 @@ ERROR: 0:17: '' : unimplemented: GetSamplePosition
 ERROR: 2 compilation errors.  No code generated.
 
 
-Shader version: 450
+Shader version: 500
 gl_FragCoord origin is upper left
 ERROR: node is still EOpNull!
 0:13  Function Definition: @main( ( temp structure{ temp 4-component vector of float Color,  temp float Depth})
@@ -75,7 +75,7 @@ ERROR: node is still EOpNull!
 Linked fragment stage:
 
 
-Shader version: 450
+Shader version: 500
 gl_FragCoord origin is upper left
 ERROR: node is still EOpNull!
 0:13  Function Definition: @main( ( temp structure{ temp 4-component vector of float Color,  temp float Depth})

+ 85 - 0
3rdparty/glslang/Test/baseResults/hlsl.hlslOffset.vert.out

@@ -0,0 +1,85 @@
+hlsl.hlslOffset.vert
+Shader version: 500
+0:? Sequence
+0:20  Function Definition: @main( ( temp void)
+0:20    Function Parameters: 
+0:20  Function Definition: main( ( temp void)
+0:20    Function Parameters: 
+0:?     Sequence
+0:20      Function Call: @main( ( temp void)
+0:?   Linker Objects
+0:?     'anon@0' (layout( row_major std140) uniform block{layout( row_major std140) uniform float m0, layout( row_major std140) uniform 3-component vector of float m4, layout( row_major std140) uniform float m16, layout( row_major std140 offset=20) uniform 3-component vector of float m20, layout( row_major std140 offset=36) uniform 3-component vector of float m36, layout( row_major std140 offset=56) uniform 2-component vector of float m56, layout( row_major std140) uniform float m64, layout( row_major std140) uniform 2-component vector of float m68, layout( row_major std140) uniform float m76, layout( row_major std140) uniform float m80, layout( row_major std140) uniform 1-element array of 2-component vector of float m96})
+
+
+Linked vertex stage:
+
+
+Shader version: 500
+0:? Sequence
+0:20  Function Definition: @main( ( temp void)
+0:20    Function Parameters: 
+0:20  Function Definition: main( ( temp void)
+0:20    Function Parameters: 
+0:?     Sequence
+0:20      Function Call: @main( ( temp void)
+0:?   Linker Objects
+0:?     'anon@0' (layout( row_major std140) uniform block{layout( row_major std140) uniform float m0, layout( row_major std140) uniform 3-component vector of float m4, layout( row_major std140) uniform float m16, layout( row_major std140 offset=20) uniform 3-component vector of float m20, layout( row_major std140 offset=36) uniform 3-component vector of float m36, layout( row_major std140 offset=56) uniform 2-component vector of float m56, layout( row_major std140) uniform float m64, layout( row_major std140) uniform 2-component vector of float m68, layout( row_major std140) uniform float m76, layout( row_major std140) uniform float m80, layout( row_major std140) uniform 1-element array of 2-component vector of float m96})
+
+// Module Version 10000
+// Generated by (magic number): 80001
+// Id's are bound by 18
+
+                              Capability Shader
+               1:             ExtInstImport  "GLSL.std.450"
+                              MemoryModel Logical GLSL450
+                              EntryPoint Vertex 4  "main"
+                              Source HLSL 500
+                              Name 4  "main"
+                              Name 6  "@main("
+                              Name 15  "b"
+                              MemberName 15(b) 0  "m0"
+                              MemberName 15(b) 1  "m4"
+                              MemberName 15(b) 2  "m16"
+                              MemberName 15(b) 3  "m20"
+                              MemberName 15(b) 4  "m36"
+                              MemberName 15(b) 5  "m56"
+                              MemberName 15(b) 6  "m64"
+                              MemberName 15(b) 7  "m68"
+                              MemberName 15(b) 8  "m76"
+                              MemberName 15(b) 9  "m80"
+                              MemberName 15(b) 10  "m96"
+                              Name 17  ""
+                              Decorate 14 ArrayStride 16
+                              MemberDecorate 15(b) 0 Offset 0
+                              MemberDecorate 15(b) 1 Offset 4
+                              MemberDecorate 15(b) 2 Offset 16
+                              MemberDecorate 15(b) 3 Offset 20
+                              MemberDecorate 15(b) 4 Offset 36
+                              MemberDecorate 15(b) 5 Offset 56
+                              MemberDecorate 15(b) 6 Offset 64
+                              MemberDecorate 15(b) 7 Offset 68
+                              MemberDecorate 15(b) 8 Offset 76
+                              MemberDecorate 15(b) 9 Offset 80
+                              MemberDecorate 15(b) 10 Offset 96
+                              Decorate 15(b) Block
+                              Decorate 17 DescriptorSet 0
+               2:             TypeVoid
+               3:             TypeFunction 2
+               9:             TypeFloat 32
+              10:             TypeVector 9(float) 3
+              11:             TypeVector 9(float) 2
+              12:             TypeInt 32 0
+              13:     12(int) Constant 1
+              14:             TypeArray 11(fvec2) 13
+           15(b):             TypeStruct 9(float) 10(fvec3) 9(float) 10(fvec3) 10(fvec3) 11(fvec2) 9(float) 11(fvec2) 9(float) 9(float) 14
+              16:             TypePointer Uniform 15(b)
+              17:     16(ptr) Variable Uniform
+         4(main):           2 Function None 3
+               5:             Label
+               8:           2 FunctionCall 6(@main()
+                              Return
+                              FunctionEnd
+       6(@main():           2 Function None 3
+               7:             Label
+                              Return
+                              FunctionEnd

+ 3 - 2
3rdparty/glslang/Test/baseResults/hlsl.hull.1.tesc.out

@@ -1,5 +1,5 @@
 hlsl.hull.1.tesc
-Shader version: 450
+Shader version: 500
 vertices = 4
 vertex spacing = equal_spacing
 0:? Sequence
@@ -114,7 +114,7 @@ vertex spacing = equal_spacing
 Linked tessellation control stage:
 
 
-Shader version: 450
+Shader version: 500
 vertices = 4
 vertex spacing = equal_spacing
 0:? Sequence
@@ -236,6 +236,7 @@ vertex spacing = equal_spacing
                               ExecutionMode 4 OutputVertices 4
                               ExecutionMode 4 Isolines
                               ExecutionMode 4 SpacingEqual
+                              Source HLSL 500
                               Name 4  "main"
                               Name 8  "VS_OUT"
                               MemberName 8(VS_OUT) 0  "cpoint"

+ 3 - 2
3rdparty/glslang/Test/baseResults/hlsl.hull.2.tesc.out

@@ -1,5 +1,5 @@
 hlsl.hull.2.tesc
-Shader version: 450
+Shader version: 500
 vertices = 4
 vertex spacing = equal_spacing
 0:? Sequence
@@ -112,7 +112,7 @@ vertex spacing = equal_spacing
 Linked tessellation control stage:
 
 
-Shader version: 450
+Shader version: 500
 vertices = 4
 vertex spacing = equal_spacing
 0:? Sequence
@@ -232,6 +232,7 @@ vertex spacing = equal_spacing
                               ExecutionMode 4 OutputVertices 4
                               ExecutionMode 4 Isolines
                               ExecutionMode 4 SpacingEqual
+                              Source HLSL 500
                               Name 4  "main"
                               Name 8  "VS_OUT"
                               MemberName 8(VS_OUT) 0  "cpoint"

+ 3 - 2
3rdparty/glslang/Test/baseResults/hlsl.hull.ctrlpt-1.tesc.out

@@ -1,5 +1,5 @@
 hlsl.hull.ctrlpt-1.tesc
-Shader version: 450
+Shader version: 500
 vertices = 3
 vertex spacing = fractional_odd_spacing
 triangle order = cw
@@ -200,7 +200,7 @@ triangle order = cw
 Linked tessellation control stage:
 
 
-Shader version: 450
+Shader version: 500
 vertices = 3
 vertex spacing = fractional_odd_spacing
 triangle order = cw
@@ -409,6 +409,7 @@ triangle order = cw
                               ExecutionMode 4 Triangles
                               ExecutionMode 4 SpacingFractionalOdd
                               ExecutionMode 4 VertexOrderCw
+                              Source HLSL 500
                               Name 4  "main"
                               Name 8  "hs_in_t"
                               MemberName 8(hs_in_t) 0  "val"

+ 634 - 0
3rdparty/glslang/Test/baseResults/hlsl.hull.ctrlpt-2.tesc.out

@@ -0,0 +1,634 @@
+hlsl.hull.ctrlpt-2.tesc
+Shader version: 500
+vertices = 3
+vertex spacing = fractional_odd_spacing
+triangle order = cw
+0:? Sequence
+0:28  Function Definition: @main(struct-hs_in_t-vf31[3];u1; ( temp structure{ temp 3-component vector of float val})
+0:28    Function Parameters: 
+0:28      'i' ( in 3-element array of structure{ temp 3-component vector of float val})
+0:28      'cpid' ( in uint)
+0:?     Sequence
+0:29      val: direct index for structure ( temp 3-component vector of float)
+0:29        direct index ( temp structure{ temp 3-component vector of float val})
+0:29          'i' ( in 3-element array of structure{ temp 3-component vector of float val})
+0:29          Constant:
+0:29            0 (const int)
+0:29        Constant:
+0:29          0 (const int)
+0:32      move second child to first child ( temp 3-component vector of float)
+0:32        val: direct index for structure ( temp 3-component vector of float)
+0:32          'o' ( temp structure{ temp 3-component vector of float val})
+0:32          Constant:
+0:32            0 (const int)
+0:32        Construct vec3 ( temp 3-component vector of float)
+0:32          Convert uint to float ( temp float)
+0:32            'cpid' ( in uint)
+0:33      Branch: Return with expression
+0:33        'o' ( temp structure{ temp 3-component vector of float val})
+0:28  Function Definition: main( ( temp void)
+0:28    Function Parameters: 
+0:?     Sequence
+0:28      move second child to first child ( temp 3-element array of structure{ temp 3-component vector of float val})
+0:?         'i' ( temp 3-element array of structure{ temp 3-component vector of float val})
+0:?         'i' (layout( location=0) in 3-element array of structure{ temp 3-component vector of float val})
+0:28      move second child to first child ( temp uint)
+0:?         'cpid' ( temp uint)
+0:?         'cpid' ( in uint InvocationID)
+0:28      move second child to first child ( temp structure{ temp 3-component vector of float val})
+0:28        indirect index ( temp structure{ temp 3-component vector of float val})
+0:?           '@entryPointOutput' (layout( location=0) out 3-element array of structure{ temp 3-component vector of float val})
+0:?           'cpid' ( in uint InvocationID)
+0:28        Function Call: @main(struct-hs_in_t-vf31[3];u1; ( temp structure{ temp 3-component vector of float val})
+0:?           'i' ( temp 3-element array of structure{ temp 3-component vector of float val})
+0:?           'cpid' ( temp uint)
+0:?       Barrier ( temp void)
+0:?       Test condition and select ( temp void)
+0:?         Condition
+0:?         Compare Equal ( temp bool)
+0:?           'cpid' ( in uint InvocationID)
+0:?           Constant:
+0:?             0 (const int)
+0:?         true case
+0:?         Sequence
+0:?           move second child to first child ( temp structure{ temp 3-component vector of float val})
+0:?             direct index ( temp structure{ temp 3-component vector of float val})
+0:?               'pcf_out' ( temp 3-element array of structure{ temp 3-component vector of float val})
+0:?               Constant:
+0:?                 0 (const int)
+0:?             Function Call: @main(struct-hs_in_t-vf31[3];u1; ( temp structure{ temp 3-component vector of float val})
+0:?               'i' ( temp 3-element array of structure{ temp 3-component vector of float val})
+0:?               Constant:
+0:?                 0 (const uint)
+0:?           move second child to first child ( temp structure{ temp 3-component vector of float val})
+0:?             direct index ( temp structure{ temp 3-component vector of float val})
+0:?               'pcf_out' ( temp 3-element array of structure{ temp 3-component vector of float val})
+0:?               Constant:
+0:?                 1 (const int)
+0:?             Function Call: @main(struct-hs_in_t-vf31[3];u1; ( temp structure{ temp 3-component vector of float val})
+0:?               'i' ( temp 3-element array of structure{ temp 3-component vector of float val})
+0:?               Constant:
+0:?                 1 (const uint)
+0:?           move second child to first child ( temp structure{ temp 3-component vector of float val})
+0:?             direct index ( temp structure{ temp 3-component vector of float val})
+0:?               'pcf_out' ( temp 3-element array of structure{ temp 3-component vector of float val})
+0:?               Constant:
+0:?                 2 (const int)
+0:?             Function Call: @main(struct-hs_in_t-vf31[3];u1; ( temp structure{ temp 3-component vector of float val})
+0:?               'i' ( temp 3-element array of structure{ temp 3-component vector of float val})
+0:?               Constant:
+0:?                 2 (const uint)
+0:?           move second child to first child ( temp structure{ temp 3-element array of float tfactor,  temp float flInFactor})
+0:?             '@patchConstantResult' ( temp structure{ temp 3-element array of float tfactor,  temp float flInFactor})
+0:?             Function Call: PCF(struct-hs_out_t-vf31[3];struct-hs_in_t-vf31[3]; ( temp structure{ temp 3-element array of float tfactor,  temp float flInFactor})
+0:?               'pcf_out' ( temp 3-element array of structure{ temp 3-component vector of float val})
+0:?               'i' (layout( location=0) in 3-element array of structure{ temp 3-component vector of float val})
+0:?           Sequence
+0:?             move second child to first child ( temp float)
+0:?               direct index ( patch out float TessLevelOuter)
+0:?                 '@patchConstantOutput_tfactor' ( patch out 4-element array of float TessLevelOuter)
+0:?                 Constant:
+0:?                   0 (const int)
+0:?               direct index ( temp float)
+0:?                 tfactor: direct index for structure ( temp 3-element array of float)
+0:?                   '@patchConstantResult' ( temp structure{ temp 3-element array of float tfactor,  temp float flInFactor})
+0:?                   Constant:
+0:?                     0 (const int)
+0:?                 Constant:
+0:?                   0 (const int)
+0:?             move second child to first child ( temp float)
+0:?               direct index ( patch out float TessLevelOuter)
+0:?                 '@patchConstantOutput_tfactor' ( patch out 4-element array of float TessLevelOuter)
+0:?                 Constant:
+0:?                   1 (const int)
+0:?               direct index ( temp float)
+0:?                 tfactor: direct index for structure ( temp 3-element array of float)
+0:?                   '@patchConstantResult' ( temp structure{ temp 3-element array of float tfactor,  temp float flInFactor})
+0:?                   Constant:
+0:?                     0 (const int)
+0:?                 Constant:
+0:?                   1 (const int)
+0:?             move second child to first child ( temp float)
+0:?               direct index ( patch out float TessLevelOuter)
+0:?                 '@patchConstantOutput_tfactor' ( patch out 4-element array of float TessLevelOuter)
+0:?                 Constant:
+0:?                   2 (const int)
+0:?               direct index ( temp float)
+0:?                 tfactor: direct index for structure ( temp 3-element array of float)
+0:?                   '@patchConstantResult' ( temp structure{ temp 3-element array of float tfactor,  temp float flInFactor})
+0:?                   Constant:
+0:?                     0 (const int)
+0:?                 Constant:
+0:?                   2 (const int)
+0:?             move second child to first child ( temp float)
+0:?               direct index ( patch out float TessLevelInner)
+0:?                 '@patchConstantOutput_flInFactor' ( patch out 2-element array of float TessLevelInner)
+0:?                 Constant:
+0:?                   0 (const int)
+0:?               flInFactor: direct index for structure ( temp float)
+0:?                 '@patchConstantResult' ( temp structure{ temp 3-element array of float tfactor,  temp float flInFactor})
+0:?                 Constant:
+0:?                   1 (const int)
+0:38  Function Definition: PCF(struct-hs_out_t-vf31[3];struct-hs_in_t-vf31[3]; ( temp structure{ temp 3-element array of float tfactor,  temp float flInFactor})
+0:38    Function Parameters: 
+0:38      'pcf_out' ( const (read only) 3-element array of structure{ temp 3-component vector of float val})
+0:38      'pcf_in' ( const (read only) 3-element array of structure{ temp 3-component vector of float val})
+0:?     Sequence
+0:41      move second child to first child ( temp float)
+0:41        direct index ( temp float)
+0:41          tfactor: direct index for structure ( temp 3-element array of float)
+0:41            'o' ( temp structure{ temp 3-element array of float tfactor,  temp float flInFactor})
+0:41            Constant:
+0:41              0 (const int)
+0:41          Constant:
+0:41            0 (const int)
+0:41        direct index ( temp float)
+0:41          val: direct index for structure ( temp 3-component vector of float)
+0:41            direct index ( temp structure{ temp 3-component vector of float val})
+0:41              'pcf_out' ( const (read only) 3-element array of structure{ temp 3-component vector of float val})
+0:41              Constant:
+0:41                0 (const int)
+0:41            Constant:
+0:41              0 (const int)
+0:41          Constant:
+0:41            0 (const int)
+0:42      move second child to first child ( temp float)
+0:42        direct index ( temp float)
+0:42          tfactor: direct index for structure ( temp 3-element array of float)
+0:42            'o' ( temp structure{ temp 3-element array of float tfactor,  temp float flInFactor})
+0:42            Constant:
+0:42              0 (const int)
+0:42          Constant:
+0:42            1 (const int)
+0:42        direct index ( temp float)
+0:42          val: direct index for structure ( temp 3-component vector of float)
+0:42            direct index ( temp structure{ temp 3-component vector of float val})
+0:42              'pcf_out' ( const (read only) 3-element array of structure{ temp 3-component vector of float val})
+0:42              Constant:
+0:42                1 (const int)
+0:42            Constant:
+0:42              0 (const int)
+0:42          Constant:
+0:42            0 (const int)
+0:43      move second child to first child ( temp float)
+0:43        direct index ( temp float)
+0:43          tfactor: direct index for structure ( temp 3-element array of float)
+0:43            'o' ( temp structure{ temp 3-element array of float tfactor,  temp float flInFactor})
+0:43            Constant:
+0:43              0 (const int)
+0:43          Constant:
+0:43            2 (const int)
+0:43        direct index ( temp float)
+0:43          val: direct index for structure ( temp 3-component vector of float)
+0:43            direct index ( temp structure{ temp 3-component vector of float val})
+0:43              'pcf_out' ( const (read only) 3-element array of structure{ temp 3-component vector of float val})
+0:43              Constant:
+0:43                2 (const int)
+0:43            Constant:
+0:43              0 (const int)
+0:43          Constant:
+0:43            0 (const int)
+0:44      move second child to first child ( temp float)
+0:44        flInFactor: direct index for structure ( temp float)
+0:44          'o' ( temp structure{ temp 3-element array of float tfactor,  temp float flInFactor})
+0:44          Constant:
+0:44            1 (const int)
+0:44        Constant:
+0:44          4.000000
+0:46      Branch: Return with expression
+0:46        'o' ( temp structure{ temp 3-element array of float tfactor,  temp float flInFactor})
+0:?   Linker Objects
+0:?     '@entryPointOutput' (layout( location=0) out 3-element array of structure{ temp 3-component vector of float val})
+0:?     'i' (layout( location=0) in 3-element array of structure{ temp 3-component vector of float val})
+0:?     'cpid' ( in uint InvocationID)
+0:?     '@patchConstantOutput' (layout( location=1) patch out structure{})
+0:?     '@patchConstantOutput_tfactor' ( patch out 4-element array of float TessLevelOuter)
+0:?     '@patchConstantOutput_flInFactor' ( patch out 2-element array of float TessLevelInner)
+
+
+Linked tessellation control stage:
+
+
+Shader version: 500
+vertices = 3
+vertex spacing = fractional_odd_spacing
+triangle order = cw
+0:? Sequence
+0:28  Function Definition: @main(struct-hs_in_t-vf31[3];u1; ( temp structure{ temp 3-component vector of float val})
+0:28    Function Parameters: 
+0:28      'i' ( in 3-element array of structure{ temp 3-component vector of float val})
+0:28      'cpid' ( in uint)
+0:?     Sequence
+0:29      val: direct index for structure ( temp 3-component vector of float)
+0:29        direct index ( temp structure{ temp 3-component vector of float val})
+0:29          'i' ( in 3-element array of structure{ temp 3-component vector of float val})
+0:29          Constant:
+0:29            0 (const int)
+0:29        Constant:
+0:29          0 (const int)
+0:32      move second child to first child ( temp 3-component vector of float)
+0:32        val: direct index for structure ( temp 3-component vector of float)
+0:32          'o' ( temp structure{ temp 3-component vector of float val})
+0:32          Constant:
+0:32            0 (const int)
+0:32        Construct vec3 ( temp 3-component vector of float)
+0:32          Convert uint to float ( temp float)
+0:32            'cpid' ( in uint)
+0:33      Branch: Return with expression
+0:33        'o' ( temp structure{ temp 3-component vector of float val})
+0:28  Function Definition: main( ( temp void)
+0:28    Function Parameters: 
+0:?     Sequence
+0:28      move second child to first child ( temp 3-element array of structure{ temp 3-component vector of float val})
+0:?         'i' ( temp 3-element array of structure{ temp 3-component vector of float val})
+0:?         'i' (layout( location=0) in 3-element array of structure{ temp 3-component vector of float val})
+0:28      move second child to first child ( temp uint)
+0:?         'cpid' ( temp uint)
+0:?         'cpid' ( in uint InvocationID)
+0:28      move second child to first child ( temp structure{ temp 3-component vector of float val})
+0:28        indirect index ( temp structure{ temp 3-component vector of float val})
+0:?           '@entryPointOutput' (layout( location=0) out 3-element array of structure{ temp 3-component vector of float val})
+0:?           'cpid' ( in uint InvocationID)
+0:28        Function Call: @main(struct-hs_in_t-vf31[3];u1; ( temp structure{ temp 3-component vector of float val})
+0:?           'i' ( temp 3-element array of structure{ temp 3-component vector of float val})
+0:?           'cpid' ( temp uint)
+0:?       Barrier ( temp void)
+0:?       Test condition and select ( temp void)
+0:?         Condition
+0:?         Compare Equal ( temp bool)
+0:?           'cpid' ( in uint InvocationID)
+0:?           Constant:
+0:?             0 (const int)
+0:?         true case
+0:?         Sequence
+0:?           move second child to first child ( temp structure{ temp 3-component vector of float val})
+0:?             direct index ( temp structure{ temp 3-component vector of float val})
+0:?               'pcf_out' ( temp 3-element array of structure{ temp 3-component vector of float val})
+0:?               Constant:
+0:?                 0 (const int)
+0:?             Function Call: @main(struct-hs_in_t-vf31[3];u1; ( temp structure{ temp 3-component vector of float val})
+0:?               'i' ( temp 3-element array of structure{ temp 3-component vector of float val})
+0:?               Constant:
+0:?                 0 (const uint)
+0:?           move second child to first child ( temp structure{ temp 3-component vector of float val})
+0:?             direct index ( temp structure{ temp 3-component vector of float val})
+0:?               'pcf_out' ( temp 3-element array of structure{ temp 3-component vector of float val})
+0:?               Constant:
+0:?                 1 (const int)
+0:?             Function Call: @main(struct-hs_in_t-vf31[3];u1; ( temp structure{ temp 3-component vector of float val})
+0:?               'i' ( temp 3-element array of structure{ temp 3-component vector of float val})
+0:?               Constant:
+0:?                 1 (const uint)
+0:?           move second child to first child ( temp structure{ temp 3-component vector of float val})
+0:?             direct index ( temp structure{ temp 3-component vector of float val})
+0:?               'pcf_out' ( temp 3-element array of structure{ temp 3-component vector of float val})
+0:?               Constant:
+0:?                 2 (const int)
+0:?             Function Call: @main(struct-hs_in_t-vf31[3];u1; ( temp structure{ temp 3-component vector of float val})
+0:?               'i' ( temp 3-element array of structure{ temp 3-component vector of float val})
+0:?               Constant:
+0:?                 2 (const uint)
+0:?           move second child to first child ( temp structure{ temp 3-element array of float tfactor,  temp float flInFactor})
+0:?             '@patchConstantResult' ( temp structure{ temp 3-element array of float tfactor,  temp float flInFactor})
+0:?             Function Call: PCF(struct-hs_out_t-vf31[3];struct-hs_in_t-vf31[3]; ( temp structure{ temp 3-element array of float tfactor,  temp float flInFactor})
+0:?               'pcf_out' ( temp 3-element array of structure{ temp 3-component vector of float val})
+0:?               'i' (layout( location=0) in 3-element array of structure{ temp 3-component vector of float val})
+0:?           Sequence
+0:?             move second child to first child ( temp float)
+0:?               direct index ( patch out float TessLevelOuter)
+0:?                 '@patchConstantOutput_tfactor' ( patch out 4-element array of float TessLevelOuter)
+0:?                 Constant:
+0:?                   0 (const int)
+0:?               direct index ( temp float)
+0:?                 tfactor: direct index for structure ( temp 3-element array of float)
+0:?                   '@patchConstantResult' ( temp structure{ temp 3-element array of float tfactor,  temp float flInFactor})
+0:?                   Constant:
+0:?                     0 (const int)
+0:?                 Constant:
+0:?                   0 (const int)
+0:?             move second child to first child ( temp float)
+0:?               direct index ( patch out float TessLevelOuter)
+0:?                 '@patchConstantOutput_tfactor' ( patch out 4-element array of float TessLevelOuter)
+0:?                 Constant:
+0:?                   1 (const int)
+0:?               direct index ( temp float)
+0:?                 tfactor: direct index for structure ( temp 3-element array of float)
+0:?                   '@patchConstantResult' ( temp structure{ temp 3-element array of float tfactor,  temp float flInFactor})
+0:?                   Constant:
+0:?                     0 (const int)
+0:?                 Constant:
+0:?                   1 (const int)
+0:?             move second child to first child ( temp float)
+0:?               direct index ( patch out float TessLevelOuter)
+0:?                 '@patchConstantOutput_tfactor' ( patch out 4-element array of float TessLevelOuter)
+0:?                 Constant:
+0:?                   2 (const int)
+0:?               direct index ( temp float)
+0:?                 tfactor: direct index for structure ( temp 3-element array of float)
+0:?                   '@patchConstantResult' ( temp structure{ temp 3-element array of float tfactor,  temp float flInFactor})
+0:?                   Constant:
+0:?                     0 (const int)
+0:?                 Constant:
+0:?                   2 (const int)
+0:?             move second child to first child ( temp float)
+0:?               direct index ( patch out float TessLevelInner)
+0:?                 '@patchConstantOutput_flInFactor' ( patch out 2-element array of float TessLevelInner)
+0:?                 Constant:
+0:?                   0 (const int)
+0:?               flInFactor: direct index for structure ( temp float)
+0:?                 '@patchConstantResult' ( temp structure{ temp 3-element array of float tfactor,  temp float flInFactor})
+0:?                 Constant:
+0:?                   1 (const int)
+0:38  Function Definition: PCF(struct-hs_out_t-vf31[3];struct-hs_in_t-vf31[3]; ( temp structure{ temp 3-element array of float tfactor,  temp float flInFactor})
+0:38    Function Parameters: 
+0:38      'pcf_out' ( const (read only) 3-element array of structure{ temp 3-component vector of float val})
+0:38      'pcf_in' ( const (read only) 3-element array of structure{ temp 3-component vector of float val})
+0:?     Sequence
+0:41      move second child to first child ( temp float)
+0:41        direct index ( temp float)
+0:41          tfactor: direct index for structure ( temp 3-element array of float)
+0:41            'o' ( temp structure{ temp 3-element array of float tfactor,  temp float flInFactor})
+0:41            Constant:
+0:41              0 (const int)
+0:41          Constant:
+0:41            0 (const int)
+0:41        direct index ( temp float)
+0:41          val: direct index for structure ( temp 3-component vector of float)
+0:41            direct index ( temp structure{ temp 3-component vector of float val})
+0:41              'pcf_out' ( const (read only) 3-element array of structure{ temp 3-component vector of float val})
+0:41              Constant:
+0:41                0 (const int)
+0:41            Constant:
+0:41              0 (const int)
+0:41          Constant:
+0:41            0 (const int)
+0:42      move second child to first child ( temp float)
+0:42        direct index ( temp float)
+0:42          tfactor: direct index for structure ( temp 3-element array of float)
+0:42            'o' ( temp structure{ temp 3-element array of float tfactor,  temp float flInFactor})
+0:42            Constant:
+0:42              0 (const int)
+0:42          Constant:
+0:42            1 (const int)
+0:42        direct index ( temp float)
+0:42          val: direct index for structure ( temp 3-component vector of float)
+0:42            direct index ( temp structure{ temp 3-component vector of float val})
+0:42              'pcf_out' ( const (read only) 3-element array of structure{ temp 3-component vector of float val})
+0:42              Constant:
+0:42                1 (const int)
+0:42            Constant:
+0:42              0 (const int)
+0:42          Constant:
+0:42            0 (const int)
+0:43      move second child to first child ( temp float)
+0:43        direct index ( temp float)
+0:43          tfactor: direct index for structure ( temp 3-element array of float)
+0:43            'o' ( temp structure{ temp 3-element array of float tfactor,  temp float flInFactor})
+0:43            Constant:
+0:43              0 (const int)
+0:43          Constant:
+0:43            2 (const int)
+0:43        direct index ( temp float)
+0:43          val: direct index for structure ( temp 3-component vector of float)
+0:43            direct index ( temp structure{ temp 3-component vector of float val})
+0:43              'pcf_out' ( const (read only) 3-element array of structure{ temp 3-component vector of float val})
+0:43              Constant:
+0:43                2 (const int)
+0:43            Constant:
+0:43              0 (const int)
+0:43          Constant:
+0:43            0 (const int)
+0:44      move second child to first child ( temp float)
+0:44        flInFactor: direct index for structure ( temp float)
+0:44          'o' ( temp structure{ temp 3-element array of float tfactor,  temp float flInFactor})
+0:44          Constant:
+0:44            1 (const int)
+0:44        Constant:
+0:44          4.000000
+0:46      Branch: Return with expression
+0:46        'o' ( temp structure{ temp 3-element array of float tfactor,  temp float flInFactor})
+0:?   Linker Objects
+0:?     '@entryPointOutput' (layout( location=0) out 3-element array of structure{ temp 3-component vector of float val})
+0:?     'i' (layout( location=0) in 3-element array of structure{ temp 3-component vector of float val})
+0:?     'cpid' ( in uint InvocationID)
+0:?     '@patchConstantOutput' (layout( location=1) patch out structure{})
+0:?     '@patchConstantOutput_tfactor' ( patch out 4-element array of float TessLevelOuter)
+0:?     '@patchConstantOutput_flInFactor' ( patch out 2-element array of float TessLevelInner)
+
+// Module Version 10000
+// Generated by (magic number): 80001
+// Id's are bound by 129
+
+                              Capability Tessellation
+               1:             ExtInstImport  "GLSL.std.450"
+                              MemoryModel Logical GLSL450
+                              EntryPoint TessellationControl 4  "main" 42 46 49 96 110 128
+                              ExecutionMode 4 OutputVertices 3
+                              ExecutionMode 4 Triangles
+                              ExecutionMode 4 SpacingFractionalOdd
+                              ExecutionMode 4 VertexOrderCw
+                              Source HLSL 500
+                              Name 4  "main"
+                              Name 8  "hs_in_t"
+                              MemberName 8(hs_in_t) 0  "val"
+                              Name 14  "hs_out_t"
+                              MemberName 14(hs_out_t) 0  "val"
+                              Name 18  "@main(struct-hs_in_t-vf31[3];u1;"
+                              Name 16  "i"
+                              Name 17  "cpid"
+                              Name 22  "hs_pcf_t"
+                              MemberName 22(hs_pcf_t) 0  "tfactor"
+                              MemberName 22(hs_pcf_t) 1  "flInFactor"
+                              Name 26  "PCF(struct-hs_out_t-vf31[3];struct-hs_in_t-vf31[3];"
+                              Name 24  "pcf_out"
+                              Name 25  "pcf_in"
+                              Name 31  "o"
+                              Name 40  "i"
+                              Name 42  "i"
+                              Name 44  "cpid"
+                              Name 46  "cpid"
+                              Name 49  "@entryPointOutput"
+                              Name 51  "param"
+                              Name 53  "param"
+                              Name 67  "pcf_out"
+                              Name 68  "i"
+                              Name 69  "param"
+                              Name 71  "param"
+                              Name 75  "i"
+                              Name 76  "param"
+                              Name 78  "param"
+                              Name 82  "i"
+                              Name 83  "param"
+                              Name 85  "param"
+                              Name 89  "@patchConstantResult"
+                              Name 96  "@patchConstantOutput_tfactor"
+                              Name 110  "@patchConstantOutput_flInFactor"
+                              Name 114  "o"
+                              Name 126  "hs_pcf_t"
+                              Name 128  "@patchConstantOutput"
+                              Decorate 42(i) Location 0
+                              Decorate 46(cpid) BuiltIn InvocationId
+                              Decorate 49(@entryPointOutput) Location 0
+                              Decorate 96(@patchConstantOutput_tfactor) Patch
+                              Decorate 96(@patchConstantOutput_tfactor) BuiltIn TessLevelOuter
+                              Decorate 110(@patchConstantOutput_flInFactor) Patch
+                              Decorate 110(@patchConstantOutput_flInFactor) BuiltIn TessLevelInner
+                              Decorate 128(@patchConstantOutput) Patch
+                              Decorate 128(@patchConstantOutput) Location 1
+               2:             TypeVoid
+               3:             TypeFunction 2
+               6:             TypeFloat 32
+               7:             TypeVector 6(float) 3
+      8(hs_in_t):             TypeStruct 7(fvec3)
+               9:             TypeInt 32 0
+              10:      9(int) Constant 3
+              11:             TypeArray 8(hs_in_t) 10
+              12:             TypePointer Function 11
+              13:             TypePointer Function 9(int)
+    14(hs_out_t):             TypeStruct 7(fvec3)
+              15:             TypeFunction 14(hs_out_t) 12(ptr) 13(ptr)
+              20:             TypeArray 14(hs_out_t) 10
+              21:             TypeArray 6(float) 10
+    22(hs_pcf_t):             TypeStruct 21 6(float)
+              23:             TypeFunction 22(hs_pcf_t) 20 11
+              28:             TypeInt 32 1
+              29:     28(int) Constant 0
+              30:             TypePointer Function 14(hs_out_t)
+              35:             TypePointer Function 7(fvec3)
+              41:             TypePointer Input 11
+           42(i):     41(ptr) Variable Input
+              45:             TypePointer Input 9(int)
+        46(cpid):     45(ptr) Variable Input
+              48:             TypePointer Output 20
+49(@entryPointOutput):     48(ptr) Variable Output
+              56:             TypePointer Output 14(hs_out_t)
+              58:      9(int) Constant 2
+              59:      9(int) Constant 1
+              60:      9(int) Constant 0
+              62:             TypeBool
+              66:             TypePointer Function 20
+              74:     28(int) Constant 1
+              81:     28(int) Constant 2
+              88:             TypePointer Function 22(hs_pcf_t)
+              93:      9(int) Constant 4
+              94:             TypeArray 6(float) 93
+              95:             TypePointer Output 94
+96(@patchConstantOutput_tfactor):     95(ptr) Variable Output
+              97:             TypePointer Function 6(float)
+             100:             TypePointer Output 6(float)
+             108:             TypeArray 6(float) 58
+             109:             TypePointer Output 108
+110(@patchConstantOutput_flInFactor):    109(ptr) Variable Output
+             121:    6(float) Constant 1082130432
+   126(hs_pcf_t):             TypeStruct
+             127:             TypePointer Output 126(hs_pcf_t)
+128(@patchConstantOutput):    127(ptr) Variable Output
+         4(main):           2 Function None 3
+               5:             Label
+           40(i):     12(ptr) Variable Function
+        44(cpid):     13(ptr) Variable Function
+       51(param):     12(ptr) Variable Function
+       53(param):     13(ptr) Variable Function
+     67(pcf_out):     66(ptr) Variable Function
+           68(i):     12(ptr) Variable Function
+       69(param):     12(ptr) Variable Function
+       71(param):     13(ptr) Variable Function
+           75(i):     12(ptr) Variable Function
+       76(param):     12(ptr) Variable Function
+       78(param):     13(ptr) Variable Function
+           82(i):     12(ptr) Variable Function
+       83(param):     12(ptr) Variable Function
+       85(param):     13(ptr) Variable Function
+89(@patchConstantResult):     88(ptr) Variable Function
+              43:          11 Load 42(i)
+                              Store 40(i) 43
+              47:      9(int) Load 46(cpid)
+                              Store 44(cpid) 47
+              50:      9(int) Load 46(cpid)
+              52:          11 Load 40(i)
+                              Store 51(param) 52
+              54:      9(int) Load 44(cpid)
+                              Store 53(param) 54
+              55:14(hs_out_t) FunctionCall 18(@main(struct-hs_in_t-vf31[3];u1;) 51(param) 53(param)
+              57:     56(ptr) AccessChain 49(@entryPointOutput) 50
+                              Store 57 55
+                              ControlBarrier 58 59 60
+              61:      9(int) Load 46(cpid)
+              63:    62(bool) IEqual 61 29
+                              SelectionMerge 65 None
+                              BranchConditional 63 64 65
+              64:               Label
+              70:          11   Load 68(i)
+                                Store 69(param) 70
+                                Store 71(param) 60
+              72:14(hs_out_t)   FunctionCall 18(@main(struct-hs_in_t-vf31[3];u1;) 69(param) 71(param)
+              73:     30(ptr)   AccessChain 67(pcf_out) 29
+                                Store 73 72
+              77:          11   Load 75(i)
+                                Store 76(param) 77
+                                Store 78(param) 59
+              79:14(hs_out_t)   FunctionCall 18(@main(struct-hs_in_t-vf31[3];u1;) 76(param) 78(param)
+              80:     30(ptr)   AccessChain 67(pcf_out) 74
+                                Store 80 79
+              84:          11   Load 82(i)
+                                Store 83(param) 84
+                                Store 85(param) 58
+              86:14(hs_out_t)   FunctionCall 18(@main(struct-hs_in_t-vf31[3];u1;) 83(param) 85(param)
+              87:     30(ptr)   AccessChain 67(pcf_out) 81
+                                Store 87 86
+              90:          20   Load 67(pcf_out)
+              91:          11   Load 42(i)
+              92:22(hs_pcf_t)   FunctionCall 26(PCF(struct-hs_out_t-vf31[3];struct-hs_in_t-vf31[3];) 90 91
+                                Store 89(@patchConstantResult) 92
+              98:     97(ptr)   AccessChain 89(@patchConstantResult) 29 29
+              99:    6(float)   Load 98
+             101:    100(ptr)   AccessChain 96(@patchConstantOutput_tfactor) 29
+                                Store 101 99
+             102:     97(ptr)   AccessChain 89(@patchConstantResult) 29 74
+             103:    6(float)   Load 102
+             104:    100(ptr)   AccessChain 96(@patchConstantOutput_tfactor) 74
+                                Store 104 103
+             105:     97(ptr)   AccessChain 89(@patchConstantResult) 29 81
+             106:    6(float)   Load 105
+             107:    100(ptr)   AccessChain 96(@patchConstantOutput_tfactor) 81
+                                Store 107 106
+             111:     97(ptr)   AccessChain 89(@patchConstantResult) 74
+             112:    6(float)   Load 111
+             113:    100(ptr)   AccessChain 110(@patchConstantOutput_flInFactor) 29
+                                Store 113 112
+                                Branch 65
+              65:             Label
+                              Return
+                              FunctionEnd
+18(@main(struct-hs_in_t-vf31[3];u1;):14(hs_out_t) Function None 15
+           16(i):     12(ptr) FunctionParameter
+        17(cpid):     13(ptr) FunctionParameter
+              19:             Label
+           31(o):     30(ptr) Variable Function
+              32:      9(int) Load 17(cpid)
+              33:    6(float) ConvertUToF 32
+              34:    7(fvec3) CompositeConstruct 33 33 33
+              36:     35(ptr) AccessChain 31(o) 29
+                              Store 36 34
+              37:14(hs_out_t) Load 31(o)
+                              ReturnValue 37
+                              FunctionEnd
+26(PCF(struct-hs_out_t-vf31[3];struct-hs_in_t-vf31[3];):22(hs_pcf_t) Function None 23
+     24(pcf_out):          20 FunctionParameter
+      25(pcf_in):          11 FunctionParameter
+              27:             Label
+          114(o):     88(ptr) Variable Function
+             115:    6(float) CompositeExtract 24(pcf_out) 0 0 0
+             116:     97(ptr) AccessChain 114(o) 29 29
+                              Store 116 115
+             117:    6(float) CompositeExtract 24(pcf_out) 1 0 0
+             118:     97(ptr) AccessChain 114(o) 29 74
+                              Store 118 117
+             119:    6(float) CompositeExtract 24(pcf_out) 2 0 0
+             120:     97(ptr) AccessChain 114(o) 29 81
+                              Store 120 119
+             122:     97(ptr) AccessChain 114(o) 74
+                              Store 122 121
+             123:22(hs_pcf_t) Load 114(o)
+                              ReturnValue 123
+                              FunctionEnd

+ 3 - 2
3rdparty/glslang/Test/baseResults/hlsl.hull.void.tesc.out

@@ -1,5 +1,5 @@
 hlsl.hull.void.tesc
-Shader version: 450
+Shader version: 500
 vertices = 3
 vertex spacing = fractional_even_spacing
 0:? Sequence
@@ -54,7 +54,7 @@ vertex spacing = fractional_even_spacing
 Linked tessellation control stage:
 
 
-Shader version: 450
+Shader version: 500
 vertices = 3
 vertex spacing = fractional_even_spacing
 0:? Sequence
@@ -116,6 +116,7 @@ vertex spacing = fractional_even_spacing
                               ExecutionMode 4 OutputVertices 3
                               ExecutionMode 4 Triangles
                               ExecutionMode 4 SpacingFractionalEven
+                              Source HLSL 500
                               Name 4  "main"
                               Name 8  "VS_OUT"
                               MemberName 8(VS_OUT) 0  "cpoint"

+ 3 - 2
3rdparty/glslang/Test/baseResults/hlsl.identifier.sample.frag.out

@@ -1,5 +1,5 @@
 hlsl.identifier.sample.frag
-Shader version: 450
+Shader version: 500
 gl_FragCoord origin is upper left
 0:? Sequence
 0:9  Function Definition: sample(i1; ( temp int)
@@ -44,7 +44,7 @@ gl_FragCoord origin is upper left
 Linked fragment stage:
 
 
-Shader version: 450
+Shader version: 500
 gl_FragCoord origin is upper left
 0:? Sequence
 0:9  Function Definition: sample(i1; ( temp int)
@@ -94,6 +94,7 @@ gl_FragCoord origin is upper left
                               MemoryModel Logical GLSL450
                               EntryPoint Fragment 4  "main" 31
                               ExecutionMode 4 OriginUpperLeft
+                              Source HLSL 500
                               Name 4  "main"
                               Name 10  "sample(i1;"
                               Name 9  "x"

+ 3 - 2
3rdparty/glslang/Test/baseResults/hlsl.if.frag.out

@@ -1,5 +1,5 @@
 hlsl.if.frag
-Shader version: 450
+Shader version: 500
 gl_FragCoord origin is upper left
 0:? Sequence
 0:2  Function Definition: @PixelShaderFunction(vf4; ( temp 4-component vector of float)
@@ -109,7 +109,7 @@ gl_FragCoord origin is upper left
 Linked fragment stage:
 
 
-Shader version: 450
+Shader version: 500
 gl_FragCoord origin is upper left
 0:? Sequence
 0:2  Function Definition: @PixelShaderFunction(vf4; ( temp 4-component vector of float)
@@ -224,6 +224,7 @@ gl_FragCoord origin is upper left
                               MemoryModel Logical GLSL450
                               EntryPoint Fragment 4  "PixelShaderFunction" 96 99
                               ExecutionMode 4 OriginUpperLeft
+                              Source HLSL 500
                               Name 4  "PixelShaderFunction"
                               Name 11  "@PixelShaderFunction(vf4;"
                               Name 10  "input"

+ 3 - 2
3rdparty/glslang/Test/baseResults/hlsl.implicitBool.frag.out

@@ -1,5 +1,5 @@
 hlsl.implicitBool.frag
-Shader version: 450
+Shader version: 500
 gl_FragCoord origin is upper left
 0:? Sequence
 0:7  Function Definition: @main( ( temp 4-component vector of float)
@@ -167,7 +167,7 @@ gl_FragCoord origin is upper left
 Linked fragment stage:
 
 
-Shader version: 450
+Shader version: 500
 gl_FragCoord origin is upper left
 0:? Sequence
 0:7  Function Definition: @main( ( temp 4-component vector of float)
@@ -340,6 +340,7 @@ gl_FragCoord origin is upper left
                               MemoryModel Logical GLSL450
                               EntryPoint Fragment 4  "main" 143
                               ExecutionMode 4 OriginUpperLeft
+                              Source HLSL 500
                               Name 4  "main"
                               Name 9  "@main("
                               Name 12  "a"

+ 3 - 2
3rdparty/glslang/Test/baseResults/hlsl.init.frag.out

@@ -2,7 +2,7 @@ hlsl.init.frag
 WARNING: 0:40: 'typedef' : struct-member initializers ignored 
 WARNING: 0:40: 'typedef' : struct-member initializers ignored 
 
-Shader version: 450
+Shader version: 500
 gl_FragCoord origin is upper left
 0:? Sequence
 0:1  Sequence
@@ -168,7 +168,7 @@ gl_FragCoord origin is upper left
 Linked fragment stage:
 
 
-Shader version: 450
+Shader version: 500
 gl_FragCoord origin is upper left
 0:? Sequence
 0:1  Sequence
@@ -339,6 +339,7 @@ gl_FragCoord origin is upper left
                               MemoryModel Logical GLSL450
                               EntryPoint Fragment 4  "ShaderFunction" 98 101
                               ExecutionMode 4 OriginUpperLeft
+                              Source HLSL 500
                               Name 4  "ShaderFunction"
                               Name 11  "@ShaderFunction(vf4;"
                               Name 10  "input"

+ 3 - 2
3rdparty/glslang/Test/baseResults/hlsl.init2.frag.out

@@ -1,5 +1,5 @@
 hlsl.init2.frag
-Shader version: 450
+Shader version: 500
 gl_FragCoord origin is upper left
 0:? Sequence
 0:3  Function Definition: Test1( ( temp void)
@@ -180,7 +180,7 @@ gl_FragCoord origin is upper left
 Linked fragment stage:
 
 
-Shader version: 450
+Shader version: 500
 gl_FragCoord origin is upper left
 0:? Sequence
 0:3  Function Definition: Test1( ( temp void)
@@ -366,6 +366,7 @@ gl_FragCoord origin is upper left
                               MemoryModel Logical GLSL450
                               EntryPoint Fragment 4  "main" 109
                               ExecutionMode 4 OriginUpperLeft
+                              Source HLSL 500
                               Name 4  "main"
                               Name 6  "Test1("
                               Name 10  "PS_OUTPUT"

+ 3 - 2
3rdparty/glslang/Test/baseResults/hlsl.inoutquals.frag.out

@@ -1,5 +1,5 @@
 hlsl.inoutquals.frag
-Shader version: 450
+Shader version: 500
 gl_FragCoord origin is upper left
 0:? Sequence
 0:8  Function Definition: MyFunc(f1;f1;f1; ( temp void)
@@ -95,7 +95,7 @@ gl_FragCoord origin is upper left
 Linked fragment stage:
 
 
-Shader version: 450
+Shader version: 500
 gl_FragCoord origin is upper left
 0:? Sequence
 0:8  Function Definition: MyFunc(f1;f1;f1; ( temp void)
@@ -197,6 +197,7 @@ gl_FragCoord origin is upper left
                               MemoryModel Logical GLSL450
                               EntryPoint Fragment 4  "main" 60 70 74 78
                               ExecutionMode 4 OriginUpperLeft
+                              Source HLSL 500
                               Name 4  "main"
                               Name 12  "MyFunc(f1;f1;f1;"
                               Name 9  "x"

+ 3 - 2
3rdparty/glslang/Test/baseResults/hlsl.intrinsic.frexp.frag.out

@@ -1,5 +1,5 @@
 hlsl.intrinsic.frexp.frag
-Shader version: 450
+Shader version: 500
 gl_FragCoord origin is upper left
 0:? Sequence
 0:3  Function Definition: PixelShaderFunctionS(f1;f1; ( temp float)
@@ -96,7 +96,7 @@ gl_FragCoord origin is upper left
 Linked fragment stage:
 
 
-Shader version: 450
+Shader version: 500
 gl_FragCoord origin is upper left
 0:? Sequence
 0:3  Function Definition: PixelShaderFunctionS(f1;f1; ( temp float)
@@ -198,6 +198,7 @@ gl_FragCoord origin is upper left
                               MemoryModel Logical GLSL450
                               EntryPoint Fragment 4  "main" 95
                               ExecutionMode 4 OriginUpperLeft
+                              Source HLSL 500
                               Name 4  "main"
                               Name 11  "PixelShaderFunctionS(f1;f1;"
                               Name 9  "inF0"

+ 3 - 2
3rdparty/glslang/Test/baseResults/hlsl.intrinsic.frexp.vert.out

@@ -1,5 +1,5 @@
 hlsl.intrinsic.frexp.vert
-Shader version: 450
+Shader version: 500
 0:? Sequence
 0:2  Function Definition: VertexShaderFunctionS(f1;f1; ( temp float)
 0:2    Function Parameters: 
@@ -58,7 +58,7 @@ Linked vertex stage:
 
 WARNING: Linking vertex stage: Entry point not found
 
-Shader version: 450
+Shader version: 500
 0:? Sequence
 0:2  Function Definition: VertexShaderFunctionS(f1;f1; ( temp float)
 0:2    Function Parameters: 
@@ -120,6 +120,7 @@ Shader version: 450
                1:             ExtInstImport  "GLSL.std.450"
                               MemoryModel Logical GLSL450
                               EntryPoint Vertex 4  "VertexShaderFunction"
+                              Source HLSL 500
                               Name 4  "VertexShaderFunction"
                               Name 11  "VertexShaderFunctionS(f1;f1;"
                               Name 9  "inF0"

+ 3 - 2
3rdparty/glslang/Test/baseResults/hlsl.intrinsics.barriers.comp.out

@@ -1,5 +1,5 @@
 hlsl.intrinsics.barriers.comp
-Shader version: 450
+Shader version: 500
 local_size = (1, 1, 1)
 0:? Sequence
 0:3  Function Definition: @ComputeShaderFunction( ( temp float)
@@ -27,7 +27,7 @@ local_size = (1, 1, 1)
 Linked compute stage:
 
 
-Shader version: 450
+Shader version: 500
 local_size = (1, 1, 1)
 0:? Sequence
 0:3  Function Definition: @ComputeShaderFunction( ( temp float)
@@ -60,6 +60,7 @@ local_size = (1, 1, 1)
                               MemoryModel Logical GLSL450
                               EntryPoint GLCompute 4  "ComputeShaderFunction" 20
                               ExecutionMode 4 LocalSize 1 1 1
+                              Source HLSL 500
                               Name 4  "ComputeShaderFunction"
                               Name 8  "@ComputeShaderFunction("
                               Name 20  "@entryPointOutput"

+ 3 - 2
3rdparty/glslang/Test/baseResults/hlsl.intrinsics.comp.out

@@ -1,5 +1,5 @@
 hlsl.intrinsics.comp
-Shader version: 450
+Shader version: 500
 local_size = (1, 1, 1)
 0:? Sequence
 0:17  Function Definition: ComputeShaderFunctionS(f1;f1;f1;u1;u1; ( temp float)
@@ -355,7 +355,7 @@ local_size = (1, 1, 1)
 Linked compute stage:
 
 
-Shader version: 450
+Shader version: 500
 local_size = (1, 1, 1)
 0:? Sequence
 0:17  Function Definition: ComputeShaderFunctionS(f1;f1;f1;u1;u1; ( temp float)
@@ -716,6 +716,7 @@ local_size = (1, 1, 1)
                               MemoryModel Logical GLSL450
                               EntryPoint GLCompute 4  "ComputeShaderFunction" 227 230 233 237 240 243
                               ExecutionMode 4 LocalSize 1 1 1
+                              Source HLSL 500
                               Name 4  "ComputeShaderFunction"
                               Name 16  "ComputeShaderFunctionS(f1;f1;f1;u1;u1;"
                               Name 11  "inF0"

+ 3 - 2
3rdparty/glslang/Test/baseResults/hlsl.intrinsics.d3dcolortoubyte4.frag.out

@@ -1,5 +1,5 @@
 hlsl.intrinsics.d3dcolortoubyte4.frag
-Shader version: 450
+Shader version: 500
 gl_FragCoord origin is upper left
 0:? Sequence
 0:5  Function Definition: @main( ( temp 4-component vector of int)
@@ -38,7 +38,7 @@ gl_FragCoord origin is upper left
 Linked fragment stage:
 
 
-Shader version: 450
+Shader version: 500
 gl_FragCoord origin is upper left
 0:? Sequence
 0:5  Function Definition: @main( ( temp 4-component vector of int)
@@ -82,6 +82,7 @@ gl_FragCoord origin is upper left
                               MemoryModel Logical GLSL450
                               EntryPoint Fragment 4  "main" 27
                               ExecutionMode 4 OriginUpperLeft
+                              Source HLSL 500
                               Name 4  "main"
                               Name 9  "@main("
                               Name 14  "$Global"

+ 3 - 2
3rdparty/glslang/Test/baseResults/hlsl.intrinsics.double.frag.out

@@ -1,5 +1,5 @@
 hlsl.intrinsics.double.frag
-Shader version: 450
+Shader version: 500
 gl_FragCoord origin is upper left
 0:? Sequence
 0:5  Function Definition: @PixelShaderFunction(d1;d1;d1;vd2;vd3;vd4;u1;u1; ( temp float)
@@ -83,7 +83,7 @@ gl_FragCoord origin is upper left
 Linked fragment stage:
 
 
-Shader version: 450
+Shader version: 500
 gl_FragCoord origin is upper left
 0:? Sequence
 0:5  Function Definition: @PixelShaderFunction(d1;d1;d1;vd2;vd3;vd4;u1;u1; ( temp float)
@@ -173,6 +173,7 @@ gl_FragCoord origin is upper left
                               MemoryModel Logical GLSL450
                               EntryPoint Fragment 4  "PixelShaderFunction" 44 47 50 54 58 62 66 69 72
                               ExecutionMode 4 OriginUpperLeft
+                              Source HLSL 500
                               Name 4  "PixelShaderFunction"
                               Name 26  "@PixelShaderFunction(d1;d1;d1;vd2;vd3;vd4;u1;u1;"
                               Name 18  "inDV1a"

+ 3 - 2
3rdparty/glslang/Test/baseResults/hlsl.intrinsics.evalfns.frag.out

@@ -1,5 +1,5 @@
 hlsl.intrinsics.evalfns.frag
-Shader version: 450
+Shader version: 500
 gl_FragCoord origin is upper left
 0:? Sequence
 0:3  Function Definition: @main(f1;vf2;vf3;vf4;vi2; ( temp void)
@@ -78,7 +78,7 @@ gl_FragCoord origin is upper left
 Linked fragment stage:
 
 
-Shader version: 450
+Shader version: 500
 gl_FragCoord origin is upper left
 0:? Sequence
 0:3  Function Definition: @main(f1;vf2;vf3;vf4;vi2; ( temp void)
@@ -163,6 +163,7 @@ gl_FragCoord origin is upper left
                               MemoryModel Logical GLSL450
                               EntryPoint Fragment 4  "main" 51 55 59 63 67
                               ExecutionMode 4 OriginUpperLeft
+                              Source HLSL 500
                               Name 4  "main"
                               Name 23  "@main(f1;vf2;vf3;vf4;vi2;"
                               Name 18  "inF1"

+ 3 - 2
3rdparty/glslang/Test/baseResults/hlsl.intrinsics.f1632.frag.out

@@ -1,5 +1,5 @@
 hlsl.intrinsics.f1632.frag
-Shader version: 450
+Shader version: 500
 gl_FragCoord origin is upper left
 0:? Sequence
 0:2  Function Definition: PixelShaderFunctionS(u1; ( temp float)
@@ -131,7 +131,7 @@ gl_FragCoord origin is upper left
 Linked fragment stage:
 
 
-Shader version: 450
+Shader version: 500
 gl_FragCoord origin is upper left
 0:? Sequence
 0:2  Function Definition: PixelShaderFunctionS(u1; ( temp float)
@@ -268,6 +268,7 @@ gl_FragCoord origin is upper left
                               MemoryModel Logical GLSL450
                               EntryPoint Fragment 4  "main" 101
                               ExecutionMode 4 OriginUpperLeft
+                              Source HLSL 500
                               Name 4  "main"
                               Name 11  "PixelShaderFunctionS(u1;"
                               Name 10  "inF0"

+ 3 - 2
3rdparty/glslang/Test/baseResults/hlsl.intrinsics.f3216.frag.out

@@ -1,5 +1,5 @@
 hlsl.intrinsics.f3216.frag
-Shader version: 450
+Shader version: 500
 gl_FragCoord origin is upper left
 0:? Sequence
 0:2  Function Definition: PixelShaderFunctionS(f1; ( temp uint)
@@ -136,7 +136,7 @@ gl_FragCoord origin is upper left
 Linked fragment stage:
 
 
-Shader version: 450
+Shader version: 500
 gl_FragCoord origin is upper left
 0:? Sequence
 0:2  Function Definition: PixelShaderFunctionS(f1; ( temp uint)
@@ -278,6 +278,7 @@ gl_FragCoord origin is upper left
                               MemoryModel Logical GLSL450
                               EntryPoint Fragment 4  "main" 104
                               ExecutionMode 4 OriginUpperLeft
+                              Source HLSL 500
                               Name 4  "main"
                               Name 11  "PixelShaderFunctionS(f1;"
                               Name 10  "inF0"

+ 3 - 2
3rdparty/glslang/Test/baseResults/hlsl.intrinsics.frag.out

@@ -1,5 +1,5 @@
 hlsl.intrinsics.frag
-Shader version: 450
+Shader version: 500
 gl_FragCoord origin is upper left
 0:? Sequence
 0:17  Function Definition: PixelShaderFunctionS(f1;f1;f1;u1;u1; ( temp float)
@@ -2762,7 +2762,7 @@ gl_FragCoord origin is upper left
 Linked fragment stage:
 
 
-Shader version: 450
+Shader version: 500
 gl_FragCoord origin is upper left
 0:? Sequence
 0:17  Function Definition: PixelShaderFunctionS(f1;f1;f1;u1;u1; ( temp float)
@@ -5531,6 +5531,7 @@ gl_FragCoord origin is upper left
                               MemoryModel Logical GLSL450
                               EntryPoint Fragment 4  "main" 1772
                               ExecutionMode 4 OriginUpperLeft
+                              Source HLSL 500
                               Name 4  "main"
                               Name 16  "PixelShaderFunctionS(f1;f1;f1;u1;u1;"
                               Name 11  "inF0"

+ 3 - 2
3rdparty/glslang/Test/baseResults/hlsl.intrinsics.lit.frag.out

@@ -1,5 +1,5 @@
 hlsl.intrinsics.lit.frag
-Shader version: 450
+Shader version: 500
 gl_FragCoord origin is upper left
 0:? Sequence
 0:2  Function Definition: @PixelShaderFunction(f1;f1;f1; ( temp void)
@@ -60,7 +60,7 @@ gl_FragCoord origin is upper left
 Linked fragment stage:
 
 
-Shader version: 450
+Shader version: 500
 gl_FragCoord origin is upper left
 0:? Sequence
 0:2  Function Definition: @PixelShaderFunction(f1;f1;f1; ( temp void)
@@ -126,6 +126,7 @@ gl_FragCoord origin is upper left
                               MemoryModel Logical GLSL450
                               EntryPoint Fragment 4  "PixelShaderFunction" 37 40 43
                               ExecutionMode 4 OriginUpperLeft
+                              Source HLSL 500
                               Name 4  "PixelShaderFunction"
                               Name 12  "@PixelShaderFunction(f1;f1;f1;"
                               Name 9  "n_dot_l"

+ 3 - 2
3rdparty/glslang/Test/baseResults/hlsl.intrinsics.negative.comp.out

@@ -1,5 +1,5 @@
 hlsl.intrinsics.negative.comp
-Shader version: 450
+Shader version: 500
 local_size = (1, 1, 1)
 0:? Sequence
 0:2  Function Definition: ComputeShaderFunctionS(f1;f1;f1;i1; ( temp float)
@@ -91,7 +91,7 @@ local_size = (1, 1, 1)
 Linked compute stage:
 
 
-Shader version: 450
+Shader version: 500
 local_size = (1, 1, 1)
 0:? Sequence
 0:2  Function Definition: ComputeShaderFunctionS(f1;f1;f1;i1; ( temp float)
@@ -188,6 +188,7 @@ local_size = (1, 1, 1)
                               MemoryModel Logical GLSL450
                               EntryPoint GLCompute 4  "ComputeShaderFunction" 76 79 82 86 89
                               ExecutionMode 4 LocalSize 1 1 1
+                              Source HLSL 500
                               Name 4  "ComputeShaderFunction"
                               Name 15  "ComputeShaderFunctionS(f1;f1;f1;i1;"
                               Name 11  "inF0"

+ 2 - 2
3rdparty/glslang/Test/baseResults/hlsl.intrinsics.negative.frag.out

@@ -61,7 +61,7 @@ ERROR: 0:133: 'reversebits' : no matching overloaded function found
 ERROR: 59 compilation errors.  No code generated.
 
 
-Shader version: 450
+Shader version: 500
 gl_FragCoord origin is upper left
 ERROR: node is still EOpNull!
 0:2  Function Definition: PixelShaderFunctionS(f1;f1;f1;i1; ( temp float)
@@ -522,7 +522,7 @@ ERROR: node is still EOpNull!
 Linked fragment stage:
 
 
-Shader version: 450
+Shader version: 500
 gl_FragCoord origin is upper left
 ERROR: node is still EOpNull!
 0:2  Function Definition: PixelShaderFunctionS(f1;f1;f1;i1; ( temp float)

+ 3 - 2
3rdparty/glslang/Test/baseResults/hlsl.intrinsics.negative.vert.out

@@ -1,5 +1,5 @@
 hlsl.intrinsics.negative.vert
-Shader version: 450
+Shader version: 500
 0:? Sequence
 0:15  Function Definition: VertexShaderFunctionS(f1;f1;f1;i1; ( temp float)
 0:15    Function Parameters: 
@@ -155,7 +155,7 @@ Shader version: 450
 Linked vertex stage:
 
 
-Shader version: 450
+Shader version: 500
 0:? Sequence
 0:15  Function Definition: VertexShaderFunctionS(f1;f1;f1;i1; ( temp float)
 0:15    Function Parameters: 
@@ -315,6 +315,7 @@ Shader version: 450
                1:             ExtInstImport  "GLSL.std.450"
                               MemoryModel Logical GLSL450
                               EntryPoint Vertex 4  "VertexShaderFunction" 100 103 106 110 113
+                              Source HLSL 500
                               Name 4  "VertexShaderFunction"
                               Name 15  "VertexShaderFunctionS(f1;f1;f1;i1;"
                               Name 11  "inF0"

+ 3 - 2
3rdparty/glslang/Test/baseResults/hlsl.intrinsics.promote.down.frag.out

@@ -1,5 +1,5 @@
 hlsl.intrinsics.promote.down.frag
-Shader version: 450
+Shader version: 500
 gl_FragCoord origin is upper left
 0:? Sequence
 0:15  Function Definition: @main( ( temp structure{ temp 4-component vector of float color})
@@ -53,7 +53,7 @@ gl_FragCoord origin is upper left
 Linked fragment stage:
 
 
-Shader version: 450
+Shader version: 500
 gl_FragCoord origin is upper left
 0:? Sequence
 0:15  Function Definition: @main( ( temp structure{ temp 4-component vector of float color})
@@ -112,6 +112,7 @@ gl_FragCoord origin is upper left
                               MemoryModel Logical GLSL450
                               EntryPoint Fragment 4  "main" 47
                               ExecutionMode 4 OriginUpperLeft
+                              Source HLSL 500
                               Name 4  "main"
                               Name 8  "PS_OUTPUT"
                               MemberName 8(PS_OUTPUT) 0  "color"

+ 105 - 107
3rdparty/glslang/Test/baseResults/hlsl.intrinsics.promote.frag.out

@@ -1,5 +1,5 @@
 hlsl.intrinsics.promote.frag
-Shader version: 450
+Shader version: 500
 gl_FragCoord origin is upper left
 0:? Sequence
 0:20  Function Definition: @main( ( temp structure{ temp 4-component vector of float color})
@@ -342,7 +342,7 @@ gl_FragCoord origin is upper left
 0:51          'r50' ( temp float)
 0:51          Construct float ( temp float)
 0:?             textureFetch ( temp 4-component vector of float)
-0:51              'g_tTexbfs' (layout( r32f) uniform samplerBuffer)
+0:51              'g_tTexbfs' (layout( r32f) uniform textureBuffer)
 0:51              Convert uint to int ( temp int)
 0:51                upos: direct index for structure ( uniform uint)
 0:51                  'anon@0' (layout( row_major std140) uniform block{ uniform int i,  uniform uint u,  uniform float f,  uniform bool b,  uniform 2-component vector of int i2,  uniform 2-component vector of uint u2,  uniform 2-component vector of float f2,  uniform 2-component vector of bool b2,  uniform uint upos,  uniform float fpos})
@@ -353,7 +353,7 @@ gl_FragCoord origin is upper left
 0:52          'r51' ( temp float)
 0:52          Construct float ( temp float)
 0:?             textureFetch ( temp 4-component vector of float)
-0:52              'g_tTexbfs' (layout( r32f) uniform samplerBuffer)
+0:52              'g_tTexbfs' (layout( r32f) uniform textureBuffer)
 0:52              Convert float to int ( temp int)
 0:52                fpos: direct index for structure ( uniform float)
 0:52                  'anon@0' (layout( row_major std140) uniform block{ uniform int i,  uniform uint u,  uniform float f,  uniform bool b,  uniform 2-component vector of int i2,  uniform 2-component vector of uint u2,  uniform 2-component vector of float f2,  uniform 2-component vector of bool b2,  uniform uint upos,  uniform float fpos})
@@ -437,7 +437,7 @@ gl_FragCoord origin is upper left
 0:20              0 (const int)
 0:?   Linker Objects
 0:?     'anon@0' (layout( row_major std140) uniform block{ uniform int i,  uniform uint u,  uniform float f,  uniform bool b,  uniform 2-component vector of int i2,  uniform 2-component vector of uint u2,  uniform 2-component vector of float f2,  uniform 2-component vector of bool b2,  uniform uint upos,  uniform float fpos})
-0:?     'g_tTexbfs' (layout( r32f) uniform samplerBuffer)
+0:?     'g_tTexbfs' (layout( r32f) uniform textureBuffer)
 0:?     'g_tTex1df4' ( uniform texture1D)
 0:?     'color' (layout( location=0) out 4-component vector of float)
 
@@ -445,7 +445,7 @@ gl_FragCoord origin is upper left
 Linked fragment stage:
 
 
-Shader version: 450
+Shader version: 500
 gl_FragCoord origin is upper left
 0:? Sequence
 0:20  Function Definition: @main( ( temp structure{ temp 4-component vector of float color})
@@ -788,7 +788,7 @@ gl_FragCoord origin is upper left
 0:51          'r50' ( temp float)
 0:51          Construct float ( temp float)
 0:?             textureFetch ( temp 4-component vector of float)
-0:51              'g_tTexbfs' (layout( r32f) uniform samplerBuffer)
+0:51              'g_tTexbfs' (layout( r32f) uniform textureBuffer)
 0:51              Convert uint to int ( temp int)
 0:51                upos: direct index for structure ( uniform uint)
 0:51                  'anon@0' (layout( row_major std140) uniform block{ uniform int i,  uniform uint u,  uniform float f,  uniform bool b,  uniform 2-component vector of int i2,  uniform 2-component vector of uint u2,  uniform 2-component vector of float f2,  uniform 2-component vector of bool b2,  uniform uint upos,  uniform float fpos})
@@ -799,7 +799,7 @@ gl_FragCoord origin is upper left
 0:52          'r51' ( temp float)
 0:52          Construct float ( temp float)
 0:?             textureFetch ( temp 4-component vector of float)
-0:52              'g_tTexbfs' (layout( r32f) uniform samplerBuffer)
+0:52              'g_tTexbfs' (layout( r32f) uniform textureBuffer)
 0:52              Convert float to int ( temp int)
 0:52                fpos: direct index for structure ( uniform float)
 0:52                  'anon@0' (layout( row_major std140) uniform block{ uniform int i,  uniform uint u,  uniform float f,  uniform bool b,  uniform 2-component vector of int i2,  uniform 2-component vector of uint u2,  uniform 2-component vector of float f2,  uniform 2-component vector of bool b2,  uniform uint upos,  uniform float fpos})
@@ -883,13 +883,13 @@ gl_FragCoord origin is upper left
 0:20              0 (const int)
 0:?   Linker Objects
 0:?     'anon@0' (layout( row_major std140) uniform block{ uniform int i,  uniform uint u,  uniform float f,  uniform bool b,  uniform 2-component vector of int i2,  uniform 2-component vector of uint u2,  uniform 2-component vector of float f2,  uniform 2-component vector of bool b2,  uniform uint upos,  uniform float fpos})
-0:?     'g_tTexbfs' (layout( r32f) uniform samplerBuffer)
+0:?     'g_tTexbfs' (layout( r32f) uniform textureBuffer)
 0:?     'g_tTex1df4' ( uniform texture1D)
 0:?     'color' (layout( location=0) out 4-component vector of float)
 
 // Module Version 10000
 // Generated by (magic number): 80001
-// Id's are bound by 325
+// Id's are bound by 322
 
                               Capability Shader
                               Capability Sampled1D
@@ -897,8 +897,9 @@ gl_FragCoord origin is upper left
                               Capability ImageQuery
                1:             ExtInstImport  "GLSL.std.450"
                               MemoryModel Logical GLSL450
-                              EntryPoint Fragment 4  "main" 322
+                              EntryPoint Fragment 4  "main" 319
                               ExecutionMode 4 OriginUpperLeft
+                              Source HLSL 500
                               Name 4  "main"
                               Name 8  "PS_OUTPUT"
                               MemberName 8(PS_OUTPUT) 0  "color"
@@ -938,19 +939,19 @@ gl_FragCoord origin is upper left
                               Name 229  "r42"
                               Name 243  "r43"
                               Name 255  "r50"
-                              Name 259  "g_tTexbfs"
-                              Name 268  "r51"
-                              Name 277  "sizeQueryTemp"
-                              Name 280  "g_tTex1df4"
-                              Name 283  "WidthI"
-                              Name 286  "sizeQueryTemp"
-                              Name 292  "NumberOfLevelsU"
-                              Name 295  "sizeQueryTemp"
-                              Name 298  "WidthU"
-                              Name 300  "NumberOfLevelsI"
-                              Name 304  "sizeQueryTemp"
-                              Name 313  "ps_output"
-                              Name 322  "color"
+                              Name 258  "g_tTexbfs"
+                              Name 266  "r51"
+                              Name 274  "sizeQueryTemp"
+                              Name 277  "g_tTex1df4"
+                              Name 280  "WidthI"
+                              Name 283  "sizeQueryTemp"
+                              Name 289  "NumberOfLevelsU"
+                              Name 292  "sizeQueryTemp"
+                              Name 295  "WidthU"
+                              Name 297  "NumberOfLevelsI"
+                              Name 301  "sizeQueryTemp"
+                              Name 310  "ps_output"
+                              Name 319  "color"
                               MemberDecorate 19($Global) 0 Offset 0
                               MemberDecorate 19($Global) 1 Offset 4
                               MemberDecorate 19($Global) 2 Offset 8
@@ -963,9 +964,9 @@ gl_FragCoord origin is upper left
                               MemberDecorate 19($Global) 9 Offset 52
                               Decorate 19($Global) Block
                               Decorate 21 DescriptorSet 0
-                              Decorate 259(g_tTexbfs) DescriptorSet 0
-                              Decorate 280(g_tTex1df4) DescriptorSet 0
-                              Decorate 322(color) Location 0
+                              Decorate 258(g_tTexbfs) DescriptorSet 0
+                              Decorate 277(g_tTex1df4) DescriptorSet 0
+                              Decorate 319(color) Location 0
                2:             TypeVoid
                3:             TypeFunction 2
                6:             TypeFloat 32
@@ -1013,24 +1014,23 @@ gl_FragCoord origin is upper left
              109:     14(int) Constant 4
              110:             TypePointer Uniform 16(ivec2)
              256:             TypeImage 6(float) Buffer sampled format:R32f
-             257:             TypeSampledImage 256
-             258:             TypePointer UniformConstant 257
-  259(g_tTexbfs):    258(ptr) Variable UniformConstant
-             261:     14(int) Constant 8
-             270:     14(int) Constant 9
-             278:             TypeImage 6(float) 1D sampled format:Unknown
-             279:             TypePointer UniformConstant 278
- 280(g_tTex1df4):    279(ptr) Variable UniformConstant
-             288:     15(int) Constant 6
-             312:             TypePointer Function 8(PS_OUTPUT)
-             316:             TypePointer Function 7(fvec4)
-             321:             TypePointer Output 7(fvec4)
-      322(color):    321(ptr) Variable Output
+             257:             TypePointer UniformConstant 256
+  258(g_tTexbfs):    257(ptr) Variable UniformConstant
+             260:     14(int) Constant 8
+             268:     14(int) Constant 9
+             275:             TypeImage 6(float) 1D sampled format:Unknown
+             276:             TypePointer UniformConstant 275
+ 277(g_tTex1df4):    276(ptr) Variable UniformConstant
+             285:     15(int) Constant 6
+             309:             TypePointer Function 8(PS_OUTPUT)
+             313:             TypePointer Function 7(fvec4)
+             318:             TypePointer Output 7(fvec4)
+      319(color):    318(ptr) Variable Output
          4(main):           2 Function None 3
                5:             Label
-             323:8(PS_OUTPUT) FunctionCall 10(@main()
-             324:    7(fvec4) CompositeExtract 323 0
-                              Store 322(color) 324
+             320:8(PS_OUTPUT) FunctionCall 10(@main()
+             321:    7(fvec4) CompositeExtract 320 0
+                              Store 319(color) 321
                               Return
                               FunctionEnd
       10(@main():8(PS_OUTPUT) Function None 9
@@ -1058,16 +1058,16 @@ gl_FragCoord origin is upper left
         229(r42):     73(ptr) Variable Function
         243(r43):    101(ptr) Variable Function
         255(r50):     12(ptr) Variable Function
-        268(r51):     12(ptr) Variable Function
-277(sizeQueryTemp):     37(ptr) Variable Function
-     283(WidthI):     48(ptr) Variable Function
-286(sizeQueryTemp):     37(ptr) Variable Function
-292(NumberOfLevelsU):     37(ptr) Variable Function
-295(sizeQueryTemp):     37(ptr) Variable Function
-     298(WidthU):     37(ptr) Variable Function
-300(NumberOfLevelsI):     48(ptr) Variable Function
-304(sizeQueryTemp):     37(ptr) Variable Function
-  313(ps_output):    312(ptr) Variable Function
+        266(r51):     12(ptr) Variable Function
+274(sizeQueryTemp):     37(ptr) Variable Function
+     280(WidthI):     48(ptr) Variable Function
+283(sizeQueryTemp):     37(ptr) Variable Function
+289(NumberOfLevelsU):     37(ptr) Variable Function
+292(sizeQueryTemp):     37(ptr) Variable Function
+     295(WidthU):     37(ptr) Variable Function
+297(NumberOfLevelsI):     48(ptr) Variable Function
+301(sizeQueryTemp):     37(ptr) Variable Function
+  310(ps_output):    309(ptr) Variable Function
               24:     23(ptr) AccessChain 21 22
               25:     15(int) Load 24
               28:    26(bool) INotEqual 25 27
@@ -1271,60 +1271,58 @@ gl_FragCoord origin is upper left
              253:   17(ivec2) ExtInst 1(GLSL.std.450) 44(UClamp) 247 250 252
              254:   16(ivec2) Bitcast 253
                               Store 243(r43) 254
-             260:         257 Load 259(g_tTexbfs)
-             262:     23(ptr) AccessChain 21 261
-             263:     15(int) Load 262
-             264:     14(int) Bitcast 263
-             265:         256 Image 260
-             266:    7(fvec4) ImageFetch 265 264
-             267:    6(float) CompositeExtract 266 0
-                              Store 255(r50) 267
-             269:         257 Load 259(g_tTexbfs)
-             271:     33(ptr) AccessChain 21 270
-             272:    6(float) Load 271
-             273:     14(int) ConvertFToS 272
-             274:         256 Image 269
-             275:    7(fvec4) ImageFetch 274 273
-             276:    6(float) CompositeExtract 275 0
-                              Store 268(r51) 276
-             281:         278 Load 280(g_tTex1df4)
-             282:     15(int) ImageQuerySizeLod 281 53
-                              Store 277(sizeQueryTemp) 282
-             284:     15(int) Load 277(sizeQueryTemp)
-             285:     14(int) Bitcast 284
-                              Store 283(WidthI) 285
-             287:         278 Load 280(g_tTex1df4)
-             289:     15(int) ImageQuerySizeLod 287 288
-                              Store 286(sizeQueryTemp) 289
-             290:     15(int) Load 286(sizeQueryTemp)
-             291:     14(int) Bitcast 290
-                              Store 283(WidthI) 291
-             293:         278 Load 280(g_tTex1df4)
-             294:     15(int) ImageQueryLevels 293
-                              Store 292(NumberOfLevelsU) 294
-             296:         278 Load 280(g_tTex1df4)
-             297:     15(int) ImageQuerySizeLod 296 288
-                              Store 295(sizeQueryTemp) 297
-             299:     15(int) Load 295(sizeQueryTemp)
-                              Store 298(WidthU) 299
-             301:         278 Load 280(g_tTex1df4)
-             302:     15(int) ImageQueryLevels 301
-             303:     14(int) Bitcast 302
-                              Store 300(NumberOfLevelsI) 303
-             305:         278 Load 280(g_tTex1df4)
-             306:     15(int) ImageQuerySizeLod 305 288
-                              Store 304(sizeQueryTemp) 306
-             307:     15(int) Load 304(sizeQueryTemp)
+             259:         256 Load 258(g_tTexbfs)
+             261:     23(ptr) AccessChain 21 260
+             262:     15(int) Load 261
+             263:     14(int) Bitcast 262
+             264:    7(fvec4) ImageFetch 259 263
+             265:    6(float) CompositeExtract 264 0
+                              Store 255(r50) 265
+             267:         256 Load 258(g_tTexbfs)
+             269:     33(ptr) AccessChain 21 268
+             270:    6(float) Load 269
+             271:     14(int) ConvertFToS 270
+             272:    7(fvec4) ImageFetch 267 271
+             273:    6(float) CompositeExtract 272 0
+                              Store 266(r51) 273
+             278:         275 Load 277(g_tTex1df4)
+             279:     15(int) ImageQuerySizeLod 278 53
+                              Store 274(sizeQueryTemp) 279
+             281:     15(int) Load 274(sizeQueryTemp)
+             282:     14(int) Bitcast 281
+                              Store 280(WidthI) 282
+             284:         275 Load 277(g_tTex1df4)
+             286:     15(int) ImageQuerySizeLod 284 285
+                              Store 283(sizeQueryTemp) 286
+             287:     15(int) Load 283(sizeQueryTemp)
+             288:     14(int) Bitcast 287
+                              Store 280(WidthI) 288
+             290:         275 Load 277(g_tTex1df4)
+             291:     15(int) ImageQueryLevels 290
+                              Store 289(NumberOfLevelsU) 291
+             293:         275 Load 277(g_tTex1df4)
+             294:     15(int) ImageQuerySizeLod 293 285
+                              Store 292(sizeQueryTemp) 294
+             296:     15(int) Load 292(sizeQueryTemp)
+                              Store 295(WidthU) 296
+             298:         275 Load 277(g_tTex1df4)
+             299:     15(int) ImageQueryLevels 298
+             300:     14(int) Bitcast 299
+                              Store 297(NumberOfLevelsI) 300
+             302:         275 Load 277(g_tTex1df4)
+             303:     15(int) ImageQuerySizeLod 302 285
+                              Store 301(sizeQueryTemp) 303
+             304:     15(int) Load 301(sizeQueryTemp)
+             305:     14(int) Bitcast 304
+                              Store 280(WidthI) 305
+             306:         275 Load 277(g_tTex1df4)
+             307:     15(int) ImageQueryLevels 306
              308:     14(int) Bitcast 307
-                              Store 283(WidthI) 308
-             309:         278 Load 280(g_tTex1df4)
-             310:     15(int) ImageQueryLevels 309
-             311:     14(int) Bitcast 310
-                              Store 300(NumberOfLevelsI) 311
-             314:    6(float) Load 13(r00)
-             315:    7(fvec4) CompositeConstruct 314 314 314 314
-             317:    316(ptr) AccessChain 313(ps_output) 53
-                              Store 317 315
-             318:8(PS_OUTPUT) Load 313(ps_output)
-                              ReturnValue 318
+                              Store 297(NumberOfLevelsI) 308
+             311:    6(float) Load 13(r00)
+             312:    7(fvec4) CompositeConstruct 311 311 311 311
+             314:    313(ptr) AccessChain 310(ps_output) 53
+                              Store 314 312
+             315:8(PS_OUTPUT) Load 310(ps_output)
+                              ReturnValue 315
                               FunctionEnd

+ 10 - 10
3rdparty/glslang/Test/baseResults/hlsl.intrinsics.promote.outputs.frag.out

@@ -1,5 +1,5 @@
 hlsl.intrinsics.promote.outputs.frag
-Shader version: 450
+Shader version: 500
 gl_FragCoord origin is upper left
 0:? Sequence
 0:20  Function Definition: @main( ( temp structure{ temp 4-component vector of float color})
@@ -95,7 +95,7 @@ gl_FragCoord origin is upper left
 0:20              0 (const int)
 0:?   Linker Objects
 0:?     'anon@0' (layout( row_major std140) uniform block{ uniform int i,  uniform uint u,  uniform float f,  uniform bool b,  uniform 2-component vector of int i2,  uniform 2-component vector of uint u2,  uniform 2-component vector of float f2,  uniform 2-component vector of bool b2,  uniform uint upos,  uniform float fpos})
-0:?     'g_tTexbfs' (layout( r32f) uniform samplerBuffer)
+0:?     'g_tTexbfs' (layout( r32f) uniform textureBuffer)
 0:?     'g_tTex1df4' ( uniform texture1D)
 0:?     'color' (layout( location=0) out 4-component vector of float)
 
@@ -103,7 +103,7 @@ gl_FragCoord origin is upper left
 Linked fragment stage:
 
 
-Shader version: 450
+Shader version: 500
 gl_FragCoord origin is upper left
 0:? Sequence
 0:20  Function Definition: @main( ( temp structure{ temp 4-component vector of float color})
@@ -199,13 +199,13 @@ gl_FragCoord origin is upper left
 0:20              0 (const int)
 0:?   Linker Objects
 0:?     'anon@0' (layout( row_major std140) uniform block{ uniform int i,  uniform uint u,  uniform float f,  uniform bool b,  uniform 2-component vector of int i2,  uniform 2-component vector of uint u2,  uniform 2-component vector of float f2,  uniform 2-component vector of bool b2,  uniform uint upos,  uniform float fpos})
-0:?     'g_tTexbfs' (layout( r32f) uniform samplerBuffer)
+0:?     'g_tTexbfs' (layout( r32f) uniform textureBuffer)
 0:?     'g_tTex1df4' ( uniform texture1D)
 0:?     'color' (layout( location=0) out 4-component vector of float)
 
 // Module Version 10000
 // Generated by (magic number): 80001
-// Id's are bound by 81
+// Id's are bound by 80
 
                               Capability Shader
                               Capability Sampled1D
@@ -215,6 +215,7 @@ gl_FragCoord origin is upper left
                               MemoryModel Logical GLSL450
                               EntryPoint Fragment 4  "main" 74
                               ExecutionMode 4 OriginUpperLeft
+                              Source HLSL 500
                               Name 4  "main"
                               Name 8  "PS_OUTPUT"
                               MemberName 8(PS_OUTPUT) 0  "color"
@@ -242,7 +243,7 @@ gl_FragCoord origin is upper left
                               Name 57  "sizeQueryTemp"
                               Name 66  "ps_output"
                               Name 74  "color"
-                              Name 80  "g_tTexbfs"
+                              Name 79  "g_tTexbfs"
                               MemberDecorate 17($Global) 0 Offset 0
                               MemberDecorate 17($Global) 1 Offset 4
                               MemberDecorate 17($Global) 2 Offset 8
@@ -257,7 +258,7 @@ gl_FragCoord origin is upper left
                               Decorate 19 DescriptorSet 0
                               Decorate 31(g_tTex1df4) DescriptorSet 0
                               Decorate 74(color) Location 0
-                              Decorate 80(g_tTexbfs) DescriptorSet 0
+                              Decorate 79(g_tTexbfs) DescriptorSet 0
                2:             TypeVoid
                3:             TypeFunction 2
                6:             TypeFloat 32
@@ -289,9 +290,8 @@ gl_FragCoord origin is upper left
               73:             TypePointer Output 7(fvec4)
        74(color):     73(ptr) Variable Output
               77:             TypeImage 6(float) Buffer sampled format:R32f
-              78:             TypeSampledImage 77
-              79:             TypePointer UniformConstant 78
-   80(g_tTexbfs):     79(ptr) Variable UniformConstant
+              78:             TypePointer UniformConstant 77
+   79(g_tTexbfs):     78(ptr) Variable UniformConstant
          4(main):           2 Function None 3
                5:             Label
               75:8(PS_OUTPUT) FunctionCall 10(@main()

+ 3 - 2
3rdparty/glslang/Test/baseResults/hlsl.intrinsics.vert.out

@@ -1,5 +1,5 @@
 hlsl.intrinsics.vert
-Shader version: 450
+Shader version: 500
 0:? Sequence
 0:2  Function Definition: VertexShaderFunctionS(f1;f1;f1;u1;u1; ( temp float)
 0:2    Function Parameters: 
@@ -1377,7 +1377,7 @@ Linked vertex stage:
 
 WARNING: Linking vertex stage: Entry point not found
 
-Shader version: 450
+Shader version: 500
 0:? Sequence
 0:2  Function Definition: VertexShaderFunctionS(f1;f1;f1;u1;u1; ( temp float)
 0:2    Function Parameters: 
@@ -2758,6 +2758,7 @@ Shader version: 450
                1:             ExtInstImport  "GLSL.std.450"
                               MemoryModel Logical GLSL450
                               EntryPoint Vertex 4  "VertexShaderFunction"
+                              Source HLSL 500
                               Name 4  "VertexShaderFunction"
                               Name 16  "VertexShaderFunctionS(f1;f1;f1;u1;u1;"
                               Name 11  "inF0"

+ 141 - 0
3rdparty/glslang/Test/baseResults/hlsl.isfinite.frag.out

@@ -0,0 +1,141 @@
+hlsl.isfinite.frag
+Shader version: 500
+gl_FragCoord origin is upper left
+0:? Sequence
+0:5  Function Definition: @main( ( temp 4-component vector of float)
+0:5    Function Parameters: 
+0:?     Sequence
+0:6      Sequence
+0:6        move second child to first child ( temp float)
+0:6          '@finitetmp' ( temp float)
+0:6          f: direct index for structure ( uniform float)
+0:6            'anon@0' (layout( row_major std140) uniform block{ uniform float f})
+0:6            Constant:
+0:6              0 (const uint)
+0:6        logical-and ( temp bool)
+0:6          Negate conditional ( temp bool)
+0:6            isnan ( temp bool)
+0:6              '@finitetmp' ( temp float)
+0:6          Negate conditional ( temp bool)
+0:6            isinf ( temp bool)
+0:6              '@finitetmp' ( temp float)
+0:8      Branch: Return with expression
+0:8        Constant:
+0:8          0.000000
+0:8          0.000000
+0:8          0.000000
+0:8          0.000000
+0:5  Function Definition: main( ( temp void)
+0:5    Function Parameters: 
+0:?     Sequence
+0:5      move second child to first child ( temp 4-component vector of float)
+0:?         '@entryPointOutput' (layout( location=0) out 4-component vector of float)
+0:5        Function Call: @main( ( temp 4-component vector of float)
+0:?   Linker Objects
+0:?     'anon@0' (layout( row_major std140) uniform block{ uniform float f})
+0:?     '@entryPointOutput' (layout( location=0) out 4-component vector of float)
+
+
+Linked fragment stage:
+
+
+Shader version: 500
+gl_FragCoord origin is upper left
+0:? Sequence
+0:5  Function Definition: @main( ( temp 4-component vector of float)
+0:5    Function Parameters: 
+0:?     Sequence
+0:6      Sequence
+0:6        move second child to first child ( temp float)
+0:6          '@finitetmp' ( temp float)
+0:6          f: direct index for structure ( uniform float)
+0:6            'anon@0' (layout( row_major std140) uniform block{ uniform float f})
+0:6            Constant:
+0:6              0 (const uint)
+0:6        logical-and ( temp bool)
+0:6          Negate conditional ( temp bool)
+0:6            isnan ( temp bool)
+0:6              '@finitetmp' ( temp float)
+0:6          Negate conditional ( temp bool)
+0:6            isinf ( temp bool)
+0:6              '@finitetmp' ( temp float)
+0:8      Branch: Return with expression
+0:8        Constant:
+0:8          0.000000
+0:8          0.000000
+0:8          0.000000
+0:8          0.000000
+0:5  Function Definition: main( ( temp void)
+0:5    Function Parameters: 
+0:?     Sequence
+0:5      move second child to first child ( temp 4-component vector of float)
+0:?         '@entryPointOutput' (layout( location=0) out 4-component vector of float)
+0:5        Function Call: @main( ( temp 4-component vector of float)
+0:?   Linker Objects
+0:?     'anon@0' (layout( row_major std140) uniform block{ uniform float f})
+0:?     '@entryPointOutput' (layout( location=0) out 4-component vector of float)
+
+// Module Version 10000
+// Generated by (magic number): 80001
+// Id's are bound by 38
+
+                              Capability Shader
+               1:             ExtInstImport  "GLSL.std.450"
+                              MemoryModel Logical GLSL450
+                              EntryPoint Fragment 4  "main" 36
+                              ExecutionMode 4 OriginUpperLeft
+                              Source HLSL 500
+                              Name 4  "main"
+                              Name 9  "@main("
+                              Name 12  "@finitetmp"
+                              Name 13  "$Global"
+                              MemberName 13($Global) 0  "f"
+                              Name 15  ""
+                              Name 36  "@entryPointOutput"
+                              MemberDecorate 13($Global) 0 Offset 0
+                              Decorate 13($Global) Block
+                              Decorate 15 DescriptorSet 0
+                              Decorate 36(@entryPointOutput) Location 0
+               2:             TypeVoid
+               3:             TypeFunction 2
+               6:             TypeFloat 32
+               7:             TypeVector 6(float) 4
+               8:             TypeFunction 7(fvec4)
+              11:             TypePointer Function 6(float)
+     13($Global):             TypeStruct 6(float)
+              14:             TypePointer Uniform 13($Global)
+              15:     14(ptr) Variable Uniform
+              16:             TypeInt 32 1
+              17:     16(int) Constant 0
+              18:             TypePointer Uniform 6(float)
+              21:             TypeBool
+              31:    6(float) Constant 0
+              32:    7(fvec4) ConstantComposite 31 31 31 31
+              35:             TypePointer Output 7(fvec4)
+36(@entryPointOutput):     35(ptr) Variable Output
+         4(main):           2 Function None 3
+               5:             Label
+              37:    7(fvec4) FunctionCall 9(@main()
+                              Store 36(@entryPointOutput) 37
+                              Return
+                              FunctionEnd
+       9(@main():    7(fvec4) Function None 8
+              10:             Label
+  12(@finitetmp):     11(ptr) Variable Function
+              19:     18(ptr) AccessChain 15 17
+              20:    6(float) Load 19
+                              Store 12(@finitetmp) 20
+              22:    6(float) Load 12(@finitetmp)
+              23:    21(bool) IsNan 22
+              24:    21(bool) LogicalNot 23
+                              SelectionMerge 26 None
+                              BranchConditional 24 25 26
+              25:               Label
+              27:    6(float)   Load 12(@finitetmp)
+              28:    21(bool)   IsInf 27
+              29:    21(bool)   LogicalNot 28
+                                Branch 26
+              26:             Label
+              30:    21(bool) Phi 24 10 29 25
+                              ReturnValue 32
+                              FunctionEnd

+ 3 - 2
3rdparty/glslang/Test/baseResults/hlsl.layout.frag.out

@@ -1,5 +1,5 @@
 hlsl.layout.frag
-Shader version: 450
+Shader version: 500
 gl_FragCoord origin is upper left
 0:? Sequence
 0:16  Function Definition: PixelShaderFunction(vf4; ( temp 4-component vector of float)
@@ -35,7 +35,7 @@ Linked fragment stage:
 
 WARNING: Linking fragment stage: Entry point not found
 
-Shader version: 450
+Shader version: 500
 gl_FragCoord origin is upper left
 0:? Sequence
 0:16  Function Definition: PixelShaderFunction(vf4; ( temp 4-component vector of float)
@@ -75,6 +75,7 @@ gl_FragCoord origin is upper left
                               MemoryModel Logical GLSL450
                               EntryPoint Fragment 4  "main"
                               ExecutionMode 4 OriginUpperLeft
+                              Source HLSL 500
                               Name 4  "main"
                               Name 11  "PixelShaderFunction(vf4;"
                               Name 10  "input"

+ 3 - 2
3rdparty/glslang/Test/baseResults/hlsl.load.2dms.dx10.frag.out

@@ -1,5 +1,5 @@
 hlsl.load.2dms.dx10.frag
-Shader version: 450
+Shader version: 500
 gl_FragCoord origin is upper left
 0:? Sequence
 0:28  Function Definition: @main( ( temp structure{ temp 4-component vector of float Color,  temp float Depth})
@@ -179,7 +179,7 @@ gl_FragCoord origin is upper left
 Linked fragment stage:
 
 
-Shader version: 450
+Shader version: 500
 gl_FragCoord origin is upper left
 0:? Sequence
 0:28  Function Definition: @main( ( temp structure{ temp 4-component vector of float Color,  temp float Depth})
@@ -366,6 +366,7 @@ gl_FragCoord origin is upper left
                               MemoryModel Logical GLSL450
                               EntryPoint Fragment 4  "main" 120 124
                               ExecutionMode 4 OriginUpperLeft
+                              Source HLSL 500
                               Name 4  "main"
                               Name 8  "PS_OUTPUT"
                               MemberName 8(PS_OUTPUT) 0  "Color"

+ 3 - 2
3rdparty/glslang/Test/baseResults/hlsl.load.array.dx10.frag.out

@@ -1,5 +1,5 @@
 hlsl.load.array.dx10.frag
-Shader version: 450
+Shader version: 500
 gl_FragCoord origin is upper left
 0:? Sequence
 0:48  Function Definition: @main( ( temp structure{ temp 4-component vector of float Color,  temp float Depth})
@@ -194,7 +194,7 @@ gl_FragCoord origin is upper left
 Linked fragment stage:
 
 
-Shader version: 450
+Shader version: 500
 gl_FragCoord origin is upper left
 0:? Sequence
 0:48  Function Definition: @main( ( temp structure{ temp 4-component vector of float Color,  temp float Depth})
@@ -396,6 +396,7 @@ gl_FragCoord origin is upper left
                               MemoryModel Logical GLSL450
                               EntryPoint Fragment 4  "main" 104 108
                               ExecutionMode 4 OriginUpperLeft
+                              Source HLSL 500
                               Name 4  "main"
                               Name 8  "PS_OUTPUT"
                               MemberName 8(PS_OUTPUT) 0  "Color"

+ 3 - 2
3rdparty/glslang/Test/baseResults/hlsl.load.basic.dx10.frag.out

@@ -1,5 +1,5 @@
 hlsl.load.basic.dx10.frag
-Shader version: 450
+Shader version: 500
 gl_FragCoord origin is upper left
 0:? Sequence
 0:48  Function Definition: @main( ( temp structure{ temp 4-component vector of float Color,  temp float Depth})
@@ -245,7 +245,7 @@ gl_FragCoord origin is upper left
 Linked fragment stage:
 
 
-Shader version: 450
+Shader version: 500
 gl_FragCoord origin is upper left
 0:? Sequence
 0:48  Function Definition: @main( ( temp structure{ temp 4-component vector of float Color,  temp float Depth})
@@ -498,6 +498,7 @@ gl_FragCoord origin is upper left
                               MemoryModel Logical GLSL450
                               EntryPoint Fragment 4  "main" 133 137
                               ExecutionMode 4 OriginUpperLeft
+                              Source HLSL 500
                               Name 4  "main"
                               Name 8  "PS_OUTPUT"
                               MemberName 8(PS_OUTPUT) 0  "Color"

+ 3 - 2
3rdparty/glslang/Test/baseResults/hlsl.load.basic.dx10.vert.out

@@ -1,5 +1,5 @@
 hlsl.load.basic.dx10.vert
-Shader version: 450
+Shader version: 500
 0:? Sequence
 0:47  Function Definition: @main( ( temp structure{ temp 4-component vector of float Pos})
 0:47    Function Parameters: 
@@ -227,7 +227,7 @@ Shader version: 450
 Linked vertex stage:
 
 
-Shader version: 450
+Shader version: 500
 0:? Sequence
 0:47  Function Definition: @main( ( temp structure{ temp 4-component vector of float Pos})
 0:47    Function Parameters: 
@@ -461,6 +461,7 @@ Shader version: 450
                1:             ExtInstImport  "GLSL.std.450"
                               MemoryModel Logical GLSL450
                               EntryPoint Vertex 4  "main" 129 173
+                              Source HLSL 500
                               Name 4  "main"
                               Name 8  "VS_OUTPUT"
                               MemberName 8(VS_OUTPUT) 0  "Pos"

+ 120 - 125
3rdparty/glslang/Test/baseResults/hlsl.load.buffer.dx10.frag.out

@@ -1,5 +1,5 @@
 hlsl.load.buffer.dx10.frag
-Shader version: 450
+Shader version: 500
 gl_FragCoord origin is upper left
 0:? Sequence
 0:24  Function Definition: @main( ( temp structure{ temp 4-component vector of float Color,  temp float Depth})
@@ -9,7 +9,7 @@ gl_FragCoord origin is upper left
 0:28        move second child to first child ( temp 4-component vector of float)
 0:28          'r00' ( temp 4-component vector of float)
 0:28          textureFetch ( temp 4-component vector of float)
-0:28            'g_tTexbf4' (layout( rgba32f) uniform samplerBuffer)
+0:28            'g_tTexbf4' (layout( rgba32f) uniform textureBuffer)
 0:28            c1: direct index for structure ( uniform int)
 0:28              'anon@0' (layout( row_major std140) uniform block{ uniform int c1,  uniform 2-component vector of int c2,  uniform 3-component vector of int c3,  uniform 4-component vector of int c4,  uniform int o1,  uniform 2-component vector of int o2,  uniform 3-component vector of int o3,  uniform 4-component vector of int o4})
 0:28              Constant:
@@ -18,7 +18,7 @@ gl_FragCoord origin is upper left
 0:29        move second child to first child ( temp 4-component vector of int)
 0:29          'r01' ( temp 4-component vector of int)
 0:29          textureFetch ( temp 4-component vector of int)
-0:29            'g_tTexbi4' (layout( rgba32i) uniform isamplerBuffer)
+0:29            'g_tTexbi4' (layout( rgba32i) uniform itextureBuffer)
 0:29            c1: direct index for structure ( uniform int)
 0:29              'anon@0' (layout( row_major std140) uniform block{ uniform int c1,  uniform 2-component vector of int c2,  uniform 3-component vector of int c3,  uniform 4-component vector of int c4,  uniform int o1,  uniform 2-component vector of int o2,  uniform 3-component vector of int o3,  uniform 4-component vector of int o4})
 0:29              Constant:
@@ -27,7 +27,7 @@ gl_FragCoord origin is upper left
 0:30        move second child to first child ( temp 4-component vector of uint)
 0:30          'r02' ( temp 4-component vector of uint)
 0:30          textureFetch ( temp 4-component vector of uint)
-0:30            'g_tTexbu4' (layout( rgba32ui) uniform usamplerBuffer)
+0:30            'g_tTexbu4' (layout( rgba32ui) uniform utextureBuffer)
 0:30            c1: direct index for structure ( uniform int)
 0:30              'anon@0' (layout( row_major std140) uniform block{ uniform int c1,  uniform 2-component vector of int c2,  uniform 3-component vector of int c3,  uniform 4-component vector of int c4,  uniform int o1,  uniform 2-component vector of int o2,  uniform 3-component vector of int o3,  uniform 4-component vector of int o4})
 0:30              Constant:
@@ -71,10 +71,10 @@ gl_FragCoord origin is upper left
 0:24            Constant:
 0:24              1 (const int)
 0:?   Linker Objects
-0:?     'g_tTexbf4_test' (layout( binding=0 rgba32f) uniform samplerBuffer)
-0:?     'g_tTexbf4' (layout( rgba32f) uniform samplerBuffer)
-0:?     'g_tTexbi4' (layout( rgba32i) uniform isamplerBuffer)
-0:?     'g_tTexbu4' (layout( rgba32ui) uniform usamplerBuffer)
+0:?     'g_tTexbf4_test' (layout( binding=0 rgba32f) uniform textureBuffer)
+0:?     'g_tTexbf4' (layout( rgba32f) uniform textureBuffer)
+0:?     'g_tTexbi4' (layout( rgba32i) uniform itextureBuffer)
+0:?     'g_tTexbu4' (layout( rgba32ui) uniform utextureBuffer)
 0:?     'anon@0' (layout( row_major std140) uniform block{ uniform int c1,  uniform 2-component vector of int c2,  uniform 3-component vector of int c3,  uniform 4-component vector of int c4,  uniform int o1,  uniform 2-component vector of int o2,  uniform 3-component vector of int o3,  uniform 4-component vector of int o4})
 0:?     'Color' (layout( location=0) out 4-component vector of float)
 0:?     'Depth' ( out float FragDepth)
@@ -83,7 +83,7 @@ gl_FragCoord origin is upper left
 Linked fragment stage:
 
 
-Shader version: 450
+Shader version: 500
 gl_FragCoord origin is upper left
 0:? Sequence
 0:24  Function Definition: @main( ( temp structure{ temp 4-component vector of float Color,  temp float Depth})
@@ -93,7 +93,7 @@ gl_FragCoord origin is upper left
 0:28        move second child to first child ( temp 4-component vector of float)
 0:28          'r00' ( temp 4-component vector of float)
 0:28          textureFetch ( temp 4-component vector of float)
-0:28            'g_tTexbf4' (layout( rgba32f) uniform samplerBuffer)
+0:28            'g_tTexbf4' (layout( rgba32f) uniform textureBuffer)
 0:28            c1: direct index for structure ( uniform int)
 0:28              'anon@0' (layout( row_major std140) uniform block{ uniform int c1,  uniform 2-component vector of int c2,  uniform 3-component vector of int c3,  uniform 4-component vector of int c4,  uniform int o1,  uniform 2-component vector of int o2,  uniform 3-component vector of int o3,  uniform 4-component vector of int o4})
 0:28              Constant:
@@ -102,7 +102,7 @@ gl_FragCoord origin is upper left
 0:29        move second child to first child ( temp 4-component vector of int)
 0:29          'r01' ( temp 4-component vector of int)
 0:29          textureFetch ( temp 4-component vector of int)
-0:29            'g_tTexbi4' (layout( rgba32i) uniform isamplerBuffer)
+0:29            'g_tTexbi4' (layout( rgba32i) uniform itextureBuffer)
 0:29            c1: direct index for structure ( uniform int)
 0:29              'anon@0' (layout( row_major std140) uniform block{ uniform int c1,  uniform 2-component vector of int c2,  uniform 3-component vector of int c3,  uniform 4-component vector of int c4,  uniform int o1,  uniform 2-component vector of int o2,  uniform 3-component vector of int o3,  uniform 4-component vector of int o4})
 0:29              Constant:
@@ -111,7 +111,7 @@ gl_FragCoord origin is upper left
 0:30        move second child to first child ( temp 4-component vector of uint)
 0:30          'r02' ( temp 4-component vector of uint)
 0:30          textureFetch ( temp 4-component vector of uint)
-0:30            'g_tTexbu4' (layout( rgba32ui) uniform usamplerBuffer)
+0:30            'g_tTexbu4' (layout( rgba32ui) uniform utextureBuffer)
 0:30            c1: direct index for structure ( uniform int)
 0:30              'anon@0' (layout( row_major std140) uniform block{ uniform int c1,  uniform 2-component vector of int c2,  uniform 3-component vector of int c3,  uniform 4-component vector of int c4,  uniform int o1,  uniform 2-component vector of int o2,  uniform 3-component vector of int o3,  uniform 4-component vector of int o4})
 0:30              Constant:
@@ -155,67 +155,68 @@ gl_FragCoord origin is upper left
 0:24            Constant:
 0:24              1 (const int)
 0:?   Linker Objects
-0:?     'g_tTexbf4_test' (layout( binding=0 rgba32f) uniform samplerBuffer)
-0:?     'g_tTexbf4' (layout( rgba32f) uniform samplerBuffer)
-0:?     'g_tTexbi4' (layout( rgba32i) uniform isamplerBuffer)
-0:?     'g_tTexbu4' (layout( rgba32ui) uniform usamplerBuffer)
+0:?     'g_tTexbf4_test' (layout( binding=0 rgba32f) uniform textureBuffer)
+0:?     'g_tTexbf4' (layout( rgba32f) uniform textureBuffer)
+0:?     'g_tTexbi4' (layout( rgba32i) uniform itextureBuffer)
+0:?     'g_tTexbu4' (layout( rgba32ui) uniform utextureBuffer)
 0:?     'anon@0' (layout( row_major std140) uniform block{ uniform int c1,  uniform 2-component vector of int c2,  uniform 3-component vector of int c3,  uniform 4-component vector of int c4,  uniform int o1,  uniform 2-component vector of int o2,  uniform 3-component vector of int o3,  uniform 4-component vector of int o4})
 0:?     'Color' (layout( location=0) out 4-component vector of float)
 0:?     'Depth' ( out float FragDepth)
 
 // Module Version 10000
 // Generated by (magic number): 80001
-// Id's are bound by 78
+// Id's are bound by 72
 
                               Capability Shader
                               Capability SampledBuffer
                1:             ExtInstImport  "GLSL.std.450"
                               MemoryModel Logical GLSL450
-                              EntryPoint Fragment 4  "main" 70 74
+                              EntryPoint Fragment 4  "main" 64 68
                               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  "r00"
-                              Name 17  "g_tTexbf4"
-                              Name 23  "$Global"
-                              MemberName 23($Global) 0  "c1"
-                              MemberName 23($Global) 1  "c2"
-                              MemberName 23($Global) 2  "c3"
-                              MemberName 23($Global) 3  "c4"
-                              MemberName 23($Global) 4  "o1"
-                              MemberName 23($Global) 5  "o2"
-                              MemberName 23($Global) 6  "o3"
-                              MemberName 23($Global) 7  "o4"
-                              Name 25  ""
-                              Name 33  "r01"
-                              Name 37  "g_tTexbi4"
-                              Name 46  "r02"
-                              Name 50  "g_tTexbu4"
-                              Name 57  "psout"
-                              Name 67  "flattenTemp"
-                              Name 70  "Color"
-                              Name 74  "Depth"
-                              Name 77  "g_tTexbf4_test"
-                              Decorate 17(g_tTexbf4) DescriptorSet 0
-                              MemberDecorate 23($Global) 0 Offset 0
-                              MemberDecorate 23($Global) 1 Offset 8
-                              MemberDecorate 23($Global) 2 Offset 16
-                              MemberDecorate 23($Global) 3 Offset 32
-                              MemberDecorate 23($Global) 4 Offset 48
-                              MemberDecorate 23($Global) 5 Offset 56
-                              MemberDecorate 23($Global) 6 Offset 64
-                              MemberDecorate 23($Global) 7 Offset 80
-                              Decorate 23($Global) Block
-                              Decorate 25 DescriptorSet 0
-                              Decorate 37(g_tTexbi4) DescriptorSet 0
-                              Decorate 50(g_tTexbu4) DescriptorSet 0
-                              Decorate 70(Color) Location 0
-                              Decorate 74(Depth) BuiltIn FragDepth
-                              Decorate 77(g_tTexbf4_test) DescriptorSet 0
-                              Decorate 77(g_tTexbf4_test) Binding 0
+                              Name 16  "g_tTexbf4"
+                              Name 22  "$Global"
+                              MemberName 22($Global) 0  "c1"
+                              MemberName 22($Global) 1  "c2"
+                              MemberName 22($Global) 2  "c3"
+                              MemberName 22($Global) 3  "c4"
+                              MemberName 22($Global) 4  "o1"
+                              MemberName 22($Global) 5  "o2"
+                              MemberName 22($Global) 6  "o3"
+                              MemberName 22($Global) 7  "o4"
+                              Name 24  ""
+                              Name 31  "r01"
+                              Name 34  "g_tTexbi4"
+                              Name 42  "r02"
+                              Name 45  "g_tTexbu4"
+                              Name 51  "psout"
+                              Name 61  "flattenTemp"
+                              Name 64  "Color"
+                              Name 68  "Depth"
+                              Name 71  "g_tTexbf4_test"
+                              Decorate 16(g_tTexbf4) DescriptorSet 0
+                              MemberDecorate 22($Global) 0 Offset 0
+                              MemberDecorate 22($Global) 1 Offset 8
+                              MemberDecorate 22($Global) 2 Offset 16
+                              MemberDecorate 22($Global) 3 Offset 32
+                              MemberDecorate 22($Global) 4 Offset 48
+                              MemberDecorate 22($Global) 5 Offset 56
+                              MemberDecorate 22($Global) 6 Offset 64
+                              MemberDecorate 22($Global) 7 Offset 80
+                              Decorate 22($Global) Block
+                              Decorate 24 DescriptorSet 0
+                              Decorate 34(g_tTexbi4) DescriptorSet 0
+                              Decorate 45(g_tTexbu4) DescriptorSet 0
+                              Decorate 64(Color) Location 0
+                              Decorate 68(Depth) BuiltIn FragDepth
+                              Decorate 71(g_tTexbf4_test) DescriptorSet 0
+                              Decorate 71(g_tTexbf4_test) Binding 0
                2:             TypeVoid
                3:             TypeFunction 2
                6:             TypeFloat 32
@@ -224,81 +225,75 @@ gl_FragCoord origin is upper left
                9:             TypeFunction 8(PS_OUTPUT)
               12:             TypePointer Function 7(fvec4)
               14:             TypeImage 6(float) Buffer sampled format:Rgba32f
-              15:             TypeSampledImage 14
-              16:             TypePointer UniformConstant 15
-   17(g_tTexbf4):     16(ptr) Variable UniformConstant
-              19:             TypeInt 32 1
-              20:             TypeVector 19(int) 2
-              21:             TypeVector 19(int) 3
-              22:             TypeVector 19(int) 4
-     23($Global):             TypeStruct 19(int) 20(ivec2) 21(ivec3) 22(ivec4) 19(int) 20(ivec2) 21(ivec3) 22(ivec4)
-              24:             TypePointer Uniform 23($Global)
-              25:     24(ptr) Variable Uniform
-              26:     19(int) Constant 0
-              27:             TypePointer Uniform 19(int)
-              32:             TypePointer Function 22(ivec4)
-              34:             TypeImage 19(int) Buffer sampled format:Rgba32i
-              35:             TypeSampledImage 34
-              36:             TypePointer UniformConstant 35
-   37(g_tTexbi4):     36(ptr) Variable UniformConstant
-              43:             TypeInt 32 0
-              44:             TypeVector 43(int) 4
-              45:             TypePointer Function 44(ivec4)
-              47:             TypeImage 43(int) Buffer sampled format:Rgba32ui
-              48:             TypeSampledImage 47
-              49:             TypePointer UniformConstant 48
-   50(g_tTexbu4):     49(ptr) Variable UniformConstant
-              56:             TypePointer Function 8(PS_OUTPUT)
-              58:    6(float) Constant 1065353216
-              59:    7(fvec4) ConstantComposite 58 58 58 58
-              61:     19(int) Constant 1
-              62:             TypePointer Function 6(float)
-              69:             TypePointer Output 7(fvec4)
-       70(Color):     69(ptr) Variable Output
-              73:             TypePointer Output 6(float)
-       74(Depth):     73(ptr) Variable Output
-77(g_tTexbf4_test):     16(ptr) Variable UniformConstant
+              15:             TypePointer UniformConstant 14
+   16(g_tTexbf4):     15(ptr) Variable UniformConstant
+              18:             TypeInt 32 1
+              19:             TypeVector 18(int) 2
+              20:             TypeVector 18(int) 3
+              21:             TypeVector 18(int) 4
+     22($Global):             TypeStruct 18(int) 19(ivec2) 20(ivec3) 21(ivec4) 18(int) 19(ivec2) 20(ivec3) 21(ivec4)
+              23:             TypePointer Uniform 22($Global)
+              24:     23(ptr) Variable Uniform
+              25:     18(int) Constant 0
+              26:             TypePointer Uniform 18(int)
+              30:             TypePointer Function 21(ivec4)
+              32:             TypeImage 18(int) Buffer sampled format:Rgba32i
+              33:             TypePointer UniformConstant 32
+   34(g_tTexbi4):     33(ptr) Variable UniformConstant
+              39:             TypeInt 32 0
+              40:             TypeVector 39(int) 4
+              41:             TypePointer Function 40(ivec4)
+              43:             TypeImage 39(int) Buffer sampled format:Rgba32ui
+              44:             TypePointer UniformConstant 43
+   45(g_tTexbu4):     44(ptr) Variable UniformConstant
+              50:             TypePointer Function 8(PS_OUTPUT)
+              52:    6(float) Constant 1065353216
+              53:    7(fvec4) ConstantComposite 52 52 52 52
+              55:     18(int) Constant 1
+              56:             TypePointer Function 6(float)
+              63:             TypePointer Output 7(fvec4)
+       64(Color):     63(ptr) Variable Output
+              67:             TypePointer Output 6(float)
+       68(Depth):     67(ptr) Variable Output
+71(g_tTexbf4_test):     15(ptr) Variable UniformConstant
          4(main):           2 Function None 3
                5:             Label
- 67(flattenTemp):     56(ptr) Variable Function
-              68:8(PS_OUTPUT) FunctionCall 10(@main()
-                              Store 67(flattenTemp) 68
-              71:     12(ptr) AccessChain 67(flattenTemp) 26
-              72:    7(fvec4) Load 71
-                              Store 70(Color) 72
-              75:     62(ptr) AccessChain 67(flattenTemp) 61
-              76:    6(float) Load 75
-                              Store 74(Depth) 76
+ 61(flattenTemp):     50(ptr) Variable Function
+              62:8(PS_OUTPUT) FunctionCall 10(@main()
+                              Store 61(flattenTemp) 62
+              65:     12(ptr) AccessChain 61(flattenTemp) 25
+              66:    7(fvec4) Load 65
+                              Store 64(Color) 66
+              69:     56(ptr) AccessChain 61(flattenTemp) 55
+              70:    6(float) Load 69
+                              Store 68(Depth) 70
                               Return
                               FunctionEnd
       10(@main():8(PS_OUTPUT) Function None 9
               11:             Label
          13(r00):     12(ptr) Variable Function
-         33(r01):     32(ptr) Variable Function
-         46(r02):     45(ptr) Variable Function
-       57(psout):     56(ptr) Variable Function
-              18:          15 Load 17(g_tTexbf4)
-              28:     27(ptr) AccessChain 25 26
-              29:     19(int) Load 28
-              30:          14 Image 18
-              31:    7(fvec4) ImageFetch 30 29
-                              Store 13(r00) 31
-              38:          35 Load 37(g_tTexbi4)
-              39:     27(ptr) AccessChain 25 26
-              40:     19(int) Load 39
-              41:          34 Image 38
-              42:   22(ivec4) ImageFetch 41 40
-                              Store 33(r01) 42
-              51:          48 Load 50(g_tTexbu4)
-              52:     27(ptr) AccessChain 25 26
-              53:     19(int) Load 52
-              54:          47 Image 51
-              55:   44(ivec4) ImageFetch 54 53
-                              Store 46(r02) 55
-              60:     12(ptr) AccessChain 57(psout) 26
-                              Store 60 59
-              63:     62(ptr) AccessChain 57(psout) 61
-                              Store 63 58
-              64:8(PS_OUTPUT) Load 57(psout)
-                              ReturnValue 64
+         31(r01):     30(ptr) Variable Function
+         42(r02):     41(ptr) Variable Function
+       51(psout):     50(ptr) Variable Function
+              17:          14 Load 16(g_tTexbf4)
+              27:     26(ptr) AccessChain 24 25
+              28:     18(int) Load 27
+              29:    7(fvec4) ImageFetch 17 28
+                              Store 13(r00) 29
+              35:          32 Load 34(g_tTexbi4)
+              36:     26(ptr) AccessChain 24 25
+              37:     18(int) Load 36
+              38:   21(ivec4) ImageFetch 35 37
+                              Store 31(r01) 38
+              46:          43 Load 45(g_tTexbu4)
+              47:     26(ptr) AccessChain 24 25
+              48:     18(int) Load 47
+              49:   40(ivec4) ImageFetch 46 48
+                              Store 42(r02) 49
+              54:     12(ptr) AccessChain 51(psout) 25
+                              Store 54 53
+              57:     56(ptr) AccessChain 51(psout) 55
+                              Store 57 52
+              58:8(PS_OUTPUT) Load 51(psout)
+                              ReturnValue 58
                               FunctionEnd

+ 123 - 128
3rdparty/glslang/Test/baseResults/hlsl.load.buffer.float.dx10.frag.out

@@ -1,5 +1,5 @@
 hlsl.load.buffer.float.dx10.frag
-Shader version: 450
+Shader version: 500
 gl_FragCoord origin is upper left
 0:? Sequence
 0:24  Function Definition: @main( ( temp structure{ temp 4-component vector of float Color,  temp float Depth})
@@ -10,7 +10,7 @@ gl_FragCoord origin is upper left
 0:28          'r00' ( temp float)
 0:28          Construct float ( temp float)
 0:?             textureFetch ( temp 4-component vector of float)
-0:28              'g_tTexbfs' (layout( r32f) uniform samplerBuffer)
+0:28              'g_tTexbfs' (layout( r32f) uniform textureBuffer)
 0:28              c1: direct index for structure ( uniform int)
 0:28                'anon@0' (layout( row_major std140) uniform block{ uniform int c1,  uniform 2-component vector of int c2,  uniform 3-component vector of int c3,  uniform 4-component vector of int c4,  uniform int o1,  uniform 2-component vector of int o2,  uniform 3-component vector of int o3,  uniform 4-component vector of int o4})
 0:28                Constant:
@@ -20,7 +20,7 @@ gl_FragCoord origin is upper left
 0:29          'r01' ( temp int)
 0:29          Construct int ( temp int)
 0:?             textureFetch ( temp 4-component vector of int)
-0:29              'g_tTexbis' (layout( r32i) uniform isamplerBuffer)
+0:29              'g_tTexbis' (layout( r32i) uniform itextureBuffer)
 0:29              c1: direct index for structure ( uniform int)
 0:29                'anon@0' (layout( row_major std140) uniform block{ uniform int c1,  uniform 2-component vector of int c2,  uniform 3-component vector of int c3,  uniform 4-component vector of int c4,  uniform int o1,  uniform 2-component vector of int o2,  uniform 3-component vector of int o3,  uniform 4-component vector of int o4})
 0:29                Constant:
@@ -30,7 +30,7 @@ gl_FragCoord origin is upper left
 0:30          'r02' ( temp uint)
 0:30          Construct uint ( temp uint)
 0:?             textureFetch ( temp 4-component vector of uint)
-0:30              'g_tTexbus' (layout( r32ui) uniform usamplerBuffer)
+0:30              'g_tTexbus' (layout( r32ui) uniform utextureBuffer)
 0:30              c1: direct index for structure ( uniform int)
 0:30                'anon@0' (layout( row_major std140) uniform block{ uniform int c1,  uniform 2-component vector of int c2,  uniform 3-component vector of int c3,  uniform 4-component vector of int c4,  uniform int o1,  uniform 2-component vector of int o2,  uniform 3-component vector of int o3,  uniform 4-component vector of int o4})
 0:30                Constant:
@@ -74,10 +74,10 @@ gl_FragCoord origin is upper left
 0:24            Constant:
 0:24              1 (const int)
 0:?   Linker Objects
-0:?     'g_tTexbfs_test' (layout( binding=0 r32f) uniform samplerBuffer)
-0:?     'g_tTexbfs' (layout( r32f) uniform samplerBuffer)
-0:?     'g_tTexbis' (layout( r32i) uniform isamplerBuffer)
-0:?     'g_tTexbus' (layout( r32ui) uniform usamplerBuffer)
+0:?     'g_tTexbfs_test' (layout( binding=0 r32f) uniform textureBuffer)
+0:?     'g_tTexbfs' (layout( r32f) uniform textureBuffer)
+0:?     'g_tTexbis' (layout( r32i) uniform itextureBuffer)
+0:?     'g_tTexbus' (layout( r32ui) uniform utextureBuffer)
 0:?     'anon@0' (layout( row_major std140) uniform block{ uniform int c1,  uniform 2-component vector of int c2,  uniform 3-component vector of int c3,  uniform 4-component vector of int c4,  uniform int o1,  uniform 2-component vector of int o2,  uniform 3-component vector of int o3,  uniform 4-component vector of int o4})
 0:?     'Color' (layout( location=0) out 4-component vector of float)
 0:?     'Depth' ( out float FragDepth)
@@ -86,7 +86,7 @@ gl_FragCoord origin is upper left
 Linked fragment stage:
 
 
-Shader version: 450
+Shader version: 500
 gl_FragCoord origin is upper left
 0:? Sequence
 0:24  Function Definition: @main( ( temp structure{ temp 4-component vector of float Color,  temp float Depth})
@@ -97,7 +97,7 @@ gl_FragCoord origin is upper left
 0:28          'r00' ( temp float)
 0:28          Construct float ( temp float)
 0:?             textureFetch ( temp 4-component vector of float)
-0:28              'g_tTexbfs' (layout( r32f) uniform samplerBuffer)
+0:28              'g_tTexbfs' (layout( r32f) uniform textureBuffer)
 0:28              c1: direct index for structure ( uniform int)
 0:28                'anon@0' (layout( row_major std140) uniform block{ uniform int c1,  uniform 2-component vector of int c2,  uniform 3-component vector of int c3,  uniform 4-component vector of int c4,  uniform int o1,  uniform 2-component vector of int o2,  uniform 3-component vector of int o3,  uniform 4-component vector of int o4})
 0:28                Constant:
@@ -107,7 +107,7 @@ gl_FragCoord origin is upper left
 0:29          'r01' ( temp int)
 0:29          Construct int ( temp int)
 0:?             textureFetch ( temp 4-component vector of int)
-0:29              'g_tTexbis' (layout( r32i) uniform isamplerBuffer)
+0:29              'g_tTexbis' (layout( r32i) uniform itextureBuffer)
 0:29              c1: direct index for structure ( uniform int)
 0:29                'anon@0' (layout( row_major std140) uniform block{ uniform int c1,  uniform 2-component vector of int c2,  uniform 3-component vector of int c3,  uniform 4-component vector of int c4,  uniform int o1,  uniform 2-component vector of int o2,  uniform 3-component vector of int o3,  uniform 4-component vector of int o4})
 0:29                Constant:
@@ -117,7 +117,7 @@ gl_FragCoord origin is upper left
 0:30          'r02' ( temp uint)
 0:30          Construct uint ( temp uint)
 0:?             textureFetch ( temp 4-component vector of uint)
-0:30              'g_tTexbus' (layout( r32ui) uniform usamplerBuffer)
+0:30              'g_tTexbus' (layout( r32ui) uniform utextureBuffer)
 0:30              c1: direct index for structure ( uniform int)
 0:30                'anon@0' (layout( row_major std140) uniform block{ uniform int c1,  uniform 2-component vector of int c2,  uniform 3-component vector of int c3,  uniform 4-component vector of int c4,  uniform int o1,  uniform 2-component vector of int o2,  uniform 3-component vector of int o3,  uniform 4-component vector of int o4})
 0:30                Constant:
@@ -161,67 +161,68 @@ gl_FragCoord origin is upper left
 0:24            Constant:
 0:24              1 (const int)
 0:?   Linker Objects
-0:?     'g_tTexbfs_test' (layout( binding=0 r32f) uniform samplerBuffer)
-0:?     'g_tTexbfs' (layout( r32f) uniform samplerBuffer)
-0:?     'g_tTexbis' (layout( r32i) uniform isamplerBuffer)
-0:?     'g_tTexbus' (layout( r32ui) uniform usamplerBuffer)
+0:?     'g_tTexbfs_test' (layout( binding=0 r32f) uniform textureBuffer)
+0:?     'g_tTexbfs' (layout( r32f) uniform textureBuffer)
+0:?     'g_tTexbis' (layout( r32i) uniform itextureBuffer)
+0:?     'g_tTexbus' (layout( r32ui) uniform utextureBuffer)
 0:?     'anon@0' (layout( row_major std140) uniform block{ uniform int c1,  uniform 2-component vector of int c2,  uniform 3-component vector of int c3,  uniform 4-component vector of int c4,  uniform int o1,  uniform 2-component vector of int o2,  uniform 3-component vector of int o3,  uniform 4-component vector of int o4})
 0:?     'Color' (layout( location=0) out 4-component vector of float)
 0:?     'Depth' ( out float FragDepth)
 
 // Module Version 10000
 // Generated by (magic number): 80001
-// Id's are bound by 81
+// Id's are bound by 75
 
                               Capability Shader
                               Capability SampledBuffer
                1:             ExtInstImport  "GLSL.std.450"
                               MemoryModel Logical GLSL450
-                              EntryPoint Fragment 4  "main" 73 77
+                              EntryPoint Fragment 4  "main" 67 71
                               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  "r00"
-                              Name 17  "g_tTexbfs"
-                              Name 23  "$Global"
-                              MemberName 23($Global) 0  "c1"
-                              MemberName 23($Global) 1  "c2"
-                              MemberName 23($Global) 2  "c3"
-                              MemberName 23($Global) 3  "c4"
-                              MemberName 23($Global) 4  "o1"
-                              MemberName 23($Global) 5  "o2"
-                              MemberName 23($Global) 6  "o3"
-                              MemberName 23($Global) 7  "o4"
-                              Name 25  ""
-                              Name 34  "r01"
-                              Name 38  "g_tTexbis"
-                              Name 47  "r02"
-                              Name 51  "g_tTexbus"
-                              Name 60  "psout"
-                              Name 70  "flattenTemp"
-                              Name 73  "Color"
-                              Name 77  "Depth"
-                              Name 80  "g_tTexbfs_test"
-                              Decorate 17(g_tTexbfs) DescriptorSet 0
-                              MemberDecorate 23($Global) 0 Offset 0
-                              MemberDecorate 23($Global) 1 Offset 8
-                              MemberDecorate 23($Global) 2 Offset 16
-                              MemberDecorate 23($Global) 3 Offset 32
-                              MemberDecorate 23($Global) 4 Offset 48
-                              MemberDecorate 23($Global) 5 Offset 56
-                              MemberDecorate 23($Global) 6 Offset 64
-                              MemberDecorate 23($Global) 7 Offset 80
-                              Decorate 23($Global) Block
-                              Decorate 25 DescriptorSet 0
-                              Decorate 38(g_tTexbis) DescriptorSet 0
-                              Decorate 51(g_tTexbus) DescriptorSet 0
-                              Decorate 73(Color) Location 0
-                              Decorate 77(Depth) BuiltIn FragDepth
-                              Decorate 80(g_tTexbfs_test) DescriptorSet 0
-                              Decorate 80(g_tTexbfs_test) Binding 0
+                              Name 16  "g_tTexbfs"
+                              Name 22  "$Global"
+                              MemberName 22($Global) 0  "c1"
+                              MemberName 22($Global) 1  "c2"
+                              MemberName 22($Global) 2  "c3"
+                              MemberName 22($Global) 3  "c4"
+                              MemberName 22($Global) 4  "o1"
+                              MemberName 22($Global) 5  "o2"
+                              MemberName 22($Global) 6  "o3"
+                              MemberName 22($Global) 7  "o4"
+                              Name 24  ""
+                              Name 32  "r01"
+                              Name 35  "g_tTexbis"
+                              Name 43  "r02"
+                              Name 46  "g_tTexbus"
+                              Name 54  "psout"
+                              Name 64  "flattenTemp"
+                              Name 67  "Color"
+                              Name 71  "Depth"
+                              Name 74  "g_tTexbfs_test"
+                              Decorate 16(g_tTexbfs) DescriptorSet 0
+                              MemberDecorate 22($Global) 0 Offset 0
+                              MemberDecorate 22($Global) 1 Offset 8
+                              MemberDecorate 22($Global) 2 Offset 16
+                              MemberDecorate 22($Global) 3 Offset 32
+                              MemberDecorate 22($Global) 4 Offset 48
+                              MemberDecorate 22($Global) 5 Offset 56
+                              MemberDecorate 22($Global) 6 Offset 64
+                              MemberDecorate 22($Global) 7 Offset 80
+                              Decorate 22($Global) Block
+                              Decorate 24 DescriptorSet 0
+                              Decorate 35(g_tTexbis) DescriptorSet 0
+                              Decorate 46(g_tTexbus) DescriptorSet 0
+                              Decorate 67(Color) Location 0
+                              Decorate 71(Depth) BuiltIn FragDepth
+                              Decorate 74(g_tTexbfs_test) DescriptorSet 0
+                              Decorate 74(g_tTexbfs_test) Binding 0
                2:             TypeVoid
                3:             TypeFunction 2
                6:             TypeFloat 32
@@ -230,84 +231,78 @@ gl_FragCoord origin is upper left
                9:             TypeFunction 8(PS_OUTPUT)
               12:             TypePointer Function 6(float)
               14:             TypeImage 6(float) Buffer sampled format:R32f
-              15:             TypeSampledImage 14
-              16:             TypePointer UniformConstant 15
-   17(g_tTexbfs):     16(ptr) Variable UniformConstant
-              19:             TypeInt 32 1
-              20:             TypeVector 19(int) 2
-              21:             TypeVector 19(int) 3
-              22:             TypeVector 19(int) 4
-     23($Global):             TypeStruct 19(int) 20(ivec2) 21(ivec3) 22(ivec4) 19(int) 20(ivec2) 21(ivec3) 22(ivec4)
-              24:             TypePointer Uniform 23($Global)
-              25:     24(ptr) Variable Uniform
-              26:     19(int) Constant 0
-              27:             TypePointer Uniform 19(int)
-              33:             TypePointer Function 19(int)
-              35:             TypeImage 19(int) Buffer sampled format:R32i
-              36:             TypeSampledImage 35
-              37:             TypePointer UniformConstant 36
-   38(g_tTexbis):     37(ptr) Variable UniformConstant
-              45:             TypeInt 32 0
-              46:             TypePointer Function 45(int)
-              48:             TypeImage 45(int) Buffer sampled format:R32ui
-              49:             TypeSampledImage 48
-              50:             TypePointer UniformConstant 49
-   51(g_tTexbus):     50(ptr) Variable UniformConstant
-              56:             TypeVector 45(int) 4
-              59:             TypePointer Function 8(PS_OUTPUT)
-              61:    6(float) Constant 1065353216
-              62:    7(fvec4) ConstantComposite 61 61 61 61
-              63:             TypePointer Function 7(fvec4)
-              65:     19(int) Constant 1
-              72:             TypePointer Output 7(fvec4)
-       73(Color):     72(ptr) Variable Output
-              76:             TypePointer Output 6(float)
-       77(Depth):     76(ptr) Variable Output
-80(g_tTexbfs_test):     16(ptr) Variable UniformConstant
+              15:             TypePointer UniformConstant 14
+   16(g_tTexbfs):     15(ptr) Variable UniformConstant
+              18:             TypeInt 32 1
+              19:             TypeVector 18(int) 2
+              20:             TypeVector 18(int) 3
+              21:             TypeVector 18(int) 4
+     22($Global):             TypeStruct 18(int) 19(ivec2) 20(ivec3) 21(ivec4) 18(int) 19(ivec2) 20(ivec3) 21(ivec4)
+              23:             TypePointer Uniform 22($Global)
+              24:     23(ptr) Variable Uniform
+              25:     18(int) Constant 0
+              26:             TypePointer Uniform 18(int)
+              31:             TypePointer Function 18(int)
+              33:             TypeImage 18(int) Buffer sampled format:R32i
+              34:             TypePointer UniformConstant 33
+   35(g_tTexbis):     34(ptr) Variable UniformConstant
+              41:             TypeInt 32 0
+              42:             TypePointer Function 41(int)
+              44:             TypeImage 41(int) Buffer sampled format:R32ui
+              45:             TypePointer UniformConstant 44
+   46(g_tTexbus):     45(ptr) Variable UniformConstant
+              50:             TypeVector 41(int) 4
+              53:             TypePointer Function 8(PS_OUTPUT)
+              55:    6(float) Constant 1065353216
+              56:    7(fvec4) ConstantComposite 55 55 55 55
+              57:             TypePointer Function 7(fvec4)
+              59:     18(int) Constant 1
+              66:             TypePointer Output 7(fvec4)
+       67(Color):     66(ptr) Variable Output
+              70:             TypePointer Output 6(float)
+       71(Depth):     70(ptr) Variable Output
+74(g_tTexbfs_test):     15(ptr) Variable UniformConstant
          4(main):           2 Function None 3
                5:             Label
- 70(flattenTemp):     59(ptr) Variable Function
-              71:8(PS_OUTPUT) FunctionCall 10(@main()
-                              Store 70(flattenTemp) 71
-              74:     63(ptr) AccessChain 70(flattenTemp) 26
-              75:    7(fvec4) Load 74
-                              Store 73(Color) 75
-              78:     12(ptr) AccessChain 70(flattenTemp) 65
-              79:    6(float) Load 78
-                              Store 77(Depth) 79
+ 64(flattenTemp):     53(ptr) Variable Function
+              65:8(PS_OUTPUT) FunctionCall 10(@main()
+                              Store 64(flattenTemp) 65
+              68:     57(ptr) AccessChain 64(flattenTemp) 25
+              69:    7(fvec4) Load 68
+                              Store 67(Color) 69
+              72:     12(ptr) AccessChain 64(flattenTemp) 59
+              73:    6(float) Load 72
+                              Store 71(Depth) 73
                               Return
                               FunctionEnd
       10(@main():8(PS_OUTPUT) Function None 9
               11:             Label
          13(r00):     12(ptr) Variable Function
-         34(r01):     33(ptr) Variable Function
-         47(r02):     46(ptr) Variable Function
-       60(psout):     59(ptr) Variable Function
-              18:          15 Load 17(g_tTexbfs)
-              28:     27(ptr) AccessChain 25 26
-              29:     19(int) Load 28
-              30:          14 Image 18
-              31:    7(fvec4) ImageFetch 30 29
-              32:    6(float) CompositeExtract 31 0
-                              Store 13(r00) 32
-              39:          36 Load 38(g_tTexbis)
-              40:     27(ptr) AccessChain 25 26
-              41:     19(int) Load 40
-              42:          35 Image 39
-              43:   22(ivec4) ImageFetch 42 41
-              44:     19(int) CompositeExtract 43 0
-                              Store 34(r01) 44
-              52:          49 Load 51(g_tTexbus)
-              53:     27(ptr) AccessChain 25 26
-              54:     19(int) Load 53
-              55:          48 Image 52
-              57:   56(ivec4) ImageFetch 55 54
-              58:     45(int) CompositeExtract 57 0
-                              Store 47(r02) 58
-              64:     63(ptr) AccessChain 60(psout) 26
-                              Store 64 62
-              66:     12(ptr) AccessChain 60(psout) 65
-                              Store 66 61
-              67:8(PS_OUTPUT) Load 60(psout)
-                              ReturnValue 67
+         32(r01):     31(ptr) Variable Function
+         43(r02):     42(ptr) Variable Function
+       54(psout):     53(ptr) Variable Function
+              17:          14 Load 16(g_tTexbfs)
+              27:     26(ptr) AccessChain 24 25
+              28:     18(int) Load 27
+              29:    7(fvec4) ImageFetch 17 28
+              30:    6(float) CompositeExtract 29 0
+                              Store 13(r00) 30
+              36:          33 Load 35(g_tTexbis)
+              37:     26(ptr) AccessChain 24 25
+              38:     18(int) Load 37
+              39:   21(ivec4) ImageFetch 36 38
+              40:     18(int) CompositeExtract 39 0
+                              Store 32(r01) 40
+              47:          44 Load 46(g_tTexbus)
+              48:     26(ptr) AccessChain 24 25
+              49:     18(int) Load 48
+              51:   50(ivec4) ImageFetch 47 49
+              52:     41(int) CompositeExtract 51 0
+                              Store 43(r02) 52
+              58:     57(ptr) AccessChain 54(psout) 25
+                              Store 58 56
+              60:     12(ptr) AccessChain 54(psout) 59
+                              Store 60 55
+              61:8(PS_OUTPUT) Load 54(psout)
+                              ReturnValue 61
                               FunctionEnd

+ 3 - 2
3rdparty/glslang/Test/baseResults/hlsl.load.offset.dx10.frag.out

@@ -1,5 +1,5 @@
 hlsl.load.offset.dx10.frag
-Shader version: 450
+Shader version: 500
 gl_FragCoord origin is upper left
 0:? Sequence
 0:48  Function Definition: @main( ( temp structure{ temp 4-component vector of float Color,  temp float Depth})
@@ -281,7 +281,7 @@ gl_FragCoord origin is upper left
 Linked fragment stage:
 
 
-Shader version: 450
+Shader version: 500
 gl_FragCoord origin is upper left
 0:? Sequence
 0:48  Function Definition: @main( ( temp structure{ temp 4-component vector of float Color,  temp float Depth})
@@ -571,6 +571,7 @@ gl_FragCoord origin is upper left
                               MemoryModel Logical GLSL450
                               EntryPoint Fragment 4  "main" 155 159
                               ExecutionMode 4 OriginUpperLeft
+                              Source HLSL 500
                               Name 4  "main"
                               Name 8  "PS_OUTPUT"
                               MemberName 8(PS_OUTPUT) 0  "Color"

+ 3 - 2
3rdparty/glslang/Test/baseResults/hlsl.load.offsetarray.dx10.frag.out

@@ -1,5 +1,5 @@
 hlsl.load.offsetarray.dx10.frag
-Shader version: 450
+Shader version: 500
 gl_FragCoord origin is upper left
 0:? Sequence
 0:48  Function Definition: @main( ( temp structure{ temp 4-component vector of float Color,  temp float Depth})
@@ -218,7 +218,7 @@ gl_FragCoord origin is upper left
 Linked fragment stage:
 
 
-Shader version: 450
+Shader version: 500
 gl_FragCoord origin is upper left
 0:? Sequence
 0:48  Function Definition: @main( ( temp structure{ temp 4-component vector of float Color,  temp float Depth})
@@ -445,6 +445,7 @@ gl_FragCoord origin is upper left
                               MemoryModel Logical GLSL450
                               EntryPoint Fragment 4  "main" 119 123
                               ExecutionMode 4 OriginUpperLeft
+                              Source HLSL 500
                               Name 4  "main"
                               Name 8  "PS_OUTPUT"
                               MemberName 8(PS_OUTPUT) 0  "Color"

+ 3 - 2
3rdparty/glslang/Test/baseResults/hlsl.load.rwbuffer.dx10.frag.out

@@ -1,5 +1,5 @@
 hlsl.load.rwbuffer.dx10.frag
-Shader version: 450
+Shader version: 500
 gl_FragCoord origin is upper left
 0:? Sequence
 0:22  Function Definition: @main( ( temp structure{ temp 4-component vector of float Color})
@@ -56,7 +56,7 @@ gl_FragCoord origin is upper left
 Linked fragment stage:
 
 
-Shader version: 450
+Shader version: 500
 gl_FragCoord origin is upper left
 0:? Sequence
 0:22  Function Definition: @main( ( temp structure{ temp 4-component vector of float Color})
@@ -119,6 +119,7 @@ gl_FragCoord origin is upper left
                               MemoryModel Logical GLSL450
                               EntryPoint Fragment 4  "main" 54
                               ExecutionMode 4 OriginUpperLeft
+                              Source HLSL 500
                               Name 4  "main"
                               Name 8  "PS_OUTPUT"
                               MemberName 8(PS_OUTPUT) 0  "Color"

+ 3 - 2
3rdparty/glslang/Test/baseResults/hlsl.load.rwtexture.array.dx10.frag.out

@@ -1,5 +1,5 @@
 hlsl.load.rwtexture.array.dx10.frag
-Shader version: 450
+Shader version: 500
 gl_FragCoord origin is upper left
 0:? Sequence
 0:40  Function Definition: @main( ( temp structure{ temp 4-component vector of float Color,  temp float Depth})
@@ -104,7 +104,7 @@ gl_FragCoord origin is upper left
 Linked fragment stage:
 
 
-Shader version: 450
+Shader version: 500
 gl_FragCoord origin is upper left
 0:? Sequence
 0:40  Function Definition: @main( ( temp structure{ temp 4-component vector of float Color,  temp float Depth})
@@ -215,6 +215,7 @@ gl_FragCoord origin is upper left
                               MemoryModel Logical GLSL450
                               EntryPoint Fragment 4  "main" 82 86
                               ExecutionMode 4 OriginUpperLeft
+                              Source HLSL 500
                               Name 4  "main"
                               Name 8  "PS_OUTPUT"
                               MemberName 8(PS_OUTPUT) 0  "Color"

+ 3 - 2
3rdparty/glslang/Test/baseResults/hlsl.load.rwtexture.dx10.frag.out

@@ -1,5 +1,5 @@
 hlsl.load.rwtexture.dx10.frag
-Shader version: 450
+Shader version: 500
 gl_FragCoord origin is upper left
 0:? Sequence
 0:40  Function Definition: @main( ( temp structure{ temp 4-component vector of float Color,  temp float Depth})
@@ -122,7 +122,7 @@ gl_FragCoord origin is upper left
 Linked fragment stage:
 
 
-Shader version: 450
+Shader version: 500
 gl_FragCoord origin is upper left
 0:? Sequence
 0:40  Function Definition: @main( ( temp structure{ temp 4-component vector of float Color,  temp float Depth})
@@ -251,6 +251,7 @@ gl_FragCoord origin is upper left
                               MemoryModel Logical GLSL450
                               EntryPoint Fragment 4  "main" 104 108
                               ExecutionMode 4 OriginUpperLeft
+                              Source HLSL 500
                               Name 4  "main"
                               Name 8  "PS_OUTPUT"
                               MemberName 8(PS_OUTPUT) 0  "Color"

+ 3 - 2
3rdparty/glslang/Test/baseResults/hlsl.logical.binary.frag.out

@@ -1,5 +1,5 @@
 hlsl.logical.binary.frag
-Shader version: 450
+Shader version: 500
 gl_FragCoord origin is upper left
 0:? Sequence
 0:12  Function Definition: @main( ( temp structure{ temp 4-component vector of float Color})
@@ -65,7 +65,7 @@ gl_FragCoord origin is upper left
 Linked fragment stage:
 
 
-Shader version: 450
+Shader version: 500
 gl_FragCoord origin is upper left
 0:? Sequence
 0:12  Function Definition: @main( ( temp structure{ temp 4-component vector of float Color})
@@ -136,6 +136,7 @@ gl_FragCoord origin is upper left
                               MemoryModel Logical GLSL450
                               EntryPoint Fragment 4  "main" 59
                               ExecutionMode 4 OriginUpperLeft
+                              Source HLSL 500
                               Name 4  "main"
                               Name 8  "PS_OUTPUT"
                               MemberName 8(PS_OUTPUT) 0  "Color"

Některé soubory nejsou zobrazeny, neboť je v těchto rozdílových datech změněno mnoho souborů