From 7d31a7f16fed4fbee078c0d5f755b06e795ab719 Mon Sep 17 00:00:00 2001 From: Philip Rebohle Date: Tue, 1 Oct 2024 14:52:08 +0200 Subject: [PATCH] [dxvk] Add command list parameter to some query-related functions And reintroduce cmdResetQueryPool. --- src/dxvk/dxvk_cmdlist.h | 22 ++++++++++++++++++---- src/dxvk/dxvk_gpu_query.cpp | 5 ++--- 2 files changed, 20 insertions(+), 7 deletions(-) diff --git a/src/dxvk/dxvk_cmdlist.h b/src/dxvk/dxvk_cmdlist.h index 77592d73..cfeacebc 100644 --- a/src/dxvk/dxvk_cmdlist.h +++ b/src/dxvk/dxvk_cmdlist.h @@ -610,6 +610,7 @@ namespace dxvk { void cmdCopyQueryPoolResults( + DxvkCmdBuffer cmdBuffer, VkQueryPool queryPool, uint32_t firstQuery, uint32_t queryCount, @@ -617,9 +618,9 @@ namespace dxvk { VkDeviceSize dstOffset, VkDeviceSize stride, VkQueryResultFlags flags) { - m_cmd.usedFlags.set(DxvkCmdBuffer::ExecBuffer); + m_cmd.usedFlags.set(cmdBuffer); - m_vkd->vkCmdCopyQueryPoolResults(m_cmd.execBuffer, + m_vkd->vkCmdCopyQueryPoolResults(getCmdBuffer(cmdBuffer), queryPool, firstQuery, queryCount, dstBuffer, dstOffset, stride, flags); } @@ -791,6 +792,18 @@ namespace dxvk { } + void cmdResetQueryPool( + DxvkCmdBuffer cmdBuffer, + VkQueryPool queryPool, + uint32_t firstQuery, + uint32_t queryCount) { + m_cmd.usedFlags.set(cmdBuffer); + + m_vkd->vkCmdResetQueryPool(getCmdBuffer(cmdBuffer), + queryPool, firstQuery, queryCount); + } + + void cmdResolveImage( const VkResolveImageInfo2* resolveInfo) { m_cmd.usedFlags.set(DxvkCmdBuffer::ExecBuffer); @@ -969,12 +982,13 @@ namespace dxvk { void cmdWriteTimestamp( + DxvkCmdBuffer cmdBuffer, VkPipelineStageFlagBits2 pipelineStage, VkQueryPool queryPool, uint32_t query) { - m_cmd.usedFlags.set(DxvkCmdBuffer::ExecBuffer); + m_cmd.usedFlags.set(cmdBuffer); - m_vkd->vkCmdWriteTimestamp2(m_cmd.execBuffer, + m_vkd->vkCmdWriteTimestamp2(getCmdBuffer(cmdBuffer), pipelineStage, queryPool, query); } diff --git a/src/dxvk/dxvk_gpu_query.cpp b/src/dxvk/dxvk_gpu_query.cpp index aaec6a0f..0a3858ed 100644 --- a/src/dxvk/dxvk_gpu_query.cpp +++ b/src/dxvk/dxvk_gpu_query.cpp @@ -339,10 +339,9 @@ namespace dxvk { handle.queryPool, handle.queryId); - cmd->cmdWriteTimestamp( + cmd->cmdWriteTimestamp(DxvkCmdBuffer::ExecBuffer, VK_PIPELINE_STAGE_ALL_COMMANDS_BIT, - handle.queryPool, - handle.queryId); + handle.queryPool, handle.queryId); cmd->trackResource(query); }