Claims
- 1. A method for maintaining the quality of images generated by a graphics system, wherein the graphics system is configured to render samples into an available space of a frame buffer based on a programmable sample density, to filter the samples from the sample buffer into a double-buffered display area of the frame buffer, the method comprising:
(a) computing a realizable sample density corresponding to a first number of passes of the graphics system for an animation frame in response to receiving input defining a new window size; (b) performing said computing one or more times to determine a value for the first number which corresponds to a realizable sample density which is greater than or equal to a user specified sample density; (c) writing to one or more programmable registers in the graphics system to set the first number of passes of the graphics system equal to said value.
- 2. The method of claim 1, further comprising writing to one or more additional registers of the graphics system to set the programmable sample density equal to a final value of the realizable sample density after (b).
- 3. The method of claim 1, wherein said writing increases the first number so that the user-specified sample density may be maintained with the new window size which is larger than the previous window size.
- 4. The method of claim 1, wherein (a), (b) and (c) are performed by a computer coupled to the graphics system.
- 5. A graphics system comprising:
a hardware accelerator; a frame buffer, wherein the frame buffer includes a sample storage area and a double-buffered display pixel area; wherein the hardware accelerator is operable to
(a) render a stream of primitives into samples, (b) store the samples into the sample storage area of the frame buffer, (c) read the samples from the sample storage area, (d) filter the samples to generate pixels, (e) store the pixels into a first buffer of the display pixel area of the frame buffer; wherein the hardware accelerator is operable to perform (a), (b), (c), (d) and (e) N times on N corresponding streams of primitives to complete a frame of an animation before passing control of the first buffer to a video output processor, wherein N is a positive integer.
- 6. The graphics system of claim 5, further comprising a host computer coupled to the hardware accelerator, wherein the host computer is configured to control the N iterations of (a), (b), (c), (d) and (e) for each frame of the animation in response to the execution of program instructions.
- 7. The graphics system of claim 6, wherein N=2, wherein the program instructions comprise a stereo video application, wherein the stereo video application directs the hardware accelerator to perform (a), (b), (c), (d) and (e) a first time targeting a right eye portion of the first buffer, and a second time targeting a left eye portion of the first buffer for each frame of the animation.
- 8. The graphics system of claim 6, wherein N=2K, wherein the program instructions comprise a stereo video application, wherein the stereo video application directs the hardware accelerator to perform (a), (b), (c), (d) and (e) a first set of K times targeting K corresponding left eye portions of the first buffer, and an additional set of K times targeting K corresponding right eye portions of the first buffer for each frame of animation, wherein K is a positive integer.
- 9. The graphics system of claim 6, wherein the host computer is configured to perform view frustum culling for each iteration of (a), (b), (c), (d) and (e), wherein the view frustum culling corresponds to the region of the first buffer written to in each iteration of (a), (b), (c), (d) and (e).
- 10. The graphics system of claim 6, wherein the hardware accelerator is configured to render the stream of primitives into samples with a programmable sample density which is dynamically adjustable, wherein the host computer is configured to dynamically reprogram the programmable sample density of the hardware accelerator to maintain a maximum attainable sample density in response user adjustments of a window.
- 11. The graphics system of claim 6, wherein the hardware accelerator is configured to render the stream of primitives into samples with a sample density which is dynamically adjustable, wherein the host computer is configured to dynamically adjust the sample density of the hardware accelerator to maintain a target animation frame rate.
- 12. The graphics system of claim 6, wherein the hardware accelerator is configured to render the stream of primitives into samples with a sample density which is dynamically adjustable, wherein the host computer is configured to adjust N to maintain a target animation frame rate.
- 13. The graphics system of claims 5, wherein the hardware accelerator is configured to render the stream of primitives into samples with a programmable sample density which is dynamically adjustable.
- 14. The graphics system of claim 5, wherein a host computer is configured dynamically adjust N to maintain a user-defined sample density value in response to changes in window size.
- 15. The graphics system of claim 5, wherein each iteration of (a), (b), (c), (d) and (e) writes to a corresponding portion of the first buffer.
- 16. The graphics system of claim 5, wherein the hardware accelerator is configured to dynamically reallocate the sample buffer page boundaries in response to receiving parameters from a host processor.
- 17. The graphics system of claim 5, wherein the video processor is configured to read the pixels from the display pixel area and to forward the pixels to a digital-to-analog converter.
- 18. A method for maintaining the quality of images generated by a graphics system, wherein the graphics system is configured to render samples into an available space of a frame buffer based on a programmable sample density, to filter the samples from the sample buffer into a double-buffered display area of the frame buffer, the method comprising:
(a) receiving input defining a window width and width height for an adjusted window; (b) selecting a sample density value, from a set of sample densities achievable by the graphics system; (d) selecting a positive integer value N; (c) computing a first ceiling of the window width divided by a page width corresponding to the selected sample density; (d) dividing the window height by the integer value N to determine a first resultant; (e) computing a second ceiling of the first resultant divided by a page height corresponding to the selected sample density; (f) multiplying the first ceiling and the second ceiling to determine a per-pass page estimate; (g) increasing the integer value N and repeating (c), (d), (e) and (f) if the per-pass page estimate is greater than the available space of the frame buffer; (h) writing to one or more programmable registers in the graphics system to configured to graphics system for N-pass rendering of animation frames.
- 19. The method of claim 18, wherein the available space of the frame buffer is space of the frame buffer not allocated to the double-buffered display area.
- 20. A method comprising:
(a) rendering graphics primitives to generate samples and storing the samples into a sample storage area of a frame buffer; (b) filtering the samples to generate pixels and storing the pixels into a first buffer segment of a displayable area of the frame buffer; (c) performing (a) and (b) two or more times targeting two or more corresponding portions of the first buffer segment; (d) performing a buffer swap operation to pass control of the first buffer segment to an output processor.
- 21. The method of claim 20 further comprising transferring the stored pixels from the first buffer segment to a digital-to-analog conversion device after (d).
PRIORITY CLAIM
[0001] This application claims the benefit of U.S. Provisional Application No. 60/363,596 filed on Mar. 12, 2002 entitled “Dynamically Adjusting Sample Density and/or Number of Rendering Passes in a Graphics System”, which is hereby incorporated by reference in its entirety.
Provisional Applications (1)
|
Number |
Date |
Country |
|
60363596 |
Mar 2002 |
US |