The present aspects relate to a computer device, and more particularly, to performing variable sample rate shading in rendering graphics on a computer device.
Computer graphics systems, which can render 2D objects or objects from a 3D world (real or imaginary) onto a two-dimensional (2D) display screen, are currently used in a wide variety of applications. For example, 3D computer graphics can be used for real-time interactive applications, such as video games, virtual reality, scientific research, etc., as well as off-line applications, such as the creation of high resolution movies, graphic art, etc. Typically, the graphics system includes a graphics processing unit (GPU). A GPU may be implemented as a co-processor component to a central processing unit (CPU) of the computer, and may be provided in the form of an add-in card (e.g., video card), co-processor, or as functionality that is integrated directly into the motherboard of the computer or into other devices, such as a gaming device.
Typically, the GPU has a “logical graphics pipeline,” which may accept as input some representation of a 2D or 3D scene and output a bitmap that defines a 2D image for display. For example, the DIRECTX collection of application programming interfaces by MICROSOFT CORPORATION, including the DIRECT3D API, is an example of APIs that have graphic pipeline models. Another example includes the Open Graphics Library (OPENGL) API. The graphics pipeline typically includes a number of stages to convert a group of vertices, textures, buffers, and state information into an image frame on the screen. For instance, one of the stages of the graphics pipeline is a shader. A shader is a piece of code running on a specialized processing unit, also referred to as a shader unit or shader processor, usually executing multiple data threads at once, programmed to generate appropriate levels of color and/or special effects to fragments being rendered. In particular, for example, a vertex shader processes traits (position, texture coordinates, color, etc.) of a vertex, and a pixel shader processes traits (texture values, color, z-depth and alpha value) of a pixel. The prior art typically uses a constant sampling rate within the graphics pipeline for rendering an entire frame. Because of the desire for high-fidelity images, pixel shading is typically performed at a per-pixel rate, or at the rate of N samples per pixel if N-multisample anti-aliasing is required. Thus, the computer device operates the graphics pipeline to convert information about 3D objects into a bit map that can be displayed, and this process requires considerable memory and processing power.
There are continuing increases in pixel density and display resolution, and a continuing desire for power reduction in mobile display devices, like the HOLOLENS holographic headset device by MICROSOFT CORPORATION. Therefore, there is a need in the art for more efficient graphics processing in a computer device.