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

