Systems and methods for embedding data in remote session displays
US-2019278917-A1 · Sep 12, 2019 · US
US12056786B2 · US · B2
| Field | Value |
|---|---|
| Publication number | US-12056786-B2 |
| Application number | US-201817256201-A |
| Country | US |
| Kind code | B2 |
| Filing date | Sep 27, 2018 |
| Priority date | Sep 27, 2018 |
| Publication date | Aug 6, 2024 |
| Grant date | Aug 6, 2024 |
A practical reading order for non-experts. Skip the full description unless you need deep technical detail.
What the patent document calls the invention.
A short plain-language summary of the technical disclosure.
Who owns or filed the patent and who is credited as inventor.
Filing, priority, publication, and grant dates set the timeline.
The legal scope of protection — read this for what is actually claimed.
Technology tags used to group this patent with similar filings.
Prior art links and similar publications in this corpus.
Official abstract text for this publication.
An apparatus and method are described for graphics virtualization with late synchronization. For example, a virtualized graphics execution environment is implemented on a host, including a hypervisor to virtualize graphics processing resources for one or more virtual machines (VMs). A plurality of graphics commands are received responsive to execution of a graphics application in one of the VMs. The graphics commands are persisted until a frame triggering event is detected. Upon detection of a frame triggering event, the persisted graphics commands are submitted to the host.
Opening claim text (preview).
What is claimed is: 1. An apparatus comprising: a memory to store graphics program code including graphics commands and data; and a processor to execute virtualization instructions to implement a virtualized graphics execution environment on a host, the virtualized graphics execution environment including a hypervisor to virtualize graphics processing resources for one or more virtual machines (VMs), and the processor to execute a first subset of the virtualization instructions to implement a front end execution engine in a virtual machine (VM) of the one or more VMs, the front end execution engine in the VM to persist a plurality of the graphics commands until a frame triggering event is detected, wherein the front end execution engine is, responsive to detection of the frame triggering event of the VM, to submit the persisted graphics commands to the host and to cause exit from the VM to pass control over to the hypervisor. 2. The apparatus of claim 1 wherein the host includes a graphics processing unit (GPU) to be virtualized by the hypervisor. 3. The apparatus of claim 1 wherein the frame triggering event comprises an indication that a new frame is needed. 4. The apparatus of claim 3 wherein the frame triggering event further comprises one or more of: a swap buffer operation, a flush operation, or a finish operation. 5. The apparatus of claim 1 wherein the front end execution engine comprises a virtual resource identifier (ID) generator to generate a virtual resource ID for one or more of the persisted graphics commands. 6. The apparatus of claim 5 wherein the front end execution engine is to encode one or more of the persisted graphics commands in a command packet comprising a graphics command, command parameters, and an associated resource ID. 7. The apparatus of claim 6 wherein the hypervisor is to implement a back end execution engine to maintain a mapping between the virtual resource ID and a real resource ID. 8. The apparatus of claim 7 wherein responsive to receiving the persisted graphics commands, the hypervisor is to identify the real resource ID for any of the persisted graphics commands associated with the virtual resource ID and to provide the persisted graphics commands with real resource IDs to a graphics driver to render a frame. 9. A method comprising: implementing a virtualized graphics execution environment on a host, the virtualized graphics execution environment including a hypervisor to virtualize graphics processing resources for one or more virtual machines (VMs); receiving a plurality of graphics commands in a virtual machine (VM) of the one or more virtual machines responsive to execution of a graphics application in the VM; persisting the plurality of the graphics commands in the VM until a frame triggering event is detected; and responsive to detection of the frame triggering event, submitting the persisted graphics commands to the host, and causing exit from the VM. 10. The method of claim 9 wherein the host includes a graphics processing unit (GPU) to be virtualized by the hypervisor. 11. The method of claim 9 wherein the frame triggering event comprises an indication that a new frame is needed. 12. The method of claim 11 wherein the frame triggering event further comprises one or more of: a swap buffer operation, a flush operation, or a finish operation. 13. The method of claim 9 further comprising: generating a virtual resource identifier (ID) for one or more of the persisted graphics commands. 14. The method of claim 13 further comprising: encoding one or more of the persisted graphics commands in a command packet comprising a graphics command, command parameters, and an associated resource ID. 15. The method of claim 14 further comprising: generating a mapping between the virtual resource ID and a real resource ID associated with one or more of the persisted graphics commands. 16. The method of claim 15 further comprising: identifying the real resource ID for any of the persisted graphics commands associated with the virtual resource ID in response to submission of the persisted graphics commands to the host; and providing the persisted graphics commands with real resource IDs to a graphics driver to render a frame. 17. A non-transitory machine-readable medium having program code stored thereon which, when executed by a machine, causes the machine to perform: implementing a virtualized graphics execution environment on a host, the virtualized graphics execution environment including a hypervisor to virtualize graphics processing resources for one or more virtual machines (VMs); receiving a plurality of graphics commands in a virtual machine (VM) of the one or more virtual machines responsive to execution of a graphics application in the VM; persisting the plurality of the graphics commands in the VM until a frame triggering event is detected; and responsive to detection of the frame triggering event, submitting the persisted graphics commands to the host, and causing exit from the VM. 18. The non-transitory machine-readable medium of claim 17 wherein the host includes a graphics processing unit (GPU) to be virtualized by the hypervisor. 19. The non-transitory machine-readable medium of claim 17 wherein the frame triggering event comprises an indication that a new frame is needed. 20. The non-transitory machine-readable medium of claim 19 wherein the frame triggering event further comprises one or more of: a swap buffer operation, a flush operation, or a finish operation. 21. The non-transitory machine-readable medium of claim 17 further comprising program code to cause the machine: generating a virtual resource identifier (ID) for one or more of the persisted graphics commands. 22. The non-transitory machine-readable medium of claim 21 further comprising program code to cause the machine to perform: encoding one or more of the persisted graphics commands in a command packet comprising a graphics command, command parameters, and an associated resource ID. 23. The non-transitory machine-readable medium of claim 22 further comprising program code to cause the machine to perform: generating a mapping between the virtual resource ID and a real resource ID associated with one or more of the persisted graphics commands. 24. The non-transitory machine-readable medium of claim 23 further comprising program code to cause the machine to perform: identifying the real resource ID for any of the persisted graphics commands associated with the virtual resource ID in response to submission of the persisted graphics commands to the host; and providing the persisted graphics commands with real resource IDs to a graphics driver to render a frame.
Memory management, e.g. access or allocation · CPC title
Event management; Broadcasting; Multicasting; Notifications · CPC title
Logical partitioning of resources; Management or configuration of virtualized resources (specific details on emulation or internal functioning of virtual machines G06F9/455) · CPC title
Mechanisms to release resources · CPC title
Hypervisor-specific management and integration aspects · CPC title
Related publications grouped by family.
Answers are generated from the same data shown on this page.