mirror of
https://github.com/EduApps-CDG/OpenDX
synced 2024-12-30 09:45:37 +01:00
[d3d9] Fix synchronization after readback
This commit is contained in:
parent
a37cd46491
commit
a81c653b42
@ -4228,6 +4228,7 @@ namespace dxvk {
|
|||||||
cPackedFormat);
|
cPackedFormat);
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
TrackTextureMappingBufferSequenceNumber(pResource, Subresource);
|
||||||
} else if (!(Flags & D3DLOCK_DONOTWAIT) && !WaitForResource(mappedBuffer, pResource->GetMappingBufferSequenceNumber(Subresource), D3DLOCK_DONOTWAIT)) {
|
} else if (!(Flags & D3DLOCK_DONOTWAIT) && !WaitForResource(mappedBuffer, pResource->GetMappingBufferSequenceNumber(Subresource), D3DLOCK_DONOTWAIT)) {
|
||||||
pResource->EnableStagingBufferUploads(Subresource);
|
pResource->EnableStagingBufferUploads(Subresource);
|
||||||
}
|
}
|
||||||
@ -4589,7 +4590,10 @@ namespace dxvk {
|
|||||||
const bool directMapping = pResource->GetMapMode() == D3D9_COMMON_BUFFER_MAP_MODE_DIRECT;
|
const bool directMapping = pResource->GetMapMode() == D3D9_COMMON_BUFFER_MAP_MODE_DIRECT;
|
||||||
const bool skipWait = (!needsReadback && (usesStagingBuffer || readOnly || (noOverlap && !directMapping))) || noOverwrite;
|
const bool skipWait = (!needsReadback && (usesStagingBuffer || readOnly || (noOverlap && !directMapping))) || noOverwrite;
|
||||||
if (!skipWait) {
|
if (!skipWait) {
|
||||||
if (!(Flags & D3DLOCK_DONOTWAIT) && !WaitForResource(mappingBuffer, pResource->GetMappingBufferSequenceNumber(), D3DLOCK_DONOTWAIT))
|
if (unlikely(needsReadback)) {
|
||||||
|
Logger::warn("Buffer readback is unimplemented.");
|
||||||
|
// Remember to update the sequence number when implementing buffer readback.
|
||||||
|
} else if (!(Flags & D3DLOCK_DONOTWAIT) && !WaitForResource(mappingBuffer, pResource->GetMappingBufferSequenceNumber(), D3DLOCK_DONOTWAIT))
|
||||||
pResource->EnableStagingBufferUploads();
|
pResource->EnableStagingBufferUploads();
|
||||||
|
|
||||||
if (!WaitForResource(mappingBuffer, pResource->GetMappingBufferSequenceNumber(), Flags))
|
if (!WaitForResource(mappingBuffer, pResource->GetMappingBufferSequenceNumber(), Flags))
|
||||||
|
Loading…
x
Reference in New Issue
Block a user