bunnei 7 лет назад
Родитель
Сommit
3f1b4fb23a
2 измененных файлов с 6 добавлено и 13 удалено
  1. 5 8
      src/video_core/gpu_thread.cpp
  2. 1 5
      src/video_core/renderer_opengl/gl_rasterizer.cpp

+ 5 - 8
src/video_core/gpu_thread.cpp

@@ -110,9 +110,8 @@ void ThreadManager::SwapBuffers(
 }
 
 void ThreadManager::FlushRegion(VAddr addr, u64 size) {
-    if (Settings::values.use_accurate_gpu_emulation) {
-        PushCommand(FlushRegionCommand(addr, size), true, false);
-    }
+    // Block the CPU when using accurate emulation
+    PushCommand(FlushRegionCommand(addr, size), Settings::values.use_accurate_gpu_emulation, false);
 }
 
 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) {
-    if (Settings::values.use_accurate_gpu_emulation) {
-        PushCommand(FlushAndInvalidateRegionCommand(addr, size), true, false);
-    } else {
-        InvalidateRegion(addr, size);
-    }
+    // Block the CPU when using accurate emulation
+    PushCommand(FlushAndInvalidateRegionCommand(addr, size),
+                Settings::values.use_accurate_gpu_emulation, false);
 }
 
 void ThreadManager::PushCommand(CommandData&& command_data, bool wait_for_idle, bool allow_on_cpu) {

+ 1 - 5
src/video_core/renderer_opengl/gl_rasterizer.cpp

@@ -749,11 +749,7 @@ void RasterizerOpenGL::FlushAll() {}
 
 void RasterizerOpenGL::FlushRegion(VAddr addr, u64 size) {
     MICROPROFILE_SCOPE(OpenGL_CacheManagement);
-
-    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);
-    }
+    res_cache.FlushRegion(addr, size);
 }
 
 void RasterizerOpenGL::InvalidateRegion(VAddr addr, u64 size) {