diff --git a/src/dxvk/dxvk_device.cpp b/src/dxvk/dxvk_device.cpp index 28585ee09..f9e5c1e7c 100644 --- a/src/dxvk/dxvk_device.cpp +++ b/src/dxvk/dxvk_device.cpp @@ -118,7 +118,6 @@ namespace dxvk { Rc DxvkDevice::createBuffer( const DxvkBufferCreateInfo& createInfo, VkMemoryPropertyFlags memoryType) { - m_statCounters.increment(DxvkStat::ResBufferCreations, 1); return new DxvkBuffer(this, createInfo, memoryType); } @@ -133,7 +132,6 @@ namespace dxvk { Rc DxvkDevice::createImage( const DxvkImageCreateInfo& createInfo, VkMemoryPropertyFlags memoryType) { - m_statCounters.increment(DxvkStat::ResImageCreations, 1); return new DxvkImage(m_vkd, createInfo, *m_memory, memoryType); } @@ -206,8 +204,6 @@ namespace dxvk { VkResult DxvkDevice::presentSwapImage( const VkPresentInfoKHR& presentInfo) { - m_statCounters.increment(DxvkStat::DevQueuePresents, 1); - std::lock_guard lock(m_submissionLock); return m_vkd->vkQueuePresentKHR(m_presentQueue, &presentInfo); } @@ -240,14 +236,11 @@ namespace dxvk { // Add this to the set of running submissions m_submissionQueue.submit(fence, commandList); - m_statCounters.increment(DxvkStat::DevQueueSubmissions, 1); return fence; } void DxvkDevice::waitForIdle() { - m_statCounters.increment(DxvkStat::DevSynchronizations, 1); - if (m_vkd->vkDeviceWaitIdle(m_vkd->device()) != VK_SUCCESS) Logger::err("DxvkDevice: waitForIdle: Operation failed"); } diff --git a/src/dxvk/dxvk_device.h b/src/dxvk/dxvk_device.h index f052f734f..42a1a89fd 100644 --- a/src/dxvk/dxvk_device.h +++ b/src/dxvk/dxvk_device.h @@ -18,7 +18,6 @@ #include "dxvk_renderpass.h" #include "dxvk_sampler.h" #include "dxvk_shader.h" -#include "dxvk_stats.h" #include "dxvk_swapchain.h" #include "dxvk_sync.h" #include "dxvk_unbound.h" @@ -329,14 +328,6 @@ namespace dxvk { */ void waitForIdle(); - /** - * \brief Retrieves stat counters - * \returns Stat counters - */ - DxvkStatCounters queryCounters() const { - return m_statCounters; - } - private: Rc m_adapter; @@ -359,8 +350,6 @@ namespace dxvk { DxvkRecycler m_recycledCommandLists; DxvkRecycler m_recycledStagingBuffers; - DxvkStatCounters m_statCounters; - DxvkSubmissionQueue m_submissionQueue; void recycleCommandList( diff --git a/src/dxvk/dxvk_stats.cpp b/src/dxvk/dxvk_stats.cpp deleted file mode 100644 index ca9f4d2c2..000000000 --- a/src/dxvk/dxvk_stats.cpp +++ /dev/null @@ -1,41 +0,0 @@ -#include "dxvk_stats.h" - -namespace dxvk { - - DxvkStatCounters:: DxvkStatCounters() { } - DxvkStatCounters::~DxvkStatCounters() { } - - - DxvkStatCounters::DxvkStatCounters(const DxvkStatCounters& other) { - for (size_t i = 0; i < m_counters.size(); i++) - m_counters[i] = other.m_counters[i].load(); - } - - - DxvkStatCounters& DxvkStatCounters::operator = (const DxvkStatCounters& other) { - for (size_t i = 0; i < m_counters.size(); i++) - m_counters[i] = other.m_counters[i].load(); - return *this; - } - - - DxvkStatCounters DxvkStatCounters::delta(const DxvkStatCounters& oldState) const { - DxvkStatCounters result; - for (size_t i = 0; i < m_counters.size(); i++) - result.m_counters[i] = m_counters[i] - oldState.m_counters[i];; - return result; - } - - - void DxvkStatCounters::addCounters(const DxvkStatCounters& counters) { - for (size_t i = 0; i < m_counters.size(); i++) - m_counters[i] += counters.m_counters[i]; - } - - - void DxvkStatCounters::clear() { - for (size_t i = 0; i < m_counters.size(); i++) - m_counters[i] = 0; - } - -} diff --git a/src/dxvk/dxvk_stats.h b/src/dxvk/dxvk_stats.h deleted file mode 100644 index 4b23266d3..000000000 --- a/src/dxvk/dxvk_stats.h +++ /dev/null @@ -1,108 +0,0 @@ -#pragma once - -#include -#include - -#include "dxvk_include.h" - -namespace dxvk { - - /** - * \brief Statistics counter - */ - enum class DxvkStat : uint32_t { - CtxDescriptorUpdates, ///< # of descriptor set writes - CtxDrawCalls, ///< # of vkCmdDraw/vkCmdDrawIndexed - CtxDispatchCalls, ///< # of vkCmdDispatch - CtxFramebufferBinds, ///< # of render pass begin/end - CtxPipelineBinds, ///< # of vkCmdBindPipeline - DevQueueSubmissions, ///< # of vkQueueSubmit - DevQueuePresents, ///< # of vkQueuePresentKHR (aka frames) - DevSynchronizations, ///< # of vkDeviceWaitIdle - ResBufferCreations, ///< # of buffer creations - ResBufferUpdates, ///< # of unmapped buffer updates - ResImageCreations, ///< # of image creations - ResImageUpdates, ///< # of unmapped image updates - // Do not remove - MaxCounterId - }; - - - /** - * \brief Device statistics - * - * Stores a bunch of counters that may be useful - * for performance evaluation and optimization. - */ - class DxvkStatCounters { - - public: - - DxvkStatCounters(); - ~DxvkStatCounters(); - - DxvkStatCounters( - const DxvkStatCounters& other); - - DxvkStatCounters& operator = (const DxvkStatCounters& other); - - /** - * \brief Increments a counter by a given value - * - * \param [in] counter The counter to increment - * \param [in] amount Number to add to the counter - */ - void increment(DxvkStat counter, uint32_t amount) { - m_counters[counterId(counter)] += amount; - } - - /** - * \brief Returns a counter - * - * \param [in] counter The counter to retrieve - * \returns Current value of the counter - */ - uint32_t get(DxvkStat counter) const { - return m_counters[counterId(counter)]; - } - - /** - * \brief Computes delta to a previous state - * - * \param [in] oldState previous state - * \returns Difference to previous state - */ - DxvkStatCounters delta( - const DxvkStatCounters& oldState) const; - - /** - * \brief Adds counters from another source - * - * Adds each counter from the source operand to the - * corresponding counter in this set. Useful to merge - * context counters and device counters. - * \param [in] counters Counters to add - */ - void addCounters( - const DxvkStatCounters& counters); - - /** - * \brief Clears counters - * - * Should be used to clear per-context counters. - * Do not clear the global device counters. - */ - void clear(); - - private: - - std::array, - static_cast(DxvkStat::MaxCounterId)> m_counters; - - static size_t counterId(DxvkStat counter) { - return static_cast(counter); - } - - }; - -} diff --git a/src/dxvk/meson.build b/src/dxvk/meson.build index 1a5e54d61..a5ccfb417 100644 --- a/src/dxvk/meson.build +++ b/src/dxvk/meson.build @@ -40,7 +40,6 @@ dxvk_src = files([ 'dxvk_sampler.cpp', 'dxvk_shader.cpp', 'dxvk_staging.cpp', - 'dxvk_stats.cpp', 'dxvk_surface.cpp', 'dxvk_swapchain.cpp', 'dxvk_sync.cpp',