diff --git a/src/dxgi/dxgi_swapchain.cpp b/src/dxgi/dxgi_swapchain.cpp index 4a04b81b0..30f976638 100644 --- a/src/dxgi/dxgi_swapchain.cpp +++ b/src/dxgi/dxgi_swapchain.cpp @@ -269,6 +269,7 @@ namespace dxvk { HRESULT DxgiSwapChain::CreateBackBuffer() { + // Figure out sample count based on swap chain description VkSampleCountFlagBits sampleCount = VK_SAMPLE_COUNT_1_BIT; if (FAILED(GetSampleCount(m_desc.SampleDesc.Count, &sampleCount))) { @@ -276,6 +277,9 @@ namespace dxvk { return E_INVALIDARG; } + // Destroy previous back buffer before creating a new one + m_backBuffer = nullptr; + if (FAILED(m_presentDevice->CreateSwapChainBackBuffer(&m_desc, &m_backBuffer))) { Logger::err("DxgiSwapChain: Failed to create back buffer"); return E_FAIL;