Rendering optimisation by recompiling shader instructions

US11276222B2 · US · B2

Patent metadata
FieldValue
Publication numberUS-11276222-B2
Application numberUS-202016888773-A
CountryUS
Kind codeB2
Filing dateMay 31, 2020
Priority dateMay 31, 2019
Publication dateMar 15, 2022
Grant dateMar 15, 2022

How to read this patent

A practical reading order for non-experts. Skip the full description unless you need deep technical detail.

  1. Title

    What the patent document calls the invention.

  2. Abstract

    A short plain-language summary of the technical disclosure.

  3. Assignees and inventors

    Who owns or filed the patent and who is credited as inventor.

  4. Key dates

    Filing, priority, publication, and grant dates set the timeline.

  5. First independent claim

    The legal scope of protection — read this for what is actually claimed.

  6. CPC / IPC classifications

    Technology tags used to group this patent with similar filings.

  7. Citations and related patents

    Prior art links and similar publications in this corpus.

Abstract

Official abstract text for this publication.

A rendering optimisation identifies a draw call within a current render (which may be the first draw call in the render or a subsequent draw call in the render) and analyses a last shader in the series of shaders used by the draw call to determine whether the last shader samples from the one or more buffers at coordinates matching a current fragment location. If this determination is positive, the method further recompiles the last shader to replace an instruction that reads data from one of the one or more buffers at coordinates matching a current fragment location with an instruction that reads from the one or more buffers at coordinates stored in on-chip registers.

First claim

Opening claim text (preview).

What is claimed is: 1. A method of rendering a scene in a graphics system, the method comprising: identifying a first draw call within a current render, wherein the current render samples from one or more buffers; analysing at least a last shader in a series of shaders used by the first draw call to determine whether the last shader samples from the one or more buffers at coordinates matching a current fragment location; and in response to determining that the last shader used by the first draw call does sample from the one or more buffers at coordinates matching a current fragment location, recompiling the last shader to replace an instruction that reads data from one of the one or more buffers at coordinates matching a current fragment location with an instruction that reads from the one or more buffers at coordinates stored in on-chip registers. 2. The method according to claim 1 , wherein recompiling the last shader further comprises: removing any instructions that calculate the coordinates matching a current fragment location. 3. The method according to claim 2 , further comprising recompiling any shaders in the series of shaders to omit any instructions that calculate or output parameters used only by instructions that have been removed in the recompilation of the last shader. 4. The method according to claim 1 , wherein analysing at least a last shader in a series of shaders used by the first draw call to determine whether the last shader samples from the one or more buffers at coordinates matching a current fragment location comprises: analysing at least a last shader in a series of shaders used by the first draw call to determine whether the last shader samples from the one or more buffers using screen space coordinates that correspond to the current fragment location. 5. The method according to claim 1 , wherein analysing at least a last shader in a series of shaders used by the first draw call to determine whether the last shader samples from the one or more buffers at coordinates matching a current fragment location comprises: inspecting code in at least the last shader in the series of shaders to determine whether one of a predefined set of patterns is present within the code. 6. The method according to claim 1 , wherein analysing at least a last shader in a series of shaders used by the first draw call to determine whether the last shader samples from the one or more buffers at coordinates matching a current fragment location comprises: inspecting code in at least the last shader in the series of shaders to determine whether a sample position used to sample from the identified buffers is calculated in the last shader using a screen-space transformation. 7. The method according to claim 1 , wherein the first draw call within a current render is an initial draw call in the current render. 8. A non-transitory computer readable storage medium having stored thereon computer readable code configured to cause the method of claim 1 to be performed when the code is executed. 9. A graphics system comprising a general purpose processor and a graphics processor, wherein the general purpose processor comprises a driver and a compiler, wherein the driver is configured to: identify a first draw call within a current render, wherein the current render samples from one or more buffers; analyse at least a last shader in a series of shaders used by the first draw call to determine whether the last shader samples from the one or more buffers at coordinates matching a current fragment location; and in response to determining that the last shader used by the first draw call does sample from the one or more buffers at coordinates matching a current fragment location, trigger recompilation of the last shader by the compiler to replace an instruction that reads data from one of the one or more buffers at coordinates matching a current fragment location with an instruction that reads from the one or more buffers at coordinates stored in on-chip registers. 10. The graphics system according to claim 9 , wherein the compiler is configured, in response to receiving a trigger signal from the driver, to: recompile the last shader to replace an instruction that reads data from one of the one or more buffers at coordinates matching a current fragment location with an instruction that reads from the one or more buffers at coordinates stored in on-chip registers. 11. The graphics system according to claim 10 , wherein the compiler is further configured, in response to receiving a trigger signal from the driver, to: recompile the last shader to remove any instructions that calculate the coordinates matching a current fragment location. 12. The graphics system according to claim 11 , wherein the compiler is further configured, in response to receiving a trigger signal from the driver, to: recompile the last shader to omit any instructions that calculate or output parameters used only by instructions that have been removed in the recompilation of the last shader.

Assignees

Inventors

Classifications

  • Graphics controllers · CPC title

  • Special purpose registers · CPC title

  • Runtime code conversion or optimisation · CPC title

  • Optimisation · CPC title

  • G06T15/005Primary

    General purpose rendering architectures · CPC title

Patent family

Related publications grouped by family.

External sources

Frequently asked questions

Answers are generated from the same data shown on this page.

What does patent US11276222B2 cover?
A rendering optimisation identifies a draw call within a current render (which may be the first draw call in the render or a subsequent draw call in the render) and analyses a last shader in the series of shaders used by the draw call to determine whether the last shader samples from the one or more buffers at coordinates matching a current fragment location. If this determination is positive, …
Who is the assignee on this patent?
Imagination Tech Ltd
What technology area does this patent fall under?
Primary CPC classification G06T15/005. Mapped technology areas include Physics.
When was this patent published?
Publication date Tue Mar 15 2022 00:00:00 GMT+0000 (Coordinated Universal Time) (B2). Legal status and post-grant events are not shown on this page.
What related patents are in patentsdb?
We list 5 related publications on this page (citations in our corpus or others sharing the same primary CPC).