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/vk: Faster render thread release on data sync #15205

Merged
merged 3 commits into from
Feb 14, 2024
Merged

Conversation

kd-11
Copy link
Contributor

@kd-11 kd-11 commented Feb 13, 2024

Data sync through WCB/WDB is complicated but consists of two phases:

  1. Command submission instructing the GPU on all the data moves to do and compute jobs to run to prepare the data into PS3 format.
  2. Waiting for the GPU to complete and copying the data over via memcpy.

Normally we just do both at the same time, ignoring the fact that step one is completed in like 1% of the total time and step 2 is the slow bit. This PR adds a callback between steps 1 and 2 that releases the RSX thread to continue decoding work and pushing draw calls while CELL deals with step 2. The work happens under a global RSX caching lock so data corruption should not happen.

The result here should be a moderate speedup in games that show 99% RSX load at mediocre framerates.

@Ordinary205
Copy link
Contributor

Sadly this doesn't entirely fixes the RSX FIFO crashes on NFS The Run when enabling WCB+RCB, although I can tell it slightly reduces the chance of having a crash. This may sound a bit off-topic, but it seems like this game only has stability issues with RSX display issues on low vblank, so its not a slow render thread issue.
RPCS3.log.gz

@kd-11 kd-11 marked this pull request as ready for review February 14, 2024 13:16
@kd-11 kd-11 changed the title [TESTERS NEEDED] rsx/vk: Faster render thread release on data sync rsx/vk: Faster render thread release on data sync Feb 14, 2024
@kd-11 kd-11 merged commit dfc626c into RPCS3:master Feb 14, 2024
6 checks passed
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.

3 participants