IP Library › Granted Patent US 8,854,380
Granted Patent B2
US 8,854,380 · App. 14/026,901 · Granted Oct 7, 2014

System and method for rendering and displaying high-resolution images

Inventors: Franck R. Diard (Saint-Contest, FR); Ian M. Williams (Menlo Park, CA); Eric Boucher (Los Gatos, CA)
Assignee: NVIDIA Corporation
G06T5/00G06T3/4038G09G5/00G06T1/20
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 8,854,380
App. No.
14/026,901
Granted
Oct 7, 2014
Kind
B2
Abstract

One embodiment of the present invention sets forth a technique for displaying high-resolution images using multiple graphics processing units (GPUs). The graphics driver is configured to present one virtual display device, simulating a high-resolution mosaic display surface, to the operating system and the application programs. The graphics driver is also configured to partition the display surface amongst the GPUs and transmit commands and data to the local memory associated with the first GPU. A video bridge automatically broadcasts this information to the local memories associated with the remaining GPUs. Each GPU renders and displays only the partition of the display surface assigned to that particular GPU, and the GPUs are synchronized to ensure the continuity of the displayed images. This technique allows the system to display higher resolution images than the system hardware would otherwise support, transparently to the operating system and the application programs.

Claims (42)

1. A method for creating a push buffer for rendering and displaying graphics images on a mosaic display surface, the method comprising:

determining a resolution of the mosaic display surface;

informing an operating system that a graphics processing subsystem includes a single virtual display device that has a resolution corresponding to the resolution of the mosaic display surface;

inserting sets of commands into the push buffer to configure each of two or more processing units to render and display a different portion of a graphics image, wherein each portion of the graphics image corresponds to a different partition of the mosaic display surface;

inserting, after the sets of commands, at least one additional command into the push buffer to configure all of the two or more processing units to execute all subsequent commands in the push buffer, including a plurality of graphics commands to generate the graphics image;

receiving graphics calls from a software application; and

processing the graphics calls to generate the plurality of graphics commands and inserting the graphics commands into the push buffer following the at least one additional command.

2. The method of claim 1 , wherein the sets of commands to configure each of the two or more processing units to render and display a different portion of the graphics image comprise a plurality of commands that configure one of the two or more processing units to execute at least one command defining one of the different partitions of the mosaic display surface.

3. The method of claim 2 , wherein the plurality of commands that configure one of the two or more processing units to execute the at least one command defining one of the different partitions of the mosaic display surface comprise a set device mask command and a processing unit identifier command that configure the processing units such that only the processing unit associated with the processing unit identifier command executes the at least one command defining one of the different partitions of the mosaic display surface.

4. The method of claim 1 , wherein the at least one additional command to configure all of the two or more processing units to execute all subsequent commands in the push buffer comprise a set device mask command and an everyone command.

5. The method of claim 1 , wherein each of the plurality of graphics commands is configured to target the entire mosaic display surface.

6. The method of claim 1 , wherein the software application perceives only a single high-resolution virtual display device.

7. The method of claim 1 , wherein the different portions of the graphics image rendered by each of the two or more processing units overlap.

8. A non-transitory computer-readable medium including instructions that, when executed by a first processor, cause the first processor to create a push buffer for rendering and displaying graphics images on a mosaic display surface, by performing the steps of:

determining a resolution of the mosaic display surface;

informing an operating system that a graphics processing subsystem includes a single virtual display device that has a resolution corresponding to the resolution of the mosaic display surface;

inserting sets of commands into the push buffer to configure each of two or more processing units to render and display a different portion of a graphics image, wherein each portion of the graphics image corresponds to a different partition of the mosaic display surface;

inserting, after the sets of commands, at least one additional command into the push buffer to configure all of the two or more processing units to execute all subsequent commands in the push buffer, including a plurality of graphics commands to generate the graphics image;

receiving graphics calls from a software application; and

processing the graphics calls to generate the plurality of graphics commands and inserting the graphics commands into the push buffer following the at least one additional command.

9. The computer-readable medium of claim 8 , wherein the sets of commands to configure each of the two or more processing units to render and display a different portion of the graphics image comprise a plurality of commands that configure one of the two or more processing units to execute at least one command defining one of the different partitions of the mosaic display surface.

10. The computer-readable medium of claim 9 , wherein the plurality of commands that configure one of the two or more processing units to execute the at least one command defining one of the different partitions of the mosaic display surface comprise a set device mask command and a processing unit identifier command that configure the processing units such that only the processing unit associated with the processing unit identifier command executes the at least one command defining one of the different partitions of the mosaic display surface.

11. The computer-readable medium of claim 8 , wherein the at least one additional command to configure all of the two or more processing units to execute all subsequent commands in the push buffer comprise a set device mask command and an everyone command.

12. The computer-readable medium of claim 8 , wherein each of the plurality of graphics commands is configured to target the entire mosaic display surface.

13. The computer-readable medium of claim 8 , wherein the software application perceives only a single high-resolution virtual display device.

14. The computer-readable medium of claim 8 , wherein the different portions of the graphics image rendered by each of the two or more processing units overlap.

15. A computing device, comprising:

two or more processing units;

a software driver configured to create a push buffer of commands for rendering and displaying graphics images on a mosaic display surface, wherein the software driver is specifically configured to:

determine a resolution of the mosaic display surface;

inform an operating system that a graphics processing subsystem includes a single virtual display device that has a resolution corresponding to the resolution of the mosaic display surface;

insert sets of commands into the push buffer to configure each of two or more processing units to render and display a different portion of a graphics image, wherein each portion of the graphics image corresponds to a different partition of the mosaic display surface;

insert, after the sets of commands, at least one additional command into the push buffer to configure all of the two or more processing units to execute all subsequent commands in the push buffer, including a plurality of graphics commands to generate the graphics image;

receive graphics calls from a software application; and

process the graphics calls to generate the plurality of graphics commands and inserting the graphics commands into the push buffer following the at least one additional command.

16. The computing device of claim 15 , wherein the sets of commands to configure each of the two or more processing units to render and display a different portion of the graphics image comprise a plurality of commands that configure one of the two or more processing units to execute at least one command defining one of the different partitions of the mosaic display surface.

17. The computing device of claim 16 , wherein the plurality of commands that configure one of the two or more processing units to execute the at least one command defining one of the different partitions of the mosaic display surface comprise a set device mask command and a processing unit identifier command that configure the processing units such that only the processing unit associated with the processing unit identifier command executes the at least one command defining one of the different partitions of the mosaic display surface.

18. The computing device of claim 15 , wherein the at least one additional command to configure all of the two or more processing units to execute all subsequent commands in the push buffer comprise a set device mask command and an everyone command.

19. The computing device of claim 15 , wherein:

the software driver is a graphics driver; and

the software application perceives only a single high-resolution virtual display.

20. The computing device of claim 15 , wherein the different portions of the graphics image rendered by each of the two or more processing units overlap.

Continuity (2)
Continuation 11952089 · Dec 6, 2007
Related Publication 20140078148A1 · Mar 20, 2014