Lines Matching refs:glslang
44 #include "glslang/Public/ResourceLimits.h"
47 #include "./../glslang/Include/ShHandle.h"
48 #include "./../glslang/Public/ShaderLang.h"
49 #include "../glslang/MachineIndependent/localintermediate.h"
66 #include "../glslang/OSDependent/osinclude.h"
69 #include "glslang/build_info.h"
71 #include "glslang/glsl_intrinsic_header.h"
154 std::vector<std::unique_ptr<glslang::TWorkItem>> WorkItems;
159 // Parse either a .conf file provided by the user or the default from glslang::DefaultTBuiltInResource
193 glslang::EShClient Client = glslang::EShClientNone; // will stay EShClientNone if only validating
194 glslang::EShTargetClientVersion ClientVersion; // not valid until Client is set
195 glslang::EShTargetLanguage TargetLanguage = glslang::EShTargetNone;
196 glslang::EShTargetLanguageVersion TargetVersion; // not valid until TargetLanguage is set
209 std::array<std::array<unsigned int, EShLangCount>, glslang::EResCount> baseBinding;
210 std::array<std::array<TPerSetBaseBinding, EShLangCount>, glslang::EResCount> baseBindingForSet;
213 std::vector<std::pair<std::string, glslang::TBlockStorageClass>> blockStorageOverrides;
355 void ProcessBindingBase(int& argc, char**& argv, glslang::TResourceType res)
440 void ProcessBlockStorage(int& argc, char**& argv, std::vector<std::pair<std::string, glslang::TBlockStorageClass>>& storage)
445 glslang::TBlockStorageClass blockStorage = glslang::EbsNone;
449 blockStorage = glslang::EbsUniform;
451 blockStorage = glslang::EbsStorageBuffer;
453 blockStorage = glslang::EbsPushConstant;
552 void ProcessArguments(std::vector<std::unique_ptr<glslang::TWorkItem>>& workItems, int argc, char* argv[])
554 for (int res = 0; res < glslang::EResCount; ++res)
588 if (Client == glslang::EShClientNone)
589 ClientVersion = glslang::EShTargetVulkan_1_0;
590 Client = glslang::EShClientVulkan;
598 if (Client == glslang::EShClientNone)
599 ClientVersion = glslang::EShTargetOpenGL_450;
600 Client = glslang::EShClientOpenGL;
788 ProcessBindingBase(argc, argv, glslang::EResImage);
792 ProcessBindingBase(argc, argv, glslang::EResSampler);
796 ProcessBindingBase(argc, argv, glslang::EResUav);
800 ProcessBindingBase(argc, argv, glslang::EResTexture);
807 ProcessBindingBase(argc, argv, glslang::EResUbo);
811 ProcessBindingBase(argc, argv, glslang::EResSsbo);
832 ClientVersion = glslang::EShTargetVulkan_1_0;
835 ClientVersion = glslang::EShTargetVulkan_1_1;
838 ClientVersion = glslang::EShTargetVulkan_1_2;
841 ClientVersion = glslang::EShTargetVulkan_1_3;
844 ClientVersion = glslang::EShTargetOpenGL_450;
846 TargetLanguage = glslang::EShTargetSpv;
847 TargetVersion = glslang::EShTargetSpv_1_0;
849 TargetLanguage = glslang::EShTargetSpv;
850 TargetVersion = glslang::EShTargetSpv_1_1;
852 TargetLanguage = glslang::EShTargetSpv;
853 TargetVersion = glslang::EShTargetSpv_1_2;
855 TargetLanguage = glslang::EShTargetSpv;
856 TargetVersion = glslang::EShTargetSpv_1_3;
858 TargetLanguage = glslang::EShTargetSpv;
859 TargetVersion = glslang::EShTargetSpv_1_4;
861 TargetLanguage = glslang::EShTargetSpv;
862 TargetVersion = glslang::EShTargetSpv_1_5;
864 TargetLanguage = glslang::EShTargetSpv;
865 TargetVersion = glslang::EShTargetSpv_1_6;
1060 workItems.push_back(std::unique_ptr<glslang::TWorkItem>(new glslang::TWorkItem(name)));
1090 if ((Options & EOptionReadHlsl) && (Client == glslang::EShClientOpenGL)) {
1095 if (TargetLanguage == glslang::EShTargetNone) {
1097 case glslang::EShTargetVulkan_1_0:
1098 TargetLanguage = glslang::EShTargetSpv;
1099 TargetVersion = glslang::EShTargetSpv_1_0;
1101 case glslang::EShTargetVulkan_1_1:
1102 TargetLanguage = glslang::EShTargetSpv;
1103 TargetVersion = glslang::EShTargetSpv_1_3;
1105 case glslang::EShTargetVulkan_1_2:
1106 TargetLanguage = glslang::EShTargetSpv;
1107 TargetVersion = glslang::EShTargetSpv_1_5;
1109 case glslang::EShTargetVulkan_1_3:
1110 TargetLanguage = glslang::EShTargetSpv;
1111 TargetVersion = glslang::EShTargetSpv_1_6;
1113 case glslang::EShTargetOpenGL_450:
1114 TargetLanguage = glslang::EShTargetSpv;
1115 TargetVersion = glslang::EShTargetSpv_1_0;
1121 if (TargetLanguage != glslang::EShTargetNone && Client == glslang::EShClientNone)
1167 void CompileShaders(glslang::TWorklist& worklist)
1173 glslang::TWorkItem* workItem;
1304 std::list<glslang::TShader*> shaders;
1319 glslang::TProgram& program = *new glslang::TProgram;
1326 glslang::TShader* shader = new glslang::TShader(compUnit.stage);
1355 for (int r = 0; r < glslang::EResCount; ++r) {
1356 const glslang::TResourceType res = glslang::TResourceType(r);
1427 shader->setEnvInput((Options & EOptionReadHlsl) ? glslang::EShSourceHlsl
1428 : glslang::EShSourceGlsl,
1508 std::vector<glslang::TIntermediate*> intermediates;
1525 glslang::SpvOptions spvOptions;
1541 glslang::GlslangToSpv(*intermediate, spirv, &logger, &spvOptions);
1549 if (!glslang::OutputSpvHex(spirv, filename, variableName))
1552 if (!glslang::OutputSpvBin(spirv, filename))
1597 void CompileAndLinkShaderFiles(glslang::TWorklist& Worklist)
1618 glslang::TWorkItem* workItem;
1637 glslang::OS_DumpMemoryCounters();
1648 glslang::TWorklist workList;
1649 std::for_each(WorkItems.begin(), WorkItems.end(), [&workList](std::unique_ptr<glslang::TWorkItem>& item) {
1661 printf("%d:%d.%d.%d%s\n", glslang::GetSpirvGeneratorVersion(), GLSLANG_VERSION_MAJOR, GLSLANG_VERSION_MINOR,
1666 printf("Glslang Version: %d:%d.%d.%d%s\n", glslang::GetSpirvGeneratorVersion(), GLSLANG_VERSION_MAJOR,
1668 printf("ESSL Version: %s\n", glslang::GetEsslVersionString());
1669 printf("GLSL Version: %s\n", glslang::GetGlslVersionString());
1671 glslang::GetSpirvVersion(spirvVersion);
1674 printf("Khronos Tool ID %d\n", glslang::GetKhronosToolId());
1675 printf("SPIR-V Generator Version %d\n", glslang::GetSpirvGeneratorVersion());
1687 WorkItems.push_back(std::unique_ptr<glslang::TWorkItem>{new glslang::TWorkItem("stdin")});
1702 glslang::InitializeProcess();
1703 glslang::InitializeProcess(); // also test reference counting of users
1704 glslang::InitializeProcess(); // also test reference counting of users
1705 glslang::FinalizeProcess(); // also test reference counting of users
1706 glslang::FinalizeProcess(); // also test reference counting of users
1708 glslang::FinalizeProcess();
1759 glslang::OS_DumpMemoryCounters();
1763 glslang::OS_DumpMemoryCounters();
1890 glslang::OS_DumpMemoryCounters();
1905 printf("Usage: glslang [option]... [file]...\n"
1976 " -i intermediate tree (glslang AST) is printed out\n"