namespace parameter_validation {
+extern std::unordered_map<std::string, void *> custom_functions;
+
extern bool parameter_validation_vkCreateInstance(VkInstance instance, const VkInstanceCreateInfo *pCreateInfo,
const VkAllocationCallbacks *pAllocator, VkInstance *pInstance);
extern bool parameter_validation_vkDestroyInstance(VkInstance instance, const VkAllocationCallbacks *pAllocator);
FreeLayerDataPtr(key, layer_data_map);
}
-extern bool (*manual_vkGetDeviceQueue)(VkDevice device, uint32_t queueFamilyIndex, uint32_t queueIndex, VkQueue *pQueue);
bool pv_vkGetDeviceQueue(VkDevice device, uint32_t queueFamilyIndex, uint32_t queueIndex, VkQueue *pQueue) {
bool skip = false;
layer_data *device_data = GetLayerDataPtr(get_dispatch_key(device), layer_data_map);
return result;
}
-extern bool (*manual_vkCreateBuffer)(VkDevice device, const VkBufferCreateInfo *pCreateInfo,
- const VkAllocationCallbacks *pAllocator, VkBuffer *pBuffer);
bool pv_vkCreateBuffer(VkDevice device, const VkBufferCreateInfo *pCreateInfo, const VkAllocationCallbacks *pAllocator,
VkBuffer *pBuffer) {
bool skip = false;
return skip;
}
-extern bool (*manual_vkCreateImage)(VkDevice device, const VkImageCreateInfo *pCreateInfo, const VkAllocationCallbacks *pAllocator,
- VkImage *pImage);
bool pv_vkCreateImage(VkDevice device, const VkImageCreateInfo *pCreateInfo, const VkAllocationCallbacks *pAllocator,
VkImage *pImage) {
bool skip = false;
return skip;
}
-extern bool (*manual_vkCreateImageView)(VkDevice device, const VkImageViewCreateInfo *pCreateInfo,
- const VkAllocationCallbacks *pAllocator, VkImageView *pView);
bool pv_vkCreateImageView(VkDevice device, const VkImageViewCreateInfo *pCreateInfo, const VkAllocationCallbacks *pAllocator,
VkImageView *pView) {
bool skip = false;
return skip;
}
-extern bool (*manual_vkCreateGraphicsPipelines)(VkDevice device, VkPipelineCache pipelineCache, uint32_t createInfoCount,
- const VkGraphicsPipelineCreateInfo *pCreateInfos,
- const VkAllocationCallbacks *pAllocator, VkPipeline *pPipelines);
bool pv_vkCreateGraphicsPipelines(VkDevice device, VkPipelineCache pipelineCache, uint32_t createInfoCount,
const VkGraphicsPipelineCreateInfo *pCreateInfos, const VkAllocationCallbacks *pAllocator,
VkPipeline *pPipelines) {
return skip;
}
-extern bool (*manual_vkCreateComputePipelines)(VkDevice device, VkPipelineCache pipelineCache, uint32_t createInfoCount,
- const VkComputePipelineCreateInfo *pCreateInfos,
- const VkAllocationCallbacks *pAllocator, VkPipeline *pPipelines);
bool pv_vkCreateComputePipelines(VkDevice device, VkPipelineCache pipelineCache, uint32_t createInfoCount,
const VkComputePipelineCreateInfo *pCreateInfos, const VkAllocationCallbacks *pAllocator,
VkPipeline *pPipelines) {
return skip;
}
-extern bool (*manual_vkCreateSampler)(VkDevice device, const VkSamplerCreateInfo *pCreateInfo,
- const VkAllocationCallbacks *pAllocator, VkSampler *pSampler);
bool pv_vkCreateSampler(VkDevice device, const VkSamplerCreateInfo *pCreateInfo, const VkAllocationCallbacks *pAllocator,
VkSampler *pSampler) {
bool skip = false;
return skip;
}
-extern bool (*manual_vkCreateDescriptorSetLayout)(VkDevice device, const VkDescriptorSetLayoutCreateInfo *pCreateInfo,
- const VkAllocationCallbacks *pAllocator, VkDescriptorSetLayout *pSetLayout);
bool pv_vkCreateDescriptorSetLayout(VkDevice device, const VkDescriptorSetLayoutCreateInfo *pCreateInfo,
const VkAllocationCallbacks *pAllocator, VkDescriptorSetLayout *pSetLayout) {
bool skip = false;
return skip;
}
-extern bool (*manual_vkFreeDescriptorSets)(VkDevice device, VkDescriptorPool descriptorPool, uint32_t descriptorSetCount,
- const VkDescriptorSet *pDescriptorSets);
bool pv_vkFreeDescriptorSets(VkDevice device, VkDescriptorPool descriptorPool, uint32_t descriptorSetCount,
const VkDescriptorSet *pDescriptorSets) {
bool skip = false;
return skip;
}
-extern bool (*manual_vkUpdateDescriptorSets)(VkDevice device, uint32_t descriptorWriteCount,
- const VkWriteDescriptorSet *pDescriptorWrites, uint32_t descriptorCopyCount,
- const VkCopyDescriptorSet *pDescriptorCopies);
bool pv_vkUpdateDescriptorSets(VkDevice device, uint32_t descriptorWriteCount, const VkWriteDescriptorSet *pDescriptorWrites,
uint32_t descriptorCopyCount, const VkCopyDescriptorSet *pDescriptorCopies) {
bool skip = false;
return skip;
}
-extern bool (*manual_vkCreateRenderPass)(VkDevice device, const VkRenderPassCreateInfo *pCreateInfo,
- const VkAllocationCallbacks *pAllocator, VkRenderPass *pRenderPass);
bool pv_vkCreateRenderPass(VkDevice device, const VkRenderPassCreateInfo *pCreateInfo, const VkAllocationCallbacks *pAllocator,
VkRenderPass *pRenderPass) {
bool skip = false;
return skip;
}
-extern bool (*manual_vkBeginCommandBuffer)(VkCommandBuffer commandBuffer, const VkCommandBufferBeginInfo *pBeginInfo);
bool pv_vkBeginCommandBuffer(VkCommandBuffer commandBuffer, const VkCommandBufferBeginInfo *pBeginInfo) {
bool skip = false;
layer_data *device_data = GetLayerDataPtr(get_dispatch_key(commandBuffer), layer_data_map);
return skip;
}
-extern bool (*manual_vkCmdSetViewport)(VkCommandBuffer commandBuffer, uint32_t firstViewport, uint32_t viewportCount,
- const VkViewport *pViewports);
bool pv_vkCmdSetViewport(VkCommandBuffer commandBuffer, uint32_t firstViewport, uint32_t viewportCount,
const VkViewport *pViewports) {
bool skip = false;
return skip;
}
-extern bool (*manual_vkCmdSetScissor)(VkCommandBuffer commandBuffer, uint32_t firstScissor, uint32_t scissorCount,
- const VkRect2D *pScissors);
bool pv_vkCmdSetScissor(VkCommandBuffer commandBuffer, uint32_t firstScissor, uint32_t scissorCount, const VkRect2D *pScissors) {
bool skip = false;
layer_data *device_data = GetLayerDataPtr(get_dispatch_key(commandBuffer), layer_data_map);
return skip;
}
-extern bool (*manual_vkCmdDraw)(VkCommandBuffer commandBuffer, uint32_t vertexCount, uint32_t instanceCount, uint32_t firstVertex,
- uint32_t firstInstance);
bool pv_vkCmdDraw(VkCommandBuffer commandBuffer, uint32_t vertexCount, uint32_t instanceCount, uint32_t firstVertex,
uint32_t firstInstance) {
bool skip = false;
return skip;
}
-extern bool (*manual_vkCmdDrawIndirect)(VkCommandBuffer commandBuffer, VkBuffer buffer, VkDeviceSize offset, uint32_t drawCount,
- uint32_t stride);
bool pv_vkCmdDrawIndirect(VkCommandBuffer commandBuffer, VkBuffer buffer, VkDeviceSize offset, uint32_t count, uint32_t stride) {
bool skip = false;
layer_data *device_data = GetLayerDataPtr(get_dispatch_key(commandBuffer), layer_data_map);
return skip;
}
-extern bool (*manual_vkCmdDrawIndexedIndirect)(VkCommandBuffer commandBuffer, VkBuffer buffer, VkDeviceSize offset,
- uint32_t drawCount, uint32_t stride);
bool pv_vkCmdDrawIndexedIndirect(VkCommandBuffer commandBuffer, VkBuffer buffer, VkDeviceSize offset, uint32_t count,
uint32_t stride) {
bool skip = false;
return skip;
}
-extern bool (*manual_vkCmdCopyImage)(VkCommandBuffer commandBuffer, VkImage srcImage, VkImageLayout srcImageLayout,
- VkImage dstImage, VkImageLayout dstImageLayout, uint32_t regionCount,
- const VkImageCopy *pRegions);
bool pv_vkCmdCopyImage(VkCommandBuffer commandBuffer, VkImage srcImage, VkImageLayout srcImageLayout, VkImage dstImage,
VkImageLayout dstImageLayout, uint32_t regionCount, const VkImageCopy *pRegions) {
bool skip = false;
return skip;
}
-extern bool (*manual_vkCmdBlitImage)(VkCommandBuffer commandBuffer, VkImage srcImage, VkImageLayout srcImageLayout,
- VkImage dstImage, VkImageLayout dstImageLayout, uint32_t regionCount,
- const VkImageBlit *pRegions, VkFilter filter);
bool pv_vkCmdBlitImage(VkCommandBuffer commandBuffer, VkImage srcImage, VkImageLayout srcImageLayout, VkImage dstImage,
VkImageLayout dstImageLayout, uint32_t regionCount, const VkImageBlit *pRegions, VkFilter filter) {
bool skip = false;
return skip;
}
-extern bool (*manual_vkCmdCopyBufferToImage)(VkCommandBuffer commandBuffer, VkBuffer srcBuffer, VkImage dstImage,
- VkImageLayout dstImageLayout, uint32_t regionCount, const VkBufferImageCopy *pRegions);
bool pv_vkCmdCopyBufferToImage(VkCommandBuffer commandBuffer, VkBuffer srcBuffer, VkImage dstImage, VkImageLayout dstImageLayout,
uint32_t regionCount, const VkBufferImageCopy *pRegions) {
bool skip = false;
return skip;
}
-extern bool (*manual_vkCmdCopyImageToBuffer)(VkCommandBuffer commandBuffer, VkImage srcImage, VkImageLayout srcImageLayout,
- VkBuffer dstBuffer, uint32_t regionCount, const VkBufferImageCopy *pRegions);
bool pv_vkCmdCopyImageToBuffer(VkCommandBuffer commandBuffer, VkImage srcImage, VkImageLayout srcImageLayout, VkBuffer dstBuffer,
uint32_t regionCount, const VkBufferImageCopy *pRegions) {
bool skip = false;
return skip;
}
-extern bool (*manual_vkCmdUpdateBuffer)(VkCommandBuffer commandBuffer, VkBuffer dstBuffer, VkDeviceSize dstOffset,
- VkDeviceSize dataSize, const void *pData);
bool pv_vkCmdUpdateBuffer(VkCommandBuffer commandBuffer, VkBuffer dstBuffer, VkDeviceSize dstOffset, VkDeviceSize dataSize,
const void *pData) {
bool skip = false;
return skip;
}
-extern bool (*manual_vkCmdFillBuffer)(VkCommandBuffer commandBuffer, VkBuffer dstBuffer, VkDeviceSize dstOffset, VkDeviceSize size,
- uint32_t data);
bool pv_vkCmdFillBuffer(VkCommandBuffer commandBuffer, VkBuffer dstBuffer, VkDeviceSize dstOffset, VkDeviceSize size,
uint32_t data) {
bool skip = false;
return false;
}
-extern bool (*manual_vkCreateSwapchainKHR)(VkDevice device, const VkSwapchainCreateInfoKHR *pCreateInfo,
- const VkAllocationCallbacks *pAllocator, VkSwapchainKHR *pSwapchain);
bool pv_vkCreateSwapchainKHR(VkDevice device, const VkSwapchainCreateInfoKHR *pCreateInfo, const VkAllocationCallbacks *pAllocator,
VkSwapchainKHR *pSwapchain) {
bool skip = false;
return skip;
}
-extern bool (*manual_vkQueuePresentKHR)(VkQueue queue, const VkPresentInfoKHR *pPresentInfo);
bool pv_vkQueuePresentKHR(VkQueue queue, const VkPresentInfoKHR *pPresentInfo) {
bool skip = false;
layer_data *device_data = GetLayerDataPtr(get_dispatch_key(queue), layer_data_map);
}
#ifdef VK_USE_PLATFORM_WIN32_KHR
-extern bool (*manual_vkCreateWin32SurfaceKHR)(VkInstance instance, const VkWin32SurfaceCreateInfoKHR *pCreateInfo,
- const VkAllocationCallbacks *pAllocator, VkSurfaceKHR *pSurface);
bool pv_vkCreateWin32SurfaceKHR(VkInstance instance, const VkWin32SurfaceCreateInfoKHR *pCreateInfo,
const VkAllocationCallbacks *pAllocator, VkSurfaceKHR *pSurface) {
auto device_data = GetLayerDataPtr(get_dispatch_key(instance), instance_layer_data_map);
}
#endif // VK_USE_PLATFORM_WIN32_KHR
-extern bool (*manual_vkDebugMarkerSetObjectNameEXT)(VkDevice device, const VkDebugMarkerObjectNameInfoEXT *pNameInfo);
bool pv_vkDebugMarkerSetObjectNameEXT(VkDevice device, const VkDebugMarkerObjectNameInfoEXT *pNameInfo) {
auto device_data = GetLayerDataPtr(get_dispatch_key(device), layer_data_map);
if (pNameInfo->pObjectName) {
// If additional validation is needed outside of the generated checks, a manual routine can be added to this file
// and the address filled in here. The autogenerated source will call these routines if the pointers are not NULL.
void InitializeManualParameterValidationFunctionPointers(void) {
- manual_vkGetDeviceQueue = pv_vkGetDeviceQueue;
- manual_vkCreateBuffer = pv_vkCreateBuffer;
- manual_vkCreateImage = pv_vkCreateImage;
- manual_vkCreateImageView = pv_vkCreateImageView;
- manual_vkCreateGraphicsPipelines = pv_vkCreateGraphicsPipelines;
- manual_vkCreateComputePipelines = pv_vkCreateComputePipelines;
- manual_vkCreateSampler = pv_vkCreateSampler;
- manual_vkCreateDescriptorSetLayout = pv_vkCreateDescriptorSetLayout;
- manual_vkFreeDescriptorSets = pv_vkFreeDescriptorSets;
- manual_vkUpdateDescriptorSets = pv_vkUpdateDescriptorSets;
- manual_vkCreateRenderPass = pv_vkCreateRenderPass;
- manual_vkBeginCommandBuffer = pv_vkBeginCommandBuffer;
- manual_vkCmdSetViewport = pv_vkCmdSetViewport;
- manual_vkCmdSetScissor = pv_vkCmdSetScissor;
- manual_vkCmdDraw = pv_vkCmdDraw;
- manual_vkCmdDrawIndirect = pv_vkCmdDrawIndirect;
- manual_vkCmdDrawIndexedIndirect = pv_vkCmdDrawIndexedIndirect;
- manual_vkCmdCopyImage = pv_vkCmdCopyImage;
- manual_vkCmdBlitImage = pv_vkCmdBlitImage;
- manual_vkCmdCopyBufferToImage = pv_vkCmdCopyBufferToImage;
- manual_vkCmdCopyImageToBuffer = pv_vkCmdCopyImageToBuffer;
- manual_vkCmdUpdateBuffer = pv_vkCmdUpdateBuffer;
- manual_vkCmdFillBuffer = pv_vkCmdFillBuffer;
- manual_vkCreateSwapchainKHR = pv_vkCreateSwapchainKHR;
- manual_vkQueuePresentKHR = pv_vkQueuePresentKHR;
+ custom_functions["vkGetDeviceQueue"] = (void*)pv_vkGetDeviceQueue;
+ custom_functions["vkCreateBuffer"] = (void*)pv_vkCreateBuffer;
+ custom_functions["vkCreateImage"] = (void*)pv_vkCreateImage;
+ custom_functions["vkCreateImageView"] = (void*)pv_vkCreateImageView;
+ custom_functions["vkCreateGraphicsPipelines"] = (void*)pv_vkCreateGraphicsPipelines;
+ custom_functions["vkCreateComputePipelines"] = (void*)pv_vkCreateComputePipelines;
+ custom_functions["vkCreateSampler"] = (void*)pv_vkCreateSampler;
+ custom_functions["vkCreateDescriptorSetLayout"] = (void*)pv_vkCreateDescriptorSetLayout;
+ custom_functions["vkFreeDescriptorSets"] = (void*)pv_vkFreeDescriptorSets;
+ custom_functions["vkUpdateDescriptorSets"] = (void*)pv_vkUpdateDescriptorSets;
+ custom_functions["vkCreateRenderPass"] = (void*)pv_vkCreateRenderPass;
+ custom_functions["vkBeginCommandBuffer"] = (void*)pv_vkBeginCommandBuffer;
+ custom_functions["vkCmdSetViewport"] = (void*)pv_vkCmdSetViewport;
+ custom_functions["vkCmdSetScissor"] = (void*)pv_vkCmdSetScissor;
+ custom_functions["vkCmdDraw"] = (void*)pv_vkCmdDraw;
+ custom_functions["vkCmdDrawIndirect"] = (void*)pv_vkCmdDrawIndirect;
+ custom_functions["vkCmdDrawIndexedIndirect"] = (void*)pv_vkCmdDrawIndexedIndirect;
+ custom_functions["vkCmdCopyImage"] = (void*)pv_vkCmdCopyImage;
+ custom_functions["vkCmdBlitImage"] = (void*)pv_vkCmdBlitImage;
+ custom_functions["vkCmdCopyBufferToImage"] = (void*)pv_vkCmdCopyBufferToImage;
+ custom_functions["vkCmdCopyImageToBuffer"] = (void*)pv_vkCmdCopyImageToBuffer;
+ custom_functions["vkCmdUpdateBuffer"] = (void*)pv_vkCmdUpdateBuffer;
+ custom_functions["vkCmdFillBuffer"] = (void*)pv_vkCmdFillBuffer;
+ custom_functions["vkCreateSwapchainKHR"] = (void*)pv_vkCreateSwapchainKHR;
+ custom_functions["vkQueuePresentKHR"] = (void*)pv_vkQueuePresentKHR;
}
} // namespace parameter_validation