diff options
| author | cheneym2 <acheney@nvidia.com> | 2025-02-19 09:08:57 -0500 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2025-02-19 14:08:57 +0000 |
| commit | 0959d7ebeb6932b1949a4be10e5c472327006352 (patch) | |
| tree | 851cc988f590c472954229824781cfe9519d0801 /tools/slang-test/slang-test-main.cpp | |
| parent | 12d09b5a6cb9e921aace1bec484c76244e9afa94 (diff) | |
Show adapter info in slang-test (#6388)
When -show-adapter-info is provided to slang-test, there is a subsequent pass over all available APIs to ask render-api to show which adapter will be used.
> .\slang-test.exe -show-adapter-info
Supported backends: fxc dxc glslang spirv-dis clang visualstudio genericcpp nvrtc llvm spirv-opt tint
Check vk,vulkan: Supported
Check dx12,d3d12: Supported
Check dx11,d3d11: Supported
Check cuda: Supported
Check wgpu,webgpu: Supported
Adapter Information for Available APIs:
vk,vulkan:
Using graphics adapter: NVIDIA RTX A3000 Laptop GPU
dx12,d3d12:
Using graphics adapter: NVIDIA RTX A3000 Laptop GPU
dx11,d3d11:
Using graphics adapter: Intel(R) UHD Graphics
cpu:
cuda:
wgpu,webgpu:
Using graphics adapter: default
passed test: 'tests/autodiff/arithmetic-jvp.slang (dx11)'
...
closes #5600
* format code
---------
Co-authored-by: slangbot <186143334+slangbot@users.noreply.github.com>
Diffstat (limited to 'tools/slang-test/slang-test-main.cpp')
| -rw-r--r-- | tools/slang-test/slang-test-main.cpp | 41 |
1 files changed, 41 insertions, 0 deletions
diff --git a/tools/slang-test/slang-test-main.cpp b/tools/slang-test/slang-test-main.cpp index 5db82fcb7..10bc99017 100644 --- a/tools/slang-test/slang-test-main.cpp +++ b/tools/slang-test/slang-test-main.cpp @@ -1391,6 +1391,47 @@ static RenderApiFlags _getAvailableRenderApiFlags(TestContext* context) } } + // After determining available APIs, print adapter info for each one + if (context->options.showAdapterInfo && availableRenderApiFlags) + { + StdWriters::getOut().print("\nAdapter Information for Available APIs:\n"); + for (int i = 0; i < int(RenderApiType::CountOf); ++i) + { + const RenderApiType apiType = RenderApiType(i); + const RenderApiFlags apiFlag = RenderApiFlags(1) << int(apiType); + + if (availableRenderApiFlags & apiFlag) + { + // Create command line to query adapter info + CommandLine cmdLine; + cmdLine.setExecutableLocation( + ExecutableLocation(context->options.binDir, "render-test")); + + // Add the API type + StringBuilder builder; + builder << "-" << RenderApiUtil::getApiName(apiType); + cmdLine.addArg(builder); + + // Add flags to show adapter info and only startup + cmdLine.addArg("-show-adapter-info"); + cmdLine.addArg("-only-startup"); + + // Run render-test to get adapter info + ExecuteResult exeRes; + if (SLANG_SUCCEEDED( + spawnAndWaitSharedLibrary(context, "adapter-info", cmdLine, exeRes))) + { + // Output the adapter info + StdWriters::getOut().print( + "\n%s:\n%s", + RenderApiUtil::getApiName(apiType).begin(), + exeRes.standardOutput.getBuffer()); + } + } + } + StdWriters::getOut().print("\n"); + } + context->availableRenderApiFlags = availableRenderApiFlags; context->isAvailableRenderApiFlagsValid = true; } |
