[Mesa-dev] Static/shared pipe-drivers (was megadriver/pipe-loader-to-all)

Emil Velikov emil.l.velikov at gmail.com
Thu Jun 12 12:56:20 PDT 2014


Hi all,

These patches add support for building (grouping) the various targets per
API, meaning that only one library will be created  for e.g. vdpau
(libvdpau_gallium) with individual ones (libvdpau_r600) being a hardlink
to it.

This allows us to have substantial space savings as the API(state-tracker)
is available only once. Additionally it adds support for shared
pipe-drivers via a _unstable_ interface, which saves us the duplication
across X APIs.

The former method has been used by the egl-static while the latter by
opencl and gbm targets since they were introduced.

By default we build with "static pipe-drivers".

Some numbers + extra info [1]

[Static]
dri:            (r600|radeonsi|nouveau)_dri.so       -> 6.5 MiB
vdpau:          libvdpau_(r600|radeonsi|nouveau).so  -> 3.5 MiB

Total: 10MiB

[Shared]
Libraries:
dri:            (r600|radeonsi|nouveau)_dri.so       -> 3.9 MiB
vdpau:          libvdpau_(r600|radeonsi|nouveau).so  -> 633 KiB
gallium-pipe:   pipe_(r600|radeonsi|nouveau).so      -> 5.3 MiB

Total: 9.8MiB

[Current]
dri:            (r600|radeonsi|nouveau)_dri.so       -> 5.0+4.5+5.3 = 14.8 MiB
vdpau:          libvdpau_(r600|radeonsi|nouveau).so  -> 1.9+1.2+2.3 = 5.4 MiB

Total: 20.2MiB


The previous series can be found here [2]
Changes since then
 - Convert targets individually.
 - OMX targets now work, and the final library is now libomx-mesa.so
 - Dropped the DRI targets for now
 - A handfull of typos thinkos and bugs fixed.


My plan is to have these pushed in ~4 stages, with two stages per week.
This way I will be able to crack on with the remaining bits and have all
of it tested well before we branch the next release.

Series is availabe at
https://github.com/evelikov/Mesa/tree/static-or-shared-pipe-drivers

As always comments and suggestions are greatly appreciated.

Cheers,
-Emil

[1] http://lists.freedesktop.org/archives/mesa-dev/2014-May/059806.html
[2] http://lists.freedesktop.org/archives/mesa-dev/2014-May/059628.html




More information about the mesa-dev mailing list