From 2f885b6c210be008b225d0975040ca2a0ea92652 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Valdis=20Bogd=C4=81ns?= Date: Sat, 14 Feb 2026 02:32:50 +0200 Subject: [PATCH] Improve stack clearing logic in ExecuteGuest Added a check for fiber stacks before clearing the stack in ExecuteGuest. That fixes Gravity Rush 2 crash on Windows. --- src/core/tls.h | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/src/core/tls.h b/src/core/tls.h index 83940be7a..a7b1d6838 100644 --- a/src/core/tls.h +++ b/src/core/tls.h @@ -59,9 +59,11 @@ void ClearStack() { template ReturnType ExecuteGuest(PS4_SYSV_ABI ReturnType (*func)(FuncArgs...), CallArgs&&... args) { - EnsureThreadInitialized(); - // clear stack to avoid trash from EnsureThreadInitialized - ClearStack<12_KB>(); + // clear stack to avoid trash from EnsureThreadInitialized (skip on fiber stacks) + auto* tcb = GetTcbBase(); + if (tcb == nullptr || tcb->tcb_fiber == nullptr) { + ClearStack<12_KB>(); + } return func(std::forward(args)...); }