From 36a642f8972f33780a144197d8dc3d5bc341e080 Mon Sep 17 00:00:00 2001 From: Cody Northrop Date: Tue, 18 Aug 2015 15:21:16 -0600 Subject: Bug 14406: Add support for front/back stencil reference dynamic state --- loader/gpa_helper.h | 18 ++++++++++++------ loader/table_ops.h | 27 ++++++++++++++++++--------- loader/trampoline.c | 39 +++++++++++++++++++++++++++++++++------ 3 files changed, 63 insertions(+), 21 deletions(-) (limited to 'loader') diff --git a/loader/gpa_helper.h b/loader/gpa_helper.h index bb79f035..185a140c 100644 --- a/loader/gpa_helper.h +++ b/loader/gpa_helper.h @@ -227,10 +227,14 @@ static inline void* globalGetProcAddr(const char *name) return (void*) vkCreateDynamicColorBlendState; if (!strcmp(name, "DestroyDynamicColorBlendState")) return (void*) vkDestroyDynamicColorBlendState; - if (!strcmp(name, "CreateDynamicDepthStencilState")) - return (void*) vkCreateDynamicDepthStencilState; - if (!strcmp(name, "DestroyDynamicDepthStencilState")) - return (void*) vkDestroyDynamicDepthStencilState; + if (!strcmp(name, "CreateDynamicDepthState")) + return (void*) vkCreateDynamicDepthState; + if (!strcmp(name, "DestroyDynamicDepthState")) + return (void*) vkDestroyDynamicDepthState; + if (!strcmp(name, "CreateDynamicStencilState")) + return (void*) vkCreateDynamicStencilState; + if (!strcmp(name, "DestroyDynamicStencilState")) + return (void*) vkDestroyDynamicStencilState; if (!strcmp(name, "CreateFramebuffer")) return (void*) vkCreateFramebuffer; if (!strcmp(name, "DestroyFramebuffer")) @@ -267,8 +271,10 @@ static inline void* globalGetProcAddr(const char *name) return (void*) vkCmdBindDynamicRasterDepthBiasState; if (!strcmp(name, "CmdBindDynamicColorBlendState")) return (void*) vkCmdBindDynamicColorBlendState; - if (!strcmp(name, "CmdBindDynamicDepthStencilState")) - return (void*) vkCmdBindDynamicDepthStencilState; + if (!strcmp(name, "CmdBindDynamicDepthState")) + return (void*) vkCmdBindDynamicDepthState; + if (!strcmp(name, "CmdBindDynamicStencilState")) + return (void*) vkCmdBindDynamicStencilState; if (!strcmp(name, "CmdBindDescriptorSets")) return (void*) vkCmdBindDescriptorSets; if (!strcmp(name, "CmdBindIndexBuffer")) diff --git a/loader/table_ops.h b/loader/table_ops.h index dbb0ee43..d1a59d56 100644 --- a/loader/table_ops.h +++ b/loader/table_ops.h @@ -118,8 +118,10 @@ static inline void loader_init_device_dispatch_table(VkLayerDispatchTable *table table->DestroyDynamicRasterDepthBiasState = (PFN_vkDestroyDynamicRasterDepthBiasState) gpa(dev, "vkDestroyDynamicRasterDepthBiasState"); table->CreateDynamicColorBlendState = (PFN_vkCreateDynamicColorBlendState) gpa(dev, "vkCreateDynamicColorBlendState"); table->DestroyDynamicColorBlendState = (PFN_vkDestroyDynamicColorBlendState) gpa(dev, "vkDestroyDynamicColorBlendState"); - table->CreateDynamicDepthStencilState = (PFN_vkCreateDynamicDepthStencilState) gpa(dev, "vkCreateDynamicDepthStencilState"); - table->DestroyDynamicDepthStencilState = (PFN_vkDestroyDynamicDepthStencilState) gpa(dev, "vkDestroyDynamicDepthStencilState"); + table->CreateDynamicDepthState = (PFN_vkCreateDynamicDepthState) gpa(dev, "vkCreateDynamicDepthState"); + table->DestroyDynamicDepthState = (PFN_vkDestroyDynamicDepthState) gpa(dev, "vkDestroyDynamicDepthState"); + table->CreateDynamicStencilState = (PFN_vkCreateDynamicStencilState) gpa(dev, "vkCreateDynamicStencilState"); + table->DestroyDynamicStencilState = (PFN_vkDestroyDynamicStencilState) gpa(dev, "vkDestroyDynamicStencilState"); table->CreateFramebuffer = (PFN_vkCreateFramebuffer) gpa(dev, "vkCreateFramebuffer"); table->DestroyFramebuffer = (PFN_vkDestroyFramebuffer) gpa(dev, "vkDestroyFramebuffer"); table->CreateRenderPass = (PFN_vkCreateRenderPass) gpa(dev, "vkCreateRenderPass"); @@ -138,7 +140,8 @@ static inline void loader_init_device_dispatch_table(VkLayerDispatchTable *table table->CmdBindDynamicRasterLineState = (PFN_vkCmdBindDynamicRasterLineState) gpa(dev, "vkCmdBindDynamicRasterLineState"); table->CmdBindDynamicRasterDepthBiasState = (PFN_vkCmdBindDynamicRasterDepthBiasState) gpa(dev, "vkCmdBindDynamicRasterDepthBiasState"); table->CmdBindDynamicColorBlendState = (PFN_vkCmdBindDynamicColorBlendState) gpa(dev, "vkCmdBindDynamicColorBlendState"); - table->CmdBindDynamicDepthStencilState = (PFN_vkCmdBindDynamicDepthStencilState) gpa(dev, "vkCmdBindDynamicDepthStencilState"); + table->CmdBindDynamicDepthState = (PFN_vkCmdBindDynamicDepthState) gpa(dev, "vkCmdBindDynamicDepthState"); + table->CmdBindDynamicStencilState = (PFN_vkCmdBindDynamicStencilState) gpa(dev, "vkCmdBindDynamicStencilState"); table->CmdBindDescriptorSets = (PFN_vkCmdBindDescriptorSets) gpa(dev, "vkCmdBindDescriptorSets"); table->CmdBindVertexBuffers = (PFN_vkCmdBindVertexBuffers) gpa(dev, "vkCmdBindVertexBuffers"); table->CmdBindIndexBuffer = (PFN_vkCmdBindIndexBuffer) gpa(dev, "vkCmdBindIndexBuffer"); @@ -359,10 +362,14 @@ static inline void *loader_lookup_device_dispatch_table( return (void *) table->CreateDynamicColorBlendState; if (!strcmp(name, "DestroyDynamicColorBlendState")) return (void *) table->DestroyDynamicColorBlendState; - if (!strcmp(name, "CreateDynamicDepthStencilState")) - return (void *) table->CreateDynamicDepthStencilState; - if (!strcmp(name, "DestroyDynamicDepthStencilState")) - return (void *) table->DestroyDynamicDepthStencilState; + if (!strcmp(name, "CreateDynamicDepthState")) + return (void *) table->CreateDynamicDepthState; + if (!strcmp(name, "DestroyDynamicDepthState")) + return (void *) table->DestroyDynamicDepthState; + if (!strcmp(name, "CreateDynamicStencilState")) + return (void *) table->CreateDynamicStencilState; + if (!strcmp(name, "DestroyDynamicStencilState")) + return (void *) table->DestroyDynamicStencilState; if (!strcmp(name, "CreateFramebuffer")) return (void *) table->CreateFramebuffer; if (!strcmp(name, "DestroyFramebuffer")) @@ -399,8 +406,10 @@ static inline void *loader_lookup_device_dispatch_table( return (void *) table->CmdBindDynamicRasterDepthBiasState; if (!strcmp(name, "CmdBindDynamicColorBlendState")) return (void *) table->CmdBindDynamicColorBlendState; - if (!strcmp(name, "CmdBindDynamicDepthStencilState")) - return (void *) table->CmdBindDynamicDepthStencilState; + if (!strcmp(name, "CmdBindDynamicDepthState")) + return (void *) table->CmdBindDynamicDepthState; + if (!strcmp(name, "CmdBindDynamicStencilState")) + return (void *) table->CmdBindDynamicStencilState; if (!strcmp(name, "CmdBindDescriptorSets")) return (void *) table->CmdBindDescriptorSets; if (!strcmp(name, "CmdBindVertexBuffers")) diff --git a/loader/trampoline.c b/loader/trampoline.c index 715fcf74..e5fef114 100644 --- a/loader/trampoline.c +++ b/loader/trampoline.c @@ -1070,22 +1070,40 @@ LOADER_EXPORT VkResult VKAPI vkDestroyDynamicColorBlendState(VkDevice device, Vk return disp->DestroyDynamicColorBlendState(device, dynamicColorBlendState); } -LOADER_EXPORT VkResult VKAPI vkCreateDynamicDepthStencilState(VkDevice device, const VkDynamicDepthStencilStateCreateInfo* pCreateInfo, VkDynamicDepthStencilState* pState) +LOADER_EXPORT VkResult VKAPI vkCreateDynamicDepthState(VkDevice device, const VkDynamicDepthStateCreateInfo* pCreateInfo, VkDynamicDepthState* pState) { const VkLayerDispatchTable *disp; disp = loader_get_dispatch(device); - return disp->CreateDynamicDepthStencilState(device, pCreateInfo, pState); + return disp->CreateDynamicDepthState(device, pCreateInfo, pState); } -LOADER_EXPORT VkResult VKAPI vkDestroyDynamicDepthStencilState(VkDevice device, VkDynamicDepthStencilState dynamicDepthStencilState) +LOADER_EXPORT VkResult VKAPI vkDestroyDynamicDepthState(VkDevice device, VkDynamicDepthState dynamicDepthState) { const VkLayerDispatchTable *disp; disp = loader_get_dispatch(device); - return disp->DestroyDynamicDepthStencilState(device, dynamicDepthStencilState); + return disp->DestroyDynamicDepthState(device, dynamicDepthState); +} + +LOADER_EXPORT VkResult VKAPI vkCreateDynamicStencilState(VkDevice device, const VkDynamicStencilStateCreateInfo* pCreateInfoFront, const VkDynamicStencilStateCreateInfo* pCreateInfoBack, VkDynamicStencilState* pState) +{ + const VkLayerDispatchTable *disp; + + disp = loader_get_dispatch(device); + + return disp->CreateDynamicStencilState(device, pCreateInfoFront, pCreateInfoBack, pState); +} + +LOADER_EXPORT VkResult VKAPI vkDestroyDynamicStencilState(VkDevice device, VkDynamicStencilState dynamicStencilState) +{ + const VkLayerDispatchTable *disp; + + disp = loader_get_dispatch(device); + + return disp->DestroyDynamicStencilState(device, dynamicStencilState); } LOADER_EXPORT VkResult VKAPI vkCreateFramebuffer(VkDevice device, const VkFramebufferCreateInfo* pCreateInfo, VkFramebuffer* pFramebuffer) @@ -1256,13 +1274,22 @@ LOADER_EXPORT void VKAPI vkCmdBindDynamicColorBlendState(VkCmdBuffer cmdBuffer, disp->CmdBindDynamicColorBlendState(cmdBuffer, state); } -LOADER_EXPORT void VKAPI vkCmdBindDynamicDepthStencilState(VkCmdBuffer cmdBuffer, VkDynamicDepthStencilState state) +LOADER_EXPORT void VKAPI vkCmdBindDynamicDepthState(VkCmdBuffer cmdBuffer, VkDynamicDepthState state) +{ + const VkLayerDispatchTable *disp; + + disp = loader_get_dispatch(cmdBuffer); + + disp->CmdBindDynamicDepthState(cmdBuffer, state); +} + +LOADER_EXPORT void VKAPI vkCmdBindDynamicStencilState(VkCmdBuffer cmdBuffer, VkDynamicStencilState state) { const VkLayerDispatchTable *disp; disp = loader_get_dispatch(cmdBuffer); - disp->CmdBindDynamicDepthStencilState(cmdBuffer, state); + disp->CmdBindDynamicStencilState(cmdBuffer, state); } LOADER_EXPORT void VKAPI vkCmdBindDescriptorSets(VkCmdBuffer cmdBuffer, VkPipelineBindPoint pipelineBindPoint, VkPipelineLayout layout, uint32_t firstSet, uint32_t setCount, const VkDescriptorSet* pDescriptorSets, uint32_t dynamicOffsetCount, const uint32_t* pDynamicOffsets) -- cgit v1.2.3