Disable D3D12 backend on Intel Gen7 GPUs Bug: 462468373 Change-Id: I54cccce1e92eb3e85fab85c648fbf482f42734a5 Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/277095 Reviewed-by: Corentin Wallez <cwallez@chromium.org> Reviewed-by: Loko Kung <lokokung@google.com> Commit-Queue: Shao, Jiawei <jiawei.shao@intel.com>
diff --git a/src/dawn/native/d3d12/PhysicalDeviceD3D12.cpp b/src/dawn/native/d3d12/PhysicalDeviceD3D12.cpp index 3416b6b..de46acf 100644 --- a/src/dawn/native/d3d12/PhysicalDeviceD3D12.cpp +++ b/src/dawn/native/d3d12/PhysicalDeviceD3D12.cpp
@@ -106,6 +106,9 @@ return DAWN_INTERNAL_ERROR("D3D12CreateDevice failed"); } + // Check if we should block the use of D3D12 on the current device. + DAWN_TRY(ValidateUseOfD3D12()); + DAWN_TRY(InitializeDebugLayerFilters()); DAWN_TRY_ASSIGN(mDeviceInfo, GatherDeviceInfo(*this)); @@ -878,6 +881,19 @@ platform->IsFeatureEnabled(platform::Features::kWebGPUEnableRangeAnalysisForRobustness)); } +MaybeError PhysicalDevice::ValidateUseOfD3D12() const { + uint32_t deviceId = GetDeviceId(); + uint32_t vendorId = GetVendorId(); + + // D3D12 is no longer allowed on 4th Generation Intel Processor Graphics. + // https://www.intel.com/content/www/us/en/support/articles/000057520/graphics.html + if (gpu_info::IsIntelGen7(vendorId, deviceId)) { + return DAWN_VALIDATION_ERROR("D3D12 backend is not allowed on Intel gen-7 GPUs."); + } + + return {}; +} + ResultOrError<Ref<DeviceBase>> PhysicalDevice::CreateDeviceImpl( AdapterBase* adapter, const UnpackedPtr<DeviceDescriptor>& descriptor,
diff --git a/src/dawn/native/d3d12/PhysicalDeviceD3D12.h b/src/dawn/native/d3d12/PhysicalDeviceD3D12.h index ff8c964..7838f56 100644 --- a/src/dawn/native/d3d12/PhysicalDeviceD3D12.h +++ b/src/dawn/native/d3d12/PhysicalDeviceD3D12.h
@@ -84,6 +84,8 @@ wgpu::FeatureName feature, const TogglesState& toggles) const override; + MaybeError ValidateUseOfD3D12() const; + MaybeError InitializeDebugLayerFilters(); void CleanUpDebugLayerFilters();