[OE-core] [PATCH] mesa: enable additional drivers for gallium-llvm x86/x86-64

Jonathan Liu net147 at gmail.com
Tue Aug 20 10:41:03 UTC 2013


On 20/08/2013 8:24 PM, Martin Jansa wrote:
> On Tue, Aug 20, 2013 at 08:10:41PM +1000, Jonathan Liu wrote:
>> The additional Gallium drivers are needed for open source ATI Radeon
>> and NVIDIA graphics drivers.
>>
>> The radeonsi and r600 drivers require LLVM 3.3 built with r600
>> PACKAGECONFIG so they must be explicitly enabled by adding r600 to the
>> mesa PACKAGECONFIG.
> BTW: I just got interesting question about egl_gallium:
>
> libEGL warning: Could not open driver /usr/lib/egl/egl_gallium.so
> (libLLVM-3.3.so: cannot open shared object file: No such file or
> directory)
> Could not initialize egl display
>
> EGL error
> Aborted
> root at qemux86:~# ls -alh /usr/lib/llvm3.3/
> drwxr-xr-x    2 root     root        1.0K Aug 20 02:47 .
> drwxr-xr-x   35 root     root       10.0K Aug 20 02:47 ..
> -rwxr-xr-x    1 root     root       15.8M Aug 19 14:02 libLLVM-3.3.so
> -rwxr-xr-x    1 root     root       78.2K Aug 19 14:02 libLTO.so
> -rwxr-xr-x    1 root     root       10.1K Aug 19 14:02 libprofile_rt.so
>
> I don't know yet why it worked in my tests when I was updating mesa and
> llvm, but it's true that we need to make sure that mesa finds
> libLLVM-3.3.so in versioned subdirectory in runtime.
LLVM has been working fine for me with llvmpipe (Intel GMA 3600 - 
PowerVR-based), radeon (ATI Radeon HD5450) and nouveau (NVIDIA ION 
GeForce 9400M) drivers.

There is a symbolic link in /usr/lib:
$ cd /usr/lib
$ ls -l libLLVM-3.3.so
lrwxrwxrwx 1 root root 22 Aug 19 21:03 libLLVM-3.3.so -> 
llvm3.3/libLLVM-3.3.so

I intend to submit xf86-video-ati and xf86-video-nouveau to 
meta-openembedded later this week. I tested this change using those 
recipes, linux-firmware (needed for ATI 3D acceleration) and the 
following kernel options:
CONFIG_DRM_RADEON=m
CONFIG_DRM_RADEON_KMS=y
CONFIG_DRM_NOUVEAU=y

Regards,
Jonathan
>
>> Signed-off-by: Jonathan Liu <net147 at gmail.com>
>> ---
>>   meta/recipes-graphics/mesa/mesa.inc | 4 ++++
>>   1 file changed, 4 insertions(+)
>>
>> diff --git a/meta/recipes-graphics/mesa/mesa.inc b/meta/recipes-graphics/mesa/mesa.inc
>> index 447e186..e985d67 100644
>> --- a/meta/recipes-graphics/mesa/mesa.inc
>> +++ b/meta/recipes-graphics/mesa/mesa.inc
>> @@ -50,6 +50,10 @@ PACKAGECONFIG[egl] = "--enable-egl --with-egl-platforms=${EGL_PLATFORMS}, --disa
>>   PACKAGECONFIG[openvg] = "--enable-openvg, --disable-openvg"
>>   
>>   GALLIUMDRIVERS = "swrast"
>> +GALLIUMDRIVERS_LLVM33 = "${@base_contains('PACKAGECONFIG', 'r600', 'radeonsi,r600', '', d)}"
>> +GALLIUMDRIVERS_LLVM = "r300,svga,nouveau${@base_version_less_or_equal('MESA_LLVM_RELEASE', '3.2', '', ',${GALLIUMDRIVERS_LLVM33}', d)}"
>> +GALLIUMDRIVERS_append_x86 = "${@base_contains('PACKAGECONFIG', 'gallium-llvm', ',${GALLIUMDRIVERS_LLVM}', '', d)}"
>> +GALLIUMDRIVERS_append_x86-64 = "${@base_contains('PACKAGECONFIG', 'gallium-llvm', ',${GALLIUMDRIVERS_LLVM}', '', d)}"
>>   # keep --with-gallium-drivers separate, because when only one of gallium versions is enabled, other 2 were adding --without-gallium-drivers
>>   PACKAGECONFIG[gallium]      = "--with-gallium-drivers=${GALLIUMDRIVERS}, --without-gallium-drivers"
>>   PACKAGECONFIG[gallium-egl]  = "--enable-gallium-egl, --disable-gallium-egl"
>> -- 
>> 1.8.3.4
>>
>> _______________________________________________
>> Openembedded-core mailing list
>> Openembedded-core at lists.openembedded.org
>> http://lists.openembedded.org/mailman/listinfo/openembedded-core




More information about the Openembedded-core mailing list