From 46fb3ac6665b9464a4bab77a23501ed9e84df221 Mon Sep 17 00:00:00 2001 From: baldurk Date: Tue, 8 Feb 2022 17:49:21 +0000 Subject: [PATCH] Fix push constant range not using full stage flags * The spec requires that we pass all stage flags for the declared range, even if we're only binding for compute. --- renderdoc/driver/vulkan/vk_state.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/renderdoc/driver/vulkan/vk_state.cpp b/renderdoc/driver/vulkan/vk_state.cpp index 889829780..db8cf9f13 100644 --- a/renderdoc/driver/vulkan/vk_state.cpp +++ b/renderdoc/driver/vulkan/vk_state.cpp @@ -532,7 +532,7 @@ void VulkanRenderState::BindPipeline(WrappedVulkan *vk, VkCommandBuffer cmd, // only set push constant ranges that the layout uses for(size_t i = 0; i < pushRanges.size(); i++) - ObjDisp(cmd)->CmdPushConstants(Unwrap(cmd), Unwrap(layout), VK_SHADER_STAGE_COMPUTE_BIT, + ObjDisp(cmd)->CmdPushConstants(Unwrap(cmd), Unwrap(layout), pushRanges[i].stageFlags, pushRanges[i].offset, pushRanges[i].size, pushconsts + pushRanges[i].offset);