Rasterizer: Disable fence managing in synchronous gpu.
This commit is contained in:
parent
165ae823f5
commit
e84eb64e51
2 changed files with 11 additions and 1 deletions
|
@ -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();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -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…
Reference in a new issue