diff --git a/include/Nazara/OpenGLRenderer/OpenGLRenderPipelineLayout.inl b/include/Nazara/OpenGLRenderer/OpenGLRenderPipelineLayout.inl index a5646b1d9..bde85f51c 100644 --- a/include/Nazara/OpenGLRenderer/OpenGLRenderPipelineLayout.inl +++ b/include/Nazara/OpenGLRenderer/OpenGLRenderPipelineLayout.inl @@ -27,10 +27,12 @@ namespace Nz std::size_t poolCount = m_descriptorPools.size(); if (poolCount >= 2 && m_descriptorPools.back().freeBindings.TestAll()) { - for (std::size_t i = poolCount - 1; i > 0; ++i) + for (std::size_t i = poolCount - 1; i > 0; --i) { - if (m_descriptorPools[i].freeBindings.TestAll()) - poolCount--; + if (!m_descriptorPools[i].freeBindings.TestAll()) + break; + + poolCount--; } m_descriptorPools.resize(poolCount); diff --git a/include/Nazara/VulkanRenderer/VulkanRenderPipelineLayout.inl b/include/Nazara/VulkanRenderer/VulkanRenderPipelineLayout.inl index 5dd664b5c..5b341a558 100644 --- a/include/Nazara/VulkanRenderer/VulkanRenderPipelineLayout.inl +++ b/include/Nazara/VulkanRenderer/VulkanRenderPipelineLayout.inl @@ -27,10 +27,12 @@ namespace Nz std::size_t poolCount = m_descriptorPools.size(); if (poolCount >= 2 && m_descriptorPools.back().freeBindings.TestAll()) { - for (std::size_t i = poolCount - 1; i > 0; ++i) + for (std::size_t i = poolCount - 1; i > 0; --i) { - if (m_descriptorPools[i].freeBindings.TestAll()) - poolCount--; + if (!m_descriptorPools[i].freeBindings.TestAll()) + break; + + poolCount--; } m_descriptorPools.resize(poolCount);