From 450dd2c719e95b17fa60b29d6290ddf5809fd7c6 Mon Sep 17 00:00:00 2001 From: Chia-I Wu Date: Mon, 26 Oct 2015 19:40:27 +0800 Subject: bug 14868: Replace VkTimestampType with VkPipelineStageFlagBits (WIP) https://cvs.khronos.org/bugzilla/show_bug.cgi?id=14868 --- icd/nulldrv/nulldrv.c | 2 +- include/vulkan.h | 13 ++----------- layers/draw_state.cpp | 4 ++-- layers/param_checker.cpp | 18 +++++------------- loader/trampoline.c | 4 ++-- vulkan.py | 2 +- 6 files changed, 13 insertions(+), 30 deletions(-) diff --git a/icd/nulldrv/nulldrv.c b/icd/nulldrv/nulldrv.c index 9ba74898..7ca71bd4 100644 --- a/icd/nulldrv/nulldrv.c +++ b/icd/nulldrv/nulldrv.c @@ -1061,7 +1061,7 @@ ICD_EXPORT void VKAPI vkCmdCopyQueryPoolResults( ICD_EXPORT void VKAPI vkCmdWriteTimestamp( VkCmdBuffer cmdBuffer, - VkTimestampType timestampType, + VkPipelineStageFlagBits pipelineStage, VkBuffer destBuffer, VkDeviceSize destOffset) { diff --git a/include/vulkan.h b/include/vulkan.h index ae47f6fd..1a7acaa2 100644 --- a/include/vulkan.h +++ b/include/vulkan.h @@ -771,15 +771,6 @@ typedef enum { VK_INDEX_TYPE_MAX_ENUM = 0x7FFFFFFF } VkIndexType; -typedef enum { - VK_TIMESTAMP_TYPE_TOP = 0, - VK_TIMESTAMP_TYPE_BOTTOM = 1, - VK_TIMESTAMP_TYPE_BEGIN_RANGE = VK_TIMESTAMP_TYPE_TOP, - VK_TIMESTAMP_TYPE_END_RANGE = VK_TIMESTAMP_TYPE_BOTTOM, - VK_TIMESTAMP_TYPE_NUM = (VK_TIMESTAMP_TYPE_BOTTOM - VK_TIMESTAMP_TYPE_TOP + 1), - VK_TIMESTAMP_TYPE_MAX_ENUM = 0x7FFFFFFF -} VkTimestampType; - typedef enum { VK_RENDER_PASS_CONTENTS_INLINE = 0, VK_RENDER_PASS_CONTENTS_SECONDARY_CMD_BUFFERS = 1, @@ -2218,7 +2209,7 @@ typedef void (VKAPI *PFN_vkCmdPipelineBarrier)(VkCmdBuffer cmdBuffer, VkPipeline typedef void (VKAPI *PFN_vkCmdBeginQuery)(VkCmdBuffer cmdBuffer, VkQueryPool queryPool, uint32_t slot, VkQueryControlFlags flags); 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_vkCmdWriteTimestamp)(VkCmdBuffer cmdBuffer, VkPipelineStageFlagBits pipelineStage, VkBuffer destBuffer, VkDeviceSize destOffset); 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); @@ -2961,7 +2952,7 @@ void VKAPI vkCmdResetQueryPool( void VKAPI vkCmdWriteTimestamp( VkCmdBuffer cmdBuffer, - VkTimestampType timestampType, + VkPipelineStageFlagBits pipelineStage, VkBuffer destBuffer, VkDeviceSize destOffset); diff --git a/layers/draw_state.cpp b/layers/draw_state.cpp index 6439db3c..492895fd 100755 --- a/layers/draw_state.cpp +++ b/layers/draw_state.cpp @@ -3217,7 +3217,7 @@ VK_LAYER_EXPORT void VKAPI vkCmdCopyQueryPoolResults(VkCmdBuffer cmdBuffer, VkQu startQuery, queryCount, destBuffer, destOffset, stride, flags); } -VK_LAYER_EXPORT void VKAPI vkCmdWriteTimestamp(VkCmdBuffer cmdBuffer, VkTimestampType timestampType, VkBuffer destBuffer, VkDeviceSize destOffset) +VK_LAYER_EXPORT void VKAPI vkCmdWriteTimestamp(VkCmdBuffer cmdBuffer, VkPipelineStageFlagBits pipelineStage, VkBuffer destBuffer, VkDeviceSize destOffset) { VkBool32 skipCall = VK_FALSE; layer_data* dev_data = get_my_data_ptr(get_dispatch_key(cmdBuffer), layer_data_map); @@ -3231,7 +3231,7 @@ VK_LAYER_EXPORT void VKAPI vkCmdWriteTimestamp(VkCmdBuffer cmdBuffer, VkTimestam } } if (VK_FALSE == skipCall) - dev_data->device_dispatch_table->CmdWriteTimestamp(cmdBuffer, timestampType, destBuffer, destOffset); + dev_data->device_dispatch_table->CmdWriteTimestamp(cmdBuffer, pipelineStage, destBuffer, destOffset); } VK_LAYER_EXPORT VkResult VKAPI vkCreateFramebuffer(VkDevice device, const VkFramebufferCreateInfo* pCreateInfo, VkFramebuffer* pFramebuffer) diff --git a/layers/param_checker.cpp b/layers/param_checker.cpp index d0d96558..5317f76c 100644 --- a/layers/param_checker.cpp +++ b/layers/param_checker.cpp @@ -6435,33 +6435,25 @@ VK_LAYER_EXPORT void VKAPI vkCmdResetQueryPool( bool PostCmdWriteTimestamp( VkCmdBuffer cmdBuffer, - VkTimestampType timestampType, + VkPipelineStageFlagBits pipelineStage, VkBuffer destBuffer, VkDeviceSize destOffset) { - if(timestampType < VK_TIMESTAMP_TYPE_BEGIN_RANGE || - timestampType > VK_TIMESTAMP_TYPE_END_RANGE) - { - log_msg(mdd(cmdBuffer), VK_DBG_REPORT_ERROR_BIT, (VkDbgObjectType)0, 0, 0, 1, "PARAMCHECK", - "vkCmdWriteTimestamp parameter, VkTimestampType timestampType, is an unrecognized enumerator"); - return false; - } - - + ValidateEnumerator(pipelineStage); return true; } VK_LAYER_EXPORT void VKAPI vkCmdWriteTimestamp( VkCmdBuffer cmdBuffer, - VkTimestampType timestampType, + VkPipelineStageFlagBits pipelineStage, VkBuffer destBuffer, VkDeviceSize destOffset) { - get_dispatch_table(pc_device_table_map, cmdBuffer)->CmdWriteTimestamp(cmdBuffer, timestampType, destBuffer, destOffset); + get_dispatch_table(pc_device_table_map, cmdBuffer)->CmdWriteTimestamp(cmdBuffer, pipelineStage, destBuffer, destOffset); - PostCmdWriteTimestamp(cmdBuffer, timestampType, destBuffer, destOffset); + PostCmdWriteTimestamp(cmdBuffer, pipelineStage, destBuffer, destOffset); } bool PostCmdCopyQueryPoolResults( diff --git a/loader/trampoline.c b/loader/trampoline.c index f3fecf8e..d9708d92 100644 --- a/loader/trampoline.c +++ b/loader/trampoline.c @@ -1423,13 +1423,13 @@ LOADER_EXPORT void VKAPI vkCmdResetQueryPool(VkCmdBuffer cmdBuffer, VkQueryPool disp->CmdResetQueryPool(cmdBuffer, queryPool, startQuery, queryCount); } -LOADER_EXPORT void VKAPI vkCmdWriteTimestamp(VkCmdBuffer cmdBuffer, VkTimestampType timestampType, VkBuffer destBuffer, VkDeviceSize destOffset) +LOADER_EXPORT void VKAPI vkCmdWriteTimestamp(VkCmdBuffer cmdBuffer, VkPipelineStageFlagBits pipelineStage, VkBuffer destBuffer, VkDeviceSize destOffset) { const VkLayerDispatchTable *disp; disp = loader_get_dispatch(cmdBuffer); - disp->CmdWriteTimestamp(cmdBuffer, timestampType, destBuffer, destOffset); + disp->CmdWriteTimestamp(cmdBuffer, pipelineStage, destBuffer, destOffset); } LOADER_EXPORT void VKAPI vkCmdCopyQueryPoolResults(VkCmdBuffer cmdBuffer, VkQueryPool queryPool, uint32_t startQuery, uint32_t queryCount, VkBuffer destBuffer, VkDeviceSize destOffset, VkDeviceSize stride, VkFlags flags) diff --git a/vulkan.py b/vulkan.py index c48de90a..57f00580 100755 --- a/vulkan.py +++ b/vulkan.py @@ -945,7 +945,7 @@ core = Extension( Proto("void", "CmdWriteTimestamp", [Param("VkCmdBuffer", "cmdBuffer"), - Param("VkTimestampType", "timestampType"), + Param("VkPipelineStageFlagBits", "pipelineStage"), Param("VkBuffer", "destBuffer"), Param("VkDeviceSize", "destOffset")]), -- cgit v1.2.3