[Mesa-users] Trouble compiling MesaGL : llvm intrinsics seem to be missing.

Albert Freeman albertwdfreeman at gmail.com
Thu Nov 3 03:39:57 UTC 2016


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 <albertwdfreeman at gmail.com> 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 <albertwdfreeman at gmail.com> 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 <jjmcwill at altair.com> 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:mesa-users-bounces at lists.freedesktop.org] On Behalf Of Jeff McWilliams
>>> Sent: Wednesday, November 2, 2016 8:00 AM
>>> To: Albert Freeman <albertwdfreeman at gmail.com>
>>> Cc: mesa-users at lists.freedesktop.org
>>> 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:albertwdfreeman at gmail.com]
>>> Sent: Tuesday, November 1, 2016 11:37 PM
>>> To: Jeff McWilliams <jjmcwill at altair.com>
>>> Cc: mesa-users at lists.freedesktop.org
>>> 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 <jjmcwill at altair.com> 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
>>>> mesa-users at lists.freedesktop.org
>>>> https://lists.freedesktop.org/mailman/listinfo/mesa-users
>>> _______________________________________________
>>> mesa-users mailing list
>>> mesa-users at lists.freedesktop.org
>>> https://lists.freedesktop.org/mailman/listinfo/mesa-users


More information about the mesa-users mailing list