One of my main issues with unity of late is it’s seems consistently behind the latest trends when it comes to rendering features. Namely things like DLSS took a long time to be added to HDRP resulting in games like Lego Builders Tale launching without the feature despite really needing it for Raytracing. Meaning people who streamed the game when it launched couldn’t do so to the games full potential.
Now DLSS3 is on the horizon, FSR 2.0 is public, and XeSS is appearing in many old and new games just this week.
Developers update their older games with these features to give them new life. But so far Unity hasn’t added these features and likely won’t until 2023 long after these features are established. Meaning a lot of indie games that don’t have graphics programmers on hand can’t add these features when they’re most talked about.
And it’s not just those features it’s also things like TAA, HDR, Raytracing, which many games add at least a bare minimum to earn some users purchase even if it’s only Reflections or Sun Shadows. These are minor but do make for a solid update post.
As a URP dev, being left out of these features that could be perfectly reasonable for a URP game (DLSS/XeSS has benefits beyond performance as better TAA alternatives) makes me feel like I’m missing out of current trends.
What’s Unity’s plan for more quickly adopting these features? And does the merging of URP and HDRP workflows or cohabitation relate to that?
Additionally, how seamless is that transition between URP and HDRP intended to be? If some features still aren’t destined for URP for some time I would consider using this feature. But I’m concerned this change will result in a need to rename a lot of shader functions and reauthor things. It’s not too much of a problem but does require planning.
Also I do want to add that it seems like at the current time FSR 2.0 and XeSS are more important features than TAA because IMO they replace TAA entirely across the board. In all visual appearance, performance, and platform viability.
It might not make sense to use TAA on the phone but FSR 2.0 is absolutely viable while looking better.
I saw a reply that said they’re looking to feature completion on URP, but I would be fine if TAA was ignored for FSR and XeSS.
Just sayin
Consistently each benchmark and visual demo just makes it clear TAA is on it’s way out.
To add upon the points about faster integration of upscaling technology, FSR 2.1 is already released It's time to upscale FSR 2 even further: Meet FSR 2.1! - AMD GPUOpen
All 2 (3) GPU vendors are going to improve these more and more so I think it would be really great to not just include them very early on, but potentially also in a way that it could be upgraded without having to upgrade the entire Unity install. As was pointed out, a lot of indie games don’t have graphics programmers on hand and the SDK updates can often provide big improvements but might not be as simple to add yourself. So if FSR2.1 would be in a later LTS version than FSR2.0 for example, then the entire game would require a version update which isn’t always possible. Could this be tied to the SRP version so in the future we could update the package and not have to worry about switching to a newer LTS perhaps?
URP need to run on a large number of platform, many of them will not support the mentionned features. The current focus of URP team is to get a performant and solid URP with builtin parity for as much platform as possible. Resources are limited. A tech like DLSS isn’t a plug and play and require significant modification of the internal architecture + QA + Testing + maintenance.
In addition those techs are not developed internally, they have overhead compare to other developments (Legal, Partner relation, support etc.). And it is different process for each of the those tech.
Sure but it’s not like every current URP feature is reasonable or compatible on mobile. TAA isn’t often used on mobile despite support. Plenty of assets note missing functions on phones as the reason something like a volumetric sky asset won’t work.
Sure I know DLSS isn’t compatible, but FSR 2.0 may work on a phone or at worst a fall back to 1.0 which is already supported. We know there’s vulkan support at minimum.
Even if URP desires parity with builtin, people would expect builtin to have at least one solution by now.
One of the things that makes the Unreal pull so bad, is that in the same breath a new feature is talked about its already compatible with unreal. Like the FSR 2.1 post above, I didn’t even know it was a feature, but it’s already on Unreal.
If that logic is consistently applied to URP by the Unity team going forward (that URP must be a lowest-common-denominator system forever), then HDRP suddenly looks interesting for the first time to me.
Is this Unity’s policy going forward? (That if something won’t work on all 25 platforms, then URP won’t offer it at all?)
Not exactly. URP needs to run on all platforms, needs to have the absolute best performance and quality on mobile and untethered XR, and be very extensible. It’s needs to be a highly scalable render pipeline.
Ideally features do scale to all platforms. However, we can still add features that run on only a specific set of platforms. We then require a good fallback when a feature is not supported for scalability. In general for URP, features that are impactful for mobile and untethered XR will have a higher priority.
As Seb mentioned, our current top priority for URP is functional parity with BiRP. Once that is complete (we’re almost there), we’ll have much higher velocity in adding the latest features. Additionally, we’ve spent a lot of time on the URP foundation and that will soon start to pay off in terms of additional velocity.
Well I hope you guys hit that goal soon. At the very least by 2023 LTS.
If stuff like DLSS3 takes off like I think it will no amount of standard performance improvement will compete when in two years people can easily get 120FPS with a simple toggle.
It’s very cool stuff that is in the pipeline and I’m excited to see the progress. Hopefully parity with BiRP will happen smoothly and very soon and thanks for the answers.
Still would be awesome to just have these features as an option, even if just in the HDRP so at least the option is there when you use Unity without having to somehow add it yourself (where I’m not even sure if that’s possible since I’m not a graphics programmer)
URP being restricted to work on every platform on earth has been really frustrating - what if we want a feature that is more expensive, and shouldn’t be run on mobile? It seems like it would make sense to just label it as “not for mobile” than make it take 5 times longer + make the feature boiled down to work on every device.
So I’m glad this is at least being considered. It’s mentioned a feature like this could be added, but I’m not sure if URP has a single feature that is like that, other than more core stuff like compute shaders. (And I don’t think anything in URP actually uses compute shaders??? I could be wrong there)
If only there was a way to have a single platform with features that could be turned on or off, depending on your needs. It’d be crazy if Unity had one of those.
While that is cool, a user made implementation will lag behind new releases, FSR 2.2 seems to be a thing that Microsoft implemented in Forza now and it’s not even mentioned on GPUOpen yet.
I’m certain that amd/nvidia/intel would be more than willing to have unity be one of the companies with early access to have it ready to be released the moment its done. But will keep an eye on your implementation in the meantime
I’m sure amd/nvidia/intel would, however, somehow Unity (and Unreal for that matter), don’t sell their engine better by keeping FSR up to date. They sell it more by doing thousands of things, and apparently FSR is not a priority.
I believe the difference between FSR 2.1 and 2.2 is not big in implementation sense, so depending on when they opensource it, it might even make our first release.