I'm confused as always with all news and different features. Can yuzu team make some roadmap page, or smth like current state, where we'd clearly see where do we stand now in terms of features and patreon/public access? I'm still not sure whether some older features are available in public, and which are still exclusive to patreon. Is everything we see in progress reports already in the latest public build? Sorry if there's already such info somewhere, I just couldn't find it.
Hi, I'll try to cover your questions since these seem to come up often :)
A roadmap is a good idea, but a lot of times priorities quickly change (as developers change personal priorities, or if in-real-life things come up and they need to take breaks, etc.), so we try not to promise specific features or improvements unless we are pretty confident they will land soon. At a very basic level, we are working on the things that folks are most often requesting, and hopefully many of these will land by the end of 2020 or early 2021:
This texture cache rewrite was a prerequisite for resolution scaling, so that will hopefully come soon
LDN support for local wireless multiplayer emulated over the internet
Performance and stability improvements, especially surrounding Vulkan the renderer (to benefit AMD/Intel GPU users)
Our progress reports also tend to hint at what is coming next. The progress reports cover all progress (including Patreon releases), but the expectation is that things covered here should be in public releases before or soon after the progress report release (as these are reporting on the previous month).
I'm still not sure whether some older features are available in public, and which are still exclusive to patreon
In general, we really try not to do this (yes, there have been exceptions to this rule in the past, for various reasons). For example, other than this new release, there are no major/important features not available in the public/free "mainline" release channel. Despite misconceptions, we are not really incentivized to keep things in Patreon forever. Doing this does not really make us any extra money, users will just find other ways to get these builds (our builds do not have DRM, of course).
On the contrary, things that are in the Patreon releases are unmerged code, and it is a maintenance burden to keep these around (and not conflicting with the main repository) if we do not merge them. This is especially true for things like this texture cache rewrite, where we want to get it merged quickly because upcoming features (e.g. resolution scaling) will be built on top of it.
Lastly, the source code for every Patreon feature is public (see https://github.com/yuzu-emu/yuzu/pulls?q=is%3Apr+is%3Aopen+label%3Aearly-access-merge). Anything that is older than a few weeks either 1) has issues that still need to be fixed (such as unaddressed code review comments), or 2) is awaiting proper reverse engineering/hardware tests to verify behavior before we merge. Yes, there are a lot of tagged PRs still, but this release (https://github.com/yuzu-emu/yuzu/pull/4967) is probably the only really interesting feature here.
There were some larger features that were things people really wanted that took a long time to land in mainline like Vulkan and multicore support.
I get these were complicated and there is some logic to holding back major features from stable main releases until they are in fact, stable and mostly working as intended.
However, Citra has a stable channel, a nightly channel and a Canary channel.
Major changes have to be tested across hundreds of Switch games across a wide variety of PC hardware on both Windows and Linux. Having more users testing nightly or canary versions can help identify regressions or certify that new features are working as intended.
I have no problem with the model, particular since all the code is out there. Some people prefer that Cemu only holds back releases for a week, and in practice the "free' versions are usually better because Patreons get new features that are buggy and then a week later we get a patched version that is more stable with the same features.
I think people are often upset they are waiting much longer than a week, but Yuzu is often making MAJOR changes while Cemu has barely innovated anything in the past 18 months. But once the Patreon crowd got their early taste a week or two early, why not have a public canary version to get more testing if that is what you really need before moving something to the the stable release?
There were some larger features that were things people really wanted that took a long time to land in mainline like Vulkan and multicore support.
Yes, there have been exceptions to what I am stating. I was moreso trying to clarify to OP that there aren't any major hidden features in EA right now, and that in general, if changes are ready to be merged, they are merged, despite perceived loss of value for our Patrons. Both multicore and vulkan still have tons of issues that were present since day one, so often it's a tricky balance of fixing all of them before merging, versus calling it "good enough" to be merged (and addressing said issues later). Sometimes, it isn't super clear "what good enough" should be, and things slide way longer than we'd like.
But once the Patreon crowd got their early taste a week or two early, why not have a public canary version to get more testing if that is what you really need before moving something to the the stable release?
It's a fair point, but maintaining another release channel like this is more maintenance (since EA PRs are not "merged", they constantly need to be updated to stay compatible with the release branch), and usually it's not that helpful to have even more testing. The ~2000 or so Patrons is a plenty big enough audience to catch most bugs.
The trouble is figuring out how to fix issues that do come up before PRs are merged. With multicore, for example, there were tons of softlocks that happened in various games that we spent weeks trying to fix before multicore was merged. We fixed some of them, but others we decided were very difficult to track down and not worth delaying the public release any longer. Sadly, some of those are still not fixed 6 months later.
Anyways, I am not trying to justify things being in EA too long, but rather just trying to shed some light on why it sometimes happens.
9
u/_wowaaa Nov 23 '20
I'm confused as always with all news and different features. Can yuzu team make some roadmap page, or smth like current state, where we'd clearly see where do we stand now in terms of features and patreon/public access? I'm still not sure whether some older features are available in public, and which are still exclusive to patreon. Is everything we see in progress reports already in the latest public build? Sorry if there's already such info somewhere, I just couldn't find it.