Stop emitting the "#version missing" warning, and hook up the existing "suppress warnings" to a command-line option (-w).
git-svn-id: https://cvs.khronos.org/svn/repos/ogl/trunk/ecosystem/public/sdk/tools/glslang@23952 e7fa87d3-cd2b-0410-9028-fcbf551c1848
diff --git a/Install/Windows/glslangValidator.exe b/Install/Windows/glslangValidator.exe
index 24272a3..600014c 100644
--- a/Install/Windows/glslangValidator.exe
+++ b/Install/Windows/glslangValidator.exe
Binary files differ
diff --git a/StandAlone/StandAlone.cpp b/StandAlone/StandAlone.cpp
index a3c1faf..ae0465c 100644
--- a/StandAlone/StandAlone.cpp
+++ b/StandAlone/StandAlone.cpp
@@ -62,6 +62,7 @@
EOptionMultiThreaded = 0x040,
EOptionDumpConfig = 0x080,
EOptionDumpReflection = 0x100,
+ EOptionSuppressWarnings = 0x200,
};
//
@@ -91,7 +92,7 @@
ShBindingTable FixedAttributeTable = { 3, FixedAttributeBindings };
EShLanguage FindLanguage(const std::string& name);
-bool CompileFile(const char *fileName, ShHandle, int options);
+bool CompileFile(const char *fileName, ShHandle);
void usage();
void FreeFileData(char** data);
char** ReadFileData(const char* fileName);
@@ -478,9 +479,12 @@
break;
case 't':
#ifdef _WIN32
- Options |= EOptionMultiThreaded;
+ Options |= EOptionMultiThreaded;
#endif
break;
+ case 'w':
+ Options |= EOptionSuppressWarnings;
+ break;
default:
return false;
}
@@ -496,6 +500,16 @@
return true;
}
+void SetMessageOptions(EShMessages& messages)
+{
+ if (Options & EOptionRelaxedErrors)
+ messages = (EShMessages)(messages | EShMsgRelaxedErrors);
+ if (Options & EOptionIntermediate)
+ messages = (EShMessages)(messages | EShMsgAST);
+ if (Options & EOptionSuppressWarnings)
+ messages = (EShMessages)(messages | EShMsgSuppressWarnings);
+}
+
// Thread entry point, for non-linking asynchronous mode.
unsigned int
#ifdef _WIN32
@@ -509,7 +523,7 @@
if (compiler == 0)
return false;
- CompileFile(workItem->name.c_str(), compiler, Options);
+ CompileFile(workItem->name.c_str(), compiler);
if (! (Options & EOptionSuppressInfolog))
workItem->results = ShGetInfoLog(compiler);
@@ -532,10 +546,7 @@
std::list<glslang::TShader*> shaders;
EShMessages messages = EShMsgDefault;
- if (Options & EOptionRelaxedErrors)
- messages = (EShMessages)(messages | EShMsgRelaxedErrors);
- if (Options & EOptionIntermediate)
- messages = (EShMessages)(messages | EShMsgAST);
+ SetMessageOptions(messages);
//
// Per-shader processing...
@@ -713,7 +724,7 @@
// Read a file's data into a string, and compile it using the old interface ShCompile,
// for non-linkable results.
//
-bool CompileFile(const char *fileName, ShHandle compiler, int Options)
+bool CompileFile(const char *fileName, ShHandle compiler)
{
int ret;
char** shaderStrings = ReadFileData(fileName);
@@ -732,10 +743,7 @@
return false;
EShMessages messages = EShMsgDefault;
- if (Options & EOptionRelaxedErrors)
- messages = (EShMessages)(messages | EShMsgRelaxedErrors);
- if (Options & EOptionIntermediate)
- messages = (EShMessages)(messages | EShMsgAST);
+ SetMessageOptions(messages);
for (int i = 0; i < ((Options & EOptionMemoryLeakMode) ? 100 : 1); ++i) {
for (int j = 0; j < ((Options & EOptionMemoryLeakMode) ? 100 : 1); ++j) {
@@ -777,13 +785,14 @@
"To get other information, use one of the following options:\n"
"-c: configuration dump; use to create default configuration file (redirect to a .conf file)\n"
"-i: intermediate tree (glslang AST) is printed out\n"
- "-d: delay exit\n"
"-l: link validation of all input files\n"
"-m: memory leak mode\n"
"-q: dump reflection query database\n"
"-r: relaxed semantic error-checking mode\n"
"-s: silent mode\n"
- "-t: multi-threaded mode\n");
+ "-t: multi-threaded mode\n"
+ "-w: suppress warnings (except as required by #extension : warn)\n"
+ );
}
#ifndef _WIN32
diff --git a/Test/130.frag b/Test/130.frag
index 3099a47..fbc7996 100644
--- a/Test/130.frag
+++ b/Test/130.frag
@@ -37,3 +37,10 @@
flat in vec4 gl_Color;
flat in vec4 gl_Color[2]; // ERROR, array
vec4 gl_Color; // ERROR, storage
+
+#extension GL_ARB_texture_gather : warn
+
+void bar()
+{
+ vec4 s = textureGather(sampC, vec3(0.2));
+}
diff --git a/Test/baseResults/130.frag.out b/Test/baseResults/130.frag.out
index 55d7e52..8fca081 100644
--- a/Test/baseResults/130.frag.out
+++ b/Test/baseResults/130.frag.out
@@ -3,7 +3,9 @@
ERROR: 0:35: 'redeclaration' : cannot change the type of gl_Color
ERROR: 0:38: 'gl_Color' : redeclaring non-array as array
ERROR: 0:39: 'redeclaration' : cannot change storage, memory, or auxiliary qualification of gl_Color
-ERROR: 4 compilation errors. No code generated.
+ERROR: 0:43: 'bar' : function already has a body
+WARNING: 0:45: extension GL_ARB_texture_gather is being used for texture gather function
+ERROR: 5 compilation errors. No code generated.
ERROR: node is still EOpNull!
0:16 Function Definition: main( (void)
@@ -40,6 +42,18 @@
0:32 0.200000
0:32 0.200000
0:32 0.200000
+0:43 Function Definition: bar( (void)
+0:43 Function Parameters:
+0:45 Sequence
+0:45 Sequence
+0:45 move second child to first child (4-component vector of float)
+0:45 's' (4-component vector of float)
+0:45 Function Call: textureGather(sC1;vf3; (4-component vector of float)
+0:45 'sampC' (uniform samplerCube)
+0:45 Constant:
+0:45 0.200000
+0:45 0.200000
+0:45 0.200000
0:? Linker Objects
0:? 'a' (3-component vector of float)
0:? 'b' (float)
diff --git a/Test/baseResults/cppComplexExpr.vert.out b/Test/baseResults/cppComplexExpr.vert.out
index 28e67f0..d59a556 100644
--- a/Test/baseResults/cppComplexExpr.vert.out
+++ b/Test/baseResults/cppComplexExpr.vert.out
@@ -1,4 +1,3 @@
-WARNING: #version: statement missing; use #version on first line of shader
ERROR: 0:46: 'xyxwx' : illegal vector field selection
ERROR: 0:46: 'xyxwx' : illegal vector field selection
ERROR: 2 compilation errors. No code generated.
diff --git a/Test/baseResults/empty.frag.out b/Test/baseResults/empty.frag.out
index a17d254..683b29d 100644
--- a/Test/baseResults/empty.frag.out
+++ b/Test/baseResults/empty.frag.out
@@ -1,11 +1,9 @@
empty.frag
-WARNING: #version: statement missing; use #version on first line of shader
0:? Sequence
0:? Linker Objects
empty2.frag
-WARNING: #version: statement missing; use #version on first line of shader
0:? Sequence
0:? Linker Objects
diff --git a/Test/baseResults/errors.frag.out b/Test/baseResults/errors.frag.out
index 37304d8..01c4603 100644
--- a/Test/baseResults/errors.frag.out
+++ b/Test/baseResults/errors.frag.out
@@ -1,4 +1,3 @@
-WARNING: #version: statement missing; use #version on first line of shader
ERROR: 0:1: 'main' : function cannot take any parameter(s)
ERROR: 0:1: 'int' : main function cannot return a value
ERROR: 2 compilation errors. No code generated.
diff --git a/Test/baseResults/pointCoord.frag.out b/Test/baseResults/pointCoord.frag.out
index ed4fe56..688c624 100644
--- a/Test/baseResults/pointCoord.frag.out
+++ b/Test/baseResults/pointCoord.frag.out
@@ -1,4 +1,3 @@
-WARNING: #version: statement missing; use #version on first line of shader
0:? Sequence
0:5 Function Definition: main( (void)
0:5 Function Parameters:
diff --git a/glslang/MachineIndependent/ShaderLang.cpp b/glslang/MachineIndependent/ShaderLang.cpp
index 2b22a8c..c393a85 100644
--- a/glslang/MachineIndependent/ShaderLang.cpp
+++ b/glslang/MachineIndependent/ShaderLang.cpp
@@ -296,7 +296,7 @@
// Get a good version...
if (version == 0) {
version = defaultVersion;
- infoSink.info.message(EPrefixWarning, "#version: statement missing; use #version on first line of shader");
+ // infoSink.info.message(EPrefixWarning, "#version: statement missing; use #version on first line of shader");
}
// Get a good profile...