From 4cbf78b9e52a0e2dd3e13eccc137bb39ba8000c9 Mon Sep 17 00:00:00 2001 From: Courtney Goeltzenleuchter Date: Thu, 17 Sep 2015 15:06:17 -0600 Subject: bug 14365: replace dynamic state objects This is phase 1 of the replacement of dynamic state objects. In this commit we remove the create and destroy functions and rename the CmdBind... with CmdSet... --- loader/gpa_helper.h | 54 ++++++------------- loader/table_ops.h | 78 +++++++++------------------ loader/trampoline.c | 150 +++++++++++----------------------------------------- 3 files changed, 70 insertions(+), 212 deletions(-) (limited to 'loader') diff --git a/loader/gpa_helper.h b/loader/gpa_helper.h index 1581d817..212e93ea 100644 --- a/loader/gpa_helper.h +++ b/loader/gpa_helper.h @@ -205,30 +205,6 @@ static inline void* globalGetProcAddr(const char *name) return (void*) vkFreeDescriptorSets; if (!strcmp(name, "UpdateDescriptorSets")) return (void*) vkUpdateDescriptorSets; - if (!strcmp(name, "CreateDynamicViewportState")) - return (void*) vkCreateDynamicViewportState; - if (!strcmp(name, "DestroyDynamicViewportState")) - return (void*) vkDestroyDynamicViewportState; - if (!strcmp(name, "CreateDynamicLineWidthState")) - return (void*) vkCreateDynamicLineWidthState; - if (!strcmp(name, "DestroyDynamicLineWidthState")) - return (void*) vkDestroyDynamicLineWidthState; - if (!strcmp(name, "CreateDynamicDepthBiasState")) - return (void*) vkCreateDynamicDepthBiasState; - if (!strcmp(name, "DestroyDynamicDepthBiasState")) - return (void*) vkDestroyDynamicDepthBiasState; - if (!strcmp(name, "CreateDynamicBlendState")) - return (void*) vkCreateDynamicBlendState; - if (!strcmp(name, "DestroyDynamicBlendState")) - return (void*) vkDestroyDynamicBlendState; - if (!strcmp(name, "CreateDynamicDepthBoundsState")) - return (void*) vkCreateDynamicDepthBoundsState; - if (!strcmp(name, "DestroyDynamicDepthBoundsState")) - return (void*) vkDestroyDynamicDepthBoundsState; - 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")) @@ -257,20 +233,22 @@ static inline void* globalGetProcAddr(const char *name) return (void*) vkResetCommandBuffer; if (!strcmp(name, "CmdBindPipeline")) return (void*) vkCmdBindPipeline; - if (!strcmp(name, "CmdBindDynamicViewportState")) - return (void*) vkCmdBindDynamicViewportState; - if (!strcmp(name, "CmdBindDynamicLineWidthState")) - return (void*) vkCmdBindDynamicLineWidthState; - if (!strcmp(name, "CmdBindDynamicDepthBiasState")) - return (void*) vkCmdBindDynamicDepthBiasState; - if (!strcmp(name, "CmdBindDynamicBlendState")) - return (void*) vkCmdBindDynamicBlendState; - if (!strcmp(name, "CmdBindDynamicDepthBoundsState")) - return (void*) vkCmdBindDynamicDepthBoundsState; - if (!strcmp(name, "CmdBindDynamicStencilState")) - return (void*) vkCmdBindDynamicStencilState; - if (!strcmp(name, "CmdBindDescriptorSets")) - return (void*) vkCmdBindDescriptorSets; + if (!strcmp(name, "CmdSetViewport")) + return (void*) vkCmdSetViewport; + 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")) diff --git a/loader/table_ops.h b/loader/table_ops.h index c27cd4ae..7024532f 100644 --- a/loader/table_ops.h +++ b/loader/table_ops.h @@ -108,18 +108,6 @@ static inline void loader_init_device_dispatch_table(VkLayerDispatchTable *table table->AllocDescriptorSets = (PFN_vkAllocDescriptorSets) gpa(dev, "vkAllocDescriptorSets"); table->FreeDescriptorSets = (PFN_vkFreeDescriptorSets) gpa(dev, "vkFreeDescriptorSets"); table->UpdateDescriptorSets = (PFN_vkUpdateDescriptorSets) gpa(dev, "vkUpdateDescriptorSets"); - table->CreateDynamicViewportState = (PFN_vkCreateDynamicViewportState) gpa(dev, "vkCreateDynamicViewportState"); - table->DestroyDynamicViewportState = (PFN_vkDestroyDynamicViewportState) gpa(dev, "vkDestroyDynamicViewportState"); - table->CreateDynamicLineWidthState = (PFN_vkCreateDynamicLineWidthState) gpa(dev, "vkCreateDynamicLineWidthState"); - table->DestroyDynamicLineWidthState = (PFN_vkDestroyDynamicLineWidthState) gpa(dev, "vkDestroyDynamicLineWidthState"); - table->CreateDynamicDepthBiasState = (PFN_vkCreateDynamicDepthBiasState) gpa(dev, "vkCreateDynamicDepthBiasState"); - table->DestroyDynamicDepthBiasState = (PFN_vkDestroyDynamicDepthBiasState) gpa(dev, "vkDestroyDynamicDepthBiasState"); - table->CreateDynamicBlendState = (PFN_vkCreateDynamicBlendState) gpa(dev, "vkCreateDynamicBlendState"); - table->DestroyDynamicBlendState = (PFN_vkDestroyDynamicBlendState) gpa(dev, "vkDestroyDynamicBlendState"); - table->CreateDynamicDepthBoundsState = (PFN_vkCreateDynamicDepthBoundsState) gpa(dev, "vkCreateDynamicDepthBoundsState"); - table->DestroyDynamicDepthBoundsState = (PFN_vkDestroyDynamicDepthBoundsState) gpa(dev, "vkDestroyDynamicDepthBoundsState"); - 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"); @@ -134,12 +122,14 @@ static inline void loader_init_device_dispatch_table(VkLayerDispatchTable *table table->EndCommandBuffer = (PFN_vkEndCommandBuffer) gpa(dev, "vkEndCommandBuffer"); table->ResetCommandBuffer = (PFN_vkResetCommandBuffer) gpa(dev, "vkResetCommandBuffer"); table->CmdBindPipeline = (PFN_vkCmdBindPipeline) gpa(dev, "vkCmdBindPipeline"); - table->CmdBindDynamicViewportState = (PFN_vkCmdBindDynamicViewportState) gpa(dev, "vkCmdBindDynamicViewportState"); - table->CmdBindDynamicLineWidthState = (PFN_vkCmdBindDynamicLineWidthState) gpa(dev, "vkCmdBindDynamicLineWidthState"); - table->CmdBindDynamicDepthBiasState = (PFN_vkCmdBindDynamicDepthBiasState) gpa(dev, "vkCmdBindDynamicDepthBiasState"); - table->CmdBindDynamicBlendState = (PFN_vkCmdBindDynamicBlendState) gpa(dev, "vkCmdBindDynamicBlendState"); - table->CmdBindDynamicDepthBoundsState = (PFN_vkCmdBindDynamicDepthBoundsState) gpa(dev, "vkCmdBindDynamicDepthBoundsState"); - table->CmdBindDynamicStencilState = (PFN_vkCmdBindDynamicStencilState) gpa(dev, "vkCmdBindDynamicStencilState"); + table->CmdSetViewport = (PFN_vkCmdSetViewport) gpa(dev, "vkCmdSetViewport"); + table->CmdSetLineWidth = (PFN_vkCmdSetLineWidth) gpa(dev, "vkCmdSetLineWidth"); + table->CmdSetDepthBias = (PFN_vkCmdSetDepthBias) gpa(dev, "vkCmdSetDepthBias"); + table->CmdSetBlendConstants = (PFN_vkCmdSetBlendConstants) gpa(dev, "vkCmdSetBlendConstants"); + table->CmdSetDepthBounds = (PFN_vkCmdSetDepthBounds) gpa(dev, "vkCmdSetDepthBounds"); + table->CmdSetStencilCompareMask = (PFN_vkCmdSetStencilCompareMask) gpa(dev, "vkCmdSetStencilCompareMask"); + table->CmdSetStencilWriteMask = (PFN_vkCmdSetStencilWriteMask) gpa(dev, "vkCmdSetStencilWriteMask"); + table->CmdSetStencilReference = (PFN_vkCmdSetStencilReference) gpa(dev, "vkCmdSetStencilReference"); table->CmdBindDescriptorSets = (PFN_vkCmdBindDescriptorSets) gpa(dev, "vkCmdBindDescriptorSets"); table->CmdBindVertexBuffers = (PFN_vkCmdBindVertexBuffers) gpa(dev, "vkCmdBindVertexBuffers"); table->CmdBindIndexBuffer = (PFN_vkCmdBindIndexBuffer) gpa(dev, "vkCmdBindIndexBuffer"); @@ -340,30 +330,6 @@ static inline void *loader_lookup_device_dispatch_table( return (void *) table->FreeDescriptorSets; if (!strcmp(name, "UpdateDescriptorSets")) return (void *) table->UpdateDescriptorSets; - if (!strcmp(name, "CreateDynamicViewportState")) - return (void *) table->CreateDynamicViewportState; - if (!strcmp(name, "DestroyDynamicViewportState")) - return (void *) table->DestroyDynamicViewportState; - if (!strcmp(name, "CreateDynamicLineWidthState")) - return (void *) table->CreateDynamicLineWidthState; - if (!strcmp(name, "DestroyDynamicLineWidthState")) - return (void *) table->DestroyDynamicLineWidthState; - if (!strcmp(name, "CreateDynamicDepthBiasState")) - return (void *) table->CreateDynamicDepthBiasState; - if (!strcmp(name, "DestroyDynamicDepthBiasState")) - return (void *) table->DestroyDynamicDepthBiasState; - if (!strcmp(name, "CreateDynamicBlendState")) - return (void *) table->CreateDynamicBlendState; - if (!strcmp(name, "DestroyDynamicBlendState")) - return (void *) table->DestroyDynamicBlendState; - if (!strcmp(name, "CreateDynamicDepthBoundsState")) - return (void *) table->CreateDynamicDepthBoundsState; - if (!strcmp(name, "DestroyDynamicDepthBoundsState")) - return (void *) table->DestroyDynamicDepthBoundsState; - 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")) @@ -392,18 +358,22 @@ static inline void *loader_lookup_device_dispatch_table( return (void *) table->ResetCommandBuffer; if (!strcmp(name, "CmdBindPipeline")) return (void *) table->CmdBindPipeline; - if (!strcmp(name, "CmdBindDynamicViewportState")) - return (void *) table->CmdBindDynamicViewportState; - if (!strcmp(name, "CmdBindDynamicLineWidthState")) - return (void *) table->CmdBindDynamicLineWidthState; - if (!strcmp(name, "CmdBindDynamicDepthBiasState")) - return (void *) table->CmdBindDynamicDepthBiasState; - if (!strcmp(name, "CmdBindDynamicBlendState")) - return (void *) table->CmdBindDynamicBlendState; - if (!strcmp(name, "CmdBindDynamicDepthBoundsState")) - return (void *) table->CmdBindDynamicDepthBoundsState; - if (!strcmp(name, "CmdBindDynamicStencilState")) - return (void *) table->CmdBindDynamicStencilState; + if (!strcmp(name, "CmdSetViewport")) + return (void *) table->CmdSetViewport; + if (!strcmp(name, "CmdSetLineWidth")) + return (void *) table->CmdSetLineWidth; + if (!strcmp(name, "CmdSetDepthBias")) + return (void *) table->CmdSetDepthBias; + if (!strcmp(name, "CmdSetBlendConstants")) + return (void *) table->CmdSetBlendConstants; + if (!strcmp(name, "CmdSetDepthBounds")) + return (void *) table->CmdSetDepthBounds; + if (!strcmp(name, "CmdSetStencilCompareMask")) + return (void *) table->CmdSetStencilCompareMask; + if (!strcmp(name, "CmdSetStencilwriteMask")) + return (void *) table->CmdSetStencilWriteMask; + if (!strcmp(name, "CmdSetStencilReference")) + return (void *) table->CmdSetStencilReference; if (!strcmp(name, "CmdBindDescriptorSets")) return (void *) table->CmdBindDescriptorSets; if (!strcmp(name, "CmdBindVertexBuffers")) diff --git a/loader/trampoline.c b/loader/trampoline.c index ee0a4695..bd6f43b8 100644 --- a/loader/trampoline.c +++ b/loader/trampoline.c @@ -980,114 +980,6 @@ LOADER_EXPORT void VKAPI vkUpdateDescriptorSets(VkDevice device, uint32_t writeC disp->UpdateDescriptorSets(device, writeCount, pDescriptorWrites, copyCount, pDescriptorCopies); } -LOADER_EXPORT VkResult VKAPI vkCreateDynamicViewportState(VkDevice device, const VkDynamicViewportStateCreateInfo* pCreateInfo, VkDynamicViewportState* pState) -{ - const VkLayerDispatchTable *disp; - - disp = loader_get_dispatch(device); - - return disp->CreateDynamicViewportState(device, pCreateInfo, pState); -} - -LOADER_EXPORT void VKAPI vkDestroyDynamicViewportState(VkDevice device, VkDynamicViewportState dynamicViewportState) -{ - const VkLayerDispatchTable *disp; - - disp = loader_get_dispatch(device); - - disp->DestroyDynamicViewportState(device, dynamicViewportState); -} - -LOADER_EXPORT VkResult VKAPI vkCreateDynamicLineWidthState(VkDevice device, const VkDynamicLineWidthStateCreateInfo* pCreateInfo, VkDynamicLineWidthState* pState) -{ - const VkLayerDispatchTable *disp; - - disp = loader_get_dispatch(device); - - return disp->CreateDynamicLineWidthState(device, pCreateInfo, pState); -} - -LOADER_EXPORT void VKAPI vkDestroyDynamicLineWidthState(VkDevice device, VkDynamicLineWidthState dynamicLineWidthState) -{ - const VkLayerDispatchTable *disp; - - disp = loader_get_dispatch(device); - - disp->DestroyDynamicLineWidthState(device, dynamicLineWidthState); -} - -LOADER_EXPORT VkResult VKAPI vkCreateDynamicDepthBiasState(VkDevice device, const VkDynamicDepthBiasStateCreateInfo* pCreateInfo, VkDynamicDepthBiasState* pState) -{ - const VkLayerDispatchTable *disp; - - disp = loader_get_dispatch(device); - - return disp->CreateDynamicDepthBiasState(device, pCreateInfo, pState); -} - -LOADER_EXPORT void VKAPI vkDestroyDynamicDepthBiasState(VkDevice device, VkDynamicDepthBiasState dynamicDepthBiasState) -{ - const VkLayerDispatchTable *disp; - - disp = loader_get_dispatch(device); - - disp->DestroyDynamicDepthBiasState(device, dynamicDepthBiasState); -} - -LOADER_EXPORT VkResult VKAPI vkCreateDynamicBlendState(VkDevice device, const VkDynamicBlendStateCreateInfo* pCreateInfo, VkDynamicBlendState* pState) -{ - const VkLayerDispatchTable *disp; - - disp = loader_get_dispatch(device); - - return disp->CreateDynamicBlendState(device, pCreateInfo, pState); -} - -LOADER_EXPORT void VKAPI vkDestroyDynamicBlendState(VkDevice device, VkDynamicBlendState dynamicBlendState) -{ - const VkLayerDispatchTable *disp; - - disp = loader_get_dispatch(device); - - disp->DestroyDynamicBlendState(device, dynamicBlendState); -} - -LOADER_EXPORT VkResult VKAPI vkCreateDynamicDepthBoundsState(VkDevice device, const VkDynamicDepthBoundsStateCreateInfo* pCreateInfo, VkDynamicDepthBoundsState* pState) -{ - const VkLayerDispatchTable *disp; - - disp = loader_get_dispatch(device); - - return disp->CreateDynamicDepthBoundsState(device, pCreateInfo, pState); -} - -LOADER_EXPORT void VKAPI vkDestroyDynamicDepthBoundsState(VkDevice device, VkDynamicDepthBoundsState dynamicDepthBoundsState) -{ - const VkLayerDispatchTable *disp; - - disp = loader_get_dispatch(device); - - disp->DestroyDynamicDepthBoundsState(device, dynamicDepthBoundsState); -} - -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 void VKAPI vkDestroyDynamicStencilState(VkDevice device, VkDynamicStencilState dynamicStencilState) -{ - const VkLayerDispatchTable *disp; - - disp = loader_get_dispatch(device); - - disp->DestroyDynamicStencilState(device, dynamicStencilState); -} - LOADER_EXPORT VkResult VKAPI vkCreateFramebuffer(VkDevice device, const VkFramebufferCreateInfo* pCreateInfo, VkFramebuffer* pFramebuffer) { const VkLayerDispatchTable *disp; @@ -1220,58 +1112,76 @@ LOADER_EXPORT void VKAPI vkCmdBindPipeline(VkCmdBuffer cmdBuffer, VkPipelineBind disp->CmdBindPipeline(cmdBuffer, pipelineBindPoint, pipeline); } -LOADER_EXPORT void VKAPI vkCmdBindDynamicViewportState(VkCmdBuffer cmdBuffer, VkDynamicViewportState state) +LOADER_EXPORT void VKAPI vkCmdSetViewport(VkCmdBuffer cmdBuffer, uint32_t viewportAndScissorCount, const VkViewport* pViewports, const VkRect2D* pScissors) +{ + const VkLayerDispatchTable *disp; + + disp = loader_get_dispatch(cmdBuffer); + + disp->CmdSetViewport(cmdBuffer, viewportAndScissorCount, pViewports, pScissors); +} + +LOADER_EXPORT void VKAPI vkCmdSetLineWidth(VkCmdBuffer cmdBuffer, float lineWidth) +{ + const VkLayerDispatchTable *disp; + + disp = loader_get_dispatch(cmdBuffer); + + disp->CmdSetLineWidth(cmdBuffer, lineWidth); +} + +LOADER_EXPORT void VKAPI vkCmdSetDepthBias(VkCmdBuffer cmdBuffer, float depthBias, float depthBiasClamp, float slopeScaledDepthBias) { const VkLayerDispatchTable *disp; disp = loader_get_dispatch(cmdBuffer); - disp->CmdBindDynamicViewportState(cmdBuffer, state); + disp->CmdSetDepthBias(cmdBuffer, depthBias, depthBiasClamp, slopeScaledDepthBias); } -LOADER_EXPORT void VKAPI vkCmdBindDynamicLineWidthState(VkCmdBuffer cmdBuffer, VkDynamicLineWidthState state) +LOADER_EXPORT void VKAPI vkCmdSetBlendConstants(VkCmdBuffer cmdBuffer, const float blendConst[4]) { const VkLayerDispatchTable *disp; disp = loader_get_dispatch(cmdBuffer); - disp->CmdBindDynamicLineWidthState(cmdBuffer, state); + disp->CmdSetBlendConstants(cmdBuffer, blendConst); } -LOADER_EXPORT void VKAPI vkCmdBindDynamicDepthBiasState(VkCmdBuffer cmdBuffer, VkDynamicDepthBiasState state) +LOADER_EXPORT void VKAPI vkCmdSetDepthBounds(VkCmdBuffer cmdBuffer, float minDepthBounds, float maxDepthBounds) { const VkLayerDispatchTable *disp; disp = loader_get_dispatch(cmdBuffer); - disp->CmdBindDynamicDepthBiasState(cmdBuffer, state); + disp->CmdSetDepthBounds(cmdBuffer, minDepthBounds, maxDepthBounds); } -LOADER_EXPORT void VKAPI vkCmdBindDynamicBlendState(VkCmdBuffer cmdBuffer, VkDynamicBlendState state) +LOADER_EXPORT void VKAPI vkCmdSetStencilCompareMask(VkCmdBuffer cmdBuffer, VkStencilFaceFlags faceMask, uint32_t stencilCompareMask) { const VkLayerDispatchTable *disp; disp = loader_get_dispatch(cmdBuffer); - disp->CmdBindDynamicBlendState(cmdBuffer, state); + disp->CmdSetStencilCompareMask(cmdBuffer, faceMask, stencilCompareMask); } -LOADER_EXPORT void VKAPI vkCmdBindDynamicDepthBoundsState(VkCmdBuffer cmdBuffer, VkDynamicDepthBoundsState state) +LOADER_EXPORT void VKAPI vkCmdSetStencilWriteMask(VkCmdBuffer cmdBuffer, VkStencilFaceFlags faceMask, uint32_t stencilWriteMask) { const VkLayerDispatchTable *disp; disp = loader_get_dispatch(cmdBuffer); - disp->CmdBindDynamicDepthBoundsState(cmdBuffer, state); + disp->CmdSetStencilWriteMask(cmdBuffer, faceMask, stencilWriteMask); } -LOADER_EXPORT void VKAPI vkCmdBindDynamicStencilState(VkCmdBuffer cmdBuffer, VkDynamicStencilState state) +LOADER_EXPORT void VKAPI vkCmdSetStencilReference(VkCmdBuffer cmdBuffer, VkStencilFaceFlags faceMask, uint32_t stencilReference) { const VkLayerDispatchTable *disp; disp = loader_get_dispatch(cmdBuffer); - disp->CmdBindDynamicStencilState(cmdBuffer, state); + disp->CmdSetStencilReference(cmdBuffer, faceMask, stencilReference); } 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