<!-- mobian-agent-page publisher="dailydev" canonical="https://daily.dev/posts/the-state-of-gfx-virtualization-using-virglrenderer-oo0u7h9eh" -->

---
title: The state of GFX virtualization using virglrenderer
description: virglrenderer provides three approaches to GPU-accelerated graphics in virtual machines: VirGL (OpenGL only, works on older hardware without Vulkan), Venus...
canonical: https://daily.dev/posts/the-state-of-gfx-virtualization-using-virglrenderer-oo0u7h9eh
twitter:card: summary_large_image
twitter:site: @dailydotdev
og:type: website
og:site_name: daily.dev
og:title: The state of GFX virtualization using virglrenderer | daily.dev
og:description: virglrenderer provides three approaches to GPU-accelerated graphics in virtual machines: VirGL (OpenGL only, works on older hardware without Vulkan), Venus...
og:url: https://daily.dev/posts/the-state-of-gfx-virtualization-using-virglrenderer-oo0u7h9eh
og:image: https://api.daily.dev/og/posts/OO0U7H9eh.png
og:image:alt: The state of GFX virtualization using virglrenderer
og:image:width: 1200
og:image:height: 630
og:locale: en
---

> ## Documentation Index
> Fetch the complete documentation index at: https://daily.dev/llms.txt
> Use this file to discover all available pages before exploring further.

# The state of GFX virtualization using virglrenderer

**[Collabora Blog](https://daily.dev/sources/collabora)** · 8 min read · 0 upvotes · 0 comments

## Summary

virglrenderer provides three approaches to GPU-accelerated graphics in virtual machines: VirGL (OpenGL only, works on older hardware without Vulkan), Venus (Vulkan transport layer, thin overhead, supports up to Vulkan 1.3, runs in isolated process), and Virtual DRM (vDRM, near-native performance via kernel-level mediation but requires hardware-specific guest drivers). VirGL is feature-complete but has performance limitations with concurrent apps. Venus is stable since mid-2023 but requires blob resource support (CrosVM now, QEMU pending) and VK_EXT_image_drm_format_modifier. vDRM is partially supported in CrosVM, with QEMU support in progress and full blob support arriving in Linux kernel 6.13.

## Full article

daily.dev links to this article rather than hosting it. Read it at the original source: <https://www.collabora.com/news-and-blog/blog/2025/01/15/the-state-of-gfx-virtualization-using-virglrenderer>

## Questions this post answers

### What Vulkan API version does Venus in virglrenderer support?

Venus supports Vulkan API versions up to v1.3. It has been stable since May 2023 and supports all extensions required by DXVK and Zink. Venus requires blob resource support from the VMM (available in CrosVM, tagged stable for QEMU) and the VK_EXT_image_drm_format_modifier extension, which excludes pre-GFX9 AMD GPUs.

_Engineers evaluating Vulkan virtualization stacks track Venus compatibility updates on daily.dev._

### What are the performance differences between VirGL, Venus, and vDRM for GPU virtualization in Linux VMs?

vDRM achieves near-native GPU performance for most applications since it mediates at the kernel driver UAPI level, though guest memory mapping overhead can still cause slowdowns. Venus is a thin Vulkan transport layer with performance close to native, limited mainly by host-guest synchronization. VirGL has the worst performance: it duplicates shader compilation work and serializes all guest OpenGL calls into a single host thread.

_Teams choosing between GPU passthrough and virtualization approaches find comparative coverage on daily.dev._

### Which VMMs support virglrenderer blob resources needed for Venus and OpenGL 4.4+ via VirGL?

Blob resource support is required for Venus and for VirGL OpenGL 4.4 and above. CrosVM currently supports blob resources. QEMU support has been tagged as stable. For vDRM specifically, blob support is limited by KVM and TTM interactions in the Linux kernel, with the resolving patches targeting Linux kernel version 6.13.

_Developers building VM graphics pipelines stay ahead of kernel and VMM compatibility changes on daily.dev._

## Similar posts on daily.dev

- [Flatpak Exploring GPU Virtualization To Ease Driver Challenges](https://daily.dev/posts/flatpak-exploring-gpu-virtualization-to-ease-driver-challenges-0irfkmyja) · Phoronix · 1 upvotes · 0 comments
- [AMD Working On A New Backend For Improving ROCm Compute In QEMU/VMs](https://daily.dev/posts/amd-working-on-a-new-backend-for-improving-rocm-compute-in-qemu-vms-px3wwgxqw) · Phoronix · 0 upvotes · 0 comments
- [Igniting the GPU: From Kernel Plumbing to 3D Rendering on RISC-V](https://daily.dev/posts/igniting-the-gpu-from-kernel-plumbing-to-3d-rendering-on-risc-v-n3d4nu797) · Hacker News · 1 upvotes · 0 comments
- [GPU Virtualization Architecture for Multi-Desktop Containers](https://daily.dev/posts/gpu-virtualization-architecture-for-multi-desktop-containers-kfc1v2hut) · HelixML · 42 upvotes · 0 comments

---

Tags: [#linux](https://daily.dev/tags/linux), [#opengl](https://daily.dev/tags/opengl), [#vulkan](https://daily.dev/tags/vulkan)

[View this post on daily.dev](https://daily.dev/posts/the-state-of-gfx-virtualization-using-virglrenderer-oo0u7h9eh)

```json
{"@context":"https://schema.org","@graph":[{"@type":"Organization","@id":"https://daily.dev/#organization","name":"daily.dev","url":"https://daily.dev","logo":{"@type":"ImageObject","url":"https://daily.dev/apple-touch-icon.png","width":180,"height":180},"sameAs":["https://twitter.com/dailydotdev","https://github.com/dailydotdev","https://www.linkedin.com/company/daily-dev-ltd"]},{"@type":"WebSite","@id":"https://daily.dev/#website","url":"https://daily.dev","name":"daily.dev","publisher":{"@id":"https://daily.dev/#organization"},"potentialAction":{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https://daily.dev/search?q={search_term_string}"},"query-input":"required name=search_term_string"}}]}
{"@context":"https://schema.org","@type":"TechArticle","headline":"The state of GFX virtualization using virglrenderer","url":"https://daily.dev/posts/the-state-of-gfx-virtualization-using-virglrenderer-oo0u7h9eh","mainEntityOfPage":{"@type":"WebPage","@id":"https://daily.dev/posts/the-state-of-gfx-virtualization-using-virglrenderer-oo0u7h9eh"},"datePublished":"2026-08-11T08:54:35.374Z","dateModified":"2026-10-14T02:36:24.750Z","description":"virglrenderer provides three approaches to GPU-accelerated graphics in virtual machines: VirGL (OpenGL only, works on older hardware without Vulkan), Venus...","image":"https://media.daily.dev/image/upload/f_auto,q_auto/v1/posts/ad2b94df16290eef5f1378308fca3d54?_a=AQAEuop","thumbnailUrl":"https://media.daily.dev/image/upload/f_auto,q_auto/v1/posts/ad2b94df16290eef5f1378308fca3d54?_a=AQAEuop","isAccessibleForFree":true,"articleSection":"Collabora Blog","inLanguage":"en","publisher":{"@type":"Organization","name":"daily.dev","url":"https://daily.dev","logo":{"@type":"ImageObject","url":"https://daily.dev/apple-touch-icon.png","width":180,"height":180}},"author":{"@type":"Organization","name":"Collabora Blog","logo":"https://media.daily.dev/image/upload/s--ZGZ0FjqS--/f_auto,q_auto/v1786438306/logos/collabora?_a=BAMAMicg0","url":"https://daily.dev/sources/collabora"},"commentCount":0,"discussionUrl":"https://daily.dev/posts/the-state-of-gfx-virtualization-using-virglrenderer-oo0u7h9eh","interactionStatistic":[{"@type":"InteractionCounter","interactionType":{"@type":"LikeAction"},"userInteractionCount":0},{"@type":"InteractionCounter","interactionType":{"@type":"CommentAction"},"userInteractionCount":0}],"keywords":"linux,opengl,vulkan","timeRequired":"PT8M"}
{"@context":"https://schema.org","@type":"BreadcrumbList","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https://daily.dev"},{"@type":"ListItem","position":2,"name":"Collabora Blog","item":"https://daily.dev/sources/collabora"},{"@type":"ListItem","position":3,"name":"The state of GFX virtualization using virglrenderer"}]}
{"@context":"https://schema.org","@type":"FAQPage","@id":"https://daily.dev/posts/the-state-of-gfx-virtualization-using-virglrenderer-oo0u7h9eh#faq","mainEntity":[{"@type":"Question","name":"What Vulkan API version does Venus in virglrenderer support?","acceptedAnswer":{"@type":"Answer","text":"Venus supports Vulkan API versions up to v1.3. It has been stable since May 2023 and supports all extensions required by DXVK and Zink. Venus requires blob resource support from the VMM (available in CrosVM, tagged stable for QEMU) and the VK_EXT_image_drm_format_modifier extension, which excludes pre-GFX9 AMD GPUs. Engineers evaluating Vulkan virtualization stacks track Venus compatibility updates on daily.dev."}},{"@type":"Question","name":"What are the performance differences between VirGL, Venus, and vDRM for GPU virtualization in Linux VMs?","acceptedAnswer":{"@type":"Answer","text":"vDRM achieves near-native GPU performance for most applications since it mediates at the kernel driver UAPI level, though guest memory mapping overhead can still cause slowdowns. Venus is a thin Vulkan transport layer with performance close to native, limited mainly by host-guest synchronization. VirGL has the worst performance: it duplicates shader compilation work and serializes all guest OpenGL calls into a single host thread. Teams choosing between GPU passthrough and virtualization approaches find comparative coverage on daily.dev."}},{"@type":"Question","name":"Which VMMs support virglrenderer blob resources needed for Venus and OpenGL 4.4+ via VirGL?","acceptedAnswer":{"@type":"Answer","text":"Blob resource support is required for Venus and for VirGL OpenGL 4.4 and above. CrosVM currently supports blob resources. QEMU support has been tagged as stable. For vDRM specifically, blob support is limited by KVM and TTM interactions in the Linux kernel, with the resolving patches targeting Linux kernel version 6.13. Developers building VM graphics pipelines stay ahead of kernel and VMM compatibility changes on daily.dev."}}]}
```

