PP: Fix #155: Don't give error on HLSL PP-only parsing.
This commit is contained in:
parent
a08f465d53
commit
086febc448
10
StandAlone/StandAlone.cpp
Normal file → Executable file
10
StandAlone/StandAlone.cpp
Normal file → Executable file
@ -961,8 +961,7 @@ void CompileAndLinkShaderUnits(std::vector<ShaderCompUnit> compUnits)
|
||||
includer.pushExternalLocalDirectory(dir); });
|
||||
if (Options & EOptionOutputPreprocessed) {
|
||||
std::string str;
|
||||
if (shader->preprocess(&Resources, defaultVersion, ENoProfile, false, false,
|
||||
messages, &str, includer)) {
|
||||
if (shader->preprocess(&Resources, defaultVersion, ENoProfile, false, false, messages, &str, includer)) {
|
||||
PutsIfNonEmpty(str.c_str());
|
||||
} else {
|
||||
CompileFailed = true;
|
||||
@ -971,6 +970,7 @@ void CompileAndLinkShaderUnits(std::vector<ShaderCompUnit> compUnits)
|
||||
StderrIfNonEmpty(shader->getInfoDebugLog());
|
||||
continue;
|
||||
}
|
||||
|
||||
if (! shader->parse(&Resources, defaultVersion, false, messages, includer))
|
||||
CompileFailed = true;
|
||||
|
||||
@ -1167,13 +1167,15 @@ int singleMain()
|
||||
|
||||
ProcessConfigFile();
|
||||
|
||||
if ((Options & EOptionReadHlsl) && !((Options & EOptionOutputPreprocessed) || (Options & EOptionSpv)))
|
||||
Error("ERROR: HLSL requires SPIR-V code generation (or preprocessing only)");
|
||||
|
||||
//
|
||||
// Two modes:
|
||||
// 1) linking all arguments together, single-threaded, new C++ interface
|
||||
// 2) independent arguments, can be tackled by multiple asynchronous threads, for testing thread safety, using the old handle interface
|
||||
//
|
||||
if (Options & EOptionLinkProgram ||
|
||||
Options & EOptionOutputPreprocessed) {
|
||||
if (Options & (EOptionLinkProgram | EOptionOutputPreprocessed)) {
|
||||
glslang::InitializeProcess();
|
||||
glslang::InitializeProcess(); // also test reference counting of users
|
||||
glslang::InitializeProcess(); // also test reference counting of users
|
||||
|
||||
@ -1,3 +0,0 @@
|
||||
ERROR: HLSL currently only supported when requesting SPIR-V for Vulkan.
|
||||
ERROR: HLSL currently only supported when requesting SPIR-V for Vulkan.
|
||||
|
||||
@ -208,6 +208,7 @@ diff -b $BASEDIR/hlsl.y-negate-3.vert.out $TARGETDIR/hlsl.y-negate-3.vert.out ||
|
||||
#
|
||||
# Testing hlsl_functionality1
|
||||
#
|
||||
echo "Testing hlsl_functionality1"
|
||||
$EXE -H -e main -D -Od -fhlsl_functionality1 hlsl.structbuffer.incdec.frag > \
|
||||
$TARGETDIR/hlsl.structbuffer.incdec.frag.hlslfun1.out
|
||||
diff -b $BASEDIR/hlsl.structbuffer.incdec.frag.hlslfun1.out $TARGETDIR/hlsl.structbuffer.incdec.frag.hlslfun1.out || HASERROR=1
|
||||
@ -218,6 +219,7 @@ diff -b $BASEDIR/hlsl.noSemantic.functionality1.comp.out $TARGETDIR/hlsl.noSeman
|
||||
#
|
||||
# Testing HLSL-specific PP feature expansion
|
||||
#
|
||||
echo "Testing HLSL-specific PP feature expansion"
|
||||
$EXE -D -E hlsl.pp.expand.frag > $TARGETDIR/hlsl.pp.expand.frag.out 2> $TARGETDIR/hlsl.pp.expand.frag.err
|
||||
diff -b $BASEDIR/hlsl.pp.expand.frag.out $TARGETDIR/hlsl.pp.expand.frag.out || HASERROR=1
|
||||
diff -b $BASEDIR/hlsl.pp.expand.frag.err $TARGETDIR/hlsl.pp.expand.frag.err || HASERROR=1
|
||||
|
||||
3
hlsl/hlslParseHelper.cpp
Normal file → Executable file
3
hlsl/hlslParseHelper.cpp
Normal file → Executable file
@ -97,9 +97,6 @@ HlslParseContext::HlslParseContext(TSymbolTable& symbolTable, TIntermediate& int
|
||||
|
||||
if (language == EShLangGeometry)
|
||||
globalOutputDefaults.layoutStream = 0;
|
||||
|
||||
if (spvVersion.spv == 0 || spvVersion.vulkan == 0)
|
||||
infoSink.info << "ERROR: HLSL currently only supported when requesting SPIR-V for Vulkan.\n";
|
||||
}
|
||||
|
||||
HlslParseContext::~HlslParseContext()
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user