From 34e433ad90a98974be523f5c8241b52dd32b27c4 Mon Sep 17 00:00:00 2001 From: Junkui Zhang <364772080@qq.com> Date: Thu, 31 Jul 2025 00:05:56 +0800 Subject: [PATCH] check debug layer before creating --- crates/gpui/src/platform/windows/directx_renderer.rs | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/crates/gpui/src/platform/windows/directx_renderer.rs b/crates/gpui/src/platform/windows/directx_renderer.rs index 67e2cbc14bf2f8837175f997f9ea1e69b437ec68..8c65bc3921a820cba3c32590d3b3d11ef617f506 100644 --- a/crates/gpui/src/platform/windows/directx_renderer.rs +++ b/crates/gpui/src/platform/windows/directx_renderer.rs @@ -974,7 +974,17 @@ impl Drop for DirectXResources { #[inline] fn get_dxgi_factory() -> Result { #[cfg(debug_assertions)] - let factory_flag = DXGI_CREATE_FACTORY_DEBUG; + let factory_flag = if unsafe { DXGIGetDebugInterface1::(0) } + .log_err() + .is_some() + { + DXGI_CREATE_FACTORY_DEBUG + } else { + log::error!( + "Failed to get DXGI debug interface. DirectX debugging features will be disabled." + ); + DXGI_CREATE_FACTORY_FLAGS::default() + }; #[cfg(not(debug_assertions))] let factory_flag = DXGI_CREATE_FACTORY_FLAGS::default(); unsafe { Ok(CreateDXGIFactory2(factory_flag)?) }