diff --git a/src/dxgi/dxgi_swapchain.cpp b/src/dxgi/dxgi_swapchain.cpp index a55be36e..304b1bbe 100644 --- a/src/dxgi/dxgi_swapchain.cpp +++ b/src/dxgi/dxgi_swapchain.cpp @@ -410,9 +410,6 @@ namespace dxvk { IDXGIOutput* pTarget) { std::lock_guard lock(m_lockWindow); - if (!IsWindow(m_window)) - return DXGI_ERROR_INVALID_CALL; - if (m_descFs.Windowed && Fullscreen) return this->EnterFullscreenMode(pTarget); else if (!m_descFs.Windowed && !Fullscreen) @@ -522,6 +519,9 @@ namespace dxvk { HRESULT DxgiSwapChain::EnterFullscreenMode(IDXGIOutput* pTarget) { Com output = static_cast(pTarget); + + if (!IsWindow(m_window)) + return DXGI_ERROR_NOT_CURRENTLY_AVAILABLE; if (output == nullptr) { if (FAILED(GetContainingOutput(&output))) { @@ -581,6 +581,9 @@ namespace dxvk { HRESULT DxgiSwapChain::LeaveFullscreenMode() { Com output; + + if (!IsWindow(m_window)) + return DXGI_ERROR_NOT_CURRENTLY_AVAILABLE; if (FAILED(m_adapter->GetOutputFromMonitor(m_monitor, &output)) || FAILED(RestoreDisplayMode(output.ptr())))