mirror of
https://github.com/doitsujin/dxvk.git
synced 2025-01-31 14:52:11 +01:00
[dxvk] Add descriptor pool tracking to command list
This commit is contained in:
parent
9b0b1edf74
commit
f4e9b76515
@ -186,6 +186,11 @@ namespace dxvk {
|
|||||||
// Less important stuff
|
// Less important stuff
|
||||||
m_signalTracker.reset();
|
m_signalTracker.reset();
|
||||||
m_statCounters.reset();
|
m_statCounters.reset();
|
||||||
|
|
||||||
|
for (const auto& descriptorPools : m_descriptorPools)
|
||||||
|
descriptorPools.second->recycleDescriptorPool(descriptorPools.first);
|
||||||
|
|
||||||
|
m_descriptorPools.clear();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@ -200,7 +200,7 @@ namespace dxvk {
|
|||||||
m_resources.notify();
|
m_resources.notify();
|
||||||
m_signalTracker.notify();
|
m_signalTracker.notify();
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* \brief Resets the command list
|
* \brief Resets the command list
|
||||||
*
|
*
|
||||||
@ -763,6 +763,12 @@ namespace dxvk {
|
|||||||
m_vkd->device(), queryPool, queryId, 1);
|
m_vkd->device(), queryPool, queryId, 1);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void trackDescriptorPool(
|
||||||
|
const Rc<DxvkPersistentDescriptorPool>& pool,
|
||||||
|
const Rc<DxvkDescriptorManager>& manager) {
|
||||||
|
m_descriptorPools.push_back({ pool, manager });
|
||||||
|
}
|
||||||
|
|
||||||
private:
|
private:
|
||||||
|
|
||||||
DxvkDevice* m_device;
|
DxvkDevice* m_device;
|
||||||
@ -789,6 +795,10 @@ namespace dxvk {
|
|||||||
DxvkBufferTracker m_bufferTracker;
|
DxvkBufferTracker m_bufferTracker;
|
||||||
DxvkStatCounters m_statCounters;
|
DxvkStatCounters m_statCounters;
|
||||||
|
|
||||||
|
std::vector<std::pair<
|
||||||
|
Rc<DxvkPersistentDescriptorPool>,
|
||||||
|
Rc<DxvkDescriptorManager>>> m_descriptorPools;
|
||||||
|
|
||||||
VkCommandBuffer getCmdBuffer(DxvkCmdBuffer cmdBuffer) const {
|
VkCommandBuffer getCmdBuffer(DxvkCmdBuffer cmdBuffer) const {
|
||||||
if (cmdBuffer == DxvkCmdBuffer::ExecBuffer) return m_execBuffer;
|
if (cmdBuffer == DxvkCmdBuffer::ExecBuffer) return m_execBuffer;
|
||||||
if (cmdBuffer == DxvkCmdBuffer::InitBuffer) return m_initBuffer;
|
if (cmdBuffer == DxvkCmdBuffer::InitBuffer) return m_initBuffer;
|
||||||
|
Loading…
x
Reference in New Issue
Block a user