mirror of
https://github.com/baldurk/renderdoc.git
synced 2026-05-13 05:20:45 +00:00
Fix DXGI implicit backbuffer index tracking
* When DXGI_PRESENT_TEST flag is present, the backbuffer index doesn't increment. * Resizing the buffers resets the index back to 0.
This commit is contained in:
@@ -352,6 +352,8 @@ HRESULT WrappedIDXGISwapChain4::ResizeBuffers(
|
||||
|
||||
WrapBuffersAfterResize();
|
||||
|
||||
m_LastPresentedBuffer = -1;
|
||||
|
||||
return ret;
|
||||
}
|
||||
|
||||
@@ -386,6 +388,8 @@ HRESULT WrappedIDXGISwapChain4::ResizeBuffers1(_In_ UINT BufferCount, _In_ UINT
|
||||
|
||||
WrapBuffersAfterResize();
|
||||
|
||||
m_LastPresentedBuffer = -1;
|
||||
|
||||
return ret;
|
||||
}
|
||||
|
||||
@@ -534,8 +538,11 @@ HRESULT WrappedIDXGISwapChain4::Present(
|
||||
SyncInterval = 0;
|
||||
}
|
||||
|
||||
TickLastPresentedBuffer();
|
||||
m_pDevice->Present(this, SyncInterval, Flags);
|
||||
if((Flags & DXGI_PRESENT_TEST) == 0)
|
||||
{
|
||||
TickLastPresentedBuffer();
|
||||
m_pDevice->Present(this, SyncInterval, Flags);
|
||||
}
|
||||
|
||||
return m_pReal->Present(SyncInterval, Flags);
|
||||
}
|
||||
@@ -548,8 +555,11 @@ HRESULT WrappedIDXGISwapChain4::Present1(UINT SyncInterval, UINT Flags,
|
||||
SyncInterval = 0;
|
||||
}
|
||||
|
||||
TickLastPresentedBuffer();
|
||||
m_pDevice->Present(this, SyncInterval, Flags);
|
||||
if((Flags & DXGI_PRESENT_TEST) == 0)
|
||||
{
|
||||
TickLastPresentedBuffer();
|
||||
m_pDevice->Present(this, SyncInterval, Flags);
|
||||
}
|
||||
|
||||
return m_pReal1->Present1(SyncInterval, Flags, pPresentParameters);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user