diff --git a/src/SparseBindingTest.cpp b/src/SparseBindingTest.cpp
index e7bc589..4468d2c 100644
--- a/src/SparseBindingTest.cpp
+++ b/src/SparseBindingTest.cpp
@@ -588,6 +588,8 @@
 
     // Free remaining images.
     images.clear();
+
+    wprintf(L"Done.\n");
 }
 
 #endif // #ifdef _WIN32
diff --git a/src/Tests.cpp b/src/Tests.cpp
index ff2136d..82db70a 100644
--- a/src/Tests.cpp
+++ b/src/Tests.cpp
@@ -4414,13 +4414,22 @@
     poolCreateInfo.blockSize = config.PoolSize;
     poolCreateInfo.frameInUseCount = 1;
 
-    VmaAllocationCreateInfo dummyAllocCreateInfo = {};
-    dummyAllocCreateInfo.usage = VMA_MEMORY_USAGE_GPU_ONLY;
-    vmaFindMemoryTypeIndex(g_hAllocator, memoryTypeBits, &dummyAllocCreateInfo, &poolCreateInfo.memoryTypeIndex);
+    VmaPool pool = VK_NULL_HANDLE;
+    VkResult res;
+    // Loop over memory types because we sometimes allocate a big block here,
+    // while the most eligible DEVICE_LOCAL heap may be only 256 MB on some GPUs.
+    while(memoryTypeBits)
+    {
+        VmaAllocationCreateInfo dummyAllocCreateInfo = {};
+        dummyAllocCreateInfo.usage = VMA_MEMORY_USAGE_GPU_ONLY;
+        vmaFindMemoryTypeIndex(g_hAllocator, memoryTypeBits, &dummyAllocCreateInfo, &poolCreateInfo.memoryTypeIndex);
 
-    VmaPool pool;
-    VkResult res = vmaCreatePool(g_hAllocator, &poolCreateInfo, &pool);
-    TEST(res == VK_SUCCESS);
+        res = vmaCreatePool(g_hAllocator, &poolCreateInfo, &pool);
+        if(res == VK_SUCCESS)
+            break;
+        memoryTypeBits &= ~(1u << poolCreateInfo.memoryTypeIndex);
+    }
+    TEST(pool);
 
     // Start time measurement - after creating pool and initializing data structures.
     time_point timeBeg = std::chrono::high_resolution_clock::now();
