In the field of
3D computer graphics
3D computer graphics, or “3D graphics,” sometimes called CGI, 3D-CGI or three-dimensional computer graphics are graphics that use a three-dimensional representation of geometric data (often Cartesian) that is stored in the computer for t ...
, the unified shader model (known in
Direct3D 10 as "
Shader Model 4.0") refers to a form of
shader
In computer graphics, a shader is a computer program that calculates the appropriate levels of light, darkness, and color during the rendering of a 3D scene - a process known as ''shading''. Shaders have evolved to perform a variety of speci ...
hardware in a
graphical processing unit
A graphics processing unit (GPU) is a specialized electronic circuit designed to manipulate and alter memory to accelerate the creation of images in a frame buffer intended for output to a display device. GPUs are used in embedded systems, ...
(GPU) where all of the shader stages in the rendering
pipeline
Pipeline may refer to:
Electronics, computers and computing
* Pipeline (computing), a chain of data-processing stages or a CPU optimization found on
** Instruction pipelining, a technique for implementing instruction-level parallelism within a s ...
(geometry, vertex, pixel, etc.) have the same capabilities. They can all read textures and buffers, and they use
instruction sets
In computer science, an instruction set architecture (ISA), also called computer architecture, is an abstract model of a computer. A device that executes instructions described by that ISA, such as a central processing unit (CPU), is called an ' ...
that are almost identical.
History
Earlier GPUs generally included two types of shader hardware, with the ''
vertex shader
In computer graphics, a shader is a computer program that calculates the appropriate levels of light, darkness, and color during the rendering of a 3D scene - a process known as ''shading''. Shaders have evolved to perform a variety of speci ...
s'' having considerably more instructions than the simpler ''
pixel shader
In computer graphics, a shader is a computer program that calculates the appropriate levels of light, darkness, and color during the Rendering (computer graphics), rendering of a 3D scene - a process known as ''shading''. Shaders have evolved ...
s''. This lowered the cost of implementation of the GPU as a whole, and allowed more shaders in total on a single unit. This was at the cost of making the system less flexible, and sometimes leaving one set of shaders idle if the workload used one more than the other. As improvements in
fabrication continued, this distinction became less useful.
ATI Technologies
ATI Technologies Inc. (commonly called ATI) was a Canadian semiconductor technology corporation based in Markham, Ontario, that specialized in the development of graphics processing units and chipsets. Founded in 1985 as Array Technology Inc., ...
introduced a unified architecture on the hardware they developed for the
Xbox 360
The Xbox 360 is a home video game console developed by Microsoft. As the successor to the original Xbox, it is the second console in the Xbox series. It competed with Sony's PlayStation 3 and Nintendo's Wii as part of the seventh generati ...
.
Nvidia
Nvidia CorporationOfficially written as NVIDIA and stylized in its logo as VIDIA with the lowercase "n" the same height as the uppercase "VIDIA"; formerly stylized as VIDIA with a large italicized lowercase "n" on products from the mid 1990s to ...
quickly followed with their
Tesla design. AMD introduced a unified shader in card form two years later in the
TeraScale line. The concept has been universal since then.
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. Even in the Unified model the instruction set may not be 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.
Unified shader architecture
Unified shader architecture (or 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.
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 shader 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 shader 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
The Xbox 360 is a home video game console developed by Microsoft. As the successor to the original Xbox, it is the second console in the Xbox series. It competed with Sony's PlayStation 3 and Nintendo's Wii as part of the seventh generati ...
, for example.
The unified shader architecture was introduced with the
Nvidia
Nvidia CorporationOfficially written as NVIDIA and stylized in its logo as VIDIA with the lowercase "n" the same height as the uppercase "VIDIA"; formerly stylized as VIDIA with a large italicized lowercase "n" on products from the mid 1990s to ...
GeForce 8 series,
ATI
Ati or ATI may refer to:
* Ati people, a Negrito ethnic group in the Philippines
**Ati language (Philippines), the language spoken by this people group
** Ati-Atihan festival, an annual celebration held in the Philippines
*Ati language (China), a ...
Radeon HD 2000 series
The graphics processing unit (GPU) codenamed Radeon R600 is the foundation of the Radeon HD 2000 series and the FireGL 2007 series video cards developed by ATI Technologies. The HD 2000 cards competed with nVidia's GeForce 8 series.
Architectu ...
,
S3 Chrome 400,
Intel GMA
The Intel Graphics Media Accelerator (GMA) is a series of integrated graphics processors introduced in 2004 by Intel, replacing the earlier Intel Extreme Graphics series and being succeeded by the Intel HD and Iris Graphics series.
This series t ...
X3000 series,
Xbox 360's GPU,
Qualcomm Adreno 200 series,
Mali
Mali (; ), officially the Republic of Mali,, , ff, 𞤈𞤫𞤲𞥆𞤣𞤢𞥄𞤲𞤣𞤭 𞤃𞤢𞥄𞤤𞤭, Renndaandi Maali, italics=no, ar, جمهورية مالي, Jumhūriyyāt Mālī is a landlocked country in West Africa. Mal ...
Midgard,
PowerVR SGX GPUs and is used in all subsequent series.
Nvidia
*
Tesla
*
Fermi
*
Kepler
Johannes Kepler (; ; 27 December 1571 – 15 November 1630) was a German astronomer, mathematician, astrologer, natural philosopher and writer on music. He is a key figure in the 17th-century Scientific Revolution, best known for his laws o ...
*
Maxwell
*
Pascal
*
Volta
*
Turing
Alan Mathison Turing (; 23 June 1912 – 7 June 1954) was an English mathematician, computer scientist, logician, cryptanalyst, philosopher, and theoretical biologist. Turing was highly influential in the development of theoretical co ...
*
Ampere
*
Ada Lovelace
*
Blackwell
Intel
*
Intel Arc
Intel Arc is a brand of graphics processing units designed by Intel. These are discrete GPUs mostly marketed for the high-margin PC gaming market. The brand also covers Intel's consumer graphics software and services.
Intel Arc is competing wi ...
ATI/AMD
*
TeraScale
*
Graphics Core Next
Graphics Core Next (GCN) is the codename for a series of microarchitectures and an instruction set architecture that were developed by AMD for its GPUs as the successor to its TeraScale microarchitecture. The first product featuring GCN was la ...
*
RDNA
*
CDNA
References
{{Graphics Processing Unit
Shading