# US 2013/0155083 A1 · Methods and systems for maintaining state in a virtual machine when disconnected from graphics hardware

> Agents: this data is available as JSON from the patentgrep API and MCP server — see https://patentgrep.com/llms.txt

- Number: US 2013/0155083 A1
- Document ID: US20130155083A1
- Status: Published application
- Kind: A1
- Application number: 13/687,623
- Filed: 2012-11-28
- Published: 2013-06-20
- Earliest claimed: 2011-11-29
- Assignees: Citrix Systems, Inc.
- Inventors: James McKenzie; Jean Guyader
- Web page: https://patentgrep.com/patent/US20130155083A1

## CPC

- G06T 1/20: Processor architectures; Processor configuration, e.g. pipelining
- G06F 9/455: Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F 9/45558: {Hypervisor-specific management and integration aspects}
- G06T: IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06F: ELECTRIC DIGITAL DATA PROCESSING (computer systems based on specific computational models G06N)

## Abstract

The present disclosure is directed towards methods and systems for maintaining state in a virtual machine when disconnected from graphics hardware. The virtual machine is one of a plurality of virtual machines hosted by a hypervisor executing on a computing device. A control virtual machine may be hosted by a hypervisor executing on a computing device. The control virtual machine may store state information of a graphics processing unit (GPU) of the computing device. The GPU may render an image from a first virtual machine. The control virtual machine may remove, from the first virtual machine, access to the GPU. The control virtual machine may redirect the first virtual machine to a GPU emulation program. The GPU emulation program may render the image from the first virtual machine using at least a portion of the stored state information.

## Claims

### Claim 1

In a computing device executing a hypervisor hosting a plurality of virtual machines, a method for maintaining state in a virtual machine when disconnected from graphics hardware, comprising:
(a) storing, by a control virtual machine hosted by a hypervisor executing on a computing device, state information of a graphics processing unit (GPU) of the computing device, the GPU rendering an image from a first virtual machine;
(b) removing, from the first virtual machine, by the control virtual machine, access to the GPU;
(c) redirecting, by the control virtual machine, the first virtual machine to a GPU emulation program; and
(d) rendering, by the GPU emulation program, the image from the first virtual machine using at least a portion of the stored state information.

### Claim 2 (depends on 1)

The method of claim 1, wherein (a) comprises storing state information of the GPU to a buffer of the computing device.

### Claim 3 (depends on 1)

The method of claim 1, wherein (a) comprises copying at least a portion of a graphics stack of the GPU including a state of a graphics driver.

### Claim 4 (depends on 1)

The method of claim 1, further comprising determining, by the control virtual machine, that the GPU emulation program is available within the first virtual machine for execution.

### Claim 5 (depends on 1)

The method of claim 1, further comprising determining, by the control virtual machine, that the GPU emulation program is installed in the computing device.

### Claim 6 (depends on 1)

The method of claim 1, further comprising executing the GPU emulation program prior to removing access to the GPU.

### Claim 7 (depends on 1)

The method of claim 1, wherein the control virtual machine provides the first virtual machine with uninterrupted or substantially uninterrupted access to a graphics processing entity during the removal and redirection.

### Claim 8 (depends on 1)

The method of claim 1, wherein (c) comprises redirecting an application of the first virtual machine providing the image to the GPU emulation program.

### Claim 9 (depends on 1)

The method of claim 1, further comprising providing, by the control virtual machine, to a second virtual machine, access to the GPU responsive to the removal.

### Claim 10 (depends on 1)

The method of claim 1, further comprising restoring the stored state information to the GPU and redirecting the first virtual machine to the GPU.

### Claim 11

In a computing device executing a hypervisor hosting a plurality of virtual machines, a system for maintaining state in a virtual machine when disconnected from graphics hardware, comprising:
a hypervisor executing on a computing device and hosting a control virtual machine and a first virtual machine, wherein the control virtual machine is configured to:
store state information of a graphics processing unit (GPU) of the computing device, the GPU rendering an image from a first virtual machine;
remove, from the first virtual machine, access to the GPU; and
redirecting the first virtual machine to a GPU emulation program,
wherein the GPU emulation program renders the image from the first virtual machine using at least a portion of the stored state information.

### Claim 12 (depends on 11)

The system of claim 11, wherein the control virtual machine stores state information of the GPU to a buffer of the computing device.

### Claim 13 (depends on 11)

The system of claim 11, wherein the control virtual machine copies at least a portion of a graphics stack of the GPU including a state of a graphics driver.

### Claim 14 (depends on 11)

The system of claim 11, wherein the control virtual machine determines that the GPU emulation program is available within the first virtual machine for execution.

### Claim 15 (depends on 11)

The system of claim 11, wherein the control virtual machine determines that the GPU emulation program is installed in the computing device.

### Claim 16 (depends on 11)

The system of claim 11, wherein the control virtual machine initiates execution of the GPU emulation program prior to removing access to the GPU.

### Claim 17 (depends on 11)

The system of claim 11, wherein the control virtual machine provides the first virtual machine with uninterrupted or substantially uninterrupted access to a graphics processing entity during the removal and redirection.

### Claim 18 (depends on 11)

The system of claim 11, wherein the control virtual machine redirects an application of the first virtual machine providing the image to the GPU emulation program.

### Claim 19 (depends on 11)

The system of claim 11, wherein the control virtual machine provides, to a second virtual machine, access to the GPU responsive to the removal.

### Claim 20 (depends on 11)

The system of claim 11, wherein the control virtual machine restores the stored state information to the GPU and redirects the first virtual machine to the GPU.
