aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorChia-I Wu <olv@lunarg.com>2015-10-26 18:36:20 +0800
committerChia-I Wu <olv@lunarg.com>2015-10-30 20:49:23 +0800
commitc16d2e0849b245c69ef0c13396864a5f1a447777 (patch)
tree612c8eac93d232cbf462c6a7f0dce1492d710beb
parent51acdd0844d6ae9ee253affb91904972601155bf (diff)
downloadusermoji-c16d2e0849b245c69ef0c13396864a5f1a447777.tar.xz
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
-rw-r--r--icd/nulldrv/nulldrv.c3
-rw-r--r--include/vulkan.h9
-rwxr-xr-xlayers/draw_state.cpp4
-rw-r--r--layers/param_checker.cpp22
-rw-r--r--loader/trampoline.c8
-rwxr-xr-xvulkan.py5
6 files changed, 26 insertions, 25 deletions
diff --git a/icd/nulldrv/nulldrv.c b/icd/nulldrv/nulldrv.c
index 56b677b9..796583b5 100644
--- a/icd/nulldrv/nulldrv.c
+++ b/icd/nulldrv/nulldrv.c
@@ -1812,8 +1812,9 @@ ICD_EXPORT VkResult VKAPI vkGetQueryPoolResults(
VkQueryPool queryPool,
uint32_t startQuery,
uint32_t queryCount,
- size_t* pDataSize,
+ size_t dataSize,
void* pData,
+ size_t stride,
VkQueryResultFlags flags)
{
NULLDRV_LOG_FUNC;
diff --git a/include/vulkan.h b/include/vulkan.h
index d6eb918c..4473f648 100644
--- a/include/vulkan.h
+++ b/include/vulkan.h
@@ -2132,7 +2132,7 @@ typedef VkResult (VKAPI *PFN_vkSetEvent)(VkDevice device, VkEvent event);
typedef VkResult (VKAPI *PFN_vkResetEvent)(VkDevice device, VkEvent event);
typedef VkResult (VKAPI *PFN_vkCreateQueryPool)(VkDevice device, const VkQueryPoolCreateInfo* pCreateInfo, VkQueryPool* pQueryPool);
typedef void (VKAPI *PFN_vkDestroyQueryPool)(VkDevice device, VkQueryPool queryPool);
-typedef VkResult (VKAPI *PFN_vkGetQueryPoolResults)(VkDevice device, VkQueryPool queryPool, uint32_t startQuery, uint32_t queryCount, size_t* pDataSize, void* pData, VkQueryResultFlags flags);
+typedef VkResult (VKAPI *PFN_vkGetQueryPoolResults)(VkDevice device, VkQueryPool queryPool, uint32_t startQuery, uint32_t queryCount, size_t dataSize, void* pData, VkDeviceSize stride, VkQueryResultFlags flags);
typedef VkResult (VKAPI *PFN_vkCreateBuffer)(VkDevice device, const VkBufferCreateInfo* pCreateInfo, VkBuffer* pBuffer);
typedef void (VKAPI *PFN_vkDestroyBuffer)(VkDevice device, VkBuffer buffer);
typedef VkResult (VKAPI *PFN_vkCreateBufferView)(VkDevice device, const VkBufferViewCreateInfo* pCreateInfo, VkBufferView* pView);
@@ -2217,7 +2217,7 @@ typedef void (VKAPI *PFN_vkCmdBeginQuery)(VkCmdBuffer cmdBuffer, VkQueryPool que
typedef void (VKAPI *PFN_vkCmdEndQuery)(VkCmdBuffer cmdBuffer, VkQueryPool queryPool, uint32_t slot);
typedef void (VKAPI *PFN_vkCmdResetQueryPool)(VkCmdBuffer cmdBuffer, VkQueryPool queryPool, uint32_t startQuery, uint32_t queryCount);
typedef void (VKAPI *PFN_vkCmdWriteTimestamp)(VkCmdBuffer cmdBuffer, VkTimestampType timestampType, VkBuffer destBuffer, VkDeviceSize destOffset);
-typedef void (VKAPI *PFN_vkCmdCopyQueryPoolResults)(VkCmdBuffer cmdBuffer, VkQueryPool queryPool, uint32_t startQuery, uint32_t queryCount, VkBuffer destBuffer, VkDeviceSize destOffset, VkDeviceSize destStride, VkQueryResultFlags flags);
+typedef void (VKAPI *PFN_vkCmdCopyQueryPoolResults)(VkCmdBuffer cmdBuffer, VkQueryPool queryPool, uint32_t startQuery, uint32_t queryCount, VkBuffer destBuffer, VkDeviceSize destOffset, VkDeviceSize stride, VkQueryResultFlags flags);
typedef void (VKAPI *PFN_vkCmdPushConstants)(VkCmdBuffer cmdBuffer, VkPipelineLayout layout, VkShaderStageFlags stageFlags, uint32_t start, uint32_t length, const void* values);
typedef void (VKAPI *PFN_vkCmdBeginRenderPass)(VkCmdBuffer cmdBuffer, const VkRenderPassBeginInfo* pRenderPassBegin, VkRenderPassContents contents);
typedef void (VKAPI *PFN_vkCmdNextSubpass)(VkCmdBuffer cmdBuffer, VkRenderPassContents contents);
@@ -2491,8 +2491,9 @@ VkResult VKAPI vkGetQueryPoolResults(
VkQueryPool queryPool,
uint32_t startQuery,
uint32_t queryCount,
- size_t* pDataSize,
+ size_t dataSize,
void* pData,
+ VkDeviceSize stride,
VkQueryResultFlags flags);
VkResult VKAPI vkCreateBuffer(
@@ -2973,7 +2974,7 @@ void VKAPI vkCmdCopyQueryPoolResults(
uint32_t queryCount,
VkBuffer destBuffer,
VkDeviceSize destOffset,
- VkDeviceSize destStride,
+ VkDeviceSize stride,
VkQueryResultFlags flags);
void VKAPI vkCmdPushConstants(
diff --git a/layers/draw_state.cpp b/layers/draw_state.cpp
index 278bcc7e..0e0c2b9f 100755
--- a/layers/draw_state.cpp
+++ b/layers/draw_state.cpp
@@ -3207,7 +3207,7 @@ VK_LAYER_EXPORT void VKAPI vkCmdResetQueryPool(VkCmdBuffer cmdBuffer, VkQueryPoo
VK_LAYER_EXPORT void VKAPI vkCmdCopyQueryPoolResults(VkCmdBuffer cmdBuffer, VkQueryPool queryPool, uint32_t startQuery,
uint32_t queryCount, VkBuffer destBuffer, VkDeviceSize destOffset,
- VkDeviceSize destStride, VkQueryResultFlags flags)
+ VkDeviceSize stride, VkQueryResultFlags flags)
{
VkBool32 skipCall = VK_FALSE;
layer_data* dev_data = get_my_data_ptr(get_dispatch_key(cmdBuffer), layer_data_map);
@@ -3223,7 +3223,7 @@ VK_LAYER_EXPORT void VKAPI vkCmdCopyQueryPoolResults(VkCmdBuffer cmdBuffer, VkQu
}
if (VK_FALSE == skipCall)
dev_data->device_dispatch_table->CmdCopyQueryPoolResults(cmdBuffer, queryPool,
- startQuery, queryCount, destBuffer, destOffset, destStride, flags);
+ startQuery, queryCount, destBuffer, destOffset, stride, flags);
}
VK_LAYER_EXPORT void VKAPI vkCmdWriteTimestamp(VkCmdBuffer cmdBuffer, VkTimestampType timestampType, VkBuffer destBuffer, VkDeviceSize destOffset)
diff --git a/layers/param_checker.cpp b/layers/param_checker.cpp
index 4b93577f..3405d01e 100644
--- a/layers/param_checker.cpp
+++ b/layers/param_checker.cpp
@@ -3302,8 +3302,9 @@ bool PostGetQueryPoolResults(
VkQueryPool queryPool,
uint32_t startQuery,
uint32_t queryCount,
- size_t* pDataSize,
+ size_t dataSize,
void* pData,
+ VkDeviceSize stride,
VkQueryResultFlags flags,
VkResult result)
{
@@ -3311,10 +3312,6 @@ bool PostGetQueryPoolResults(
- if(pDataSize != nullptr)
- {
- }
-
if(pData != nullptr)
{
}
@@ -3335,13 +3332,14 @@ VK_LAYER_EXPORT VkResult VKAPI vkGetQueryPoolResults(
VkQueryPool queryPool,
uint32_t startQuery,
uint32_t queryCount,
- size_t* pDataSize,
+ size_t dataSize,
void* pData,
+ VkDeviceSize stride,
VkQueryResultFlags flags)
{
- VkResult result = get_dispatch_table(pc_device_table_map, device)->GetQueryPoolResults(device, queryPool, startQuery, queryCount, pDataSize, pData, flags);
+ VkResult result = get_dispatch_table(pc_device_table_map, device)->GetQueryPoolResults(device, queryPool, startQuery, queryCount, dataSize, pData, stride, flags);
- PostGetQueryPoolResults(device, queryPool, startQuery, queryCount, pDataSize, pData, flags, result);
+ PostGetQueryPoolResults(device, queryPool, startQuery, queryCount, dataSize, pData, stride, flags, result);
return result;
}
@@ -6489,7 +6487,7 @@ bool PostCmdCopyQueryPoolResults(
uint32_t queryCount,
VkBuffer destBuffer,
VkDeviceSize destOffset,
- VkDeviceSize destStride,
+ VkDeviceSize stride,
VkQueryResultFlags flags)
{
@@ -6510,12 +6508,12 @@ VK_LAYER_EXPORT void VKAPI vkCmdCopyQueryPoolResults(
uint32_t queryCount,
VkBuffer destBuffer,
VkDeviceSize destOffset,
- VkDeviceSize destStride,
+ VkDeviceSize stride,
VkQueryResultFlags flags)
{
- get_dispatch_table(pc_device_table_map, cmdBuffer)->CmdCopyQueryPoolResults(cmdBuffer, queryPool, startQuery, queryCount, destBuffer, destOffset, destStride, flags);
+ get_dispatch_table(pc_device_table_map, cmdBuffer)->CmdCopyQueryPoolResults(cmdBuffer, queryPool, startQuery, queryCount, destBuffer, destOffset, stride, flags);
- PostCmdCopyQueryPoolResults(cmdBuffer, queryPool, startQuery, queryCount, destBuffer, destOffset, destStride, flags);
+ PostCmdCopyQueryPoolResults(cmdBuffer, queryPool, startQuery, queryCount, destBuffer, destOffset, stride, flags);
}
bool PreCmdPushConstants(
diff --git a/loader/trampoline.c b/loader/trampoline.c
index 012473d1..f359f616 100644
--- a/loader/trampoline.c
+++ b/loader/trampoline.c
@@ -657,13 +657,13 @@ LOADER_EXPORT void VKAPI vkDestroyQueryPool(VkDevice device, VkQueryPool queryPo
disp->DestroyQueryPool(device, queryPool);
}
-LOADER_EXPORT VkResult VKAPI vkGetQueryPoolResults(VkDevice device, VkQueryPool queryPool, uint32_t startQuery, uint32_t queryCount, size_t* pDataSize, void* pData, VkQueryResultFlags flags)
+LOADER_EXPORT VkResult VKAPI vkGetQueryPoolResults(VkDevice device, VkQueryPool queryPool, uint32_t startQuery, uint32_t queryCount, size_t dataSize, void* pData, VkDeviceSize stride, VkQueryResultFlags flags)
{
const VkLayerDispatchTable *disp;
disp = loader_get_dispatch(device);
- return disp->GetQueryPoolResults(device, queryPool, startQuery, queryCount, pDataSize, pData, flags);
+ return disp->GetQueryPoolResults(device, queryPool, startQuery, queryCount, dataSize, pData, stride, flags);
}
LOADER_EXPORT VkResult VKAPI vkCreateBuffer(VkDevice device, const VkBufferCreateInfo* pCreateInfo, VkBuffer* pBuffer)
@@ -1441,13 +1441,13 @@ LOADER_EXPORT void VKAPI vkCmdWriteTimestamp(VkCmdBuffer cmdBuffer, VkTimestampT
disp->CmdWriteTimestamp(cmdBuffer, timestampType, destBuffer, destOffset);
}
-LOADER_EXPORT void VKAPI vkCmdCopyQueryPoolResults(VkCmdBuffer cmdBuffer, VkQueryPool queryPool, uint32_t startQuery, uint32_t queryCount, VkBuffer destBuffer, VkDeviceSize destOffset, VkDeviceSize destStride, VkFlags flags)
+LOADER_EXPORT void VKAPI vkCmdCopyQueryPoolResults(VkCmdBuffer cmdBuffer, VkQueryPool queryPool, uint32_t startQuery, uint32_t queryCount, VkBuffer destBuffer, VkDeviceSize destOffset, VkDeviceSize stride, VkFlags flags)
{
const VkLayerDispatchTable *disp;
disp = loader_get_dispatch(cmdBuffer);
- disp->CmdCopyQueryPoolResults(cmdBuffer, queryPool, startQuery, queryCount, destBuffer, destOffset, destStride, flags);
+ disp->CmdCopyQueryPoolResults(cmdBuffer, queryPool, startQuery, queryCount, destBuffer, destOffset, stride, flags);
}
LOADER_EXPORT void VKAPI vkCmdPushConstants(VkCmdBuffer cmdBuffer, VkPipelineLayout layout, VkShaderStageFlags stageFlags, uint32_t start, uint32_t length, const void* values)
diff --git a/vulkan.py b/vulkan.py
index 4b19fc68..c0d18c7f 100755
--- a/vulkan.py
+++ b/vulkan.py
@@ -477,8 +477,9 @@ core = Extension(
Param("VkQueryPool", "queryPool"),
Param("uint32_t", "startQuery"),
Param("uint32_t", "queryCount"),
- Param("size_t*", "pDataSize"),
+ Param("size_t", "dataSize"),
Param("void*", "pData"),
+ Param("VkDeviceSize", "stride"),
Param("VkQueryResultFlags", "flags")]),
Proto("VkResult", "CreateBuffer",
@@ -959,7 +960,7 @@ core = Extension(
Param("uint32_t", "queryCount"),
Param("VkBuffer", "destBuffer"),
Param("VkDeviceSize", "destOffset"),
- Param("VkDeviceSize", "destStride"),
+ Param("VkDeviceSize", "stride"),
Param("VkQueryResultFlags", "flags")]),
Proto("void", "CmdPushConstants",