IP Library › Granted Patent US 12,639,882
Granted Patent B2
US 12,639,882 · App. 18/509,676 · Granted May 26, 2026

Graphics processors configured to interleave passes from different graphics tiles

Inventors: Ole Magnus Ruud (Oslo, NO); Per Kristian Kjøll (Trondheim, NO)
Assignee: Arm Limited
G06T15/005G06F9/4881G06T15/40
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,639,882
App. No.
18/509,676
Granted
May 26, 2026
Kind
B2
Abstract

When performing tile-based rendering a first, pre-pass operation in which primitives in a sequence of primitives for a tile are processed to determine visibility information for the sequence of primitives, the visibility information being usable to determine whether or not fragments for a primitive in the sequence of primitives should subsequently be processed further for the render output, is performed. Thereafter a second, main pass operation is performed in which the further processing of fragments for primitives that were processed during the first, pre-pass operation is controlled based on the determined visibility information for the sequence of primitives, such that for fragments for which the visibility information indicates that the fragments should not be processed further for the render output some or all of the processing during the second, main pass is omitted. Passes from different tiles can be interleaved.

Claims (45)

1 . A method of operating a graphics processor to render sequences of primitives, wherein the graphics processor is configured to render a sequence of primitives for a render output by:

performing a first, pre-pass operation in which primitives in the sequence of primitives are processed into respective sets of one or more fragments, each fragment corresponding to one or more sampling positions within the render output, and in which first, pre-pass operation fragments are processed to determine visibility information for the sequence of primitives; and

thereafter performing a second, main pass operation in which primitives that were processed by the first, pre-pass operation are processed again to generate rendered output data for the render output, and in which the processing is controlled using the determined visibility information for the sequence of primitives;

the method comprising:

for a plurality of sequences of primitives to be rendered separately:

scheduling the rendering for the plurality of sequences of primitives such that the first, pre-pass operation for a first one of the plurality of sequences of primitives is performed between the respective first, pre-pass and corresponding second, main pass operations for a second one of the plurality of sequences of primitives,

wherein the scheduling is performed according to a desired scheduling operation in which after an initial set of two or more pre-pass operations are performed, the graphics processor then attempts to alternate between first, pre-pass operations and second, main pass operations for different sequences of primitives, and

wherein when the desired scheduling operation dictates that a pre-pass operation for a sequence of primitives should be performed, but there is no pre-pass operation available to be scheduled, whereas there is a main pass operation for another sequence of primitives that is ready to be performed as its corresponding pre-pass operation has already completed,

the method comprises:

determining whether one or more conditions are met to perform the main pass operation immediately.

2 . The method of claim 1 , wherein for a processing job comprising rendering a plurality of sequences of primitives, the method comprises initially scheduling two or more first, pre-pass operations for a respective two or more different sequences of primitives before performing the second, main pass operation for the first sequence of primitives for the processing job.

3 . The method of claim 2 , comprising thereafter alternating first, pre-pass operations and second, main pass operation for different sequences of primitives.

4 . The method of claim 1 , wherein determining whether one or more conditions are met to perform the main pass operation immediately comprises waiting for a time period to elapse, and if a pre-pass operation is not available to be scheduled within the time period, the method comprises performing the main pass operation immediately, whereas if a pre-pass operation is received within the time period, the method comprises scheduling the received pre-pass operation to be performed according to the desired scheduling operation.

5 . The method of claim 1 , wherein determining whether one or more conditions are met to perform the main pass operation immediately comprises checking the progress of a pre-pass operation that is currently being performed, and if the pre-pass operation has progressed beyond a threshold processing stage, the method comprises performing the main pass operation immediately, whereas if the pre-pass operation has not progressed beyond the threshold processing stage, the method comprises waiting for a pre-pass operation to become available and scheduling the pre-pass operation to be performed according to the desired scheduling operation.

6 . The method of claim 5 , wherein the threshold processing stage comprises a primitive classification stage that is performed prior to the processing of primitives into their associated fragments.

7 . The method of claim 1 , wherein when the desired scheduling operation is interrupted so that a main pass operation can be performed immediately, the method comprises re-starting the desired scheduling operation by issuing a set of two or more pre-pass operations back to back.

8 . The method of claim 1 , wherein the graphics processor is selectively operable either to interleave respective first, pre-pass and second, main pass operations for different sequences of primitives or to process different sequences of primitives in a strictly back to back manner, and wherein the method comprises an initial step of determining that the scheduling operation should be performed in an interleaved manner, wherein the scheduling of the rendering for the plurality of sequences of primitives such that the first, pre-pass operation for a first one of the plurality of sequences of primitives is performed between the respective first, pre-pass and corresponding second, main pass operations for a second one of the plurality of sequences of primitives is performed in response to determining that the scheduling operation should be performed in an interleaved manner.

9 . The method of claim 1 , wherein the graphics processor is configured to perform tile-based rendering in which a render output is subdivided into a plurality of tiles for rendering, and wherein the plurality of sequences of primitives correspond to respective rendering tiles.

10 . A graphics processor that is operable to render sequences of primitives, the graphics processor comprising a rendering circuit, and configured to:

for a sequence of primitives to be rendered for a render output:

cause the rendering circuit to:

perform a first, pre-pass operation in which primitives in the sequence of primitives are processed into respective sets of one or more fragments, each fragment corresponding to one or more sampling positions within the render output, and in which first, pre-pass operation fragments are processed to determine visibility information for the sequence of primitives; and

thereafter perform a second, main pass operation in which primitives that were processed by the first, pre-pass operation are processed again to generate rendered output data for the render output, and in which the processing is controlled using the determined visibility information for the sequence of primitives;

the graphics processing further comprising a scheduling circuit that is configured to schedule the rendering for different sequences of primitives by the rendering circuit, wherein the scheduling circuit is operable to interleave respective first, pre-pass and second, main pass operations for different sequences of primitives,

wherein the scheduling is performed according to a desired scheduling operation in which after an initial set of two or more pre-pass operations are performed, the graphics processor then attempts to alternate between first, pre-pass operations and second, main pass operations for different sequences of primitives, and

wherein when the desired scheduling operation dictates that a pre-pass operation for a sequence of primitives should be performed, but there is no pre-pass operation available to be scheduled, whereas there is a main pass operation for another sequence of primitives that is ready to be performed as its corresponding pre-pass operation has already completed,

the scheduling circuit is configured to:

determine whether one or more conditions are met to perform the main pass operation immediately.

11 . The graphics processor of claim 10 , wherein for a processing job comprising rendering a plurality of sequences of primitives, the scheduling circuit is configured to initially schedule two or more first, pre-pass operations for a respective two or more different sequences of primitives before performing the second, main pass operation for the first sequence of primitives for the processing job.

12 . The graphics processor of claim 11 , wherein the scheduling circuit is configured to thereafter alternate scheduling first, pre-pass operations and second, main pass operation for different sequences of primitives.

13 . The graphics processor of claim 10 , wherein determining whether one or more conditions are met to perform the main pass operation immediately comprises waiting for a time period to elapse, and if a pre-pass operation is not available to be scheduled within the time period, the scheduling circuit is configured to perform the main pass operation immediately, whereas if a pre-pass operation is available within the time period, the scheduling circuit is configured to schedule the received pre-pass operation to be performed according to the desired scheduling operation.

14 . The graphics processor of claim 10 , wherein determining whether one or more conditions are met to perform the main pass operation immediately comprises checking the progress of a pre-pass operation that is currently being performed, and if the pre-pass operation has progressed beyond a threshold processing stage, the scheduling circuit is configured to perform the main pass operation immediately, whereas if the pre-pass operation has not progressed beyond the threshold processing stage, the scheduling circuit is configured to wait for a pre-pass operation to become available and to schedule the pre-pass operation to be performed according to the desired scheduling operation.

15 . The graphics processor of claim 10 , wherein when a main pass operation is performed immediately, such that the desired scheduling operation is interrupted, the scheduling circuit is configured to re-start the desired scheduling operation by issuing a set of two or more pre-pass operations back to back.

16 . The graphics processor of claim 10 , wherein the scheduling circuit is selectively operable either to interleave respective first, pre-pass and second, main pass operations for different sequences of primitives or to process different sequences of primitives in a strictly back to back manner.

17 . The graphics processor of claim 10 , wherein the graphics processor is configured to perform tile-based rendering in which a render output is subdivided into a plurality of tiles for rendering, and wherein the plurality of sequences of primitives correspond to respective rendering tiles.

18 . A non-transitory computer program product comprising a set of instructions that when executed by one or more data processor will cause the one or more processor to perform a method of operating a graphics processor to render sequences of primitives for a render output, wherein the graphics processor is configured to render a sequence of primitives by:

performing a first, pre-pass operation in which primitives in the sequence of primitives are processed into respective sets of one or more fragments, each fragment corresponding to one or more sampling positions within the render output, and in which first, pre-pass operation fragments are processed to determine visibility information for the sequence of primitives; and

thereafter performing a second, main pass operation in which primitives that were processed by the first, pre-pass operation are processed again to generate rendered output data for the render output, and in which the processing is controlled using the determined visibility information for the sequence of primitives;

the method comprising:

for a plurality of sequences of primitives to be rendered separately:

scheduling the rendering for the plurality of sequences of primitives such that the first, pre-pass operation for a first one of the plurality of sequences of primitives is performed between the respective first, pre-pass and corresponding second, main pass operations for a second one of the plurality of sequences of primitives,

wherein the scheduling is performed according to a desired scheduling operation in which after an initial set of two or more pre-pass operations are performed, the graphics processor then attempts to alternate between first, pre-pass operations and second, main pass operations for different sequences of primitives, and

wherein when the desired scheduling operation dictates that a pre-pass operation for a sequence of primitives should be performed, but there is no pre-pass operation available to be scheduled, whereas there is a main pass operation for another sequence of primitives that is ready to be performed as its corresponding pre-pass operation has already completed,

the method comprises:

determining whether one or more conditions are met to perform the main pass operation immediately.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Nov 15, 2023
From: RUUD, OLE MAGNUS; KJOLL, PER KRISTIAN
To: ARM LIMITED
Reel/Frame 065574/0064 →
Priority Claims (9)
GB 2217219 · Nov 17, 2022 · national
GB 2217223 · Nov 17, 2022 · national
GB 2217236 · Nov 17, 2022 · national
GB 2217238 · Nov 17, 2022 · national
GB 2217239 · Nov 17, 2022 · national
GB 2217243 · Nov 17, 2022 · national
GB 2217245 · Nov 17, 2022 · national
GB 2217246 · Nov 17, 2022 · national
GB 2217247 · Nov 17, 2022 · national
Continuity (3)
Continuation In Part 17989671 · Nov 17, 2022
Continuation In Part 17989548 · Nov 17, 2022
Related Publication 20240169649A1 · May 23, 2024
References Cited (136)
US 5870097A · Snyder · 1999 [cited by applicant]
US 6092097A · Suzuoka · 2000 [cited by applicant]
US 6246415B1 · Grossman et al. · 2001 [cited by applicant]
US 6480205B1 · Greene et al. · 2002 [cited by applicant]
US 6535209B1 · Abdalla et al. · 2003 [cited by applicant]
US 7023437B1 · Voorhies · 2006 [cited by applicant]
US 7375727B1 · Greene et al. · 2008 [cited by applicant]
US 8325184B2 · Jiao et al. · 2012 [cited by applicant]
US 8698820B2 · Cox et al. · 2014 [cited by applicant]
US 9626795B2 · Sathe · 2017 [cited by applicant]
US 9767595B2 · Nystad et al. · 2017 [cited by applicant]
US 10074210B1 · Spencer et al. · 2018 [cited by applicant]
US 10096147B2 · Goel et al. · 2018 [cited by applicant]
US 11030783B1 · Engh-Halstvedt · 2021 [cited by examiner]
US 11216993B2 · Chalfin · 2022 [cited by applicant]
US 11972518B2 · Tuomi · 2024 [cited by applicant]
US 12154224B2 · Achrenius et al. · 2024 [cited by applicant]
US 20020196252A1 · Liao et al. · 2002 [cited by applicant]
US 20070257905A1 · French et al. · 2007 [cited by applicant]
US 20130286009A1 · Xu · 2013 [cited by applicant]
US 20140071150A1 · Fishwick et al. · 2014 [cited by applicant]
US 20140168220A1 · Nystad · 2014 [cited by applicant]
US 20140218390A1 · Rouet · 2014 [cited by applicant]
US 20140259016A1 · Lottes · 2014 [cited by examiner]
US 20140267256A1 · Heggelund et al. · 2014 [cited by applicant]
US 20140267258A1 · Yang · 2014 [cited by applicant]
US 20140267259A1 · Frascati · 2014 [cited by applicant]
US 20140354640A1 · Nystad · 2014 [cited by applicant]
US 20140354661A1 · Balci et al. · 2014 [cited by applicant]
US 20140354670A1 · Heggelund · 2014 [cited by applicant]
US 20150002508A1 · Tatarinov · 2015 [cited by applicant]
US 20150058859A1 · Janssen · 2015 [cited by examiner]
US 20150062154A1 · Ellis et al. · 2015 [cited by applicant]
US 20150170328A1 · Redshaw · 2015 [cited by applicant]
US 20150170407A1 · Redshaw · 2015 [cited by applicant]
US 20160005140A1 · Engh-Halstvedt et al. · 2016 [cited by applicant]
US 20160035128A1 · Zhao · 2016 [cited by applicant]
US 20160035129A1 · Bolz et al. · 2016 [cited by applicant]
US 20160086299A1 · Sharma · 2016 [cited by applicant]
US 20160098856A1 · Broadhurst et al. · 2016 [cited by applicant]
US 20160125649A1 · Jeong et al. · 2016 [cited by applicant]
US 20160163087A1 · Cho · 2016 [cited by applicant]
US 20160217608A1 · Howson · 2016 [cited by applicant]
US 20160322031A1 · Liao et al. · 2016 [cited by applicant]
US 20170024927A1 · Isomaki · 2017 [cited by applicant]
US 20170148203A1 · Hakura · 2017 [cited by examiner]
US 20170161940A1 · Liktor et al. · 2017 [cited by applicant]
US 20170178386A1 · Redshaw et al. · 2017 [cited by applicant]
US 20170262951A1 · Smith · 2017 [cited by applicant]
US 20170263039A1 · Goel · 2017 [cited by examiner]
US 20180025463A1 · Kazakov et al. · 2018 [cited by applicant]
US 20180082467A1 · Andersson et al. · 2018 [cited by applicant]
US 20180082469A1 · Andersson · 2018 [cited by examiner]
US 20180197323A1 · Howson et al. · 2018 [cited by applicant]
US 20180268604A1 · Story · 2018 [cited by applicant]
US 20180349315A1 · Heggelund et al. · 2018 [cited by applicant]
US 20190005604A1 · Acharya · 2019 [cited by examiner]
US 20190012829A1 · Engh-Halstvedt et al. · 2019 [cited by applicant]
US 20190088009A1 · Forey et al. · 2019 [cited by applicant]
US 20190197760A1 · Cho · 2019 [cited by applicant]
US 20190206121A1 · Jin · 2019 [cited by applicant]
US 20190311535A1 · Lacey · 2019 [cited by applicant]
US 20190362533A1 · Fuller · 2019 [cited by applicant]
US 20200020153A1 · Sathe · 2020 [cited by examiner]
US 20200098165A1 · Gruber · 2020 [cited by applicant]
US 20200134894A1 · Uhrenholt · 2020 [cited by applicant]
US 20200193703A1 · Favela · 2020 [cited by applicant]
US 20200312020A1 · Zhong et al. · 2020 [cited by applicant]
US 20200380777A1 · Lacey · 2020 [cited by applicant]
US 20200402295A1 · Lentz · 2020 [cited by applicant]
US 20200402297A1 · Brigg et al. · 2020 [cited by applicant]
US 20210065437A1 · Brkic et al. · 2021 [cited by applicant]
US 20210110510A1 · Brigg et al. · 2021 [cited by applicant]
US 20210279936A1 · Yang · 2021 [cited by applicant]
US 20210279954A1 · Yang · 2021 [cited by applicant]
US 20210383597A1 · Voglreiter · 2021 [cited by applicant]
US 20210398349A1 · Achrenius · 2021 [cited by examiner]
US 20210407191A1 · Yang et al. · 2021 [cited by applicant]
US 20220020206A1 · Redshaw · 2022 [cited by examiner]
US 20220036629A1 · Tuomi · 2022 [cited by examiner]
US 20220092801A1 · Achrenius · 2022 [cited by examiner]
US 20220101479A1 · Alla · 2022 [cited by applicant]
US 20220207827A1 · Acharya et al. · 2022 [cited by applicant]
US 20220237730A1 · Brkic · 2022 [cited by applicant]
US 20220366524A1 · Uhrenholt · 2022 [cited by applicant]
US 20240005602A1 · Kallio · 2024 [cited by examiner]
US 20240087078A1 · Ashkar et al. · 2024 [cited by applicant]
US 20240104684A1 · Bhiravabhatla · 2024 [cited by applicant]
US 20240169639A1 · Oygard et al. · 2024 [cited by applicant]
WO 2018052592A1 · 2018 [cited by applicant]
Non-Final Office Action dated Aug. 2, 2024, U.S. Appl. No. 17/989,548, 37 pages. [cited by applicant]
Non-Final Office Action dated Aug. 14, 2024, U.S. Appl. No. 17/989,671, 37 pages. [cited by applicant]
Response to Non-Final Office Action dated Sep. 19, 2024, U.S. Appl. No. 17/989,548, 14 pages. [cited by applicant]
Response to Non-Final Office Action dated Nov. 14, 2024, U.S. Appl. No. 17/989,671, 16 pages. [cited by applicant]
Examination Report dated Apr. 1, 2025, GB Patent Application No. GB2217238.1, 4 pages. [cited by applicant]
Combined Search and Examination Report under Sections 17 and 18(3) dated May 24, 2023, GB Patent Application No. GB 2217223.3, pp. 1-6. [cited by applicant]
Combined Search and Examination Report under Sections 17 and 18(3) dated May 30, 2023, GB Patent Application No. GB 2217253.0, pp. 1-6. [cited by applicant]
Search Report under Section 17 dated May 19, 2023, GB Patent Application No. GB 2217247.2, pp. 1-4. [cited by applicant]
Combined Search and Examination Report under Sections 17 and 18(3) dated May 19, 2023, GB Patent Application No. GB 2217238.1, pp. 1-7. [cited by applicant]
Search Report under Section 17 dated Jun. 19, 2023, GB Patent Application No. GB 2217246.4, pp. 1-4. [cited by applicant]
Øygard, T.K., et al., “Graphics Processors”, U.S. Appl. No. 17/989,548, filed Nov. 17, 2022. [cited by applicant]
Øygard, T.K., et al., “Graphics Processors”, U.S. Appl. No. 17/989,671, filed Nov. 17, 2022. [cited by applicant]
Øygard, T.K., et al., “Graphics Processors”, U.S. Appl. No. 18/509,432, filed Nov. 15, 2023. [cited by applicant]
Øygard, T.K., et al., “Graphics Processors”, U.S. Appl. No. 18/509,436, filed Nov. 15, 2023. [cited by applicant]
Øygard, T.K., et al., “Graphics Processors”, U.S. Appl. No. 18/509,439, filed Nov. 15, 2023. [cited by applicant]
Kjøll, P.K., et al., “Graphics Processors”, U.S. Appl. No. 18/509,679, filed Nov. 15, 2023. [cited by applicant]
Ruud, O.M., et al., “Graphics Processors”, U.S. Appl. No. 18/509,441, filed Nov. 15, 2023. [cited by applicant]
Ruud, O.M., et al., “Graphics Processors”, U.S. Appl. No. 18/509,448, filed Nov. 15, 2023. [cited by applicant]
Øygard, T.K., et al., “Graphics Processors”, U.S. Appl. No. 18/509,426, filed Nov. 15, 2023. [cited by applicant]
Ruud, O.M., et al., “Graphics Processors”, U.S. Appl. No. 18/509,687, filed Nov. 15, 2023. [cited by applicant]
PCT International Search Report and Written Opinion, dated Feb. 19, 2024, PCT International Application No. PCT/GB2023/052995, pp. 1-17. [cited by applicant]
Notice of Allowance dated Jul. 15, 2025, U.S. Appl. No. 18/509,679, filed Nov. 15, 2023. [cited by applicant]
Combined Search and Examination Report under Sections 17 and 18(3) dated Jun. 3, 2024, GB Patent Application No. GB 2317492.3, pp. 1-7. [cited by applicant]
Notice of Allowance dated Nov. 22, 2024, U.S. Appl. No. 17/989,548, 25 pages. [cited by applicant]
Extended European Search Report dated Jul. 5, 2024, European Patent Application No. 23210210.3, pp. 1-10. [cited by applicant]
Notice of Allowance dated Jan. 23, 2025, U.S. Appl. No. 17/989,671, 30 pages. [cited by applicant]
Non-final Office Action dated Jul. 21, 2025, U.S. Appl. No. 18/509,432, filed Nov. 15, 2023. [cited by applicant]
U.S. Appl. No. 19/130,178, filed May 15, 2025. [cited by applicant]
Non-final Office Action dated Aug. 8, 2025, U.S. Appl. No. 18/509,426, filed Nov. 15, 2023. [cited by applicant]
Notice of Allowance dated Aug. 25, 2025, U.S. Appl. No. 18/509,679, filed Nov. 15, 2023. [cited by applicant]
Non-final Office Action dated Aug. 26, 2025, U.S. Appl. No. 18/509,436, filed Nov. 15, 2023. [cited by applicant]
Response to Office Action dated Sep. 9, 2025, U.S. Appl. No. 18/509,432, filed Nov. 15, 2023. [cited by applicant]
Non-final Office Action dated Sep. 24, 2025, U.S. Appl. No. 18/509,439, filed Nov. 15, 2023. [cited by applicant]
Non-final Office Action dated Oct. 9, 2025, U.S. Appl. No. 18/509,441, filed Nov. 15, 2023. [cited by applicant]
Response to Office Action dated Nov. 7, 2025, U.S. Appl. No. 18/509,426, filed Nov. 15, 2023. [cited by applicant]
Notice of Allowance dated Nov. 24, 2025, U.S. Appl. No. 18/509,432, filed Nov. 15, 2023. [cited by applicant]
Response to Office Action dated Nov. 25, 2025, U.S. Appl. No. 18/509,436, filed Nov. 15, 2023. [cited by applicant]
Response to Office Action dated Dec. 23, 2025, U.S. Appl. No. 18/509,439, filed Nov. 15, 2023. [cited by applicant]
Notice of Allowance dated Jan. 6, 2026, U.S. Appl. No. 18/509,679, filed Nov. 15, 2023. [cited by applicant]
Non-final Office Action dated Jan. 8, 2026, U.S. Appl. No. 18/509,448, filed Nov. 15, 2023. [cited by applicant]
Response to Office Action dated Jan. 8, 2026, U.S. Appl. No. 18/509,441, filed Nov. 15, 2023. [cited by applicant]
Notice of Allowance dated Jan. 21, 2026, U.S. Appl. No. 18/509,426, filed Nov. 15, 2023. [cited by applicant]
Final Office Action dated Feb. 13, 2026, U.S. Appl. No. 18/509,439, filed Nov. 15, 2023. [cited by applicant]
Notice of Allowance dated Feb. 24, 2026, U.S. Appl. No. 18/509,687, filed Nov. 15, 2023. [cited by applicant]
Notice of Allowance dated Feb. 27, 2026, U.S. Appl. No. 18/509,436, filed Nov. 15, 2023. [cited by applicant]
Notice of Allowance dated Mar. 18, 2026, U.S. Appl. No. 18/509,441, filed Nov. 15, 2023. [cited by applicant]