Warn on HLSL not finding entry point. Issue #588.

This commit is contained in:
John Kessenich 2016-11-26 13:45:18 -07:00
parent 517fe7a6ad
commit e50dc536ff
12 changed files with 24 additions and 3 deletions

View File

@ -81,6 +81,7 @@ gl_FragCoord origin is upper left
Linked fragment stage:
WARNING: Linking fragment stage: Entry point not found
Shader version: 450
gl_FragCoord origin is upper left

View File

@ -32,6 +32,7 @@ gl_FragCoord origin is upper left
Linked fragment stage:
WARNING: Linking fragment stage: Entry point not found
Shader version: 450
gl_FragCoord origin is upper left

View File

@ -22,6 +22,7 @@ gl_FragCoord origin is upper left
Linked fragment stage:
WARNING: Linking fragment stage: Entry point not found
Shader version: 450
gl_FragCoord origin is upper left

View File

@ -1396,6 +1396,7 @@ Shader version: 450
Linked vertex stage:
WARNING: Linking vertex stage: Entry point not found
Shader version: 450
0:? Sequence

View File

@ -33,6 +33,7 @@ gl_FragCoord origin is upper left
Linked fragment stage:
WARNING: Linking fragment stage: Entry point not found
Shader version: 450
gl_FragCoord origin is upper left

View File

@ -15,6 +15,7 @@ gl_FragCoord origin is upper left
Linked fragment stage:
WARNING: Linking fragment stage: Entry point not found
Shader version: 450
gl_FragCoord origin is upper left

View File

@ -115,6 +115,7 @@ gl_FragCoord origin is upper left
Linked fragment stage:
WARNING: Linking fragment stage: Entry point not found
Shader version: 450
gl_FragCoord origin is upper left

View File

@ -38,6 +38,7 @@ gl_FragCoord origin is upper left
Linked fragment stage:
WARNING: Linking fragment stage: Entry point not found
Shader version: 450
gl_FragCoord origin is upper left

View File

@ -39,6 +39,7 @@ gl_FragCoord origin is upper left
Linked fragment stage:
WARNING: Linking fragment stage: Entry point not found
Shader version: 450
gl_FragCoord origin is upper left

View File

@ -2,5 +2,5 @@
// For the version, it uses the latest git tag followed by the number of commits.
// For the date, it uses the current date (when then script is run).
#define GLSLANG_REVISION "Overload400-PrecQual.1660"
#define GLSLANG_REVISION "Overload400-PrecQual.1661"
#define GLSLANG_DATE "26-Nov-2016"

View File

@ -60,6 +60,13 @@ void TIntermediate::error(TInfoSink& infoSink, const char* message)
++numErrors;
}
// Link-time warning.
void TIntermediate::warn(TInfoSink& infoSink, const char* message)
{
infoSink.info.prefix(EPrefixWarning);
infoSink.info << "Linking " << StageName(language) << " stage: " << message << "\n";
}
// TODO: 4.4 offset/align: "Two blocks linked together in the same program with the same block
// name must have the exact same set of members qualified with offset and their integral-constant
// expression values must be the same, or a link-time error results."
@ -370,8 +377,12 @@ void TIntermediate::mergeErrorCheck(TInfoSink& infoSink, const TIntermSymbol& sy
//
void TIntermediate::finalCheck(TInfoSink& infoSink)
{
if (source == EShSourceGlsl && numEntryPoints < 1)
error(infoSink, "Missing entry point: Each stage requires one entry point");
if (numEntryPoints < 1) {
if (source == EShSourceGlsl)
error(infoSink, "Missing entry point: Each stage requires one entry point");
else
warn(infoSink, "Entry point not found");
}
if (numPushConstants > 1)
error(infoSink, "Only one push_constant block is allowed per stage");

View File

@ -385,6 +385,7 @@ public:
protected:
TIntermSymbol* addSymbol(int Id, const TString&, const TType&, const TConstUnionArray&, TIntermTyped* subtree, const TSourceLoc&);
void error(TInfoSink& infoSink, const char*);
void warn(TInfoSink& infoSink, const char*);
void mergeBodies(TInfoSink&, TIntermSequence& globals, const TIntermSequence& unitGlobals);
void mergeLinkerObjects(TInfoSink&, TIntermSequence& linkerObjects, const TIntermSequence& unitLinkerObjects);
void mergeImplicitArraySizes(TType&, const TType&);