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",