Add built-in constants through version 440. Some still need to be consumed when initializing the symbol table.
git-svn-id: https://cvs.khronos.org/svn/repos/ogl/trunk/ecosystem/public/sdk/tools/glslang@23634 e7fa87d3-cd2b-0410-9028-fcbf551c1848
diff --git a/StandAlone/StandAlone.cpp b/StandAlone/StandAlone.cpp
index bda11ba..5a4ebb0 100644
--- a/StandAlone/StandAlone.cpp
+++ b/StandAlone/StandAlone.cpp
@@ -107,37 +107,95 @@
// - parsing this string for the case where the user didn't supply one
// - dumping out a template for user construction of a config file
//
-const char* DefaultConfig =
-"MaxLights 32\n"
-"MaxClipPlanes 6\n"
-"MaxTextureUnits 32\n"
-"MaxTextureCoords 32\n"
-"MaxVertexAttribs 64\n"
-"MaxVertexUniformComponents 4096\n"
-"MaxVaryingFloats 64\n"
-"MaxVertexTextureImageUnits 32\n"
-"MaxCombinedTextureImageUnits 32\n"
-"MaxTextureImageUnits 32\n"
-"MaxFragmentUniformComponents 4096\n"
-"MaxDrawBuffers 32\n"
-"MaxVertexUniformVectors 128\n"
-"MaxVaryingVectors 8\n"
-"MaxFragmentUniformVectors 16\n"
-"MaxVertexOutputVectors 16\n"
-"MaxFragmentInputVectors 15\n"
-"MinProgramTexelOffset -8\n"
-"MaxProgramTexelOffset 7\n"
-"MaxClipDistances 8\n"
-"nonInductiveForLoops 1\n"
-"whileLoops 1\n"
-"doWhileLoops 1\n"
-"generalUniformIndexing 1\n"
-"generalAttributeMatrixVectorIndexing 1\n"
-"generalVaryingIndexing 1\n"
-"generalSamplerIndexing 1\n"
-"generalVariableIndexing 1\n"
-"generalConstantMatrixVectorIndexing 1\n"
-;
+const char* DefaultConfig =
+ "MaxLights 32\n"
+ "MaxClipPlanes 6\n"
+ "MaxTextureUnits 32\n"
+ "MaxTextureCoords 32\n"
+ "MaxVertexAttribs 64\n"
+ "MaxVertexUniformComponents 4096\n"
+ "MaxVaryingFloats 64\n"
+ "MaxVertexTextureImageUnits 32\n"
+ "MaxCombinedTextureImageUnits 32\n"
+ "MaxTextureImageUnits 32\n"
+ "MaxFragmentUniformComponents 4096\n"
+ "MaxDrawBuffers 32\n"
+ "MaxVertexUniformVectors 128\n"
+ "MaxVaryingVectors 8\n"
+ "MaxFragmentUniformVectors 16\n"
+ "MaxVertexOutputVectors 16\n"
+ "MaxFragmentInputVectors 15\n"
+ "MinProgramTexelOffset -8\n"
+ "MaxProgramTexelOffset 7\n"
+ "MaxClipDistances 8\n"
+ "MaxComputeWorkGroupCountX 65535\n"
+ "MaxComputeWorkGroupCountY 65535\n"
+ "MaxComputeWorkGroupCountZ 65535\n"
+ "MaxComputeWorkGroupSizeX 1024\n"
+ "MaxComputeWorkGroupSizeX 1024\n"
+ "MaxComputeWorkGroupSizeZ 64\n"
+ "MaxComputeUniformComponents 1024\n"
+ "MaxComputeTextureImageUnits 16\n"
+ "MaxComputeImageUniforms 8\n"
+ "MaxComputeAtomicCounters 8\n"
+ "MaxComputeAtomicCounterBuffers 1\n"
+ "MaxVaryingComponents 60\n"
+ "MaxVertexOutputComponents 64\n"
+ "MaxGeometryInputComponents 64\n"
+ "MaxGeometryOutputComponents 128\n"
+ "MaxFragmentInputComponents 128\n"
+ "MaxImageUnits 8\n"
+ "MaxCombinedImageUnitsAndFragmentOutputs 8\n"
+ "MaxImageSamples 0\n"
+ "MaxVertexImageUniforms 0\n"
+ "MaxTessControlImageUniforms 0\n"
+ "MaxTessEvaluationImageUniforms 0\n"
+ "MaxGeometryImageUniforms 0\n"
+ "MaxFragmentImageUniforms 8\n"
+ "MaxCombinedImageUniforms 8\n"
+ "MaxGeometryTextureImageUnits 16\n"
+ "MaxGeometryOutputVertices 256\n"
+ "MaxGeometryTotalOutputComponents 1024\n"
+ "MaxGeometryUniformComponents 1024\n"
+ "MaxGeometryVaryingComponents 64\n"
+ "MaxTessControlInputComponents 128\n"
+ "MaxTessControlOutputComponents 128\n"
+ "MaxTessControlTextureImageUnits 16\n"
+ "MaxTessControlUniformComponents 1024\n"
+ "MaxTessControlTotalOutputComponents 4096\n"
+ "MaxTessEvaluationInputComponents 128\n"
+ "MaxTessEvaluationOutputComponents 128\n"
+ "MaxTessEvaluationTextureImageUnits 16\n"
+ "MaxTessEvaluationUniformComponents 1024\n"
+ "MaxTessPatchComponents 120\n"
+ "MaxPatchVertices 32\n"
+ "MaxTessGenLevel 64\n"
+ "MaxViewports 16\n"
+ "MaxVertexAtomicCounters 0\n"
+ "MaxTessControlAtomicCounters 0\n"
+ "MaxTessEvaluationAtomicCounters 0\n"
+ "MaxGeometryAtomicCounters 0\n"
+ "MaxFragmentAtomicCounters 8\n"
+ "MaxCombinedAtomicCounters 8\n"
+ "MaxAtomicCounterBindings 1\n"
+ "MaxVertexAtomicCounterBuffers 0\n"
+ "MaxTessControlAtomicCounterBuffers 0\n"
+ "MaxTessEvaluationAtomicCounterBuffers 0\n"
+ "MaxGeometryAtomicCounterBuffers 0\n"
+ "MaxFragmentAtomicCounterBuffers 1\n"
+ "MaxCombinedAtomicCounterBuffers 1\n"
+ "MaxAtomicCounterBufferSize 16384\n"
+
+ "nonInductiveForLoops 1\n"
+ "whileLoops 1\n"
+ "doWhileLoops 1\n"
+ "generalUniformIndexing 1\n"
+ "generalAttributeMatrixVectorIndexing 1\n"
+ "generalVaryingIndexing 1\n"
+ "generalSamplerIndexing 1\n"
+ "generalVariableIndexing 1\n"
+ "generalConstantMatrixVectorIndexing 1\n"
+ ;
//
// Parse either a .conf file provided by the user or the default string above.
@@ -211,6 +269,121 @@
Resources.maxProgramTexelOffset = value;
else if (strcmp(token, "MaxClipDistances") == 0)
Resources.maxClipDistances = value;
+ else if (strcmp(token, "MaxComputeWorkGroupCountX") == 0)
+ Resources.maxComputeWorkGroupCountX = value;
+ else if (strcmp(token, "MaxComputeWorkGroupCountY") == 0)
+ Resources.maxComputeWorkGroupCountY = value;
+ else if (strcmp(token, "MaxComputeWorkGroupCountZ") == 0)
+ Resources.maxComputeWorkGroupCountZ = value;
+ else if (strcmp(token, "MaxComputeWorkGroupSizeX") == 0)
+ Resources.maxComputeWorkGroupSizeX = value;
+ else if (strcmp(token, "MaxComputeWorkGroupSizeY") == 0)
+ Resources.maxComputeWorkGroupSizeY = value;
+ else if (strcmp(token, "MaxComputeWorkGroupSizeZ") == 0)
+ Resources.maxComputeWorkGroupSizeZ = value;
+ else if (strcmp(token, "MaxComputeUniformComponents") == 0)
+ Resources.maxComputeUniformComponents = value;
+ else if (strcmp(token, "MaxComputeTextureImageUnits") == 0)
+ Resources.maxComputeTextureImageUnits = value;
+ else if (strcmp(token, "MaxComputeImageUniforms") == 0)
+ Resources.maxComputeImageUniforms = value;
+ else if (strcmp(token, "MaxComputeAtomicCounters") == 0)
+ Resources.maxComputeAtomicCounters = value;
+ else if (strcmp(token, "MaxComputeAtomicCounterBuffers") == 0)
+ Resources.maxComputeAtomicCounterBuffers = value;
+ else if (strcmp(token, "MaxVaryingComponents") == 0)
+ Resources.maxVaryingComponents = value;
+ else if (strcmp(token, "MaxVertexOutputComponents") == 0)
+ Resources.maxVertexOutputComponents = value;
+ else if (strcmp(token, "MaxGeometryInputComponents") == 0)
+ Resources.maxGeometryInputComponents = value;
+ else if (strcmp(token, "MaxGeometryOutputComponents") == 0)
+ Resources.maxGeometryOutputComponents = value;
+ else if (strcmp(token, "MaxFragmentInputComponents") == 0)
+ Resources.maxFragmentInputComponents = value;
+ else if (strcmp(token, "MaxImageUnits") == 0)
+ Resources.maxImageUnits = value;
+ else if (strcmp(token, "MaxCombinedImageUnitsAndFragmentOutputs") == 0)
+ Resources.maxCombinedImageUnitsAndFragmentOutputs = value;
+ else if (strcmp(token, "MaxImageSamples") == 0)
+ Resources.maxImageSamples = value;
+ else if (strcmp(token, "MaxVertexImageUniforms") == 0)
+ Resources.maxVertexImageUniforms = value;
+ else if (strcmp(token, "MaxTessControlImageUniforms") == 0)
+ Resources.maxTessControlImageUniforms = value;
+ else if (strcmp(token, "MaxTessEvaluationImageUniforms") == 0)
+ Resources.maxTessEvaluationImageUniforms = value;
+ else if (strcmp(token, "MaxGeometryImageUniforms") == 0)
+ Resources.maxGeometryImageUniforms = value;
+ else if (strcmp(token, "MaxFragmentImageUniforms") == 0)
+ Resources.maxFragmentImageUniforms = value;
+ else if (strcmp(token, "MaxCombinedImageUniforms") == 0)
+ Resources.maxCombinedImageUniforms = value;
+ else if (strcmp(token, "MaxGeometryTextureImageUnits") == 0)
+ Resources.maxGeometryTextureImageUnits = value;
+ else if (strcmp(token, "MaxGeometryOutputVertices") == 0)
+ Resources.maxGeometryOutputVertices = value;
+ else if (strcmp(token, "MaxGeometryTotalOutputComponents") == 0)
+ Resources.maxGeometryTotalOutputComponents = value;
+ else if (strcmp(token, "MaxGeometryUniformComponents") == 0)
+ Resources.maxGeometryUniformComponents = value;
+ else if (strcmp(token, "MaxGeometryVaryingComponents") == 0)
+ Resources.maxGeometryVaryingComponents = value;
+ else if (strcmp(token, "MaxTessControlInputComponents") == 0)
+ Resources.maxTessControlInputComponents = value;
+ else if (strcmp(token, "MaxTessControlOutputComponents") == 0)
+ Resources.maxTessControlOutputComponents = value;
+ else if (strcmp(token, "MaxTessControlTextureImageUnits") == 0)
+ Resources.maxTessControlTextureImageUnits = value;
+ else if (strcmp(token, "MaxTessControlUniformComponents") == 0)
+ Resources.maxTessControlUniformComponents = value;
+ else if (strcmp(token, "MaxTessControlTotalOutputComponents") == 0)
+ Resources.maxTessControlTotalOutputComponents = value;
+ else if (strcmp(token, "MaxTessEvaluationInputComponents") == 0)
+ Resources.maxTessEvaluationInputComponents = value;
+ else if (strcmp(token, "MaxTessEvaluationOutputComponents") == 0)
+ Resources.maxTessEvaluationOutputComponents = value;
+ else if (strcmp(token, "MaxTessEvaluationTextureImageUnits") == 0)
+ Resources.maxTessEvaluationTextureImageUnits = value;
+ else if (strcmp(token, "MaxTessEvaluationUniformComponents") == 0)
+ Resources.maxTessEvaluationUniformComponents = value;
+ else if (strcmp(token, "MaxTessPatchComponents") == 0)
+ Resources.maxTessPatchComponents = value;
+ else if (strcmp(token, "MaxPatchVertices") == 0)
+ Resources.maxPatchVertices = value;
+ else if (strcmp(token, "MaxTessGenLevel") == 0)
+ Resources.maxTessGenLevel = value;
+ else if (strcmp(token, "MaxViewports") == 0)
+ Resources.maxViewports = value;
+ else if (strcmp(token, "MaxVertexAtomicCounters") == 0)
+ Resources.maxVertexAtomicCounters = value;
+ else if (strcmp(token, "MaxTessControlAtomicCounters") == 0)
+ Resources.maxTessControlAtomicCounters = value;
+ else if (strcmp(token, "MaxTessEvaluationAtomicCounters") == 0)
+ Resources.maxTessEvaluationAtomicCounters = value;
+ else if (strcmp(token, "MaxGeometryAtomicCounters") == 0)
+ Resources.maxGeometryAtomicCounters = value;
+ else if (strcmp(token, "MaxFragmentAtomicCounters") == 0)
+ Resources.maxFragmentAtomicCounters = value;
+ else if (strcmp(token, "MaxCombinedAtomicCounters") == 0)
+ Resources.maxCombinedAtomicCounters = value;
+ else if (strcmp(token, "MaxAtomicCounterBindings") == 0)
+ Resources.maxAtomicCounterBindings = value;
+ else if (strcmp(token, "MaxVertexAtomicCounterBuffers") == 0)
+ Resources.maxVertexAtomicCounterBuffers = value;
+ else if (strcmp(token, "MaxTessControlAtomicCounterBuffers") == 0)
+ Resources.maxTessControlAtomicCounterBuffers = value;
+ else if (strcmp(token, "MaxTessEvaluationAtomicCounterBuffers") == 0)
+ Resources.maxTessEvaluationAtomicCounterBuffers = value;
+ else if (strcmp(token, "MaxGeometryAtomicCounterBuffers") == 0)
+ Resources.maxGeometryAtomicCounterBuffers = value;
+ else if (strcmp(token, "MaxFragmentAtomicCounterBuffers") == 0)
+ Resources.maxFragmentAtomicCounterBuffers = value;
+ else if (strcmp(token, "MaxCombinedAtomicCounterBuffers") == 0)
+ Resources.maxCombinedAtomicCounterBuffers = value;
+ else if (strcmp(token, "MaxAtomicCounterBufferSize") == 0)
+ Resources.maxAtomicCounterBufferSize = value;
+
else if (strcmp(token, "nonInductiveForLoops") == 0)
Resources.limits.nonInductiveForLoops = (value != 0);
else if (strcmp(token, "whileLoops") == 0)