Graphics rendering device and method for operating same
First Claim
1. A tiler for receiving geometric primitives representing three dimensional objects and rendering commands and for generating rendered image data to a two-dimensional image comprising a two dimensional array of pixel locations subdivided into contiguous sub-regions, the tiler comprising:
- a memory interface controller for reading the geometric primitives and the rendering commands;
a set-up processor in communication with the memory interface controller for receiving a subset of the geometric primitives for each of the sub-regions of the image, parsing the rendering commands, and computing edge equation parameters;
a scan-convert processor in communication with the set-up processor for receiving the equation parameters for the geometric primitives, and for scan converting the geometric primitives to produce pixel data including color, depth, and coverage data for pixel locations in each sub-region of the image, where the scan-convert processor is capable of generating two or more fragments including color, depth, and coverage data for each pixel location in the the sub-regions;
a rasterization buffer for storing pixel data only for the pixel locations in the a sub-region currently being rasterized;
a pixel engine for receiving the pixel data, for controlling the transfer of the pixel data to the rasterization buffer such that potentially visible fragments are stored for each of a plurality of pixel locations of the sub-region in the rasterization buffer; and
an anti-aliasing engine for resolving pixel data stored in the rasterization buffer, including the potentially visible fragments, such that the potentially visible fragments are combined into a single set of color values per pixel location in the sub-region and the anti-aliased sub-region is transferred to a memory device,wherein the sub-regions of the image are rendered serially and fragments are stored for only one sub-region at a time in the rasterization buffer.
2 Assignments
0 Petitions
Accused Products
Abstract
A graphics rendering chip serially renders a stream of geometric primitives to image regions called chunks. A set-up processor in the chip parses rendering commands and the stream of geometric primitives and computes edge equation parameters. A scan-convert processor receives the edge equation parameters from the set-up processor and scan converts the geometric primitives to produce pixel records and fragment records. An internal, double-buffered pixel buffer stores pixel records for fully covered pixel addresses and also stores references to fragment lists stored in a fragment buffer. A pixel engine performs hidden surface removal and controls storage of pixel and fragment records to the pixel and fragment buffers, respectively. An anti-aliasing engine resolves pixel data for one pixel buffer while the pixel engine fills the other pixel buffer with pixel data for the next chunk.
306 Citations
24 Claims
-
1. A tiler for receiving geometric primitives representing three dimensional objects and rendering commands and for generating rendered image data to a two-dimensional image comprising a two dimensional array of pixel locations subdivided into contiguous sub-regions, the tiler comprising:
-
a memory interface controller for reading the geometric primitives and the rendering commands; a set-up processor in communication with the memory interface controller for receiving a subset of the geometric primitives for each of the sub-regions of the image, parsing the rendering commands, and computing edge equation parameters; a scan-convert processor in communication with the set-up processor for receiving the equation parameters for the geometric primitives, and for scan converting the geometric primitives to produce pixel data including color, depth, and coverage data for pixel locations in each sub-region of the image, where the scan-convert processor is capable of generating two or more fragments including color, depth, and coverage data for each pixel location in the the sub-regions; a rasterization buffer for storing pixel data only for the pixel locations in the a sub-region currently being rasterized; a pixel engine for receiving the pixel data, for controlling the transfer of the pixel data to the rasterization buffer such that potentially visible fragments are stored for each of a plurality of pixel locations of the sub-region in the rasterization buffer; and an anti-aliasing engine for resolving pixel data stored in the rasterization buffer, including the potentially visible fragments, such that the potentially visible fragments are combined into a single set of color values per pixel location in the sub-region and the anti-aliased sub-region is transferred to a memory device, wherein the sub-regions of the image are rendered serially and fragments are stored for only one sub-region at a time in the rasterization buffer. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11)
-
-
12. A tiler for rendering sets of geometric primitives to image chunks, the tiler comprising:
-
a set-up engine for receiving geometric primitives and rendering commands for a chunk, parsing the rendering commands, and queuing the geometric primitives in primitive registers; a scan convert engine in communication with the set-up engine for receiving the geometric primitives, and for scan converting the geometric primitives to produce pixel data including color, depth, texture coordinates, and coverage data for pixel locations in the chunk; a FIFO pixel queue in communication with the rasterizer for storing the color, depth, texture coordinates and coverage data for the pixel locations in the chunk; a texture cache; a texture cache control in communication with the scan convert engine for receiving the texture coordinates from the scan convert engine and in communication with a texture memory and the texture cache for fetching texture blocks from the texture memory and storing the texture blocks in the texture cache; a texture filter engine in communication with the FIFO pixel queue and the texture cache for receiving color data and texture coordinates from the FIFO pixel queue, for filtering the texture samples in a corresponding texture block stored in the texture cache to compute filtered pixel values for the pixel locations in the chunk, and for modulating the color data with the filtered pixel values to compute composed pixel values; a pixel buffer; a fragment buffer; a pixel engine in communication with the texture filter engine, and the FIFO pixel queue, for receiving generated pixels including the composed pixel values, coverage data, and depth data for pixel locations in the chunk, and in communication with the pixel and fragment buffers for performing depth compare operations between the depth data of the generated pixels with depth data of previously generated pixels stored in the pixel and fragment buffers, and for controlling storage of the generated pixels in the pixel and fragment buffers; and an anti-aliasing engine in communication with the fragment and pixel buffers for receiving the stored pixel data in the pixel and fragment buffers and for resolving the pixel data to compute final pixel values for pixel locations in the chunk after the scan convert engine and the texture filter engine have converted the geometric primitives for the chunk into the pixel data. - View Dependent Claims (13, 14, 15, 16, 17, 18, 19, 20, 21)
-
-
22. A method for rendering objects for a scene to generate a display image at a frame rate, the method comprising:
-
assigning geometric primitives of the objects among the two or more chunks representing 2D arrays of image samples; serially rendering the two or more chunks for at least two objects in the scene to produce a rendered image, the serial rendering step including the step of scan converting geometric primitives associated with a first chunk to produce per-sample subpixel data for image samples in the first chunk, and then resolving pixel data including the per-sample subpixel data from the first chunk, and repeating the scan converting and resolving steps for subsequent chunks of the two or more chunks such that per-sample subpixel data is used to perform antialiasing and is maintained for only one chunk at a time; storing the resolved pixel data for the at least two objects; and transferring the rendered image to the physical output device at the frame rate.
-
-
23. A method for compressing image data in a real-time graphics rendering pipeline in which geometric primitives in a view volume are rendered to generate a display image for a view space at a computational rate, the method comprising:
-
assigning the geometric primitives in the view volume to two or more corresponding chunks in the view space; serially rendering the geometric primitives to the two or more corresponding chunks in a computational period including; rasterizing a first set of geometric primitives corresponding to a first chunk to generate pixel data including pixel fragments having color, coverage, and depth data for pixel locations in the first chunk, resolving the pixel data for the first chunk to compute a color value for the pixel location in the first chunk, and storing resolved pixel data for the first chunk, and repeating the rasterizing, resolving and storing steps for one or more subsequent chunks such that pixel fragments used to perform antialiasing are maintained for only one chunk at a time; and combining the resolved pixel data to generate a display image.
-
-
24. A graphics rendering system for serially rendering object geometry in a scene to a view space, the system comprising:
-
a memory for storing rendered image data; an image pre-processor operable to transform the object geometry to the view space, and operable for sorting the transformed object geometry among plural chunks of the view space corresponding to 2D arrays of image samples; an image processor communicative with the image pre-processor for receiving the transformed object geometry for the plural chunks, operable to serially render the transformed object geometry for the plural chunks to compute pixel values and per sample subpixel data for pixel locations in one chunk at a time, and operable to perform antialiasing by resolving the per sample subpixel data for the chunk such that per sample subpixel data is maintained for only one chunk at a time, and communicative with the memory to store the pixel values for the plural chunks in the memory.
-
Specification