Unified shader model

From Wikipedia, the free encyclopedia
Jump to: navigation, search
The unified shader model re-uses some of the units defined by the graphics pipeline. It is of course the algorithm used for the Rasterisation (i.e. a certain way to do the rendering) that dictates, the most effective pipeline.

The Unified Shader Model (known in OpenGL as simply "Unified Shader Model," known in Direct3D 10 as "Shader Model 4.0"), uses a consistent instruction set across all shader types (geometry, vertex and pixel shaders).[1] All shader types have almost the same capabilities - they can read from textures, data buffers and perform the same set of arithmetic instructions.

However, the instruction set is not completely the same between different shader types - for example, only the fragment/pixel shader can read textures with implicit coordinate gradients; only the geometry shader can emit extra rendering primitives and so on.[1]

Early shader models (such as Shader Model 1.x) used very different instruction sets for vertex and pixel shaders, with vertex shaders having much more flexible instruction set. Later shader models (such as Shader Model 2.x and 3.0) reduced the differences, approaching Unified Shader Model.

Unified Shading Architecture[edit]

Unified Shading Architecture is a design by which all computational units of a piece of graphics hardware are designed to handle any type of shading tasks. While Unified Shading Architecture and Unified Shader Model are not a requirement for each other, this type of design is most sensible when designing hardware intended to support Unified Shader Model.

Most often Unified Shading Architecture hardware is composed of an array of computing units and a dynamic scheduling/load balancing unit that distributes shader work to the computing units.

OpenGL 3.3 level hardware can still have dedicated vertex, geometry and pixel processors (although because of very similar ISA, they would be quite similar on hardware level). A technologically earlier (e.g. Shader Model 3.0) hardware can also have unified architecture, as is the case with Xenos graphics chip in Xbox 360, for example.

Unified Shader Architecture allows more flexible use of the graphics rendering hardware.[2] For example, in a situation with a heavy geometry workload the system could allocate most computing units to run vertex and geometry shaders. In cases with less vertex workload and heavy pixel load, more computing units could be allocated to run pixel shaders.

The unified shading architecture was introduced with the Nvidia GeForce 8 series, ATI Radeon HD 2000, S3 Chrome 400, Intel GMA X3000 series, Xbox 360's GPU, Qualcomm Adreno 200 series, PowerVR SGX GPUs and is used in all subsequent series.




  1. ^ a b "Common Shader Core (DirectX HLSL)". Microsoft. Retrieved 2008-08-17. 
  2. ^ "GeForce 8800 GTX: 3D Architecture Overview". ExtremeTech. Retrieved 2013-11-10.