glamor: Delay making pixmaps shared until needed.
Eric Anholt
eric at anholt.net
Fri Nov 6 12:51:54 PST 2015
This is a branch I've been working on for a while for glamor,
targeting 1.19. The observation is that X allocates many pixmaps,
only a few of which will be shared between clients, and sharing a new
pixmap between clients is infrequent. Given this, we can allocate
higher-performance non-shared pixmaps, and just use a quick CopyArea
to a shared pixmap when we need to produce an fd for one (aka when
texture_from_pixmap is used on a new window).
This is particularly important for VC4 (Raspberry Pi), since the 3D
engine can't read from the raster format, but you really want raster
format for anything you might pageflip to (the scanout engine is slow
at tiled texture formats). Window dragging in LXDE or XFCE4 goes from
rendering at a few fps to mostly smooth.
This is available in the glamor-delay-shareable branch of my tree.
More information about the xorg-devel
mailing list