Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

rsx: Trivial non-blocking display synchronization #12055

Merged
merged 3 commits into from
May 21, 2022

Conversation

kd-11
Copy link
Contributor

@kd-11 kd-11 commented May 21, 2022

Alt to #12052
I'm still thinking about this, but a queue system makes more sense.
Fixes framerates in tlou for me and keeps the limit options behaving the same as before with minimal changes.

@Megamouse Megamouse added the RSX label May 21, 2022
rpcs3/Emu/RSX/RSXThread.cpp Outdated Show resolved Hide resolved
@kd-11
Copy link
Contributor Author

kd-11 commented May 21, 2022

Flickering should be gone now.

@kd-11
Copy link
Contributor Author

kd-11 commented May 21, 2022

Frametimes are still garbage though.

@Asinin3
Copy link
Contributor

Asinin3 commented May 21, 2022

Old master before limiter changes. Using auto
13626_neozcull_CRwemVRfO4
Your PR on auto:
framelimiter_kd_ptQRHFHwIi
framelimiter_kd_zwAakoVrOq

Just 1-2 spikes every 5seconds (using 400 datapoints for frametime) Amazing job, even better than what we had before!

EDIT: Frametime in GoW:A is much worse than auto but this is likely due to me not sitting at 60fps Cap. Due to this we have made the option separate from Auto.

@kd-11
Copy link
Contributor Author

kd-11 commented May 21, 2022

I've moved the hardware behavior to a new option called "PS3 native"
This has the effect of enabling software vsync (not synced to the host display, but to the virtual emulated display) if a game enables vsync. If a game does not enable vsync, it gets unlimited fps just like you get on a real GPU.

@kd-11 kd-11 changed the title [POC, NoMerge] rsx: Trivial non-blocking display synchronization [POC] rsx: Trivial non-blocking display synchronization May 21, 2022
@kd-11 kd-11 marked this pull request as ready for review May 21, 2022 13:13
@kd-11 kd-11 requested a review from Megamouse May 21, 2022 13:13
@kd-11 kd-11 changed the title [POC] rsx: Trivial non-blocking display synchronization rsx: Trivial non-blocking display synchronization May 21, 2022
@kd-11
Copy link
Contributor Author

kd-11 commented May 21, 2022

Merging to close the regression in master.

@Linear524
Copy link

Latest PR's have some overall speed loss about 7~10% in all titles...

@Asinin3
Copy link
Contributor

Asinin3 commented May 21, 2022

All titles means nothing. Make a issue report with framerate comparisons with avg fps shown in an area that has stable (non fluctuating) fps. And show which pr broke it. If it was this PR then are you sure it was the same in the older build before elads PR? Is it just with auto? we need info and a proper report with logs.

@Linear524
Copy link

@Asinin3
Okay, I will gather detailed info and try to check all PR's for the last 5 days.
But it will be a bit difficult due to frequent freezes and crashes on newer revisions.
For example - GT6 runs pretty stable for me on PR 11972, At least I can drive one map without crash... Latest master builds freezes even if I try to check my car in Garage mode.
Ratchet and Clank freezes after about 4 or 5 minutes of intense gameplay with usual RSX access violation error...
Just don't get me wrong - I really appreciate every new revision and evolving of RPCS3, because every time some nasty bug is really getting fixed. And I'm really glad to see how much KD-11, Nekotekina, Elad and other DEV's did to RPCS3 :)
I just can't understand how to configure latest master branch revisions to make them work stable again, just like before.
P.S. - I never use any patches because they just skipping important functions, like postprocessing shaders or other nice effects.
I using native 720p resolution and always use WCB+RCB+WDB+RDB for more closer behavior like real PS3 produces.
My rig:
SYS: Intel(R) Xeon(R) CPU E5-2690 v4 @ 3.20GHz | 14 Cores | 31.83 GiB RAM |
SYS: Operating system: Windows, Major: 10, Minor: 0, Build: 18362
GPU: 'NVIDIA GeForce GTX 1080' running on driver 512.59 Studio driver
SYS: Firmware version: 4.87

@Asinin3
Copy link
Contributor

Asinin3 commented May 21, 2022

Gran Turismo 6 is one of the most unstable games on the emulator with lots of race conditions dont bother trying to test it before/after PR's as it was always full of random crashes you will have to run the game like 20times on each build to confirm for sure its not just race conditions.

@kd-11
Copy link
Contributor Author

kd-11 commented May 21, 2022

@Asinin3 Okay, I will gather detailed info and try to check all PR's for the last 5 days. But it will be a bit difficult due to frequent freezes and crashes on newer revisions. For example - GT6 runs pretty stable for me on PR 11972, At least I can drive one map without crash... Latest master builds freezes even if I try to check my car in Garage mode. Ratchet and Clank freezes after about 4 or 5 minutes of intense gameplay with usual RSX access violation error... Just don't get me wrong - I really appreciate every new revision and evolving of RPCS3, because every time some nasty bug is really getting fixed. And I'm really glad to see how much KD-11, Nekotekina, Elad and other DEV's did to RPCS3 :) I just can't understand how to configure latest master branch revisions to make them work stable again, just like before. P.S. - I never use any patches because they just skipping important functions, like postprocessing shaders or other nice effects. I using native 720p resolution and always use WCB+RCB+WDB+RDB for more closer behavior like real PS3 produces. My rig: SYS: Intel(R) Xeon(R) CPU E5-2690 v4 @ 3.20GHz | 14 Cores | 31.83 GiB RAM | SYS: Operating system: Windows, Major: 10, Minor: 0, Build: 18362 GPU: 'NVIDIA GeForce GTX 1080' running on driver 512.59 Studio driver SYS: Firmware version: 4.87

This PR does 2 things:

  • Makes auto framelimiter work as it used to before yesterday.
  • Add a new framelimit called 'ps3 native' that replaces the 'auto' mode from yesterday.

So, if you're seeing new behavior that was not there before yesterday, that would be very strange. Unless you're using 'ps3 native' limiter, everything is just the way it was before.
Of course other things have changed not just the framelimit, so take that into account when testing.

@kd-11
Copy link
Contributor Author

kd-11 commented May 21, 2022

By other things I mean there have been other PRs.

@solarmystic
Copy link

solarmystic commented May 22, 2022

Great work kd-11, this PR works out nicely. FPS and frame time are back to normal in GoW:Ascension compared to the pre-HW limiter build, when set to Auto or 60.

image

@kd-11 kd-11 deleted the rsx-reservations-fix branch June 4, 2022 19:57
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

5 participants