Method and apparatus for processing graphics commands
US-2017132748-A1 · May 11, 2017 · US
US2019087998A1 · US · A1
| Field | Value |
|---|---|
| Publication number | US-2019087998-A1 |
| Application number | US-201715705530-A |
| Country | US |
| Kind code | A1 |
| Filing date | Sep 15, 2017 |
| Priority date | Sep 15, 2017 |
| Publication date | Mar 21, 2019 |
| Grant date | — |
A practical reading order for non-experts. Skip the full description unless you need deep technical detail.
What the patent document calls the invention.
A short plain-language summary of the technical disclosure.
Who owns or filed the patent and who is credited as inventor.
Filing, priority, publication, and grant dates set the timeline.
The legal scope of protection — read this for what is actually claimed.
Technology tags used to group this patent with similar filings.
Prior art links and similar publications in this corpus.
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.
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.
Shading · CPC title
Offload · CPC title
General purpose rendering architectures · CPC title
involving 3D image data · CPC title
considering hardware capabilities · CPC title
Related publications grouped by family.
Answers are generated from the same data shown on this page.