diff --git a/src/dxgi/dxgi_main.cpp b/src/dxgi/dxgi_main.cpp index c12566570..4eb7454cd 100644 --- a/src/dxgi/dxgi_main.cpp +++ b/src/dxgi/dxgi_main.cpp @@ -6,13 +6,18 @@ namespace dxvk { Logger Logger::s_instance("dxgi.log"); HRESULT createDxgiFactory(UINT Flags, REFIID riid, void **ppFactory) { - Com factory = new DxgiFactory(Flags); - HRESULT hr = factory->QueryInterface(riid, ppFactory); + try { + Com factory = new DxgiFactory(Flags); + HRESULT hr = factory->QueryInterface(riid, ppFactory); - if (FAILED(hr)) - return DXGI_ERROR_UNSUPPORTED; - - return S_OK; + if (FAILED(hr)) + return DXGI_ERROR_UNSUPPORTED; + + return S_OK; + } catch (const DxvkError& e) { + Logger::err(e.message()); + return E_FAIL; + } } }