From 8e587af0daee210cd0c23278caebebe6a7457858 Mon Sep 17 00:00:00 2001 From: Philip Rebohle Date: Fri, 13 Dec 2019 11:15:52 +0100 Subject: [PATCH] [dxvk] Add method to retrieve per-heap memory stats --- src/dxvk/dxvk_device.cpp | 5 +++++ src/dxvk/dxvk_device.h | 8 ++++++++ src/dxvk/dxvk_memory.h | 12 ++++++++++++ 3 files changed, 25 insertions(+) diff --git a/src/dxvk/dxvk_device.cpp b/src/dxvk/dxvk_device.cpp index 751cd33d..4c4f57e6 100644 --- a/src/dxvk/dxvk_device.cpp +++ b/src/dxvk/dxvk_device.cpp @@ -175,6 +175,11 @@ namespace dxvk { result.merge(m_statCounters); return result; } + + + DxvkMemoryStats DxvkDevice::getMemoryStats(uint32_t heap) { + return m_objects.memoryManager().getMemoryStats(heap); + } uint32_t DxvkDevice::getCurrentFrameId() const { diff --git a/src/dxvk/dxvk_device.h b/src/dxvk/dxvk_device.h index 7565b340..bebaa1f4 100644 --- a/src/dxvk/dxvk_device.h +++ b/src/dxvk/dxvk_device.h @@ -350,6 +350,14 @@ namespace dxvk { */ DxvkStatCounters getStatCounters(); + /** + * \brief Retrieves memors statistics + * + * \param [in] heap Memory heap index + * \returns Memory stats for this heap + */ + DxvkMemoryStats getMemoryStats(uint32_t heap); + /** * \brief Retreves current frame ID * \returns Current frame ID diff --git a/src/dxvk/dxvk_memory.h b/src/dxvk/dxvk_memory.h index bb2a8aac..021a1c1d 100644 --- a/src/dxvk/dxvk_memory.h +++ b/src/dxvk/dxvk_memory.h @@ -271,6 +271,18 @@ namespace dxvk { */ DxvkMemoryStats getMemoryStats(); + /** + * \brief Queries memory stats + * + * Returns the total amount of memory + * allocated and used for a given heap. + * \param [in] heap Heap index + * \returns Memory stats for this heap + */ + DxvkMemoryStats getMemoryStats(uint32_t heap) const { + return m_memHeaps[heap].stats; + } + private: const Rc m_vkd;