From a80a1a97b8f26dd035fabb2c6762447c71b73ba7 Mon Sep 17 00:00:00 2001 From: Courtney Goeltzenleuchter Date: Wed, 24 Jun 2015 18:24:19 -0600 Subject: bug-14014: Allow multiple entrypoints in modules Continue implementation of shader module. --- loader/gpa_helper.h | 2 ++ loader/table_ops.h | 3 +++ loader/trampoline.c | 9 +++++++++ 3 files changed, 14 insertions(+) (limited to 'loader') diff --git a/loader/gpa_helper.h b/loader/gpa_helper.h index a51112ce..02e33416 100644 --- a/loader/gpa_helper.h +++ b/loader/gpa_helper.h @@ -139,6 +139,8 @@ static inline void* globalGetProcAddr(const char *name) return (void*) vkCreateColorAttachmentView; if (!strcmp(name, "CreateDepthStencilView")) return (void*) vkCreateDepthStencilView; + if (!strcmp(name, "CreateShaderModule")) + return (void*) vkCreateShaderModule; if (!strcmp(name, "CreateShader")) return (void*) vkCreateShader; if (!strcmp(name, "CreateGraphicsPipeline")) diff --git a/loader/table_ops.h b/loader/table_ops.h index a657d552..a29324fd 100644 --- a/loader/table_ops.h +++ b/loader/table_ops.h @@ -74,6 +74,7 @@ static inline void loader_init_device_dispatch_table(VkLayerDispatchTable *table table->CreateImageView = (PFN_vkCreateImageView) gpa(dev, "vkCreateImageView"); table->CreateColorAttachmentView = (PFN_vkCreateColorAttachmentView) gpa(dev, "vkCreateColorAttachmentView"); table->CreateDepthStencilView = (PFN_vkCreateDepthStencilView) gpa(dev, "vkCreateDepthStencilView"); + table->CreateShaderModule = (PFN_vkCreateShaderModule) gpa(dev, "vkCreateShaderModule"); table->CreateShader = (PFN_vkCreateShader) gpa(dev, "vkCreateShader"); table->CreateGraphicsPipeline = (PFN_vkCreateGraphicsPipeline) gpa(dev, "vkCreateGraphicsPipeline"); table->CreateGraphicsPipelineDerivative = (PFN_vkCreateGraphicsPipelineDerivative) gpa(dev, "vkCreateGraphicsPipelineDerivative"); @@ -226,6 +227,8 @@ static inline void *loader_lookup_device_dispatch_table( return (void *) table->CreateColorAttachmentView; if (!strcmp(name, "CreateDepthStencilView")) return (void *) table->CreateDepthStencilView; + if (!strcmp(name, "CreateShaderModule")) + return (void *) table->CreateShaderModule; if (!strcmp(name, "CreateShader")) return (void *) table->CreateShader; if (!strcmp(name, "CreateGraphicsPipeline")) diff --git a/loader/trampoline.c b/loader/trampoline.c index 1f96b3b8..24d3a60b 100644 --- a/loader/trampoline.c +++ b/loader/trampoline.c @@ -615,6 +615,15 @@ LOADER_EXPORT VkResult VKAPI vkCreateDepthStencilView(VkDevice device, const VkD return disp->CreateDepthStencilView(device, pCreateInfo, pView); } +LOADER_EXPORT VkResult VKAPI vkCreateShaderModule(VkDevice device, const VkShaderModuleCreateInfo* pCreateInfo, VkShaderModule* pShader) +{ + const VkLayerDispatchTable *disp; + + disp = loader_get_dispatch(device); + + return disp->CreateShaderModule(device, pCreateInfo, pShader); +} + LOADER_EXPORT VkResult VKAPI vkCreateShader(VkDevice device, const VkShaderCreateInfo* pCreateInfo, VkShader* pShader) { const VkLayerDispatchTable *disp; -- cgit v1.2.3