[Mesa-dev] Megaradeon

Emil Velikov emil.l.velikov at gmail.com
Thu May 15 05:13:20 PDT 2014


On 15/05/14 03:33, Michel Dänzer wrote:
> On 15.05.2014 10:58, Marek Olšák wrote:
>> Hi everybody,
>>
>> Some distros seem to care about the size of Mesa, so I came up with
>> this little patch.
>>
>> It puts r600g and radeonsi into r300_dri.so. The result is one shared
>> library which contains all three drivers. Also, all driver loaders in
>> Mesa should now always load the r300 driver instead of r600 and
>> radeonsi.
>>
>> The radeon winsys is created first, which then creates the correct
>> screen (r300, r600, or radeonsi) according to the PCI ID.
>>
>> The libGL loader has actually been ignoring the driver name from the X
>> server for quite some time, so nothing needs to be done for this
>> outside of Mesa.
>>
>> This is for *_dri.so only, the other targets are still separate and
>> probably broken with this patch. (VDPAU, XvMC, egl-gallium, OpenCL?)
>>
>> What's missing:
>> - do the same for the other targets/APIs
>> - remove r600 and radeonsi targets and clean up the build system
>>
>> Original files without debugging symbols:
>>   5.9MB r300_dri.so
>>   6.5MB r600_dri.so
>>   5.7MB radeonsi_dri.so
>> Megaradeon:
>>   7.0MB r300_dri.so (all 3 drivers)
>>
>> If somebody who cares about the size of Mesa wants to finish this up,
>> the patch is attached. This is only a proof that it's not really
>> difficult. What remains is mostly just build system work.
> 
> FWIW, I think it would be cleaner to use a new name instead of reusing
> any existing name.
> 
> 
FWIW currently only radeon drivers are split in such a way - freedreno and
nouveau have been using such separation at winsys level as far back as I can
remember.

Any thoughts about backwards compatibility - old loader (libGL, libEGL etc.)
and new r300_dri? Example: X/ddx requests r600_dri, whereas it does not exist.

If the above is not a concern, then a nicer approach would be to rename the
classic radeon to r100/radeon-vieux, and use radeon for the gallium driver
(idea borrowed from nouveau). Otherwise we will need to create hardlink for
each gallium driver.

Emil


More information about the mesa-dev mailing list