From 3527f0975f671a693a0b7c59d80c6749c385b841 Mon Sep 17 00:00:00 2001 From: Jay Kwak <82421531+jkwak-work@users.noreply.github.com> Date: Wed, 5 Feb 2025 21:00:12 -0800 Subject: Enable D3D12 experimental feature to use coopvec (#6290) This commit enables "D3D12-experimenta-feature" in render-test. This is required to use CoopVec feature with dxcompiler.dll. But it is enabled only when "-dx12-experimental" is used, because it appears that DX12 becomes unstable when the experimental feature is enabled, which causes bunch of tests randomly failing. --- tools/render-test/render-test-main.cpp | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) (limited to 'tools/render-test/render-test-main.cpp') diff --git a/tools/render-test/render-test-main.cpp b/tools/render-test/render-test-main.cpp index a8bd00bd4..a167a4a27 100644 --- a/tools/render-test/render-test-main.cpp +++ b/tools/render-test/render-test-main.cpp @@ -13,6 +13,10 @@ #include "slang-support.h" #include "window.h" +#if defined(_WIN32) +#include +#endif + #include #include #include @@ -1391,6 +1395,20 @@ static SlangResult _innerMain( desc.requiredFeatures = requiredFeatureList.getBuffer(); desc.requiredFeatureCount = (int)requiredFeatureList.getCount(); +#if defined(_WIN32) + // When the experimental feature is enabled, things become unstable. + // It is enabled only when requested. + D3D12ExperimentalFeaturesDesc experimentalFD = {}; + UUID features[1] = {D3D12ExperimentalShaderModels}; + experimentalFD.featureCount = 1; + experimentalFD.featureIIDs = features; + experimentalFD.configurationStructs = nullptr; + experimentalFD.configurationStructSizes = nullptr; + + if (options.dx12Experimental) + desc.next = &experimentalFD; +#endif + // Look for args going to slang { const auto& args = options.downstreamArgs.getArgsByName("slang"); -- cgit v1.2.3