Commit Graph
238 Commits
Author SHA1 Message Date
Henrik RydgårdandClaude Opus 5 4132c185f4 GameInfoCache: Synchronize the rest of the worker's writes
The work item wrote title, id, id_version, region, errorString, hasConfig and
gameSizeUncompressed with no lock held, while the main thread reads them under
info->lock. title is the sharp one - an unsynchronized std::string write against
a locked read in GetTitle()/GetDBTitle() is a real data race, not just a stale
read. SetTitle() already existed and was used in exactly one of the six places.

The two expensive calls (HasGameConfig, which hits the file system, and
GetSizeUncompressedInBytes) stay outside the lock - the main thread takes it
every frame, so blocking on I/O under it would show up as UI stutter.

PurgeType read hasFlags/fileType/pendingFlags under mapLock_ only, racing the
worker's MarkReadyNoLock. It also erased entries without dropping their
textures, unlike Clear() - so a work item that finished just before PurgeType
took the lock could be left holding the last reference, and ~GameInfo would
then release GPU textures on a worker thread.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01FzzCUp8y1ahgVueb1Cq92Y
2026-08-29 00:05:42 +02:00
Henrik Rydgård 63ef2a7498 Hide savestate controls if you are running a frame dump 2026-08-09 19:03:08 +02:00
Henrik Rydgård 7219cd2f5a Split off ScreenManager from Screen.cpp 2026-08-07 14:30:36 +02:00
Henrik Rydgård 2c73aead45 Minor code cleanup on pause screen 2026-08-07 08:49:29 +02:00
Henrik Rydgård ecce9baffa Fix some pause screen issues 2026-07-30 18:44:44 +02:00
Henrik Rydgård 9fb0973852 Unrelated UI fix 2026-07-18 11:57:48 +02:00
Henrik Rydgård 497baecc9e Correct OnVkey locking on PauseScreen as well 2026-07-12 11:31:29 +02:00
Henrik Rydgård 48068384fe Add ugly hack to prevent double-trigger of ESC to close the pause screen 2026-06-28 12:21:51 +02:00
Henrik Rydgård 02e9deb232 Fix some input behavior that got lost in the previous commits. 2026-06-24 21:48:44 +02:00
Henrik Rydgård 02aaa3b2b9 Don't have pauseTrigger as an output parameter from ControlMapper::Key() 2026-06-16 10:57:52 +02:00
Henrik Rydgård 6d98293be9 Hide orientation controls on large Android 17 devices, since they won't work. 2026-06-15 10:37:58 +02:00
Henrik Rydgård 78a6bd7157 Add DevMenu to the three dots menu on the pause screen 2026-06-05 17:19:06 +02:00
Henrik Rydgård 9f5d28ca6e Fix toggling pause with the bound pause key 2026-06-03 18:49:13 +02:00
Eloren1 109d1caa50 Separate TriggerFinish from parent result 2026-05-31 22:05:53 +03:00
Eloren1 938029cd6a Add screenshots + extract LoadStateConfirmScreen 2026-05-31 21:55:06 +03:00
Eloren1 7734c5f8f5 Call TriggerFinish on next frame outside popup 2026-05-31 20:27:07 +03:00
Eloren1 23aef44ae1 UI: Add load state confirmation option 2026-05-31 19:32:41 +03:00
Henrik Rydgård 231aefe476 Code cleanup for save state notification, add metadata field 2026-05-19 11:07:07 +02:00
Henrik Rydgård 6eb0b3fd51 Fix an issue with Exit icon not showing up in MessagePopup 2026-05-13 11:04:03 +02:00
Henrik Rydgård e0a5a3e2bf iOS: Add basic deep link support.
Fixes #21577
2026-04-28 22:17:24 +02:00
Henrik Rydgård 9793172eba More UI refinements 2026-04-07 20:52:38 -06:00
Henrik Rydgård 9cb9e3ad9b Pause screen UI fixes, add link to relay server status 2026-04-06 13:29:42 -06:00
Henrik Rydgård cfc5d74602 Some progress with server status UI 2026-03-30 11:34:19 -06:00
Henrik Rydgård 179aaa06cc Fix accidentally missing undo button on the savestate popup. Make sure the timestamp updates, too. 2026-03-13 20:14:21 +01:00
Henrik Rydgård f2ebcf42cb On the pause screen, ask for confirmation when creating configs. Too easy to slip and do by accident. 2026-03-12 15:41:24 +01:00
Henrik Rydgård cf9ee07b8e Adhoc: Forgot that we have to load the server list in-game to check the connection mode 2026-03-09 00:44:56 +01:00
Henrik Rydgård 892ef99daa Misc cleanups and fixes 2026-03-04 14:41:59 +01:00
Henrik Rydgård 52ec01994d Add icons to the buttons on the save state popup. Flip the undo buttons to match the regular buttons. 2026-02-28 11:40:55 +01:00
Henrik Rydgård 8eeb64c9dc Fix a bug in gridlayout column count computation, fix layout problem on savestate popups. 2026-02-25 14:28:57 +01:00
Henrik Rydgård f13d339ed3 Set the CRC banner on the game screen to fit contents, instead of the screen.
Also make sure it's not visible when it shouldn't be
2026-02-25 00:52:25 +01:00
Henrik Rydgård 7ea2265ff3 Make the undo save/load buttons not scroll with the savestate list 2026-02-24 00:56:45 +01:00
Henrik Rydgård 22f2e69d0a Integrate the exit reminder (you haven't saved..) in warnings from setting that require restart
Part of #21223
2026-02-24 00:56:45 +01:00
Henrik Rydgård e0ed2bfd41 Additional pause screen flicker fix 2026-02-19 16:17:03 +01:00
Henrik Rydgård f359c1b3b1 More flicker elimination on pause screen 2026-02-19 00:15:49 +01:00
Henrik Rydgård e1c80373d6 Fix minor flicker when closing menus on the pause screen 2026-02-18 15:40:55 +01:00
Nab 0b51d74bb2 Add icon to Create new shortcut option 2026-02-14 17:40:05 +00:00
Henrik Rydgård d446d1c26c Have the pausescreen listen to the control mapper, for the pause key 2026-02-12 23:43:49 +01:00
Henrik Rydgård e1b638aaab Minor UI tweaks 2026-02-11 23:33:39 +01:00
Henrik Rydgård c029faa8a3 Merge pull request #21233 from hrydgard/misc-fixes
Fix R-Type saving problem, redesign the run-behind button on the pause screen
2026-02-10 13:12:09 +01:00
Henrik Rydgård edaab592cc Pause screen: Make the run-behind play/pause button outlined, to differentiate 2026-02-10 10:46:48 +01:00
Henrik Rydgård 09b087f16f Resume gameplay immediately after choosing Reset on the pause screen. 2026-02-10 00:22:09 +01:00
Henrik Rydgård c20f24c5be Remove ... from "Edit touch control layout". Increase default grid size on iOS 2026-01-29 21:53:22 +01:00
Henrik Rydgård e7aba8f153 Hook up an InputDeviceListener, and just have it log 2026-01-25 23:02:12 +01:00
Henrik Rydgård 34938e3de6 Move Notice to Common/UI 2026-01-25 15:10:26 +01:00
Henrik Rydgård 685b6e2140 Minor visual cleanup on pause screen 2026-01-23 14:10:29 +01:00
Henrik Rydgård 8b8c776491 Fix visual issue with rotation button on the pause screen 2026-01-19 17:00:41 +01:00
Henrik Rydgård 11c63738ae Implement the "Auto load savestate" display from #21082 2026-01-09 12:27:37 +01:00
Henrik Rydgård f1f931551a Add a "Savestate slot count" setting. 2026-01-09 12:20:39 +01:00
Henrik Rydgård 2b78509986 Fix the back button resuming the game on the pause screen 2026-01-09 12:20:39 +01:00
Henrik Rydgård 884d3c46d5 Rework listing of savestates - a single scan operation instead of lots of File::Exists and ModTime calls.
Needed to improve scalability on Android for when we increase the number
of states.
2026-01-09 11:17:21 +01:00