VGEM, the Virtual GEM provider for the Linux kernel, is still being developed and a new version has been published.
The Virtual GEM implementation was announced at the beginning of the year
by Red Hat's Adam Jackson. Adam began working on this "mock-GEM" implementation so that display drivers without a native DRM driver could use this "fake" kernel driver for memory management. This VGEM driver would then just allocate a shadow frame-buffer while in certain cases like dealing with virtualization the front-buffer could be bound directly to a GEM object, which would eliminate a memory copy and slightly better the performance.
The reasoning for doing this work is to basically improve the CPU-based LLVMpipe driver
performance in cases where no GPU driver is available. Running Gallium3D's LLVMpipe software rasterizer is still very slow for OpenGL gaming even with the latest Intel/AMD multi-core CPUs, but it can at least handle desktop compositing. Since late last year the GNOME Shell with Mutter could work with LLVMpipe
. Beginning with Fedora 17 and appearing elsewhere is that now when no GPU driver is available rather than falling back to some non-composited desktop mode, LLVMpipe will be called into action with the desktop of choice.
LLVMpipe is alright for this scenario but Adam Jackson has been working on a few performance optimizations, some of which are centered around VGEM for having this fake DRM driver to deal with memory management and to eliminate some memory copy calls.
Since publishing VGEM last month and marking it as being in an alpha state, no new revisions have been published by Adam Jackson. (Among other reasons, he's been working on making the xf86-video-vesa driver work with X.Org Server 1.12.)
This week though Ben Widawsky published a new version of VGEM that builds upon Jackson's work and the comments his first patch revision received. The RFCv2 patch-set can be found on the mailing list
The reason why Widawsky is playing with VGEM is also interesting. "My intention is to use this to do some dmabuf work/testing with i915 since it seemed too difficult to get some of Dave Airlie's stuff working, and I really don't feel like learning anything about nouveau if I can avoid it. (though I plan to do that later as well)." For those not familiar with DMA-BUF, read this and watch the video