Dawn: Enable UsePackedDepth24UnormStencil8Format by default for QC D3D12
This CL make UsePackedDepth24UnormStencil8Format toggle enabled by
default for Qualcomm D3D12 devices to workaround WebGPU CTS failures
of depth24plus-stencil8 texture loading/sampling.
Bug: 411268750
Change-Id: Ie6129b06493029c4681dc5b94eff9cb19771797f
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/237554
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
Commit-Queue: Zhaoming Jiang <zhaoming.jiang@microsoft.com>
Reviewed-by: Loko Kung <lokokung@google.com>
diff --git a/src/dawn/native/d3d12/PhysicalDeviceD3D12.cpp b/src/dawn/native/d3d12/PhysicalDeviceD3D12.cpp
index 3d15e00..ce5ca24 100644
--- a/src/dawn/native/d3d12/PhysicalDeviceD3D12.cpp
+++ b/src/dawn/native/d3d12/PhysicalDeviceD3D12.cpp
@@ -830,6 +830,13 @@
deviceToggles->Default(Toggle::D3D12ExpandShaderResourceStateTransitionsToCopySource, true);
}
+ // Use packed DXGI_FORMAT_D24_UNORM_S8_UINT format on Qualcomm devices to workaround texture
+ // loading/sampling issues for depth24plus-stencil8 texture.
+ // See https://crbug.com/411268750 for more information.
+ if (gpu_info::IsQualcomm_ACPI(vendorId) || gpu_info::IsQualcomm_PCI(vendorId)) {
+ deviceToggles->Default(Toggle::UsePackedDepth24UnormStencil8Format, true);
+ }
+
// Use the Tint IR backend by default if the corresponding platform feature is enabled.
deviceToggles->Default(Toggle::UseTintIR,
platform->IsFeatureEnabled(platform::Features::kWebGPUUseTintIR));