From 90a3f3af3064deafbe0813bd1e9e522522063e12 Mon Sep 17 00:00:00 2001 From: kd-11 Date: Sun, 26 Nov 2017 15:51:16 +0300 Subject: [PATCH] rsx: Discard queue if RET is found without CALL --- rpcs3/Emu/RSX/RSXThread.cpp | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/rpcs3/Emu/RSX/RSXThread.cpp b/rpcs3/Emu/RSX/RSXThread.cpp index 922e99203b..86d78df432 100644 --- a/rpcs3/Emu/RSX/RSXThread.cpp +++ b/rpcs3/Emu/RSX/RSXThread.cpp @@ -545,6 +545,13 @@ namespace rsx } if (cmd == RSX_METHOD_RETURN_CMD) { + if (m_call_stack.size() == 0) + { + LOG_ERROR(RSX, "FIFO: RET found without corresponding CALL. Discarding queue"); + internal_get = put; + continue; + } + u32 get = m_call_stack.top(); m_call_stack.pop(); //LOG_WARNING(RSX, "rsx return(0x%x)", get);