[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