IP Library Granted Patent US 10,861,124
Granted Patent B2
US 10,861,124 · App. 16/283,116 · Granted Dec 8, 2020

Methods and systems for generating shaders to emulate a fixed-function graphics pipeline

Inventor: Aidan Fabius (Toronto, CA)
Assignee: Channel One Holdings Inc.
G06T1/20G06T15/005G06F8/36
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 10,861,124
App. No.
16/283,116
Granted
Dec 8, 2020
Kind
B2
Abstract

Methods, systems, and computer-readable media for rendering graphics using a graphics pipeline for emulating a fixed-function graphics pipeline, including selecting a first pre-compiled shader chunk from a set of pre-compiled shader chunks, selecting at least one second pre-compiled shader chunk from the set of pre-compiled shader chunks, and, concatenating the first shader chunk with the at least one second shader chunk, wherein each shader chunk corresponds to a fixed-function graphics function.

Claims (43)

1. A method for emulating a fixed-function graphics pipeline using a graphics processing unit with a programmable graphics pipeline, comprising:

providing a first pre-compiled shader chunk for performing a function of the fixed-function graphics pipeline, a second pre-compiled shader chunk for performing the function, and at least one additional pre-compiled shader chunk, wherein the first pre-compiled shader chunk shares a subset of instructions with the second pre-compiled shader chunk, and wherein the first pre-compiled shader chunk comprises a first instruction and the second pre-compiled shader chunk does not comprise the first instruction;

providing a conditional logic script that defines the emulation of the function in the programmable graphics pipeline;

a processor evaluating a condition of the conditional logic script;

in response to evaluating the logic script and determining that the first instruction is required by the condition to perform the function, the processor selecting the first pre-compiled shader chunk from between the first pre-compiled shader chunk and the second pre-compiled shader chunk;

the processor selecting at least one additional pre-compiled shader chunk from the set of pre-compiled shader chunks;

the processor concatenating the first shader chunk with the at least one additional shader chunk to form a shader program that excludes loops, wherein the shader program comprises machine code instructions for execution by the graphics processing unit; and

following the forming of the shader program, the graphics processing unit executing the shader program to emulate the fixed-function graphics pipeline.

2. The method of claim 1 , wherein each shader chunk corresponds to one and only one fixed-function graphics function.

3. The method of claim 1 , wherein the first and at least one additional pre-compiled shader chunks are selected according to received requirements for specific graphics functions to be included in the shader.

4. The method of claim 3 , wherein the first and at least one additional pre-compiled shader chunks are concatenated in order of shader instruction type.

5. The method of claim 3 , further comprising rendering a graphics object from model data using the shader program.

6. The method of claim 1 , wherein the first pre-compiled shader chunk and the at least one additional pre-compiled shader chunk exclude loops.

7. A system for emulating a fixed-function graphics pipeline with a programmable graphics pipeline, comprising:

a graphics processing unit;

at least one non-transient computer-readable medium storing a set of pre-compiled shader chunks;

a processor configured to:

provide a first pre-compiled shader chunk for performing a function of the fixed-function graphics pipeline, a second pre-compiled shader chunk for performing the function, and at least one additional pre-compiled shader chunk, wherein the first pre-compiled shader chunk shares a subset of instructions with the second pre-compiled shader chunk, and wherein the first pre-compiled shader chunk comprises a first instruction and the second pre-compiled shader chunk does not comprise the first instruction;

provide a conditional logic script that defines the emulation of the function in the programmable graphics pipeline;

evaluate a condition of the conditional logic script;

in response to evaluating the logic script and determining that the first instruction is required by the condition to perform the function, select the first pre-compiled shader chunk from between the first pre-compiled shader chunk and the second pre-compiled shader chunk;

select at least one additional pre-compiled shader chunk from the set of pre-compiled shader chunks;

concatenate the first pre-compiled shader chunk with the at least one additional pre-compiled shader chunk to form a shader program that excludes loops, wherein the shader program comprises machine code instructions for execution by the graphics processing unit; and

wherein, following the forming of the shader program, the graphics processing unit is configured to execute the shader program to emulate the fixed-function graphics pipeline.

8. The system of claim 7 , wherein the first pre-compiled shader chunk and the at least one additional pre-compiled shader chunk pertain to a first type of shader instructions and a first shader type.

9. The system of claim 7 , wherein the first pre-compiled shader chunk pertains to a different shader instruction type than the at least one additional pre-compiled shader chunk.

10. The system of claim 7 , wherein the first pre-compiled shader chunk pertains to a different shader type than the at least one additional pre-compiled shader chunk.

11. The system of claim 7 , wherein the at least one non-transient computer-readable medium further stores model data, and wherein the graphics processing unit is further configured to render a graphics object from the model data using the shader program.

12. The system of claim 7 , wherein the at least one non-transient computer-readable medium comprises a system memory and a graphics memory, wherein the processor is further configured to store the shader program in the graphics memory.

13. The system of claim 7 , wherein the first pre-compiled shader chunk and the at least one additional pre-compiled shader chunk exclude loops.

14. A non-transitory computer-readable medium storing computer program instructions which, when executed by a processor and a graphics processing unit, cause the processor and the graphics processing unit to carry out a method of emulating a fixed-function graphics pipeline, the method comprising:

providing a first pre-compiled shader chunk for performing a function of the fixed-function graphics pipeline, a second pre-compiled shader chunk for performing the function, and at least one additional pre-compiled shader chunk, wherein the first pre-compiled shader chunk shares a subset of instructions with the second pre-compiled shader chunk, and wherein the first pre-compiled shader chunk comprises a first instruction and the second pre-compiled shader chunk does not comprise the first instruction;

providing a conditional logic script that defines the emulation of the function in the programmable graphics pipeline;

the processor evaluating a condition of the conditional logic script;

in response to evaluating the logic script and determining that the first instruction is required by the condition to perform the function, the processor selecting the first pre-compiled shader chunk from between the first pre-compiled shader chunk and the second pre-compiled shader chunk;

the processor selecting at least one additional pre-compiled shader chunk from the set of pre-compiled shader chunks;

the processor concatenating the first shader chunk with the at least one additional shader chunk to form a shader program that excludes loops, wherein the shader program comprises machine code instructions for execution by the graphics processing unit; and

following the forming of the shader program, the graphics processing unit executing the shader program to emulate the fixed-function graphics pipeline.

15. The method of claim 1 , wherein the shader program excludes branches.

16. The method of claim 6 , wherein the first pre-compiled shader chunk and the at least one additional pre-compiled shader chunk exclude branches.

17. The system of claim 7 , wherein the shader program excludes branches.

18. The system of claim 13 , wherein the first pre-compiled shader chunk and the at least one additional pre-compiled shader chunk exclude branches.

19. The non-transitory computer-readable medium of claim 14 , wherein the shader program excludes branches.

Assignments (2)
SECURITY INTEREST Recorded Jan 16, 2025
From: CHANNEL ONE HOLDINGS INC.
To: PENNANTPARK LOAN AGENCY SERVICING, LLC, AS ADMINISTRATIVE AGENT
Reel/Frame 069890/0481 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Apr 10, 2019
From: FABIUS, AIDAN
To: CHANNEL ONE HOLDINGS INC.
Reel/Frame 048844/0524 →
Continuity (2)
Continuation 14687517 · Apr 15, 2015
Related Publication 20190251653A1 · Aug 15, 2019