[Mesa-dev] Convert vdpau and dri targets to the pipe-loader

Emil Velikov emil.l.velikov at gmail.com
Mon Feb 10 20:26:20 PST 2014


Hello list,

The recent patches from Rob gave me a nice kick to give another stab at
integrating the pipe-loader into the vdpau/dri targets.

What:
 - With these patches one library will be created for hardware and one for
software driven backends - eg. libvdpau_gallium_dri, libvdpau_gallium_sw
 - Each library can use every possible pipe driver, determined at runtime.
 - To get the dri (galliumdrm_dri) or vdpau library working create hardlink
(or symlink) to it (libvdpau_nouveau.so -> libvdpau_gallium_dri.so)

Why:
 - Smaller overall size while having no extra exported symbols. This is
a nice method of us to share most of gallium (read mesagallium and 
aux/gallium) without exporting every symbol either one to those two contain.
 - Drop the multiple duplicated
 - With those done, some additional symbol cleanup can be made using the
linker. The stripped size of pipe_nouveau and pipe_swrast decreased by
~0.6MiB, downto 2.2, 1.2MiB accordingly. With similar results on other
libaries.

What has been tested:
 - (st/dri) nouveau and swrast were spinning glxgears and nouveau was
glretrace-ing lol, dota2 and portal traces.
 - (st/vdpau) nouveau - tested using mplayer in benchmark mode. no
significant changes were noticed. swrast was broken while using vdpau,
as to why it was dropped a while back.

What has not been tested/known to be broken:
 - (st/dri) currently the drm_configuration() and the driver options
(__dri2ConfigOptions) are not wired up.
 - (st/vdpau) the driver specific create_winsys are not exported by the
vdpau library, thus gl-vdpau interop is not tested and possibly broken.
 - Resolve all the linking between the library and all backends
nouveau_dri.so -> galliumdrm_dri.so 
 - Scons and drivers having multiple winsys (i915)

In the weeks ahead:
 - Cleanup/resolve the above issues
 - Tackle the remaining two st (omx and xvmc), which should be trivial.
 - Compact the dri/drm and dri/sw state-trackers into a single library.


Please let me know how you feel on the subject, and as ususal some
testing including opencl, gbm, egl and gl-vdpau interop would be greatly
appreciated.


The complete patchset can be found in the pipe-loader-to-all branch over at
https://github.com/evelikov/Mesa/

Note: the first 10 patches should be fine as is as.

Cheers,
Emil



More information about the mesa-dev mailing list