mirror of
https://github.com/baldurk/renderdoc.git
synced 2026-08-28 17:36:36 +00:00
Store the size of the push constant range in the vulkan pipeline state
This commit is contained in:
@@ -802,9 +802,8 @@ void VulkanReplay::SavePipelineState()
|
||||
|
||||
m_VulkanPipelineState = VKPipe::State();
|
||||
|
||||
m_VulkanPipelineState.pushconsts.resize(ARRAY_COUNT(state.pushconsts));
|
||||
memcpy(m_VulkanPipelineState.pushconsts.data(), state.pushconsts,
|
||||
m_VulkanPipelineState.pushconsts.size());
|
||||
m_VulkanPipelineState.pushconsts.resize(state.pushConstSize);
|
||||
memcpy(m_VulkanPipelineState.pushconsts.data(), state.pushconsts, state.pushConstSize);
|
||||
|
||||
// General pipeline properties
|
||||
m_VulkanPipelineState.compute.pipelineResourceId = rm->GetOriginalID(state.compute.pipeline);
|
||||
|
||||
@@ -68,6 +68,8 @@ struct VulkanRenderState
|
||||
|
||||
// this should be big enough for any implementation
|
||||
byte pushconsts[1024];
|
||||
// the actual number of bytes that have been uploaded
|
||||
uint32_t pushConstSize = 0;
|
||||
|
||||
ResourceId renderPass;
|
||||
uint32_t subpass;
|
||||
|
||||
@@ -1980,6 +1980,8 @@ bool WrappedVulkan::Serialise_vkCmdPushConstants(SerialiserType &ser, VkCommandB
|
||||
RDCASSERT(start + length < (uint32_t)ARRAY_COUNT(m_RenderState.pushconsts));
|
||||
|
||||
memcpy(m_RenderState.pushconsts + start, values, length);
|
||||
|
||||
m_RenderState.pushConstSize = RDCMAX(m_RenderState.pushConstSize, start + length);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user