diff --git a/src/dxvk/dxvk_cmdlist.cpp b/src/dxvk/dxvk_cmdlist.cpp index b324bb53e..9838273e0 100644 --- a/src/dxvk/dxvk_cmdlist.cpp +++ b/src/dxvk/dxvk_cmdlist.cpp @@ -211,9 +211,9 @@ namespace dxvk { if (isFirst) { // Wait for per-command list semaphores on first submission - for (const auto& entry : m_waitSemaphores) { - m_commandSubmission.waitSemaphore(entry.fence->handle(), - entry.value, VK_PIPELINE_STAGE_2_TOP_OF_PIPE_BIT); + for (size_t i = 0; i < m_waitSemaphores.size(); i++) { + m_commandSubmission.waitSemaphore(m_waitSemaphores[i].fence->handle(), + m_waitSemaphores[i].value, VK_PIPELINE_STAGE_2_TOP_OF_PIPE_BIT); } } @@ -265,9 +265,9 @@ namespace dxvk { if (isLast) { // Signal per-command list semaphores on the final submission - for (const auto& entry : m_signalSemaphores) { - m_commandSubmission.signalSemaphore(entry.fence->handle(), - entry.value, VK_PIPELINE_STAGE_2_BOTTOM_OF_PIPE_BIT); + for (size_t i = 0; i < m_signalSemaphores.size(); i++) { + m_commandSubmission.signalSemaphore(m_signalSemaphores[i].fence->handle(), + m_signalSemaphores[i].value, VK_PIPELINE_STAGE_2_BOTTOM_OF_PIPE_BIT); } // Signal WSI semaphore on the final submission diff --git a/src/dxvk/dxvk_cmdlist.h b/src/dxvk/dxvk_cmdlist.h index be5c9d5e8..673555b21 100644 --- a/src/dxvk/dxvk_cmdlist.h +++ b/src/dxvk/dxvk_cmdlist.h @@ -129,10 +129,10 @@ namespace dxvk { private: - VkFence m_fence = VK_NULL_HANDLE; - std::vector m_semaphoreWaits; - std::vector m_semaphoreSignals; - std::vector m_commandBuffers; + VkFence m_fence = VK_NULL_HANDLE; + small_vector m_semaphoreWaits; + small_vector m_semaphoreSignals; + small_vector m_commandBuffers; }; @@ -1076,11 +1076,11 @@ namespace dxvk { DxvkCommandSubmission m_commandSubmission; - std::vector m_waitSemaphores; - std::vector m_signalSemaphores; + small_vector m_waitSemaphores; + small_vector m_signalSemaphores; - std::vector m_cmdSubmissions; - std::vector m_cmdSparseBinds; + small_vector m_cmdSubmissions; + small_vector m_cmdSparseBinds; std::vector,