tests: LEx 294 Don't create empty descriptor pools
diff --git a/tests/vkrenderframework.cpp b/tests/vkrenderframework.cpp
index 1ff382b..428ecfa 100644
--- a/tests/vkrenderframework.cpp
+++ b/tests/vkrenderframework.cpp
@@ -418,7 +418,11 @@
 VkDescriptorSetObj::VkDescriptorSetObj(VkDeviceObj *device)
     : m_device(device), m_nextSlot(0) {}
 
-VkDescriptorSetObj::~VkDescriptorSetObj() { delete m_set; }
+VkDescriptorSetObj::~VkDescriptorSetObj() {
+    if (m_set) {
+        delete m_set;
+    }
+}
 
 int VkDescriptorSetObj::AppendDummy() {
     /* request a descriptor but do not update it */
@@ -476,13 +480,16 @@
 
 void VkDescriptorSetObj::CreateVKDescriptorSet(
     VkCommandBufferObj *commandBuffer) {
-    // create VkDescriptorPool
-    VkDescriptorPoolCreateInfo pool = {};
-    pool.sType = VK_STRUCTURE_TYPE_DESCRIPTOR_POOL_CREATE_INFO;
-    pool.poolSizeCount = m_type_counts.size();
-    pool.maxSets = 1;
-    pool.pPoolSizes = m_type_counts.data();
-    init(*m_device, pool);
+
+    if ( m_type_counts.size()) {
+        // create VkDescriptorPool
+        VkDescriptorPoolCreateInfo pool = {};
+        pool.sType = VK_STRUCTURE_TYPE_DESCRIPTOR_POOL_CREATE_INFO;
+        pool.poolSizeCount = m_type_counts.size();
+        pool.maxSets = 1;
+        pool.pPoolSizes = m_type_counts.data();
+        init(*m_device, pool);
+    }
 
     // create VkDescriptorSetLayout
     vector<VkDescriptorSetLayoutBinding> bindings;
@@ -513,20 +520,22 @@
 
     m_pipeline_layout.init(*m_device, pipeline_layout, layouts);
 
-    // create VkDescriptorSet
-    m_set = alloc_sets(*m_device, m_layout);
+    if (m_type_counts.size()) {
+        // create VkDescriptorSet
+        m_set = alloc_sets(*m_device, m_layout);
 
-    // build the update array
-    size_t imageSamplerCount = 0;
-    for (std::vector<VkWriteDescriptorSet>::iterator it = m_writes.begin();
-         it != m_writes.end(); it++) {
-        it->dstSet = m_set->handle();
-        if (it->descriptorType == VK_DESCRIPTOR_TYPE_COMBINED_IMAGE_SAMPLER)
-            it->pImageInfo = &m_imageSamplerDescriptors[imageSamplerCount++];
+        // build the update array
+        size_t imageSamplerCount = 0;
+        for (std::vector<VkWriteDescriptorSet>::iterator it = m_writes.begin();
+             it != m_writes.end(); it++) {
+            it->dstSet = m_set->handle();
+            if (it->descriptorType == VK_DESCRIPTOR_TYPE_COMBINED_IMAGE_SAMPLER)
+                it->pImageInfo = &m_imageSamplerDescriptors[imageSamplerCount++];
+        }
+
+        // do the updates
+        m_device->update_descriptor_sets(m_writes);
     }
-
-    // do the updates
-    m_device->update_descriptor_sets(m_writes);
 }
 
 VkImageObj::VkImageObj(VkDeviceObj *dev) {