diff --git a/include/vulkan.h b/include/vulkan.h
index e17207b..514c118 100644
--- a/include/vulkan.h
+++ b/include/vulkan.h
@@ -412,9 +412,10 @@
 typedef enum {
     VK_QUERY_TYPE_OCCLUSION = 0,
     VK_QUERY_TYPE_PIPELINE_STATISTICS = 1,
+    VK_QUERY_TYPE_TIMESTAMP = 2,
     VK_QUERY_TYPE_BEGIN_RANGE = VK_QUERY_TYPE_OCCLUSION,
-    VK_QUERY_TYPE_END_RANGE = VK_QUERY_TYPE_PIPELINE_STATISTICS,
-    VK_QUERY_TYPE_NUM = (VK_QUERY_TYPE_PIPELINE_STATISTICS - VK_QUERY_TYPE_OCCLUSION + 1),
+    VK_QUERY_TYPE_END_RANGE = VK_QUERY_TYPE_TIMESTAMP,
+    VK_QUERY_TYPE_NUM = (VK_QUERY_TYPE_TIMESTAMP - VK_QUERY_TYPE_OCCLUSION + 1),
     VK_QUERY_TYPE_MAX_ENUM = 0x7FFFFFFF
 } VkQueryType;
 
@@ -2177,7 +2178,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, VkPipelineStageFlagBits pipelineStage, VkBuffer destBuffer, VkDeviceSize destOffset);
+typedef void (VKAPI *PFN_vkCmdWriteTimestamp)(VkCmdBuffer cmdBuffer, VkPipelineStageFlagBits pipelineStage, VkQueryPool queryPool, uint32_t slot);
 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);
@@ -2913,8 +2914,8 @@
 void VKAPI vkCmdWriteTimestamp(
     VkCmdBuffer                                 cmdBuffer,
     VkPipelineStageFlagBits                     pipelineStage,
-    VkBuffer                                    destBuffer,
-    VkDeviceSize                                destOffset);
+    VkQueryPool                                 queryPool,
+    uint32_t                                    slot);
 
 void VKAPI vkCmdCopyQueryPoolResults(
     VkCmdBuffer                                 cmdBuffer,
diff --git a/layers/draw_state.cpp b/layers/draw_state.cpp
index 2b6d55e..fec569f 100755
--- a/layers/draw_state.cpp
+++ b/layers/draw_state.cpp
@@ -3236,7 +3236,7 @@
                            startQuery, queryCount, destBuffer, destOffset, stride, flags);
 }
 
-VK_LAYER_EXPORT void VKAPI vkCmdWriteTimestamp(VkCmdBuffer cmdBuffer, VkPipelineStageFlagBits pipelineStage, VkBuffer destBuffer, VkDeviceSize destOffset)
+VK_LAYER_EXPORT void VKAPI vkCmdWriteTimestamp(VkCmdBuffer cmdBuffer, VkPipelineStageFlagBits pipelineStage, VkQueryPool queryPool, uint32_t slot)
 {
     VkBool32 skipCall = VK_FALSE;
     layer_data* dev_data = get_my_data_ptr(get_dispatch_key(cmdBuffer), layer_data_map);
@@ -3250,7 +3250,7 @@
         }
     }
     if (VK_FALSE == skipCall)
-        dev_data->device_dispatch_table->CmdWriteTimestamp(cmdBuffer, pipelineStage, destBuffer, destOffset);
+        dev_data->device_dispatch_table->CmdWriteTimestamp(cmdBuffer, pipelineStage, queryPool, slot);
 }
 
 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 d7c13d4..bdb5dad 100644
--- a/layers/param_checker.cpp
+++ b/layers/param_checker.cpp
@@ -6362,8 +6362,8 @@
 bool PostCmdWriteTimestamp(
     VkCmdBuffer cmdBuffer,
     VkPipelineStageFlagBits pipelineStage,
-    VkBuffer destBuffer,
-    VkDeviceSize destOffset)
+    VkQueryPool queryPool,
+    uint32_t slot)
 {
 
     ValidateEnumerator(pipelineStage);
@@ -6374,12 +6374,12 @@
 VK_LAYER_EXPORT void VKAPI vkCmdWriteTimestamp(
     VkCmdBuffer cmdBuffer,
     VkPipelineStageFlagBits pipelineStage,
-    VkBuffer destBuffer,
-    VkDeviceSize destOffset)
+    VkQueryPool queryPool,
+    uint32_t slot)
 {
-    get_dispatch_table(pc_device_table_map, cmdBuffer)->CmdWriteTimestamp(cmdBuffer, pipelineStage, destBuffer, destOffset);
+    get_dispatch_table(pc_device_table_map, cmdBuffer)->CmdWriteTimestamp(cmdBuffer, pipelineStage, queryPool, slot);
 
-    PostCmdWriteTimestamp(cmdBuffer, pipelineStage, destBuffer, destOffset);
+    PostCmdWriteTimestamp(cmdBuffer, pipelineStage, queryPool, slot);
 }
 
 bool PostCmdCopyQueryPoolResults(
diff --git a/loader/trampoline.c b/loader/trampoline.c
index 53a1a68..d2f28a8 100644
--- a/loader/trampoline.c
+++ b/loader/trampoline.c
@@ -1405,13 +1405,13 @@
     disp->CmdResetQueryPool(cmdBuffer, queryPool, startQuery, queryCount);
 }
 
-LOADER_EXPORT void VKAPI vkCmdWriteTimestamp(VkCmdBuffer cmdBuffer, VkPipelineStageFlagBits pipelineStage, VkBuffer destBuffer, VkDeviceSize destOffset)
+LOADER_EXPORT void VKAPI vkCmdWriteTimestamp(VkCmdBuffer cmdBuffer, VkPipelineStageFlagBits pipelineStage, VkQueryPool queryPool, uint32_t slot)
 {
     const VkLayerDispatchTable *disp;
 
     disp = loader_get_dispatch(cmdBuffer);
 
-    disp->CmdWriteTimestamp(cmdBuffer, pipelineStage, destBuffer, destOffset);
+    disp->CmdWriteTimestamp(cmdBuffer, pipelineStage, queryPool, slot);
 }
 
 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 174501e..40d41de 100755
--- a/vulkan.py
+++ b/vulkan.py
@@ -938,8 +938,8 @@
         Proto("void", "CmdWriteTimestamp",
             [Param("VkCmdBuffer", "cmdBuffer"),
              Param("VkPipelineStageFlagBits", "pipelineStage"),
-             Param("VkBuffer", "destBuffer"),
-             Param("VkDeviceSize", "destOffset")]),
+             Param("VkQueryPool", "queryPool"),
+             Param("uint32_t", "slot")]),
 
         Proto("void", "CmdCopyQueryPoolResults",
             [Param("VkCmdBuffer", "cmdBuffer"),
