Previous Post

Status update from kd-11 (2020-03-15)

Next Post
no preview
DESCRIPTION

Hi,

It's kd-11 with another RPCS3 development update.

Over the past 3 weeks, a lot has changed in RPCS3 code. From new features being supported such as 3D to fixing the notorious MTRSX bug that caused hanging. A quick summary of the major changes includes:

ZCULL queries were restructured, fixing the last known bugs in this subsystem. The sun is no longer shining indoors in Dark Souls and Alien Isolation. Peformance was also improved slightly.

An AMD driver bug was isolated and a workaround implemented. I'm still in the process of properly documenting this problem so that the driver team can look into it. Fixes some games that were misbehaving only one AMD hardware with the proprietary driver.

Video configuration utility was updated with more features including adding mode change routines to detect when games attempt to change display resolution. This was crucial for implementing the next item on the list...

Stereoscopic 3D was implemented. The core work is completed with a basic anaglyph filter to manage output. True framebuffer 3D and possible VR-compatible output is coming soon.

The async decompiler was improved to avoid missing some shaders that are used only once in a game's lifetime. Previously, such shaders would always be reported as missing causing glitched graphics. Affected games include TLOU and Ridge Racer 7.

Fixed the MTRSX deadlock that had not been resolved as of the end of the maintenance window in Jan-Feb. This makes the option usable again for users with powerful hardware.

Fixed the R&C ToD regression that was not fixed during the maintenance window. This essentially closes all major RSX issues that required analysis during the maintenance period.

Vulkan memory management was improved. Most games will now use only as much memory as is required to render what is on screen and avoids running out of video memory. While some related minor bugs remain, this opens up higher resolutions for low to mid-range graphics cards.

In addition to this, there is one more major change that is of tangible benefit to most users. Vulkan renderpass scopes were restructured to allow the GPU to batch as many draw calls as possible on its own. This resulted in a big performance improvement in GPU heavy games. This feature was attempted before but failed to work correctly, mostly because of how vulkan renderpass scopes interact with other commands. Basically, you have to open a pass to draw, but if you want to do any other kind of work, it has to be closed correctly or the driver will crash. This delicate behavior made it so that RPCS3 would close all open passes whenever drawing was completed, even if there were many other related draws in the queue. The solution is to restructure and keep the passes open whenever possible, since the GPU can handle draws batched into one scope much more efficiently. Some of the foundation for this work was done in 2019, making it the right time to attempt to implement this feature again. The gains are very tangible, going over 25% in some games. You can follow this work [here.] 

So, what's next? Sticking with the roadmap, I shall continue working on the shader decompiler subsystem for the near future, together with finishing 3D integration. Work on improving the decompilers already started with the async decompiler receiving attention first, but the ubershader integration is the main challenge here. Hopefully I'll have more to report on that by the next patreon update.

Thank you all for your continued support.

Regards,

kd-11

Nekotekina PATREON 7 favs
VIEWS1
FILES1 file
POSTEDMar 15, 2020
ARCHIVEDJun 10, 2026