diff options
| author | Chia-I Wu <olv@lunarg.com> | 2015-10-26 18:36:20 +0800 |
|---|---|---|
| committer | Chia-I Wu <olv@lunarg.com> | 2015-10-30 20:49:23 +0800 |
| commit | c16d2e0849b245c69ef0c13396864a5f1a447777 (patch) | |
| tree | 612c8eac93d232cbf462c6a7f0dce1492d710beb | |
| parent | 51acdd0844d6ae9ee253affb91904972601155bf (diff) | |
| download | usermoji-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.c | 3 | ||||
| -rw-r--r-- | include/vulkan.h | 9 | ||||
| -rwxr-xr-x | layers/draw_state.cpp | 4 | ||||
| -rw-r--r-- | layers/param_checker.cpp | 22 | ||||
| -rw-r--r-- | loader/trampoline.c | 8 | ||||
| -rwxr-xr-x | vulkan.py | 5 |
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) @@ -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", |
