From 2f48521ce7527cdd3bb06b0dc65ce5ebf2a57cc6 Mon Sep 17 00:00:00 2001 From: Ari Vuollet Date: Thu, 9 May 2024 20:09:27 +0300 Subject: [PATCH] Fallback to D3D11 devices without debug layers when unavailable --- .../DirectX/DX11/GPUDeviceDX11.cpp | 23 ++++++++++++++++++- 1 file changed, 22 insertions(+), 1 deletion(-) diff --git a/Source/Engine/GraphicsDevice/DirectX/DX11/GPUDeviceDX11.cpp b/Source/Engine/GraphicsDevice/DirectX/DX11/GPUDeviceDX11.cpp index 2d90b50ae..59f42f57e 100644 --- a/Source/Engine/GraphicsDevice/DirectX/DX11/GPUDeviceDX11.cpp +++ b/Source/Engine/GraphicsDevice/DirectX/DX11/GPUDeviceDX11.cpp @@ -71,7 +71,28 @@ static bool TryCreateDevice(IDXGIAdapter* adapter, D3D_FEATURE_LEVEL maxFeatureL context->Release(); return true; } - +#if GPU_ENABLE_DIAGNOSTICS + deviceFlags &= ~D3D11_CREATE_DEVICE_DEBUG; + if (SUCCEEDED(D3D11CreateDevice( + adapter, + D3D_DRIVER_TYPE_UNKNOWN, + NULL, + deviceFlags, + &featureLevels[levelIndex], + ARRAY_COUNT(featureLevels) - levelIndex, + D3D11_SDK_VERSION, + &device, + featureLevel, + &context + ))) + { + LOG(Warning, "Direct3D SDK debug layers were requested, but not available."); + device->Release(); + context->Release(); + return true; + } +#endif + return false; }