introduce new --dump-builtin-symbols command line

add corresponding EShMsgBuiltinSymbolTable
TSymbol::dump functions have option to do "complete" print
bugfix in TType::getCompleteString, structure can be null for block
This commit is contained in:
Christoph Kubisch 2019-04-13 22:18:16 +02:00
parent 0527c9db81
commit 55ba3eaf89
6 changed files with 82 additions and 19 deletions

View file

@ -377,6 +377,8 @@ bool InitializeSymbolTables(TInfoSink& infoSink, TSymbolTable** commonTable, TS
infoSink, commonTable, symbolTables);
#endif
return true;
}
@ -474,6 +476,14 @@ void SetupBuiltinSymbolTable(int version, EProfile profile, const SpvVersion& sp
glslang::ReleaseGlobalLock();
}
// Function to Print all builtins
void DumpBuiltinSymbolTable(TInfoSink& infoSink, const TSymbolTable& symbolTable)
{
infoSink.debug << "BuiltinSymbolTable {\n";
symbolTable.dump(infoSink, true);
infoSink.debug << "}\n";
}
// Return true if the shader was correctly specified for version/profile/stage.
bool DeduceVersionProfile(TInfoSink& infoSink, EShLanguage stage, bool versionNotFirst, int defaultVersion,
EShSource source, int& version, EProfile& profile, const SpvVersion& spvVersion)
@ -905,6 +915,10 @@ bool ProcessDeferred(
return false;
}
if (messages & EShMsgBuiltinSymbolTable) {
DumpBuiltinSymbolTable(compiler->infoSink, *symbolTable);
}
//
// Now we can process the full shader under proper symbols and rules.
//