Patent US6249294B1 successfully refreshed from Google Patents.
← Back to Patent Explorer
US6249294B1 Expired / Lapsed US ⏱️ 0.0 years remaining

3D graphics in a single logical sreen display using multiple computer systems

Assignee: Hewlett Packard Development Co LP
•
Filing: 1998-08-21
•
Granted: 2001-06-19
•
Expires: 2018-08-21
📄 Original PDF 🌐 Google Patents 🔄 Sync Now

Abstract

Abstract A single logical screen computer display uses multiple remote computer systems operable to perform hardware accelerated 3D graphics operations. The display system includes a client process, a first slave host computer coupled to first display hardware, a second slave host computer coupled to second display hardware, and a network broadcast path between the client process and the first and second slave host computers. The client process is operable to broadcast OGL command buffers to the first and second slave host computers using the network broadcast path. The first and second slave host computers are operable to execute OGL commands in the OGL command buffers and to render the results on the first and second display hardware, respectively. First and second X server processes run on the first and second slave hosts, and first and second OGL daemon processes also run on the first and second slave hosts. The network broadcast path bypasses the X server processes, thereby providing greatly enhanced 3D graphics performance over the network.

Inventors

  • 👤 Kevin Lefebvre
  • 👤 Don B. Hoffman
  • 👤 Michael T. Hamilton

Bibliographic Details

Application Number —
Jurisdiction US
Data Source google_patents
Last Synchronized 2026-10-26 19:50
CPC Classifications
G; G06; G06F; G06F3/00; G06F3/14; G06F3/1454; G09; G09G; G09G2300/00; G09G2300/02; G09G2300/026

Claims Analysis

Total Claims: 34
Claim 1
Independent Claim 174 words
A method for performing 3D graphics operations on a logical screen that comprises composited outputs from multiple computer graphics pipelines, the method comprising the steps of: providing a client process, a master server process and a plurality of slave server processes wherein each slave server process is operable to drive one of the pipelines; in the master server process, dividing the logical screen among the slave server processes by storing a different set of x/y offset information for each of the slave server processes; in the client process, switching to a logical screen mode in which 3D graphics API commands issued by an application are buffered; in the client process, buffering a set of 3D graphics API commands issued by the application; using a network, flushing the same buffered set of 3D graphics API commands to hosts of all of the different slave server processes; and in each of the slave server processes, processing the flushed set of 3D graphics API commands differently responsive to x/y offset information received from the master server process.
Claim 2
Independent Claim 174 words
A method for performing 3D graphics operations on a logical screen that comprises composited outputs from multiple computer graphics pipelines, the method comprising the steps of: providing a client process, a master server process and a plurality of slave server processes wherein each slave server process is operable to drive one of the pipelines; in the master server process, dividing the logical screen among the slave server processes by storing a different set of x/y offset information for each of the slave server processes; in the client process, switching to a logical screen mode in which 3D graphics API commands issued by an application are buffered; in the client process, buffering a set of 3D graphics API commands issued by the application; using a network, flushing the same buffered set of 3D graphics API commands to hosts of all of the different slave server processes; and in each of the slave server processes, processing the flushed set of 3D graphics API commands differently responsive to x/y offset information received from the master server process.
Claim 3
Dependent Claim 51 words
The method of claim 1 , wherein: in each of the hosts of the slave server processes, providing a receive daemon process; and in the receive daemon processes, receiving from the network and storing the flushed set of 3D graphics API commands in a manner that bypasses the slave server process.
Claim 4
Dependent Claim 34 words
The method of claim 2 , further comprising the step of: in the client process after the flushing step, and again using the network, sending a buffer ready command to the slave server processes.
Claim 5
Dependent Claim 18 words
The method of claim 3 , wherein: the processing step is performed responsive to the buffer ready command.
Claim 6
Dependent Claim 30 words
The method of claim 1 , wherein the flushing step comprises broadcasting the buffered set of 3D graphics API commands to hosts of all of the different slave server processes.
Claim 7
Dependent Claim 24 words
The method of claim 5 , wherein the broadcasting step utilizes a UDP broadcast connection between the client process and the receive daemon processes.
Claim 8
Dependent Claim 52 words
The method of claim 6 , further comprising the step of: after the flushing step, and again using the network, sending a buffer ready command to the slave server processes, wherein the sending step utilizes windowing system protocol over non-broadcast connections between the client process and each of the slave server processes.
Claim 9
Dependent Claim 30 words
The method of claim 6 , further comprising the step of: in each of the receive daemon processes, sending ack/nack information to the client process responsive to the broadcasting step.
Claim 10
Dependent Claim 27 words
The method of claim 8 , wherein the step of sending ack/nack information utilizes TCP control connections between each of the receive daemons and the client process.
Claim 11
Dependent Claim 30 words
The method of claim 1 , wherein the flushing step comprises multicasting the buffered set of 3D graphics API commands to hosts of all of the different slave server processes.
Claim 12
Dependent Claim 25 words
The method of claim 1 , wherein the x/y offset information received from the master server process is received responsive to a clip list inquiry.
Claim 13
Dependent Claim 172 words
Apparatus for performing 3D graphics operations on a logical screen that comprises composited outputs from multiple computer graphics pipelines, the apparatus comprising: a client process; a master server process; a plurality of slave server hosts, each operable to drive one of the pipelines; and a network connecting the client process with the master server process and with the slave server hosts, and connecting the slave server hosts with the master server process; wherein the master server process comprises offset logic for dividing the logical screen among the slave server hosts by storing a different set of x/y offset information for each slave server host; wherein the client process comprises logical screen mode logic for buffering 3D graphics API commands issued by an application and flushing a set of buffered commands to each of the slave server hosts over the network; and wherein each of the slave server hosts comprises display logic for processing the flushed set of commands responsive to x/y offset information received from the master server process over the network.
Claim 14
Dependent Claim 172 words
Apparatus for performing 3D graphics operations on a logical screen that comprises composited outputs from multiple computer graphics pipelines, the apparatus comprising: a client process; a master server process; a plurality of slave server hosts, each operable to drive one of the pipelines; and a network connecting the client process with the master server process and with the slave server hosts, and connecting the slave server hosts with the master server process; wherein the master server process comprises offset logic for dividing the logical screen among the slave server hosts by storing a different set of x/y offset information for each slave server host; wherein the client process comprises logical screen mode logic for buffering 3D graphics API commands issued by an application and flushing a set of buffered commands to each of the slave server hosts over the network; and wherein each of the slave server hosts comprises display logic for processing the flushed set of commands responsive to x/y offset information received from the master server process over the network.
Claim 15
Dependent Claim 104 words
The apparatus of claim 12 , wherein each slave server host comprises: a slave server process; a receive daemon; and a 3D graphics API daemon; wherein the slave server process is operable to receive x/y offset information from the master server process over the network; wherein the receive daemon is operable to receive from the network and store the set of buffered commands that is flushed by the client process, and is able to do so in a manner that bypasses the slave server process; and wherein the 3D graphics API daemon is operable to execute the received and stored set of buffered commands.
Claim 16
Dependent Claim 27 words
The apparatus of claim 13 , wherein the receive daemon comprises: buffer receipt connection logic for establishing and monitoring a buffer receipt connection with the client process.
Claim 17
Dependent Claim 15 words
The apparatus of claim 14 , wherein: the buffer receipt connection is a broadcast connection.
Claim 18
Dependent Claim 52 words
The apparatus of claim 15 , wherein the receive daemon also comprises: control connection logic for establishing and utilizing a control connection with the client process, and wherein the client process and the receive daemon use the control connection to coordinate broadcasting of the set of buffered commands over the broadcast connection.
Claim 19
Dependent Claim 22 words
The apparatus of claim 16 , wherein the broadcast connection is a UDP connection and the control connection is a TCP connection.
Claim 20
Dependent Claim 15 words
The apparatus of claim 14 , wherein: the buffer receipt connection is a multicast connection.
Claim 21
Dependent Claim 29 words
The apparatus of claim 12 , wherein the client process comprises: a library of device independent routines for implementing the logical screen mode logic at the API dispatch layer.
Claim 22
Dependent Claim 42 words
The apparatus of claim 19 , wherein the library of device independent routines is also operable to establish and utilize the network connections between the client process and the master server process, and between the client process and the slave server hosts.
Claim 23
Dependent Claim 188 words
A machine-readable storage or transmission medium containing code that, when executed on computers, causes the computers to perform 3D graphics operations on a logical screen that comprises composited outputs from multiple computer graphics pipelines, the method comprising the steps of: providing a client process, a master server process and a plurality of slave server processes wherein each slave server process is operable to drive one of the pipelines; in the master server process, dividing the logical screen among the slave server processes by storing a different set of x/y offset information for each of the slave server processes; in the client process, switching to a logical screen mode in which 3D graphics API commands issued by an application are buffered; in the client process, buffering a set of 3D graphics API commands issued by the application; using a network, flushing the same buffered set of 3D graphics API commands to hosts of all of the different slave server processes; and in each of the slave server processes, processing the flushed set of 3D graphics API commands differently responsive to x/y offset information received from the master server process.
Claim 24
Dependent Claim 188 words
A machine-readable storage or transmission medium containing code that, when executed on computers, causes the computers to perform 3D graphics operations on a logical screen that comprises composited outputs from multiple computer graphics pipelines, the method comprising the steps of: providing a client process, a master server process and a plurality of slave server processes wherein each slave server process is operable to drive one of the pipelines; in the master server process, dividing the logical screen among the slave server processes by storing a different set of x/y offset information for each of the slave server processes; in the client process, switching to a logical screen mode in which 3D graphics API commands issued by an application are buffered; in the client process, buffering a set of 3D graphics API commands issued by the application; using a network, flushing the same buffered set of 3D graphics API commands to hosts of all of the different slave server processes; and in each of the slave server processes, processing the flushed set of 3D graphics API commands differently responsive to x/y offset information received from the master server process.
Claim 25
Dependent Claim 52 words
The machine-readable medium of claim 21 , wherein: in each of the hosts of the slave server processes, providing a receive daemon process; and in the receive daemon processes, receiving from the network and storing the flushed set of 3D graphics API commands in a manner that bypasses the slave server process.
Claim 26
Dependent Claim 38 words
The machine-readable medium of claim 22 , wherein the method further comprises the step of: in the client process after the flushing step, and again using the network, sending a buffer ready command to the slave server processes.
Claim 27
Dependent Claim 19 words
The machine-readable medium of claim 23 , wherein: the processing step is performed responsive to the buffer ready command.
Claim 28
Dependent Claim 31 words
The machine-readable medium of claim 21 , wherein the flushing step comprises broadcasting the buffered set of 3D graphics API commands to hosts of all of the different slave server processes.
Claim 29
Dependent Claim 25 words
The machine-readable medium of claim 25 , wherein the broadcasting step utilizes a UDP broadcast connection between the client process and the receive daemon processes.
Claim 30
Dependent Claim 56 words
The machine-readable medium of claim 26 , wherein the method further comprises the step of: after the flushing step, and again using the network, sending a buffer ready command to the slave server processes, wherein the sending step utilizes windowing system protocol over non-broadcast connections between the client process and each of the slave server processes.
Claim 31
Dependent Claim 34 words
The machine-readable medium of claim 26 , wherein the method further comprises the step of: in each of the receive daemon processes, sending ack/nack information to the client process responsive to the broadcasting step.
Claim 32
Dependent Claim 28 words
The machine-readable medium of claim 28 , wherein the step of sending ack/nack information utilizes TCP control connections between each of the receive daemons and the client process.
Claim 33
Dependent Claim 31 words
The machine-readable medium of claim 21 , wherein the flushing step comprises multicasting the buffered set of 3D graphics API commands to hosts of all of the different slave server processes.
Claim 34
Dependent Claim 26 words
The machine-readable medium of claim 21 , wherein the x/y offset information received from the master server process is received responsive to a clip list inquiry.

References Cited (Backward Citations)

US5408600A Cited
US5313581A Cited
US5537548A Cited
US5673403A Cited
US5819077A Cited
US5568616A Cited
US5748189A Cited
US6046752A Cited
US6023558A Cited
US5974049A Cited

USPTO Annuity & Maintenance Windows

Annuity Stage Window Opens Payment Deadline Surcharge Period Until Estimated Fee Status
3.5 Years (Year 4) 2004-06-18 2004-12-18 2005-06-19 $2000.00 Window Closed / Lapsed
7.5 Years (Year 8) 2008-06-18 2008-12-18 2009-06-19 $3760.00 Window Closed / Lapsed
11.5 Years (Year 12) 2012-06-18 2012-12-18 2013-06-19 $7700.00 Window Closed / Lapsed

Assigned Categories & Tags

No categories assigned to this patent yet.

Assign Category Tag