Claims
- 1. A graphics subsystem, comprising:
a geometry processor configured to receive input vertex data and process the input vertex data received to produce vertex data output; a resampler configured to receive the vertex data output of the geometry processor and to generate a resampler output responsive to the vertex data output received; a fragment processor configured to receive the resampler output, to modify the resampler output and to generate a fragment processor output responsive to the resampler output received; and a raster analyzer configured to receive the fragment processor output and to generate processed vertex data as output in a format compatible with the geometry processor.
- 2. The graphics subsystem of claim 1, further comprising a local memory configured to store the processed vertex data.
- 3. The graphics subsystem of claim 1, wherein the resampler output received by the fragment processor comprises vertex data.
- 4. The graphics subsystem of claim 1, wherein the geometry processor is configured to receive the processed vertex data.
- 5. The graphics subsystem of claim 1, wherein the processed vertex data output of the raster analyzer is of a floating-point data type of at least 32 bits.
- 6. The graphics subsystem of claim 1, wherein the processed vertex data output of the raster analyzer is of a floating-point data type of at least 16 bits.
- 7. The graphics subsystem of claim 1, wherein the processed vertex data output of the raster analyzer is of a fixed-point data type of at least 16 bits.
- 8. The graphics subsystem of claim 1, wherein the processed vertex data output of the raster analyzer is of a fixed-point data type of at least 8 bits.
- 9. The graphics subsystem of claim 1, wherein the fragment processor is configured to read color data or alpha data from local memory.
- 10. The graphics subsystem of claim 9, further comprising a shader program configured to specify blending operations to be performed by the fragment processor using the color data or the alpha data.
- 11. A method of processing graphics data, comprising:
receiving vertex data at a fragment processor; receiving first vertex perturbation data at the fragment processor; and combining the vertex data received and the first vertex perturbation data received using the fragment processor to produce first perturbed vertex data.
- 12. The method of claim 11, wherein the first vertex perturbation data is read by the fragment processor as a data array accessed using texture coordinates.
- 13. The method of claim 11, further comprising:
storing the vertex data received to a local memory prior to the combining of the vertex data received and the first vertex perturbation data.
- 14. The method of claim 11, further comprising:
receiving second vertex perturbation data at the fragment processor; and combining the vertex data received and the second vertex perturbation data received using the fragment processor to produce second perturbed vertex data.
- 15. The method of claim 11, wherein the first perturbed vertex data has a greater number of vertices than the vertex data received.
- 16. The method of claim 11, further comprising computing normal vectors associated with the perturbed vertex data using the fragment processor.
- 17. The method of claim 11, further comprising:
receiving second vertex perturbation data at the fragment processor; and combining the first perturbed vertex data and the second vertex perturbation data received using the fragment processor to produce second perturbed vertex data.
- 18. The method of claim 11, wherein the first perturbed vertex data is stored to a local memory.
- 19. The method of claim 11, further comprising applying a geometric transformation to the first perturbed vertex data to produce normalized vertex data for normalized device coordinate space.
- 20. The method of claim 11, wherein the combining comprises obtaining surface information from the vertex data to perturb a surface associated with the first perturbation vertex data to provide the first perturbed vertex data.
- 21. The method of claim 11, wherein the vertex perturbation data received is scaled responsive to a depth parameter.
- 22. The method of claim 11, wherein the vertex perturbation data received is read by the fragment processor as a data array accessed using texture coordinates and a depth parameter.
- 23. The method of claim 11, wherein the perturbed vertex data includes more vertices than the vertex data received.
- 24. The method of claim 11, wherein the vertex perturbation data is stored as data arrays in a local memory, said data arrays having vertex perturbation data of a different level of detail.
- 25. A graphics subsystem, comprising:
a geometry processor configured to receive and produce vertex data; a resampler configured to receive the vertex data produced from the geometry processor and to provide resampled data; a fragment processor configured to receive the resampled data from the resampler and to modify the resampled data to produce fragment data; a raster analyzer configured to receive the fragment data from the fragment processor and output vertex data in a format compatible with the geometry processor; and a local memory configured to store the vertex data output of the raster analyzer.
- 26. A method for processing graphics data, comprising:
receiving vertex data; receiving control points representing a primitive surface contour; receiving shader program instructions; and executing the shader program instructions in a fragment processor to produce processed vertex data using the vertex data.
- 27. A method as in claim 26, wherein the vertex data is generated from input of a primitive.
- 28. A method as in claim 27, further comprising tessellating the primitive to provide the vertex data.
- 29. A method as in claim 28, further comprising raster analyzing the processed vertex data to provide raster analyzed vertex data.
- 30. A method as in claim 29, wherein the raster analyzed vertex data output is in a format for input to a geometry processor to generate the vertex data.
- 31. An apparatus for processing graphics data, comprising:
a geometry processor to receive primitives and configured to generate vertices responsive to the primitives received; a resampler to receive the vertices and configurable for a first mode and a second mode, wherein the first mode the resampler adapted to increase sample density of the primitives responsive to the vertices to provide polygon meshes; and a fragment processor to receive the polygon meshes and to receive control points, the control points being associated with the polygon meshes, the fragment processor configured to produce patches responsive to the polygon meshes and the control points, the patches having surface contours.
- 32. An apparatus as in claim 31, further comprising a raster operations unit coupled to the fragment processor to receive the patches, the raster operations unit configured to output vertex data in a format input compatible with the geometry processor.
- 33. An apparatus as in claim 32, further comprising memory coupled to receive the patches and coupled to provide the patches to the geometry processor.
- 34. An apparatus as in claim 32, wherein the resampler is configurable for a second mode, the resampler in the second mode configured to map the vertices in association with locations in the memory to provide mapped vertices, the locations in memory defining areas associated with pixels.
- 35. An apparatus as in claim 34, wherein the fragment processor is configured to generate pixel data responsive to the mapped vertices.
- 36. An apparatus as in claim 35, wherein the pixel data includes at least one of color data, alpha data and depth data.
- 37. An apparatus as in claim 35, wherein the control points and the primitives are received from a host computer.
- 38. An apparatus as in claim 5, wherein the fragment processor is configurable with shading instructions for producing the pixel data.
- 39. An apparatus as in claim 31, wherein the fragment processor is configurable with shading program instructions for producing the patches.
- 40. An apparatus as in claim 39, wherein the raster operations unit is part of the fragment processor.
- 41. An apparatus as in claim 40, wherein the resampler is part of the geometry processor.
- 42. An apparatus as in claim 41, further comprising another fragment processor to receive the patches for perturbation, the other fragment processor configured to provide the patches after perturbation to the geometry processor.
- 43. An apparatus as in claim 42, wherein the geometry processor is configurable with vertex program instructions.
- 44. An apparatus as in claim 43, wherein the other fragment processor is user programmable.
- 45. A computing system, comprising:
a host computer and a graphics subsystem, the graphics subsystem including:
a geometry processor configured to receive input vertex data from the host computer, to receive processed vertex data and to produce a vertex data output, a resampler configured to receive the vertex data output of the geometry processor and to generate a resampler output, a fragment processor configured to receive the resampler output, to modify the resampler output and to generate a fragment processor output, and a raster analyzer configured to receive the fragment processor output and to generate the processed vertex data as output in a format compatible with the geometry processor.
- 46. A graphics subsystem, comprising:
means for receiving input vertex data and processed vertex data and for producing a vertex data output; means for receiving the vertex data output and for generating a resampled output; means for receiving the resampled output, for modifying the resampled output and for generating a fragment output; and means for receiving the fragment output and for generating the processed vertex data as output in a format compatible with the means for receiving input vertex data.
CROSS-REFERENCE TO RELATED APPLICATIONS
[0001] This application claims benefit from commonly owned U.S. Provisional Patent Application No. 60/397,150 entitled “Systems and Methods of Multi-pass Data-processing,” filed Jul. 18, 2002, which is incorporated herein in its entirety by reference. This application is also related to commonly owned U.S. Provisional Patent Application No. 60/397,247 entitled “Method and Apparatus for Using Multiple Data Formats in a Unified Graphics Memory,” filed Jul. 18, 2002, which is incorporated herein in its entirety by reference. This application is also related to commonly owned U.S. patent application Ser. No. 10/302,465 entitled “Programmable Graphics System and Method Using Flexible, High-Precision Data Formats,” filed Nov. 22, 2002 and Ser. No. 10/386,751 entitled “Method and Apparatus for Processing Stencil Data Using a Programmable Graphics Processor,” filed Mar. 11, 2003 each of which is incorporated herein in its entirety by reference.
Provisional Applications (2)
|
Number |
Date |
Country |
|
60397150 |
Jul 2002 |
US |
|
60397247 |
Jul 2002 |
US |