1
0
mirror of https://github.com/doitsujin/dxvk.git synced 2025-01-20 08:52:22 +01:00

[dxvk] Properly flush everything before recording defrag commands

This commit is contained in:
Philip Rebohle 2024-10-24 18:51:26 +02:00 committed by Philip Rebohle
parent 7df58de815
commit 1a4ac219ed

View File

@ -82,6 +82,7 @@ namespace dxvk {
Rc<DxvkCommandList> DxvkContext::endRecording() { Rc<DxvkCommandList> DxvkContext::endRecording() {
this->endCurrentCommands(); this->endCurrentCommands();
this->relocateQueuedResources();
if (m_descriptorPool->shouldSubmit(false)) { if (m_descriptorPool->shouldSubmit(false)) {
m_cmd->trackDescriptorPool(m_descriptorPool, m_descriptorManager); m_cmd->trackDescriptorPool(m_descriptorPool, m_descriptorManager);
@ -102,8 +103,6 @@ namespace dxvk {
void DxvkContext::flushCommandList(DxvkSubmitStatus* status) { void DxvkContext::flushCommandList(DxvkSubmitStatus* status) {
relocateQueuedResources();
m_device->submitCommandList( m_device->submitCommandList(
this->endRecording(), status); this->endRecording(), status);
@ -6565,8 +6564,6 @@ namespace dxvk {
// If there are any resources to relocate, we have to stall the transfer // If there are any resources to relocate, we have to stall the transfer
// queue so that subsequent resource uploads do not overlap with resource // queue so that subsequent resource uploads do not overlap with resource
// copies on the graphics timeline. // copies on the graphics timeline.
this->spillRenderPass(true);
relocateResources( relocateResources(
bufferInfos.size(), bufferInfos.data(), bufferInfos.size(), bufferInfos.data(),
imageInfos.size(), imageInfos.data()); imageInfos.size(), imageInfos.data());