Browse Source

Rasterizer: Disable fence managing in synchronous gpu.

nce_cpp
Fernando Sahmkow 6 years ago
parent
commit
b2787048d1
  1. 10
      src/video_core/renderer_opengl/gl_rasterizer.cpp
  2. 2
      src/video_core/texture_cache/texture_cache.h

10
src/video_core/renderer_opengl/gl_rasterizer.cpp

@ -682,10 +682,20 @@ void RasterizerOpenGL::SyncGuestHost() {
} }
void RasterizerOpenGL::SignalFence(GPUVAddr addr, u32 value) { void RasterizerOpenGL::SignalFence(GPUVAddr addr, u32 value) {
auto& gpu{system.GPU()};
if (!gpu.IsAsync()) {
auto& memory_manager{gpu.MemoryManager()};
memory_manager.Write<u32>(addr, value);
return;
}
fence_manager.SignalFence(addr, value); fence_manager.SignalFence(addr, value);
} }
void RasterizerOpenGL::ReleaseFences() { void RasterizerOpenGL::ReleaseFences() {
auto& gpu{system.GPU()};
if (!gpu.IsAsync()) {
return;
}
fence_manager.WaitPendingFences(); fence_manager.WaitPendingFences();
} }

2
src/video_core/texture_cache/texture_cache.h

@ -252,7 +252,7 @@ public:
auto& surface = render_targets[index].target; auto& surface = render_targets[index].target;
surface->MarkAsRenderTarget(false, NO_RT); surface->MarkAsRenderTarget(false, NO_RT);
const auto& cr_params = surface->GetSurfaceParams(); const auto& cr_params = surface->GetSurfaceParams();
if (!cr_params.is_tiled) {
if (!cr_params.is_tiled && Settings::values.use_asynchronous_gpu_emulation) {
AsyncFlushSurface(surface); AsyncFlushSurface(surface);
} }
} }

Loading…
Cancel
Save