IP Library Granted Patent US 12,272,000
Granted Patent B2
US 12,272,000 · App. 17/853,136 · Granted Apr 8, 2025

Hierarchical depth data generation using primitive fusion

Inventors: Kiia K. Kallio (Inkoo, FI); Jan Achrenius (Noormakuu, FI)
Assignee: Advanced Micro Devices, Inc.
G06T17/10G06T1/20G06T7/13G06T15/005
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 12,272,000
App. No.
17/853,136
Granted
Apr 8, 2025
Kind
B2
Abstract

Concurrently with performing a visibility pass to generate visibility data for two or more bins of an image, a processing system determines whether a primitive to be rendered covers at least a predetermined threshold percentage of a tile of the image. In response to the primitive coving at least the predetermined threshold percentage of the tile, the processing system stores the depth data of the primitive in a depth buffer for pixel-based rendering. In response to the primitive not covering at least the predetermined threshold percentage of the tile, the processing system fuses the primitive with one or more preceding primitives sharing an edge with the primitive in the tile to generate a fused primitive. In response to the fused primitive being valid in the tile, the processing system passes the depth data of the fused primitive to the depth buffer.

Claims (45)

1. A method comprising:

based on a first primitive of a plurality of primitives to be rendered sharing an edge in a tile of an image with a second primitive of the plurality of primitives to be rendered, storing depth data of the first primitive in a buffer;

fusing at least a portion of the second primitive in the tile with the depth data of the first primitive in the tile in the buffer to generate a fused primitive;

storing depth data of the fused primitive in the tile in a depth buffer; and

rendering the first and second primitives using the depth data of the fused primitive stored in the depth buffer.

2. The method of claim 1 , further comprising:

based on the second primitive having a shared edge with a third primitive of the plurality of primitives to be rendered in the tile, storing depth data of the fused primitive in the tile in the buffer.

3. The method of claim 2 , further comprising:

fusing at least a portion of the third primitive in the tile with the depth data of the fused primitive in the tile stored in the buffer to generate a second fused primitive; and

based on the second fused primitive covering a predetermined threshold percentage of the tile, storing the depth data of the second fused primitive in the depth buffer.

4. The method of claim 3 , further comprising:

based on the first, second, or third primitives being flagged as invalid, rejecting depth data of the second fused primitive such that the depth data of the second fused primitive is not stored in the depth buffer.

5. The method of claim 1 further comprising:

based on the first primitive having one or more edges that are not shared with one or more other primitives of the plurality of primitives to be rendered, flagging the first primitive as invalid.

6. The method of claim 5 , further comprising:

storing a flag indicating the first primitive as invalid in the buffer.

7. The method of claim 1 , wherein fusing the at least a portion of the first primitive in the tile with the at least a portion of the second primitive in the tile is performed concurrently with a visibility pass.

8. A method comprising:

based on a first primitive of a plurality of primitives to be rendered not covering a predetermined threshold percentage of a tile of an image and based on the first primitive sharing an edge with a second primitive of the plurality of primitives in the tile, fusing at least a portion of the first primitive in the tile with at least a portion of the second primitive in the tile to generate a fused primitive; and

storing depth data of the fused primitive in the tile to a depth buffer used to render the primitive and the second primitive.

9. The method of claim 8 , further comprising:

based on the first primitive sharing an edge with a third primitive in the tile, storing depth data of the first primitive in the tile in an edge buffer.

10. The method of claim 9 , further comprising:

fusing at least a portion of the third primitive in the tile with the depth data of the first primitive in the tile stored in the edge buffer to generate a second fused primitive.

11. The method of claim 10 , further comprising:

based on the third primitive sharing an edge with a fourth primitive of the plurality of primitives to be rendered in the tile, storing the depth data of the second fused primitive in the edge buffer.

12. The method of claim 8 , further comprising:

based on the first primitive having an edge not shared with one or more other primitives of the plurality of primitives to be rendered, flagging the first primitive as invalid.

13. An accelerated processing unit, comprising:

one or more processor cores including circuitry configured to:

based on a first primitive of a plurality of primitives to be rendered not covering a predetermined threshold percentage of a tile of an image and based on the first primitive sharing an edge with a second primitive of the plurality of primitives to be rendered in the tile, fuse at least a portion of the first primitive in the tile with at least a portion of the second primitive in the tile to generate a fused primitive;

store depth data of the fused primitive in the tile in a depth buffer; and

render the first and second primitives using the depth data of the fused primitive stored in the depth buffer.

14. The accelerated processing unit of claim 13 , wherein the one or more processor cores include circuitry configured to:

based on the second primitive having a shared edge with a third primitive of the plurality of primitives in the tile, store depth data of the fused primitive in the tile in an edge buffer.

15. The accelerated processing unit of claim 14 , wherein the one or more processor cores include circuitry configured to:

fuse at least a portion of the third primitive in the tile with the depth data of the fused primitive in the tile stored in the edge buffer to generate a second fused primitive.

16. The accelerated processing unit of claim 15 , wherein the one or more processor cores include circuitry configured to:

based on the second fused primitive covering the predetermined threshold percentage of the tile, store depth data of the second fused primitive in the depth buffer; and

render the first, second, and third primitives using the depth data of the second fused primitive stored in the depth buffer.

17. The accelerated processing unit of claim 13 , wherein the one or more processor cores include circuitry configured to:

store depth data of the first primitive in the tile in an edge buffer; and

fuse the depth data of the first primitive in the tile in the edge buffer with the at least a portion of the second primitive in the tile.

18. The accelerated processing unit of claim 13 , wherein the one or more processor cores include circuitry configured to:

fuse the at least a portion of the first primitive in the tile with the at least a portion of the second primitive of the plurality of primitives in the tile of the image concurrently with performing a visibility pass.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jul 14, 2022
From: KALLIO, KIIA K; ACHRENIUS, JAN
To: ADVANCED MICRO DEVICES, INC.
Reel/Frame 060509/0866 →
Continuity (1)
Related Publication 20240005601A1 · Jan 4, 2024
References Cited (49)
US 6362818B1 · Gardiner · 2002 [cited by examiner]
US 9684995B2 · Yang · 2017 [cited by examiner]
US 9865085B1 · Eng · 2018 [cited by examiner]
US 9934548B2 · Smith · 2018 [cited by examiner]
US 10497085B2 · Lee · 2019 [cited by examiner]
US 10839595B2 · Ranganathan · 2020 [cited by examiner]
US 11361400B1 · Kjoll · 2022 [cited by examiner]
US 11532115B2 · Yang · 2022 [cited by examiner]
US 11610358B2 · Jesus · 2023 [cited by examiner]
US 11861782B2 · Yang · 2024 [cited by examiner]
US 11922555B2 · Jesus · 2024 [cited by examiner]
US 11928776B2 · Howson · 2024 [cited by examiner]
US 11988523B2 · Bhowmick · 2024 [cited by examiner]
US 20020097241A1 · McCormack · 2002 [cited by examiner]
US 20070139440A1 · Crow · 2007 [cited by examiner]
US 20070182734A1 · Levanon · 2007 [cited by examiner]
US 20110221743A1 · Keall · 2011 [cited by examiner]
US 20140043342A1 · Goel · 2014 [cited by examiner]
US 20140267375A1 · Kilgard · 2014 [cited by examiner]
US 20150363968A1 · Yang · 2015 [cited by examiner]
US 20150363969A1 · Yang · 2015 [cited by examiner]
US 20160098856A1 · Broadhurst · 2016 [cited by examiner]
US 20160364901A1 · Balci · 2016 [cited by examiner]
US 20170024927A1 · Isomäki · 2017 [cited by examiner]
US 20170270146A1 · Harrison · 2017 [cited by examiner]
US 20180089890A1 · Shreiner · 2018 [cited by examiner]
US 20180307490A1 · Hakura et al. · 2018 [cited by applicant]
US 20180365885A1 · Yang · 2018 [cited by examiner]
US 20200051314A1 · Laine · 2020 [cited by examiner]
US 20200184715A1 · Goswami · 2020 [cited by examiner]
US 20200250882A1 · Yang · 2020 [cited by examiner]
US 20200380745A1 · Bhiravabhatla · 2020 [cited by examiner]
US 20210174575A1 · Mandal · 2021 [cited by examiner]
US 20210225060A1 · Tuomi et al. · 2021 [cited by applicant]
US 20220036629A1 · Tuomi et al. · 2022 [cited by applicant]
US 20220092801A1 · Achrenius · 2022 [cited by examiner]
US 20220101479A1 · Alla et al. · 2022 [cited by applicant]
US 20220198745A1 · Yang · 2022 [cited by examiner]
US 20220392138A1 · Kokins et al. · 2022 [cited by applicant]
US 20230298249A1 · Shao · 2023 [cited by examiner]
US 20240005601A1 · Kallio · 2024 [cited by examiner]
US 20240112397A1 · Brennan · 2024 [cited by examiner]
GB 2591802A · 2021 [cited by examiner]
JP 7100427B2 · 2022 [cited by examiner]
Non-Final Office Action issued in U.S. Appl. No. 17/851,611, mailed Nov. 24, 2023, 19 pages. [cited by applicant]
U.S. Appl. No. 17/565,394, filed Dec. 29, 2021, Entitled “Synchronization Free Cross Pass Binning Through Subpass Interleaving”, 35 pages. [cited by applicant]
U.S. Appl. No. 17/851,611, filed Jun. 28, 2022, Entitled “Binning Pass With Hierarchical Depth Data Determination” 44 pages. [cited by applicant]
U.S. Appl. No. 17/855,268, filed Jun. 30, 2022, Entitled “Pipeline Delay Reduction for Coarse Visibility Compression” 40 pages. [cited by applicant]
Final Office Action issued in U.S. Appl. No. 17/851,611, mailed Jun. 21, 2024, 25 pages. [cited by applicant]