diff options
Diffstat (limited to 'tools/render-test/slang-support.cpp')
| -rw-r--r-- | tools/render-test/slang-support.cpp | 21 |
1 files changed, 19 insertions, 2 deletions
diff --git a/tools/render-test/slang-support.cpp b/tools/render-test/slang-support.cpp index df7e91df8..515481d4f 100644 --- a/tools/render-test/slang-support.cpp +++ b/tools/render-test/slang-support.cpp @@ -25,6 +25,17 @@ static const char computeEntryPointName[] = "computeMain"; out.request = slangRequest; out.session = session; + // Parse all the extra args + if (request.compileArgs.getCount() > 0) + { + List<const char*> args; + for (const auto& arg : request.compileArgs) + { + args.add(arg.value.getBuffer()); + } + SLANG_RETURN_ON_FAIL(spProcessCommandLineArguments(slangRequest, args.getBuffer(), int(args.getCount()))); + } + spSetCodeGenTarget(slangRequest, input.target); spSetTargetProfile(slangRequest, 0, spFindProfile(session, input.profile)); @@ -224,7 +235,7 @@ static const char computeEntryPointName[] = "computeMain"; return SLANG_OK; } -/* static */SlangResult ShaderCompilerUtil::compileWithLayout(SlangSession* session, const String& sourcePath, Options::ShaderProgramType shaderType, const ShaderCompilerUtil::Input& input, OutputAndLayout& output) +/* static */SlangResult ShaderCompilerUtil::compileWithLayout(SlangSession* session, const String& sourcePath, const Slang::List<Slang::CommandLine::Arg>& compileArgs, Options::ShaderProgramType shaderType, const ShaderCompilerUtil::Input& input, OutputAndLayout& output) { List<char> sourceText; SLANG_RETURN_ON_FAIL(readSource(sourcePath, sourceText)); @@ -245,8 +256,11 @@ static const char computeEntryPointName[] = "computeMain"; break; } + // Deterministic random generator + RefPtr<RandomGenerator> rand = RandomGenerator::create(0x34234); + // Parse the layout - layout.parse(sourceText.getBuffer()); + layout.parse(rand, sourceText.getBuffer()); layout.updateForTarget(input.target); // Setup SourceInfo @@ -257,6 +271,9 @@ static const char computeEntryPointName[] = "computeMain"; sourceInfo.dataEnd = sourceText.getBuffer() + sourceText.getCount() - 1; ShaderCompileRequest compileRequest; + + compileRequest.compileArgs = compileArgs; + compileRequest.source = sourceInfo; if (shaderType == Options::ShaderProgramType::Graphics || shaderType == Options::ShaderProgramType::GraphicsCompute) { |
