That phoronix article is quite old. In the end swrast will use llvmpipe if
you also use --enable-gallium-llvm (
http://www.paraview.org/Wiki/ParaView/ParaView_And_Mesa_3D)

Software rendering without either llvmpipe or swr is very slow indeed, but
as you can see on the above page software rendering is sometimes even
faster than a GPU.
Actually I found it also works better for me for remote X, instead of the
more traditional indirect rendering via a GPU on the connecting machine.

On 10 May 2017 at 13:09, Vanzo, Davide <[email protected]> wrote:

> Jack,
>
> Thank you for the feedback.
>
> In my path to enlightenment I stumbled across the following article, which
> seems to suggest that using swrast is not such a great idea:
>
> http://www.phoronix.com/scan.php?page=article&item=mesa_81_llvmpipe&num=1
>
> Any comment on that?
>
> --
> Davide Vanzo, PhD
> Application Developer
> Adjunct Assistant Professor of Chemical and Biomolecular Engineering
> Advanced Computing Center for Research and Education (ACCRE)
> Vanderbilt University - Hill Center 201
> (615)-875-9137 <(615)%20875-9137>
> www.accre.vanderbilt.edu
>
> On May 10 2017, at 12:01 pm, Jack Perdue <[email protected]> wrote:
>
>> AFAIK, we haven't had any problems with this change
>> (things seem to be working.... users aren't yelling....):
>>
>> < --with-gallium-drivers='swrast,swr'\
>> ---
>>  > --with-gallium-drivers='swrast'\
>>
>> jack
>>
>>
>> On 05/10/2017 11:45 AM, Vanzo, Davide wrote:
>> > Hello fellow easybuilders,
>> >
>> > I am working on creating a minimal toolchain set of modules for X11
>> > and Qt for GUI-based software in the foss-2016b toolchain. When trying
>> > to install Mesa-12.0.2-GCC-5.4.0-2.26.eb (created by
>> > using Mesa-12.0.2-foss-2016b.eb) it fails when building the libswrAVX2
>> > since the LLVM library has been built on a Nehalem machine which does
>> > not have support for AVX (see log at the end of the email).
>> >
>> > Clearly one solution would be to avoid building SWR as part of Mesa
>> > but I have no idea of the implication of this choice since I am not
>> > very familiar with this type of libraries.
>> >
>> > Any suggestion?
>> >
>> > Thanks!
>> >
>> >
>> > PS: Here is the error log:
>> >
>> > CXX rasterizer/jitter/libswrAVX2_la-blend_jit.lo
>> > CXX rasterizer/jitter/libswrAVX2_la-builder.lo
>> > CXX rasterizer/jitter/libswrAVX2_la-builder_misc.lo
>> > CXX rasterizer/jitter/libswrAVX2_la-fetch_jit.lo
>> > CXX rasterizer/jitter/libswrAVX2_la-JitManager.lo
>> > CXX rasterizer/jitter/libswrAVX2_la-streamout_jit.lo
>> > CXX rasterizer/memory/libswrAVX2_la-ClearTile.lo
>> > CXX rasterizer/memory/libswrAVX2_la-LoadTile.lo
>> > CXX rasterizer/memory/libswrAVX2_la-StoreTile.lo
>> > rasterizer/core/threads.cpp: In function ‘void
>> > WorkOnFifoBE(SWR_CONTEXT*, uint32_t, uint64_t&, TileSet&, uint32_t,
>> > uint32_t)’:
>> > rasterizer/core/threads.cpp:467:26: warning: unused variable
>> > ‘numWorkItems’ [-Wunused-variable]
>> > uint32_t numWorkItems = tile.getNumQueued();
>> > ^
>> > CXX rasterizer/scripts/libswrAVX2_la-gen_knobs.lo
>> > CXX rasterizer/jitter/libswrAVX2_la-builder_x86.lo
>> > CXX rasterizer/jitter/libswrAVX2_la-builder_gen.lo
>> > CXX swr_loader.lo
>> > CXX rasterizer/common/libswrAVX_la-formats.lo
>> > CXX rasterizer/common/libswrAVX_la-rdtsc_buckets.lo
>> > rasterizer/jitter/builder_misc.cpp: In member function ‘llvm::Value*
>> > Builder::PMAXSD(llvm::Value*, llvm::Value*)’:
>> > rasterizer/jitter/builder_misc.cpp:862:77: error: ‘x86_sse41_pmaxsd’
>> > is not a member of ‘llvm::Intrinsic’
>> > Function* pmaxsd =
>> > Intrinsic::getDeclaration(JM()->mpCurrentModule,
>> > Intrinsic::x86_sse41_pmaxsd);
>> > ^
>> > rasterizer/jitter/builder_misc.cpp: In member function ‘llvm::Value*
>> > Builder::PMINSD(llvm::Value*, llvm::Value*)’:
>> > rasterizer/jitter/builder_misc.cpp:891:77: error: ‘x86_sse41_pminsd’
>> > is not a member of ‘llvm::Intrinsic’
>> > Function* pminsd =
>> > Intrinsic::getDeclaration(JM()->mpCurrentModule,
>> > Intrinsic::x86_sse41_pminsd);
>> > ^
>> > make[5]: *** [rasterizer/jitter/libswrAVX2_la-builder_misc.lo] Error 1
>> > make[5]: *** Waiting for unfinished jobs....
>> > rasterizer/jitter/builder_x86.cpp: In member function ‘llvm::Value*
>> > Builder::VPMINSD(llvm::Value*, llvm::Value*)’:
>> > rasterizer/jitter/builder_x86.cpp:85:71: error: ‘x86_avx2_pmins_d’ is
>> > not a member of ‘llvm::Intrinsic’
>> > Function *func = Intrinsic::getDeclaration(JM()->mpCurrentModule,
>> > Intrinsic::x86_avx2_pmins_d);
>> > ^
>> > rasterizer/jitter/builder_x86.cpp: In member function ‘llvm::Value*
>> > Builder::VPMAXSD(llvm::Value*, llvm::Value*)’:
>> > rasterizer/jitter/builder_x86.cpp:92:71: error: ‘x86_avx2_pmaxs_d’ is
>> > not a member of ‘llvm::Intrinsic’
>> > Function *func = Intrinsic::getDeclaration(JM()->mpCurrentModule,
>> > Intrinsic::x86_avx2_pmaxs_d);
>> > ^
>> > rasterizer/jitter/builder_x86.cpp: In member function ‘llvm::Value*
>> > Builder::VPMOVSXBD(llvm::Value*)’:
>> > rasterizer/jitter/builder_x86.cpp:148:71: error: ‘x86_avx2_pmovsxbd’
>> > is not a member of ‘llvm::Intrinsic’
>> > Function *func = Intrinsic::getDeclaration(JM()->mpCurrentModule,
>> > Intrinsic::x86_avx2_pmovsxbd);
>> > ^
>> > rasterizer/jitter/builder_x86.cpp: In member function ‘llvm::Value*
>> > Builder::VPMOVSXWD(llvm::Value*)’:
>> > rasterizer/jitter/builder_x86.cpp:155:71: error: ‘x86_avx2_pmovsxwd’
>> > is not a member of ‘llvm::Intrinsic’
>> > Function *func = Intrinsic::getDeclaration(JM()->mpCurrentModule,
>> > Intrinsic::x86_avx2_pmovsxwd);
>> > ^
>> > make[5]: *** [rasterizer/jitter/libswrAVX2_la-builder_x86.lo] Error 1
>> > make[5]: Leaving directory
>> > `/tmp/Mesa/12.0.2/GCC-5.4.0-2.26/mesa-12.0.2/src/gallium/drivers/swr'
>> > make[4]: *** [all] Error 2
>> > make[4]: Leaving directory
>> > `/tmp/Mesa/12.0.2/GCC-5.4.0-2.26/mesa-12.0.2/src/gallium/drivers/swr'
>> > make[3]: *** [all-recursive] Error 1
>> > make[3]: Leaving directory
>> > `/tmp/Mesa/12.0.2/GCC-5.4.0-2.26/mesa-12.0.2/src/gallium'
>> > make[2]: *** [all-recursive] Error 1
>> > make[2]: Leaving directory
>> > `/tmp/Mesa/12.0.2/GCC-5.4.0-2.26/mesa-12.0.2/src'
>> > make[1]: *** [all] Error 2
>> > make[1]: Leaving directory
>> > `/tmp/Mesa/12.0.2/GCC-5.4.0-2.26/mesa-12.0.2/src'
>> > make: *** [all-recursive] Error 1
>> >
>> >
>> > --
>> > Davide Vanzo, PhD
>> > Application Developer
>> > Adjunct Assistant Professor of Chemical and Biomolecular Engineering
>> > Advanced Computing Center for Research and Education (ACCRE)
>> > Vanderbilt University - Hill Center 201
>> > (615)-875-9137 <(615)%20875-9137>
>> > www.accre.vanderbilt.edu
>>
>


-- 
Dr. Bart E. Oldeman | [email protected] | [email protected]
Scientific Computing Analyst / Analyste en calcul scientifique
McGill HPC Centre / Centre de Calcul Haute Performance de McGill |
http://www.hpc.mcgill.ca
Calcul Québec | http://www.calculquebec.ca
Compute/Calcul Canada | http://www.computecanada.ca
Tel/Tél: 514-396-8926 | Fax/Télécopieur: 514-396-8934

Reply via email to