From e4d49aeb66a7e94d1a98170b1495a5ea372d3732 Mon Sep 17 00:00:00 2001 From: Philip Rebohle Date: Wed, 24 Jan 2018 15:44:40 +0100 Subject: [PATCH] [dxvk] Fixed reported size of staging buffers Fixes staging slice allocation in Tomb Raider (2013), and potentially other games which allocate large staging buffers. --- src/dxvk/dxvk_buffer.cpp | 1 - src/dxvk/dxvk_staging.cpp | 4 +++- 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/src/dxvk/dxvk_buffer.cpp b/src/dxvk/dxvk_buffer.cpp index 925723a1..7fb31634 100644 --- a/src/dxvk/dxvk_buffer.cpp +++ b/src/dxvk/dxvk_buffer.cpp @@ -49,7 +49,6 @@ namespace dxvk { Rc DxvkBuffer::allocPhysicalBuffer(VkDeviceSize sliceCount) const { - TRACE(this, sliceCount); return m_device->allocPhysicalBuffer(m_info, sliceCount, m_memFlags); } diff --git a/src/dxvk/dxvk_staging.cpp b/src/dxvk/dxvk_staging.cpp index 2d7c8d6d..6b0dbc3a 100644 --- a/src/dxvk/dxvk_staging.cpp +++ b/src/dxvk/dxvk_staging.cpp @@ -21,7 +21,9 @@ namespace dxvk { VkDeviceSize DxvkStagingBuffer::freeBytes() const { - return m_bufferSize - m_bufferOffset; + return m_bufferSize >= m_bufferOffset + ? m_bufferSize - m_bufferOffset + : VkDeviceSize(0); }