Use DXC by default, but force FXC on SM < 6.0
This is necessary so that if the "use_dxc" flag is explicitly set (via
CLI or a future Finch var), we need to make sure to still use FXC on
SM < 6.0.
Change-Id: Id7baa0e1bca28f987ccd2cdc652087524f3c4d72
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/138860
Reviewed-by: Austin Eng <enga@chromium.org>
Kokoro: Kokoro <noreply+kokoro@google.com>
Commit-Queue: Antonio Maiorano <amaiorano@google.com>
diff --git a/src/dawn/native/d3d12/PhysicalDeviceD3D12.cpp b/src/dawn/native/d3d12/PhysicalDeviceD3D12.cpp
index 40e8f38..be29dd5 100644
--- a/src/dawn/native/d3d12/PhysicalDeviceD3D12.cpp
+++ b/src/dawn/native/d3d12/PhysicalDeviceD3D12.cpp
@@ -460,9 +460,11 @@
void PhysicalDevice::SetupBackendAdapterToggles(TogglesState* adapterToggles) const {
// Check for use_dxc toggle
#ifdef DAWN_BUILD_DXC
- // By default, use DXC is shader model >= 6.0, otherwise we use FXC
- const bool default_use_dxc = GetDeviceInfo().shaderModel >= 60;
- adapterToggles->Default(Toggle::UseDXC, default_use_dxc);
+ // Default to using DXC. If shader model < 6.0, though, we must use FXC.
+ if (GetDeviceInfo().shaderModel <= 60) {
+ adapterToggles->ForceSet(Toggle::UseDXC, false);
+ }
+ adapterToggles->Default(Toggle::UseDXC, true);
#else
// Default to using FXC
if (!GetBackend()->IsDXCAvailable()) {