diff --git a/src/dxvk/dxvk_barrier.cpp b/src/dxvk/dxvk_barrier.cpp index 78acf12f7..287a0ff2f 100644 --- a/src/dxvk/dxvk_barrier.cpp +++ b/src/dxvk/dxvk_barrier.cpp @@ -474,7 +474,6 @@ namespace dxvk { return; list->cmdPipelineBarrier(m_cmdBuffer, &depInfo); - list->addStatCtr(DxvkStatCounter::CmdBarrierCount, 1u); m_memoryBarrier.srcStageMask = 0u; m_memoryBarrier.srcAccessMask = 0u; diff --git a/src/dxvk/dxvk_cmdlist.h b/src/dxvk/dxvk_cmdlist.h index e7ccb2b24..c17fe325d 100644 --- a/src/dxvk/dxvk_cmdlist.h +++ b/src/dxvk/dxvk_cmdlist.h @@ -425,6 +425,7 @@ namespace dxvk { void cmdBeginRendering( const VkRenderingInfo* pRenderingInfo) { m_cmd.execCommands = true; + m_statCounters.addCtr(DxvkStatCounter::CmdRenderPassCount, 1); m_vkd->vkCmdBeginRendering(getCmdBuffer(), pRenderingInfo); } @@ -633,6 +634,7 @@ namespace dxvk { uint32_t y, uint32_t z) { m_cmd.execCommands |= cmdBuffer == DxvkCmdBuffer::ExecBuffer; + m_statCounters.addCtr(DxvkStatCounter::CmdDispatchCalls, 1); m_vkd->vkCmdDispatch(getCmdBuffer(cmdBuffer), x, y, z); } @@ -643,6 +645,7 @@ namespace dxvk { VkBuffer buffer, VkDeviceSize offset) { m_cmd.execCommands |= cmdBuffer == DxvkCmdBuffer::ExecBuffer; + m_statCounters.addCtr(DxvkStatCounter::CmdDispatchCalls, 1); m_vkd->vkCmdDispatchIndirect(getCmdBuffer(cmdBuffer), buffer, offset); } @@ -653,6 +656,8 @@ namespace dxvk { uint32_t instanceCount, uint32_t firstVertex, uint32_t firstInstance) { + m_statCounters.addCtr(DxvkStatCounter::CmdDrawCalls, 1); + m_vkd->vkCmdDraw(getCmdBuffer(), vertexCount, instanceCount, firstVertex, firstInstance); @@ -664,6 +669,8 @@ namespace dxvk { VkDeviceSize offset, uint32_t drawCount, uint32_t stride) { + m_statCounters.addCtr(DxvkStatCounter::CmdDrawCalls, 1); + m_vkd->vkCmdDrawIndirect(getCmdBuffer(), buffer, offset, drawCount, stride); } @@ -676,6 +683,8 @@ namespace dxvk { VkDeviceSize countOffset, uint32_t maxDrawCount, uint32_t stride) { + m_statCounters.addCtr(DxvkStatCounter::CmdDrawCalls, 1); + m_vkd->vkCmdDrawIndirectCount(getCmdBuffer(), buffer, offset, countBuffer, countOffset, maxDrawCount, stride); } @@ -687,6 +696,8 @@ namespace dxvk { uint32_t firstIndex, int32_t vertexOffset, uint32_t firstInstance) { + m_statCounters.addCtr(DxvkStatCounter::CmdDrawCalls, 1); + m_vkd->vkCmdDrawIndexed(getCmdBuffer(), indexCount, instanceCount, firstIndex, vertexOffset, @@ -699,6 +710,8 @@ namespace dxvk { VkDeviceSize offset, uint32_t drawCount, uint32_t stride) { + m_statCounters.addCtr(DxvkStatCounter::CmdDrawCalls, 1); + m_vkd->vkCmdDrawIndexedIndirect(getCmdBuffer(), buffer, offset, drawCount, stride); } @@ -711,6 +724,8 @@ namespace dxvk { VkDeviceSize countOffset, uint32_t maxDrawCount, uint32_t stride) { + m_statCounters.addCtr(DxvkStatCounter::CmdDrawCalls, 1); + m_vkd->vkCmdDrawIndexedIndirectCount(getCmdBuffer(), buffer, offset, countBuffer, countOffset, maxDrawCount, stride); } @@ -723,6 +738,8 @@ namespace dxvk { VkDeviceSize counterBufferOffset, uint32_t counterOffset, uint32_t vertexStride) { + m_statCounters.addCtr(DxvkStatCounter::CmdDrawCalls, 1); + m_vkd->vkCmdDrawIndirectByteCountEXT(getCmdBuffer(), instanceCount, firstInstance, counterBuffer, counterBufferOffset, counterOffset, vertexStride); @@ -777,6 +794,7 @@ namespace dxvk { DxvkCmdBuffer cmdBuffer, const VkDependencyInfo* dependencyInfo) { m_cmd.execCommands |= cmdBuffer == DxvkCmdBuffer::ExecBuffer; + m_statCounters.addCtr(DxvkStatCounter::CmdBarrierCount, 1); m_vkd->vkCmdPipelineBarrier2(getCmdBuffer(cmdBuffer), dependencyInfo); } diff --git a/src/dxvk/dxvk_context.cpp b/src/dxvk/dxvk_context.cpp index 2a6c5e12e..90bba9000 100644 --- a/src/dxvk/dxvk_context.cpp +++ b/src/dxvk/dxvk_context.cpp @@ -827,8 +827,6 @@ namespace dxvk { m_queryManager.endQueries(m_cmd, VK_QUERY_TYPE_PIPELINE_STATISTICS); } - - m_cmd->addStatCtr(DxvkStatCounter::CmdDispatchCalls, 1); } @@ -864,8 +862,6 @@ namespace dxvk { this->trackDrawBuffer(); } - - m_cmd->addStatCtr(DxvkStatCounter::CmdDispatchCalls, 1); } @@ -879,8 +875,6 @@ namespace dxvk { vertexCount, instanceCount, firstVertex, firstInstance); } - - m_cmd->addStatCtr(DxvkStatCounter::CmdDrawCalls, 1); } @@ -896,8 +890,6 @@ namespace dxvk { descriptor.buffer.offset + offset, count, stride); } - - m_cmd->addStatCtr(DxvkStatCounter::CmdDrawCalls, 1); } @@ -917,8 +909,6 @@ namespace dxvk { cntDescriptor.buffer.offset + countOffset, maxCount, stride); } - - m_cmd->addStatCtr(DxvkStatCounter::CmdDrawCalls, 1); } @@ -934,8 +924,6 @@ namespace dxvk { firstIndex, vertexOffset, firstInstance); } - - m_cmd->addStatCtr(DxvkStatCounter::CmdDrawCalls, 1); } @@ -951,8 +939,6 @@ namespace dxvk { descriptor.buffer.offset + offset, count, stride); } - - m_cmd->addStatCtr(DxvkStatCounter::CmdDrawCalls, 1); } @@ -972,8 +958,6 @@ namespace dxvk { cntDescriptor.buffer.offset + countOffset, maxCount, stride); } - - m_cmd->addStatCtr(DxvkStatCounter::CmdDrawCalls, 1); } @@ -990,8 +974,6 @@ namespace dxvk { counterBias, counterDivisor); } - - m_cmd->addStatCtr(DxvkStatCounter::CmdDrawCalls, 1); } @@ -4749,8 +4731,6 @@ namespace dxvk { for (uint32_t i = 0; i < framebufferInfo.numAttachments(); i++) m_cmd->track(framebufferInfo.getAttachment(i).view->image(), DxvkAccess::Write); - - m_cmd->addStatCtr(DxvkStatCounter::CmdRenderPassCount, 1); } @@ -6224,7 +6204,6 @@ namespace dxvk { depInfo.pMemoryBarriers = &barrier; m_cmd->cmdPipelineBarrier(DxvkCmdBuffer::ExecBuffer, &depInfo); - m_cmd->addStatCtr(DxvkStatCounter::CmdBarrierCount, 1); } @@ -6404,7 +6383,6 @@ namespace dxvk { } m_cmd->cmdPipelineBarrier(DxvkCmdBuffer::ExecBuffer, &depInfo); - m_cmd->addStatCtr(DxvkStatCounter::CmdBarrierCount, 1); // Set up post-copy barriers depInfo = { VK_STRUCTURE_TYPE_DEPENDENCY_INFO }; @@ -6547,7 +6525,6 @@ namespace dxvk { } m_cmd->cmdPipelineBarrier(DxvkCmdBuffer::ExecBuffer, &depInfo); - m_cmd->addStatCtr(DxvkStatCounter::CmdBarrierCount, 1); } @@ -6671,8 +6648,6 @@ namespace dxvk { depInfo.pMemoryBarriers = &barrier; m_cmd->cmdPipelineBarrier(DxvkCmdBuffer::InitBuffer, &depInfo); - m_cmd->addStatCtr(DxvkStatCounter::CmdBarrierCount, 1); - return m_zeroBuffer; } @@ -6772,7 +6747,6 @@ namespace dxvk { depInfo.pImageMemoryBarriers = m_imageLayoutTransitions.data(); m_cmd->cmdPipelineBarrier(cmdBuffer, &depInfo); - m_cmd->addStatCtr(DxvkStatCounter::CmdBarrierCount, 1u); } else { // If we're recording into an out-of-order command buffer, batch // layout transitions into a dedicated command buffer in order to