rsx: Fix race on clearing native_ui vs emu_requested flag

This commit is contained in:
eladash 2019-04-03 16:42:33 +03:00 committed by Ivan
parent 67f098627a
commit 6f76e34104
11 changed files with 25 additions and 19 deletions

View file

@ -2094,7 +2094,7 @@ namespace rsx
}
}
void thread::flip(int buffer)
void thread::flip(int buffer, bool emu_flip)
{
if (!(async_flip_requested & flip_request::any))
{
@ -2135,7 +2135,14 @@ namespace rsx
m_flattener.force_disable();
}
async_flip_requested.clear();
if (emu_flip)
{
async_flip_requested.clear(flip_request::emu_requested);
}
else
{
async_flip_requested.clear(flip_request::native_ui);
}
}
if (!skip_frame)
@ -2462,7 +2469,7 @@ namespace rsx
int_flip_index++;
current_display_buffer = buffer;
flip(buffer);
flip(buffer, true);
last_flip_time = get_system_time() - 1000000;
flip_status = CELL_GCM_DISPLAY_FLIP_STATUS_DONE;