[Mesa-dev] Convert vdpau and dri targets to the pipe-loader

Maarten Lankhorst maarten.lankhorst at canonical.com
Thu Feb 13 03:28:47 PST 2014


op 11-02-14 11:30, Christian König schreef:
> Am 11.02.2014 05:26, schrieb Emil Velikov:
>> 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
>
> Just drop, the software driven backends. I was about to remove them anyway.
>
>>   - 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.
>
> NAK, at least for the VDPAU drivers that doesn't sounds like such a good idea to me.
>
> Reducing the number of exported symbols can be archived otherwise and giving up their self containing without any external dependencies just to save some extra space on disk doesn't sound like a valid reason to me.
This is a great idea. It doesn't just save diskspace, it also makes life for packagers easier. Right now I'm not packaging vdpau in ubuntu because of the extra disk space involved.
Not everyone can download packages with 10 mbit connections.

I really dislike building libgallium shared, so getting rid of that hack while keeping the size reduction is great. :-)

Preventing symbol clashing is easy by carefully choosing which symbols to export. And in the case of pipe-loader we would only need to export
very few, and those exports are very controlled. Even radeon_drm_winsys_create doesn't need to be exported any more if vdpau and dri use the same shared pipe-loader library.

~Maarten



More information about the mesa-dev mailing list