diff --git a/rpcs3/Emu/RSX/RSXThread.cpp b/rpcs3/Emu/RSX/RSXThread.cpp index 2b910da862..5813de0c6a 100644 --- a/rpcs3/Emu/RSX/RSXThread.cpp +++ b/rpcs3/Emu/RSX/RSXThread.cpp @@ -2702,6 +2702,12 @@ namespace rsx flip_status = CELL_GCM_DISPLAY_FLIP_STATUS_DONE; m_queued_flip.in_progress = false; + if (!isHLE) + { + sys_rsx_context_attribute(0x55555555, 0xFEC, buffer, 0, 0, 0); + return; + } + if (flip_handler) { intr_thread->cmd_list @@ -2713,8 +2719,6 @@ namespace rsx thread_ctrl::notify(*intr_thread); } - - sys_rsx_context_attribute(0x55555555, 0xFEC, buffer, 0, 0, 0); } diff --git a/rpcs3/Emu/RSX/rsx_methods.cpp b/rpcs3/Emu/RSX/rsx_methods.cpp index de68adac81..85c73bbaea 100644 --- a/rpcs3/Emu/RSX/rsx_methods.cpp +++ b/rpcs3/Emu/RSX/rsx_methods.cpp @@ -1433,7 +1433,12 @@ namespace rsx void user_command(thread* rsx, u32, u32 arg) { - sys_rsx_context_attribute(0x55555555, 0xFEF, 0, arg, 0, 0); + if (!rsx->isHLE) + { + sys_rsx_context_attribute(0x55555555, 0xFEF, 0, arg, 0, 0); + return; + } + if (rsx->user_handler) { rsx->intr_thread->cmd_list