Re: Trouble compiling MesaGL : llvm intrinsics seem to be missing.
Albert Freeman <[email protected]>
| Newsgroups | gmane.comp.video.mesa3d.user |
|---|---|
| Message-ID | <CAHD8uZNths8BE=v3iJDvrBL_CU6sqz5vrrC=qjpDCNz_YKU7Zg@mail.gmail.com> |
you might have to add the below in place of that huge chunk of text I told you to remove HAVE_GALLIUM_LLVMPIPE=yes On 3 November 2016 at 13:37, Albert Freeman <[email protected]> wrote: > Also remove this from configure.ac: > > dnl Duplicates in GALLIUM_DRIVERS_DIRS are removed by sorting it after > this block > if test -n "$with_gallium_drivers"; then > gallium_drivers=`IFS=', '; echo $with_gallium_drivers` > for driver in $gallium_drivers; do > case "x$driver" in > xsvga) > HAVE_GALLIUM_SVGA=yes > require_libdrm "svga" > ;; > xi915) > HAVE_GALLIUM_I915=yes > PKG_CHECK_MODULES([INTEL], [libdrm_intel >= $LIBDRM_INTEL_REQUIRED]) > require_libdrm "Gallium i915" > ;; > xilo) > HAVE_GALLIUM_ILO=yes > PKG_CHECK_MODULES([INTEL], [libdrm_intel >= $LIBDRM_INTEL_REQUIRED]) > require_libdrm "Gallium i965/ilo" > ;; > xr300) > HAVE_GALLIUM_R300=yes > PKG_CHECK_MODULES([RADEON], [libdrm_radeon >= > $LIBDRM_RADEON_REQUIRED]) > require_libdrm "Gallium R300" > gallium_require_llvm "Gallium R300" > ;; > xr600) > HAVE_GALLIUM_R600=yes > PKG_CHECK_MODULES([RADEON], [libdrm_radeon >= > $LIBDRM_RADEON_REQUIRED]) > require_libdrm "Gallium R600" > if test "x$enable_opencl" = xyes; then > radeon_gallium_llvm_check "r600g" "3" "6" "0" > LLVM_COMPONENTS="${LLVM_COMPONENTS} bitreader asmparser" > fi > ;; > xradeonsi) > HAVE_GALLIUM_RADEONSI=yes > PKG_CHECK_MODULES([RADEON], [libdrm_radeon >= > $LIBDRM_RADEON_REQUIRED]) > PKG_CHECK_MODULES([AMDGPU], [libdrm_amdgpu >= > $LIBDRM_AMDGPU_REQUIRED]) > require_libdrm "radeonsi" > radeon_gallium_llvm_check "radeonsi" "3" "6" "0" > require_basic_egl "radeonsi" > ;; > xnouveau) > HAVE_GALLIUM_NOUVEAU=yes > PKG_CHECK_MODULES([NOUVEAU], [libdrm_nouveau >= > $LIBDRM_NOUVEAU_REQUIRED]) > require_libdrm "nouveau" > ;; > xfreedreno) > HAVE_GALLIUM_FREEDRENO=yes > PKG_CHECK_MODULES([FREEDRENO], [libdrm_freedreno >= > $LIBDRM_FREEDRENO_REQUIRED]) > require_libdrm "freedreno" > ;; > xswrast) > HAVE_GALLIUM_SOFTPIPE=yes > if test "x$MESA_LLVM" = x1; then > HAVE_GALLIUM_LLVMPIPE=yes > fi > ;; > xswr) > swr_llvm_check "swr" > > swr_require_cxx_feature_flags "C++11" "__cplusplus >= 201103L" \ > ",-std=c++11" \ > SWR_CXX11_CXXFLAGS > AC_SUBST([SWR_CXX11_CXXFLAGS]) > > swr_require_cxx_feature_flags "AVX" "defined(__AVX__)" \ > ",-mavx,-march=core-avx" \ > SWR_AVX_CXXFLAGS > AC_SUBST([SWR_AVX_CXXFLAGS]) > > swr_require_cxx_feature_flags "AVX2" "defined(__AVX2__)" \ > ",-mavx2 -mfma -mbmi2 -mf16c,-march=core-avx2" \ > SWR_AVX2_CXXFLAGS > AC_SUBST([SWR_AVX2_CXXFLAGS]) > > HAVE_GALLIUM_SWR=yes > ;; > xvc4) > HAVE_GALLIUM_VC4=yes > PKG_CHECK_MODULES([VC4], [libdrm_vc4 >= $LIBDRM_VC4_REQUIRED]) > require_libdrm "vc4" > > PKG_CHECK_MODULES([SIMPENROSE], [simpenrose], > [USE_VC4_SIMULATOR=yes; > DEFINES="$DEFINES -DUSE_VC4_SIMULATOR"], > [USE_VC4_SIMULATOR=no]) > ;; > xvirgl) > HAVE_GALLIUM_VIRGL=yes > require_libdrm "virgl" > require_basic_egl "virgl" > ;; > *) > AC_MSG_ERROR([Unknown Gallium driver: $driver]) > ;; > esac > done > fi > > On 3 November 2016 at 13:34, Albert Freeman <[email protected]> wrote: >> I would remove this line from configure.ac and rerun ./autogen.sh: >> AC_MSG_ERROR([gallium_osmesa requires the gallium swrast driver]) >> then try the top config again with these changes: Omit --enable-osmesa >> since that is the classic osmesa which is a slower alternative to >> --enable-gallium-osmesa. >> >> swr is for distributed computers, it is faster than swrast, but for >> non distributed computing environments you will want to use llvmpipe >> which is faster than softpipe (which in turn is faster than swrast) >> but requires llvm and x86. >> I don't know what "configure: error: Unknown Gallium driver: llvmpipe" >> is on about. >> That last configuration of yours builds no drivers so will result in >> an unworkable mesa. >> >> On 2 November 2016 at 23:39, Jeff McWilliams <[email protected]> wrote: >>> Removing the swrast driver in order to avoid the compile error with missing llvm intrinsics causes a configuration error: >>> >>> ./configure --enable-opengl --disable-gles1 --disable-gles2 --disable-va --disable-xvmc --disable-vdpau --enable-shared-glapi --enable-texture-float --enable-gallium-llvm --enable-llvm-shared-libs --with-gallium-drivers=llvmpipe --disable-egl --with-egl-platforms= --disable-gbm --disable-dri --with-dri-drivers= --disable-glx --enable-osmesa --enable-gallium-osmesa --with-llvm-prefix=$HW_ROOTDIR/third_party/llvm/llvm3.9.0/linux64 --prefix=$HW_ROOTDIR/third_party/mesagl/mesa12.0.3/linux64 --exec-prefix=$HW_ROOTDIR/third_party/mesagl/mesa12.0.3/linux64 >>> ... >>> ... >>> ... >>> configure: error: gallium_osmesa requires the gallium swrast driver >>> >>> Removing "--enable-gallium-osmesa" in response to the above error causes another error. Llvmpipe is an unknown gallium driver. >>> >>> >>> ./configure --enable-opengl --disable-gles1 --disable-gles2 --disable-va --disable-xvmc --disable-vdpau --enable-shared-glapi --enable-texture-float --enable-gallium-llvm --enable-llvm-shared-libs --with-gallium-drivers=llvmpipe --disable-egl --with-egl-platforms= --disable-gbm --disable-dri --with-dri-drivers= --disable-glx --enable-osmesa --with-llvm-prefix=$HW_ROOTDIR/third_party/llvm/llvm3.9.0/linux64 --prefix=$HW_ROOTDIR/third_party/mesagl/mesa12.0.3/linux64 --exec-prefix=$HW_ROOTDIR/third_party/mesagl/mesa12.0.3/linux64 >>> ... >>> ... >>> ... >>> configure: error: Unknown Gallium driver: llvmpipe >>> >>> The following configuration results in no configuration errors, but is this the optimal performance configuration for OSMesa ? >>> >>> ./configure --enable-opengl --disable-gles1 --disable-gles2 --disable-va --disable-xvmc --disable-vdpau --enable-shared-glapi --enable-texture-float --enable-gallium-llvm --enable-llvm-shared-libs --with-gallium-drivers= --disable-egl --with-egl-platforms= --disable-gbm --disable-dri --with-dri-drivers= --disable-glx --enable-osmesa --with-llvm-prefix=$HW_ROOTDIR/third_party/llvm/llvm3.9.0/linux64 --prefix=$HW_ROOTDIR/third_party/mesagl/mesa12.0.3/linux64 --exec-prefix=$HW_ROOTDIR/third_party/mesagl/mesa12.0.3/linux64 >>> >>> >>> >>> >>> Jeff >>> >>> -----Original Message----- >>> From: mesa-users [mailto:[email protected]] On Behalf Of Jeff McWilliams >>> Sent: Wednesday, November 2, 2016 8:00 AM >>> To: Albert Freeman <[email protected]> >>> Cc: [email protected] >>> Subject: Re: [Mesa-users] Trouble compiling MesaGL : llvm intrinsics seem to be missing. >>> >>> Thanks for the suggestions, Albert. I will try these. >>> >>> I'm not 100% clear on the differences between swr and swrast. I'm looking for the fastest OSMesa renderer. I was under the impression that swr was faster than swrast, but I could be misinformed. >>> >>> >>> -----Original Message----- >>> From: Albert Freeman [mailto:[email protected]] >>> Sent: Tuesday, November 1, 2016 11:37 PM >>> To: Jeff McWilliams <[email protected]> >>> Cc: [email protected] >>> Subject: Re: [Mesa-users] Trouble compiling MesaGL : llvm intrinsics seem to be missing. >>> >>> Those compilation errors are with swr which you have enabled via --with-gallium-drivers=swrast,swr. Do you intend to use swr? If not remove it. I don't know if swr can even be used with osmesa. >>> --with-gallium-drivers=llvmpipe might be a good idea You probably want to change --disable-texture-float to --enable-texture-float or you won't get very high OpenGL support. >>> And you may or may not want to remove --with-sha1=libcrypto You may want to remove --disable-osmesa >>> >>> On 2 November 2016 at 03:56, Jeff McWilliams <[email protected]> wrote: >>>> I'm trying to compile MesaGL specifically to use the OSMesa support for a project. >>>> >>>> I've configured and compiled llvm 3.9.0 with the following configure: >>>> >>>> cmake -G "Unix Makefiles" -DBUILD_SHARED_LIBS=ON >>>> -DCMAKE_INSTALL_PREFIX=$HW_ROOTDIR/third_party/llvm/llvm3.9.0/linux64 >>>> -DLLVM_TARGETS_TO_BUILD="X86" >>>> $HW_ROOTDIR/third_party/llvm/llvm3.9.0/llvm-3.9.0.src >>>> make >>>> make install >>>> >>>> And I've configured mesa 12.0.3 with: >>>> ./configure ./configure --enable-opengl --disable-gles1 >>>> --disable-gles2 --disable-va --disable-xvmc --disable-vdpau >>>> --enable-shared-glapi --disable-texture-float --with-sha1=libcrypto >>>> --enable-gallium-llvm --enable-llvm-shared-libs >>>> --with-gallium-drivers=swrast,swr --disable-egl --with-egl-platforms= >>>> --disable-gbm --disable-dri --with-dri-drivers= --disable-glx >>>> --disable-osmesa --enable-gallium-osmesa >>>> --with-llvm-prefix=$HW_ROOTDIR/third_party/llvm/llvm3.9.0/linux64 >>>> --prefix=$HW_ROOTDIR/third_party/mesagl/mesa12.0.3/linux64 >>>> --exec-prefix=$HW_ROOTDIR/third_party/mesagl/mesa12.0.3/linux64 >>>> make >>>> make install >>>> >>>> I'm getting the following error building Mesa (below). What am I doing wrong and how do I fix it? >>>> Thanks >>>> >>>> Jeff >>>> >>>> >>>> CXX libswrAVX_la-swr_query.lo >>>> swr_screen.cpp: In function #boolean swr_texture_layout(swr_screen*, swr_resource*, boolean)#: >>>> swr_screen.cpp:550:24: warning: comparison is always false due to limited range of data type [-Wtype-limits] >>>> CXX rasterizer/jitter/libswrAVX_la-blend_jit.lo >>>> CXX rasterizer/jitter/libswrAVX_la-builder.lo >>>> CXX rasterizer/jitter/libswrAVX_la-builder_misc.lo >>>> CXX rasterizer/jitter/libswrAVX_la-fetch_jit.lo >>>> CXX rasterizer/jitter/libswrAVX_la-JitManager.lo >>>> CXX rasterizer/jitter/libswrAVX_la-streamout_jit.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# >>>> 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# >>>> CXX rasterizer/jitter/libswrAVX_la-builder_x86.lo >>>> mv: cannot stat `rasterizer/jitter/.deps/libswrAVX_la-builder_misc.Tpo': No such file or directory >>>> CXX rasterizer/jitter/libswrAVX_la-builder_gen.lo >>>> CXX libswrAVX2_la-swr_clear.lo >>>> CXX libswrAVX2_la-swr_context.lo >>>> CXX libswrAVX2_la-swr_draw.lo >>>> CXX libswrAVX2_la-swr_screen.lo >>>> CXX libswrAVX2_la-swr_state.lo >>>> CXX libswrAVX2_la-swr_tex_sample.lo >>>> CXX libswrAVX2_la-swr_scratch.lo >>>> CXX libswrAVX2_la-swr_shader.lo >>>> CXX libswrAVX2_la-swr_fence.lo >>>> CXX libswrAVX2_la-swr_query.lo >>>> CXX rasterizer/jitter/libswrAVX2_la-blend_jit.lo >>>> swr_screen.cpp: In function #boolean swr_texture_layout(swr_screen*, swr_resource*, boolean)#: >>>> swr_screen.cpp:550:24: warning: comparison is always false due to limited range of data type [-Wtype-limits] >>>> CXX rasterizer/jitter/libswrAVX2_la-builder.lo >>>> CXX rasterizer/jitter/libswrAVX2_la-builder_misc.lo >>>> 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# >>>> 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# >>>> 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# >>>> 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# >>>> mv: cannot stat `rasterizer/jitter/.deps/libswrAVX_la-builder_x86.Tpo': No such file or directory >>>> 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/jitter/libswrAVX2_la-builder_x86.lo >>>> CXX rasterizer/jitter/libswrAVX2_la-builder_gen.lo >>>> CXXLD libswrAVX.la >>>> 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# >>>> 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# >>>> mv: cannot stat `rasterizer/jitter/.deps/libswrAVX2_la-builder_misc.Tpo': No such file or directory >>>> libtool: error: 'rasterizer/jitter/libswrAVX_la-builder_misc.lo' is not a valid libtool object >>>> 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# >>>> 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# >>>> 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# >>>> 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# >>>> mv: cannot stat `rasterizer/jitter/.deps/libswrAVX2_la-builder_x86.Tpo': No such file or directory >>>> CXXLD libswrAVX2.la >>>> libtool: error: 'rasterizer/jitter/libswrAVX2_la-builder_misc.lo' is not a valid libtool object >>>> GEN .install-gallium-links >>>> ln: accessing `.libs/libswrAVX.so*': No such file or directory >>>> ln: accessing `.libs/libswrAVX2.so*': No such file or directory Making >>>> all in winsys/sw/null >>>> >>>> _______________________________________________ >>>> mesa-users mailing list >>>> [email protected] >>>> https://lists.freedesktop.org/mailman/listinfo/mesa-users >>> _______________________________________________ >>> mesa-users mailing list >>> [email protected] >>> https://lists.freedesktop.org/mailman/listinfo/mesa-users _______________________________________________ mesa-users mailing list [email protected] https://lists.freedesktop.org/mailman/listinfo/mesa-users