bug 14844: Query Pool issues (WIP)

We did not and still do not honor the stride nor flags.

https://cvs.khronos.org/bugzilla/show_bug.cgi?id=14844
diff --git a/tests/init.cpp b/tests/init.cpp
index 557c390..77e22d2 100644
--- a/tests/init.cpp
+++ b/tests/init.cpp
@@ -211,7 +211,7 @@
     VkQueryPoolCreateInfo query_info;
     VkQueryPool query_pool;
     size_t query_result_size;
-    uint32_t *query_result_data;
+    uint8_t *query_result_data;
     VkResult err;
 
     //        typedef enum VkQueryType_
@@ -253,14 +253,12 @@
     // TODO: commands
     // TOOD: vkCmdEndQuery
 
-    err = vkGetQueryPoolResults(device(), query_pool, 0, MAX_QUERY_SLOTS,
-                                 &query_result_size, VK_NULL_HANDLE, 0);
-    ASSERT_VK_SUCCESS(err);
-
+    query_result_size = MAX_QUERY_SLOTS * sizeof(uint64_t);
     if (query_result_size > 0) {
-        query_result_data = new uint32_t [query_result_size];
+        query_result_data = new uint8_t [query_result_size];
         err = vkGetQueryPoolResults(device(), query_pool, 0, MAX_QUERY_SLOTS,
-                                     &query_result_size, query_result_data, 0);
+                                     query_result_size, query_result_data,
+                                     sizeof(uint64_t), VK_QUERY_RESULT_64_BIT);
         //ASSERT_VK_SUCCESS(err); TODO fix once actually submit queries
 
         // TODO: Test Query result data.
diff --git a/tests/vktestbinding.cpp b/tests/vktestbinding.cpp
index b8ba332..da2883b 100644
--- a/tests/vktestbinding.cpp
+++ b/tests/vktestbinding.cpp
@@ -504,16 +504,10 @@
     NON_DISPATCHABLE_HANDLE_INIT(vkCreateQueryPool, dev, &info);
 }
 
-VkResult QueryPool::results(uint32_t start, uint32_t count, size_t size, void *data)
+VkResult QueryPool::results(uint32_t start, uint32_t count, size_t size, void *data, size_t stride)
 {
-    size_t tmp = size;
-    VkResult err = vkGetQueryPoolResults(device(), handle(), start, count, &tmp, data, 0);
-    if (err == VK_SUCCESS) {
-        if (!EXPECT(tmp == size))
-            memset(data, 0, size);
-    } else {
-        EXPECT(err == VK_NOT_READY);
-    }
+    VkResult err = vkGetQueryPoolResults(device(), handle(), start, count, size, data, stride, 0);
+    EXPECT(err == VK_SUCCESS || err == VK_NOT_READY);
 
     return err;
 }
diff --git a/tests/vktestbinding.h b/tests/vktestbinding.h
index 9f0baa7..3c56ea1 100644
--- a/tests/vktestbinding.h
+++ b/tests/vktestbinding.h
@@ -310,7 +310,7 @@
     void init(const Device &dev, const VkQueryPoolCreateInfo &info);
 
     // vkGetQueryPoolResults()
-    VkResult results(uint32_t start, uint32_t count, size_t size, void *data);
+    VkResult results(uint32_t start, uint32_t count, size_t size, void *data, size_t stride);
 
     static VkQueryPoolCreateInfo create_info(VkQueryType type, uint32_t slot_count);
 };