From 2445ab8d8ea1286b052b33c2853f238e10516511 Mon Sep 17 00:00:00 2001 From: kd-11 Date: Thu, 4 Aug 2022 16:05:46 +0300 Subject: [PATCH] Fix RSX capture playback --- rpcs3/Emu/RSX/RSXThread.cpp | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/rpcs3/Emu/RSX/RSXThread.cpp b/rpcs3/Emu/RSX/RSXThread.cpp index e1d392cdce..317f391193 100644 --- a/rpcs3/Emu/RSX/RSXThread.cpp +++ b/rpcs3/Emu/RSX/RSXThread.cpp @@ -47,8 +47,11 @@ bool serialize(utils::serial& ar, rsx::rsx_state& o) { ar(o.transform_program); - // Hack for compatiblity with previous RSX captures - if (rsx::get_current_renderer()->state & cpu_flag::exit || GET_SERIALIZATION_VERSION(global_version)) + // Work around for old RSX captures. + // RSX capture and savestates both call this method. + // We do not want to grab transform constants if it is not savestate capture. + const bool is_savestate_capture = thread_ctrl::get_current() && thread_ctrl::get_name() == "Emu State Capture Thread"; + if (GET_SERIALIZATION_VERSION(global_version) || is_savestate_capture) { ar(o.transform_constants); }