IP Library › Granted Patent US 12,664,716
Granted Patent B2
US 12,664,716 · App. 18/509,436 · Granted Jun 23, 2026

Rendering of primitives with pre-pass and fallback operations

Inventors: Tord Kvestad Øygard (Kirkenes, NO); Sandeep Kakarlapudi (Trondheim, NO)
Assignee: ARM Limited
G06T15/005G06T11/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,664,716
App. No.
18/509,436
Filed
Nov 15, 2023
Granted
Jun 23, 2026
Kind
B2
Art Unit
2617
USPC
345/422
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. The first, pre-pass can be stopped to process primitives in a fail-safe manner if necessary.

Claims (34)

1 . A method of operating a graphics processor, the method comprising:

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

performing a first, pre-pass operation in which primitives in the sequence of primitives are processed to determine visibility information for the sequence of primitives;

determining whilst performing the first, pre-pass operation that a primitive in the sequence of primitives to be processed by the first, pre-pass operation is incompatible with being processed by the first, pre-pass operation;

stopping the first, pre-pass operation for the sequence of primitives such that some or all of the first, pre-pass operation is omitted in respect of the incompatible primitive and thereafter performing a second, main pass operation in which primitives in the sequence of primitives that have been processed so far by the first, pre-pass operation, including the primitive in the sequence of primitives immediately before the incompatible primitive, are processed again to generate rendered output data for sampling positions within the render output based on the determined visibility information for the sequence of primitives; and

when the second, main pass operation reaches the incompatible primitive: switching to a third, fallback operation and processing a subsequent set of one or more primitives including the incompatible primitive by the third, fallback operation.

2 . The method of claim 1 , further comprising:

determining whilst processing primitives by the third, fallback operation that a further primitive in the sequence of primitives should be processed by the first, pre-pass operation; and

switching from the third, fallback operation to the first, pre-pass operation and processing by the first, pre-pass operation a subsequent set of one or more primitives including the further primitive that has been determined should be processed by the first, pre-pass operation.

3 . The method of claim 1 , wherein when the graphics processor switches between operations, the method comprises storing suitable information to allow the subsequent processing operation to continue processing the sequence of primitives including the primitive that triggered the switching of operations.

4 . The method of claim 1 , wherein the first, pre-pass operation comprises performing depth testing to update a depth buffer for the sequence of primitives, and wherein when the first, pre-pass operation is stopped for the sequence of primitives, the content of the depth buffer remains available for the subsequent third, fallback operation.

5 . The method of claim 2 , wherein the third, fallback operation comprises performing depth testing to update a depth buffer for the sequence of primitives, and wherein when the graphics processor is switched from the third, fallback operation back to the first, pre-pass operation, the content of the depth buffer remains available for the subsequent first, pre-pass operation.

6 . The method of claim 2 , comprising tracking which primitives in the sequence of primitives have been processed so far either by the first, pre-pass operation or by the third, fallback operation, and wherein when the graphics processor switches from the third, fallback operation to the first, pre-pass operation, the method comprises using the tracking to avoid some or all repeated processing of primitives that have been processed already either by the first, pre-pass operation or the third, fallback operation during the resumed first, pre-pass operation.

7 . The method of claim 1 , wherein primitives in the sequence of primitives are associated with respective indicators indicating whether or not the primitive is compatible with being processed by the first, pre-pass operation and wherein the first, pre-pass operation comprises checking the respective indicators to determine whether or not a primitive is compatible with the first, pre-pass, and wherein the step of stopping the first, pre-pass operation is based on the first, pre-pass operation determining from its indicator that a primitive is incompatible with the first, pre-pass operation.

8 . The method of claim 7 , wherein the second, main pass operation also comprises checking the respective indicators to determine whether or not a primitive is compatible with the first, pre-pass operation, and wherein the switching to the third, fallback operation is performed based on the second, main pass operation determining from its indicator that a primitive is incompatible with the first, pre-pass operation.

9 . The method of claim 1 , further comprising a step of classifying primitives in the sequence of primitives as being compatible or not with being processed by the first, pre-pass operation.

10 . The method of claim 2 , wherein the step of determining whilst processing primitives by the third, fallback operation that a further primitive in the sequence of primitives should be processed by the first, pre-pass operation comprises determining that the further primitive is compatible with the first, pre-pass operation.

11 . The method of claim 10 , wherein the step of determining whilst processing primitives by the third, fallback operation that a further primitive in the sequence of primitives should be processed by the first, pre-pass operation comprises determining that the further primitive is compatible with the first, pre-pass operation and determining whether one or more other conditions for triggering a switch back to the first, pre-pass operation are met.

12 . A graphics processor that is configured to generate a render output, the graphics processor comprising a rendering circuit that is operable to render sequences of primitives for the render output, wherein the graphics processor is configured to:

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

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

determine whilst performing the first, pre-pass operation that a primitive in the sequence of primitives to be processed by the first, pre-pass operation is incompatible with being processed by the first, pre-pass operation;

stop the first, pre-pass operation for the sequence of primitives such that some or all of the first, pre-pass operation is omitted in respect of the incompatible primitive and thereafter performing a second, main pass operation in which primitives in the sequence of primitives that have been processed so far by the first, pre-pass operation, including the primitive in the sequence of primitives immediately before the incompatible primitive, are processed again to generate rendered output data for sampling positions within the render output and in which second, main pass operation 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; and

when the second, main pass operation reaches the incompatible primitive: switch to a third, fallback operation and process a subsequent set of one or more primitives including the incompatible primitive by the third, fallback operation.

13 . The graphics processor of claim 12 , being further configured to:

determine whilst processing primitives by the third, fallback operation that a further primitive in the sequence of primitives should be processed by the first, pre-pass operation; and

switch from the third, fallback operation to the first, pre-pass operation and processing by the first, pre-pass operation a subsequent set of one or more primitives including the further primitive that has been determined should be processed by the first, pre-pass operation.

14 . The graphics processor of claim 12 , wherein when the graphics processor switches between operations, the graphics processor is configured to store suitable information to allow the subsequent processing operation to continue processing the sequence of primitives including the primitive that triggered the switching of operations.

15 . The graphics processor of claim 12 wherein the graphics processor when performing the first, pre-pass operation is configured to perform depth testing to update a depth buffer for the sequence of primitives, and wherein when the first, pre-pass operation is stopped for the sequence of primitives, the content of the depth buffer remains available for the subsequent third, fallback operation.

16 . The graphics processor of claim 13 , wherein the graphics processor when performing the third, fallback operation is configured to perform depth testing to update a depth buffer for the sequence of primitives, and wherein when the graphics processor is switched from the third, fallback operation back to the first, pre-pass operation, the content of the depth buffer remains available for the subsequent first, pre-pass operation.

17 . The graphics processor of claim 13 , wherein the graphics processor is configured to track which primitives in the sequence of primitives have been processed so far either by the first, pre-pass operation or by the third, fallback operation, and wherein when the graphics processor switches from the third, fallback operation to the first, pre-pass operation, the graphics processor uses the tracking to avoid some or all repeated processing of primitives that have been processed already either by the first, pre-pass operation or the third, fallback operation during the resumed first, pre-pass operation.

18 . The graphics processor of claim 12 , wherein primitives in the sequence of primitives are associated with respective indicators indicating whether or not the primitive is compatible with being processed by the first, pre-pass operation and wherein the first, pre-pass operation comprises checking the respective indicators to determine whether or not a primitive is compatible with the first, pre-pass, and wherein the step of stopping the first, pre-pass operation is based on the first, pre-pass operation determining from its indicator that a primitive is incompatible with the first, pre-pass operation.

19 . The graphics processor of claim 18 , wherein the graphics processor is also configured to check the respective indicators to determine whether or not a primitive is compatible with the first, pre-pass operation during the second, main pass operation, and wherein the switching to the third, fallback operation is performed based on the second, main pass operation determining from its indicator that a primitive is incompatible with the first, pre-pass operation.

20 . The graphics processor of claim 13 , wherein the step of determining whilst processing primitives by the third, fallback operation that a further primitive in the sequence of primitives should be processed by the first, pre-pass operation comprises determining whether one or more conditions for triggering a switch back to the first, pre-pass operation are met.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Nov 22, 2023
From: ØYGARD, TORD KVESTAD; KAKARLAPUDI, SANDEEP
To: ARM LIMITED
Reel/Frame 065662/0260 →
Priority Claims (10)
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
GB 2217253 · Nov 17, 2022 · national
Continuity (3)
Continuation In Part 17989548 · Nov 17, 2022
Continuation In Part 17989671 · Nov 17, 2022
Related Publication 20240169646A1 · May 23, 2024
References Cited (119)
US 5870097A · Snyder · 1999 [cited by examiner]
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 examiner]
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 · 2018 [cited by examiner]
US 10096147B2 · Goel et al. · 2018 [cited by applicant]
US 11030783B1 · Engh-Halstvedt · 2021 [cited by examiner]
US 11216993B2 · Chalfin · 2022 [cited by examiner]
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 examiner]
US 20140071150A1 · Fishwick et al. · 2014 [cited by applicant]
US 20140168220A1 · Nystad · 2014 [cited by applicant]
US 20140218390A1 · Rouet · 2014 [cited by applicant]
US 20140267256A1 · Heggelund et al. · 2014 [cited by applicant]
US 20140267259A1 · Frascati · 2014 [cited by applicant]
US 20140354661A1 · Balci et al. · 2014 [cited by applicant]
US 20140354670A1 · Heggelund · 2014 [cited by examiner]
US 20150002508A1 · Tatarinov · 2015 [cited by applicant]
US 20150058859A1 · Janssen · 2015 [cited by applicant]
US 20150062154A1 · Ellis et al. · 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 20160217608A1 · Howson · 2016 [cited by applicant]
US 20160322031A1 · Liao et al. · 2016 [cited by applicant]
US 20170148203A1 · Hakura · 2017 [cited by applicant]
US 20170161940A1 · Liktor et al. · 2017 [cited by applicant]
US 20170178386A1 · Redshaw et al. · 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 applicant]
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 20190012829A1 · Engh-Halstvedt et al. · 2019 [cited by applicant]
US 20190088009A1 · Forey et al. · 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 20200074721A1 · Heggelund · 2020 [cited by examiner]
US 20200098165A1 · Gruber · 2020 [cited by examiner]
US 20200134894A1 · Uhrenholt · 2020 [cited by examiner]
US 20200193703A1 · Favela · 2020 [cited by applicant]
US 20200312020A1 · Zhong et al. · 2020 [cited by applicant]
US 20200402295A1 · Lentz · 2020 [cited by applicant]
US 20200402297A1 · Brigg et al. · 2020 [cited by applicant]
US 20210065437A1 · Brkic · 2021 [cited by examiner]
US 20210110510A1 · Brigg et al. · 2021 [cited by applicant]
US 20210383597A1 · Voglreiter · 2021 [cited by examiner]
US 20210407191A1 · Yang · 2021 [cited by examiner]
US 20220092801A1 · Achrenius et al. · 2022 [cited by applicant]
US 20220101479A1 · Alla · 2022 [cited by examiner]
US 20220207827A1 · Acharya et al. · 2022 [cited by applicant]
US 20220237730A1 · Brkic · 2022 [cited by applicant]
US 20220366524A1 · Uhrenholt · 2022 [cited by applicant]
US 20240087078A1 · Ashkar et al. · 2024 [cited by applicant]
US 20240104684A1 · Bhiravabhatla · 2024 [cited by examiner]
US 20240169639A1 · Oygard et al. · 2024 [cited by applicant]
WO 2018052592A1 · 2018 [cited by applicant]
Notice of Allowance dated Jul. 15, 2025, U.S. Appl. No. 18/509,679, filed Nov. 15, 2023. [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]
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 Jan. 23, 2025, U.S. Appl. No. 17/989,671, 30 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]
Extended European Search Report dated Jul. 5, 2024, European Patent Application No. 23210210.3, pp. 1-10. [cited by applicant]
Notice of Allowance dated Nov. 22, 2024, U.S. Appl. No. 17/989,548, 25 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,426, 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]
Ruud, O.M., et al., “Graphics Processors”, U.S. Appl. No. 18/509,676, 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]
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]
Non-final Office Action dated Jan. 16, 2026, U.S. Appl. No. 18/509,676, 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]
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]
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]
Supplemental Response to Office Action dated Mar. 3, 2026, U.S. Appl. No. 18/509,676, 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]
Notice of Allowance dated Mar. 27, 2026, U.S. Appl. No. 18/509,676, filed Nov. 15, 2023. [cited by applicant]
Response to Office Action dated May 8, 2026, U.S. Appl. No. 18/509,448, filed Nov. 15, 2023. [cited by applicant]
Response to Office Action dated May 8, 2026, U.S. Appl. No. 18/509,439, filed Nov. 15, 2023. [cited by applicant]