Memory management for systems for generating 3-dimensional computer images
First Claim
1. A system for use in rendering an image from 3-D graphics data comprising:
- a heap memory;
a manager configured for reserving z buffer space, in the heap memory, to store Z buffer data for at least one macrotile of an image to be rendered, wherein each macrotile is defined to include a respective subset of pixels in the image, and for allocating blocks from a remaining portion of the heap memory to display lists for respective macrotiles; and
a tiling accelerator comprising a macrotiling engine configured for inputting a stream of geometry elements, determining overlap between the inputted geometry elements and the macrotiles, and writing identifying information for the geometry elements to display lists according to the determined overlap, wherein data for each display list is written to a respective current memory block, allocated from the heap memory, to that display list,wherein the system is configured to determine, before the stream of geometry elements has been completely processed by the macrotiling engine, that a selected display list, associated with a macrotile, is to begin image synthesis processing, resulting in depth information that is written into blocks of memory from the reserved z buffer space, and to reallocate the memory used for storing the selected display list first to reserved z buffer space, at least until there is reserved z-buffer space for at least one macrotile, and if any blocks of memory remain from the memory used for storing the selected display list, then to make those blocks available for on demand allocation by the manager for storing further outputs produced by the tiling accelerator in processing additional geometry elements from the stream of geometry elements.
2 Assignments
0 Petitions
Accused Products
Abstract
Memory management system and method for use with systems for generating 3-dimensional computer generated images are provided. The system includes a) a device for subdividing the image into rectangular areas, b) a memory for storing object data for each rectangular area and depth data derived from the object data, c) a device for storing the object data in the memory, d) a device for deriving the depth data for each rectangular area from the object data, e) a device for storing the depth data for each rectangular area in the memory, f) a device for loading further object data into the memory to replace part of the existing contents, g) a device for retrieving the stored depth data, h) a device for deriving updated depth data for each picture element of each rectangular area from the new object and stored depth data, and storing the updated depth data to replace the previously stored depth data, i) a device for causing features e), f), g) and h) to repeatedly perform the functions until there is no further object data to load to the 1 memory, and j) a device for deriving image data and shading data from the depth data for display.
-
Citations
26 Claims
-
1. A system for use in rendering an image from 3-D graphics data comprising:
-
a heap memory; a manager configured for reserving z buffer space, in the heap memory, to store Z buffer data for at least one macrotile of an image to be rendered, wherein each macrotile is defined to include a respective subset of pixels in the image, and for allocating blocks from a remaining portion of the heap memory to display lists for respective macrotiles; and a tiling accelerator comprising a macrotiling engine configured for inputting a stream of geometry elements, determining overlap between the inputted geometry elements and the macrotiles, and writing identifying information for the geometry elements to display lists according to the determined overlap, wherein data for each display list is written to a respective current memory block, allocated from the heap memory, to that display list, wherein the system is configured to determine, before the stream of geometry elements has been completely processed by the macrotiling engine, that a selected display list, associated with a macrotile, is to begin image synthesis processing, resulting in depth information that is written into blocks of memory from the reserved z buffer space, and to reallocate the memory used for storing the selected display list first to reserved z buffer space, at least until there is reserved z-buffer space for at least one macrotile, and if any blocks of memory remain from the memory used for storing the selected display list, then to make those blocks available for on demand allocation by the manager for storing further outputs produced by the tiling accelerator in processing additional geometry elements from the stream of geometry elements. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13)
-
-
14. A method for rendering an image from 3-D graphics data comprising:
-
determining a pixel resolution of an image to be rendered; defining a set of macrotiles, each macrotile encompassing a respective region of pixels in the image to be rendered; allocating reserved z buffer memory, from heap memory, wherein an amount of memory allocated to the reserved z buffer memory is sized to store depth data for pixels in at least one macrotile; allocating blocks from the heap memory, responsive to demand, to store geometry object-identifying information and control stream information generated by a tiling accelerator operating on an inputted stream of geometry objects, to create a respective display list for each macrotile overlapped by inputted geometry objects; selecting a macrotile, responsive to determining that an amount of memory allocated from the heap memory exceeds a threshold, to begin image synthesis processing, which includes writing depth data to the reserved z buffer memory; and reallocating blocks of memory that stored one or more of object identifying information and control stream information for the display list for the selected macrotile first to replace the reserved z buffer memory for use during image synthesis processing of another macrotile at least until there is reserved z-buffer memory for at least one macrotile, and if any blocks of memory remain from the memory used for storing the selected display list, thereafter to provide those blocks for on demand allocation for storing object-identifying information and control stream information produced by the tiling accelerator for additional geometry elements. - View Dependent Claims (15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26)
-
Specification