Variable performance rasterization with constant effort
AssigneeNVIDIA Corporation
InventorsSteven E. Molnar, Franklin C. Crow, Blaise A. Vignon
Life of this patent
Estimating the term…
Abstract
The current invention involves new systems and methods for providing variable rasterization performance suited to the size and shape of the primitives being rendered. Portions of pixel tiles that are fully covered by a graphics primitive are encoded and processed by the system as rectangles, rather than expanding to explicit samples. This accelerates the rendering of large primitives without increasing the computation resources used for rasterization. In some embodiments, these fully-covered regions can be rendered compressed without ever expanding into samples.
Claims15
A method of varying rasterization performance based on graphics primitive pixel tile coverage, comprising:
- receiving pixel tile data for a portion of the graphics primitive intersecting a pixel tile that includes a plurality of pixels;
- determining that the pixel tile is partially covered by the portion of the graphics primitive;
- dividing the pixel tile data into a plurality of sample shapes, wherein each sample shape is associated with sample data corresponding to a different set of pixels included in the plurality of pixels, and wherein each sample shape is either fully covered by, partially covered by, or not covered by the portion of the graphics primitive;
- computing, using a rasterization unit within a graphics processor, a coverage mask only for each partially covered sample shapes included in the plurality of sample shapes;
- encoding a first shape code associated with a first partially covered sample shape based on a first coverage mask corresponding to the first partially covered sample shape;
- and
- transmitting sample shape data associated with the first partially covered sample shape to a raster operations unit for z-testing, wherein the sample shape data includes the first coverage mask and the first shape code.
A variable performance rasterization unit for producing shape data for pixel tiles, comprising:
- a coarse rasterizer configured to determine that a pixel tile including a plurality of pixels intersects a graphics primitive;
- and
- a fine rasterizer configured to:
- receive pixel tile data associated with the pixel tile from the coarse rasterizer unit,
- determine that the pixel tile is partially covered by a portion of the graphics primitive,
- divide the pixel tile data into a plurality of sample shapes, wherein each sample shape is associated with sample data corresponding to a different set of pixels included in the plurality of pixels, and wherein each sample shape is either fully covered by, partially covered by, or not covered by the portion of the graphics primitive,
- compute a coverage mask only for each partially covered sample shapes included in the plurality of sample shapes,
- encode a first shape code associated with a first partially covered sample shape based on the first coverage mask corresponding to the first partially covered sample shape, and
- transmit sample shape data associated with the first partially covered sample shape to a raster operations unit for z-testing, wherein the sample shape data includes the first coverage mask and the first shape code.
Dependencies are inferred from the claim text.