mirror of
https://github.com/doitsujin/dxvk.git
synced 2025-02-01 08:52:11 +01:00
[dxvk] Increment stat counters in command list rather than context
Might change some numbers, but it's closer to reality.
This commit is contained in:
parent
7cd8a14673
commit
c2928ab3e2
@ -474,7 +474,6 @@ namespace dxvk {
|
|||||||
return;
|
return;
|
||||||
|
|
||||||
list->cmdPipelineBarrier(m_cmdBuffer, &depInfo);
|
list->cmdPipelineBarrier(m_cmdBuffer, &depInfo);
|
||||||
list->addStatCtr(DxvkStatCounter::CmdBarrierCount, 1u);
|
|
||||||
|
|
||||||
m_memoryBarrier.srcStageMask = 0u;
|
m_memoryBarrier.srcStageMask = 0u;
|
||||||
m_memoryBarrier.srcAccessMask = 0u;
|
m_memoryBarrier.srcAccessMask = 0u;
|
||||||
|
@ -425,6 +425,7 @@ namespace dxvk {
|
|||||||
void cmdBeginRendering(
|
void cmdBeginRendering(
|
||||||
const VkRenderingInfo* pRenderingInfo) {
|
const VkRenderingInfo* pRenderingInfo) {
|
||||||
m_cmd.execCommands = true;
|
m_cmd.execCommands = true;
|
||||||
|
m_statCounters.addCtr(DxvkStatCounter::CmdRenderPassCount, 1);
|
||||||
|
|
||||||
m_vkd->vkCmdBeginRendering(getCmdBuffer(), pRenderingInfo);
|
m_vkd->vkCmdBeginRendering(getCmdBuffer(), pRenderingInfo);
|
||||||
}
|
}
|
||||||
@ -633,6 +634,7 @@ namespace dxvk {
|
|||||||
uint32_t y,
|
uint32_t y,
|
||||||
uint32_t z) {
|
uint32_t z) {
|
||||||
m_cmd.execCommands |= cmdBuffer == DxvkCmdBuffer::ExecBuffer;
|
m_cmd.execCommands |= cmdBuffer == DxvkCmdBuffer::ExecBuffer;
|
||||||
|
m_statCounters.addCtr(DxvkStatCounter::CmdDispatchCalls, 1);
|
||||||
|
|
||||||
m_vkd->vkCmdDispatch(getCmdBuffer(cmdBuffer), x, y, z);
|
m_vkd->vkCmdDispatch(getCmdBuffer(cmdBuffer), x, y, z);
|
||||||
}
|
}
|
||||||
@ -643,6 +645,7 @@ namespace dxvk {
|
|||||||
VkBuffer buffer,
|
VkBuffer buffer,
|
||||||
VkDeviceSize offset) {
|
VkDeviceSize offset) {
|
||||||
m_cmd.execCommands |= cmdBuffer == DxvkCmdBuffer::ExecBuffer;
|
m_cmd.execCommands |= cmdBuffer == DxvkCmdBuffer::ExecBuffer;
|
||||||
|
m_statCounters.addCtr(DxvkStatCounter::CmdDispatchCalls, 1);
|
||||||
|
|
||||||
m_vkd->vkCmdDispatchIndirect(getCmdBuffer(cmdBuffer), buffer, offset);
|
m_vkd->vkCmdDispatchIndirect(getCmdBuffer(cmdBuffer), buffer, offset);
|
||||||
}
|
}
|
||||||
@ -653,6 +656,8 @@ namespace dxvk {
|
|||||||
uint32_t instanceCount,
|
uint32_t instanceCount,
|
||||||
uint32_t firstVertex,
|
uint32_t firstVertex,
|
||||||
uint32_t firstInstance) {
|
uint32_t firstInstance) {
|
||||||
|
m_statCounters.addCtr(DxvkStatCounter::CmdDrawCalls, 1);
|
||||||
|
|
||||||
m_vkd->vkCmdDraw(getCmdBuffer(),
|
m_vkd->vkCmdDraw(getCmdBuffer(),
|
||||||
vertexCount, instanceCount,
|
vertexCount, instanceCount,
|
||||||
firstVertex, firstInstance);
|
firstVertex, firstInstance);
|
||||||
@ -664,6 +669,8 @@ namespace dxvk {
|
|||||||
VkDeviceSize offset,
|
VkDeviceSize offset,
|
||||||
uint32_t drawCount,
|
uint32_t drawCount,
|
||||||
uint32_t stride) {
|
uint32_t stride) {
|
||||||
|
m_statCounters.addCtr(DxvkStatCounter::CmdDrawCalls, 1);
|
||||||
|
|
||||||
m_vkd->vkCmdDrawIndirect(getCmdBuffer(),
|
m_vkd->vkCmdDrawIndirect(getCmdBuffer(),
|
||||||
buffer, offset, drawCount, stride);
|
buffer, offset, drawCount, stride);
|
||||||
}
|
}
|
||||||
@ -676,6 +683,8 @@ namespace dxvk {
|
|||||||
VkDeviceSize countOffset,
|
VkDeviceSize countOffset,
|
||||||
uint32_t maxDrawCount,
|
uint32_t maxDrawCount,
|
||||||
uint32_t stride) {
|
uint32_t stride) {
|
||||||
|
m_statCounters.addCtr(DxvkStatCounter::CmdDrawCalls, 1);
|
||||||
|
|
||||||
m_vkd->vkCmdDrawIndirectCount(getCmdBuffer(),
|
m_vkd->vkCmdDrawIndirectCount(getCmdBuffer(),
|
||||||
buffer, offset, countBuffer, countOffset, maxDrawCount, stride);
|
buffer, offset, countBuffer, countOffset, maxDrawCount, stride);
|
||||||
}
|
}
|
||||||
@ -687,6 +696,8 @@ namespace dxvk {
|
|||||||
uint32_t firstIndex,
|
uint32_t firstIndex,
|
||||||
int32_t vertexOffset,
|
int32_t vertexOffset,
|
||||||
uint32_t firstInstance) {
|
uint32_t firstInstance) {
|
||||||
|
m_statCounters.addCtr(DxvkStatCounter::CmdDrawCalls, 1);
|
||||||
|
|
||||||
m_vkd->vkCmdDrawIndexed(getCmdBuffer(),
|
m_vkd->vkCmdDrawIndexed(getCmdBuffer(),
|
||||||
indexCount, instanceCount,
|
indexCount, instanceCount,
|
||||||
firstIndex, vertexOffset,
|
firstIndex, vertexOffset,
|
||||||
@ -699,6 +710,8 @@ namespace dxvk {
|
|||||||
VkDeviceSize offset,
|
VkDeviceSize offset,
|
||||||
uint32_t drawCount,
|
uint32_t drawCount,
|
||||||
uint32_t stride) {
|
uint32_t stride) {
|
||||||
|
m_statCounters.addCtr(DxvkStatCounter::CmdDrawCalls, 1);
|
||||||
|
|
||||||
m_vkd->vkCmdDrawIndexedIndirect(getCmdBuffer(),
|
m_vkd->vkCmdDrawIndexedIndirect(getCmdBuffer(),
|
||||||
buffer, offset, drawCount, stride);
|
buffer, offset, drawCount, stride);
|
||||||
}
|
}
|
||||||
@ -711,6 +724,8 @@ namespace dxvk {
|
|||||||
VkDeviceSize countOffset,
|
VkDeviceSize countOffset,
|
||||||
uint32_t maxDrawCount,
|
uint32_t maxDrawCount,
|
||||||
uint32_t stride) {
|
uint32_t stride) {
|
||||||
|
m_statCounters.addCtr(DxvkStatCounter::CmdDrawCalls, 1);
|
||||||
|
|
||||||
m_vkd->vkCmdDrawIndexedIndirectCount(getCmdBuffer(),
|
m_vkd->vkCmdDrawIndexedIndirectCount(getCmdBuffer(),
|
||||||
buffer, offset, countBuffer, countOffset, maxDrawCount, stride);
|
buffer, offset, countBuffer, countOffset, maxDrawCount, stride);
|
||||||
}
|
}
|
||||||
@ -723,6 +738,8 @@ namespace dxvk {
|
|||||||
VkDeviceSize counterBufferOffset,
|
VkDeviceSize counterBufferOffset,
|
||||||
uint32_t counterOffset,
|
uint32_t counterOffset,
|
||||||
uint32_t vertexStride) {
|
uint32_t vertexStride) {
|
||||||
|
m_statCounters.addCtr(DxvkStatCounter::CmdDrawCalls, 1);
|
||||||
|
|
||||||
m_vkd->vkCmdDrawIndirectByteCountEXT(getCmdBuffer(),
|
m_vkd->vkCmdDrawIndirectByteCountEXT(getCmdBuffer(),
|
||||||
instanceCount, firstInstance, counterBuffer,
|
instanceCount, firstInstance, counterBuffer,
|
||||||
counterBufferOffset, counterOffset, vertexStride);
|
counterBufferOffset, counterOffset, vertexStride);
|
||||||
@ -777,6 +794,7 @@ namespace dxvk {
|
|||||||
DxvkCmdBuffer cmdBuffer,
|
DxvkCmdBuffer cmdBuffer,
|
||||||
const VkDependencyInfo* dependencyInfo) {
|
const VkDependencyInfo* dependencyInfo) {
|
||||||
m_cmd.execCommands |= cmdBuffer == DxvkCmdBuffer::ExecBuffer;
|
m_cmd.execCommands |= cmdBuffer == DxvkCmdBuffer::ExecBuffer;
|
||||||
|
m_statCounters.addCtr(DxvkStatCounter::CmdBarrierCount, 1);
|
||||||
|
|
||||||
m_vkd->vkCmdPipelineBarrier2(getCmdBuffer(cmdBuffer), dependencyInfo);
|
m_vkd->vkCmdPipelineBarrier2(getCmdBuffer(cmdBuffer), dependencyInfo);
|
||||||
}
|
}
|
||||||
|
@ -827,8 +827,6 @@ namespace dxvk {
|
|||||||
m_queryManager.endQueries(m_cmd,
|
m_queryManager.endQueries(m_cmd,
|
||||||
VK_QUERY_TYPE_PIPELINE_STATISTICS);
|
VK_QUERY_TYPE_PIPELINE_STATISTICS);
|
||||||
}
|
}
|
||||||
|
|
||||||
m_cmd->addStatCtr(DxvkStatCounter::CmdDispatchCalls, 1);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@ -864,8 +862,6 @@ namespace dxvk {
|
|||||||
|
|
||||||
this->trackDrawBuffer();
|
this->trackDrawBuffer();
|
||||||
}
|
}
|
||||||
|
|
||||||
m_cmd->addStatCtr(DxvkStatCounter::CmdDispatchCalls, 1);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@ -879,8 +875,6 @@ namespace dxvk {
|
|||||||
vertexCount, instanceCount,
|
vertexCount, instanceCount,
|
||||||
firstVertex, firstInstance);
|
firstVertex, firstInstance);
|
||||||
}
|
}
|
||||||
|
|
||||||
m_cmd->addStatCtr(DxvkStatCounter::CmdDrawCalls, 1);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@ -896,8 +890,6 @@ namespace dxvk {
|
|||||||
descriptor.buffer.offset + offset,
|
descriptor.buffer.offset + offset,
|
||||||
count, stride);
|
count, stride);
|
||||||
}
|
}
|
||||||
|
|
||||||
m_cmd->addStatCtr(DxvkStatCounter::CmdDrawCalls, 1);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@ -917,8 +909,6 @@ namespace dxvk {
|
|||||||
cntDescriptor.buffer.offset + countOffset,
|
cntDescriptor.buffer.offset + countOffset,
|
||||||
maxCount, stride);
|
maxCount, stride);
|
||||||
}
|
}
|
||||||
|
|
||||||
m_cmd->addStatCtr(DxvkStatCounter::CmdDrawCalls, 1);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@ -934,8 +924,6 @@ namespace dxvk {
|
|||||||
firstIndex, vertexOffset,
|
firstIndex, vertexOffset,
|
||||||
firstInstance);
|
firstInstance);
|
||||||
}
|
}
|
||||||
|
|
||||||
m_cmd->addStatCtr(DxvkStatCounter::CmdDrawCalls, 1);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@ -951,8 +939,6 @@ namespace dxvk {
|
|||||||
descriptor.buffer.offset + offset,
|
descriptor.buffer.offset + offset,
|
||||||
count, stride);
|
count, stride);
|
||||||
}
|
}
|
||||||
|
|
||||||
m_cmd->addStatCtr(DxvkStatCounter::CmdDrawCalls, 1);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@ -972,8 +958,6 @@ namespace dxvk {
|
|||||||
cntDescriptor.buffer.offset + countOffset,
|
cntDescriptor.buffer.offset + countOffset,
|
||||||
maxCount, stride);
|
maxCount, stride);
|
||||||
}
|
}
|
||||||
|
|
||||||
m_cmd->addStatCtr(DxvkStatCounter::CmdDrawCalls, 1);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@ -990,8 +974,6 @@ namespace dxvk {
|
|||||||
counterBias,
|
counterBias,
|
||||||
counterDivisor);
|
counterDivisor);
|
||||||
}
|
}
|
||||||
|
|
||||||
m_cmd->addStatCtr(DxvkStatCounter::CmdDrawCalls, 1);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@ -4749,8 +4731,6 @@ namespace dxvk {
|
|||||||
|
|
||||||
for (uint32_t i = 0; i < framebufferInfo.numAttachments(); i++)
|
for (uint32_t i = 0; i < framebufferInfo.numAttachments(); i++)
|
||||||
m_cmd->track(framebufferInfo.getAttachment(i).view->image(), DxvkAccess::Write);
|
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;
|
depInfo.pMemoryBarriers = &barrier;
|
||||||
|
|
||||||
m_cmd->cmdPipelineBarrier(DxvkCmdBuffer::ExecBuffer, &depInfo);
|
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->cmdPipelineBarrier(DxvkCmdBuffer::ExecBuffer, &depInfo);
|
||||||
m_cmd->addStatCtr(DxvkStatCounter::CmdBarrierCount, 1);
|
|
||||||
|
|
||||||
// Set up post-copy barriers
|
// Set up post-copy barriers
|
||||||
depInfo = { VK_STRUCTURE_TYPE_DEPENDENCY_INFO };
|
depInfo = { VK_STRUCTURE_TYPE_DEPENDENCY_INFO };
|
||||||
@ -6547,7 +6525,6 @@ namespace dxvk {
|
|||||||
}
|
}
|
||||||
|
|
||||||
m_cmd->cmdPipelineBarrier(DxvkCmdBuffer::ExecBuffer, &depInfo);
|
m_cmd->cmdPipelineBarrier(DxvkCmdBuffer::ExecBuffer, &depInfo);
|
||||||
m_cmd->addStatCtr(DxvkStatCounter::CmdBarrierCount, 1);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@ -6671,8 +6648,6 @@ namespace dxvk {
|
|||||||
depInfo.pMemoryBarriers = &barrier;
|
depInfo.pMemoryBarriers = &barrier;
|
||||||
|
|
||||||
m_cmd->cmdPipelineBarrier(DxvkCmdBuffer::InitBuffer, &depInfo);
|
m_cmd->cmdPipelineBarrier(DxvkCmdBuffer::InitBuffer, &depInfo);
|
||||||
m_cmd->addStatCtr(DxvkStatCounter::CmdBarrierCount, 1);
|
|
||||||
|
|
||||||
return m_zeroBuffer;
|
return m_zeroBuffer;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -6772,7 +6747,6 @@ namespace dxvk {
|
|||||||
depInfo.pImageMemoryBarriers = m_imageLayoutTransitions.data();
|
depInfo.pImageMemoryBarriers = m_imageLayoutTransitions.data();
|
||||||
|
|
||||||
m_cmd->cmdPipelineBarrier(cmdBuffer, &depInfo);
|
m_cmd->cmdPipelineBarrier(cmdBuffer, &depInfo);
|
||||||
m_cmd->addStatCtr(DxvkStatCounter::CmdBarrierCount, 1u);
|
|
||||||
} else {
|
} else {
|
||||||
// If we're recording into an out-of-order command buffer, batch
|
// If we're recording into an out-of-order command buffer, batch
|
||||||
// layout transitions into a dedicated command buffer in order to
|
// layout transitions into a dedicated command buffer in order to
|
||||||
|
Loading…
x
Reference in New Issue
Block a user