US2022067875A1PendingUtilityA1

Use of inner coverage information by a conservative rasterization pipeline to enable earlyz for conservative rasterization

Assignee: INTEL CORPPriority: Sep 26, 2019Filed: Sep 7, 2021Published: Mar 3, 2022
Est. expirySep 26, 2039(~13.2 yrs left)· nominal 20-yr term from priority
G06T 15/005G06T 11/40G06T 15/40G06T 1/20G06T 1/60G06T 17/10G06T 15/80
66
PatentIndex Score
0
Cited by
0
References
0
Claims

Abstract

Embodiments described herein are generally directed to conservative rasterization pipeline configurations that allow EarlyZ to be enabled for conservative rasterization. An embodiment of a method includes a conservative rasterizer receiving a primitive to be rasterized. Based on vertices of the primitive, the rasterizer creates a pixel location stream and inner coverage data, indicative of whether the corresponding pixel is fully covered by the primitive or partially covered by the primitive, for each pixel within the pixel location stream. Based on the inner coverage data, pixels of the pixel location stream are grouped into a first group including those of the pixels that are fully covered by the primitive and a second group including those of pixels that are partially covered by the primitive. Separate pixel shader threads are then launched by the rasterizer for blocks of pixels of the first group and blocks of pixels of the second group.

Claims

exact text as granted — not AI-modified
What is claimed is: 
     
         1 . A graphics processing unit (GPU) supporting EarlyZ for conservative rasterization, the GPU comprising:
 a conservative rasterizer operable to:
 process a primitive stream and generate (i) a pixel location stream based on vertices of a primitive from the primitive stream and (ii) a first set of inner coverage data for each pixel within the pixel location stream, wherein the first set of inner coverage data indicates for a given pixel within the pixel location stream whether the given pixel is fully covered by a primitive with which it is associated or partially covered by the primitive; 
 group pixels of the pixel location stream into a first group and a second group, based on the first set of inner coverage data, wherein the first group includes those of the pixels that are fully covered by the primitive and the second group includes those pixels that are partially covered by the primitive; and 
 launch separate pixel shader threads, including a first thread for a first block of pixels of the first group and second thread for a second block of pixels of the second group; 
   a first pixel shader operable to perform the first thread; and   a second pixel shader operable to perform the second thread.   
     
     
         2 . The GPU of  claim 1 , further comprising an EarlyZ unit operable to perform early depth testing and wherein the conservative rasterizer is further operable to:
 create a second set of inner coverage data indicating at a pixel-block level (i) all pixels in the first block are fully covered by the primitive and (ii) all pixels in the second block are partially covered by the primitive; and   cause the early depth testing to be performed for pixels in the first block and cause the early depth testing not to be performed for pixels in the second block.   
     
     
         3 . The GPU of  claim 2 , further comprising a LateZ unit operable to perform late depth testing and wherein:
 based on the second set of inner coverage data, the first pixel shader is further operable to generate a first stream of pixel updates that incorporates pixel shading characteristics and cause the late depth testing to be skipped for all pixels in the first block; and   based on the second set of inner coverage data, the second pixel shader is further operable to generate a second stream of pixel updates that incorporates pixel shading characteristics, compute a depth value for all pixels in the second block, and cause the late depth testing to be performed for all pixels in the second block.   
     
     
         4 . A method for processing pixels by a conservative rasterization pipeline, the method comprising:
 receiving, by a conservative rasterizer of a conservative rasterizer pipeline of a graphics processing unit, a primitive to be rasterized;   creating, by the conservative rasterizer, based on a plurality of vertices of the primitive, a pixel location stream and a first set of inner coverage data for each pixel within the pixel location stream, wherein first set of the inner coverage data is indicative of whether the corresponding pixel is fully covered by the primitive or partially covered by the primitive;   grouping, by the conservative rasterizer, based on the first set of inner coverage data pixels of the pixel location stream into a first group and a second group, wherein the first group includes those of the pixels that are fully covered by the primitive and the second group includes those pixels that are partially covered by the primitive; and   launching, by the conservative rasterizer, separate pixel shader threads for blocks of pixels of the first group and blocks of pixels of the second group.   
     
     
         5 . The method of  claim 4 , further comprising creating, by the conservative rasterizer, a second set of inner coverage data indicating at a pixel-block level (i) all pixels in the first block are fully covered by the primitive and (ii) all pixels in the second block are partially covered by the primitive. 
     
     
         6 . The method of  claim 5 , wherein said launching, by the conservative rasterizer, separate pixel shader threads comprises:
 for a first block of pixels of the first group, launching, by the conservative rasterizer, a first thread of a pixel shader of the conservative rasterizer pipeline, including causing EarlyZ to be performed for all pixels in the first block; and   for a second block of pixels of the second group, launching, by the conservative rasterizer, a second thread of the pixel shader and causing performance of EarlyZ to be skipped for all pixels in the second block.   
     
     
         7 . The method of  claim 6 , wherein said causing EarlyZ to be performed for all pixels in the first block comprises enabling EarlyZ for the first block. 
     
     
         8 . The method of  claim 6 , wherein said causing performance of EarlyZ to be skipped for all pixels in the second block comprises disabling EarlyZ for the second block. 
     
     
         9 . The method of  claim 6 , wherein said launching, by the conservative rasterizer, separate pixel shader threads further comprises:
 generating, by the first thread of the pixel shader, a first stream of pixel updates that incorporates pixel shading characteristics, including causing LateZ to be skipped for the first block; and   generating, by the second thread of the pixel shader, a second stream of pixel updates that incorporates pixel shading characteristics, including computing a depth value for all pixels in the second block and causing LateZ to be performed for all pixels in the second block.   
     
     
         10 . The method of  claim 9 , wherein said causing LateZ to be skipped for the first block comprises outputting the first block to a stage subsequent to a LateZ unit of the conservative rasterizer pipeline based on the second set of inner coverage data and wherein said causing LateZ to be performed for all pixels in the second block comprises outputting the second block to a LateZ unit of the conservative rasterizer pipeline based on the second set of inner coverage data. 
     
     
         11 . A conservative rasterization pipeline of a graphics processing unit (GPU), the conservative rasterization pipeline comprising:
 a conservative rasterizer operable to:
 process a primitive stream and generate (i) a pixel location stream based on vertices of a primitive from the primitive stream and (ii) a first set of inner coverage data for each pixel within the pixel location stream, wherein the first set of inner coverage data indicates for a given pixel within the pixel location stream whether the given pixel is fully covered by a primitive with which it is associated or partially covered by the primitive; 
 group pixels of the pixel location stream into a first group and a second group, based on the first set of inner coverage data, wherein the first group includes those of the pixels that are fully covered by the primitive and the second group includes those pixels that are partially covered by the primitive; and 
 create a second set of inner coverage data indicating at a pixel-block level (i) all pixels in a first block of the first group are fully covered by the primitive and (ii) all pixels in a second block of the second group are partially covered by the primitive; 
   an EarlyZ unit operable to perform early depth testing for pixels in the first block;   a first pixel shader coupled to an output of the EarlyZ unit operable to execute a first thread for the pixels in the first block;   a second pixel shader operable to execute a second thread for pixels of the second block;   a LateZ unit coupled to an output of the second pixel shader and operable to perform late depth testing for the pixels of the second block.   
     
     
         12 . The conservative rasterization pipeline of  claim 11 , wherein the conservative rasterizer is further operable to launch the first thread on the first pixel shader and to cause the EarlyZ unit to perform the early depth testing for the pixels of the first block. 
     
     
         13 . The conservative rasterization pipeline of  claim 11 , wherein the conservative rasterizer is further operable to launch the second thread of the second pixel shader and to cause performance of the early depth testing to be skipped for the pixels of the second block by disabling the EarlyZ unit for the second block. 
     
     
         14 . The conservative rasterization pipeline of  claim 11 , wherein the first thread generates a first stream of pixel updates that incorporates pixel shading characteristics and causes the late depth testing to be skipped for the pixels of the first block based on the second set of inner coverage data. 
     
     
         15 . The conservative rasterization pipeline of  claim 11 , wherein the second thread generates a second stream of pixel updates that incorporates pixel shading characteristics, computes a depth value for the pixels of the second block, and causes late depth testing to be performed for the pixels of the second block based on the second set of inner coverage data.

Join the waitlist — get patent alerts

Track US2022067875A1 — get alerts on status changes and closely related new filings.

We store only your email — no account needed. See our privacy policy.