Sparse Textures
CullingGroup API

Graphics hardware capabilities and emulation

The graphics hardware that ultimately renders a Scene is controlled by specialised graphic programs called Shaders. The capabilities of the hardware have improved over time in phases, and the general set of features that were introduced with each phase is known as a Shader Model. Progressive Shader models have added support for longer Shader programs, more powerful branching instructions and other features, and these improvements have enabled parallel improvements in the graphics of games.

Unity supports emulating two Shader models: Shader Model 2 and Shader Model 3. The graphics cards that implement each model are listed below.

Shader Model 2

  • NVIDIA cards since 2003 (GeForce FX)
  • AMD cards since 2004 (Radeon 9500)
  • Intel cards since 2005 (GMA 900)
  • All mobile
  • All consoles

Shader Model 3

  • NVIDIA cards since 2004 (GeForce 6)
  • AMD cards since 2005 (Radeon X1300)
  • Intel cards since 2006 (GMA X3000)
  • All mobile
  • All consoles

Additionally, some graphic effects used in Unity (in the Image Effects, for example) might also require other graphics features, such as depth textures or compute shaders.

Depth texture support

  • PC: Generally all GPUs made since year 2006.
  • Mobile: OpenGL ES 3 and Metal support depth textures. When using OpenGL ES 2, depth textures may or might not be supported, depending on exact GPU/OS version.
  • Consoles: All consoles support depth textures.

Compute shader support

  • Windows: When using DX11 or DX12, and the GPU supports DX11 feature set. Generally all GPUs made since year 2010 support it.
  • Mac: Compute shaders are not supported.
  • Linux: Supported when using OpenGL Core 4.3 or later (requires OS and GPU support).
  • Mobile: Supported when using OpenGL ES 3.1 / 3.2 on Android.
  • Consoles: PS4 and Xbox One support compute shaders.

Shader model emulation

Unity allows you to render your game using an inferior Shader model to the best that your graphics card offers. This is useful during development to see how the graphics will look on an older machine.

To choose the Graphics emulation level, go to Edit > Graphics Emulation on the menu. Note that the available options change depending on the platform you are currently targeting in the Build Settings. For desktop machines, Shader Model 2 and Shader Model 3 will appear as emulation options, while on mobiles, you can only choose OpenGL ES 2.0. You can restore the full capabilities of your hardware by choosing No Emulation. If your development machine doesn’t support a particular shader model then it will be hidden on the Graphics Emulation menu.

Although emulation is a quick way to check out graphics capabilities, you should still test your game on actual hardware. This will reveal real performance and any peculiarities of the specific graphics card, operating system or driver version.

Sparse Textures
CullingGroup API