gpu: Always flush.
This commit is contained in:
parent
aaa373585c
commit
3f1b4fb23a
|
@ -110,9 +110,8 @@ void ThreadManager::SwapBuffers(
|
||||||
}
|
}
|
||||||
|
|
||||||
void ThreadManager::FlushRegion(VAddr addr, u64 size) {
|
void ThreadManager::FlushRegion(VAddr addr, u64 size) {
|
||||||
if (Settings::values.use_accurate_gpu_emulation) {
|
// Block the CPU when using accurate emulation
|
||||||
PushCommand(FlushRegionCommand(addr, size), true, false);
|
PushCommand(FlushRegionCommand(addr, size), Settings::values.use_accurate_gpu_emulation, false);
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void ThreadManager::InvalidateRegion(VAddr addr, u64 size) {
|
void ThreadManager::InvalidateRegion(VAddr addr, u64 size) {
|
||||||
|
@ -120,11 +119,9 @@ void ThreadManager::InvalidateRegion(VAddr addr, u64 size) {
|
||||||
}
|
}
|
||||||
|
|
||||||
void ThreadManager::FlushAndInvalidateRegion(VAddr addr, u64 size) {
|
void ThreadManager::FlushAndInvalidateRegion(VAddr addr, u64 size) {
|
||||||
if (Settings::values.use_accurate_gpu_emulation) {
|
// Block the CPU when using accurate emulation
|
||||||
PushCommand(FlushAndInvalidateRegionCommand(addr, size), true, false);
|
PushCommand(FlushAndInvalidateRegionCommand(addr, size),
|
||||||
} else {
|
Settings::values.use_accurate_gpu_emulation, false);
|
||||||
InvalidateRegion(addr, size);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void ThreadManager::PushCommand(CommandData&& command_data, bool wait_for_idle, bool allow_on_cpu) {
|
void ThreadManager::PushCommand(CommandData&& command_data, bool wait_for_idle, bool allow_on_cpu) {
|
||||||
|
|
|
@ -749,11 +749,7 @@ void RasterizerOpenGL::FlushAll() {}
|
||||||
|
|
||||||
void RasterizerOpenGL::FlushRegion(VAddr addr, u64 size) {
|
void RasterizerOpenGL::FlushRegion(VAddr addr, u64 size) {
|
||||||
MICROPROFILE_SCOPE(OpenGL_CacheManagement);
|
MICROPROFILE_SCOPE(OpenGL_CacheManagement);
|
||||||
|
res_cache.FlushRegion(addr, size);
|
||||||
if (Settings::values.use_accurate_gpu_emulation) {
|
|
||||||
// Only flush if use_accurate_gpu_emulation is enabled, as it incurs a performance hit
|
|
||||||
res_cache.FlushRegion(addr, size);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void RasterizerOpenGL::InvalidateRegion(VAddr addr, u64 size) {
|
void RasterizerOpenGL::InvalidateRegion(VAddr addr, u64 size) {
|
||||||
|
|
Loading…
Reference in New Issue