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

Ilia Mirkin imirkin at alum.mit.edu
Tue Jun 17 11:39:53 PDT 2014


On Thu, Jun 12, 2014 at 3:56 PM, Emil Velikov <emil.l.velikov at gmail.com> wrote:
> 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.

Given that this is an unstable API, how do you handle versioning? What
will happen when people (invariably) mix & match?

>
> 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
>
>
> _______________________________________________
> mesa-dev mailing list
> mesa-dev at lists.freedesktop.org
> http://lists.freedesktop.org/mailman/listinfo/mesa-dev


More information about the mesa-dev mailing list