diff --git a/renderdoc/driver/vulkan/vk_common.h b/renderdoc/driver/vulkan/vk_common.h index b12af4ec4..5890e3e14 100644 --- a/renderdoc/driver/vulkan/vk_common.h +++ b/renderdoc/driver/vulkan/vk_common.h @@ -650,6 +650,9 @@ DECLARE_REFLECTION_STRUCT(VkDeviceGroupRenderPassBeginInfo); DECLARE_REFLECTION_STRUCT(VkMemoryAllocateFlagsInfo); DECLARE_REFLECTION_STRUCT(VkProtectedSubmitInfo); DECLARE_REFLECTION_STRUCT(VkImageFormatListCreateInfoKHR); +DECLARE_REFLECTION_STRUCT(VkDispatchIndirectCommand); +DECLARE_REFLECTION_STRUCT(VkDrawIndirectCommand); +DECLARE_REFLECTION_STRUCT(VkDrawIndexedIndirectCommand); DECLARE_DESERIALISE_TYPE(VkDeviceCreateInfo); DECLARE_DESERIALISE_TYPE(VkBufferCreateInfo); diff --git a/renderdoc/driver/vulkan/vk_serialise.cpp b/renderdoc/driver/vulkan/vk_serialise.cpp index 619a7385f..723c82f0b 100644 --- a/renderdoc/driver/vulkan/vk_serialise.cpp +++ b/renderdoc/driver/vulkan/vk_serialise.cpp @@ -2532,6 +2532,33 @@ void Deserialise(const VkImageFormatListCreateInfoKHR &el) delete[] el.pViewFormats; } +template +void DoSerialise(SerialiserType &ser, VkDispatchIndirectCommand &el) +{ + SERIALISE_MEMBER(x); + SERIALISE_MEMBER(y); + SERIALISE_MEMBER(z); +} + +template +void DoSerialise(SerialiserType &ser, VkDrawIndirectCommand &el) +{ + SERIALISE_MEMBER(vertexCount); + SERIALISE_MEMBER(instanceCount); + SERIALISE_MEMBER(firstVertex); + SERIALISE_MEMBER(firstInstance); +} + +template +void DoSerialise(SerialiserType &ser, VkDrawIndexedIndirectCommand &el) +{ + SERIALISE_MEMBER(indexCount); + SERIALISE_MEMBER(instanceCount); + SERIALISE_MEMBER(firstIndex); + SERIALISE_MEMBER(vertexOffset); + SERIALISE_MEMBER(firstInstance); +} + template void DoSerialise(SerialiserType &ser, VkDeviceQueueInfo2 &el) { @@ -3120,6 +3147,9 @@ INSTANTIATE_SERIALISE_TYPE(VkDeviceGroupRenderPassBeginInfo); INSTANTIATE_SERIALISE_TYPE(VkMemoryAllocateFlagsInfo); INSTANTIATE_SERIALISE_TYPE(VkProtectedSubmitInfo); INSTANTIATE_SERIALISE_TYPE(VkImageFormatListCreateInfoKHR); +INSTANTIATE_SERIALISE_TYPE(VkDispatchIndirectCommand); +INSTANTIATE_SERIALISE_TYPE(VkDrawIndirectCommand); +INSTANTIATE_SERIALISE_TYPE(VkDrawIndexedIndirectCommand); INSTANTIATE_SERIALISE_TYPE(DescriptorSetSlot); INSTANTIATE_SERIALISE_TYPE(ImageRegionState);