pvr: restore TA ctx after rendering framebuffer
fixes Sakura Taisen 4 hang when starting game
This commit is contained in:
parent
ed90bcebee
commit
8194254fa1
|
@ -583,9 +583,15 @@ void rend_vblank()
|
|||
if (!render_called && fb_dirty && FB_R_CTRL.fb_enable)
|
||||
{
|
||||
DEBUG_LOG(PVR, "Direct framebuffer write detected");
|
||||
u32 saved_ctx_addr = PARAM_BASE;
|
||||
bool restore_ctx = ta_ctx != NULL;
|
||||
PARAM_BASE = 0xF00000;
|
||||
SetCurrentTARC(CORE_CURRENT_CTX);
|
||||
ta_ctx->rend.isRenderFramebuffer = true;
|
||||
rend_start_render();
|
||||
PARAM_BASE = saved_ctx_addr;
|
||||
if (restore_ctx)
|
||||
SetCurrentTARC(CORE_CURRENT_CTX);
|
||||
fb_dirty = false;
|
||||
}
|
||||
render_called = false;
|
||||
|
|
Loading…
Reference in New Issue