Method and apparatus for efficient processing of derived uniform values in a graphics processor

US2019087998A1 · US · A1

Patent metadata
FieldValue
Publication numberUS-2019087998-A1
Application numberUS-201715705530-A
CountryUS
Kind codeA1
Filing dateSep 15, 2017
Priority dateSep 15, 2017
Publication dateMar 21, 2019
Grant date

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.

Various embodiments enable low frequency calculation of derived uniform values. A compiler can identify one or more portions of a shader that calculate a derived value based on an input value. For example, this portion may include instructions that use constant values, or the results of prior functions that used constant values. The constant values may include hardcoded values provided by the program (e.g., immediates) and/or other constant values. This portion of the shader can be extracted by the compiler and compiled into a first program. The compiler can compile the remainder of the shader into a second program that receives the derived uniform values from the first program. By extracting the portion(s) of the program that calculates a derived value into a separate program, the derived uniform value or values can be calculated at a lower frequency than if they were calculated for each pixel.

First claim

Opening claim text (preview).

What is claimed is: 1 . A system comprising: a central processing unit to execute an application; a graphics processor to process graphics commands responsive to execution of the application; and a compiler to: receive a shader from the application; analyze the shader to identify a portion of the shader including derived uniform calculations; generate a program to execute the portion of the shader using the derived uniform calculations; and generate a compiled shader configured to receive an output of the program. 2 . The system as in claim 1 wherein the program is executable by the central processing unit. 3 . The system as in claim 2 further comprising: a device driver to: receive a draw call from the application, the draw call including at least one input value; execute the program to perform the derived uniform calculations using the at least one input value to generate at least one output value; and send the at least one output value from the program to the compiled shader to perform the draw call. 4 . The system as in claim 1 wherein the program is a compute shader executable by the graphics processor. 5 . The system as in claim 4 further comprising: a device driver to: receive a draw call from the application, the draw call including at least one input value; and send the at least one input value to the compute shader to perform the derived uniform calculations and generate at least one output value, wherein the compiled shader performs the draw call using the at least one output value. 6 . The system as in claim 1 wherein the program is a vertex shader executable by the graphics processor. 7 . The system as in claim 6 further comprising: a device driver to: receive a draw call from the application, the draw call including at least one input value; and send the at least one input value to the vertex shader to perform the derived uniform calculations and generate at least one output value, wherein the compiled shader performs the draw call using the at least one output value. 8 . A method comprising: receiving a shader from an application executable by a central processing unit; analyzing the shader to identify a portion of the shader including derived uniform calculations, the shader executable by a graphics processor to process graphics commands responsive to execution of the application; generating a program to execute the portion of the shader using the derived uniform calculations; and generating a compiled shader configured to receive an output of the program. 9 . The method as in claim 8 wherein the program is executable by the central processing unit. 10 . The method as in claim 9 further comprising: receiving a draw call from the application, the draw call including at least one input value; executing the program to perform the derived uniform calculations using the at least one input value to generate at least one output value; and sending the at least one output value from the program to the compiled shader to perform the draw call. 11 . The method as in claim 8 wherein the program is a compute shader executable by the graphics processor. 12 . The method as in claim 11 further comprising: receiving a draw call from the application, the draw call including at least one input value; and sending the at least one input value to the compute shader to perform the derived uniform calculations and generate at least one output value, wherein the compiled shader performs the draw call using the at least one output value. 13 . The method as in claim 8 wherein the program is a vertex shader executable by the graphics processor. 14 . The method as in claim 13 further comprising: receiving a draw call from the application, the draw call including at least one input value; and sending the at least one input value to the vertex shader to perform the derived uniform calculations and generate at least one output value, wherein the compiled shader performs the draw call using the at least one output value. 15 . A machine-readable medium having program code stored thereon which, when executed by a machine, causes the machine to perform the operations of: receiving a shader from an application executable by a central processing unit; analyzing the shader to identify a portion of the shader including derived uniform calculations, the shader executable by a graphics processor to process graphics commands responsive to execution of the application; generating a program to execute the portion of the shader using the derived uniform calculations; and generating a compiled shader configured to receive an output of the program. 16 . The machine-readable medium as in claim 15 wherein the program is executable by the central processing unit. 17 . The machine-readable medium as in claim 16 wherein the program code, when executed by the machine, further causes the machine to perform the operations of: receiving a draw call from the application, the draw call including at least one input value; executing the program to perform the derived uniform calculations using the at least one input value to generate at least one output value; and sending the at least one output value from the program to the compiled shader to perform the draw call. 18 . The machine-readable medium as in claim 15 wherein the program is a compute shader executable by the graphics processor. 19 . The machine-readable medium as in claim 18 wherein the program code, when executed by the machine, further causes the machine to perform the operations of: receiving a draw call from the application, the draw call including at least one input value; and sending the at least one input value to the compute shader to perform the derived uniform calculations and generate at least one output value, wherein the compiled shader performs the draw call using the at least one output value. 20 . The machine-readable medium as in claim 18 wherein the program is a vertex shader executable by the graphics processor, and wherein the program code, when executed by the machine, further causes the machine to perform the operations of: receiving a draw call from the application, the draw call including at least one input value; and sending the at least one input value to the vertex shader to perform the derived uniform calculations and generate at least one output value, wherein the compiled shader performs the draw call using the at least one output value.

Assignees

Inventors

Classifications

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 US2019087998A1 cover?
Various embodiments enable low frequency calculation of derived uniform values. A compiler can identify one or more portions of a shader that calculate a derived value based on an input value. For example, this portion may include instructions that use constant values, or the results of prior functions that used constant values. The constant values may include hardcoded values provided by the p…
Who is the assignee on this patent?
Intel Corp
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 Thu Mar 21 2019 00:00:00 GMT+0000 (Coordinated Universal Time) (A1). Legal status and post-grant events are not shown on this page.
What related patents are in patentsdb?
We list 1 related publication on this page (citations in our corpus or others sharing the same primary CPC).