bug-14580: add dataSize to vkGetPipelineCacheData

commit: aaa2ae0
diff --git a/include/vulkan.h b/include/vulkan.h
index 05286c1..5fd2b05 100644
--- a/include/vulkan.h
+++ b/include/vulkan.h
@@ -2167,7 +2167,7 @@
 typedef VkResult (VKAPI *PFN_vkCreatePipelineCache)(VkDevice device, const VkPipelineCacheCreateInfo* pCreateInfo, VkPipelineCache* pPipelineCache);
 typedef void (VKAPI *PFN_vkDestroyPipelineCache)(VkDevice device, VkPipelineCache pipelineCache);
 typedef size_t (VKAPI *PFN_vkGetPipelineCacheSize)(VkDevice device, VkPipelineCache pipelineCache);
-typedef VkResult (VKAPI *PFN_vkGetPipelineCacheData)(VkDevice device, VkPipelineCache pipelineCache, void* pData);
+typedef VkResult (VKAPI *PFN_vkGetPipelineCacheData)(VkDevice device, VkPipelineCache pipelineCache, size_t dataSize, void* pData);
 typedef VkResult (VKAPI *PFN_vkMergePipelineCaches)(VkDevice device, VkPipelineCache destCache, uint32_t srcCacheCount, const VkPipelineCache* pSrcCaches);
 typedef VkResult (VKAPI *PFN_vkCreateGraphicsPipelines)(VkDevice device, VkPipelineCache pipelineCache, uint32_t count, const VkGraphicsPipelineCreateInfo* pCreateInfos, VkPipeline* pPipelines);
 typedef VkResult (VKAPI *PFN_vkCreateComputePipelines)(VkDevice device, VkPipelineCache pipelineCache, uint32_t count, const VkComputePipelineCreateInfo* pCreateInfos, VkPipeline* pPipelines);
@@ -2589,6 +2589,7 @@
 VkResult VKAPI vkGetPipelineCacheData(
     VkDevice                                    device,
     VkPipelineCache                             pipelineCache,
+    size_t                                      dataSize,
     void*                                       pData);
 
 VkResult VKAPI vkMergePipelineCaches(
diff --git a/layers/draw_state.cpp b/layers/draw_state.cpp
index d873785..7a33ffb 100755
--- a/layers/draw_state.cpp
+++ b/layers/draw_state.cpp
@@ -1735,10 +1735,11 @@
 VkResult VKAPI vkGetPipelineCacheData(
     VkDevice                                    device,
     VkPipelineCache                             pipelineCache,
+    size_t                                      dataSize,
     void*                                       pData)
 {
     layer_data* dev_data = get_my_data_ptr(get_dispatch_key(device), layer_data_map);
-    VkResult result = dev_data->device_dispatch_table->GetPipelineCacheData(device, pipelineCache, pData);
+    VkResult result = dev_data->device_dispatch_table->GetPipelineCacheData(device, pipelineCache, dataSize, pData);
     return result;
 }
 
diff --git a/layers/param_checker.cpp b/layers/param_checker.cpp
index f906fb3..4595325 100644
--- a/layers/param_checker.cpp
+++ b/layers/param_checker.cpp
@@ -4008,6 +4008,7 @@
 bool PostGetPipelineCacheData(
     VkDevice device,
     VkPipelineCache pipelineCache,
+    size_t dataSize,
     void* pData,
     VkResult result)
 {
@@ -4030,11 +4031,12 @@
 VK_LAYER_EXPORT VkResult VKAPI vkGetPipelineCacheData(
     VkDevice device,
     VkPipelineCache pipelineCache,
+    size_t dataSize,
     void* pData)
 {
-    VkResult result = get_dispatch_table(pc_device_table_map, device)->GetPipelineCacheData(device, pipelineCache, pData);
+    VkResult result = get_dispatch_table(pc_device_table_map, device)->GetPipelineCacheData(device, pipelineCache, dataSize, pData);
 
-    PostGetPipelineCacheData(device, pipelineCache, pData, result);
+    PostGetPipelineCacheData(device, pipelineCache, dataSize, pData, result);
 
     return result;
 }
diff --git a/loader/trampoline.c b/loader/trampoline.c
index c7a6394..b2c00c1 100644
--- a/loader/trampoline.c
+++ b/loader/trampoline.c
@@ -827,13 +827,13 @@
     return disp->GetPipelineCacheSize(device, pipelineCache);
 }
 
-LOADER_EXPORT VkResult VKAPI vkGetPipelineCacheData(VkDevice device, VkPipelineCache pipelineCache, void* pData)
+LOADER_EXPORT VkResult VKAPI vkGetPipelineCacheData(VkDevice device, VkPipelineCache pipelineCache, size_t dataSize, void* pData)
 {
     const VkLayerDispatchTable *disp;
 
     disp = loader_get_dispatch(device);
 
-    return disp->GetPipelineCacheData(device, pipelineCache, pData);
+    return disp->GetPipelineCacheData(device, pipelineCache, dataSize, pData);
 }
 
 LOADER_EXPORT VkResult VKAPI vkMergePipelineCaches(VkDevice device, VkPipelineCache destCache, uint32_t srcCacheCount, const VkPipelineCache* pSrcCaches)
diff --git a/vulkan.py b/vulkan.py
index 962b17c..c58416a 100755
--- a/vulkan.py
+++ b/vulkan.py
@@ -557,6 +557,7 @@
         Proto("VkResult", "GetPipelineCacheData",
             [Param("VkDevice", "device"),
              Param("VkPipelineCache", "pipelineCache"),
+             Param("size_t", "dataSize"),
              Param("void*", "pData")]),
 
         Proto("VkResult", "MergePipelineCaches",