Tiers in GraphicSettings

We have low, medium and high tiers in graphic settings.

How is a tier selected at runtime for each platform? The only sentence the docs have about this is that a tier is automatically detected by the GPU.

How is this selection done? Which devices fall into which tier? What are the rules? How are we supposed to know which devices go into which tiers so we can use this feature?

Thanks!

4 Likes

This has been asked and never answered in places such as:

and

and

and then Alexy mentioned one brief nugget of info here - a hint at a whisper of maybe the start of an actual answer:

…but then it fell silent again.

Hi Claytonius,

Tier 1:
Android - all devices that have support for OpenGL ES 2 only
iOS - all devices before iPhone 5S (not including 5S, but including 5C), iPods up to and including 5th generation, iPads up to 4th generation, iPad mini first generation
Desktops: DirectX 9, HoloLens

Tier 2:
Android - all devices with OpenGL ES 3 support
iOS - all devices starting from iPhone 5S, iPad Air, iPad mini 2nd generation, iPod 6th generation
AppleTV

Tier 3:
Desktops: OpenGL, Metal, DirectX 11+

I will update the documentation as well.

28 Likes

@aleksandrk Thank you very much!

About Vulkan?

Vulkan for desktops is in Tier 3, obviously.
Vulkan on Android is Tier 2.

2 Likes

The tiers don’t make any sense… Was this something we couldn’t do with code before?

I feel like these platforms should be listed in the Graphics Settings UI somewhere.

1 Like

No, I don’t think this informations belongs to the UI.
Especially since it’s possible to override the current tier from the scripts.

@aleksandrk What tier would web assembly builds fall under? Thanks

@douglassophies Tier 2

From what I’ve heard, this tier system is pretty much automatic depending on hardware. This isn’t graphics level, which is what you’d put on your game’s option gui :slight_smile:

You can set the current tier from scripts:

2 Likes

So Unity still supports DX9? I actually thought it was completely scraped.

It wasn’t in effect yet at the time I wrote this.

1 Like

Can you please tell me if this is correct?

Id like to enable Cascaded Shadows on iPhoneX - i think it can handle it.

In GraphicsSettings uncheck ‘UseDefaults’ for Tier 3 and check ‘Cascaded Shadows’ so its available for tier 3
Then to i add a script that will detect when it is an iPhone X and change the graphics Tiers?

Something like:

deviceID = SystemInfo.deviceModel;
if(deviceID == "iPhone10,3 " || deviceID == "iPhone10,6"){
// This is an iPhoneX
//now change the graphics tier to tier 3
Graphics.activeTier = GraphicsTier.Tier3
}

And i guess I would put this at the start of the game? Or could i use it at anytime to enable or disable Tier 3 at will?

1 Like

Yes, something like this. Just keep in mind that “Changing this value affects any subsequently loaded shaders”, so you have to do that before any shaders are loaded.

2 Likes

Thank you. I can put the code at the start of the game before i load the main scene. I thought that shaders were compiled at the stat while the game loads so will it still affect the shaders? Anyways i think cascade shadow dont have anything to do with shaders, is that correct? so i guess it wouldnt matter?

Do i have to change the graphics tier each scene? Or can i just change it once at the start, and it will stick for the rest of the game?

BTW the tiers are working - i have HDR enabled on iPhone XS with this - thank you