Status update from kd-11 (2020-12-06)
Added 2020-12-07 15:17:20 +0000 UTCHi,
It's kd-11 with another quick update on RSX emulation progress for RPCS3.
The past month has been a month of large updates when it comes to RSX improvements. This is due to the ongoing feature sprint that I have been doimg with a view to focus on behavioural improvements rather than specific bug fixes. A brief summary of the changes from the month of November 2020:
1. Resolution scaling was rewritten. The previous algorithm was not good enough and could generate 'stretched' pixels due to the framebuffer axes being scaled independently. This has now been resolved. All games generate square fragments wherever possible which fixes sampling issues in shaders and vastly improves compatibility. This work can be seen in [this PR] with a followup PR [here] that completes the work. Dozens of games can now be upscaled without touching the "resolution scaling threshold' slider.
2. Multithreaded shader pipelines were added to the emulator which vastly improves the first-time playthrough experience when a shader cache has not yet been generated. In some games there is no graphics pop-in when using a good CPU. The PR implementing this functionality can be found [here.] In case you missed it, there was a short video showcasing the before and after at https://youtu.be/8FTQgFT6Znw
3. Fixed a long-standing MSAA bug for RDNA graphics cards where graphics would render as wireframe with heavy artifacts.
4. Fixed a Z-buffer regression that had been around for a long time that affected multiple games such as Kingdom hearts series, One piece, Yakuza, Black Ops III, etc
5. Minor fixes and improvements for debug utilities such as fixing the debug overlay when using OpenGL, Fixing RSX capture replay crashes and others.
One major improvement I have been working on and is now up on github (to be merged soon) is a general streamlining of the shader decompiler pipeline to remove unnecessary work. This results in a small performance boost but also helps to separate different workloads instead of lumping it all together. The pull request is still not in mainline builds yet, but internal testing has been good so far. This work can be seen [here.]
From the short-term roadmap I outlined in the last update, I plan to check out the surface cache inconsistency issue where enabling 'Read color buffers' or 'Read depth buffers' seems to cause different behavior in the emulator that should not happen. This is a major issue that may require some re-architecting. Once that is solved, I will go ahead with general maintenance cleanup in preparation for the minor novelty updates that are added every year around the holidays such as nicer native UI features as well as polishing up 3DTV support.
Thank you all for your continued support.
Regards,
kd-11
Comments
Thank you for the work you do!
Mister Cletus
2020-12-07 17:17:38 +0000 UTCNice work! keep it up with those impressive updates, and thank you for listening to the RPCS3 users! and help us with PRs that really makes the difference!
Josivan Pedro da Silva
2020-12-07 15:31:19 +0000 UTC