IP Library Granted Patent US 12,505,604
Granted Patent B2
US 12,505,604 · App. 18/633,166 · Granted Dec 23, 2025

Hybrid binning

Inventors: Mika Tuomi (Noormarkku, FI); Kiia Kallio (Inkoo As, FI); Ruijin Wu (San Diego, CA); Anirudh R. Acharya (San Diego, CA); Vineet Goel (San Diego, CA)
Assignee: Advanced Micro Devices, Inc.
G06T15/005G06T1/20G06T15/08
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,505,604
App. No.
18/633,166
Granted
Dec 23, 2025
Kind
B2
Abstract

A processing device and a method of tiled rendering of an image for display is provided. The processing device includes memory and a processor. The processor is configured to receive the image comprising one or more three dimensional (3D) objects, divide the image into tiles, execute coarse level tiling for the tiles of the image and execute fine level tiling for the tiles of the image. The processing device also includes same fixed function hardware used to execute the coarse level tiling and the fine level tiling. The processor is also configured to determine visibility information for a first one of the tiles. The visibility information is divided into draw call visibility information and triangle visibility information for each remaining tile of the image.

Claims (31)

1 . A method of rendering, the method comprising:

performing coarse level tiling by identifying a first set of primitives that overlap a first coarse tile, from an overall set of primitives;

performing fine level tiling by processing the first set of primitives in order of a plurality of fine tiles, wherein the first coarse tile is divided into the plurality of fine tiles, and the fine level tiling includes rendering the first set of primitives in fine tile order; and

subsequent to executing the coarse level tiling for the first coarse tile, performing coarse level tiling and fine level tiling for a second set of primitives that overlap a second coarse tile.

2 . The method of claim 1 , wherein the coarse level tiling and the fine level tiling for the second set of primitives is performed after performing the coarse level tiling for the first set of primitives and after the fine level tiling for the first set of primitives.

3 . The method of claim 1 , wherein the processing the first set of primitives comprises rendering the first set of primitives in order of the plurality of fine tiles.

4 . The method of claim 1 , further comprising performing coarse level tiling by processing each coarse tile of a render target that includes the first coarse tile, in coarse tile order.

5 . The method of claim 1 , wherein performing the coarse level tiling comprises determining visibility information indicating which primitives are visible in which coarse tiles.

6 . The method of claim 5 , wherein for each coarse tile of the coarse tiles, the visibility information indicates which draw calls specify primitives that are visible in the coarse tile.

7 . The method of claim 1 , wherein after performing coarse tiling for the first coarse tile, coarse tiling is performed before fine tiling.

8 . The method of claim 1 , wherein the fine level tiling does not process primitives not indicated as visible by the coarse level tiling.

9 . A device comprising:

a memory configured to store primitives; and

a processor configured to:

perform coarse level tiling by identifying, from the primitives, a first set of primitives that overlap a first coarse tile, from an overall set of primitives;

performing fine level tiling by processing the first set of primitives in order of a plurality of fine tiles, wherein the first coarse tile is divided into the plurality of fine tiles, and the fine level tiling includes rendering the first set of primitives in fine tile order; and

subsequent to executing the coarse level tiling for the first coarse tile, performing coarse level tiling and fine level tiling for a second set of primitives that overlap a second coarse tile.

10 . The device of claim 9 , wherein the coarse level tiling and the fine level tiling for the second set of primitives is performed after performing the coarse level tiling for the first set of primitives and after the fine level tiling for the first set of primitives.

11 . The device of claim 10 , wherein the processing the first set of primitives comprises rendering the first set of primitives in order of the plurality of fine tiles.

12 . The device of claim 10 , wherein the processor is further configured to perform coarse level tiling by processing each coarse tile of a render target that includes the first coarse tile, in coarse tile order.

13 . The device of claim 10 , wherein performing the coarse level tiling comprises determining visibility information indicating which primitives are visible in which coarse tiles.

14 . The device of claim 13 , wherein for each coarse tile of the coarse tiles, the visibility information indicates which draw calls specify primitives that are visible in the coarse tile.

15 . The device of claim 9 , wherein after performing coarse tiling for the first coarse tile, coarse tiling is performed before fine tiling.

16 . The device of claim 9 , wherein the fine level tiling does not process primitives not indicated as visible by the coarse level tiling.

17 . A non-transitory computer-readable medium storing instructions that, when executed by a processor, cause the processor to perform operations comprising:

performing coarse level tiling by identifying a first set of primitives that overlap a first coarse tile, from an overall set of primitives;

performing fine level tiling by processing the first set of primitives in order of a plurality of fine tiles, wherein the first coarse tile is divided into the plurality of fine tiles, and the fine level tiling includes rendering the first set of primitives in fine tile order; and

subsequent to executing the coarse level tiling for the first coarse tile, performing coarse level tiling and fine level tiling for a second set of primitives that overlap a second coarse tile.

18 . The non-transitory computer-readable medium of claim 17 , wherein the coarse level tiling and the fine level tiling for the second set of primitives is performed after performing the coarse level tiling for the first set of primitives and after the fine level tiling for the first set of primitives.

19 . The non-transitory computer-readable medium of claim 17 , wherein the processing the first set of primitives comprises rendering the first set of primitives in order of the plurality of fine tiles.

20 . The non-transitory computer-readable medium of claim 17 , wherein the operations further comprise performing coarse level tiling by processing each coarse tile of a render target that includes the first coarse tile, in coarse tile order.

Continuity (3)
Continuation 17033259 · Sep 25, 2020
Provisional Application 62963414 · Jan 20, 2020
Related Publication 20240257435A1 · Aug 1, 2024
References Cited (17)
US 7505036B1 · Baldwin · 2009 [cited by applicant]
US 10169906B2 · Mantor et al. · 2019 [cited by applicant]
US 20040066384A1 · Ohba · 2004 [cited by applicant]
US 20040233207A1 · Morphet · 2004 [cited by applicant]
US 20070296725A1 · Steiner · 2007 [cited by examiner]
US 20110216069A1 · Keall et al. · 2011 [cited by applicant]
US 20110292032A1 · Yang · 2011 [cited by applicant]
US 20130135341A1 · Seetharamaiah · 2013 [cited by examiner]
US 20130342547A1 · Lum · 2013 [cited by examiner]
US 20150302546A1 · Balci · 2015 [cited by examiner]
US 20160371873A1 · Mantor et al. · 2016 [cited by applicant]
US 20170018121A1 · Lawson et al. · 2017 [cited by applicant]
US 20180061002A1 · Lee et al. · 2018 [cited by applicant]
US 20180189923A1 · Zhong · 2018 [cited by examiner]
US 20180240268A1 · Nevraev et al. · 2018 [cited by applicant]
US 20180307490A1 · Hakura · 2018 [cited by examiner]
US 20190220947A1 · Yang · 2019 [cited by examiner]