Graphics system having a super sampled-sample buffer with efficient storage of sample position information
First Claim
1. A graphics system comprising:
- a graphics processor operable to render a plurality of samples, wherein the graphics processor is operable to utilize position information in rendering each of the samples;
a sample buffer coupled to the graphics processor for storing the samples;
wherein, for each sample, the position information comprises one or more offset values, wherein the one or more offset values are relative to pre-defined positions in the sample buffer; and
a sample-to-pixel calculation unit coupled to the sample buffer, wherein the sample-to-pixel calculation unit is operable to select samples using the position information and filter the selected samples to generate output pixels for display.
2 Assignments
0 Petitions
Accused Products
Abstract
A computer graphics system that utilizes a super-sampled sample buffer and a sample-to-pixel calculation unit for refreshing the display, wherein the graphics system may store sample position information as offsets to coordinates in the sample buffer. The graphics system may have a graphics processor, a super-sampled sample buffer, and a sample-to-pixel calculation unit. The graphics processor renders samples into the sample buffer at computed positions or locations in the sample buffer. The sample positions may be computed using various sample positioning schemes. The sample-to-pixel calculation unit uses the position information to select the samples for filtering during generation of output pixels. In one embodiment, for each sample, the position information comprises one or more offset values, such as an x-offset and a y-offset, wherein the offset values are relative to pre-defined locations in the sample buffer, such as pre-determined pixel center coordinates or predetermined bin coordinates. The position information may be stored in the sample buffer with the samples, or may be stored in a separate sample position memory coupled to the graphics processor. The samples may also be stored according to a bin ordering, wherein the bin ordering indicates a position of the samples in the respective bin. The sample-to-pixel calculation unit may use the bin ordering of the samples in the bins to index into a look-up table memory to determine the position information of the samples. The graphics system may include double buffered sample position memories.
23 Citations
76 Claims
-
1. A graphics system comprising:
-
a graphics processor operable to render a plurality of samples, wherein the graphics processor is operable to utilize position information in rendering each of the samples;
a sample buffer coupled to the graphics processor for storing the samples;
wherein, for each sample, the position information comprises one or more offset values, wherein the one or more offset values are relative to pre-defined positions in the sample buffer; and
a sample-to-pixel calculation unit coupled to the sample buffer, wherein the sample-to-pixel calculation unit is operable to select samples using the position information and filter the selected samples to generate output pixels for display. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28)
wherein the sample-to-pixel calculation unit uses the positions in selecting samples for filtering.
-
-
3. The graphics system of claim 1, wherein, for each sample, the one or more offset values comprise an x-offset and a y-offset.
-
4. The graphics system of claim 1, wherein the one or more offset values comprise offset values relative to a pre-defined grid.
-
5. The graphics system of claim 1, wherein the graphics processor is operable to render the samples according to sample positions calculated by combining the one or more offset values with coordinates selected from the group comprising:
- predetermined bin coordinates and pre-determined pixel center coordinates.
-
6. The graphics system of claim 1, further comprising:
-
a memory coupled to the sample-to-pixel calculation unit which stores the offset values for each of the samples;
wherein the sample-to-pixel calculation unit is operable to access the memory to determine the offset values of the samples.
-
-
7. The graphics system of claim 6,
wherein the memory is a look-up table memory; wherein the sample-to-pixel calculation unit is operable to index into the look-up table memory to determine the offset values of the samples.
-
8. The graphics system of claim 6, wherein the memory is addressable using addresses;
-
wherein the memory stores a number of offset values which is less than a number of samples stored in the sample buffer;
wherein the sample-to-pixel calculation unit is operable to manipulate bits in the addresses to obtain different offset values for samples.
-
-
9. The graphics system of claim 1, further comprising:
-
a first memory coupled to the graphics processor which stores the position information for each of the samples;
wherein the graphics processor uses the first memory in rendering the samples into the sample buffer;
a second memory coupled to the sample-to-pixel calculation unit which stores the position information for each of the samples;
wherein the sample-to-pixel calculation unit is operable to access the second memory to determine the position information of the samples.
-
-
10. The graphics system of claim 9,
wherein the first memory is operable to transfer current position information for a current frame to the second memory; -
wherein the sample-to-pixel calculation unit is operable to use the second memory to determine the current position information of the samples;
wherein the graphics processor is operable to store subsequent position information for a subsequent frame into the first memory contemporaneously with the sample-to-pixel calculation unit using the second memory to determine the current position information of the samples for the current frame.
-
-
11. The graphics system of claim 1, wherein the samples are stored in the sample buffer according to bins, wherein each respective bin defines a region in the sample buffer in which samples in the respective bin are located;
wherein the one or more offset values comprise offset values relative to a bin, wherein a position of each sample within a respective bin is determined by using the one or more offset values associated with the sample and the sample'"'"'s bin position.
-
12. The graphics system of claim 11, wherein the samples are stored in the sample buffer according to a bin ordering, wherein, for a respective bin, the bin ordering indicates a position of the samples in the respective bin;
wherein, for a respective sample, the sample-to-pixel calculation unit is operable to generate the position of the respective sample based at least partly on the bin ordering of the respective sample within its bin.
-
13. The graphics system of claim 12, further comprising:
-
a memory coupled to the sample-to-pixel calculation unit which stores the offset values for each of the samples, wherein the offset values are stored in the memory according to the bin ordering of the samples;
wherein the sample-to-pixel calculation unit is operable to use the bin ordering of the samples in the bins to index into the memory to determine the offset values of the samples.
-
-
14. The graphics system of claim 13, wherein the memory is addressable using addresses;
-
wherein the memory stores a number of offset values which is less than a number of samples stored in the sample buffer;
wherein the sample-to-pixel calculation unit is operable to manipulate bits in said addresses to obtain different offset values for samples in said bins.
-
-
15. The graphics system of claim 13, wherein the memory stores a number of offset values corresponding to one bin of the sample buffer;
wherein the sample-to-pixel calculation unit is operable to reuse said offset values for each bin of the sample buffer.
-
16. The graphics system of claim 12, further comprising:
-
a first memory coupled to the graphics processor which stores position information for each of the samples according to said bin ordering;
wherein the graphics processor uses the first memory in rendering the samples into the sample buffer according to said bin ordering;
a second memory coupled to the sample-to-pixel calculation unit which stores the position information for each of the samples according to said bin ordering;
wherein the sample-to-pixel calculation unit is operable to use the bin ordering of the samples in the bins to index into the second memory to determine the position information of the samples.
-
-
17. The graphics system of claim 16,
wherein the first memory is operable to transfer current position information for a current frame to the second memory; -
wherein the sample-to-pixel calculation unit is operable to use the second memory to determine the current position information of the samples;
wherein the graphics processor is operable to store subsequent position information for a subsequent frame into the first memory contemporaneously with the sample-to-pixel calculation unit using the second memory to determine the current position information of the samples for the current frame.
-
-
18. The graphics system of claim 1, wherein the sample buffer stores the position information with the samples.
-
19. The graphics system of claim 1, further comprising:
-
a sample position memory coupled to the graphics processor which stores the position information;
wherein the sample position memory is programmable.
-
-
20. The graphics system of claim 1, further comprising:
-
a sample position memory coupled to the graphics processor which stores the position information;
wherein the sample position memory is double-buffered.
-
-
21. The graphics system of claim 1, wherein the graphics processor generates the position information.
-
22. The graphics system of claim 1, wherein said position information is generated according to one or more sample position schemes selected from:
- regular grid based position generation;
stochastic based position generation;
perturbed regular grid position generation, and pre-computed position generation.
- regular grid based position generation;
-
23. The graphics system of claim 1, wherein the position information is programmable;
wherein the graphics processor operable to render the plurality of samples at programmable positions in the sample buffer.
-
24. The graphics system of claim 23, wherein the position information is programmable on a per frame basis.
-
25. The graphics system of claim 23, wherein the position information is programmable on a per bin basis.
-
26. The graphics system of claim 1, wherein the sample-to-pixel calculation unit is operable to select and filter stored samples and generate output pixels which are provided directly to a display with no frame buffer therebetween.
-
27. The graphics system of claim 1, wherein the sample-to-pixel calculation unit is configured to filter samples to form output pixels on a real time basis.
-
28. The graphics system of claim 1, wherein the sample-to-pixel calculation unit is configured to filter samples to form output pixels on an on-the-fly basis.
-
29. A graphics system comprising:
-
a graphics processor operable to render a plurality of samples, wherein the graphics processor is also operable to generate position information for each of the samples;
a sample buffer coupled to the graphics processor for storing the samples, wherein the sample buffer also stores the position information with the samples; and
a sample-to-pixel calculation unit coupled to said sample buffer, wherein the sample-to-pixel calculation unit is operable to select samples using the position information and filter the selected samples to generate output pixels for display. - View Dependent Claims (30, 31, 32, 33, 34, 35, 36)
wherein each respective bin defines a region in the sample buffer in which samples in the respective bin are located;
wherein, for each sample, the position information comprises one or more offset values, wherein the one or more offset values comprise offset values relative to a bin;
wherein a position of each sample within a respective bin is determined by using the one or more offsets associated with the sample and the sample'"'"'s bin position.
-
-
34. The graphics system of claim 29, wherein the position information comprises coordinate values relative to a sample buffer coordinate system.
-
35. The graphics system of claim 29, wherein the position information is programmable;
wherein the graphics processor operable to render the plurality of samples at programmable positions in the sample buffer.
-
36. The graphics system of claim 29, wherein the sample-to-pixel calculation unit is operable to select and filter stored samples and generate output pixels which are provided directly to a display with no frame buffer therebetween.
-
37. A graphics system comprising:
-
a graphics processor operable to render a plurality of samples, wherein the graphics processor is operable to utilize position information in rendering each of the samples;
a sample buffer coupled to the graphics processor for storing said samples;
a sample position memory coupled to the graphics processor which stores the position information for the samples, wherein the sample position memory is programmable;
wherein the graphics processor is operable to render the plurality of samples at programmable positions in the sample buffer; and
a sample-to-pixel calculation unit coupled to the sample buffer and to the sample position memory, wherein the sample-to-pixel calculation unit is operable to select samples using the position information and filter the selected samples to generate output pixels for display. - View Dependent Claims (38, 39, 40, 41, 42)
wherein each respective bin defines a region in the sample buffer in which samples in the respective bin are located;
wherein, for each sample, the position information comprises one or more offset values, wherein the one or more offset values comprise offset values relative to a bin;
wherein a position of each sample within a respective bin is determined by using the one or more offsets associated with the sample and the sample'"'"'s bin position.
-
-
41. The graphics system of claim 37, wherein the position information comprises coordinate values relative to a sample buffer coordinate system.
-
42. The graphics system of claim 37, wherein the sample-to-pixel calculation unit is operable to select and filter stored samples and generate output pixels which are provided directly to a display with no frame buffer therebetween.
-
43. A graphics system comprising:
-
a graphics processor operable to render a plurality of samples, wherein the graphics processor is operable to utilize position information in rendering each of the samples;
a sample buffer coupled to said graphics processor for storing said samples;
wherein the samples are stored in the sample buffer according to bins;
wherein, for each sample, the position information comprises one or more offset values, wherein the offset values are relative to bins in the sample buffer; and
a sample-to-pixel calculation unit coupled to the sample buffer, wherein the sample-to-pixel calculation unit is operable to select samples using the position information and filter the selected samples to generate output pixels for display. - View Dependent Claims (44)
wherein a position of each sample within a respective bin is determined by using the one or more offset values associated with the sample and the sample'"'"'s bin position.
-
-
45. A method for generating pixels for display in a graphics system, the method comprising:
-
generating position information for each of a plurality of samples, wherein, for each sample, the position information comprises one or more offset values, wherein the offset values are relative to pre-defined positions in a sample buffer;
rendering the plurality of samples using the position information and storing the samples into the sample buffer;
generating output pixels in response to the plurality of samples stored in the sample buffer, wherein said generating includes selecting samples using the position information and filtering the selected samples to generate output pixels for display. - View Dependent Claims (46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63)
wherein said rendering includes using the one or more offset values to generate positions of the samples; wherein said rendering includes using the positions to calculate sample information for the samples;
wherein said generating output pixels includes using the one or more offset values to generate positions of the samples;
wherein said generating output pixels uses the positions in selecting samples for filtering.
-
-
47. The method of claim 45, wherein, for each sample, the one or more offset values comprise an x-offset and a y-offset.
-
48. The method of claim 45, wherein the one or more offset values comprise offset values relative to a pre-defined grid.
-
49. The method of claim 45, wherein the one or more offset values are useable to generate positions of the samples;
wherein the positions are calculated by combining the one or more offset values with coordinates selected from the group comprising;
pre-determined bin coordinates and pre-determined pixel center coordinates.
-
50. The method of claim 45, further comprising:
-
storing the offset values for each of the samples in a memory;
wherein said rendering includes accessing the memory to determine the offset values of the samples;
wherein said generating output pixels includes accessing the memory to determine the offset values of the samples.
-
-
51. The method of claim 50, wherein the memory is a look-up table memory;
wherein said generating output pixels includes indexing into the look-up table memory to determine the offset values of the samples.
-
52. The method of claim 50, wherein the memory is addressable using addresses;
-
wherein said storing the offset values comprises storing a number of offset values which is less than a number of samples stored in the sample buffer;
wherein said generating output pixels includes manipulating bits in the addresses to obtain different offset values for samples in said bins.
-
-
53. The method of claim 45, further comprising:
-
storing the position information for each of the samples in a first memory;
wherein said rendering includes accessing the position information from the first memory in rendering the samples into the sample buffer;
storing the position information for each of the samples in a second memory;
wherein said generating output pixels includes accessing the position information from the second memory to determine the position information of the samples.
-
-
54. The method of claim 53, further comprising:
-
the first memory transferring current position information for a current frame to the second memory;
said generating output pixels accessing the second memory to determine the current position information of the samples;
wherein said storing the position information for each of the samples in the first memory comprises storing subsequent position information for a subsequent frame into the first memory contemporaneously with said generating output pixels accessing the second memory to determine the current position information of the samples for the current frame.
-
-
55. The method of claim 45, wherein said storing comprises storing the samples in the sample buffer according to bins;
wherein the one or more offset values comprise offset values relative to a bin.
-
56. The method of claim 55, wherein each respective bin defines a region in the sample buffer in which samples in the respective bin are located;
wherein a position of each sample within a respective bin is determined by using the one or more offsets associated with the sample and the sample'"'"'s bin position.
-
57. The method of claim 55, wherein said storing comprises storing the samples in the sample buffer according to a bin ordering, wherein the bin ordering indicates a position of the samples in respective bins;
wherein, for a respective sample, said generating output pixels includes generating the position of the respective sample based at least partly on the bin ordering of the respective sample within its bin.
-
58. The method of claim 57, further comprising:
-
storing the offset values for each of the samples in a memory, wherein the offset values are stored in the memory according to said bin ordering of the samples;
wherein said generating output pixels includes using the bin ordering of the samples in the bins to index into the memory to determine the offset values of the samples.
-
-
59. The method of claim 58, wherein the memory is addressable using addresses;
-
wherein said storing the offset values comprises storing a number of offset values which is less than a number of samples stored in the sample buffer;
wherein said generating output pixels includes manipulating bits in said addresses to obtain different offset values for samples in said bins.
-
-
60. The method of claim 58, wherein said storing the offset values comprises storing a number of offset values corresponding to one bin of the sample buffer;
wherein said generating output pixels includes reusing said offset values for each bin of the sample buffer.
-
61. The method of claim 45, further comprising:
storing the position information with the samples in the sample buffer.
-
62. The method of claim 45, further comprising:
-
storing the position information in a sample position memory; and
programming the sample position memory to receive new position information on a per frame basis.
-
-
63. The method of claim 45, wherein said generating output pixels includes selecting and filtering stored samples and generating output pixels which are provided directly to a display with no frame buffer therebetween.
-
64. A method for generating pixels for display in a graphics system, the method comprising:
-
generating position information for each of a plurality of samples;
rendering the plurality of samples into a sample buffer according to the position information;
storing the position information with the samples in the sample buffer, wherein, for each sample, the position information comprises one or more offset values, wherein the offset values are relative to pre-defined positions in the sample buffer;
generating output pixels in response to the plurality of samples stored in the sample buffer, wherein said generating includes selecting samples using the position information and filtering the selected samples to generate output pixels for display.
-
-
65. A method for generating pixels for display in a graphics system, the method comprising:
-
generating position information for each of a plurality of samples;
rendering the plurality of samples into a sample buffer according to the position information;
storing the position information in a sample position memory, wherein, for each sample, the position information comprises one or more offset values, wherein the offset values are relative to pre-defined locations in the sample buffer;
generating output pixels in response to the plurality of samples stored in the sample buffer, wherein said generating includes selecting samples using the position information and filtering the selected samples to generate output pixels for display.
-
-
66. A graphics system comprising:
-
a graphics processor operable to render a plurality of samples;
a sample buffer coupled to said graphics processor for storing the samples;
wherein the graphics processor is operable to store samples into the sample buffer according to bins;
wherein the samples are stored in the sample buffer according to a bin ordering, wherein the bin ordering indicates a position of the samples in the respective bin; and
a sample-to-pixel calculation unit coupled to said sample buffer, wherein the sample-to-pixel calculation unit is operable to select samples according to the position of the samples and filter the selected samples to generate output pixels for display. - View Dependent Claims (67, 68, 69, 70, 71, 72, 73, 74, 75, 76)
a memory coupled to the sample-to-pixel calculation unit which stores position information for each of the samples according to said bin ordering;
wherein the sample-to-pixel calculation unit is operable to use the bin ordering of the samples in the bins to index into the memory to determine the position information of the samples;
wherein the sample-to-pixel calculation unit uses the position information to select the samples.
-
-
69. The graphics system of claim 68, wherein, for each sample, the position information comprises one or more offset values, wherein the offset values are relative to pre-defined positions in the sample buffer.
-
70. The graphics system of claim 68, wherein, for each sample, the position information comprises one or more offset values, wherein the offset values are relative to the bins.
-
71. The graphics system of claim 66, further comprising:
-
a memory coupled to the sample-to-pixel calculation unit which stores offset values for each of the samples, wherein the offset values are relative to the bins, wherein the offset values are stored in the memory according to said bin ordering of the samples;
wherein the sample-to-pixel calculation unit is operable to use the bin ordering of the samples in the bins to index into the memory to determine the offset values of the samples;
wherein the sample-to-pixel calculation unit uses the position information to select the samples.
-
-
72. The graphics system of claim 71, wherein the memory is addressable using addresses;
-
wherein the memory stores a number of offset values which is less than a number of samples stored in the sample buffer;
wherein the sample-to-pixel calculation unit is operable to manipulate bits in said addresses to obtain different offset values for samples in said bins.
-
-
73. The graphics system of claim 71, wherein the memory stores a number of offset values corresponding to one bin of the sample buffer;
wherein the sample-to-pixel calculation unit is operable to reuse said offset values for each bin of the sample buffer.
-
74. The graphics system of claim 66, further comprising:
-
a first memory coupled to the graphics processor which stores position information for each of the samples according to said bin ordering;
wherein the graphics processor uses the first memory in rendering the samples into the sample buffer according to said bin ordering;
a second memory coupled to the sample-to-pixel calculation unit which stores the position information for each of the samples according to said bin ordering;
wherein the sample-to-pixel calculation unit is operable to use the bin ordering of the samples in the bins to index into the second memory to determine the position information of the samples;
wherein the sample-to-pixel calculation unit uses the position information to select the samples.
-
-
75. The graphics system of claim 74,
wherein the first memory is operable to transfer current position information for a current frame to the second memory; -
wherein the sample-to-pixel calculation unit is operable to use the second memory to determine the current position information of the samples;
wherein the graphics processor is operable to store position information for a subsequent frame into the first memory contemporaneously with the sample-to-pixel calculation unit using the second memory to determine the current position information of the samples for the current frame.
-
-
76. The graphics system of claim 66, wherein the sample-to-pixel calculation unit is operable to select and filter stored samples and generate output pixels which are provided directly to a display with no frame buffer therebetween.
Specification