Fillrate
In computer graphics, fillrate refers to the rate at which a graphics processing unit (GPU) can render pixels or texels and write them to the framebuffer, typically measured in millions or billions per second.[1] Pixel fillrate specifically quantifies the maximum number of pixels a GPU can process and output to the screen, determining its efficiency in filling the display with rendered content.[2] Texel fillrate measures the texture filter rate of the GPU, representing how many texels (textured picture elements) the GPU can render per second.[3] These metrics highlight a GPU's raw rendering throughput and are particularly relevant for performance in high-resolution environments or applications with heavy overdraw, such as video games and simulations.[4] Fillrate calculations are straightforward and tied to GPU architecture: pixel fillrate equals the number of render output units (ROPs) multiplied by the core clock speed in MHz, yielding results in megapixels per second (MPixel/s).[2] For example, a GPU with 64 ROPs and a 1500 MHz clock achieves a theoretical pixel fillrate of 96 GPixel/s.[2] Texel fillrate follows a similar formula, using the number of texture mapping units (TMUs) instead.[4] These are theoretical peak values; actual performance in real workloads is typically lower due to factors like overdraw and inefficiencies. Historically, fillrate emerged as a key benchmark in the late 1990s with fixed-function 3D accelerators, where it directly limited frame rates at higher resolutions due to bandwidth constraints.[1] In modern GPUs, while fillrate remains a core spec for comparison, techniques such as deferred rendering can reduce overdraw and fillrate demands, whereas anti-aliasing and multi-sampling increase them.[5]Fundamentals
Definition
Fillrate refers to the rate at which a graphics processing unit (GPU) can render and write pixels or texels to the frame buffer or video memory, typically measured in pixels per second (pixels/s) or giga-pixels per second (GP/s). This metric quantifies the GPU's capacity in the final stages of the rendering process to produce and store the visual output that appears on the screen, ensuring efficient handling of high-resolution displays or complex scenes with dense pixel coverage.[6][7] In the GPU rendering pipeline, fillrate becomes relevant after earlier stages such as geometry processing—where vertices are transformed and assembled into primitives—and rasterization, which converts these primitives into fragments by determining which pixels they cover. These fragments then undergo fragment shading to compute final color and depth values, culminating in the fill operations that write the results to memory. This sequence ensures that the pipeline's output stage aligns with the hardware's fillrate limits to avoid bottlenecks in image generation.[7] Unlike broader metrics such as floating-point operations per second (FLOPS), which measure the GPU's overall computational throughput across arithmetic tasks, or shader throughput, which gauges the execution rate of programmable shading instructions, fillrate specifically emphasizes the efficiency of the output stage in committing rendered data to the frame buffer. This distinction highlights fillrate's role in scenarios dominated by pixel writes rather than intensive calculations.[7] Pixel fillrate and texture fillrate represent key variants, addressing screen pixels and texture mapping, respectively.[6]Types of Fillrate
Fillrate in computer graphics encompasses several distinct types, each corresponding to different stages and operations within the GPU's rendering pipeline. The primary variants include pixel fillrate and texture fillrate, with additional extensions arising from filtering techniques and sampling methods that modify these base rates. These types reflect the diverse demands of generating and processing visual data, from basic pixel output to complex texture application.[7] Pixel fillrate measures the speed at which a GPU can process and output pixels to the framebuffer, encompassing fragment shading—where color and depth values are computed via pixel shaders—and framebuffer operations such as writing to color, depth, and stencil buffers. This type is fundamental to the rasterization stage of the graphics pipeline, determining how efficiently the GPU handles screen-space rendering tasks like resolving visibility and applying final pixel attributes. In modern GPUs, pixel fillrate is influenced by both the core processing units for shading and the render output units (ROPs) for buffer updates, making it a key metric for overall scene complexity at a given resolution.[7] Texture fillrate, in contrast, quantifies the rate at which the GPU applies textures by processing texels (texture elements) during fragment processing, often involving multiple texel samples per pixel due to magnification or sampling requirements. It occurs primarily in the texture mapping stage of the pipeline, where texture units fetch and filter data from memory to contribute to pixel shading, and is typically higher than pixel fillrate because textures can involve bilinear or higher-order sampling that processes more elements than the final output pixels. This variant is crucial for scenes with detailed surfaces, as it governs the efficiency of mapping 2D images onto 3D geometry without excessive bandwidth consumption.[7] Extensions to these core types include filtering rates, such as bilinear and anisotropic filtering, which build on texture fillrate by increasing the number of texel samples needed for smoother texture appearance, particularly on angled or distant surfaces. Bilinear filtering, for instance, interpolates between four adjacent texels per pixel, effectively doubling the texture processing load in some cases, while anisotropic filtering can require up to 16 or more samples for high-quality oblique viewing, amplifying demands in perspective-heavy scenes like open-world environments. Anti-aliasing techniques, meanwhile, extend pixel fillrate by requiring multiple coverage samples per pixel to reduce edge jaggedness; multisample anti-aliasing (MSAA), for example, generates additional samples during rasterization, significantly raising pixel processing needs in high-contrast edge scenarios.[7]| Type | Primary Focus | Role in Pipeline | Key Relation to Other Types |
|---|---|---|---|
| Pixel Fillrate | Pixel output to framebuffer (color, depth, stencil) | Rasterization and ROP operations for final image assembly | Base rate; increased by anti-aliasing samples |
| Texture Fillrate | Texel processing for texture application | Texture unit fetches and filtering during fragment shading | Often exceeds pixel rate due to multi-sample texels; extended by filtering methods |
| Bilinear/Anisotropic Filtering Rates | Additional texel samples for texture smoothing | Enhances texture quality in mapping stage | Multiplies texture fillrate (e.g., 4x for bilinear, higher for anisotropic) |
| Anti-Aliasing (e.g., MSAA) | Multi-sample pixel coverage | Improves edge quality in rasterization | Scales pixel fillrate by sample count (e.g., 4x for 4x MSAA) |