summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/video_core/renderer_opengl/gl_rasterizer.cpp10
-rw-r--r--src/video_core/texture_cache/texture_cache.h2
2 files changed, 11 insertions, 1 deletions
diff --git a/src/video_core/renderer_opengl/gl_rasterizer.cpp b/src/video_core/renderer_opengl/gl_rasterizer.cpp
index bbf37a00d..ffa0a0429 100644
--- a/src/video_core/renderer_opengl/gl_rasterizer.cpp
+++ b/src/video_core/renderer_opengl/gl_rasterizer.cpp
@@ -682,10 +682,20 @@ void RasterizerOpenGL::SyncGuestHost() {
682} 682}
683 683
684void RasterizerOpenGL::SignalFence(GPUVAddr addr, u32 value) { 684void RasterizerOpenGL::SignalFence(GPUVAddr addr, u32 value) {
685 auto& gpu{system.GPU()};
686 if (!gpu.IsAsync()) {
687 auto& memory_manager{gpu.MemoryManager()};
688 memory_manager.Write<u32>(addr, value);
689 return;
690 }
685 fence_manager.SignalFence(addr, value); 691 fence_manager.SignalFence(addr, value);
686} 692}
687 693
688void RasterizerOpenGL::ReleaseFences() { 694void RasterizerOpenGL::ReleaseFences() {
695 auto& gpu{system.GPU()};
696 if (!gpu.IsAsync()) {
697 return;
698 }
689 fence_manager.WaitPendingFences(); 699 fence_manager.WaitPendingFences();
690} 700}
691 701
diff --git a/src/video_core/texture_cache/texture_cache.h b/src/video_core/texture_cache/texture_cache.h
index e251a30c3..e1a1edbd2 100644
--- a/src/video_core/texture_cache/texture_cache.h
+++ b/src/video_core/texture_cache/texture_cache.h
@@ -252,7 +252,7 @@ public:
252 auto& surface = render_targets[index].target; 252 auto& surface = render_targets[index].target;
253 surface->MarkAsRenderTarget(false, NO_RT); 253 surface->MarkAsRenderTarget(false, NO_RT);
254 const auto& cr_params = surface->GetSurfaceParams(); 254 const auto& cr_params = surface->GetSurfaceParams();
255 if (!cr_params.is_tiled) { 255 if (!cr_params.is_tiled && Settings::values.use_asynchronous_gpu_emulation) {
256 AsyncFlushSurface(surface); 256 AsyncFlushSurface(surface);
257 } 257 }
258 } 258 }