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: Misc optimizations and fixes #12632

Merged
merged 6 commits into from Sep 9, 2022
Merged

rsx: Misc optimizations and fixes #12632

merged 6 commits into from Sep 9, 2022

Conversation

kd-11
Copy link
Contributor

@kd-11 kd-11 commented Sep 9, 2022

  • Avoid unordered_map insert/erase in hot loop. Use a ring allocation instead. This was an issue in ZCULL code where frequent insert/erase cycles were wasting performance.
  • Avoid malloc/realloc/free in the vertex analysis routine. This method is called several times for every draw call and the cost was adding up quite a bit.
  • Elide contention by aborting FIFO puller cache load if we have at least 50% of the data already loaded. Since the usecase for this is a "chase" situation, it is a far better use of resources to let CELL run ahead further and reduces time wasted spinning. This speeds up the FIFO read routine by ~12% when using atomic FIFO.
  • Fix image concurrency access when using async compute with vulkan.

Overall, this set of changes gives a ~10% uplift on average which is nice.

…5% overhead.

This method is called many thousands of times per frame and that single allocation introduces a small perf hit.
Just get rid of it, it doesn't improve anything to have it there.
rpcs3/Emu/RSX/RSXFIFO.cpp Outdated Show resolved Hide resolved
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Optimization Optimizes existing code RSX
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

3 participants