mirror of
https://github.com/doitsujin/dxvk.git
synced 2025-03-06 20:58:37 +01:00
[dxvk] Fix when tracking happens in resource relocation
Invalidation now resets tracking, so it is possible that after recreating an image with different usage we'd use it on the wrong command buffer for certain functions.
This commit is contained in:
parent
e61376b34c
commit
ed77239354
1 changed files with 4 additions and 4 deletions
|
@ -6397,11 +6397,11 @@ namespace dxvk {
|
|||
copy.regionCount = 1;
|
||||
copy.pRegions = ®ion;
|
||||
|
||||
invalidateBuffer(info.buffer, Rc<DxvkResourceAllocation>(info.storage));
|
||||
|
||||
m_cmd->cmdCopyBuffer(DxvkCmdBuffer::ExecBuffer, ©);
|
||||
m_cmd->track(info.buffer, DxvkAccess::Write);
|
||||
|
||||
invalidateBuffer(info.buffer, Rc<DxvkResourceAllocation>(info.storage));
|
||||
|
||||
memoryBarrier.dstStageMask |= info.buffer->info().stages;
|
||||
memoryBarrier.dstAccessMask |= info.buffer->info().access;
|
||||
}
|
||||
|
@ -6493,10 +6493,10 @@ namespace dxvk {
|
|||
copy.regionCount = imageRegions.size();
|
||||
copy.pRegions = imageRegions.data();
|
||||
|
||||
invalidateImageWithUsage(info.image, Rc<DxvkResourceAllocation>(info.storage), info.usageInfo);
|
||||
|
||||
m_cmd->cmdCopyImage(DxvkCmdBuffer::ExecBuffer, ©);
|
||||
m_cmd->track(info.image, DxvkAccess::Write);
|
||||
|
||||
invalidateImageWithUsage(info.image, Rc<DxvkResourceAllocation>(info.storage), info.usageInfo);
|
||||
}
|
||||
|
||||
if (!imageBarriers.empty()) {
|
||||
|
|
Loading…
Add table
Reference in a new issue