[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