Wednesday, May 4, 2011  GEM Overview  This is the script of a
short intro I've given at the Linaro@UDS memory management
summit in Budapest in spring 2011. Yep, it's a bit old ...  The
core idea of GEM is to identify graphic buffer objects with
32bit ids. The reason being "X runs out of open fds" (KDE easily
reaches a few thousand).  The core design principle behind GEM
is that the kernel is in full control of the allocation of these
buffer objects and is free to move the around in any way it sees
fit. This is to make concurrent rendering by multiple processes
possible while userspace can still assume that it is in sole
possession of the gpu - GEM means "graphics execution manager".
Below some more details on what GEM is and does, what it does
_not_ do and how it relates to other graphic subsystems.  GEM
does ...    • lifecycle management. Userspace references are
associated with the drm fd and get reaped on close (in case
userspace forgets about them).    • per-device global names to
exchange buffers betwee