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
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.