humble ping People interested in taking a look at the series ? Any input is appreciated even if people are not familiar with mesa's build.
Francisco Can you take a look the pipe-loader patches 04/23 - 08/23 ? They add a few functions needed to make the pipe-loader st/dri aware. Patch 22 just moves some of the bits in opencl/Makefile.am around, so that we can use the same static/shared pipe-driver approach after some minor work in st/clover. Christian, Maarten Gents can you take a look if the video targets (patches 16-18) look sane ? This is one step towards what you guys were discussing/thinking in the previous iteration of "pipe-loader-to-all" [1] [2] If any of you guys feel like looking at the rest of the series I would be very grateful. Cheers, Emil [1] http://lists.freedesktop.org/archives/mesa-dev/2014-February/053983.html [2] http://lists.freedesktop.org/archives/mesa-dev/2014-February/053999.html On 25/05/14 19:42, Emil Velikov wrote: > ping ? > > For people that feel that the email is a bit vague here is a summary of what > the different terms mean and what the series means with regards to file size > of the final libraries. > > > Pipe-driver - gallium/drivers/$hw and its respective winsys built into a > standalone loadable module. Installed as > gallium-pipe/pipe_(r600|radeonsi|nouveau).so > > Pipe-loader - aux module (linked into the final library) that loads the > appropriate pipe-driver. > > Static("megadriver") - identical to what you did with megaradeon. All the > drivers selected at configure are linked into the same blob. > Hardlink for each target for compatibility reasons. > > Libraries: > dri: (r600|radeonsi|nouveau)_dri.so -> 6.5 MiB > vdpau: libvdpau_(r600|radeonsi|nouveau).so -> 3.5 MiB > > Total: 10MiB > > Shared("pipe-loader") - create individual pipe-drivers and standalone > state-tracker libraries (think of them as bla_dri + libGL). The pipe-driver is > used by all ST. Note: the interface is not stable, unlike the dri modules. > Hardlink for each target for compatibility reasons. > > 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 approach - at final link time, most state-trackers pull the > gallium/drivers/$hw, via the above mentioned DRM_DESCRIPTOR, to create a > independent HW specific library. Resulting in some duplication. > > 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 > > Note: currently egl-static and opencl are hardcoded to static and shared > respectively. Both of which are will be converted with the next series. > > > Summary: > Static - savings scale with number of hardware (gallium/drivers). > Shared - savings scale with number of state-trackers (gallium/state-tracker). > > Cheers, > Emil > > On 18/05/14 08:07, Emil Velikov wrote: >> Hi all >> >> Update of the megadriver/pipe-loader-to-all series. >> >> What & Why: >> Allow one to link every driver selected at configure with the target >> library, or even to allow them to use shared pipe-driver. >> >> Less duplication - rather than shipping three identical radeon winsys, >> 8 copies of the dri ST, 3x the OMX ST.... you get the idea :) >> >> For those concerned that the driver will be be present multiple times, >> in the static library they can opt in for shared pipe-drivers. >> Note that those bare unstable interface. >> >> Highlights & Notes: >> * Most gallium targets are changed with a few exceptions - egl static only, >> opencl shared, and dri static/shared for drm drivers. >> * OMX target does not build (pending Christian's feedback). >> * By default we're building static libraries. Add configure option? >> * Shared ones do not work with vdpau/gl interop. >> >> Next: >> Janitorial: >> * Update the release notes. >> * Cleanup configure target names. >> Megaradeon >> * As per Marek's idea, push some of the cruft to the radeon winsys layer. >> DRI >> * Create a single libdricommon (similar to classic dri). >> * Driver specific __driGetDriverExtension*. >> * Merge libdridrm + libdrisw. >> * Blown classic dri style megadriver. >> EGL/CLOVER >> * Cleanup sw winsys handling and convert egl/clover. >> Symlinks >> * Cleanup the link creation (think about other platforms) and compact/unify. >> >> >> The changes can be fetches are available in the pipe-loader-to-all-or-static >> branch over at https://github.com/evelikov/Mesa/ >> >> Build + runtime tested on my rusty old nv96 using nouveau, although I would >> appreciate additional testing :) >> >> * Build - automake, android and scons should just work. >> * Runtime - there should be no regressions (barring the vdpau/gl interop >> note above). >> >> As usual thoughts, comments and suggestions are greatly appreciated. >> >> Cheers >> Emil >> >> P.S. Did I mention that there is ~770loc savings as well :) >> > _______________________________________________ mesa-dev mailing list mesa-dev@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/mesa-dev