Hey,

On 11-02-14 05:26, Emil Velikov wrote:
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.
Thanks, I've been meaning to do his myself but didn't find the time yet.
Up until 7/13 look good at least. and 11 looks like it could be committed too.

The rest would need some more testing than simply reviewing the code and looking for obvious bugs. :-)

Would it help to change the vdpau abi? I have a patch in my vdpau loader to look for an entry point similar to the one used in megadrivers, but it could be changed to add the name of the library too as argument.
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.
swrast never worked right with vdpau, good riddance. :-)
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.
If pipe-loader is used for dri, then that problem will fix itself without needing exports. ;-)
  - 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.
Hooray, removing all duplication is a good thing!
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.

_______________________________________________
mesa-dev mailing list
mesa-dev@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/mesa-dev

Reply via email to