Browse Source

[vulkan] Adjusted QueryReset's

CamilleLaVey 2 days ago
parent
commit
1c78d9e985
  1. 6
      src/video_core/renderer_vulkan/vk_query_cache.cpp
  2. 1
      src/video_core/vulkan_common/vulkan_wrapper.cpp
  3. 5
      src/video_core/vulkan_common/vulkan_wrapper.h

6
src/video_core/renderer_vulkan/vk_query_cache.cpp

@ -60,8 +60,6 @@ public:
void Reset() override {
ASSERT(references == 0);
VideoCommon::BankBase::Reset();
const auto& dev = device.GetLogical();
dev.ResetQueryPool(*query_pool, 0, BANK_SIZE);
host_results.fill(0ULL);
next_bank = 0;
}
@ -441,6 +439,10 @@ private:
}
current_bank = &bank_pool.GetBank(current_bank_id);
current_query_pool = current_bank->GetInnerPool();
scheduler.RequestOutsideRenderPassOperationContext();
scheduler.Record([query_pool = current_query_pool](vk::CommandBuffer cmdbuf) {
cmdbuf.ResetQueryPool(query_pool, 0, SamplesQueryBank::BANK_SIZE);
});
}
size_t ReserveBankSlot() {

1
src/video_core/vulkan_common/vulkan_wrapper.cpp

@ -127,6 +127,7 @@ void Load(VkDevice device, DeviceDispatch& dld) noexcept {
X(vkCmdPipelineBarrier);
X(vkCmdPushConstants);
X(vkCmdPushDescriptorSetWithTemplateKHR);
X(vkCmdResetQueryPool);
X(vkCmdSetBlendConstants);
X(vkCmdSetDepthBias);
X(vkCmdSetDepthBias2EXT);

5
src/video_core/vulkan_common/vulkan_wrapper.h

@ -228,6 +228,7 @@ struct DeviceDispatch : InstanceDispatch {
PFN_vkCmdPipelineBarrier vkCmdPipelineBarrier{};
PFN_vkCmdPushConstants vkCmdPushConstants{};
PFN_vkCmdPushDescriptorSetWithTemplateKHR vkCmdPushDescriptorSetWithTemplateKHR{};
PFN_vkCmdResetQueryPool vkCmdResetQueryPool{};
PFN_vkCmdResolveImage vkCmdResolveImage{};
PFN_vkCmdSetBlendConstants vkCmdSetBlendConstants{};
PFN_vkCmdSetCullModeEXT vkCmdSetCullModeEXT{};
@ -1172,6 +1173,10 @@ public:
dld->vkCmdPushDescriptorSetWithTemplateKHR(handle, update_template, layout, set, data);
}
void ResetQueryPool(VkQueryPool query_pool, u32 first, u32 count) const noexcept {
dld->vkCmdResetQueryPool(handle, query_pool, first, count);
}
void BindPipeline(VkPipelineBindPoint bind_point, VkPipeline pipeline) const noexcept {
dld->vkCmdBindPipeline(handle, bind_point, pipeline);
}

Loading…
Cancel
Save