VGEM virtual GEM provider for software rendering
VGEM is a virtual graphics memory provider inside the kernel's DRM graphics stack. Instead of driving a real GPU, it exposes a software-only buffer-sharing device that Mesa's llvmpipe and similar software renderers, plus some graphics test suites, use when no physical GPU is available or when buffers need to be shared between processes on a headless system.
recommendation
Worth keeping but documenting its niche because VGEM is not a hardware driver at all but a virtual graphics buffer provider that Mesa's software renderers and a handful of test suites lean on. Upstream maintenance is quietly ongoing, with cleanup and bug-fix patches landing into late 2025 and early 2026, so there is no removal pressure, just a small and specialised user base that benefits from a clear note about what the module is for.
repository signals
sources
- lore.kernel.org
Recent upstream maintenance continued into 2026 with a vgem cleanup patch ('drm: vgem: do not use devres groups').
- lore.kernel.org
vgem still received bug-fix traffic in late 2025 ('vgem: fix error return in vgem_init()').
- cateee.net
CONFIG_DRM_VGEM is a 'Virtual GEM provider' used by Mesa's software renderer; it is a virtual DRM component, not physical hardware support.
- docs.mesa3d.org
Mesa's llvmpipe software renderer remains current documentation, supporting the inference that software-rendering deployments still exist where vgem-like sharing helpers can matter.
codex reasoning notes (technical)
`lore_file_timeline` on `drivers/gpu/drm/vgem/vgem_drv.c` produced the two lore URLs and showed steady 2025-2026 maintenance rather than removal discussion. `web.search_query` found the LKDDb page describing vgem as a virtual GEM provider used by Mesa software rendering, and Mesa's llvmpipe docs showing the software-rendering niche is still current. Because vgem is explicitly non-hardware-backed, there is no sell-through hardware lifecycle to track; deployment is niche but nonzero, so keep with annotation rather than deprecate/remove.