[Mesa-dev] A gallium XA state tracker

Thomas Hellstrom thellstrom at vmware.com
Wed Jun 15 02:29:04 PDT 2011


I just pushed an initial commit of an X Acceleration state tracker to 
the xa_branch.

The idea is that in the long run it will be replacing the Xorg state 
tracker, which can then move back to a modular xf86-video-modesetting. 
It will also be responsible for the acceleration part of an updated 
vmwgfx X driver

 From the README:

The XA state tracker is intended as a versioned interface to gallium for
xorg driver writers. Initially it's mostly based on Zack Rusin's
composite / video work for the Xorg state tracker.

The motivation behind this state tracker is that the Xorg state tracker has
a number of interfaces to work with:

1) The Xorg sdk (versioned)
2) Gallium3D (not versioned)
3) KMS modesetting (versioned)
4) Driver-private (hopefully versioned)

Since Gallium3D is versioned, the Xorg state tracker needs to be compiled
with Gallium, but it's really beneficial to be able to compile xorg drivers

Therefore the xa state tracker is intended to supply the following

1) Versioning.
2) Surface functionality (creation and copying for a basic dri2 
3) YUV blits for textured Xv.

and coming up:
4) Solid fills with ROP functionality.
5) Copies with ROP functionality, format conversion and - reinterpretation.
6) Xrender- type compositing for general acceleration.

4-6 is not implemented yet since they are currently not directly used by the
vmwgfx driver.

The first user will be the vmwgfx xorg driver. When there are more users,
we need to be able to load the appropriate gallium pipe driver, and we
should investigate sharing the loadig mechanism with the EGL state tracker.


More information about the mesa-dev mailing list