From e970ee0e33b84b6d8965fa0f10d953677e6e6846 Mon Sep 17 00:00:00 2001 From: baldurk Date: Wed, 6 Jan 2021 15:15:32 +0000 Subject: [PATCH] Fix issue with clamped length with byte offset in buffer viewer --- qrenderdoc/Windows/BufferViewer.cpp | 15 ++++++++------- 1 file changed, 8 insertions(+), 7 deletions(-) diff --git a/qrenderdoc/Windows/BufferViewer.cpp b/qrenderdoc/Windows/BufferViewer.cpp index a63b1ddc9..88dc3f9a3 100644 --- a/qrenderdoc/Windows/BufferViewer.cpp +++ b/qrenderdoc/Windows/BufferViewer.cpp @@ -2579,16 +2579,17 @@ void BufferViewer::OnEventChanged(uint32_t eventId) uint64_t unclampedLen = m_ByteSize; if(unclampedLen == UINT64_MAX) { - uint64_t bufLen = + unclampedLen = m_IsBuffer && m_BufferID != ResourceId() ? m_Ctx.GetBuffer(m_BufferID)->length : 0; - uint64_t bufOffs = m_ByteOffset; - - if(bufOffs >= bufLen) - unclampedLen = 0; - else - unclampedLen = bufLen - bufOffs; } + uint64_t bufOffs = m_ByteOffset; + + if(bufOffs >= unclampedLen) + unclampedLen = 0; + else + unclampedLen = unclampedLen - bufOffs; + unclampedLen -= m_PagingByteOffset; uint64_t clampedLen = qMin(unclampedLen, uint64_t(buf->stride * (MaxVisibleRows + 2)));