diff --git a/src/dxvk/dxvk_compute.cpp b/src/dxvk/dxvk_compute.cpp index ca88c3e3..2efae089 100644 --- a/src/dxvk/dxvk_compute.cpp +++ b/src/dxvk/dxvk_compute.cpp @@ -31,9 +31,7 @@ namespace dxvk { m_pipeMgr->m_device->options().maxNumDynamicStorageBuffers); m_layout = new DxvkPipelineLayout(m_vkd, - m_slotMapping.bindingCount(), - m_slotMapping.bindingInfos(), - VK_PIPELINE_BIND_POINT_COMPUTE); + m_slotMapping, VK_PIPELINE_BIND_POINT_COMPUTE); } diff --git a/src/dxvk/dxvk_graphics.cpp b/src/dxvk/dxvk_graphics.cpp index 1bb4e46b..23784a65 100644 --- a/src/dxvk/dxvk_graphics.cpp +++ b/src/dxvk/dxvk_graphics.cpp @@ -57,9 +57,7 @@ namespace dxvk { pipeMgr->m_device->options().maxNumDynamicStorageBuffers); m_layout = new DxvkPipelineLayout(m_vkd, - m_slotMapping.bindingCount(), - m_slotMapping.bindingInfos(), - VK_PIPELINE_BIND_POINT_GRAPHICS); + m_slotMapping, VK_PIPELINE_BIND_POINT_GRAPHICS); m_vsIn = vs != nullptr ? vs->interfaceSlots().inputSlots : 0; m_fsOut = fs != nullptr ? fs->interfaceSlots().outputSlots : 0; diff --git a/src/dxvk/dxvk_pipelayout.cpp b/src/dxvk/dxvk_pipelayout.cpp index 1fbd0d34..35310474 100644 --- a/src/dxvk/dxvk_pipelayout.cpp +++ b/src/dxvk/dxvk_pipelayout.cpp @@ -79,10 +79,12 @@ namespace dxvk { DxvkPipelineLayout::DxvkPipelineLayout( const Rc& vkd, - uint32_t bindingCount, - const DxvkDescriptorSlot* bindingInfos, + const DxvkDescriptorSlotMapping& slotMapping, VkPipelineBindPoint pipelineBindPoint) - : m_vkd(vkd), m_bindingSlots(bindingCount) { + : m_vkd(vkd), m_bindingSlots(slotMapping.bindingCount()) { + + auto bindingCount = slotMapping.bindingCount(); + auto bindingInfos = slotMapping.bindingInfos(); for (uint32_t i = 0; i < bindingCount; i++) m_bindingSlots[i] = bindingInfos[i]; diff --git a/src/dxvk/dxvk_pipelayout.h b/src/dxvk/dxvk_pipelayout.h index 4c597886..17001ee0 100644 --- a/src/dxvk/dxvk_pipelayout.h +++ b/src/dxvk/dxvk_pipelayout.h @@ -135,8 +135,7 @@ namespace dxvk { DxvkPipelineLayout( const Rc& vkd, - uint32_t bindingCount, - const DxvkDescriptorSlot* bindingInfos, + const DxvkDescriptorSlotMapping& slotMapping, VkPipelineBindPoint pipelineBindPoint); ~DxvkPipelineLayout();