mirror of
https://git.eden-emu.dev/eden-emu/eden
synced 2026-04-25 18:18:59 +02:00
[vulkan] Restore gatting flush operation on removed gpu accuracy to new gpu accuracy logic
This commit is contained in:
parent
0b3fdb5797
commit
fcfcee7247
3 changed files with 17 additions and 2 deletions
|
|
@ -1,4 +1,4 @@
|
||||||
// SPDX-FileCopyrightText: Copyright 2025 Eden Emulator Project
|
// SPDX-FileCopyrightText: Copyright 2026 Eden Emulator Project
|
||||||
// SPDX-License-Identifier: GPL-3.0-or-later
|
// SPDX-License-Identifier: GPL-3.0-or-later
|
||||||
|
|
||||||
// SPDX-FileCopyrightText: Copyright 2019 yuzu Emulator Project
|
// SPDX-FileCopyrightText: Copyright 2019 yuzu Emulator Project
|
||||||
|
|
@ -92,7 +92,16 @@ void ThreadManager::InvalidateRegion(DAddr addr, u64 size) {
|
||||||
}
|
}
|
||||||
|
|
||||||
void ThreadManager::FlushAndInvalidateRegion(DAddr addr, u64 size) {
|
void ThreadManager::FlushAndInvalidateRegion(DAddr addr, u64 size) {
|
||||||
// Skip flush on asynch mode, as FlushAndInvalidateRegion is not used for anything too important
|
if (Settings::IsGPULevelHigh()) {
|
||||||
|
if (!is_async) {
|
||||||
|
PushCommand(FlushRegionCommand(addr, size));
|
||||||
|
} else {
|
||||||
|
auto& gpu = system.GPU();
|
||||||
|
const u64 fence = gpu.RequestFlush(addr, size);
|
||||||
|
TickGPU();
|
||||||
|
gpu.WaitForSyncOperation(fence);
|
||||||
|
}
|
||||||
|
}
|
||||||
rasterizer->OnCacheInvalidation(addr, size);
|
rasterizer->OnCacheInvalidation(addr, size);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -629,6 +629,9 @@ void RasterizerOpenGL::ReleaseFences(bool force) {
|
||||||
|
|
||||||
void RasterizerOpenGL::FlushAndInvalidateRegion(DAddr addr, u64 size,
|
void RasterizerOpenGL::FlushAndInvalidateRegion(DAddr addr, u64 size,
|
||||||
VideoCommon::CacheType which) {
|
VideoCommon::CacheType which) {
|
||||||
|
if (Settings::IsGPULevelHigh()) {
|
||||||
|
FlushRegion(addr, size, which);
|
||||||
|
}
|
||||||
InvalidateRegion(addr, size, which);
|
InvalidateRegion(addr, size, which);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -766,6 +766,9 @@ void RasterizerVulkan::ReleaseFences(bool force) {
|
||||||
|
|
||||||
void RasterizerVulkan::FlushAndInvalidateRegion(DAddr addr, u64 size,
|
void RasterizerVulkan::FlushAndInvalidateRegion(DAddr addr, u64 size,
|
||||||
VideoCommon::CacheType which) {
|
VideoCommon::CacheType which) {
|
||||||
|
if (Settings::IsGPULevelHigh()) {
|
||||||
|
FlushRegion(addr, size, which);
|
||||||
|
}
|
||||||
InvalidateRegion(addr, size, which);
|
InvalidateRegion(addr, size, which);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue