From 640bd0964f5d56eeec99b957bec130287ae60ab3 Mon Sep 17 00:00:00 2001 From: John Kessenich Date: Thu, 9 Aug 2018 14:15:00 -0600 Subject: [PATCH] Fix #1468: Add command-line --entry-point support, same as existing -e. --- StandAlone/StandAlone.cpp | 12 ++++++++---- Test/runtests | 2 +- 2 files changed, 9 insertions(+), 5 deletions(-) diff --git a/StandAlone/StandAlone.cpp b/StandAlone/StandAlone.cpp index a159bc84..07a38563 100755 --- a/StandAlone/StandAlone.cpp +++ b/StandAlone/StandAlone.cpp @@ -446,6 +446,11 @@ void ProcessArguments(std::vector>& workItem Error("--client expects vulkan100 or opengl100"); } bumpArg(); + } else if (lowerword == "entry-point") { + entryPointName = argv[1]; + if (argc <= 1) + Error("no provided for --entry-point"); + bumpArg(); } else if (lowerword == "flatten-uniform-arrays" || // synonyms lowerword == "flatten-uniform-array" || lowerword == "fua") { @@ -610,8 +615,6 @@ void ProcessArguments(std::vector>& workItem Options |= EOptionDefaultDesktop; break; case 'e': - // HLSL todo: entry point handle needs much more sophistication. - // This is okay for one compilation unit with one entry point. entryPointName = argv[1]; if (argc <= 1) Error("no provided for -e"); @@ -840,7 +843,7 @@ void CompileAndLinkShaderUnits(std::vector compUnits) const auto &compUnit = *it; glslang::TShader* shader = new glslang::TShader(compUnit.stage); shader->setStringsWithLengthsAndNames(compUnit.text, NULL, compUnit.fileNameList, compUnit.count); - if (entryPointName) // HLSL todo: this needs to be tracked per compUnits + if (entryPointName) shader->setEntryPoint(entryPointName); if (sourceEntryPointName) { if (entryPointName == nullptr) @@ -1352,7 +1355,8 @@ void usage() " creates the default configuration file (redirect to a .conf file)\n" " -d default to desktop (#version 110) when there is no shader #version\n" " (default is ES version 100)\n" - " -e specify as the entry-point name\n" + " --entry-point \n" + " -e specify as the entry-point function name\n" " -f{hlsl_functionality1}\n" " 'hlsl_functionality1' enables use of the\n" " SPV_GOOGLE_hlsl_functionality1 extension\n" diff --git a/Test/runtests b/Test/runtests index 390acfc3..8e6832dc 100755 --- a/Test/runtests +++ b/Test/runtests @@ -56,7 +56,7 @@ fi # entry point renaming tests # echo Running entry-point renaming tests -$EXE -i -H -V -D -Od -e main_in_spv --ku --source-entrypoint main -Od hlsl.entry.rename.frag > $TARGETDIR/hlsl.entry.rename.frag.out +$EXE -i -H -V -D -Od --entry-point main_in_spv --ku --source-entrypoint main -Od hlsl.entry.rename.frag > $TARGETDIR/hlsl.entry.rename.frag.out diff -b $BASEDIR/hlsl.entry.rename.frag.out $TARGETDIR/hlsl.entry.rename.frag.out || HASERROR=1 #