[Mesa-dev] glxgears is faster but 3D render is so slow

Brian Paul brianp at vmware.com
Thu Mar 14 06:29:00 PDT 2013


On 03/14/2013 04:37 AM, jupiter wrote:
> Hi Brian,
>
> On 3/14/13, Brian Paul<brianp at vmware.com>  wrote:
>> On 03/13/2013 04:11 AM, jupiter wrote:
>>> Hi Brian,
>>>
>>> Sorry for not being clear, let me clarify it.
>>>
>>> On 3/13/13, Brian Paul<brianp at vmware.com>   wrote:
>>>> Well, the Xlib/swrast driver does everything in software, unlike a DRI
>>>> driver which does most things with the GPU.  Xlib will always be slower.
>>>
>>> My local test machine graphic card does not have hardware
>>> acceleration, it does not support OpenGL, it does not have NVIDIA. I
>>> guess the DRI driver may still implement software GL even though it
>>> might access some basic functions of the low budget graphic card, but
>>> correct me, if I am using wrong terminology.
>>
>> Yes, swrast may also be used via DRI, when there's no DRI driver for
>> the hardware GPU or when the hardware driver needs a software fallback.
>>
>>
>>>> The gallium llvmpipe driver should be quite a bit faster.
>>>>
>>>> Just install LLVM first, then reconfigure/rebuild Mesa, set your
>>>> LD_LIBRARY_PATH to the lib/gallium/ directory and you should get
>>>> llvmpipe.
>>>>
>>> Yes, I have already built the Mesalib with LLVM, I posted the
>>> configuration in my last email, let me post it again.
>>>
>>> ${SOURCE}/${CONFIGURE} --prefix=${INSTALL} --enable-xlib-glx
>>> --disable-dri --enable-gallium-llvm --with-llvm-shared-libs
>>>
>>> It did not produce a faster result, it was virtually not much
>>> differences when I run Chimera comparing to use of
>>> --with-gallium-drivers=swrast unless my configuration is wrong. Please
>>> let me know a correct version of configuration for llvmpipe. The
>>> libdrm version is 2.4.42. The libllvm version is 3.2.
>>
>> libdrm is irrelevant for llvmpipe.
>
> I know it should not include the libdrm, but I could not compile the
> mesa without libdrm, please see following error. How to resolve that
> issue?

Hmm, I guess autoconf still has some unneeded dependencies on DRI when 
it's not needed.  You might try adding --with-gallium-drivers=swrast 
so that no DRI drivers are selected.



> ........
> checking for clock_gettime in -lrt... yes
> checking for posix_memalign... yes
> checking for the pthreads library -lpthreads... no
> checking whether pthreads work without any flags... no
> checking whether pthreads work with -Kthread... no
> checking whether pthreads work with -kthread... no
> checking for the pthreads library -llthread... no
> checking whether pthreads work with -pthread... yes
> checking for joinable pthread attribute... PTHREAD_CREATE_JOINABLE
> checking if more special flags are required for pthreads... no
> checking for PTHREAD_PRIO_INHERIT... no
> configure: Shared GLAPI is only useful for DRI, disabling
> checking for LIBDRM... yes
> checking for X11... yes
> checking for XLIBGL... yes
> checking for mincore... yes
> checking for LIBUDEV... no
> checking for XCB_DRI2... yes
> checking for llvm-config... /usr/local/libllvm/3.2/bin/llvm-config
> checking for RADEON... configure: error: Package requirements
> (libdrm_radeon>= 2.4.42) were not met:
>
> Requested 'libdrm_radeon>= 2.4.42' but version of libdrm_radeon is 2.4.33
>
> I don't know there it coms from, my graphic card is "00:02.0 VGA
> compatible controller: Intel Corporation Mobile GM965/GL960 Integrated
> Graphics Controller (primary) (rev 03)"
>
> I have also add libxcbproto and libxcb to the LD_LIBRARY_PATH as
> requested the libraries versions in CentOS 6.2 is newer than the
> system installed.
>
>
>>
>>> I can also use a test program to measure Mesa in different drivers if
>>> you could let me know which test program can be used for benchmarking
>>> the Mesalib using different drivers of swrast, or llvm or DRI? And
>>> where is the test program source code I can download from?
>>
>> The Mesa demos git tree can be cloned per
>> http://www.mesa3d.org/repository.html
>>
>>>
>>> Please also see attached glxinfo for Mesa llvm.
>>
>> The key line is "OpenGL renderer string: Mesa X11".  That's not
>> llvmpipe.  If you're really using llvmpipe it should say something
>> like "OpenGL renderer string: Gallium 0.4 on llvmpipe (LLVM 3.2, 128
>> bits)".
>>
>> Perhaps your LD_LIBRARY_PATH env is pointing at the wrong libGL.so
>
> Hmm, the LD_LIBRARY_PATH seems set properly.
>
> $ echo $LD_LIBRARY_PATH
> /usr/local/mesallvm/9.1/lib:/usr/local/libllvm/3.2/lib

Is there a /usr/local/mesallvm/9.1/lib/gallium/ directory with another 
libGL.so?  That would be the one to use for llvmpipe.

-Brian


More information about the mesa-dev mailing list