45 Commits
Author SHA1 Message Date
jpolo1224 f04aa0e823 Close the progress dialog when work is complete but its text is held
The progress dialog server only leaves its loop when the counters match AND
g_progr_text is empty. That text is refcounted across nested progress scopes, so
a leaked reference leaves the loop spinning forever: the dialog is never closed,
and the cleanup that resets g_progr_ptotal never runs either, which is what
ppu_thread::cpu_task waits on before switching to overlay-message mode.

Seen on device with a fully booted, running game sitting behind a "Building SPU
Cache... 941 of 941" dialog for over ten minutes. The RSX thread and two SPU
threads were at 97%, syscall counters were climbing, and nothing had compiled
since six minutes in. Note the label is stale in that state: the server only
overwrites its cached text when it receives a non-empty one, so the last
meaningful message stays on screen and says nothing about which scope leaked.

Closes the dialog once the counters are complete and have been completely idle
for roughly five seconds. wait_no_update_count resets on any change to any
counter or to the text, so work in progress can never reach the threshold. The
warning names the held text, which is what will identify the leaking scope.

This is a safety net. The reference leak itself is still there.
2026-08-06 23:34:25 -04:00
Megamouse 3ce4c95e61 Show message while creating savestate in continuous mode 2025-01-06 15:49:09 +01:00
Megamouse 635eac7704 Qt: fix batch compilation after a game was already running
Batch compilation wasn't working if g_system_progress_canceled wasn't reset
2025-01-04 11:31:25 +01:00
Elad 68d74bc28a Progress Dialog: Fix recursion and concurrency use of text updates 2024-11-16 12:22:23 +02:00
Megamouse 7866dc2e34 overlays: localize RPCS3 progress dialog 2024-11-15 09:48:12 +01:00
Megamouse c89e30b3d9 cellMsgDialog: only abort dialogs that were actually spawned by cellMsgDialog 2024-09-20 20:43:57 +02:00
Elad Ashkenazi 1bd4565186 Implement thread_ctrl::wait_until() 2024-08-17 06:38:49 +03:00
Elad Ashkenazi 8333830bd7 Progress Dialog: Stabilize remaining time 2024-07-08 10:06:56 +03:00
Elad Ashkenazi 6d280c5f3c Ensure PPU Compilation Hint is refreshed 2024-06-08 14:09:37 +03:00
Elad Ashkenazi 67893fb8f8 PPU Progress Hint: Show it as long as it needs 2024-05-30 11:41:24 +03:00
Elad Ashkenazi 22b566cb15 Progress Dialog: Extremely important text fix
Thanks to mr spaces.
2024-05-14 19:36:48 +03:00
Eladash 26746ac9ee Progress Dialog: Force update every 20 seconds 2024-04-13 13:48:00 +03:00
Eladash e401d85af7 progress dialog: minor fix 2024-01-20 22:15:07 +02:00
Eladash 2a1330083d Fix PPU progress dialog hint 2024-01-02 15:56:06 +02:00
Megamouse 055c7db5a4 progress dialog: Fix remaining time 2023-09-05 22:53:44 +02:00
Eladash 44c08c3a73 PPU/Progress Dialog: Improve remaining time calculation 2023-09-05 22:02:47 +03:00
Eladash 6dcdf6ec76 Add approximation to remaining compilation time 2023-09-05 14:58:46 +03:00
Megamouse b5dac0c333 Progress dialog: show analysing... while no files or modules are known yet. 2023-09-03 15:25:19 +02:00
Eladash d62d6cc852 Progress Dialog: Force-update counter when complete
This confuses both the user and the developer at times.
2023-09-02 22:14:53 +03:00
Megamouse d8af3ea855 overlays: fix some warnings, simplify code, use move and references 2023-08-23 21:42:59 +02:00
Eladash 2022098b13 Progress Dialog: Fix race when PPU compilation is super fast 2023-08-22 14:26:14 +03:00
Eladash ee3c7f335f Progress Dialog: Avoid PPU compilation pop-up on short linkage 2023-08-22 09:01:15 +03:00
Eladash bf93f9f987 Progress Dialog: Fix race that could lead to ever-inaccurate results 2023-08-22 09:01:15 +03:00
Eladash a001e6ef09 Progress Dialog: Fix race on PPU compilation status 2023-08-22 05:40:53 +03:00
Eladash 2a0278fbb1 Fixup SPU/PPU Cache Abortion 2023-08-06 21:37:10 +03:00