Patent ID: 8203568

Claim:
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) signalling 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 first compressed data signal and transmitting the first compressed data signal to a first remote processing device; h) compressing at least part of the second frame by the encoder into a second compressed data signal and transmitting the second compressed data signal to a second 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 accessible memory locations than GPU accessible memory locations of the second frame.