[Mesa-dev] [PATCH 00/23] Megadrivers galore

Emil Velikov emil.l.velikov at gmail.com
Thu Jun 19 05:02:35 PDT 2014

On 19/06/14 11:54, Jakob Bornecrantz wrote:
> On Tue, Jun 17, 2014 at 8:38 PM, Emil Velikov <emil.l.velikov at gmail.com> wrote:
>> Hi all,
>> As a follow up to the static/shared pipe-drivers series here is the final
>> series (if anyone is interested I may take a look at egl + opencl) of
>> refactoring the gallium dri targets into a single library/provider.
>> In a nutshell:
>>  - Convert one target per patch.
>>  - Merge the drm and sw backends of our dri state-tracker.
>>  - Adds __driDriverGetExtensions_$drivername symbol for each driver.
>>  - Megadrivers.
>>  - ***
>>  - Profit.
>> Things works like a charm for nouveau and swrast, and testing on other
>> platforms is greatly appreciated.
>> The complete series can be found in the static-or-shared-pipe-drivers-v2
>> branch at my github repo.
>> I would like to get this reviewed/pushed over the next month, although
>> that depends on the number of bugs that come up with the previous batch.
>> As always comments, suggestions and flame is welcome.
> I'm trying to get a better grasp of the resulting set of binaries will look like
> on a distro, correct me if I'm wrong, by default we will get one gallium_dri.so
> that is linked against shared dri core and glapi correct. And then hardlinks
> from say vmwgfx_dri.so to gallium_dri.so?
Believe Marek answered these quite nicely. Thanks.

> Also looking at the patch it looks like stdri can still be build without
> DRM installed on the system? I remember the Hurd people being
> quite vocal about this.
Before we had two "front-ends" for stdri - drm and sw. Now I'm merging the two
into a single library - no functionality and/or build dependency changes. It
gives us at least:
 - Removed symlinks - OpenBSD people import mesa into CVS which does not
handle them :\
 - The chance to simplify things a bit (-100 loc), merge the hardware and
software dri drivers and slightly minimize the linking time.


> Cheers, Jakob.
>> Cheers,
>> Emil
>> Emil Velikov (23):
>>       targets/dri-swrast: use drm aware dricommon when building more than swrast
>>       st/dri: Allow separate dri-targets
>>       st/dri/drm: Add a second libdridrm library
>>       targets/dri-nouveau: Convert to static/shared pipe-drivers
>>       targets/(r300|r600|radeonsi)/dri: Convert to static/shared pipe-drivers
>>       targets/dri-freedreno: Convert to static/shared pipe-drivers
>>       targets/dri-i915: Convert to static/shared pipe-drivers
>>       targets/dri-ilo: Convert to static/shared pipe-driver
>>       targets/dri-vmwgfx: Convert to static/shared pipe-drivers
>>       st/dri: Remove the old libdridrm library
>>       targets/dri: Add __driDriverGetExtensions_nouveau symbol
>>       targets/dri: Add __driDriverGetExtensions_(r300|r600|radeonsi) symbols
>>       targets/dri: Add __driDriverGetExtensions_freedreno symbol
>>       targets/dri: Add __driDriverGetExtensions_i915 symbol
>>       targets/dri: Add __driDriverGetExtensions_i965 symbol
>>       targets/dri: Add __driDriverGetExtensions_vmwgfx
>>       targets/dri: update scons build to handle __driDriverGetExtensions_vmwgfx
>>       targets/dri: cleanup conversion leftovers
>>       st/dri/drm: remove __driDriverExtensions and driDriverAPI
>>       scons: build and use a single dri_common library
>>       targets/dri-swrast: convert to gallium megadrivers :)
>>       st/dri: merge dri/drm and dri/sw backends
>>       targets/dri-swrast: Convert to static/shared pipe-driver
>>  61 files changed, 536 insertions(+), 1375 deletions(-)

More information about the mesa-dev mailing list