Display servers and systems and methods of graphical display
First Claim
Patent Images
1. A display server comprising:
- a first server program configured to output a first plurality of rendering commands;
a second server program configured to execute as a user process separate from the first server program and to output a second plurality of rendering commands separate from the first plurality of rendering commands; and
a processing unit configured (A) to output, over a first period and according to rendering commands of the first plurality, values of pixels of a first display frame and (B) to output over a second period overlapping the first period, and according to rendering commands of the second plurality, values of pixels of a second display frame.
1 Assignment
0 Petitions
Accused Products
Abstract
A display server according to one embodiment includes first and second server programs that are configured to receive drawing requests from clients and to write corresponding rendering commands to respective command queues. A graphics processing unit is configured to execute the commands, to write the resulting rendered pixel data to respective portions of graphics memory, and to display pixel data from a display buffer in a selected one of the portions of graphics memory.
-
Citations
71 Claims
-
1. A display server comprising:
-
a first server program configured to output a first plurality of rendering commands;
a second server program configured to execute as a user process separate from the first server program and to output a second plurality of rendering commands separate from the first plurality of rendering commands; and
a processing unit configured (A) to output, over a first period and according to rendering commands of the first plurality, values of pixels of a first display frame and (B) to output over a second period overlapping the first period, and according to rendering commands of the second plurality, values of pixels of a second display frame. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47)
-
2. The display server according to claim 1, said display server comprising a graphics controller that includes said processing unit,
wherein said graphics controller is configured to output a video signal that includes a representation of a selected one among the first and second display frames. -
3. The display server according to claim 2, wherein said graphics controller is configured to output the video signal to include (A) a series of video frames and (B) a periodic signal that indicates a frame boundary between each consecutive pair of the series of video frames, and
wherein said graphics controller is configured to output the video signal to include, during a first frame period defined by a consecutive pair of the frame boundaries, a representation of the first display frame, and wherein said graphics controller is configured to output the video signal to include, during a second frame period defined by a consecutive pair of the frame boundaries and adjacent to the first frame period, a representation of the second display frame, and wherein the duration of the first frame period is substantially equal to the duration of the second frame period. -
4. The display server according to claim 3, wherein the periodic signal is a vertical synchronization signal having a substantially constant period over an interval including the first and second frame periods.
-
5. The display server according to claim 2, said display server comprising:
-
a display device configured to display an image according to the video signal; and
a housing configured to hold the display device and to enclose the graphics controller.
-
-
6. The display server according to claim 5, wherein said display device includes a liquid crystal display panel.
-
7. The display server according to claim 1, wherein the first server program is configured to output the first plurality of rendering commands according to a first plurality of drawing requests, and
wherein the second server program is configured to output the second plurality of rendering commands according to a second plurality of drawing requests. -
8. The display server according to claim 7, wherein the first plurality of drawing requests describes a plurality of graphics primitives of the first display frame, and
wherein the second plurality of drawing requests describes a plurality of graphics primitives of the second display frame. -
9. The display server according to claim 8, wherein the plurality of graphics primitives of the first display frame represent a plurality of objects, and wherein the plurality of graphics primitives of the second display frame also represent the plurality of objects.
-
10. The display server according to claim 8, wherein the plurality of graphics primitives of the first image indicates current physical positions of each of a plurality of moving objects, and wherein the plurality of graphics primitives of the second image also indicates current physical positions of each of the plurality of moving objects.
-
11. The display server according to claim 8, wherein the plurality of graphics primitives of the first image indicates current physical positions of each of a plurality of moving vehicles, and wherein the plurality of graphics primitives of the second image also indicates current physical positions of each of the plurality of moving vehicles.
-
12. The display server according to claim 8, wherein the plurality of graphics primitives of the first image indicates current physical positions of each of a plurality of moving aircraft, and wherein the plurality of graphics primitives of the second image also indicates current physical positions of each of the plurality of moving aircraft.
-
13. The display server according to claim 1, wherein at least one among the first plurality of rendering commands indicates a first register of the processing unit and an operation to be performed with respect to the first register, and
wherein at least one among the second plurality of rendering commands indicates a second register of the processing unit and an operation to be performed with respect to the second register. -
14. The display server according to claim 1, wherein said processing unit is configured to output, according to the first plurality of rendering commands, a first plurality of pixel values that includes the values of pixels of the first display frame, and
wherein said processing unit is configured to output, according to the second plurality of rendering commands, a second plurality of pixel values that includes the values of pixels of the second display frame, said display server comprising a graphics controller including said processing unit, a first display buffer configured to store pixel values of the first plurality, and a second display buffer configured to store pixel values of the second plurality. -
15. The display server according to claim 14, wherein said graphics controller is configured to output a video signal based on pixel values stored in a selected one of the first and second display buffers.
-
16. The display server according to claim 15, wherein said graphics controller is configured to operate in one among a first display context and a second display context, and
wherein, in the first display context, said graphics controller is configured to output the video signal based on pixel values stored in one among the first and second display buffers, and wherein, in the second display context, said graphics controller is configured to output the video signal based on pixel values stored in the other among the first and second display buffers. -
17. The display server according to claim 16, wherein said display server is configured to change the display context of said graphics controller from one among the first and second display contexts to the other among the first and second display contexts according to a signal received from an input device.
-
18. The display server according to claim 16, said display server comprising:
-
an input port configured to receive a signal from an input device; and
a command detector configured to detect that the signal received from the input device indicates a particular keyboard event, wherein the command detector is configured to initiate a change in the display context of said graphics controller from one among the first and second display contexts to the other among the first and second display contexts upon detecting that the signal received from the input device indicates the particular keyboard event.
-
-
19. The display server according to claim 16, wherein said display server is configured to receive a display context switch command arising from an event external to the display server;
- and
wherein said display server comprises a command detector configured to initiate a change in the display context of said graphics controller from one among the first and second display contexts to the other among the first and second display contexts in response to the display context switch command.
- and
-
20. The display server according to claim 16, said display server comprising a network interface configured to receive information from a source external to said display server,
wherein said display server is configured to change the display context of said graphics controller from one among the first and second display contexts to the other among the first and second display contexts according to a signal received by said display server via said network interface. -
21. The display server according to claim 16, said display server comprising:
-
a network interface configured to receive a signal from a source external to said display server; and
a command detector configured to detect that the signal received by the network interface includes a display context switch command, wherein said command detector is configured to initiate a change in the display context of said graphics controller from one among the first and second display contexts to the other among the first and second display contexts upon detecting that the signal received by the network interface includes a display context switch command.
-
-
22. The display server according to claim 21, wherein one among said first and second server programs includes said command detector.
-
23. The display server according to claim 21, wherein said command detector is a user process separate from said first and second server programs.
-
24. The display server according to claim 16, wherein said graphics controller is configured to output the video signal to include (A) a series of video frames and (B) a periodic signal that indicates a frame boundary between each consecutive pair of the series of video frames, and
wherein, during a first frame period defined by a consecutive pair of the frame boundaries, said graphics controller is configured to operate in one of the first and second display contexts, and wherein, during a second frame period defined by a consecutive pair of the frame boundaries and adjacent to the first frame period, said graphics controller is configured to operate in the other of the first and second display contexts, and wherein the duration of the first frame period is substantially equal to the duration of the second frame period. -
25. The display server according to claim 24, wherein the periodic signal is a vertical synchronization signal having a substantially constant period across a switch from one among the first and second display contexts to the other among the first and second display contexts.
-
26. The display server according to claim 16, said display server comprising:
-
a central processing unit configured to execute the first and second server programs; and
a user process configured to determine an average use of the central processing unit by the first server program, wherein said user process is configured to initiate a change in the display context of said graphics controller from one among the first and second display contexts to the other among the first and second display context based on a relation between the determined average use and a threshold value.
-
-
27. The display server according to claim 16, said display server comprising an operating system,
wherein said first server program is configured to request allocation of an specified amount of memory from said operating system, and wherein said operating system is configured to return an error to said first server program based on a relation among the specified amount, a process size of said first server program, and a predetermined limit, wherein said first server program is configured to initiate, in response to the error, a change in the display context of said graphics controller from one among the first and second display contexts to the other among the first and second display context. -
28. The display server according to claim 16, said display server comprising a user process configured to initiate a change in the display context of said graphics controller from one among the first and second display contexts to the other among the first and second display contexts upon detecting a termination of one of the first and second server programs.
-
29. The display server according to claim 16, wherein said processing unit includes a register configured to have one among at least a first state and a second state, and
wherein said graphics controller is configured to operate in the first display context when said register has the first state, and wherein said graphics controller is configured to operate in the second display context when said register has the second state. -
30. The display server according to claim 14, wherein said graphics controller is configured to output the video signal to include (A) a series of video frames and (B) a periodic signal that indicates a frame boundary between each consecutive pair of the series of video frames, and
wherein, during a first frame period defined by a consecutive pair of the frame boundaries, said graphics controller is configured to output the video signal based on pixel values stored in the first display buffer, and wherein, during a second frame period defined by a consecutive pair of the frame boundaries and adjacent to the first frame period, said graphics controller is configured to output the video signal based on pixel values stored in the second display buffer, and wherein the duration of the first frame period is substantially equal to the duration of the second frame period. -
31. The display server according to claim 30, wherein the periodic signal is a vertical synchronization signal having a substantially constant period over an interval including the first and second frame periods.
-
32. The display server according to claim 1, said display server comprising a network interface configured to receive information from a source external to said display server,
wherein the first server program is configured to output the first plurality of rendering commands according to a first plurality of drawing requests, received via the network interface, that describes a plurality of graphics primitives of the first display frame. -
33. The display server according to claim 32, wherein each among the first plurality of drawing requests is compliant with a version of the X Window System Protocol.
-
34. The display server according to claim 32, wherein at least one of the first and second server programs is configured to transmit, via the network interface, information received by said display server from an input device.
-
35. The display server according to claim 32, said network interface comprising:
-
a first network port configured to receive information from a first network; and
a second network port configured to receive information from a second network separate from the first network, wherein said first server program is configured to receive the first plurality of drawing requests via the first network port, and wherein the second server program is configured to output the second plurality of rendering commands according to a second plurality of drawing requests, received via the second network port, that describes a plurality of graphics primitives of the second display frame.
-
-
36. The display server according to claim 1, said display server comprising:
-
an input port configured to receive information from an input device; and
a network interface configured to transmit information into at least one network external to said display server, wherein, when said graphics controller is in the first display context, said first server program is configured to transmit, via said network interface, information received via said input port, and wherein, when said graphics controller is in the second display context, said second server program is configured to transmit, via said network interface, information received via said input port.
-
-
37. The display server according to claim 1, wherein said processing unit is configured (A) to output, according to rendering commands of the first plurality, values of pixels of a third display frame and (B) to output, according to rendering commands of the second plurality, values of pixels of a fourth display frame,
said display server comprising a graphics controller that includes said processing unit, wherein said graphics controller is configured to output a first video signal that includes a representation of a selected one among the first and second display frames and a second video signal that includes a representation of a selected one among the third and fourth display frames. -
38. The display server according to claim 37, wherein said processing unit is configured to output values of pixels of the third display frame during the first period and to output values of pixels of the fourth display frame during the second period.
-
39. The display server according to claim 1, wherein said processing unit is configured to output, according to the first plurality of rendering commands, a first plurality of pixel values that includes the values of pixels of the first display frame and a third plurality of pixel values, and
wherein said processing unit is configured to output, according to the second plurality of rendering commands, a second plurality of pixel values that includes the values of pixels of the second display frame and a fourth plurality of pixel values, said display server comprising a graphics controller including said processing unit, a first display buffer configured to store pixel values of the first plurality, a second display buffer configured to store pixel values of the second plurality, a third display buffer configured to store pixel values of the third plurality, and a fourth display buffer configured to store pixel values of the fourth plurality, wherein said graphics controller is configured to output a first video signal and a second video signal and to operate in one among a first display context and a second display context, and wherein, in the first display context, said graphics controller is configured to output the first video signal based on pixel values stored in the first display buffer and to output the second video signal based on pixel values stored in the third display buffer, and wherein, in the second display context, said graphics controller is configured to output the first video signal based on pixel values stored in the second display buffer and to output the second video signal based on pixel values stored in the fourth display buffer. -
40. The display server according to claim 1, said display server comprising:
-
a central processing unit configured to execute the first and second server programs; and
a user process configured to determine an average use of the central processing unit by the first server program.
-
-
41. The display server according to claim 40, wherein said user process is configured to compare the determined average use to a threshold value.
-
42. The display server according to claim 40, wherein said user process is configured to initiate termination of the first server program based on a relation between the determined average use and a threshold value.
-
43. The display server according to claim 1, said display server comprising an operating system,
wherein said first server program is configured to request allocation of a specified amount of memory from said operating system, and wherein said operating system is configured to return an error to said first server program based on a relation among the specified amount, a process size of said first server program, and a predetermined limit. -
44. The display server according to claim 43, wherein said operating system is configured to return the error upon determining that granting the allocation would cause the amount of memory allocated to said first server program to exceed the limit.
-
45. The display server according to claim 43, wherein said operating system is configured to return the error upon determining that granting the allocation would cause the process size of said first server program to exceed the limit.
-
46. The display server according to claim 43, said display server comprising a network interface configured to transmit information into at least one network external to said display server,
wherein said first server program is configured to transmit a signal indicating the error via said network interface. -
47. The display server according to claim 1, said display server comprising a user process configured to initiate a restart of one of the first and second server programs upon detecting a termination of the server program.
-
2. The display server according to claim 1, said display server comprising a graphics controller that includes said processing unit,
-
-
48. A method of image generation, said method comprising:
-
within a display server, executing a first server program to output a first plurality of rendering commands;
within the display server, executing a second server program, as a user process separate from the first server program, to output a second plurality of rendering commands separate from the first plurality of rendering commands;
within the display server and over a first period, executing rendering commands of the first plurality on a processing unit to obtain values of pixels of a first display frame; and
over a second period overlapping the first period, executing rendering commands of the second plurality on the processing unit to obtain values of pixels of a second display frame. - View Dependent Claims (49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59)
-
49. The method of image generation according to claim 48, said method comprising:
-
executing the first plurality of rendering commands on the processing unit to obtain a first plurality of pixel values that includes the values of pixels of the first display frame;
executing the second plurality of rendering commands on the processing unit to obtain a second plurality of pixel values that includes the values of pixels of the second display frame;
storing pixel values of the first plurality to a first display buffer;
storing pixel values of the second plurality to a second display buffer; and
operating the display server in one among a first display context and a second display context, said operating comprising outputting a video signal based on pixel values stored in a selected one of the first and second display buffers, wherein operating the display server in the first display context includes outputting the video signal based on pixel values stored in one among the first and second display buffers, and wherein operating the display server in the second display context includes outputting the video signal based on pixel values stored in the other among the first and second display buffers.
-
-
50. The method of image generation according to claim 49, said method comprising:
-
receiving, via an input port of the display server, a signal from an input device; and
detecting that the signal received from the input device indicates a particular keyboard event; and
based on said detecting, initiating a change from operating the display server in one among the first and second display contexts to operating the display server in the other among the first and second display contexts.
-
-
51. The method of image generation according to any claim 49, said method comprising:
-
receiving a display context switch command arising from an event external to the display server; and
initiating a change from operating the display server in one among the first and second display contexts to operating the display server in the other among the first and second display contexts in response to the display context switch command.
-
-
52. The method of image generation according to any claim 49, said method comprising:
-
receiving, via a network interface, information from a source external to the display server; and
initiating a change from operating the display server in one among the first and second display contexts to operating the display server in the other among the first and second display contexts according to the information received via the network interface.
-
-
53. The method of image generation according to an claim 49, said method comprising:
-
receiving, via a network interface, information from a source external to the display server;
detecting that the signal received by the network interface includes a display context switch command; and
based on said detecting, initiating a change from operating the display server in one among the first and second display contexts to operating the display server in the other among the first and second display contexts.
-
-
54. The method of image generation according to claim 49, wherein said outputting a video signal comprises outputting the video signal to include (A) a series of video frames and (B) a periodic signal that indicates a frame boundary between each consecutive pair of the series of video frames,
said method comprising: -
during a first frame period defined by a consecutive pair of the frame boundaries, operating the display server in one among the first and second display contexts, and during a second frame period defined by a consecutive pair of the frame boundaries and adjacent to the first frame period, operating the display server in the other of the first and second display contexts, and wherein the duration of the first frame period is substantially equal to the duration of the second frame period.
-
-
55. The method of image generation according to claim 48, said method comprising:
-
receiving, via a network interface, information from a source external to the display server; and
transmitting, via the network interface, information received by the display server from an input device.
-
-
56. The method of image generation according to claim 48, said method comprising outputting a video signal including (A) a series of video frames and (B) a periodic signal that indicates a frame boundary between each consecutive pair of the series of video frames, and
wherein said outputting the video signal comprises outputting the video signal to include, during a first frame period defined by a consecutive pair of the frame boundaries, a representation of the first display frame, and wherein said outputting the video signal comprises outputting the video signal to include, during a second frame period defined by a consecutive pair of the frame boundaries and adjacent to the first frame period, a representation of the second display frame, and wherein the duration of the first frame period is substantially equal to the duration of the second frame period. -
57. The method of image generation according to claim 48, wherein said executing a first server program comprises executing the first server program on a central processing unit, and
wherein said executing a second server program comprises executing the second server program on the central processing unit, said method comprising: -
determining an average use of the central processing unit by the first server program; and
initiating termination of the first server program based on a relation between the determined average use and a threshold value.
-
-
58. The method of image generation according to claim 48, said method comprising:
-
requesting, from an operating system of the display server, allocation of a specified amount of memory to the first server program; and
returning an error from the operating system to the first server program based on a relation among the specified amount, a process size of the first server program, and a predetermined limit.
-
-
59. The method of image generation according to claim 48, said method comprising initiating a restart of one of the first and second server programs upon detecting a termination of the server program.
-
49. The method of image generation according to claim 48, said method comprising:
-
-
60. A display server comprising:
-
a first server program configured to output, over a first period, a first plurality of rendering commands;
a second server program configured to execute as a user process separate from the first server program and to output, over a second period overlapping the first period, a second plurality of rendering commands separate from the first plurality of rendering commands; and
a processing unit configured to (A) to output, according to the first plurality of rendering commands, values of pixels of a first display image and (B) to output, according to the second plurality of rendering commands, values of pixels of a second display image. - View Dependent Claims (61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71)
-
61. The display server according to claim 60, said display server comprising a graphics controller including said processing unit, a first display buffer configured to store the values of pixels of the first display image, and a second display buffer configured to store the values of pixels of the second display image,
wherein said graphics controller is configured (C) to output a video signal based on pixel values stored in a selected one of the first and second display buffers and (D) to operate in one among a first display context and a second display context, and wherein, in the first display context, said graphics controller is configured to output the video signal based on pixel values stored in one among the first and second display buffers, and wherein, in the second display context, said graphics controller is configured to output the video signal based on pixel values stored in the other among the first and second display buffers. -
62. The display server according to claim 61, said display server comprising:
-
an input port configured to receive a signal from an input device; and
a command detector configured to detect that the signal received from the input device indicates a particular keyboard event, wherein the command detector is configured to initiate a change in the display context of said graphics controller from one among the first and second display contexts to the other among the first and second display contexts upon detecting that the signal received from the input device indicates the particular keyboard event.
-
-
63. The display server according to claim 61, wherein said display server is configured to receive a display context switch command arising from an event external to the display server;
- and
wherein said display server comprises a command detector configured to initiate a change in the display context of said graphics controller from one among the first and second display contexts to the other among the first and second display contexts in response to the display context switch command.
- and
-
64. The display server according to claim 61, said display server comprising a network interface configured to receive information from a source external to said display server,
wherein said display server is configured to change the display context of said graphics controller from one among the first and second display contexts to the other among the first and second display contexts according to a signal received by said display server via said network interface. -
65. The display server according to claim 61, said display server comprising:
-
a network interface configured to receive a signal from a source external to said display server; and
a command detector configured to detect that the signal received by the network interface includes a display context switch command, wherein said command detector is configured to initiate a change in the display context of said graphics controller from one among the first and second display contexts to the other among the first and second display contexts upon detecting that the signal received by the network interface includes a display context switch command.
-
-
66. The display server according to claim 61, wherein said graphics controller is configured to output the video signal to include (A) a series of video frames and (B) a periodic signal that indicates a frame boundary between each consecutive pair of the series of video frames, and
wherein said graphics controller is configured to output the video signal to include, during a first frame period defined by a consecutive pair of the frame boundaries, a representation of the first display frame, and wherein said graphics controller is configured to output the video signal to include, during a second frame period defined by a consecutive pair of the frame boundaries and adjacent to the first frame period, a representation of the second display frame, and wherein the duration of the first frame period is substantially equal to the duration of the second frame period. -
67. The display server according to claim 61, wherein said graphics controller is configured to output the video signal to include (A) a series of video frames and (B) a periodic signal that indicates a frame boundary between each consecutive pair of the series of video frames, and
wherein, during a first frame period defined by a consecutive pair of the frame boundaries, said graphics controller is configured to operate in one of the first and second display contexts, and wherein, during a second frame period defined by a consecutive pair of the frame boundaries and adjacent to the first frame period, said graphics controller is configured to operate in the other of the first and second display contexts, and wherein the duration of the first frame period is substantially equal to the duration of the second frame period. -
68. The display server according to claim 60, said display server comprising a network interface configured to receive information from a source external to said display server,
wherein the first server program is configured to output the first plurality of rendering commands according to a first plurality of drawing requests, received via the network interface, that describes a plurality of graphics primitives of the first display frame, and wherein at least one of the first and second server programs is configured to transmit, via the network interface, information received by said display server from an input device. -
69. The display server according to claim 60, said display server comprising:
-
a central processing unit configured to execute the first and second server programs; and
a user process configured to determine an average use of the central processing unit by the first server program, wherein said user process is configured to initiate termination of the first server program based on a relation between the determined average use and a threshold value.
-
-
70. The display server according to claim 60, said display server comprising an operating system,
wherein said first server program is configured to request allocation of a specified amount of memory from said operating system, and wherein said operating system is configured to return an error to said first server program based on a relation among the specified amount, a process size of said first server program, and a predetermined limit. -
71. The display server according to claim 60, said display server comprising a user process configured to initiate a restart of one of the first and second server programs upon detecting a termination of the server program.
-
61. The display server according to claim 60, said display server comprising a graphics controller including said processing unit, a first display buffer configured to store the values of pixels of the first display image, and a second display buffer configured to store the values of pixels of the second display image,
-
Specification
- Resources
Thank you for your request. You will receive a custom alert email when the Litigation Campaign Assessment is available.
×
-
Current AssigneeBarcoView LLC (Barco NV)
-
Original AssigneeBarcoView LLC (Barco NV)
-
InventorsDe Laet, Rick, Challen, Richard
-
Application NumberUS11/447,296Publication NumberTime in Patent OfficeDaysField of SearchUS Class Current715/734CPC Class CodesG05B 15/02 electric