Unity has ability to use DirectX 11 and OpenGL Core graphics APIs, with all the goodies that you expect from them: compute shaders, tessellation shaders, shader model 5.0 and so on.
This option is on by default (i.e. on Windows, your games and editor will try to use DX11, and fall back to DX9 when not available). To enable DirectX 11 for your game builds and the editor, set “Use DX11” option in Player Settings.
NOTE: DX11 requires Windows Vista or later and at least a DX10-level GPU (preferably DX11-level). Unity editor window title has “<DX11>” at the end when it is actually running in DX11 mode.
This option is on by default for Mac and Linux (i.e. on these platforms, your games and editor will use OpenGL Core.
You can enable OpenGL Core on windows and make it default, by going to the Player Settings, unchecking “Auto Graphics API for Windows”, and adding OpenGL Core to the list. You can then drag OpenGL Core to the top of the list if you would like it to be the default.
NOTE: OpenGL Core minimum requirements:*
Compute shaders allow using GPU as a massively parallel processor. See Compute Shaders page for mode details.
Surface shaders have support for simple tessellation & displacement, see Surface Shader Tessellation page.
When manually writing shader programs, you can use full set of DX11 shader model 5.0 features, including geometry, hull & domain shaders.
Currently some parts of surface shader compilation pipeline do not understand DX11-specific HLSL syntax, so if you’re HLSL features like StructuredBuffers, RWTextures and other non-DX9 syntax, you have to wrap it into a DX11-only preprocessor macro. See Platform Specific Differences page for details.
The following screenshots show examples of what becomes possible with DirectX 11 / OpenGL Core.