System and method for structuring an A-buffer to support multi-sample anti-aliasing
First Claim
1. A method for generating an A-Buffer for storing sample information, the method comprising:
- receiving an image frame comprised of a plurality of pixels, wherein each pixel is comprised of a plurality of samples;
dividing the image frame into one or more pixel groups, wherein a number of pixels in each of the one or more pixel groups is based on a tile size and a number of samples in each pixel;
generating a sample depth complexity image based on the image frame, wherein each entry in the sample depth complexity image reflects a maximum rendering order index associated with a different one of the samples in the image frame;
determining a stack height for each pixel group based on the sample depth complexity image, wherein the stack height reflects a maximum of the maximum rendering order indexes associated with the samples in the pixel group;
determining a number of tiles associated with the A-Buffer based on the stack heights for the one or more pixel groups; and
allocating memory space for the A-Buffer based on the number of tiles associated with the A-Buffer,wherein a maximum rendering order index corresponds to the number of potentially visible surfaces associated with a different one of the samples in the image frame.
1 Assignment
0 Petitions
Accused Products
Abstract
One embodiment of the present invention sets forth a technique for efficiently creating and accessing an A-Buffer that supports multi-sample compression techniques. The A-Buffer is organized in stacks of uniformly-sized tiles, wherein the tile size is selected to facilitate compression techniques. Each stack represents the samples included in a group of pixels. Each tile within a stack represents the set of sample data at a specific per-sample rendering order index that are associated with the group of pixels represented by the stack. Advantageously, each tile includes tile compression bits that enable the tile to maintain data using existing compression formats. As the A-Buffer is created, a corresponding stack compression buffer is also created. For each stack, the stack compression buffer includes a bit that indicates whether all of the tiles in the stack are similarly compressed and, consequently, whether the GPU may operate on the stack at an efficient per pixel granularity.
28 Citations
21 Claims
-
1. A method for generating an A-Buffer for storing sample information, the method comprising:
-
receiving an image frame comprised of a plurality of pixels, wherein each pixel is comprised of a plurality of samples; dividing the image frame into one or more pixel groups, wherein a number of pixels in each of the one or more pixel groups is based on a tile size and a number of samples in each pixel; generating a sample depth complexity image based on the image frame, wherein each entry in the sample depth complexity image reflects a maximum rendering order index associated with a different one of the samples in the image frame; determining a stack height for each pixel group based on the sample depth complexity image, wherein the stack height reflects a maximum of the maximum rendering order indexes associated with the samples in the pixel group; determining a number of tiles associated with the A-Buffer based on the stack heights for the one or more pixel groups; and allocating memory space for the A-Buffer based on the number of tiles associated with the A-Buffer, wherein a maximum rendering order index corresponds to the number of potentially visible surfaces associated with a different one of the samples in the image frame. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10)
-
-
11. A computer system, comprising:
-
a memory; a graphics processing unit coupled to the memory and configured to generate an A-Buffer in the memory for storing sample information by; dividing an image frame into one or more pixel groups, wherein the image frame is comprised of a plurality of pixels, each pixel is comprised of a plurality of samples, and a number of pixels in each of the one or more pixel groups is based on a tile size and a number of samples in each pixel, generating a sample depth complexity image based on the image frame, wherein each entry in the sample depth complexity image reflects a maximum rendering order index associated with a different one of the samples in the image frame, determining a stack height for each pixel group, based on the sample depth complexity image, wherein the stack height reflects a maximum of the maximum rendering order indexes associated with the samples in the pixel group, a number of tiles associated with the A-Buffer is based on the stack heights for the one or more pixel groups, and memory space for the A-Buffer is allocated based on the number of tiles associated with the A-Buffer, and populating the A-Buffer with sample data, wherein a maximum rendering order index corresponds to the number of potentially visible surfaces associated with a different one of the samples in the image frame. - View Dependent Claims (12, 13, 14, 15, 16, 17, 18, 19, 20, 21)
-
Specification