From b46c342f47b61119a0dc517ce6eb75eab3398504 Mon Sep 17 00:00:00 2001 From: Jay Kwak <82421531+jkwak-work@users.noreply.github.com> Date: Sun, 11 May 2025 08:13:25 +0000 Subject: Add a new option "-capability" to slang-test and render-test (#7054) --- tools/render-test/options.cpp | 13 +++++++++++++ tools/render-test/options.h | 2 ++ tools/render-test/slang-support.cpp | 9 +++++++++ 3 files changed, 24 insertions(+) (limited to 'tools/render-test') diff --git a/tools/render-test/options.cpp b/tools/render-test/options.cpp index e50166017..e4163b312 100644 --- a/tools/render-test/options.cpp +++ b/tools/render-test/options.cpp @@ -170,6 +170,19 @@ static rhi::DeviceType _toRenderType(Slang::RenderApiType apiType) { outOptions.generateSPIRVDirectly = false; } + else if (argValue == "-capability" || argValue == "-capabilities") + { + String capabilities; + SLANG_RETURN_ON_FAIL(reader.expectArg(capabilities)); + + List values; + StringUtil::split(capabilities.getUnownedSlice(), ',', values); + + for (const auto& value : values) + { + outOptions.capabilities.add(value); + } + } else if (argValue == "-only-startup") { outOptions.onlyStartup = true; diff --git a/tools/render-test/options.h b/tools/render-test/options.h index 4c7e6faa1..ff938e8c4 100644 --- a/tools/render-test/options.h +++ b/tools/render-test/options.h @@ -95,6 +95,8 @@ struct Options bool skipSPIRVValidation = false; + Slang::List capabilities; + Options() { downstreamArgs.addName("slang"); } static SlangResult parse( diff --git a/tools/render-test/slang-support.cpp b/tools/render-test/slang-support.cpp index c54abb1f8..2f39ed078 100644 --- a/tools/render-test/slang-support.cpp +++ b/tools/render-test/slang-support.cpp @@ -211,6 +211,15 @@ static SlangResult _compileProgramImpl( sessionOptionEntries.add(entry); } + for (auto& capability : options.capabilities) + { + slang::CompilerOptionEntry entry; + entry.name = slang::CompilerOptionName::Capability; + entry.value.kind = slang::CompilerOptionValueKind::String; + entry.value.stringValue0 = capability.getBuffer(); + sessionOptionEntries.add(entry); + } + sessionDesc.compilerOptionEntryCount = sessionOptionEntries.getCount(); sessionDesc.compilerOptionEntries = sessionOptionEntries.getBuffer(); -- cgit v1.2.3