m_cleanupImageBarriers in WrappedVulkan does not update its size

This commit is contained in:
JorenJoestar
2024-12-02 10:40:14 +00:00
committed by Baldur Karlsson
parent 642a9954f4
commit 33008e3203
2 changed files with 17 additions and 0 deletions
+7
View File
@@ -1761,6 +1761,13 @@ struct ImageBarrierSequence
if(maxQueueFamilyIndex > MaxQueueFamilyIndex)
MaxQueueFamilyIndex = maxQueueFamilyIndex;
}
void ResizeForMaxQueueFamilyIndex(uint32_t maxQueueFamilyIndex)
{
for(uint32_t i = 0; i < MAX_BATCH_COUNT; i++)
batches[i].resize_for_index(maxQueueFamilyIndex);
}
ImageBarrierSequence()
{
for(uint32_t i = 0; i < MAX_BATCH_COUNT; i++)
@@ -4061,6 +4061,11 @@ bool WrappedVulkan::Serialise_vkCreateDevice(SerialiserType &ser, VkPhysicalDevi
uint32_t qidx = createInfo.pQueueCreateInfos[i].queueFamilyIndex;
m_ExternalQueues.resize(RDCMAX((uint32_t)m_ExternalQueues.size(), qidx + 1));
// Resize also the image barriers, as ImageBarrierSequence::SetMaxQueueFamilyIndex
// just sets the static MaxQueueFamilyIndex
m_setupImageBarriers.ResizeForMaxQueueFamilyIndex(qidx);
m_cleanupImageBarriers.ResizeForMaxQueueFamilyIndex(qidx);
ImageBarrierSequence::SetMaxQueueFamilyIndex(qidx);
VkCommandPoolCreateInfo poolInfo = {
@@ -4548,6 +4553,11 @@ VkResult WrappedVulkan::vkCreateDevice(VkPhysicalDevice physicalDevice,
uint32_t qidx = createInfo.pQueueCreateInfos[i].queueFamilyIndex;
m_ExternalQueues.resize(RDCMAX((uint32_t)m_ExternalQueues.size(), qidx + 1));
// Resize also the image barriers, as ImageBarrierSequence::SetMaxQueueFamilyIndex
// just sets the static MaxQueueFamilyIndex
m_setupImageBarriers.ResizeForMaxQueueFamilyIndex(qidx);
m_cleanupImageBarriers.ResizeForMaxQueueFamilyIndex(qidx);
ImageBarrierSequence::SetMaxQueueFamilyIndex(qidx);
VkCommandPoolCreateInfo poolInfo = {