Skip to content

RSX/Qt: Reuse gs_frame if possible#16500

Merged
Megamouse merged 7 commits into
RPCS3:masterfrom
Megamouse:tesst
Jan 6, 2025
Merged

RSX/Qt: Reuse gs_frame if possible#16500
Megamouse merged 7 commits into
RPCS3:masterfrom
Megamouse:tesst

Conversation

@Megamouse

@Megamouse Megamouse commented Jan 3, 2025

Copy link
Copy Markdown
Contributor
  • Keep using the same game window when spawning child processes (useful for game collections).
  • Keep using the same game window when restarting a game from the home menu
  • Keep using the same game window when creating/loading savestates

@Megamouse Megamouse force-pushed the tesst branch 3 times, most recently from 40d578e to 4fba171 Compare January 3, 2025 22:39
@Darkhost1999

Darkhost1999 commented Jan 4, 2025

Copy link
Copy Markdown
Contributor

While here can we reuse the game window during the overlay home menu -> restart game?

Thank you

@Megamouse Megamouse changed the title RSX/Qt: Reuse gs_frame in ChildProcess RSX/Qt: Reuse gs_frame if possible Jan 4, 2025
@Megamouse Megamouse force-pushed the tesst branch 4 times, most recently from 97d9fb8 to fcf3823 Compare January 4, 2025 12:28
@Darkhost1999

Copy link
Copy Markdown
Contributor

RPCS3.log
Saving the state failed but setting the continuous mode flag succeeded. So closing the game resulted in restarting the game.
Intended behavior discard continuous mode flag upon state error.
I also observed, not in the log, that choosing to reload with the last savestate from the home menu uses a new window.
Is this planned to reuse gs_frame so that there is saving and loading or is there a reason for yes saving but no loading?

@Megamouse

Copy link
Copy Markdown
Contributor Author

RPCS3.log Saving the state failed but setting the continuous mode flag succeeded. So closing the game resulted in restarting the game. Intended behavior discard continuous mode flag upon state error. I also observed, not in the log, that choosing to reload with the last savestate from the home menu uses a new window. Is this planned to reuse gs_frame so that there is saving and loading or is there a reason for yes saving but no loading?

Should both work now. Although the first bug you described was not related to the continuous mode

@Darkhost1999

Copy link
Copy Markdown
Contributor

Should both work now. Although the first bug you described was not related to the continuous mode

Looks good, and feels good.
Windows stay open and in their respective modes whether exclusive or borderless fullscreen, windowed mode maximized, minimized, floating. Savestates save and present the native creating savestate please wait message, loading the state works fine and seems to just hang until you see the loading cache messages then it's loaded.
Restarting the game works from the home menu all with the same window.
This is very nice and helps the user experience a lot.
I tried Call of Duty Black ops and went to multiplayer.self and back to main menu it's nice and seamless.

@Darkhost1999

Copy link
Copy Markdown
Contributor

Was this reuse gs_frame removed from the llvm cache batch creation?
I see continuous mode = true in this code.
Was there an issue that this was reverted intentionally, or should I perform a regression test?

I am observing in 0.0.36-17928 that gs_frame closes between each game during batch llvm cache creation.

I wanted to migrate the LLVM Cache Batch Creation progress dialog into the gs_frame as a progress "native" overlay above the compiling PPU modules progress dialog.
So it'd look like
Batch progress ...
Progress.....
Per game progress
Compiling....

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants