Apparatus and method for graphics virtualization with late synchronization

US12056786B2 · US · B2

Patent metadata
FieldValue
Publication numberUS-12056786-B2
Application numberUS-201817256201-A
CountryUS
Kind codeB2
Filing dateSep 27, 2018
Priority dateSep 27, 2018
Publication dateAug 6, 2024
Grant dateAug 6, 2024

How to read this patent

A practical reading order for non-experts. Skip the full description unless you need deep technical detail.

  1. Title

    What the patent document calls the invention.

  2. Abstract

    A short plain-language summary of the technical disclosure.

  3. Assignees and inventors

    Who owns or filed the patent and who is credited as inventor.

  4. Key dates

    Filing, priority, publication, and grant dates set the timeline.

  5. First independent claim

    The legal scope of protection — read this for what is actually claimed.

  6. CPC / IPC classifications

    Technology tags used to group this patent with similar filings.

  7. Citations and related patents

    Prior art links and similar publications in this corpus.

Abstract

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.

First claim

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.

Assignees

Inventors

Classifications

  • 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

Patent family

Related publications grouped by family.

External sources

Frequently asked questions

Answers are generated from the same data shown on this page.

What does patent US12056786B2 cover?
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…
Who is the assignee on this patent?
Intel Corp
What technology area does this patent fall under?
Primary CPC classification G06F9/45558. Mapped technology areas include Physics.
When was this patent published?
Publication date Tue Aug 06 2024 00:00:00 GMT+0000 (Coordinated Universal Time) (B2). Legal status and post-grant events are not shown on this page.
What related patents are in patentsdb?
We list 3 related publications on this page (citations in our corpus or others sharing the same primary CPC).