bug 14868: Replace VkTimestampType with VkPipelineStageFlagBits (WIP)

https://cvs.khronos.org/bugzilla/show_bug.cgi?id=14868
diff --git a/include/vulkan.h b/include/vulkan.h
index ae47f6f..1a7acaa 100644
--- a/include/vulkan.h
+++ b/include/vulkan.h
@@ -772,15 +772,6 @@
 } 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,
     VK_RENDER_PASS_CONTENTS_BEGIN_RANGE = VK_RENDER_PASS_CONTENTS_INLINE,
@@ -2218,7 +2209,7 @@
 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 vkCmdWriteTimestamp(
     VkCmdBuffer                                 cmdBuffer,
-    VkTimestampType                             timestampType,
+    VkPipelineStageFlagBits                     pipelineStage,
     VkBuffer                                    destBuffer,
     VkDeviceSize                                destOffset);
 
diff --git a/layers/draw_state.cpp b/layers/draw_state.cpp
index 6439db3..492895f 100755
--- a/layers/draw_state.cpp
+++ b/layers/draw_state.cpp
@@ -3217,7 +3217,7 @@
                            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 @@
         }
     }
     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 d0d9655..5317f76 100644
--- a/layers/param_checker.cpp
+++ b/layers/param_checker.cpp
@@ -6435,33 +6435,25 @@
 
 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 f3fecf8..d9708d9 100644
--- a/loader/trampoline.c
+++ b/loader/trampoline.c
@@ -1423,13 +1423,13 @@
     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 c48de90..57f0058 100755
--- a/vulkan.py
+++ b/vulkan.py
@@ -945,7 +945,7 @@
 
         Proto("void", "CmdWriteTimestamp",
             [Param("VkCmdBuffer", "cmdBuffer"),
-             Param("VkTimestampType", "timestampType"),
+             Param("VkPipelineStageFlagBits", "pipelineStage"),
              Param("VkBuffer", "destBuffer"),
              Param("VkDeviceSize", "destOffset")]),