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 *