From 52666a33c6293fbfa7cf9e6441c8a58023bb4515 Mon Sep 17 00:00:00 2001 From: Philip Rebohle Date: Sat, 12 Feb 2022 19:50:52 +0100 Subject: [PATCH] [dxvk] Expose a way to increment stat counters In case the counters come from external sources. --- src/dxvk/dxvk_cmdlist.h | 2 +- src/dxvk/dxvk_context.h | 13 +++++++++++++ src/dxvk/dxvk_device.h | 11 +++++++++++ 3 files changed, 25 insertions(+), 1 deletion(-) diff --git a/src/dxvk/dxvk_cmdlist.h b/src/dxvk/dxvk_cmdlist.h index 5dda8dbf..c8fe75d0 100644 --- a/src/dxvk/dxvk_cmdlist.h +++ b/src/dxvk/dxvk_cmdlist.h @@ -102,7 +102,7 @@ namespace dxvk { * \param [in] ctr The counter to increment * \param [in] val The value to add */ - void addStatCtr(DxvkStatCounter ctr, uint32_t val) { + void addStatCtr(DxvkStatCounter ctr, uint64_t val) { m_statCounters.addCtr(ctr, val); } diff --git a/src/dxvk/dxvk_context.h b/src/dxvk/dxvk_context.h index 3f1d9190..97c041c2 100644 --- a/src/dxvk/dxvk_context.h +++ b/src/dxvk/dxvk_context.h @@ -1068,6 +1068,19 @@ namespace dxvk { */ void insertDebugLabel(VkDebugUtilsLabelEXT *label); + /** + * \brief Increments a given stat counter + * + * The stat counters will be merged into the global + * stat counters upon execution of the command list. + * \param [in] counter Stat counter to increment + * \param [in] value Increment value + */ + void addStatCtr(DxvkStatCounter counter, uint64_t value) { + if (m_cmd != nullptr) + m_cmd->addStatCtr(counter, value); + } + private: Rc m_device; diff --git a/src/dxvk/dxvk_device.h b/src/dxvk/dxvk_device.h index 41c7df58..4e18bd93 100644 --- a/src/dxvk/dxvk_device.h +++ b/src/dxvk/dxvk_device.h @@ -456,6 +456,17 @@ namespace dxvk { return m_submissionQueue.pendingSubmissions(); } + /** + * \brief Increments a given stat counter + * + * \param [in] counter Stat counter to increment + * \param [in] value Increment value + */ + void addStatCtr(DxvkStatCounter counter, uint64_t value) { + std::lock_guard lock(m_statLock); + m_statCounters.addCtr(counter, value); + } + /** * \brief Waits for a given submission *