Status update from kd-11 (2020-06-14)
Added 2020-06-14 16:32:13 +0000 UTCHi,
It's kd-11 with another update for RSX emulation in the RPCS3 emulator.
A lot of progress has been made in the past 3 weeks. The initial plan as was explained in my last update is to separate bug fixes (maintenance), features (enhancements) and optimizations and focus on one of these tasks at a time. I have been doing bug fixes for the past 5-6 weeks now and it has been very rewarding in terms of finding core problems and solving them. I had planned to stop bug fixes after no more than 4 weeks, but I have decided to extend this development phase by another 4 weeks as I have been discovering some of the old and forgotten bugs hold the key to fixing more complex issues and should not be ignored or rushed.
A summary of the work that has been done in the past 3 weeks is as follows:
1. Stencil buffer clear operations with write masking was implemented for Vulkan. This feature is easily supported with OpenGL, but Vulkan requires custom shader passes to simulate the same effect. This fixed shadow rendering in Sly 3.
2. Fixed a blit engine bug caused by subpixel addressing used in some games. This is a common problem where an image is being downsampled and the final result requires contribution from several pixels in source, e.g a 2x2 texel grid can be downsampled into 1x1 (50% scaling on each axis). If any texel in the 2x2 grid is referenced, they all have to be taken into account, not just the ones passed to blit engine. Fixes some minor scaling artifacts in some games like IDOLM@STER: OFA.
3. A bug introduced with format remapping investigation was fixed. This restored rendering in God of War 3 and Motorstorm games.
4. Stippled rendering was implemented. This feature is used by some old PS2 to PS3 ports that use mesh transparency, such as MGS2 which uses it to render water effects.
5. Improved surface cache resource management to avoid running out of memory when using higher resolutions. Fixes many games that would commonly run out of VRAM such as heavenly sword and GT5.
6. Improved shader decompiler to identify and ignore invalid writes which fixes many graphics issues in the Motorstorm engine such as flickering terrain and broken motion blur.
7. Fixed some spec violations when using vulkan that caused GT5 to crash if antialiasing is enabled.
8. Did some reverse engineering to identify how source clamping is supposed to work on RSX which led to a major find that fixed dozens of games. You can see the pull request and games fixed [here.]
9. Improved OpenGL shader decompiler to make it compatible with Mesa's glthread option. Mesa OpenGL driver is very competent and with this driver option enabled performance is close to Vulkan so it is worth maintaining compatibility.
10. Implemented signed normalization of texture data. This critical feature fixes dozens of Unreal Engine 3 titles as well as other games. You can see the pull request and games fixed [here.]
11. Fixed a bug with surface configuration that broke visuals in MGS3 when antialiasing is enabled which is required for some special effects such as transparent glass. This work is still in progress at the moment.
There are now less than 10 confirmed RSX bugs left that are older than Jan 1 2020. While some may not be easily fixable, I believe another few weeks of this will significantly reduce the number of games with graphics glitches or odd performance problems caused by RSX.
Thank you all for your continued support.
Regards,
kd-11
Comments
I was so happy and excited when I discover Killzone 2 and Resistance 2, the very first 2 games that got me to buy my PS3, is now rendering correctly and I can finally see them in gorgeous 4K. This project is awesome and definitely deserves more love and support, so I joined Patrion because of it. Keep up with the good work and look forward to future excitements.
dachao li
2020-06-16 08:55:42 +0000 UTCThank you KD-11! those fixes are what users was waiting for! I really appreciate that
Josivan Pedro da Silva
2020-06-16 00:29:03 +0000 UTC