Unified shader model

From Wikipedia, the free encyclopedia
  (Redirected from Unified Shader Model)
Jump to: navigation, search
The unified shader model uses the same hardware resources for both vertex and fragment processing.

The Unified Shader Model (known in OpenGL as simply "Unified Shader Model,"[citation needed] known in Direct3D 10 as "Shader Model 4.0"), represents a form of shaders where all shader stages in the rendering pipeline (geometry, vertex, pixel, etc) have the same capabilities. They can all read textures and buffers, and they use instruction sets that are almost identical.[1]

The instruction set is not completely the same between different shader types; different shader stages may have a few distinctions. Fragment/pixel shaders can compute implicit texture coordinate gradients, while geometry shaders can emit rendering primitives.[1]

Early shader abstractions (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 hardware design by which all shader processing units of a piece of graphics hardware are capable of handling any type of shading tasks. Most often Unified Shading Architecture hardware is composed of an array of computing units and some form of dynamic scheduling/load balancing system that ensures that all of the computational units are kept working as often as possible.

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.

While Unified Shading Architecture hardware and Unified Shader Model programming interfaces are not a requirement for each other, a unified architecture is most sensible when designing hardware intended to support an API offering a Unified Shader Model.

OpenGL 3.3 (which offers a unified shader model) can still be implemented on hardware that does not have unified shading architecture. Similarly, hardware that supported non unified shader model APIs could be based on a unified shader architecture, as is the case with Xenos graphics chip in Xbox 360, for example.

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.

Nvidia

ATI/AMD

References[edit]

  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.