IP Library Granted Patent US 12,592,021
Granted Patent B2
US 12,592,021 · App. 18/483,972 · Granted Mar 31, 2026

Graphics processing

Inventors: Olof Henrik Uhrenholt (Lomma, SE); Jakob Axel Fries (Lund, SE)
Assignee: Arm Limited
G06T15/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,592,021
App. No.
18/483,972
Granted
Mar 31, 2026
Kind
B2
Abstract

A method of operating a graphics processor when performing a certain sequence of rendering jobs that produces a series of progressively lower resolution versions of the same render output comprising issuing rendering tasks for different rendering jobs concurrently and controlling processing for a later rendering job using a respective ‘task completion status’ data structure associated with the earlier rendering job on which it depends, wherein the looking up of respective entries in the ‘task completion status’ data structure takes into account the change in resolution between the first, earlier rendering job and the second, later rendering job.

Claims (42)

1 . A method of operating a graphics processor when performing a sequence of rendering jobs, wherein each rendering job in the sequence of rendering jobs comprises a respective set of rendering tasks to be processed to produce a respective one or more render output(s) for the rendering job, the method comprising:

when performing a certain sequence of rendering jobs that produces a series of progressively lower resolution versions of the same render output in which there is a change in resolution between the render outputs produced by different rendering jobs in the sequence of rendering jobs:

issuing rendering tasks for a second, later rendering job in the sequence of rendering jobs for processing concurrently with rendering tasks for a first, earlier rendering job in the sequence of rendering jobs; and

when a rendering task for the second, later rendering job is to be processed the processing of the rendering task for the second, later rendering job depending on processing of a rendering task for the first, earlier rendering job:

controlling at least some processing of the rendering task for the second, later rendering job based on determining whether the rendering task for the first, earlier rendering job on which the at least some processing of the rendering task for the second, later rendering job depends has completed its processing,

wherein the determining whether the rendering task for the first, earlier rendering job on which the at least some processing of the rendering task for the second, later rendering job depends has completed its processing comprises looking up a corresponding entry for the rendering task in a respective ‘task completion status’ data structure associated with the first, earlier rendering job, the ‘task completion status’ data structure associated with the first, earlier rendering job containing a plurality of entries each capable of storing for a respective set of one or more rendering tasks for the first, earlier rendering job a respective indicator as to whether the set of one or more rendering tasks has completed its processing,

and wherein the looking up the corresponding entry for the rendering task in the ‘task completion status’ data structure for the first, earlier rendering job takes into account the change in resolution between the first, earlier rendering job and the second, later rendering job,

wherein when looking up the corresponding entry for the rendering task in the ‘task completion status’ data structure for the first, earlier rendering job, addressing logic for a lookup is modified to take into account the change in resolution between the first, earlier rendering job and the second, later rendering job.

2 . The method of claim 1 , wherein when looking up the corresponding entry for the rendering task in the ‘task completion status’ data structure for the first, earlier rendering job the ‘task completion status’ data structure associated with the first, earlier rendering job is downscaled to take into account the change in resolution between the first, earlier rendering job and the second, later rendering job.

3 . The method of claim 1 , wherein the certain sequence is a sequence of rendering jobs for generating a series of mipmaps, in which there is a predefined power-of-2 change in resolution between mipmaps.

4 . The method of claim 3 , wherein each rendering job in the sequence of rendering jobs produces two mipmaps.

5 . The method of claim 1 , comprising the graphics processor identifying when it is performing a certain sequence of rendering jobs that produces a series of progressively lower resolution versions of the same render output in which there is a change in resolution between the render outputs produced by different rendering jobs in the sequence of rendering jobs, and when it is identified that the graphics processor is performing such a sequence of rendering jobs, performing the looking up to take into account the change in resolution between the rendering jobs.

6 . The method of claim 1 , wherein once the graphics processor has finished performing a final rendering job certain sequence of rendering jobs that produces a series of progressively lower resolution versions of the same render output in which there is a change in resolution between the render outputs produced by different rendering jobs in the sequence of rendering jobs, a strict processing barrier is then enforced between the final rendering job and a further rendering job to be performed.

7 . A computer program product containing instructions that when executed by a data processor will cause the data processor to perform a method of operating a graphics processor as claimed in claim 1 .

8 . A graphics processor comprising:

a set of one or more processing cores; and

a control circuit configured to:

when performing a certain sequence of rendering jobs that produces a series of progressively lower resolution versions of the same render output in which there is a change in resolution between the render outputs produced by different rendering jobs in the sequence of rendering jobs:

cause a task issuing circuit of the graphics processor to: issue rendering tasks for a second, later rendering job in the sequence of rendering jobs for processing concurrently with rendering tasks for a first, earlier rendering job in the sequence of rendering jobs; and

the control circuit further configured to:

when a rendering task for the second, later rendering job is to be processed, the processing of the rendering task for the second, later rendering job depending on processing of a rendering task for the first, earlier rendering job:

control at least some processing of the rendering task for the second, later rendering job based on determining whether the rendering task for the first, earlier rendering job on which the at least some processing of the rendering task for the second, later rendering job depends has completed its processing,

wherein the determining whether the rendering task for the first, earlier rendering job on which the at least some processing of the rendering task for the second, later rendering job depends has completed its processing comprises looking up a corresponding entry for the rendering task in a respective ‘task completion status’ data structure associated with the first, earlier rendering job, the ‘task completion status’ data structure associated with the first, earlier rendering job containing a plurality of entries each capable of storing for a respective set of one or more rendering tasks for the first, earlier rendering job a respective indicator as to whether the set of one or more rendering tasks has completed its processing,

and wherein the looking up the corresponding entry for the rendering task in the ‘task completion status’ data structure for the first, earlier rendering job takes into account the change in resolution between the first, earlier rendering job and the second, later rendering job,

(i) wherein when looking up the corresponding entry for the rendering task in the ‘task completion status’ data structure for the first, earlier rendering job the ‘task completion status’ data structure associated with the first, earlier rendering job is downscaled to take into account the change in resolution between the first, earlier rendering job and the second, later rendering job; and/or

(ii) wherein when looking up the corresponding entry for the rendering task in the ‘task completion status’ data structure for the first, earlier rendering job, addressing logic for a lookup is modified to take into account the change in resolution between the first, earlier rendering job and the second, later rendering job.

9 . The graphics processor of claim 8 , wherein the certain sequence is a sequence of rendering jobs for generating a series of mipmaps, in which there is a predefined power-of-2 change in resolution between mipmaps.

10 . The graphics processor of claim 9 , wherein the graphics processor is configured so that each rendering job in the sequence of rendering jobs produces two mipmaps.

11 . The graphics processor of claim 8 , wherein the graphics processor is configured to identify when it is performing a certain sequence of rendering jobs that produces a series of progressively lower resolution versions of the same render output in which there is a change in resolution between the render outputs produced by different rendering jobs in the sequence of rendering jobs, and when the graphics processor identifies that it is performing such a sequence of rendering jobs, the control circuit is configured to perform the looking up to take into account the change in resolution between the rendering jobs.

12 . The graphics processor of claim 8 , wherein once the graphics processor has finished performing a final rendering job certain sequence of rendering jobs that produces a series of progressively lower resolution versions of the same render output in which there is a change in resolution between the render outputs produced by different rendering jobs in the sequence of rendering jobs, the control circuit is configured to then enforce a strict processing barrier between the final rendering job and any further rendering jobs to be performed.

13 . A method of operating a graphics processor when performing a sequence of rendering jobs, wherein each rendering job in the sequence of rendering jobs comprises a respective set of rendering tasks to be processed to produce a respective one or more render output(s) for the rendering job, the method comprising:

when performing a certain sequence of rendering jobs that produces a series of progressively lower resolution versions of the same render output in which there is a change in resolution between the render outputs produced by different rendering jobs in the sequence of rendering jobs:

issuing rendering tasks for a second, later rendering job in the sequence of rendering jobs for processing concurrently with rendering tasks for a first, earlier rendering job in the sequence of rendering jobs; and

when a rendering task for the second, later rendering job is to be processed the processing of the rendering task for the second, later rendering job depending on processing of a rendering task for the first, earlier rendering job:

controlling at least some processing of the rendering task for the second, later rendering job based on determining whether the rendering task for the first, earlier rendering job on which the at least some processing of the rendering task for the second, later rendering job depends has completed its processing,

wherein the determining whether the rendering task for the first, earlier rendering job on which the at least some processing of the rendering task for the second, later rendering job depends has completed its processing comprises looking up a corresponding entry for the rendering task in a respective ‘task completion status’ data structure associated with the first, earlier rendering job, the ‘task completion status’ data structure associated with the first, earlier rendering job containing a plurality of entries each capable of storing for a respective set of one or more rendering tasks for the first, earlier rendering job a respective indicator as to whether the set of one or more rendering tasks has completed its processing,

and wherein the looking up the corresponding entry for the rendering task in the ‘task completion status’ data structure for the first, earlier rendering job takes into account the change in resolution between the first, earlier rendering job and the second, later rendering job,

wherein when looking up the corresponding entry for the rendering task in the ‘task completion status’ data structure for the first, earlier rendering job the ‘task completion status’ data structure associated with the first, earlier rendering job is downscaled to take into account the change in resolution between the first, earlier rendering job and the second, later rendering job.

14 . The method of claim 13 , wherein the certain sequence is a sequence of rendering jobs for generating a series of mipmaps, in which there is a predefined power-of-2 change in resolution between mipmaps.

15 . The method of claim 13 , comprising the graphics processor identifying when it is performing a certain sequence of rendering jobs that produces a series of progressively lower resolution versions of the same render output in which there is a change in resolution between the render outputs produced by different rendering jobs in the sequence of rendering jobs, and when it is identified that the graphics processor is performing such a sequence of rendering jobs, performing the looking up to take into account the change in resolution between the rendering jobs.

16 . The method of claim 13 , wherein once the graphics processor has finished performing a final rendering job certain sequence of rendering jobs that produces a series of progressively lower resolution versions of the same render output in which there is a change in resolution between the render outputs produced by different rendering jobs in the sequence of rendering jobs, a strict processing barrier is then enforced between the final rendering job and a further rendering job to be performed.

17 . A computer program product containing instructions that when executed by a data processor will cause the data processor to perform a method of operating a graphics processor as claimed in claim 13 .

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Oct 10, 2023
From: UHRENHOLT, OLOF HENRIK; FRIES, JAKOB AXEL
To: ARM LIMITED
Reel/Frame 065197/0368 →
Continuity (5)
Continuation In Part 18478078 · Sep 29, 2023
Continuation In Part 18478131 · Sep 29, 2023
Continuation In Part 18478121 · Sep 29, 2023
Continuation In Part 18478657 · Sep 29, 2023
Related Publication 20250111577A1 · Apr 3, 2025
References Cited (43)
US 7023437B1 · Voorhies et al. · 2006 [cited by applicant]
US 11127188B1 · Uhrenholt · 2021 [cited by applicant]
US 11132835B1 · Uhrenholt · 2021 [cited by applicant]
US 11256720B1 · Hoffman · 2022 [cited by applicant]
US 20030225898A1 · Saika · 2003 [cited by applicant]
US 20050195197A1 · Wolfe · 2005 [cited by applicant]
US 20120304194A1 · Engh-Halstevdt · 2012 [cited by examiner]
US 20150032969A1 · Bratt · 2015 [cited by applicant]
US 20150220341A1 · Ohannessian, Jr · 2015 [cited by applicant]
US 20160239939A1 · Kakarlapudi · 2016 [cited by applicant]
US 20170148204A1 · Hakura et al. · 2017 [cited by applicant]
US 20170212764A1 · Lyberis · 2017 [cited by applicant]
US 20170316601A1 · Kakarlapudi · 2017 [cited by examiner]
US 20180158168A1 · Foo · 2018 [cited by applicant]
US 20180165788A1 · Balci · 2018 [cited by applicant]
US 20190088009A1 · Forey et al. · 2019 [cited by applicant]
US 20200111247A1 · Heggelund · 2020 [cited by applicant]
US 20200379909A1 · Uhrenholt · 2020 [cited by applicant]
US 20210192672A1 · Mccrary · 2021 [cited by examiner]
US 20220020108A1 · Uhrenholt · 2022 [cited by applicant]
US 20220101479A1 · Alla et al. · 2022 [cited by applicant]
US 20240320896A1 · Ma · 2024 [cited by applicant]
GB 2595025A · 2021 [cited by applicant]
U.S. Appl. No. 18/478,121, filed Sep. 29, 2023, “Graphics Processing”. [cited by applicant]
U.S. Appl. No. 18/478,131, filed Sep. 29, 2023, “Graphics Processing”. [cited by applicant]
U.S. Appl. No. 18/478,078, filed Sep. 29, 2023, “Graphics Processing”. [cited by applicant]
U.S. Appl. No. 18/478,657, filed Sep. 29, 2023, “Graphics Processing”. [cited by applicant]
Combined Search and Examination Report under Sections 17 and 18(3), dated Feb. 4, 2025, GB Application No. GB2414257.2, 5 pages. [cited by applicant]
U.S. Appl. No. 18/894,496, filed Sep. 24, 2024, “Graphics Processing”. [cited by applicant]
Non-final Office Action dated Jul. 9, 2025, U.S. Appl. No. 18/478,131 filed Sep. 29, 2023. [cited by applicant]
Non-final Office Action dated Jun. 9, 2025, U.S. Appl. No. 18/478,657, filed Sep. 29, 2023. [cited by applicant]
Response to Office Action dated Jun. 18, 2025, U.S. Appl. No. 18/478,657, filed Sep. 29, 2023. [cited by applicant]
Non-final Office Action dated May 19, 2025, U.S. Appl. No. 18/478,078, filed Sep. 29, 2023. [cited by applicant]
Combined Search and Examination Report under Sections 17 and 18(3), dated Mar. 26, 2024, GB Patent Application No. GB2315009.7. [cited by applicant]
Non-final Office Action dated Aug. 18, 2025, U.S. Appl. No. 18/478,121, filed Sep. 29, 2023. [cited by applicant]
Final Office Action dated Aug. 19, 2025, U.S. Appl. No. 18/478,657, filed Sep. 29, 2023. [cited by applicant]
Response to Office Action dated Aug. 26, 2025, U.S. Appl. No. 18/478,131 filed Sep. 29, 2023. [cited by applicant]
Notice of Allowance dated Sep. 18, 2025, U.S. Appl. No. 18/478,131 filed Sep. 29, 2023. [cited by applicant]
Response to Office Action dated Sep. 19, 2025, U.S. Appl. No. 18/478,078, filed Sep. 29, 2023. [cited by applicant]
Final Office Action dated Sep. 30, 2025, U.S. Appl. No. 18/478,078, filed Sep. 29, 2023. [cited by applicant]
Response to Office Action dated Dec. 17, 2025, U.S. Appl. No. 18/478,657, filed Sep. 29, 2023. [cited by applicant]
Response to Office Action dated Dec. 18, 2025, U.S. Appl. No. 18/478,121, filed Sep. 29, 2023. [cited by applicant]
Response to Office Action dated Dec. 29, 2025, U.S. Appl. No. 18/478,078, filed Sep. 29, 2023. [cited by applicant]