diff --git a/sdk/src/backends/dx12/FrameInterpolationSwapchain/FrameInterpolationSwapchainDX12.cpp b/sdk/src/backends/dx12/FrameInterpolationSwapchain/FrameInterpolationSwapchainDX12.cpp index 580c8674..865e49c7 100644 --- a/sdk/src/backends/dx12/FrameInterpolationSwapchain/FrameInterpolationSwapchainDX12.cpp +++ b/sdk/src/backends/dx12/FrameInterpolationSwapchain/FrameInterpolationSwapchainDX12.cpp @@ -1307,7 +1307,11 @@ HRESULT STDMETHODCALLTYPE FrameInterpolationSwapChainDX12::ResizeBuffers(UINT Bu const UINT fiAdjustedFlags = getInterpolationEnabledSwapChainFlags(SwapChainFlags); // update params expected by the application - gameBufferCount_ = BufferCount; + // a buffer count of zero means we need to preserve the original count + if (BufferCount != 0) + { + gameBufferCount_ = BufferCount; + } gameFlags_ = SwapChainFlags; HRESULT hr = real()->ResizeBuffers(0 /* preserve count */, Width, Height, NewFormat, fiAdjustedFlags);