Graphics processing
AssigneeArm Limited
InventorsOlof Henrik Uhrenholt, Jakob Axel Fries
Life of this patent
Estimating the term…
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.
Claims17
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.
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.
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.
Dependencies are inferred from the claim text.