From 762fc1b4459764bbd892dc3cfbd20c6528581ab4 Mon Sep 17 00:00:00 2001 From: baldurk Date: Mon, 8 Dec 2025 14:09:44 +0000 Subject: [PATCH] Add pipeline bit to remove validation message --- renderdoc/driver/vulkan/vk_common.cpp | 33 ++++++++++--------- .../driver/vulkan/wrappers/vk_draw_funcs.cpp | 14 ++++---- 2 files changed, 26 insertions(+), 21 deletions(-) diff --git a/renderdoc/driver/vulkan/vk_common.cpp b/renderdoc/driver/vulkan/vk_common.cpp index 9e9da0568..83ce71e36 100644 --- a/renderdoc/driver/vulkan/vk_common.cpp +++ b/renderdoc/driver/vulkan/vk_common.cpp @@ -673,31 +673,34 @@ VkShaderStageFlags ShaderMaskFromIndex(size_t index) void DoPipelineBarrier(VkCommandBuffer cmd, size_t count, const VkImageMemoryBarrier *barriers) { RDCASSERT(cmd != VK_NULL_HANDLE); - ObjDisp(cmd)->CmdPipelineBarrier(Unwrap(cmd), VK_PIPELINE_STAGE_ALL_COMMANDS_BIT, - VK_PIPELINE_STAGE_ALL_COMMANDS_BIT, 0, 0, - NULL, // global memory barriers - 0, NULL, // buffer memory barriers - (uint32_t)count, barriers); // image memory barriers + ObjDisp(cmd)->CmdPipelineBarrier( + Unwrap(cmd), VK_PIPELINE_STAGE_ALL_COMMANDS_BIT | VK_PIPELINE_STAGE_HOST_BIT, + VK_PIPELINE_STAGE_ALL_COMMANDS_BIT | VK_PIPELINE_STAGE_HOST_BIT, 0, 0, + NULL, // global memory barriers + 0, NULL, // buffer memory barriers + (uint32_t)count, barriers); // image memory barriers } void DoPipelineBarrier(VkCommandBuffer cmd, size_t count, const VkBufferMemoryBarrier *barriers) { RDCASSERT(cmd != VK_NULL_HANDLE); - ObjDisp(cmd)->CmdPipelineBarrier(Unwrap(cmd), VK_PIPELINE_STAGE_ALL_COMMANDS_BIT, - VK_PIPELINE_STAGE_ALL_COMMANDS_BIT, 0, 0, - NULL, // global memory barriers - (uint32_t)count, barriers, // buffer memory barriers - 0, NULL); // image memory barriers + ObjDisp(cmd)->CmdPipelineBarrier( + Unwrap(cmd), VK_PIPELINE_STAGE_ALL_COMMANDS_BIT | VK_PIPELINE_STAGE_HOST_BIT, + VK_PIPELINE_STAGE_ALL_COMMANDS_BIT | VK_PIPELINE_STAGE_HOST_BIT, 0, 0, + NULL, // global memory barriers + (uint32_t)count, barriers, // buffer memory barriers + 0, NULL); // image memory barriers } void DoPipelineBarrier(VkCommandBuffer cmd, size_t count, const VkMemoryBarrier *barriers) { RDCASSERT(cmd != VK_NULL_HANDLE); - ObjDisp(cmd)->CmdPipelineBarrier(Unwrap(cmd), VK_PIPELINE_STAGE_ALL_COMMANDS_BIT, - VK_PIPELINE_STAGE_ALL_COMMANDS_BIT, 0, (uint32_t)count, - barriers, // global memory barriers - 0, NULL, // buffer memory barriers - 0, NULL); // image memory barriers + ObjDisp(cmd)->CmdPipelineBarrier( + Unwrap(cmd), VK_PIPELINE_STAGE_ALL_COMMANDS_BIT | VK_PIPELINE_STAGE_HOST_BIT, + VK_PIPELINE_STAGE_ALL_COMMANDS_BIT | VK_PIPELINE_STAGE_HOST_BIT, 0, (uint32_t)count, + barriers, // global memory barriers + 0, NULL, // buffer memory barriers + 0, NULL); // image memory barriers } VkDescriptorType MakeVkDescriptorType(DescriptorType type, bool inputAttachment) diff --git a/renderdoc/driver/vulkan/wrappers/vk_draw_funcs.cpp b/renderdoc/driver/vulkan/wrappers/vk_draw_funcs.cpp index 9a8602766..31b801338 100644 --- a/renderdoc/driver/vulkan/wrappers/vk_draw_funcs.cpp +++ b/renderdoc/driver/vulkan/wrappers/vk_draw_funcs.cpp @@ -139,9 +139,10 @@ void WrappedVulkan::ExecuteIndirectReadback(VkCommandBuffer commandBuffer, const VkIndirectRecordData &indirectcopy) { ObjDisp(commandBuffer) - ->CmdPipelineBarrier(Unwrap(commandBuffer), VK_PIPELINE_STAGE_ALL_COMMANDS_BIT, - VK_PIPELINE_STAGE_ALL_COMMANDS_BIT, 0, 0, NULL, 1, - &indirectcopy.paramsBarrier, 0, NULL); + ->CmdPipelineBarrier(Unwrap(commandBuffer), + VK_PIPELINE_STAGE_ALL_COMMANDS_BIT | VK_PIPELINE_STAGE_HOST_BIT, + VK_PIPELINE_STAGE_ALL_COMMANDS_BIT | VK_PIPELINE_STAGE_HOST_BIT, 0, 0, + NULL, 1, &indirectcopy.paramsBarrier, 0, NULL); ObjDisp(commandBuffer) ->CmdCopyBuffer(Unwrap(commandBuffer), Unwrap(indirectcopy.paramsCopy.src), @@ -150,9 +151,10 @@ void WrappedVulkan::ExecuteIndirectReadback(VkCommandBuffer commandBuffer, if(indirectcopy.countCopy.src != VK_NULL_HANDLE) { ObjDisp(commandBuffer) - ->CmdPipelineBarrier(Unwrap(commandBuffer), VK_PIPELINE_STAGE_ALL_COMMANDS_BIT, - VK_PIPELINE_STAGE_ALL_COMMANDS_BIT, 0, 0, NULL, 1, - &indirectcopy.countBarrier, 0, NULL); + ->CmdPipelineBarrier(Unwrap(commandBuffer), + VK_PIPELINE_STAGE_ALL_COMMANDS_BIT | VK_PIPELINE_STAGE_HOST_BIT, + VK_PIPELINE_STAGE_ALL_COMMANDS_BIT | VK_PIPELINE_STAGE_HOST_BIT, 0, 0, + NULL, 1, &indirectcopy.countBarrier, 0, NULL); ObjDisp(commandBuffer) ->CmdCopyBuffer(Unwrap(commandBuffer), Unwrap(indirectcopy.countCopy.src),