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);
};