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()) {