diff --git a/src/vkcv/DescriptorManager.cpp b/src/vkcv/DescriptorManager.cpp
index 6daf221b01d052ef02b5c1376412f7dbd7257861..f273e958b12892d6f2c9cc92a4ca07de3f6b29c7 100644
--- a/src/vkcv/DescriptorManager.cpp
+++ b/src/vkcv/DescriptorManager.cpp
@@ -127,7 +127,9 @@ namespace vkcv
 
         vk::DescriptorSetVariableDescriptorCountAllocateInfo variableAllocInfo(1, &sumVariableDescriptorCounts);
 
-        allocInfo.setPNext(&variableAllocInfo);
+        if (sumVariableDescriptorCounts > 0) {
+            allocInfo.setPNext(&variableAllocInfo);
+        }
 
         auto result = m_Device.allocateDescriptorSets(&allocInfo, &vulkanHandle);
         if(result != vk::Result::eSuccess)