IP Library Granted Patent US 7,274,368
Granted Patent B1
US 7,274,368 · App. 09/629,458 · Granted Sep 25, 2007

System method and computer program product for remote graphics processing

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 7,274,368
App. No.
09/629,458
Granted
Sep 25, 2007
Kind
B1
Abstract

A system, method, and computer program product are provided for remote rendering of computer graphics. The system includes a graphics application program resident at a remote server. The graphics application is invoked by a user or process located at a client. The invoked graphics application proceeds to issue graphics instructions. The graphics instructions are received by a remote rendering control system. Given that the client and server differ with respect to graphics context and image processing capability, the remote rendering control system modifies the graphics instructions in order to accommodate these differences. The modified graphics instructions are sent to graphics rendering resources, which produce one or more rendered images. Data representing the rendered images is written to one or more frame buffers. The remote rendering control system then reads this image data from the frame buffers. The image data is transmitted to the client for display or processing. In an embodiment of the system, the image data is compressed before being transmitted to the client. In such an embodiment, the steps of rendering, compression, and transmission can be performed asynchronously in a pipelined manner.

Claims (42)

1. A method of remote graphics rendering on behalf of a client, comprising the steps of:

(A) initializing a graphics rendering session;

(B) starting a graphics application on the basis of a command from the client;

(C) generating graphics instructions;

(D) imposing client parameters to produce modified graphics instructions;

(E) sending the modified graphics instructions to graphics rendering resources;

(F) rendering graphics on the basis of the modified graphics instructions to produce image data in one or more frame buffers;

(G) reading image data from the one or more frame buffers;

(H) enqueuing the image data; and

(I) transmitting the image data to the client.

2. The method of claim 1 , further comprising the step of:

(J) compressing the image data, wherein step (J) is performed after step (H) and before step (I).

3. The method of claim 2 , wherein steps (F), (J), and (I) are performed in pipeline fashion.

4. The method of claim 3 , wherein steps (F), (J), and (I) are asynchronous.

5. The method of claim 1 , wherein step (A) comprises the steps of:

(i) performing a client/server handshake;

(ii) receiving a client visual from the client;

(iii) after a user at the client opens a console window at the client and starts the graphics application, opening client and server displays;

(iv) merging the client visual with a server visual to form a merged visual list;

(v) associating the client display with the graphics application;

(vi) overlaying the server visual list with a transparent interface routine;

(vii) enabling the return of a client window to the graphics application;

(viii) enabling the return of an internal context to the graphics application; and

(ix) binding a server context to a server window.

6. The method of claim 5 , wherein step (vii) comprises the steps of:

(a) converting the merged visual list into a visual appropriate for the client;

(b) defining the client window;

(c) creating an internal data structure for tracking the displayed location of the client window; and

(d) returning the client window to the graphics application.

7. The method of claim 5 , wherein step (viii) comprises the steps of:

(e) converting the merged visual list into a visual appropriate for the server;

(f) creating a server context; and

(g) returning an internal context to the application.

8. The method of claim 5 , wherein step (ix) comprises the steps of:

(h) extracting a server context from the internal context;

(i) requesting a window allocation from a session manager; and

(j) associating the server context with a server window.

9. The method of claim 1 , wherein step (D) comprises the steps of:

(x) intercepting every function call that includes a visual capability;

(xi) converting the visual capability to a corresponding client visual capability;

(xii) intercepting every reference to a graphics context; and

(xiii) converting every reference to a graphics context to a reference to a graphics context of the client.

Assignments (7)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded May 30, 2018
From: HEWLETT PACKARD ENTERPRISE DEVELOPMENT LP
To: GOOGLE LLC
Reel/Frame 045933/0001 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Oct 4, 2017
From: SILICON GRAPHICS INTERNATIONAL CORP.
To: HEWLETT PACKARD ENTERPRISE DEVELOPMENT LP
Reel/Frame 044128/0149 →
RELEASE OF SECURITY INTEREST Recorded Nov 2, 2016
From: MORGAN STANLEY SENIOR FUNDING, INC., AS AGENT
To: SILICON GRAPHICS INTERNATIONAL CORP.
Reel/Frame 040545/0362 →
SECURITY INTEREST Recorded Mar 13, 2015
From: SILICON GRAPHICS INTERNATIONAL CORP.
To: MORGAN STANLEY SENIOR FUNDING, INC.
Reel/Frame 035200/0722 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Apr 16, 2014
From: SILICON GRAPHICS, INC.
To: SILICON GRAPHICS INTERNATIONAL, INC.
Reel/Frame 032692/0721 →
MERGER Recorded Apr 16, 2014
From: SGI INTERNATIONAL, INC.
To: SILICON GRAPHICS INTERNATIONAL CORP.
Reel/Frame 032692/0890 →
CHANGE OF NAME Recorded Apr 16, 2014
From: SILICON GRAPHICS INTERNATIONAL, INC.
To: SGI INTERNATIONAL, INC.
Reel/Frame 032706/0777 →