Merge pull request #2851 from chaoticbob/version-override
Added GLSL version override functionality and CLI
This commit is contained in:
commit
f1d286fcc2
@ -192,6 +192,9 @@ glslang::EShTargetClientVersion ClientVersion; // not valid until Client i
|
|||||||
glslang::EShTargetLanguage TargetLanguage = glslang::EShTargetNone;
|
glslang::EShTargetLanguage TargetLanguage = glslang::EShTargetNone;
|
||||||
glslang::EShTargetLanguageVersion TargetVersion; // not valid until TargetLanguage is set
|
glslang::EShTargetLanguageVersion TargetVersion; // not valid until TargetLanguage is set
|
||||||
|
|
||||||
|
// GLSL version
|
||||||
|
int GlslVersion = 0; // GLSL version specified on CLI, overrides #version in shader source
|
||||||
|
|
||||||
std::vector<std::string> Processes; // what should be recorded by OpModuleProcessed, or equivalent
|
std::vector<std::string> Processes; // what should be recorded by OpModuleProcessed, or equivalent
|
||||||
|
|
||||||
// Per descriptor-set binding base data
|
// Per descriptor-set binding base data
|
||||||
@ -654,6 +657,48 @@ void ProcessArguments(std::vector<std::unique_ptr<glslang::TWorkItem>>& workItem
|
|||||||
lowerword == "flatten-uniform-array" ||
|
lowerword == "flatten-uniform-array" ||
|
||||||
lowerword == "fua") {
|
lowerword == "fua") {
|
||||||
Options |= EOptionFlattenUniformArrays;
|
Options |= EOptionFlattenUniformArrays;
|
||||||
|
} else if (lowerword == "glsl-version") {
|
||||||
|
if (argc > 1) {
|
||||||
|
if (strcmp(argv[1], "100") == 0) {
|
||||||
|
GlslVersion = 100;
|
||||||
|
} else if (strcmp(argv[1], "110") == 0) {
|
||||||
|
GlslVersion = 110;
|
||||||
|
} else if (strcmp(argv[1], "120") == 0) {
|
||||||
|
GlslVersion = 120;
|
||||||
|
} else if (strcmp(argv[1], "130") == 0) {
|
||||||
|
GlslVersion = 130;
|
||||||
|
} else if (strcmp(argv[1], "140") == 0) {
|
||||||
|
GlslVersion = 140;
|
||||||
|
} else if (strcmp(argv[1], "150") == 0) {
|
||||||
|
GlslVersion = 150;
|
||||||
|
} else if (strcmp(argv[1], "300es") == 0) {
|
||||||
|
GlslVersion = 300;
|
||||||
|
} else if (strcmp(argv[1], "310es") == 0) {
|
||||||
|
GlslVersion = 310;
|
||||||
|
} else if (strcmp(argv[1], "320es") == 0) {
|
||||||
|
GlslVersion = 320;
|
||||||
|
} else if (strcmp(argv[1], "330") == 0) {
|
||||||
|
GlslVersion = 330;
|
||||||
|
} else if (strcmp(argv[1], "400") == 0) {
|
||||||
|
GlslVersion = 400;
|
||||||
|
} else if (strcmp(argv[1], "410") == 0) {
|
||||||
|
GlslVersion = 410;
|
||||||
|
} else if (strcmp(argv[1], "420") == 0) {
|
||||||
|
GlslVersion = 420;
|
||||||
|
} else if (strcmp(argv[1], "430") == 0) {
|
||||||
|
GlslVersion = 430;
|
||||||
|
} else if (strcmp(argv[1], "440") == 0) {
|
||||||
|
GlslVersion = 440;
|
||||||
|
} else if (strcmp(argv[1], "450") == 0) {
|
||||||
|
GlslVersion = 450;
|
||||||
|
} else if (strcmp(argv[1], "460") == 0) {
|
||||||
|
GlslVersion = 460;
|
||||||
|
} else
|
||||||
|
Error("--glsl-version expected one of: 100, 110, 120, 130, 140, 150,\n"
|
||||||
|
"300es, 310es, 320es, 330\n"
|
||||||
|
"400, 410, 420, 430, 440, 450, 460");
|
||||||
|
}
|
||||||
|
bumpArg();
|
||||||
} else if (lowerword == "hlsl-offsets") {
|
} else if (lowerword == "hlsl-offsets") {
|
||||||
Options |= EOptionHlslOffsets;
|
Options |= EOptionHlslOffsets;
|
||||||
} else if (lowerword == "hlsl-iomap" ||
|
} else if (lowerword == "hlsl-iomap" ||
|
||||||
@ -1251,6 +1296,8 @@ void CompileAndLinkShaderUnits(std::vector<ShaderCompUnit> compUnits)
|
|||||||
shader->setSourceEntryPoint(sourceEntryPointName);
|
shader->setSourceEntryPoint(sourceEntryPointName);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
shader->setOverrideVersion(GlslVersion);
|
||||||
|
|
||||||
std::string intrinsicString = getIntrinsic(compUnit.text, compUnit.count);
|
std::string intrinsicString = getIntrinsic(compUnit.text, compUnit.count);
|
||||||
|
|
||||||
PreambleString = "";
|
PreambleString = "";
|
||||||
@ -1888,6 +1935,11 @@ void usage()
|
|||||||
" -dumpfullversion | -dumpversion print bare major.minor.patchlevel\n"
|
" -dumpfullversion | -dumpversion print bare major.minor.patchlevel\n"
|
||||||
" --flatten-uniform-arrays | --fua flatten uniform texture/sampler arrays to\n"
|
" --flatten-uniform-arrays | --fua flatten uniform texture/sampler arrays to\n"
|
||||||
" scalars\n"
|
" scalars\n"
|
||||||
|
" --glsl-version {100 | 110 | 120 | 130 | 140 | 150 |\n"
|
||||||
|
" 300es | 310es | 320es | 330\n"
|
||||||
|
" 400 | 410 | 420 | 430 | 440 | 450 | 460}\n"
|
||||||
|
" set GLSL version, overrides #version\n"
|
||||||
|
" in shader sourcen\n"
|
||||||
" --hlsl-offsets allow block offsets to follow HLSL rules\n"
|
" --hlsl-offsets allow block offsets to follow HLSL rules\n"
|
||||||
" works independently of source language\n"
|
" works independently of source language\n"
|
||||||
" --hlsl-iomap perform IO mapping in HLSL register space\n"
|
" --hlsl-iomap perform IO mapping in HLSL register space\n"
|
||||||
|
1
Test/baseResults/glsl.versionOverride.comp.out
Normal file
1
Test/baseResults/glsl.versionOverride.comp.out
Normal file
@ -0,0 +1 @@
|
|||||||
|
glsl.versionOverride.comp
|
1
Test/baseResults/glsl.versionOverride.frag.out
Normal file
1
Test/baseResults/glsl.versionOverride.frag.out
Normal file
@ -0,0 +1 @@
|
|||||||
|
glsl.versionOverride.frag
|
1
Test/baseResults/glsl.versionOverride.geom.out
Normal file
1
Test/baseResults/glsl.versionOverride.geom.out
Normal file
@ -0,0 +1 @@
|
|||||||
|
glsl.versionOverride.geom
|
1
Test/baseResults/glsl.versionOverride.tesc.out
Normal file
1
Test/baseResults/glsl.versionOverride.tesc.out
Normal file
@ -0,0 +1 @@
|
|||||||
|
glsl.versionOverride.tesc
|
1
Test/baseResults/glsl.versionOverride.tese.out
Normal file
1
Test/baseResults/glsl.versionOverride.tese.out
Normal file
@ -0,0 +1 @@
|
|||||||
|
glsl.versionOverride.tese
|
1
Test/baseResults/glsl.versionOverride.vert.out
Normal file
1
Test/baseResults/glsl.versionOverride.vert.out
Normal file
@ -0,0 +1 @@
|
|||||||
|
glsl.versionOverride.vert
|
11
Test/glsl.versionOverride.comp
Normal file
11
Test/glsl.versionOverride.comp
Normal file
@ -0,0 +1,11 @@
|
|||||||
|
/*
|
||||||
|
|
||||||
|
glslangValidator.exe --glsl-version 460 -V -S comp -o glsl.versionOverride.comp.out glsl.versionOverride.comp
|
||||||
|
|
||||||
|
*/
|
||||||
|
|
||||||
|
#version 110
|
||||||
|
|
||||||
|
void main()
|
||||||
|
{
|
||||||
|
}
|
11
Test/glsl.versionOverride.frag
Normal file
11
Test/glsl.versionOverride.frag
Normal file
@ -0,0 +1,11 @@
|
|||||||
|
/*
|
||||||
|
|
||||||
|
glslangValidator.exe --glsl-version 420 -V -S frag -o glsl.versionOverride.frag.out glsl.versionOverride.frag
|
||||||
|
|
||||||
|
*/
|
||||||
|
|
||||||
|
#version 110
|
||||||
|
|
||||||
|
void main()
|
||||||
|
{
|
||||||
|
}
|
16
Test/glsl.versionOverride.geom
Normal file
16
Test/glsl.versionOverride.geom
Normal file
@ -0,0 +1,16 @@
|
|||||||
|
/*
|
||||||
|
|
||||||
|
glslangValidator.exe --glsl-version 430 -V -S geom -o glsl.versionOverride.geom.out glsl.versionOverride.geom
|
||||||
|
|
||||||
|
*/
|
||||||
|
|
||||||
|
#version 110
|
||||||
|
|
||||||
|
layout (points) in;
|
||||||
|
layout (line_strip, max_vertices = 2) out;
|
||||||
|
|
||||||
|
void main() {
|
||||||
|
EmitVertex();
|
||||||
|
EmitVertex();
|
||||||
|
EndPrimitive();
|
||||||
|
}
|
13
Test/glsl.versionOverride.tesc
Normal file
13
Test/glsl.versionOverride.tesc
Normal file
@ -0,0 +1,13 @@
|
|||||||
|
/*
|
||||||
|
|
||||||
|
glslangValidator.exe --glsl-version 440 -V -S tesc -o glsl.versionOverride.tesc.out glsl.versionOverride.tesc
|
||||||
|
|
||||||
|
*/
|
||||||
|
|
||||||
|
#version 110
|
||||||
|
|
||||||
|
layout(vertices = 3) out;
|
||||||
|
|
||||||
|
void main()
|
||||||
|
{
|
||||||
|
}
|
13
Test/glsl.versionOverride.tese
Normal file
13
Test/glsl.versionOverride.tese
Normal file
@ -0,0 +1,13 @@
|
|||||||
|
/*
|
||||||
|
|
||||||
|
glslangValidator.exe --glsl-version 450 -V -S tese -o glsl.versionOverride.tese.out glsl.versionOverride.tese
|
||||||
|
|
||||||
|
*/
|
||||||
|
|
||||||
|
#version 110
|
||||||
|
|
||||||
|
layout(triangles) in;
|
||||||
|
|
||||||
|
void main()
|
||||||
|
{
|
||||||
|
}
|
11
Test/glsl.versionOverride.vert
Normal file
11
Test/glsl.versionOverride.vert
Normal file
@ -0,0 +1,11 @@
|
|||||||
|
/*
|
||||||
|
|
||||||
|
glslangValidator.exe --glsl-version 410 -V -S vert -o glsl.versionOverride.vert.out glsl.versionOverride.vert
|
||||||
|
|
||||||
|
*/
|
||||||
|
|
||||||
|
#version 110
|
||||||
|
|
||||||
|
void main()
|
||||||
|
{
|
||||||
|
}
|
@ -298,6 +298,22 @@ diff -b $BASEDIR/hlsl.autosampledtextures.frag.out $TARGETDIR/hlsl.autosampledte
|
|||||||
run --auto-sampled-textures -H -Od -S frag glsl.autosampledtextures.frag > $TARGETDIR/glsl.autosampledtextures.frag.out
|
run --auto-sampled-textures -H -Od -S frag glsl.autosampledtextures.frag > $TARGETDIR/glsl.autosampledtextures.frag.out
|
||||||
diff -b $BASEDIR/glsl.autosampledtextures.frag.out $TARGETDIR/glsl.autosampledtextures.frag.out || HASERROR=1
|
diff -b $BASEDIR/glsl.autosampledtextures.frag.out $TARGETDIR/glsl.autosampledtextures.frag.out || HASERROR=1
|
||||||
|
|
||||||
|
# Test --glsl-version
|
||||||
|
#
|
||||||
|
echo "Testing --glsl-version"
|
||||||
|
run --glsl-version 410 -V -S vert glsl.versionOverride.vert > $TARGETDIR/glsl.versionOverride.vert.out
|
||||||
|
diff -b $BASEDIR/glsl.versionOverride.vert.out $TARGETDIR/glsl.versionOverride.vert.out || HASERROR=1
|
||||||
|
run --glsl-version 420 -V -S frag glsl.versionOverride.frag > $TARGETDIR/glsl.versionOverride.frag.out
|
||||||
|
diff -b $BASEDIR/glsl.versionOverride.frag.out $TARGETDIR/glsl.versionOverride.frag.out || HASERROR=1
|
||||||
|
run --glsl-version 430 -V -S geom glsl.versionOverride.geom > $TARGETDIR/glsl.versionOverride.geom.out
|
||||||
|
diff -b $BASEDIR/glsl.versionOverride.geom.out $TARGETDIR/glsl.versionOverride.geom.out || HASERROR=1
|
||||||
|
run --glsl-version 440 -V -S tesc glsl.versionOverride.tesc > $TARGETDIR/glsl.versionOverride.tesc.out
|
||||||
|
diff -b $BASEDIR/glsl.versionOverride.tesc.out $TARGETDIR/glsl.versionOverride.tesc.out || HASERROR=1
|
||||||
|
run --glsl-version 450 -V -S tese glsl.versionOverride.tese > $TARGETDIR/glsl.versionOverride.tese.out
|
||||||
|
diff -b $BASEDIR/glsl.versionOverride.tese.out $TARGETDIR/glsl.versionOverride.tese.out || HASERROR=1
|
||||||
|
run --glsl-version 460 -V -S comp glsl.versionOverride.comp > $TARGETDIR/glsl.versionOverride.comp.out
|
||||||
|
diff -b $BASEDIR/glsl.versionOverride.comp.out $TARGETDIR/glsl.versionOverride.comp.out || HASERROR=1
|
||||||
|
|
||||||
#
|
#
|
||||||
# Test --enhanced-msgs
|
# Test --enhanced-msgs
|
||||||
#
|
#
|
||||||
|
@ -375,7 +375,11 @@ GLSLANG_EXPORT void glslang_shader_set_options(glslang_shader_t* shader, int opt
|
|||||||
if (options & GLSLANG_SHADER_VULKAN_RULES_RELAXED) {
|
if (options & GLSLANG_SHADER_VULKAN_RULES_RELAXED) {
|
||||||
shader->shader->setEnvInputVulkanRulesRelaxed();
|
shader->shader->setEnvInputVulkanRulesRelaxed();
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
GLSLANG_EXPORT void glslang_shader_set_glsl_version(glslang_shader_t* shader, int version)
|
||||||
|
{
|
||||||
|
shader->shader->setOverrideVersion(version);
|
||||||
}
|
}
|
||||||
|
|
||||||
GLSLANG_EXPORT const char* glslang_shader_get_preprocessed_code(glslang_shader_t* shader)
|
GLSLANG_EXPORT const char* glslang_shader_get_preprocessed_code(glslang_shader_t* shader)
|
||||||
|
@ -227,6 +227,7 @@ GLSLANG_EXPORT void glslang_shader_delete(glslang_shader_t* shader);
|
|||||||
GLSLANG_EXPORT void glslang_shader_shift_binding(glslang_shader_t* shader, glslang_resource_type_t res, unsigned int base);
|
GLSLANG_EXPORT void glslang_shader_shift_binding(glslang_shader_t* shader, glslang_resource_type_t res, unsigned int base);
|
||||||
GLSLANG_EXPORT void glslang_shader_shift_binding_for_set(glslang_shader_t* shader, glslang_resource_type_t res, unsigned int base, unsigned int set);
|
GLSLANG_EXPORT void glslang_shader_shift_binding_for_set(glslang_shader_t* shader, glslang_resource_type_t res, unsigned int base, unsigned int set);
|
||||||
GLSLANG_EXPORT void glslang_shader_set_options(glslang_shader_t* shader, int options); // glslang_shader_options_t
|
GLSLANG_EXPORT void glslang_shader_set_options(glslang_shader_t* shader, int options); // glslang_shader_options_t
|
||||||
|
GLSLANG_EXPORT void glslang_shader_set_glsl_version(glslang_shader_t* shader, int version);
|
||||||
GLSLANG_EXPORT int glslang_shader_preprocess(glslang_shader_t* shader, const glslang_input_t* input);
|
GLSLANG_EXPORT int glslang_shader_preprocess(glslang_shader_t* shader, const glslang_input_t* input);
|
||||||
GLSLANG_EXPORT int glslang_shader_parse(glslang_shader_t* shader, const glslang_input_t* input);
|
GLSLANG_EXPORT int glslang_shader_parse(glslang_shader_t* shader, const glslang_input_t* input);
|
||||||
GLSLANG_EXPORT const char* glslang_shader_get_preprocessed_code(glslang_shader_t* shader);
|
GLSLANG_EXPORT const char* glslang_shader_get_preprocessed_code(glslang_shader_t* shader);
|
||||||
|
@ -813,6 +813,7 @@ bool ProcessDeferred(
|
|||||||
// set version/profile to defaultVersion/defaultProfile regardless of the #version
|
// set version/profile to defaultVersion/defaultProfile regardless of the #version
|
||||||
// directive in the source code
|
// directive in the source code
|
||||||
bool forceDefaultVersionAndProfile,
|
bool forceDefaultVersionAndProfile,
|
||||||
|
int overrideVersion, // overrides version specified by #verison or default version
|
||||||
bool forwardCompatible, // give errors for use of deprecated features
|
bool forwardCompatible, // give errors for use of deprecated features
|
||||||
EShMessages messages, // warnings/errors/AST; things to print out
|
EShMessages messages, // warnings/errors/AST; things to print out
|
||||||
TIntermediate& intermediate, // returned tree, etc.
|
TIntermediate& intermediate, // returned tree, etc.
|
||||||
@ -900,6 +901,9 @@ bool ProcessDeferred(
|
|||||||
version = defaultVersion;
|
version = defaultVersion;
|
||||||
profile = defaultProfile;
|
profile = defaultProfile;
|
||||||
}
|
}
|
||||||
|
if (source == EShSourceGlsl && overrideVersion != 0) {
|
||||||
|
version = overrideVersion;
|
||||||
|
}
|
||||||
|
|
||||||
bool goodVersion = DeduceVersionProfile(compiler->infoSink, stage,
|
bool goodVersion = DeduceVersionProfile(compiler->infoSink, stage,
|
||||||
versionNotFirst, defaultVersion, source, version, profile, spvVersion);
|
versionNotFirst, defaultVersion, source, version, profile, spvVersion);
|
||||||
@ -1275,6 +1279,7 @@ bool PreprocessDeferred(
|
|||||||
int defaultVersion, // use 100 for ES environment, 110 for desktop
|
int defaultVersion, // use 100 for ES environment, 110 for desktop
|
||||||
EProfile defaultProfile,
|
EProfile defaultProfile,
|
||||||
bool forceDefaultVersionAndProfile,
|
bool forceDefaultVersionAndProfile,
|
||||||
|
int overrideVersion, // use 0 if not overriding GLSL version
|
||||||
bool forwardCompatible, // give errors for use of deprecated features
|
bool forwardCompatible, // give errors for use of deprecated features
|
||||||
EShMessages messages, // warnings/errors/AST; things to print out
|
EShMessages messages, // warnings/errors/AST; things to print out
|
||||||
TShader::Includer& includer,
|
TShader::Includer& includer,
|
||||||
@ -1285,7 +1290,7 @@ bool PreprocessDeferred(
|
|||||||
DoPreprocessing parser(outputString);
|
DoPreprocessing parser(outputString);
|
||||||
return ProcessDeferred(compiler, shaderStrings, numStrings, inputLengths, stringNames,
|
return ProcessDeferred(compiler, shaderStrings, numStrings, inputLengths, stringNames,
|
||||||
preamble, optLevel, resources, defaultVersion,
|
preamble, optLevel, resources, defaultVersion,
|
||||||
defaultProfile, forceDefaultVersionAndProfile,
|
defaultProfile, forceDefaultVersionAndProfile, overrideVersion,
|
||||||
forwardCompatible, messages, intermediate, parser,
|
forwardCompatible, messages, intermediate, parser,
|
||||||
false, includer, "", environment);
|
false, includer, "", environment);
|
||||||
}
|
}
|
||||||
@ -1314,6 +1319,7 @@ bool CompileDeferred(
|
|||||||
int defaultVersion, // use 100 for ES environment, 110 for desktop
|
int defaultVersion, // use 100 for ES environment, 110 for desktop
|
||||||
EProfile defaultProfile,
|
EProfile defaultProfile,
|
||||||
bool forceDefaultVersionAndProfile,
|
bool forceDefaultVersionAndProfile,
|
||||||
|
int overrideVersion, // use 0 if not overriding GLSL version
|
||||||
bool forwardCompatible, // give errors for use of deprecated features
|
bool forwardCompatible, // give errors for use of deprecated features
|
||||||
EShMessages messages, // warnings/errors/AST; things to print out
|
EShMessages messages, // warnings/errors/AST; things to print out
|
||||||
TIntermediate& intermediate,// returned tree, etc.
|
TIntermediate& intermediate,// returned tree, etc.
|
||||||
@ -1324,7 +1330,7 @@ bool CompileDeferred(
|
|||||||
DoFullParse parser;
|
DoFullParse parser;
|
||||||
return ProcessDeferred(compiler, shaderStrings, numStrings, inputLengths, stringNames,
|
return ProcessDeferred(compiler, shaderStrings, numStrings, inputLengths, stringNames,
|
||||||
preamble, optLevel, resources, defaultVersion,
|
preamble, optLevel, resources, defaultVersion,
|
||||||
defaultProfile, forceDefaultVersionAndProfile,
|
defaultProfile, forceDefaultVersionAndProfile, overrideVersion,
|
||||||
forwardCompatible, messages, intermediate, parser,
|
forwardCompatible, messages, intermediate, parser,
|
||||||
true, includer, sourceEntryPointName, environment);
|
true, includer, sourceEntryPointName, environment);
|
||||||
}
|
}
|
||||||
@ -1498,7 +1504,7 @@ int ShCompile(
|
|||||||
TIntermediate intermediate(compiler->getLanguage());
|
TIntermediate intermediate(compiler->getLanguage());
|
||||||
TShader::ForbidIncluder includer;
|
TShader::ForbidIncluder includer;
|
||||||
bool success = CompileDeferred(compiler, shaderStrings, numStrings, inputLengths, nullptr,
|
bool success = CompileDeferred(compiler, shaderStrings, numStrings, inputLengths, nullptr,
|
||||||
"", optLevel, resources, defaultVersion, ENoProfile, false,
|
"", optLevel, resources, defaultVersion, ENoProfile, false, 0,
|
||||||
forwardCompatible, messages, intermediate, includer);
|
forwardCompatible, messages, intermediate, includer);
|
||||||
|
|
||||||
//
|
//
|
||||||
@ -1759,7 +1765,7 @@ public:
|
|||||||
};
|
};
|
||||||
|
|
||||||
TShader::TShader(EShLanguage s)
|
TShader::TShader(EShLanguage s)
|
||||||
: stage(s), lengths(nullptr), stringNames(nullptr), preamble("")
|
: stage(s), lengths(nullptr), stringNames(nullptr), preamble(""), overrideVersion(0)
|
||||||
{
|
{
|
||||||
pool = new TPoolAllocator;
|
pool = new TPoolAllocator;
|
||||||
infoSink = new TInfoSink;
|
infoSink = new TInfoSink;
|
||||||
@ -1828,6 +1834,11 @@ void TShader::setUniqueId(unsigned long long id)
|
|||||||
intermediate->setUniqueId(id);
|
intermediate->setUniqueId(id);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void TShader::setOverrideVersion(int version)
|
||||||
|
{
|
||||||
|
overrideVersion = version;
|
||||||
|
}
|
||||||
|
|
||||||
void TShader::setInvertY(bool invert) { intermediate->setInvertY(invert); }
|
void TShader::setInvertY(bool invert) { intermediate->setInvertY(invert); }
|
||||||
void TShader::setDxPositionW(bool invert) { intermediate->setDxPositionW(invert); }
|
void TShader::setDxPositionW(bool invert) { intermediate->setDxPositionW(invert); }
|
||||||
void TShader::setEnhancedMsgs() { intermediate->setEnhancedMsgs(); }
|
void TShader::setEnhancedMsgs() { intermediate->setEnhancedMsgs(); }
|
||||||
@ -1910,7 +1921,7 @@ bool TShader::parse(const TBuiltInResource* builtInResources, int defaultVersion
|
|||||||
|
|
||||||
return CompileDeferred(compiler, strings, numStrings, lengths, stringNames,
|
return CompileDeferred(compiler, strings, numStrings, lengths, stringNames,
|
||||||
preamble, EShOptNone, builtInResources, defaultVersion,
|
preamble, EShOptNone, builtInResources, defaultVersion,
|
||||||
defaultProfile, forceDefaultVersionAndProfile,
|
defaultProfile, forceDefaultVersionAndProfile, overrideVersion,
|
||||||
forwardCompatible, messages, *intermediate, includer, sourceEntryPointName,
|
forwardCompatible, messages, *intermediate, includer, sourceEntryPointName,
|
||||||
&environment);
|
&environment);
|
||||||
}
|
}
|
||||||
@ -1937,7 +1948,7 @@ bool TShader::preprocess(const TBuiltInResource* builtInResources,
|
|||||||
|
|
||||||
return PreprocessDeferred(compiler, strings, numStrings, lengths, stringNames, preamble,
|
return PreprocessDeferred(compiler, strings, numStrings, lengths, stringNames, preamble,
|
||||||
EShOptNone, builtInResources, defaultVersion,
|
EShOptNone, builtInResources, defaultVersion,
|
||||||
defaultProfile, forceDefaultVersionAndProfile,
|
defaultProfile, forceDefaultVersionAndProfile, overrideVersion,
|
||||||
forwardCompatible, message, includer, *intermediate, output_string,
|
forwardCompatible, message, includer, *intermediate, output_string,
|
||||||
&environment);
|
&environment);
|
||||||
}
|
}
|
||||||
|
@ -471,6 +471,7 @@ public:
|
|||||||
GLSLANG_EXPORT void setSourceEntryPoint(const char* sourceEntryPointName);
|
GLSLANG_EXPORT void setSourceEntryPoint(const char* sourceEntryPointName);
|
||||||
GLSLANG_EXPORT void addProcesses(const std::vector<std::string>&);
|
GLSLANG_EXPORT void addProcesses(const std::vector<std::string>&);
|
||||||
GLSLANG_EXPORT void setUniqueId(unsigned long long id);
|
GLSLANG_EXPORT void setUniqueId(unsigned long long id);
|
||||||
|
GLSLANG_EXPORT void setOverrideVersion(int version);
|
||||||
|
|
||||||
// IO resolver binding data: see comments in ShaderLang.cpp
|
// IO resolver binding data: see comments in ShaderLang.cpp
|
||||||
GLSLANG_EXPORT void setShiftBinding(TResourceType res, unsigned int base);
|
GLSLANG_EXPORT void setShiftBinding(TResourceType res, unsigned int base);
|
||||||
@ -711,6 +712,9 @@ protected:
|
|||||||
// a function in the source string can be renamed FROM this TO the name given in setEntryPoint.
|
// a function in the source string can be renamed FROM this TO the name given in setEntryPoint.
|
||||||
std::string sourceEntryPointName;
|
std::string sourceEntryPointName;
|
||||||
|
|
||||||
|
// overrides #version in shader source or default version if #version isn't present
|
||||||
|
int overrideVersion;
|
||||||
|
|
||||||
TEnvironment environment;
|
TEnvironment environment;
|
||||||
|
|
||||||
friend class TProgram;
|
friend class TProgram;
|
||||||
|
Loading…
x
Reference in New Issue
Block a user