Intel's Eric Anholt just finished speaking at the 2008 X Developers' Summit about video memory management. Specifically, Eric was talking about GEM, or the Graphics Execution Manager
, that came about as a result of concerns that arose
about Tungsten's TTM
. GEM is now the kernel memory manager they are focusing their open-source development work on for the xf86-video-intel
driver and is what they hope will become the de facto standard for memory management.
In this Graphics Execution Manager talk, Eric started talking about their past memory management methods (i830_memory.c, exa_offscreen.c, and texmem.c) that imposed many limitations along with the shortcomings they experienced with TTM. A new memory manager was needed for composited OpenGL, EXT_framebuffer_object, EXT_texture_from_pixmap, reduced memory consumption, and private back-buffers.
In this talk the next plans they have for GEM are fence register management, hardware contexts, user-land cache management, rectangular pwrite, GIT mmap, and fault-based flushing.
During this talk, Intel's Keith Packard
called for a common API for GEM that can be used across multiple drivers. "I would love to see the GEM API extended to support discrete graphics cards," noted Packard. Keith though is quite confused over David Airlie's decision to use a GEM-ified TTM memory manager
for the open-source ATI driver rather than fully using their Graphics Execution Manager.