Rasterizer: Disable fence managing in synchronous gpu.

This commit is contained in:
Fernando Sahmkow 2020-02-18 11:26:31 -04:00
parent 165ae823f5
commit e84eb64e51
2 changed files with 11 additions and 1 deletions

View File

@ -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();
} }

View File

@ -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);
} }
} }