diff --git a/src/dxvk/dxvk_cmdlist.h b/src/dxvk/dxvk_cmdlist.h index 30cc720fd..4a3b5b625 100644 --- a/src/dxvk/dxvk_cmdlist.h +++ b/src/dxvk/dxvk_cmdlist.h @@ -756,7 +756,7 @@ namespace dxvk { } void trackDescriptorPool( - const Rc& pool, + const Rc& pool, const Rc& manager) { m_descriptorPools.push_back({ pool, manager }); } @@ -787,7 +787,7 @@ namespace dxvk { DxvkStatCounters m_statCounters; std::vector, + Rc, Rc>> m_descriptorPools; VkCommandBuffer getCmdBuffer(DxvkCmdBuffer cmdBuffer) const { diff --git a/src/dxvk/dxvk_context.h b/src/dxvk/dxvk_context.h index d93a2db85..2ce14e72b 100644 --- a/src/dxvk/dxvk_context.h +++ b/src/dxvk/dxvk_context.h @@ -1057,7 +1057,7 @@ namespace dxvk { DxvkContextFeatures m_features; DxvkDescriptorState m_descriptorState; - Rc m_descriptorPool; + Rc m_descriptorPool; Rc m_descriptorManager; DxvkBarrierSet m_sdmaAcquires; diff --git a/src/dxvk/dxvk_descriptor.cpp b/src/dxvk/dxvk_descriptor.cpp index d8658db1f..bfaf0b8e9 100644 --- a/src/dxvk/dxvk_descriptor.cpp +++ b/src/dxvk/dxvk_descriptor.cpp @@ -3,17 +3,17 @@ namespace dxvk { - DxvkPersistentDescriptorSetList::DxvkPersistentDescriptorSetList() { + DxvkDescriptorSetList::DxvkDescriptorSetList() { } - DxvkPersistentDescriptorSetList::~DxvkPersistentDescriptorSetList() { + DxvkDescriptorSetList::~DxvkDescriptorSetList() { } - VkDescriptorSet DxvkPersistentDescriptorSetList::alloc() { + VkDescriptorSet DxvkDescriptorSetList::alloc() { if (unlikely(m_next == m_sets.size())) return VK_NULL_HANDLE; @@ -21,19 +21,19 @@ namespace dxvk { } - void DxvkPersistentDescriptorSetList::addSet(VkDescriptorSet set) { + void DxvkDescriptorSetList::addSet(VkDescriptorSet set) { m_sets.push_back(set); m_next = m_sets.size(); } - void DxvkPersistentDescriptorSetList::reset() { + void DxvkDescriptorSetList::reset() { m_next = 0; } - DxvkPersistentDescriptorPool::DxvkPersistentDescriptorPool( + DxvkDescriptorPool::DxvkDescriptorPool( DxvkDevice* device, DxvkContextType contextType) : m_device(device), m_contextType(contextType), @@ -42,7 +42,7 @@ namespace dxvk { } - DxvkPersistentDescriptorPool::~DxvkPersistentDescriptorPool() { + DxvkDescriptorPool::~DxvkDescriptorPool() { auto vk = m_device->vkd(); for (auto pool : m_descriptorPools) @@ -50,7 +50,7 @@ namespace dxvk { } - void DxvkPersistentDescriptorPool::alloc( + void DxvkDescriptorPool::alloc( const DxvkBindingLayoutObjects* layout, uint32_t setMask, VkDescriptorSet* sets) { @@ -69,14 +69,14 @@ namespace dxvk { } - VkDescriptorSet DxvkPersistentDescriptorPool::alloc( + VkDescriptorSet DxvkDescriptorPool::alloc( VkDescriptorSetLayout layout) { auto setList = getSetList(layout); return allocSet(setList, layout); } - void DxvkPersistentDescriptorPool::reset() { + void DxvkDescriptorPool::reset() { // As a heuristic to save memory, check how many descriptors // have actively been used in the past couple of submissions. bool isLowUsageFrame = false; @@ -118,7 +118,7 @@ namespace dxvk { } - DxvkPersistentDescriptorSetMap* DxvkPersistentDescriptorPool::getSetMapCached( + DxvkDescriptorSetMap* DxvkDescriptorPool::getSetMapCached( const DxvkBindingLayoutObjects* layout) { if (likely(m_cachedEntry.first == layout)) return m_cachedEntry.second; @@ -129,7 +129,7 @@ namespace dxvk { } - DxvkPersistentDescriptorSetMap* DxvkPersistentDescriptorPool::getSetMap( + DxvkDescriptorSetMap* DxvkDescriptorPool::getSetMap( const DxvkBindingLayoutObjects* layout) { auto pair = m_setMaps.find(layout->getPipelineLayout()); if (likely(pair != m_setMaps.end())) { @@ -151,7 +151,7 @@ namespace dxvk { } - DxvkPersistentDescriptorSetList* DxvkPersistentDescriptorPool::getSetList( + DxvkDescriptorSetList* DxvkDescriptorPool::getSetList( VkDescriptorSetLayout layout) { auto pair = m_setLists.find(layout); if (pair != m_setLists.end()) @@ -165,8 +165,8 @@ namespace dxvk { } - VkDescriptorSet DxvkPersistentDescriptorPool::allocSet( - DxvkPersistentDescriptorSetList* list, + VkDescriptorSet DxvkDescriptorPool::allocSet( + DxvkDescriptorSetList* list, VkDescriptorSetLayout layout) { VkDescriptorSet set = list->alloc(); @@ -185,7 +185,7 @@ namespace dxvk { } - VkDescriptorSet DxvkPersistentDescriptorPool::allocSetFromPool( + VkDescriptorSet DxvkDescriptorPool::allocSetFromPool( VkDescriptorPool pool, VkDescriptorSetLayout layout) { auto vk = m_device->vkd(); @@ -204,7 +204,7 @@ namespace dxvk { } - VkDescriptorPool DxvkPersistentDescriptorPool::addPool() { + VkDescriptorPool DxvkDescriptorPool::addPool() { auto vk = m_device->vkd(); uint32_t maxSets = m_contextType == DxvkContextType::Primary @@ -251,18 +251,18 @@ namespace dxvk { } - Rc DxvkDescriptorManager::getDescriptorPool() { - Rc pool = m_pools.retrieveObject(); + Rc DxvkDescriptorManager::getDescriptorPool() { + Rc pool = m_pools.retrieveObject(); if (pool == nullptr) - pool = new DxvkPersistentDescriptorPool(m_device, m_contextType); + pool = new DxvkDescriptorPool(m_device, m_contextType); return pool; } void DxvkDescriptorManager::recycleDescriptorPool( - const Rc& pool) { + const Rc& pool) { pool->reset(); m_pools.returnObject(pool); diff --git a/src/dxvk/dxvk_descriptor.h b/src/dxvk/dxvk_descriptor.h index 9609ccc22..346eb3795 100644 --- a/src/dxvk/dxvk_descriptor.h +++ b/src/dxvk/dxvk_descriptor.h @@ -36,12 +36,12 @@ namespace dxvk { /** * \brief Descriptor set list */ - class DxvkPersistentDescriptorSetList { + class DxvkDescriptorSetList { public: - DxvkPersistentDescriptorSetList(); - ~DxvkPersistentDescriptorSetList(); + DxvkDescriptorSetList(); + ~DxvkDescriptorSetList(); VkDescriptorSet alloc(); @@ -63,8 +63,8 @@ namespace dxvk { * Points to a list of set maps for each * defined set in a pipeline layout. */ - struct DxvkPersistentDescriptorSetMap { - std::array sets; + struct DxvkDescriptorSetMap { + std::array sets; }; @@ -77,15 +77,15 @@ namespace dxvk { * but allocated sets will have unspecified contents and need * to be updated. */ - class DxvkPersistentDescriptorPool : public RcObject { + class DxvkDescriptorPool : public RcObject { public: - DxvkPersistentDescriptorPool( + DxvkDescriptorPool( DxvkDevice* device, DxvkContextType contextType); - ~DxvkPersistentDescriptorPool(); + ~DxvkDescriptorPool(); /** * \brief Allocates one or multiple descriptor sets @@ -118,26 +118,26 @@ namespace dxvk { DxvkDevice* m_device; DxvkContextType m_contextType; - std::vector m_descriptorPools; - std::unordered_map m_setLists; - std::unordered_map m_setMaps; - std::pair m_cachedEntry; + std::vector m_descriptorPools; + std::unordered_map m_setLists; + std::unordered_map m_setMaps; + std::pair m_cachedEntry; uint32_t m_setsAllocated = 0; uint32_t m_setsUsed = 0; uint32_t m_lowUsageFrames = 0; - DxvkPersistentDescriptorSetMap* getSetMapCached( + DxvkDescriptorSetMap* getSetMapCached( const DxvkBindingLayoutObjects* layout); - DxvkPersistentDescriptorSetMap* getSetMap( + DxvkDescriptorSetMap* getSetMap( const DxvkBindingLayoutObjects* layout); - DxvkPersistentDescriptorSetList* getSetList( + DxvkDescriptorSetList* getSetList( VkDescriptorSetLayout layout); VkDescriptorSet allocSet( - DxvkPersistentDescriptorSetList* list, + DxvkDescriptorSetList* list, VkDescriptorSetLayout layout); VkDescriptorSet allocSetFromPool( @@ -165,7 +165,7 @@ namespace dxvk { * \brief Retrieves or creates a descriptor type * \returns The descriptor pool */ - Rc getDescriptorPool(); + Rc getDescriptorPool(); /** * \brief Recycles descriptor pool @@ -174,13 +174,13 @@ namespace dxvk { * descriptor pool for future use. */ void recycleDescriptorPool( - const Rc& pool); + const Rc& pool); private: DxvkDevice* m_device; DxvkContextType m_contextType; - DxvkRecycler m_pools; + DxvkRecycler m_pools; };