shader: synchronize GPU-written descriptor dependencies through buffer cache

This commit is contained in:
nmzik committed 2026-10-04 18:39:34 +04:00
1 parent dbf66b7f4f
commit 57cf086886
4 files changed
+76 -7

No files matched your search

+5 -2
View File
@@ -881,13 +881,16 @@ bool TryReadBacking(uint64_t vaddr, void* data, uint64_t size) {
g_guest_address_space->TryReadBacking(vaddr, data, size);
}
bool TryReadGpuCleanBacking(uint64_t vaddr, void* data, uint64_t size) {
bool TryReadGpuBacking(uint64_t vaddr, void* data, uint64_t size) {
if (g_gpu_resources != nullptr && IsGpuAddressRange(vaddr, size)) {
if (!Graphics::GuestGpu::IsGpuThread() ||
GetGpuResources().GetBufferCache().HasGpuDirtyBytes(vaddr, size) ||
GetGpuResources().GetTextureCache().IsRegionGpuModified(vaddr, size)) {
return false;
}
auto& buffers = GetGpuResources().GetBufferCache();
if (buffers.HasGpuDirtyBytes(vaddr, size)) {
buffers.ReadMemory(vaddr, size);
}
}
return TryReadBacking(vaddr, data, size);
}