March 2019 Progress Update (Patreon)
Content
Good day Patrons!
Today we've got several really exciting updates to share with you all. First and foremost, before we get into the good stuff, we just wanted to say thank you for supporting us! We truly appreciate each and every one of you. So with that, let's get into it.
First, over the next few weeks, we will be releasing more posts that help break down the communication wall and give you guys more information as to what's going on behind that curtain. That means we're going to be letting you guys know what some of our dedicated developers have been cooking up, what their plans are, and where they're headed in yuzu's future.
Second, our amazing dev bunnei has been hard at work on several HUGE improvements, which include:
Completely rewriting the asynchronous GPU implementation. Now, we synchronize the CPU and GPU less often, but more consistently. This makes the whole process faster, and in turn has some major effects. For one, it fixes the physics in Breath of the Wild, as well as increases the games performance dramatically. It also fixes several performance regressions you may have noticed in games like Super Mario Odyssey, Puyo Puyo Tetris, and several other games.
Completely rewriting our GPU Virtual Memory Manager. Previously, our GPU memory manager was just a wrapper around the guest CPU address space. Instead, we use a page table and memory manager design similar to the CPU. This allows for faster lookup, and will allow us to more accurately emulate the GPU memory layout.
Updated the rasterizer cache mechanisms to use host address for cache keying instead of guest CPU address. Using the CPU address for cache keying was made necessary by the design of our old GPU VMM (above), but does not make a ton of sense from a design perspective. Using host address is equivalent for our purposes, and allows us to avoid tons of unnecessary GPU-to-CPU address translations. In short, this increases performance for the emulator as a whole.
Phew, so that takes care of all the amazing things he's been working on. Which brings me to the last update we have for you guys, and we have a feeling it will be your favorite one. This weekend (and the weekend is running out, so perhaps in the next 24 hours...) we are releasing our second Patreon build, which will feature all of the amazing new implementations we just mentioned!
We're looking forward to sharing it with you all and getting your feedback on our Discord.
We could think of no better way to thank our supporters than to have them be part of the process. Stay tuned this weekend for when the Patreon build drops!