Am 13.02.2014 12:28, schrieb Maarten Lankhorst:
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.
Please reconsider that for a moment, it means that we make the gallium
pipe screen and context a public interface of a shared library.
That means we either need to put everything into a single package, make
hard dependencies on the packages between each other or declare the pipe
interfaces as stable. Neither of those options sounds like a good idea
(ok, maybe putting everything into a single package).
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. :-)
Yeah, agree.
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.
Removing the unnecessary exported symbols is probably the better way to
go, the last time I checked r600 had something ~200kb of actually binary
and over 1mb of symbols.
Christian.
~Maarten
_______________________________________________
mesa-dev mailing list
mesa-dev@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/mesa-dev