rfc/headsup: graphics driver packaging in F16+

Adam Jackson ajax at redhat.com
Thu Apr 14 06:02:01 UTC 2011


On 4/13/11 11:58 PM, Adam Williamson wrote:

> In the interests of general public enlightenment, it would've been nice
> if you'd answered KK's question "what am I missing", i.e., where's the
> magic bit which makes llvmpipe the default? Knowledge is always a good
> thing :)

The specfile contains this stanza, after it has built OSMesa:

# now build the rest of mesa
%configure %{common_flags} \
     --disable-glw \
     --disable-glut \
     --disable-gl-osmesa \
     --with-driver=dri \
     --with-dri-driverdir=%{_libdir}/dri \
     --with-state-trackers=dri,glx \
     --enable-egl \
     --enable-gles1 \
     --enable-gles2 \
     --disable-gallium-intel \
     --disable-gallium-svga \
     --disable-gallium-egl \
%if %{with_hardware}
     --enable-gallium-llvm \
     --enable-gallium-radeon \
     --enable-gallium-r600 \
     --enable-gallium-nouveau \
%else
     --disable-gallium-llvm \
     --disable-gallium-radeon \
     --disable-gallium-r600 \
     --disable-gallium-nouveau \
%endif
     %{?dri_drivers}

The --enable-gallium-llvm bit, in particular, is key.  There's some 
small magic later where it renames swrastg_dri.so to be swrast_dri.so 
because that's the name the X server and libGL are expecting, and that's 
not perfect yet in that the debuginfo search gets a little confused, but 
in the main I've tried to be pretty clear in the operation of the Mesa 
spec, despite the utter malignancy of the Mesa buildsystem (any of them, 
take your pick, there's like five now).  If I've failed in any way to 
document sufficiently our work in the specfile, please, do let me know.

But - as an aside - you're right.  I was a little irked at being asked 
whether I'd actually done the thing I'd said I'd done, had tested that 
I'd done, had documented that I'd done, had claimed in public that I'd 
done, and had been doubted of without any evidence of the inquisitor 
having made even cursory investigation into the matter.  It was wrong of 
me to assume that someone reading the spec would look for the string 
/llvm/i when looking for how to enable the LLVM support in Mesa, to 
assume that someone would read the spec to learn how the package was 
built, or to assume that someone would try to test a software GL path 
like Xvfb or vesa to see if I was in fact telling the truth before 
doubting my honesty.  I was unnecessarily short in my reply, and for 
that, I apologize.  In the future I'll be less succinct.

(No, I won't.)

- ajax


More information about the devel mailing list