Application binary interface for multi-pass shaders
Abstract
An application binary interface includes a descriptor specifying a binary shader for each pass of a multi-pass shader. The application binary interface also includes a graphics state of a graphics object for each pass of the multi-pass shader. The graphics state for the first pass is an initial graphics state of the graphics object. The graphics state for each subsequent pass specifies a change from the graphics state of a previous pass. The application binary interface further includes parameters for the binary shaders. The application binary interface links the binary shaders together based on the parameters. Further, the parameters of the binary shaders may be modified at run time to configure the multi-pass shader. The binary shader of each pass is then executed based on the graphics state and parameters of the pass to render the graphics object.
Claims
exact text as granted — not AI-modified1 . An application binary interface for a multi-pass shader comprising a plurality of passes, the application binary interface comprising:
a descriptor for each pass of the plurality of passes for specifying a binary shader of the pass; at least one parameter for the binary shader of each pass; and a graphics state of each pass.
2 . The application binary interface of claim 1 , wherein the plurality of passes are arranged in series, and the graphics state of a subsequent pass specifies a change from the graphics state of a previous pass.
3 . The application binary interface of claim 1 , wherein the plurality of passes comprises a first pass and a second pass, the at least one parameter for the binary shader of the first pass comprises an output parameter, and the at least one parameter for the binary shader of the second pass comprises an input parameter, the input parameter for the binary shader of the second pass being the output parameter for the binary shader of the first pass.
4 . The application binary interface of claim 1 , wherein the graphics state of a first pass of the plurality of passes is an initial graphics state for a graphics object.
5 . The application binary interface of claim 4 , wherein the graphics state of a second pass of the plurality of passes specifies a change from the graphics state of the first pass.
6 . The application binary interface of claim 1 , wherein the descriptor of each pass specifies the binary shader of the pass.
7 . The application binary interface of claim 1 , wherein the descriptor of each pass specifies a plurality of binary shaders, and the at least one parameter for the binary shader of the pass identifies the binary shader of the pass from the plurality of binary shaders.
8 . The application binary interface of claim 7 , wherein the at least one parameter for the binary shader of each pass is modifiable at run time to configure the multi-pass shader.
9 . The application binary interface of claim 1 , wherein the application binary interface is a binary file.
10 . A system for generating an application binary interface for a multi-pass shader comprising a plurality of passess, the system comprising:
a memory system configured to store a computer program for rendering a graphics object, the memory system further configured to store a compiler; and a computing processor configured to execute the compiler on the computer program to generate an application binary interface comprising a descriptor for each pass of the plurality of passes for specifying a binary shader of the pass, at least one parameter for the binary shader of each pass, and a graphics state of each pass.
11 . The system of claim 10 , wherein the computing processor is further configured to execute the compiler on the computer program to generate the binary shader of each pass.
12 . The system of claim 10 , wherein the plurality of passes are arranged in series, and the graphics state of a subsequent pass specifies a change from the graphics state of a previous pass.
13 . The system of claim 10 , wherein the plurality of passes comprises a first pass and a second pass, the at least one parameter for the binary shader of the first pass comprises an output parameter, and the at least one parameter for the binary shader of the second pass comprises an input parameter, the input parameter for the binary shader of the second pass being the output parameter for the binary shader of the first pass.
14 . The system of claim 10 , wherein the graphics state of a first pass of the plurality of passes is an initial graphics state for a graphics object.
15 . The system of claim 14 , wherein the graphics state of a second pass of the plurality of passes specifies a change from the graphics state of the first pass.
16 . The system of claim 10 , wherein the descriptor of each pass specifies the binary shader of the pass.
17 . The system of claim 10 , wherein the descriptor of each pass specifies a plurality of binary shaders, and the at least one parameter for the binary shader of the pass identifies the binary shader of the pass from the plurality of binary shaders.
18 . The system of claim 17 , wherein the computer processor is configured to modify the at least one parameter for the binary shader of each pass at run time to configure the multi-pass shader.
19 . The system of claim 10 , wherein the application binary interface is a binary file.
20 . A method of rendering a graphics object, the method comprising:
identifying a binary shader of a first pass of a multi-pass shader based on an application binary interface; identifying a graphics state of the first pass based on the application binary interface; executing the binary shader of the first pass based on the graphics state of the first pass to generate a result for the first pass; identifying a binary shader of a second pass of the multi-pass shader based on the application binary interface; identifying a graphics state of the second pass based on the application binary interface; and executing the binary shader of the second pass based on the graphics state of the second pass and the result of the first pass to generate a result for the second pass.
21 . The method of claim 20 , wherein the result of the first pass comprises a first value of each pixel of a plurality of pixels of the graphics object, and the result of the second pass comprises a second value of each pixel of the plurality of pixels.
22 . The method of claim 21 , wherein the first value of each pixel in the plurality of pixels represents a color of the pixel.
23 . The method of claim 21 , wherein the second value of each pixel in the plurality of pixels represents a color of the pixel.
24 . The method of claim 20 , wherein the application binary interface comprises an output parameter for the binary shader of the first pass and an input parameter for the binary shader of the second pass, the output parameter for the binary shader of the first pass being the input parameter for the binary shader of the second pass.
25 . The method of claim 24 , wherein the output parameter for the binary shader of the first pass specifies the result of the first pass.
26 . The method of claim 20 , wherein the application binary interface comprises an output parameter for the binary shader of the second pass, the output parameter for the binary shader of the second pass specifying the result of the second pass.
27 . The method of claim 20 , wherein identifying the binary shader of the first pass of the multi-pass shader based on the application binary interface comprises selecting the binary shader of the first pass based on a descriptor of the first pass.
28 . The method of claim 20 , wherein identifying the binary shader of the first pass of the multi-pass shader based on the application binary interface comprises selecting the binary shader of the first pass based on a descriptor of the first pass and at least one parameter for the binary shader of the first pass.
29 . A system for rendering a graphics object, the system comprising:
a computing processor configured to identify a binary shader of a first pass of a multi-pass shader, a graphics state of the first pass, a binary shader of a second pass of the multi-pass shader, and a graphics state of the second pass, based on an application binary interface; and a graphics processor configured to execute the binary shader of the first pass based on the graphics state of the first pass to generate a result for the first pass, the graphics processor further configured to execute the binary shader of the second pass based on the graphics state of the second pass and the result of the first pass to generate a result for the second pass.
30 . The system of claim 29 , wherein the graphics object comprises a plurality of pixels, the result of the first pass comprises a first value of each pixel in the plurality of pixels, and the result of the second pass comprises a second value of each pixel in the plurality of pixels.
31 . The system of claim 30 , wherein the first value of each pixel in the plurality of pixels represents a color of the pixel.
32 . The system of claim 30 , wherein the second value of each pixel in the plurality of pixels represents a color of the pixel.
33 . The system of claim 29 , wherein the application binary interface comprises an output parameter for the binary shader of the first pass and an input parameter for the binary shader of the second pass, the output parameter for the binary shader of the first pass being the input parameter for the binary shader of the second pass.
34 . The system of claim 29 , wherein the computing processor is further configured to select the binary shader of the first pass based on a descriptor of the first pass.
35 . The system of claim 29 , wherein the computing processor is further configured to select the binary shader of the first pass based on a descriptor of the first pass and at least one parameter for the binary shader of the first pass.
36 . A computer program product comprising computer program code for performing a method of rendering a graphics object, the method comprising:
identifying a binary shader of a first pass of a multi-pass shader based on an application binary interface; identifying a graphics state of the first pass based on the application binary interface; executing the binary shader of the first pass based on the graphics state of the first pass to generate a result for the first pass; identifying a binary shader of a second pass of the multi-pass shader based on the application binary interface; identifying a graphics state of the second pass based on the application binary interface; and executing the binary shader of the second pass based on the graphics state of the second pass and the result of the first pass to generate a result for the second pass.
37 . The computer program product of claim 36 , wherein the graphics state of the second pass specifies a change from the graphics state of the first pass.Join the waitlist — get patent alerts
Track US2006071933A1 — get alerts on status changes and closely related new filings.
We store only your email — no account needed. See our privacy policy.