*/
#include <string.h>
+#include "debug_report.h"
#include "wsi_swapchain.h"
+static inline void* trampolineGetProcAddr(struct loader_instance *inst,
+ const char *funcName)
+{
+ //Don't include or check global functions
+ if (!strcmp(funcName, "vkGetInstanceProcAddr"))
+ return (PFN_vkVoidFunction) vkGetInstanceProcAddr;
+ if (!strcmp(funcName, "vkDestroyInstance"))
+ return (PFN_vkVoidFunction) vkDestroyInstance;
+ if (!strcmp(funcName, "vkEnumeratePhysicalDevices"))
+ return (PFN_vkVoidFunction) vkEnumeratePhysicalDevices;
+ if (!strcmp(funcName, "vkGetPhysicalDeviceFeatures"))
+ return (PFN_vkVoidFunction) vkGetPhysicalDeviceFeatures;
+ if (!strcmp(funcName, "vkGetPhysicalDeviceFormatProperties"))
+ return (PFN_vkVoidFunction) vkGetPhysicalDeviceFormatProperties;
+ if (!strcmp(funcName, "vkGetPhysicalDeviceImageFormatProperties"))
+ return (PFN_vkVoidFunction) vkGetPhysicalDeviceImageFormatProperties;
+ if (!strcmp(funcName, "vkGetPhysicalDeviceSparseImageFormatProperties"))
+ return(PFN_vkVoidFunction) vkGetPhysicalDeviceSparseImageFormatProperties;
+ if (!strcmp(funcName, "vkGetPhysicalDeviceProperties"))
+ return (PFN_vkVoidFunction) vkGetPhysicalDeviceProperties;
+ if (!strcmp(funcName, "vkGetPhysicalDeviceQueueFamilyProperties"))
+ return (PFN_vkVoidFunction) vkGetPhysicalDeviceQueueFamilyProperties;
+ if (!strcmp(funcName, "vkGetPhysicalDeviceMemoryProperties"))
+ return (PFN_vkVoidFunction) vkGetPhysicalDeviceMemoryProperties;
+ if (!strcmp(funcName, "vkEnumerateDeviceLayerProperties"))
+ return (PFN_vkVoidFunction) vkEnumerateDeviceLayerProperties;
+ if (!strcmp(funcName, "vkEnumerateDeviceExtensionProperties"))
+ return (PFN_vkVoidFunction) vkEnumerateDeviceExtensionProperties;
+ if (!strcmp(funcName, "vkCreateDevice"))
+ return (PFN_vkVoidFunction) vkCreateDevice;
+ if (!strcmp(funcName, "vkGetDeviceProcAddr"))
+ return (PFN_vkVoidFunction) vkGetDeviceProcAddr;
+ if (!strcmp(funcName, "vkDestroyDevice"))
+ return (PFN_vkVoidFunction) vkDestroyDevice;
+ if (!strcmp(funcName, "vkGetDeviceQueue"))
+ return (PFN_vkVoidFunction) vkGetDeviceQueue;
+ if (!strcmp(funcName, "vkQueueSubmit"))
+ return (PFN_vkVoidFunction) vkQueueSubmit;
+ if (!strcmp(funcName, "vkQueueWaitIdle"))
+ return (PFN_vkVoidFunction) vkQueueWaitIdle;
+ if (!strcmp(funcName, "vkDeviceWaitIdle"))
+ return (PFN_vkVoidFunction) vkDeviceWaitIdle;
+ if (!strcmp(funcName, "vkAllocateMemory"))
+ return (PFN_vkVoidFunction) vkAllocateMemory;
+ if (!strcmp(funcName, "vkFreeMemory"))
+ return (PFN_vkVoidFunction) vkFreeMemory;
+ if (!strcmp(funcName, "vkMapMemory"))
+ return (PFN_vkVoidFunction) vkMapMemory;
+ if (!strcmp(funcName, "vkUnmapMemory"))
+ return (PFN_vkVoidFunction) vkUnmapMemory;
+ if (!strcmp(funcName, "vkFlushMappedMemoryRanges"))
+ return (PFN_vkVoidFunction) vkFlushMappedMemoryRanges;
+ if (!strcmp(funcName, "vkInvalidateMappedMemoryRanges"))
+ return (PFN_vkVoidFunction) vkInvalidateMappedMemoryRanges;
+ if (!strcmp(funcName, "vkGetDeviceMemoryCommitment"))
+ return (PFN_vkVoidFunction) vkGetDeviceMemoryCommitment;
+ if (!strcmp(funcName, "vkGetImageSparseMemoryRequirements"))
+ return (PFN_vkVoidFunction) vkGetImageSparseMemoryRequirements;
+ if (!strcmp(funcName, "vkGetImageMemoryRequirements"))
+ return (PFN_vkVoidFunction) vkGetImageMemoryRequirements;
+ if (!strcmp(funcName, "vkGetBufferMemoryRequirements"))
+ return (PFN_vkVoidFunction) vkGetBufferMemoryRequirements;
+ if (!strcmp(funcName, "vkBindImageMemory"))
+ return (PFN_vkVoidFunction) vkBindImageMemory;
+ if (!strcmp(funcName, "vkBindBufferMemory"))
+ return (PFN_vkVoidFunction) vkBindBufferMemory;
+ if (!strcmp(funcName, "vkQueueBindSparse"))
+ return (PFN_vkVoidFunction) vkQueueBindSparse;
+ if (!strcmp(funcName, "vkCreateFence"))
+ return (PFN_vkVoidFunction) vkCreateFence;
+ if (!strcmp(funcName, "vkDestroyFence"))
+ return (PFN_vkVoidFunction) vkDestroyFence;
+ if (!strcmp(funcName, "vkGetFenceStatus"))
+ return (PFN_vkVoidFunction) vkGetFenceStatus;
+ if (!strcmp(funcName, "vkResetFences"))
+ return (PFN_vkVoidFunction) vkResetFences;
+ if (!strcmp(funcName, "vkWaitForFences"))
+ return (PFN_vkVoidFunction) vkWaitForFences;
+ if (!strcmp(funcName, "vkCreateSemaphore"))
+ return (PFN_vkVoidFunction) vkCreateSemaphore;
+ if (!strcmp(funcName, "vkDestroySemaphore"))
+ return (PFN_vkVoidFunction) vkDestroySemaphore;
+ if (!strcmp(funcName, "vkCreateEvent"))
+ return (PFN_vkVoidFunction) vkCreateEvent;
+ if (!strcmp(funcName, "vkDestroyEvent"))
+ return (PFN_vkVoidFunction) vkDestroyEvent;
+ if (!strcmp(funcName, "vkGetEventStatus"))
+ return (PFN_vkVoidFunction) vkGetEventStatus;
+ if (!strcmp(funcName, "vkSetEvent"))
+ return (PFN_vkVoidFunction) vkSetEvent;
+ if (!strcmp(funcName, "vkResetEvent"))
+ return (PFN_vkVoidFunction) vkResetEvent;
+ if (!strcmp(funcName, "vkCreateQueryPool"))
+ return (PFN_vkVoidFunction) vkCreateQueryPool;
+ if (!strcmp(funcName, "vkDestroyQueryPool"))
+ return (PFN_vkVoidFunction) vkDestroyQueryPool;
+ if (!strcmp(funcName, "vkGetQueryPoolResults"))
+ return (PFN_vkVoidFunction) vkGetQueryPoolResults;
+ if (!strcmp(funcName, "vkCreateBuffer"))
+ return (PFN_vkVoidFunction) vkCreateBuffer;
+ if (!strcmp(funcName, "vkDestroyBuffer"))
+ return (PFN_vkVoidFunction) vkDestroyBuffer;
+ if (!strcmp(funcName, "vkCreateBufferView"))
+ return (PFN_vkVoidFunction) vkCreateBufferView;
+ if (!strcmp(funcName, "vkDestroyBufferView"))
+ return (PFN_vkVoidFunction) vkDestroyBufferView;
+ if (!strcmp(funcName, "vkCreateImage"))
+ return (PFN_vkVoidFunction) vkCreateImage;
+ if (!strcmp(funcName, "vkDestroyImage"))
+ return (PFN_vkVoidFunction) vkDestroyImage;
+ if (!strcmp(funcName, "vkGetImageSubresourceLayout"))
+ return (PFN_vkVoidFunction) vkGetImageSubresourceLayout;
+ if (!strcmp(funcName, "vkCreateImageView"))
+ return (PFN_vkVoidFunction) vkCreateImageView;
+ if (!strcmp(funcName, "vkDestroyImageView"))
+ return (PFN_vkVoidFunction) vkDestroyImageView;
+ if (!strcmp(funcName, "vkCreateShaderModule"))
+ return (PFN_vkVoidFunction) vkCreateShaderModule;
+ if (!strcmp(funcName, "vkDestroyShaderModule"))
+ return (PFN_vkVoidFunction) vkDestroyShaderModule;
+ if (!strcmp(funcName, "vkCreatePipelineCache"))
+ return (PFN_vkVoidFunction) vkCreatePipelineCache;
+ if (!strcmp(funcName, "vkDestroyPipelineCache"))
+ return (PFN_vkVoidFunction) vkDestroyPipelineCache;
+ if (!strcmp(funcName, "vkGetPipelineCacheData"))
+ return (PFN_vkVoidFunction) vkGetPipelineCacheData;
+ if (!strcmp(funcName, "vkMergePipelineCaches"))
+ return (PFN_vkVoidFunction) vkMergePipelineCaches;
+ if (!strcmp(funcName, "vkCreateGraphicsPipelines"))
+ return (PFN_vkVoidFunction) vkCreateGraphicsPipelines;
+ if (!strcmp(funcName, "vkCreateComputePipelines"))
+ return (PFN_vkVoidFunction) vkCreateComputePipelines;
+ if (!strcmp(funcName, "vkDestroyPipeline"))
+ return (PFN_vkVoidFunction) vkDestroyPipeline;
+ if (!strcmp(funcName, "vkCreatePipelineLayout"))
+ return (PFN_vkVoidFunction) vkCreatePipelineLayout;
+ if (!strcmp(funcName, "vkDestroyPipelineLayout"))
+ return (PFN_vkVoidFunction) vkDestroyPipelineLayout;
+ if (!strcmp(funcName, "vkCreateSampler"))
+ return (PFN_vkVoidFunction) vkCreateSampler;
+ if (!strcmp(funcName, "vkDestroySampler"))
+ return (PFN_vkVoidFunction) vkDestroySampler;
+ if (!strcmp(funcName, "vkCreateDescriptorSetLayout"))
+ return (PFN_vkVoidFunction) vkCreateDescriptorSetLayout;
+ if (!strcmp(funcName, "vkDestroyDescriptorSetLayout"))
+ return (PFN_vkVoidFunction) vkDestroyDescriptorSetLayout;
+ if (!strcmp(funcName, "vkCreateDescriptorPool"))
+ return (PFN_vkVoidFunction) vkCreateDescriptorPool;
+ if (!strcmp(funcName, "vkDestroyDescriptorPool"))
+ return (PFN_vkVoidFunction) vkDestroyDescriptorPool;
+ if (!strcmp(funcName, "vkResetDescriptorPool"))
+ return (PFN_vkVoidFunction) vkResetDescriptorPool;
+ if (!strcmp(funcName, "vkAllocateDescriptorSets"))
+ return (PFN_vkVoidFunction) vkAllocateDescriptorSets;
+ if (!strcmp(funcName, "vkFreeDescriptorSets"))
+ return (PFN_vkVoidFunction) vkFreeDescriptorSets;
+ if (!strcmp(funcName, "vkUpdateDescriptorSets"))
+ return (PFN_vkVoidFunction) vkUpdateDescriptorSets;
+ if (!strcmp(funcName, "vkCreateFramebuffer"))
+ return (PFN_vkVoidFunction) vkCreateFramebuffer;
+ if (!strcmp(funcName, "vkDestroyFramebuffer"))
+ return (PFN_vkVoidFunction) vkDestroyFramebuffer;
+ if (!strcmp(funcName, "vkCreateRenderPass"))
+ return (PFN_vkVoidFunction) vkCreateRenderPass;
+ if (!strcmp(funcName, "vkDestroyRenderPass"))
+ return (PFN_vkVoidFunction) vkDestroyRenderPass;
+ if (!strcmp(funcName, "vkGetRenderAreaGranularity"))
+ return (PFN_vkVoidFunction) vkGetRenderAreaGranularity;
+ if (!strcmp(funcName, "vkCreateCommandPool"))
+ return (PFN_vkVoidFunction) vkCreateCommandPool;
+ if (!strcmp(funcName, "vkDestroyCommandPool"))
+ return (PFN_vkVoidFunction) vkDestroyCommandPool;
+ if (!strcmp(funcName, "vkResetCommandPool"))
+ return (PFN_vkVoidFunction) vkResetCommandPool;
+ if (!strcmp(funcName, "vkAllocateCommandBuffers"))
+ return (PFN_vkVoidFunction) vkAllocateCommandBuffers;
+ if (!strcmp(funcName, "vkFreeCommandBuffers"))
+ return (PFN_vkVoidFunction) vkFreeCommandBuffers;
+ if (!strcmp(funcName, "vkBeginCommandBuffer"))
+ return (PFN_vkVoidFunction) vkBeginCommandBuffer;
+ if (!strcmp(funcName, "vkEndCommandBuffer"))
+ return (PFN_vkVoidFunction) vkEndCommandBuffer;
+ if (!strcmp(funcName, "vkResetCommandBuffer"))
+ return (PFN_vkVoidFunction) vkResetCommandBuffer;
+ if (!strcmp(funcName, "vkCmdBindPipeline"))
+ return (PFN_vkVoidFunction) vkCmdBindPipeline;
+ if (!strcmp(funcName, "vkCmdBindDescriptorSets"))
+ return (PFN_vkVoidFunction) vkCmdBindDescriptorSets;
+ if (!strcmp(funcName, "vkCmdBindVertexBuffers"))
+ return (PFN_vkVoidFunction) vkCmdBindVertexBuffers;
+ if (!strcmp(funcName, "vkCmdBindIndexBuffer"))
+ return (PFN_vkVoidFunction) vkCmdBindIndexBuffer;
+ if (!strcmp(funcName, "vkCmdSetViewport"))
+ return (PFN_vkVoidFunction) vkCmdSetViewport;
+ if (!strcmp(funcName, "vkCmdSetScissor"))
+ return (PFN_vkVoidFunction) vkCmdSetScissor;
+ if (!strcmp(funcName, "vkCmdSetLineWidth"))
+ return (PFN_vkVoidFunction) vkCmdSetLineWidth;
+ if (!strcmp(funcName, "vkCmdSetDepthBias"))
+ return (PFN_vkVoidFunction) vkCmdSetDepthBias;
+ if (!strcmp(funcName, "vkCmdSetBlendConstants"))
+ return (PFN_vkVoidFunction) vkCmdSetBlendConstants;
+ if (!strcmp(funcName, "vkCmdSetDepthBounds"))
+ return (PFN_vkVoidFunction) vkCmdSetDepthBounds;
+ if (!strcmp(funcName, "vkCmdSetStencilCompareMask"))
+ return (PFN_vkVoidFunction) vkCmdSetStencilCompareMask;
+ if (!strcmp(funcName, "vkCmdSetStencilWriteMask"))
+ return (PFN_vkVoidFunction) vkCmdSetStencilWriteMask;
+ if (!strcmp(funcName, "vkCmdSetStencilReference"))
+ return (PFN_vkVoidFunction) vkCmdSetStencilReference;
+ if (!strcmp(funcName, "vkCmdDraw"))
+ return (PFN_vkVoidFunction) vkCmdDraw;
+ if (!strcmp(funcName, "vkCmdDrawIndexed"))
+ return (PFN_vkVoidFunction) vkCmdDrawIndexed;
+ if (!strcmp(funcName, "vkCmdDrawIndirect"))
+ return (PFN_vkVoidFunction) vkCmdDrawIndirect;
+ if (!strcmp(funcName, "vkCmdDrawIndexedIndirect"))
+ return (PFN_vkVoidFunction) vkCmdDrawIndexedIndirect;
+ if (!strcmp(funcName, "vkCmdDispatch"))
+ return (PFN_vkVoidFunction) vkCmdDispatch;
+ if (!strcmp(funcName, "vkCmdDispatchIndirect"))
+ return (PFN_vkVoidFunction) vkCmdDispatchIndirect;
+ if (!strcmp(funcName, "vkCmdCopyBuffer"))
+ return (PFN_vkVoidFunction) vkCmdCopyBuffer;
+ if (!strcmp(funcName, "vkCmdCopyImage"))
+ return (PFN_vkVoidFunction) vkCmdCopyImage;
+ if (!strcmp(funcName, "vkCmdBlitImage"))
+ return (PFN_vkVoidFunction) vkCmdBlitImage;
+ if (!strcmp(funcName, "vkCmdCopyBufferToImage"))
+ return (PFN_vkVoidFunction) vkCmdCopyBufferToImage;
+ if (!strcmp(funcName, "vkCmdCopyImageToBuffer"))
+ return (PFN_vkVoidFunction) vkCmdCopyImageToBuffer;
+ if (!strcmp(funcName, "vkCmdUpdateBuffer"))
+ return (PFN_vkVoidFunction) vkCmdUpdateBuffer;
+ if (!strcmp(funcName, "vkCmdFillBuffer"))
+ return (PFN_vkVoidFunction) vkCmdFillBuffer;
+ if (!strcmp(funcName, "vkCmdClearColorImage"))
+ return (PFN_vkVoidFunction) vkCmdClearColorImage;
+ if (!strcmp(funcName, "vkCmdClearDepthStencilImage"))
+ return (PFN_vkVoidFunction) vkCmdClearDepthStencilImage;
+ if (!strcmp(funcName, "vkCmdClearAttachments"))
+ return (PFN_vkVoidFunction) vkCmdClearAttachments;
+ if (!strcmp(funcName, "vkCmdResolveImage"))
+ return (PFN_vkVoidFunction) vkCmdResolveImage;
+ if (!strcmp(funcName, "vkCmdSetEvent"))
+ return (PFN_vkVoidFunction) vkCmdSetEvent;
+ if (!strcmp(funcName, "vkCmdResetEvent"))
+ return (PFN_vkVoidFunction) vkCmdResetEvent;
+ if (!strcmp(funcName, "vkCmdWaitEvents"))
+ return (PFN_vkVoidFunction) vkCmdWaitEvents;
+ if (!strcmp(funcName, "vkCmdPipelineBarrier"))
+ return (PFN_vkVoidFunction) vkCmdPipelineBarrier;
+ if (!strcmp(funcName, "vkCmdBeginQuery"))
+ return (PFN_vkVoidFunction) vkCmdBeginQuery;
+ if (!strcmp(funcName, "vkCmdEndQuery"))
+ return (PFN_vkVoidFunction) vkCmdEndQuery;
+ if (!strcmp(funcName, "vkCmdResetQueryPool"))
+ return (PFN_vkVoidFunction) vkCmdResetQueryPool;
+ if (!strcmp(funcName, "vkCmdWriteTimestamp"))
+ return (PFN_vkVoidFunction) vkCmdWriteTimestamp;
+ if (!strcmp(funcName, "vkCmdCopyQueryPoolResults"))
+ return (PFN_vkVoidFunction) vkCmdCopyQueryPoolResults;
+ if (!strcmp(funcName, "vkCmdPushConstants"))
+ return (PFN_vkVoidFunction) vkCmdPushConstants;
+ if (!strcmp(funcName, "vkCmdBeginRenderPass"))
+ return (PFN_vkVoidFunction) vkCmdBeginRenderPass;
+ if (!strcmp(funcName, "vkCmdNextSubpass"))
+ return (PFN_vkVoidFunction) vkCmdNextSubpass;
+ if (!strcmp(funcName, "vkCmdEndRenderPass"))
+ return (PFN_vkVoidFunction) vkCmdEndRenderPass;
+ if (!strcmp(funcName, "vkCmdExecuteCommands"))
+ return (PFN_vkVoidFunction) vkCmdExecuteCommands;
+
+ // Instance extensions
+ void *addr;
+ if (debug_report_instance_gpa(inst, funcName, &addr))
+ return addr;
+
+ if (wsi_swapchain_instance_gpa(inst, funcName, &addr))
+ return addr;
+
+ //TODO device extensions
+ return NULL;
+}
+
static inline void* globalGetProcAddr(const char *name)
{
if (!name || name[0] != 'v' || name[1] != 'k')
name += 2;
if (!strcmp(name, "CreateInstance"))
return (void*) vkCreateInstance;
- if (!strcmp(name, "DestroyInstance"))
- return (void*) vkDestroyInstance;
- if (!strcmp(name, "EnumeratePhysicalDevices"))
- return (void*) vkEnumeratePhysicalDevices;
- if (!strcmp(name, "GetPhysicalDeviceFeatures"))
- return (void*) vkGetPhysicalDeviceFeatures;
- if (!strcmp(name, "GetPhysicalDeviceFormatProperties"))
- return (void*) vkGetPhysicalDeviceFormatProperties;
- if (!strcmp(name, "GetPhysicalDeviceImageFormatProperties"))
- return (void*) vkGetPhysicalDeviceImageFormatProperties;
- if (!strcmp(name, "GetPhysicalDeviceProperties"))
- return (void*) vkGetPhysicalDeviceProperties;
- if (!strcmp(name, "GetPhysicalDeviceQueueFamilyProperties"))
- return (void*) vkGetPhysicalDeviceQueueFamilyProperties;
- if (!strcmp(name, "GetPhysicalDeviceMemoryProperties"))
- return (void*) vkGetPhysicalDeviceMemoryProperties;
- if (!strcmp(name, "GetInstanceProcAddr"))
- return (void*) vkGetInstanceProcAddr;
- if (!strcmp(name, "GetDeviceProcAddr"))
- return (void*) vkGetDeviceProcAddr;
- if (!strcmp(name, "CreateDevice"))
- return (void*) vkCreateDevice;
- if (!strcmp(name, "DestroyDevice"))
- return (void*) vkDestroyDevice;
if (!strcmp(name, "EnumerateInstanceExtensionProperties"))
return (void*) vkEnumerateInstanceExtensionProperties;
- if (!strcmp(name, "EnumerateDeviceExtensionProperties"))
- return (void*) vkEnumerateDeviceExtensionProperties;
if (!strcmp(name, "EnumerateInstanceLayerProperties"))
return (void*) vkEnumerateInstanceLayerProperties;
- if (!strcmp(name, "EnumerateDeviceLayerProperties"))
- return (void*) vkEnumerateDeviceLayerProperties;
- if (!strcmp(name, "GetDeviceQueue"))
- return (void*) vkGetDeviceQueue;
- if (!strcmp(name, "QueueSubmit"))
- return (void*) vkQueueSubmit;
- if (!strcmp(name, "QueueWaitIdle"))
- return (void*) vkQueueWaitIdle;
- if (!strcmp(name, "DeviceWaitIdle"))
- return (void*) vkDeviceWaitIdle;
- if (!strcmp(name, "AllocateMemory"))
- return (void*) vkAllocateMemory;
- if (!strcmp(name, "FreeMemory"))
- return (void*) vkFreeMemory;
- if (!strcmp(name, "MapMemory"))
- return (void*) vkMapMemory;
- if (!strcmp(name, "UnmapMemory"))
- return (void*) vkUnmapMemory;
- if (!strcmp(name, "FlushMappedMemoryRanges"))
- return (void*) vkFlushMappedMemoryRanges;
- if (!strcmp(name, "InvalidateMappedMemoryRanges"))
- return (void*) vkInvalidateMappedMemoryRanges;
- if (!strcmp(name, "GetDeviceMemoryCommitment"))
- return (void *) vkGetDeviceMemoryCommitment;
- if (!strcmp(name, "BindBufferMemory"))
- return (void*) vkBindBufferMemory;
- if (!strcmp(name, "BindImageMemory"))
- return (void*) vkBindImageMemory;
- if (!strcmp(name, "GetBufferMemoryRequirements"))
- return (void*) vkGetBufferMemoryRequirements;
- if (!strcmp(name, "GetImageMemoryRequirements"))
- return (void*) vkGetImageMemoryRequirements;
- if (!strcmp(name, "GetImageSparseMemoryRequirements"))
- return (void*) vkGetImageSparseMemoryRequirements;
- if (!strcmp(name, "GetPhysicalDeviceSparseImageFormatProperties"))
- return (void*) vkGetPhysicalDeviceSparseImageFormatProperties;
- if (!strcmp(name, "QueueBindSparse"))
- return (void*) vkQueueBindSparse;
- if (!strcmp(name, "CreateFence"))
- return (void*) vkCreateFence;
- if (!strcmp(name, "DestroyFence"))
- return (void*) vkDestroyFence;
- if (!strcmp(name, "ResetFences"))
- return (void*) vkResetFences;
- if (!strcmp(name, "GetFenceStatus"))
- return (void*) vkGetFenceStatus;
- if (!strcmp(name, "WaitForFences"))
- return (void*) vkWaitForFences;
- if (!strcmp(name, "CreateSemaphore"))
- return (void*) vkCreateSemaphore;
- if (!strcmp(name, "DestroySemaphore"))
- return (void*) vkDestroySemaphore;
- if (!strcmp(name, "CreateEvent"))
- return (void*) vkCreateEvent;
- if (!strcmp(name, "DestroyEvent"))
- return (void*) vkDestroyEvent;
- if (!strcmp(name, "GetEventStatus"))
- return (void*) vkGetEventStatus;
- if (!strcmp(name, "SetEvent"))
- return (void*) vkSetEvent;
- if (!strcmp(name, "ResetEvent"))
- return (void*) vkResetEvent;
- if (!strcmp(name, "CreateQueryPool"))
- return (void*) vkCreateQueryPool;
- if (!strcmp(name, "DestroyQueryPool"))
- return (void*) vkDestroyQueryPool;
- if (!strcmp(name, "GetQueryPoolResults"))
- return (void*) vkGetQueryPoolResults;
- if (!strcmp(name, "CreateBuffer"))
- return (void*) vkCreateBuffer;
- if (!strcmp(name, "DestroyBuffer"))
- return (void*) vkDestroyBuffer;
- if (!strcmp(name, "CreateBufferView"))
- return (void*) vkCreateBufferView;
- if (!strcmp(name, "DestroyBufferView"))
- return (void*) vkDestroyBufferView;
- if (!strcmp(name, "CreateImage"))
- return (void*) vkCreateImage;
- if (!strcmp(name, "DestroyImage"))
- return (void*) vkDestroyImage;
- if (!strcmp(name, "GetImageSubresourceLayout"))
- return (void*) vkGetImageSubresourceLayout;
- if (!strcmp(name, "CreateImageView"))
- return (void*) vkCreateImageView;
- if (!strcmp(name, "DestroyImageView"))
- return (void*) vkDestroyImageView;
- if (!strcmp(name, "CreateShaderModule"))
- return (void*) vkCreateShaderModule;
- if (!strcmp(name, "DestroyShaderModule"))
- return (void*) vkDestroyShaderModule;
- if (!strcmp(name, "CreatePipelineCache"))
- return (void*) vkCreatePipelineCache;
- if (!strcmp(name, "DestroyPipelineCache"))
- return (void*) vkDestroyPipelineCache;
- if (!strcmp(name, "GetPipelineCacheData"))
- return (void*) vkGetPipelineCacheData;
- if (!strcmp(name, "MergePipelineCaches"))
- return (void*) vkMergePipelineCaches;
- if (!strcmp(name, "CreateGraphicsPipelines"))
- return (void*) vkCreateGraphicsPipelines;
- if (!strcmp(name, "CreateComputePipelines"))
- return (void*) vkCreateComputePipelines;
- if (!strcmp(name, "DestroyPipeline"))
- return (void*) vkDestroyPipeline;
- if (!strcmp(name, "CreatePipelineLayout"))
- return (void*) vkCreatePipelineLayout;
- if (!strcmp(name, "DestroyPipelineLayout"))
- return (void*) vkDestroyPipelineLayout;
- if (!strcmp(name, "CreateSampler"))
- return (void*) vkCreateSampler;
- if (!strcmp(name, "DestroySampler"))
- return (void*) vkDestroySampler;
- if (!strcmp(name, "CreateDescriptorSetLayout"))
- return (void*) vkCreateDescriptorSetLayout;
- if (!strcmp(name, "DestroyDescriptorSetLayout"))
- return (void*) vkDestroyDescriptorSetLayout;
- if (!strcmp(name, "CreateDescriptorPool"))
- return (void*) vkCreateDescriptorPool;
- if (!strcmp(name, "DestroyDescriptorPool"))
- return (void*) vkDestroyDescriptorPool;
- if (!strcmp(name, "ResetDescriptorPool"))
- return (void*) vkResetDescriptorPool;
- if (!strcmp(name, "AllocateDescriptorSets"))
- return (void*) vkAllocateDescriptorSets;
- if (!strcmp(name, "FreeDescriptorSets"))
- return (void*) vkFreeDescriptorSets;
- if (!strcmp(name, "UpdateDescriptorSets"))
- return (void*) vkUpdateDescriptorSets;
- if (!strcmp(name, "CreateFramebuffer"))
- return (void*) vkCreateFramebuffer;
- if (!strcmp(name, "DestroyFramebuffer"))
- return (void*) vkDestroyFramebuffer;
- if (!strcmp(name, "CreateRenderPass"))
- return (void*) vkCreateRenderPass;
- if (!strcmp(name, "DestroyRenderPass"))
- return (void*) vkDestroyRenderPass;
- if (!strcmp(name, "GetRenderAreaGranularity"))
- return (void*) vkGetRenderAreaGranularity;
- if (!strcmp(name, "CreateCommandPool"))
- return (void*) vkCreateCommandPool;
- if (!strcmp(name, "DestroyCommandPool"))
- return (void*) vkDestroyCommandPool;
- if (!strcmp(name, "ResetCommandPool"))
- return (void*) vkResetCommandPool;
- if (!strcmp(name, "AllocateCommandBuffers"))
- return (void*) vkAllocateCommandBuffers;
- if (!strcmp(name, "FreeCommandBuffers"))
- return (void*) vkFreeCommandBuffers;
- if (!strcmp(name, "BeginCommandBuffer"))
- return (void*) vkBeginCommandBuffer;
- if (!strcmp(name, "EndCommandBuffer"))
- return (void*) vkEndCommandBuffer;
- if (!strcmp(name, "ResetCommandBuffer"))
- return (void*) vkResetCommandBuffer;
- if (!strcmp(name, "CmdBindPipeline"))
- return (void*) vkCmdBindPipeline;
- if (!strcmp(name, "CmdSetViewport"))
- return (void*) vkCmdSetViewport;
- if (!strcmp(name, "CmdSetScissor"))
- return (void*) vkCmdSetScissor;
- if (!strcmp(name, "CmdSetLineWidth"))
- return (void*) vkCmdSetLineWidth;
- if (!strcmp(name, "CmdSetDepthBias"))
- return (void*) vkCmdSetDepthBias;
- if (!strcmp(name, "CmdSetBlendConstants"))
- return (void*) vkCmdSetBlendConstants;
- if (!strcmp(name, "CmdSetDepthBounds"))
- return (void*) vkCmdSetDepthBounds;
- if (!strcmp(name, "CmdSetStencilCompareMask"))
- return (void*) vkCmdSetStencilCompareMask;
- if (!strcmp(name, "CmdSetStencilWriteMask"))
- return (void*) vkCmdSetStencilWriteMask;
- if (!strcmp(name, "CmdSetStencilReference"))
- return (void*) vkCmdSetStencilReference;
- if (!strcmp(name, "CmdBindIndexBuffer"))
- return (void*) vkCmdBindIndexBuffer;
- if (!strcmp(name, "CmdBindVertexBuffers"))
- return (void*) vkCmdBindVertexBuffers;
- if (!strcmp(name, "CmdDraw"))
- return (void*) vkCmdDraw;
- if (!strcmp(name, "CmdDrawIndexed"))
- return (void*) vkCmdDrawIndexed;
- if (!strcmp(name, "CmdDrawIndirect"))
- return (void*) vkCmdDrawIndirect;
- if (!strcmp(name, "CmdDrawIndexedIndirect"))
- return (void*) vkCmdDrawIndexedIndirect;
- if (!strcmp(name, "CmdDispatch"))
- return (void*) vkCmdDispatch;
- if (!strcmp(name, "CmdDispatchIndirect"))
- return (void*) vkCmdDispatchIndirect;
- if (!strcmp(name, "CmdCopyBuffer"))
- return (void*) vkCmdCopyBuffer;
- if (!strcmp(name, "CmdCopyImage"))
- return (void*) vkCmdCopyImage;
- if (!strcmp(name, "CmdBlitImage"))
- return (void*) vkCmdBlitImage;
- if (!strcmp(name, "CmdCopyBufferToImage"))
- return (void*) vkCmdCopyBufferToImage;
- if (!strcmp(name, "CmdCopyImageToBuffer"))
- return (void*) vkCmdCopyImageToBuffer;
- if (!strcmp(name, "CmdUpdateBuffer"))
- return (void*) vkCmdUpdateBuffer;
- if (!strcmp(name, "CmdFillBuffer"))
- return (void*) vkCmdFillBuffer;
- if (!strcmp(name, "CmdClearColorImage"))
- return (void*) vkCmdClearColorImage;
- if (!strcmp(name, "CmdClearDepthStencilImage"))
- return (void*) vkCmdClearDepthStencilImage;
- if (!strcmp(name, "CmdClearAttachments"))
- return (void*) vkCmdClearAttachments;
- if (!strcmp(name, "CmdResolveImage"))
- return (void*) vkCmdResolveImage;
- if (!strcmp(name, "CmdSetEvent"))
- return (void*) vkCmdSetEvent;
- if (!strcmp(name, "CmdResetEvent"))
- return (void*) vkCmdResetEvent;
- if (!strcmp(name, "CmdWaitEvents"))
- return (void*) vkCmdWaitEvents;
- if (!strcmp(name, "CmdPipelineBarrier"))
- return (void*) vkCmdPipelineBarrier;
- if (!strcmp(name, "CmdBeginQuery"))
- return (void*) vkCmdBeginQuery;
- if (!strcmp(name, "CmdEndQuery"))
- return (void*) vkCmdEndQuery;
- if (!strcmp(name, "CmdResetQueryPool"))
- return (void*) vkCmdResetQueryPool;
- if (!strcmp(name, "CmdWriteTimestamp"))
- return (void*) vkCmdWriteTimestamp;
- if (!strcmp(name, "CmdCopyQueryPoolResults"))
- return (void*) vkCmdCopyQueryPoolResults;
- if (!strcmp(name, "CmdPushConstants"))
- return (void*) vkCmdPushConstants;
- if (!strcmp(name, "CmdBeginRenderPass"))
- return (void*) vkCmdBeginRenderPass;
- if (!strcmp(name, "CmdNextSubpass"))
- return (void*) vkCmdNextSubpass;
- if (!strcmp(name, "CmdEndRenderPass"))
- return (void*) vkCmdEndRenderPass;
- if (!strcmp(name, "CmdExecuteCommands"))
- return (void*) vkCmdExecuteCommands;
+
return NULL;
}
if (!strcmp(name, "GetDeviceProcAddr"))
return (void*) vkGetDeviceProcAddr;
- if (!strcmp(name, "CreateDevice"))
- return (void*) vkCreateDevice;
if (!strcmp(name, "DestroyDevice"))
return (void*) vkDestroyDevice;
if (!strcmp(name, "GetDeviceQueue"))