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

Emil Velikov emil.l.velikov at gmail.com
Wed Jun 18 11:59:52 PDT 2014

On 18/06/14 14:09, Tom Stellard wrote:
> On Tue, Jun 17, 2014 at 07:38:16PM +0100, Emil Velikov 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.
> Hi Emil,
> One common problem I run into when using the pipe drivers is if there
> is an undefined symbol in the pipe_*.so then it will silently fail to
> load, and with OpenCL for example it won't report any devices which can
> be confusing for users.  I would recommend adding some error handling to
> util_dlopen, so that it prints an error message when it fails to load a
> shared object.
> Other than that, it's hard to review a series like this, but I'll
> give it an:
Hmm I'm pretty sure that should not happen as of commit d187a150d45 (mesa
10.2) which adds a few linker flags that moves the issue to build time.

Pretty much everything (galliumwise) other than the dri targets should have
its symbols resolved, (and export only the required ones) with mesa 10.2.

Although I do plan on adding a "WARNING: YOU'RE USING PIPE-DRIVERS, THINGS
WILL BREAK...." etc. kind of warning, as I do make it possible (hidden behind
a key) to use them with vdpau, omx, dri.... More on that at 11.

Thanks for chipping in.


> Acked-by: Tom Stellard <thomas.stellard at amd.com>
> Since I like the general approach.
> -Tom
>> 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.
>> 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(-)
>> _______________________________________________
>> 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