Apparatus, system, and method for Z-culling
First Claim
Patent Images
1. A method of forming information on chip for culling tiles of a graphics system, comprising:
- on a graphics processing unit, performing rendering of scenes, including performing a second pass of Z-culling on a frame-by-frame basis;
on a coprocessor acting one frame ahead of said graphics processing unit to perform a first pass of Z-culling at a coarse level of resolution, including;
performing a first step of vertex processing to calculate vertex data for rasterization of a current frame being processed by the coprocessor;
performing a first step of rasterization to rasterize the current frame fame being processed by the coprocessor;
constructing a surface of nearest and farthest objects being rendered and determining Z depth data for near and far objects;
determining a Z depth threshold value to perform Z-culling to identify covered tiles to perform the first pass of Z-culling at a coarse level of resolution for the current frame; and
providing coarse Z-cull information to said graphics processing unit to begin the second pass of Z-culling for the current frame;
said coprocessor performing vertex processing, rasterization, and Z-culling on a frame-by-frame basis to process frames identical to those processed by said graphics processing unit but with said coprocessor working one frame ahead of said graphics processing unit and at a coarser level of resolution such that said graphics processing unit begins the processing of a new frame with an initial set of culling information generated by said coprocessor for the same frame.
1 Assignment
0 Petitions
Accused Products
Abstract
A processor generates Z-cull information for tiles and groups of tiles. In one embodiment the processor includes an on-chip cache to coalesce Z information for tiles to identify occluded tiles. In a coprocessor embodiment, the processor provides Z-culling information to a graphics processor.
-
Citations
15 Claims
-
1. A method of forming information on chip for culling tiles of a graphics system, comprising:
-
on a graphics processing unit, performing rendering of scenes, including performing a second pass of Z-culling on a frame-by-frame basis; on a coprocessor acting one frame ahead of said graphics processing unit to perform a first pass of Z-culling at a coarse level of resolution, including; performing a first step of vertex processing to calculate vertex data for rasterization of a current frame being processed by the coprocessor; performing a first step of rasterization to rasterize the current frame fame being processed by the coprocessor; constructing a surface of nearest and farthest objects being rendered and determining Z depth data for near and far objects; determining a Z depth threshold value to perform Z-culling to identify covered tiles to perform the first pass of Z-culling at a coarse level of resolution for the current frame; and providing coarse Z-cull information to said graphics processing unit to begin the second pass of Z-culling for the current frame; said coprocessor performing vertex processing, rasterization, and Z-culling on a frame-by-frame basis to process frames identical to those processed by said graphics processing unit but with said coprocessor working one frame ahead of said graphics processing unit and at a coarser level of resolution such that said graphics processing unit begins the processing of a new frame with an initial set of culling information generated by said coprocessor for the same frame. - View Dependent Claims (2, 3, 4, 5, 6)
-
-
7. An integrated circuit for forming information for Z-culling information, comprising:
-
a coprocessor including; a vertex engine to perform vertex processing; a coarse-raster module configured to receive data from the vertex engine and rasterize primitives at a coarse level of resolution corresponding to tiles having groups of pixels and generate information sufficient to determine a Znear for tiles corresponding to a nearest Z distance of a tile with respect to an eyepoint; a coarse Z-cull module receiving an output of said raster module, the Z-cull module constructing a surface of nearest and farthest objects being rendered and determining Z depth data for near and far objects to generate information for determining tiles that may be culled by comparing Z depth information of incoming tiles with Znear and Zfar values of previously observed tiles having the same tile location, where Zfar is a farthest Z distance with respect to said eyepoint; a fine raster module coupled to an output of said Z-cull module configured to generate Zfar values for incoming primitives at a fine resolution corresponding to screen regions at least as small as one pixel in size, each Zfar value corresponding to a conservative estimate of a farthest Z value with respect to an eyepoint; and an on-chip cache memory configured to coalesce said Zfar values generated from said fine raster module, coalesce coverage masks across samples, generate Zfar values for samples within tiles, and provide a maximum Zfar value for covered tiles to said Z-cull module; said coprocessor being operative to generate coarse Z cull information for determining tiles capable of being culled; said coprocessor performing vertex processing, rasterization, and Z-culling on a frame-by-frame basis to process frames identical to those processed by a graphics processing unit but with said coprocessor working one frame ahead of said graphics processing unit and at a coarser level of resolution such that said graphics processing unit begins the processing of a new frame including performing a second pass of z-culling on a frame-by-frame basis, with an initial set of culling information generated by said coprocessor for the same frame. - View Dependent Claims (8, 9, 10, 11, 12, 13, 14, 15)
-
Specification