IP Library Granted Patent US 10,255,651
Granted Patent B2
US 10,255,651 · App. 14/687,517 · Granted Apr 9, 2019

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,255,651
App. No.
14/687,517
Granted
Apr 9, 2019
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 (30)

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

a processor selecting, based on a conditional logic script that determines which of a set of pre-compiled shader chunks to concatenate to emulate a function of a fixed-function graphics application programming interface, a first pre-compiled shader chunk from the set of pre-compiled shader chunks, wherein the first pre-compiled shader chunk comprises a first plurality of machine code instructions for execution by the graphics processing unit, wherein the first plurality of machine code instructions in the first pre-compiled shader chunk excludes branches and loops;

the processor selecting, based on the conditional logic script, at least one second pre-compiled shader chunk from the set of pre-compiled shader chunks, wherein each at least one second pre-compiled shader chunk comprises a respective plurality of machine code instructions for execution by the graphics processing unit, wherein each respective plurality of machine code instructions in the at least one second pre-compiled shader chunk excludes branches and loops;

based on the conditional logic script, the processor concatenating the first pre-compiled shader chunk with the at least one second pre-compiled shader chunk to form a shader program that excludes branches and loops, wherein the shader program comprises machine code instructions for execution by the graphics processing unit; and

following concatenation of the first pre-compiled shader chunk with the at least one second pre-compiled shader chunk to form 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 second 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 second 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 concatenated first shader chunk and at least one second shader chunk.

6. A system for rendering graphics, comprising:

at least one graphics processing unit;

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

a processor, the processor configured to:

select, based on a conditional logic script that determines which of a set of pre-compiled shader chunks to concatenate to emulate a function of a fixed-function graphics application programming interface, a first pre-compiled shader chunk from the set of pre-complied shader chunks, wherein the first pre-compiled shader chunk comprises a first plurality of machine code instructions for execution by the graphics processing unit, wherein the first plurality of machine code instructions in the first pre-compiled shader chunk excludes branches and loops;

select, based on the conditional logic script, at least one second pre-compiled shader chunk from the set of pre-compiled shader chunks, wherein each at least one second pre-compiled shader chunk comprises a respective plurality of machine code instructions for execution by the graphics processing unit, wherein each respective plurality of machine code instructions in the at least one second pre-compiled shader chunk excludes branches and loops;

based on the conditional logic script, concatenate the first pre-compiled shader chunk with the at least one second pre-compiled shader chunk; and,

generate a shader program that excludes branches and loops from the concatenated shader chunks, wherein the shader program comprises machine code instructions for execution by the graphics processing unit; and

the at least one graphics processing unit configured to execute the shader program to emulate the fixed-function graphics pipeline following concatenation of the first pre-compiled shader chunk with the at least one second pre-compiled shader chunk to form the shader program.

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

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

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

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

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

12. A non-transitory computer-readable medium storing first and second computer-executable instructions, the first computer-executable instructions comprising a set of pre-compiled shader chunks, wherein each of the pre-compiled shader chunks comprises a respective plurality of machine code instructions for execution by a graphics processing unit with a programmable graphics pipeline, the second computer-executable instructions comprising a conditional logic script that determines which of a set of pre-compiled shader chunks to concatenate to emulate a function of a fixed-function graphics application programming interface, which when executed by a processor and the graphics processing unit causes the processor to carry out a method for emulating a fixed-function graphics pipeline using the graphics processing unit, the method comprising:

the processor selecting, based on the conditional logic script, a first pre-compiled shader chunk from the set of pre-compiled shader chunks, wherein the first pre-compiled shader chunk comprises a first plurality of machine code instructions for execution by the graphics processing unit, wherein the first plurality of machine code instructions in the first pre-compiled shader chunk excludes branches and loops;

the processor selecting, based on the conditional logic script, at least one second pre-compiled shader chunk from the set of pre-compiled shader chunks, wherein each at least one second pre-compiled shader chunk comprises a respective plurality of machine code instructions for execution by the graphics processing unit, wherein each respective plurality of machine code instructions in the at least one second pre-compiled shader chunk excludes branches and loops;

based on the conditional logic script, the processor concatenating the first pre-compiled shader chunk with the at least one second pre-compiled shader chunk to form a shader program that excludes branches and loops, wherein the shader program comprises machine code instructions for execution by the graphics processing unit; and

following concatenation of the first pre-compiled shader chunk with the at least one second pre-compiled shader chunk to form the shader program, the graphics processing unit executing the shader program to emulate the fixed-function graphics pipeline.

13. The non-transitory computer-readable medium of claim 12 , wherein the first pre-compiled shader chunk pertains to a first type of shader instructions and a first shader type.

14. The non-transitory computer-readable medium of claim 13 , further comprising at least one second concatenation of pre-compiled shader chunks, wherein the second pre-compiled shader chunk pertains to at least one second shader instruction type.

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 15, 2015
From: FABIUS, AIDAN
To: CHANNEL ONE HOLDINGS INC.
Reel/Frame 035440/0436 →
Continuity (1)
Related Publication 20160307364A1 · Oct 20, 2016