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)?) }