We do often include affiliate links to earn us some pennies. See more here.
So, a lot of people were excited about Unity adding in their new and much more modern OpenGL system. The sad news is that it won't give as big a performance boost as we were hoping. It's not all doom and gloom though, far from it in fact.

I had a chance to speak to Aras Pranckevičius who works at Unity as a "Rendering plumber", who told me that the old OpenGL system and new OpenGL system will perform around the same, as they are not using the AZDO stuff (approaching zero driver overhead).

As for what the new system can do:
QuoteNow, the new backend can do mobile (GLES2.0 & 3.0) & desktop (GL3.2 - 4.5). It can not go below GL3.2 on desktop; in theory we could but in practice there's probably very little (if any) reason.

That by itself allows a Unity game developer to use more features (geometry shaders, tessellation shaders, compute shaders, random-write textures, atomic instructions in shaders etc.) but all by itself does not result in any better performance. Still, more features is always nice, essentially on GL4 one can do everything that DX11 can (except for Mac, which can not do compute shaders since it does not have GL4.3).


About performance improvements:
QuoteOnto AZDO and all the fancy modern GL features that could result in more performance. I think we use some of them (e.g. GL4.5 direct state access -- from what I heard it improves performance a bit, but not some magic speedup), but certainly don't go full AZDO route everywhere. The reasons are many; ranging from driver stability issues to "yeah AZDO means you have to write all your shaders differently" to "developers are busy doing other things right now". e.g. Unity 5.3 has quite some cross-platform graphics optimizations that actually have nothing to do with OpenGL (or any graphics API at all), due to reworked ways of how we generate particle systems geometry for example.

So, you can get better performance, but this isn't a magic bullet. I understand why they can't simply use it now, due to it working with all the other components of Unity.

Performance (continued):
QuoteGiven that we did not start "let's do a massive AZDO change!" thing yet, and that Vulkan seems to not be too far away, I'm actually wondering if it's worth doing in general. We do some of it, but in a more cross-platform/API way and not specifically tying the whole engine into GL4.5 mode of operation.

The only time it would be really that worth it, is if Vulkan wasn't coming. Since it is, and Unity will eventually get a Vulkan path in for Linux games, it does seem a little pointless. Especially as AZDO would only affect brand new games, and developers would really have to know what they are doing.

The Unity developers are planning CPU optimizations for Unity 5.4 or 5.5, which sounds like it really will help and it will work like this:
Quote> D3D12, Vulkan, Metal, PS4 etc. -- get "native" multi-threaded rendering support. We fill API command buffers from all threads, and then just kick them off.
> D3D9, OpenGL, old consoles -- get "emulated" multi-threaded. We do our side of CPU rendering logic on all possible threads, write commands into our own command buffer, and have one thread "replay" the commands to the actual graphics API.


Only recent Linux games built with Unity started using two threads:
QuoteCurrent versions of unity have "dual thread" rendering, where there's one thread creating graphics commands and another replaying them to the graphics API. We've had that for a long time, but on Linux OpenGL it was only enabled fairly recently, mostly due to a stupid oversight (I forget whether that was Unity 5.1 or 5.2).


A short summary of all this:
QuoteSo that GL4 backend that was in Unity already, but now is the default - it allows using tessellation & compute and stuff, but don't expect magical unicorn performance just by upgrading to 5.3


This leads me to one thing: Vulkan. We need it, Unity would be much better for us with it, and I hope it's released soon.

You can find what Unity has in store on their roadmap. I would like to thank Aras for taking the time to speak to me, it is much appreciated. Article taken from GamingOnLinux.com.
Tags: Editorial, Unity
0 Likes
About the author -
author picture
I am the owner of GamingOnLinux. After discovering Linux back in the days of Mandrake in 2003, I constantly came back to check on the progress of Linux until Ubuntu appeared on the scene and it helped me to really love it. You can reach me easily by emailing GamingOnLinux directly. Find me on Mastodon.
See more from me
The comments on this article are closed.
15 comments
Page: «2/2
  Go to:

dubigrasu Dec 9, 2015
Quoting: Creak
Quoting: dubigrasuAll shadows are still there, only this time they are soft shadows instead of hard shadows, so harder to notice.
Yep (some shadows are better indeed), but it definitely needs some tweaking because it seems that some NPCs are floating above the ground.
That's true, but I remember seeing this on Unity 4 too. Is more obvious now unfortunately.
I also think they went too far with softening the shadows, you can barely see them sometimes.
lvlark Dec 10, 2015
Quoteand that Vulkan seems to not be too far away and that Vulkan seems to not be too far away
Does this imply that Vulkan support on Unity isn't too far away? Which would be awesome since they've never elaborated on their Vulkan support, afaik.
tuubi Dec 10, 2015
View PC info
  • Supporter
Quoting: lvlark
Quoteand that Vulkan seems to not be too far away and that Vulkan seems to not be too far away
Does this imply that Vulkan support on Unity isn't too far away? Which would be awesome since they've never elaborated on their Vulkan support, afaik.
Aras P, the Unity employee whose words you just read, was Unity's representative at Khronos when they designed Vulkan. Might be safe to assume that Unity will be an early adopter, along with UE4 and Source 2. And or course DICE's engine, whatever it was called.


Last edited by tuubi on 10 December 2015 at 3:46 am UTC
tuubi Dec 10, 2015
View PC info
  • Supporter
Quoting: GuestI'm sure they'll be ready shortly after it's released of course, but I wouldn't expect day one support.
Naturally. And even if they had day one support in the engine, I guess it would take some time for games to make use of it. But at least we might not need to worry about seeing a half-assed Vulkan backend in Unity, as they have already invested in the technology by getting involved in the design process.
OlDrunk Dec 10, 2015
I hope this will at least cut down gfx and lighting issues I've noticed with some linux Unity ports
While you're here, please consider supporting GamingOnLinux on:

Reward Tiers: Patreon. Plain Donations: PayPal.

This ensures all of our main content remains totally free for everyone! Patreon supporters can also remove all adverts and sponsors! Supporting us helps bring good, fresh content. Without your continued support, we simply could not continue!

You can find even more ways to support us on this dedicated page any time. If you already are, thank you!
The comments on this article are closed.