Sharing a graphical processing unit between a plurality of programs
First Claim
1. A method of sharing a graphics processing unit (GPU) between a plurality of programs, the method comprising the steps of:
- a) outputting instructions by a first program of the plurality of programs to create a first set of instructions for generating a first frame;
b) outputting instructions by a second program of the plurality of programs to create a second set of instructions for generating a second frame;
c) providing control instructions to control how the GPU processes instructions of the first set of instructions and instructions of the second set of instructions;
d) processing at least part of the first set of instructions by the GPU to produce the first frame;
e) processing at least part of the second set of instructions by the GPU to produce the second frame;
f) signaling to an encoder when the GPU has completed rendering the first frame;
g) compressing at least part of the first frame by the encoder into a compressed data signal and transmitting the compressed data signal to a remote processing device;
wherein the control instructions comprise instructions to cause the GPU to store a majority or all of the first frame in different GPU controlled memory locations than GPU controlled memory locations of the second frame.
1 Assignment
0 Petitions
Accused Products
Abstract
A centralised server in a bank (50) of servers runs a program for use by a user at a remote terminal (52, 56, 58). In the server, a plurality of programs share a GPU and instructions are used to cause the GPU to store the frames representing graphics of different programs at different memory locations. The frames are compressed and transmitted to remote terminals. Optionally the invention also allows for GPU time slice allocation, such that the GPU completes rendering the frame of one program before it renders the frame of another program. Optionally the invention also allows delivering false information about the capabilities of the GPU to the programs.
-
Citations
17 Claims
-
1. A method of sharing a graphics processing unit (GPU) between a plurality of programs, the method comprising the steps of:
-
a) outputting instructions by a first program of the plurality of programs to create a first set of instructions for generating a first frame; b) outputting instructions by a second program of the plurality of programs to create a second set of instructions for generating a second frame; c) providing control instructions to control how the GPU processes instructions of the first set of instructions and instructions of the second set of instructions; d) processing at least part of the first set of instructions by the GPU to produce the first frame; e) processing at least part of the second set of instructions by the GPU to produce the second frame; f) signaling to an encoder when the GPU has completed rendering the first frame; g) compressing at least part of the first frame by the encoder into a compressed data signal and transmitting the compressed data signal to a remote processing device; wherein the control instructions comprise instructions to cause the GPU to store a majority or all of the first frame in different GPU controlled memory locations than GPU controlled memory locations of the second frame. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17)
-
Specification