Re: [mesa-users] Configuring mesa-11.2.2 llvmpipe with non-standard paths
Chuck Atkins <[email protected]>
| Newsgroups | gmane.comp.video.mesa3d.user |
|---|---|
| Message-ID | <CAOXZzG5F39-QA4drWQ85SipNndx0Fukd612O4XC3PL0TTqDXMQ@mail.gmail.com> |
This same configuration will work on EL7 too if you want to try to make sure they both get built the same way. - Chuck On Wed, Jun 29, 2016 at 3:10 PM, Chuck Atkins <[email protected]> wrote: > I almost forgot about this issue! Your libGL is the result of conflicting > options for competing Xlib GLX implementations. I actually fixed this in > upstream and configure options for glx are a bit more sane now in the > upcoming 12.0 release. Basically try some different configure options > followed by a bit of surgery after the installation (note that these are > the configure options we use with Mesa): > > ./configure \ > --enable-opengl --disable-gles1 --disable-gles2 \ > --disable-va --disable-gbm --disable-xvmc --disable-vdpau \ > --enable-shared-glapi \ > --disable-texture-float \ > --disable-dri --with-dri-drivers= \ > --enable-gallium-llvm --disable-llvm-shared-libs \ > --with-gallium-drivers=swrast \ > --disable-egl --disable-gbm --with-egl-platforms= \ > --disable-gallium-osmesa --enable-glx --enable-xlib-glx \ > --with-llvm-prefix=${BASELIBS_PREFIX}/llvm-3.8 \ > --prefix=${BASELIBS_PREFIX}/mesa-11.2-glx > > make -jwhatever install > > What you'll end up with in the install directory is a bit of a mess > though. If you look in there, you'll see both libGL.so.1.5.0 and > libGL.so.1.6.0 with associated symlinks mixed for both. Delete the > libGL.so.1 symlink and the libGL.so.1.6.0 library and then re-create the > symlink for libGL.so.1 -> libGL.so.1.5.0. The resulting install tree after > all this should give you a working libGL.so that correctly sees llvmpipe. > All this is fixed in upstream now, see: > > https://bugs.freedesktop.org/show_bug.cgi?id=94086 > and > > https://cgit.freedesktop.org/mesa/mesa/commit/?id=a92910ae37878b441ecb1c488f0a40d80a48f6fe > > 12.0 you can just give --enable-glx and the correct backend will be chosen > but for the current release you still have to get your hands a bit dirty. > > > - Chuck > > On Wed, Jun 29, 2016 at 12:41 PM, Edson Contreras Cárdenas < > [email protected]> wrote: > >> Hi Chuck, thanks for your quick response. I'm sending you the output of >> configure and glxinfo. And yes, it is similiar. >> >> BASELIBS_PREFIX="/remote/sharedLibs" >> >> PKG_CONFIG_PATH=${BASELIBS_PREFIX}/libxcb/lib/pkgconfig:${BASELIBS_PREFIX}/libdrm/lib/pkgconfig:${BASELIBS_PREFIX}/libxshmfence/lib/pkgconfig:${BASELIBS_PREFIX}/libva/lib/pkgconfig >> >> [edsonc@mesa-tests]:/remote/sharedLibsSrc/mesa11.2-build>../mesa-11.2.2/configure >> \ >> --prefix=${BASELIBS_PREFIX}/mesa-11.2-glx \ >> --with-llvm-prefix=${BASELIBS_PREFIX}/llvm-3.8 \ >> --with-gnu-ld \ >> --enable-gallium-llvm=yes \ >> --enable-sysfs \ >> --enable-xlib-glx \ >> --enable-glx \ >> --enable-texture-float \ >> --disable-dri \ >> --disable-dri3 \ >> --disable-egl \ >> --disable-llvm-shared-libs \ >> --with-gallium-drivers="swrast" >> >> Output is: >> >> prefix: /remote/sharedLibs/mesa-11.2-glx >> exec_prefix: ${prefix} >> libdir: ${exec_prefix}/lib >> includedir: ${prefix}/include >> >> OpenGL: yes (ES1: yes ES2: yes) >> >> OSMesa: no >> >> GLX: Xlib-based >> >> EGL: no >> >> llvm: yes >> llvm-config: /remote/sharedLibs/llvm-3.8/bin/llvm-config >> llvm-version: 3.8.0 >> >> Gallium drivers: swrast >> Gallium st: mesa >> >> Shader cache: yes >> With SHA1 from: libgcrypt >> >> Shared libs: yes >> Static libs: no >> Shared-glapi: yes >> >> CFLAGS: -g -O2 -Wall -std=c99 >> -Werror=implicit-function-declaration -Werror=missing-prototypes >> -fno-strict-aliasing -fno-math-errno -fno-trapping-math -fno-builtin-memcmp >> CXXFLAGS: -g -O2 -Wall -fno-strict-aliasing >> -fno-builtin-memcmp >> Macros: -D__STDC_LIMIT_MACROS -D__STDC_CONSTANT_MACROS >> -D_GNU_SOURCE -DUSE_SSE41 -DNDEBUG -DTEXTURE_FLOAT_ENABLED -DUSE_X86_64_ASM >> -DHAVE_XLOCALE_H -DHAVE_SYS_SYSCTL_H -DHAVE_STRTOF -DHAVE_MKOSTEMP >> -DHAVE_DLOPEN -DHAVE_POSIX_MEMALIGN -DHAVE_LIBDRM -DHAVE_SHA1 -DHAVE_SYSFS >> -DUSE_XSHM -DMESA_EGL_NO_X11_HEADERS -DHAVE_LLVM=0x0308 >> -DMESA_LLVM_VERSION_PATCH=0 >> >> LLVM_CFLAGS: -I/remote/sharedLibs/llvm-3.8/include >> -D__STDC_CONSTANT_MACROS -D__STDC_FORMAT_MACROS -D__STDC_LIMIT_MACROS >> LLVM_CXXFLAGS: -I/remote/sharedLibs/llvm-3.8/include -W >> -Wno-unused-parameter -Wwrite-strings -Wno-missing-field-initializers >> -Wno-long-long -Wno-maybe-uninitialized -Wdelete-non-virtual-dtor >> -Wno-comment -std=c++11 -fno-rtti -D__STDC_CONSTANT_MACROS >> -D__STDC_FORMAT_MACROS -D__STDC_LIMIT_MACROS >> LLVM_CPPFLAGS: -I/remote/sharedLibs/llvm-3.8/include >> -D__STDC_CONSTANT_MACROS -D__STDC_FORMAT_MACROS -D__STDC_LIMIT_MACROS >> LLVM_LDFLAGS: -L/remote/sharedLibs/llvm-3.8/lib >> >> PYTHON2: python2 >> >> Run 'make' to build Mesa >> >> Then, after a 'gmake -j20' and a 'gmake install' the output of the >> glxinfo is: >> >> [edsonc@mesa-tests]:~>setenv LD_LIBRARY_PATH >> /remote/sharedLibs/mesa-11.2.2-glx/lib:$LD_LIBRARY_PATH >> >> [edsonc@mesa-tests]:~>ldd /usr/bin/glxinfo >> linux-vdso.so.1 => (0x00007fffc5bff000) >> libGLU.so.1 => /usr/lib64/libGLU.so.1 (0x00002ad1e0157000) >> libGL.so.1 => /remote/sharedLibs/mesa-11.2.2-glx/lib/libGL.so.1 >> (0x00002ad1e03d7000) >> libm.so.6 => /lib64/libm.so.6 (0x00002ad1e0a4f000) >> libX11.so.6 => /usr/lib64/libX11.so.6 (0x00002ad1e0cd3000) >> libXext.so.6 => /usr/lib64/libXext.so.6 (0x00002ad1e1011000) >> libc.so.6 => /lib64/libc.so.6 (0x00002ad1e1223000) >> libstdc++.so.6 => /remote/baseLibs/libstdc++.so.6 (0x00002ad1e15b7000) >> libgcc_s.so.1 => /remote/baseLibs/libgcc_s.so.1 (0x00002ad1e1932000) >> libgcrypt.so.11 => /lib64/libgcrypt.so.11 (0x00002ad1e1b48000) >> libglapi.so.0 => /remote/sharedLibs/mesa-11.2-glx/lib/libglapi.so.0 >> (0x00002ad1e1dbe000) >> libxcb.so.1 => /remote/sharedLibs/libxcb/lib/libxcb.so.1 >> (0x00002ad1e2024000) >> libXau.so.6 => /usr/lib64/libXau.so.6 (0x00002ad1e2249000) >> libXdmcp.so.6 => /usr/lib64/libXdmcp.so.6 (0x00002ad1e244d000) >> libpthread.so.0 => /lib64/libpthread.so.0 (0x00002ad1e2652000) >> libdl.so.2 => /lib64/libdl.so.2 (0x00002ad1e286f000) >> /lib64/ld-linux-x86-64.so.2 (0x00002ad1dff35000) >> libgpg-error.so.0 => /lib64/libgpg-error.so.0 (0x00002ad1e2a74000) >> >> [edsonc@mesa-tests]:~>glxinfo | grep -i "opengl" >> OpenGL vendor string: Brian Paul >> OpenGL renderer string: Mesa X11 >> OpenGL version string: 2.1 Mesa 11.2.2 (git-) >> OpenGL shading language version string: 1.20 >> OpenGL extensions: >> >> And that's it :-). >> >> [Note: It's great having support from kitware, because my intention is to >> have vtk-7.0 running with OpenGL2. Currently I've managed to build it in a >> RHEL7.1 image only because there I build mesa using scons and the libudev >> is high enough. For the time being I have 2 binaries: 1 with OpenGL1 in >> RHEL6.6 and other with OpenGL2 in RHEL7.1. The idea is just to have one >> with OpenGL2] >> >> Thanks! >> >> Regards, >> Edson >> >> 2016-06-29 11:50 GMT-04:00 Chuck Atkins <[email protected]>: >> >>> What's the output of your configure look like? Using almost the same >>> configuration on CentOS 6.7 with GCC 5.2 from the SCL, except all system >>> dev-packages instead my own versions (sans llvm of course) I get the >>> following output: >>> >>> [chuck@wopr mesa-11.2.2]$ ./configure >>> --with-llvm-prefix=${HOME}/Code/LLVM/llvm-3.8.0.inst --with-gnu-ld >>> --enable-gallium-llvm=yes --enable-sysfs --enable-xlib-glx --enable-glx >>> --enable-texture-float --disable-dri --disable-dri3 --disable-egl >>> --disable-llvm-shared-libs --with-gallium-drivers=swrast >>> ... >>> config.status: executing libtool commands >>> >>> prefix: /usr/local >>> exec_prefix: ${prefix} >>> libdir: ${exec_prefix}/lib >>> includedir: ${prefix}/include >>> >>> OpenGL: yes (ES1: yes ES2: yes) >>> >>> OSMesa: no >>> >>> GLX: Xlib-based >>> >>> EGL: no >>> >>> llvm: yes >>> llvm-config: >>> /home/chuck/Code/LLVM/llvm-3.8.0.inst/bin/llvm-config >>> llvm-version: 3.8.0 >>> >>> Gallium drivers: swrast >>> Gallium st: mesa >>> >>> Shader cache: yes >>> With SHA1 from: libcrypto >>> >>> Shared libs: yes >>> Static libs: no >>> Shared-glapi: yes >>> >>> CFLAGS: -g -O2 -Wall -std=c99 >>> -Werror=implicit-function-declaration -Werror=missing-prototypes >>> -fno-strict-aliasing -fno-math-errno -fno-trapping-math -fno-builtin-memcmp >>> CXXFLAGS: -g -O2 -Wall -fno-strict-aliasing >>> -fno-builtin-memcmp >>> Macros: -D__STDC_LIMIT_MACROS -D__STDC_CONSTANT_MACROS >>> -D_GNU_SOURCE -DUSE_SSE41 -DNDEBUG -DTEXTURE_FLOAT_ENABLED -DUSE_X86_64_ASM >>> -DHAVE_XLOCALE_H -DHAVE_SYS_SYSCTL_H -DHAVE_STRTOF -DHAVE_MKOSTEMP >>> -DHAVE_DLOPEN -DHAVE_POSIX_MEMALIGN -DHAVE_SHA1 -DHAVE_SYSFS -DUSE_XSHM >>> -DMESA_EGL_NO_X11_HEADERS -DHAVE_LLVM=0x0308 -DMESA_LLVM_VERSION_PATCH=0 >>> >>> LLVM_CFLAGS: >>> -I/home/chuck/Code/LLVM/llvm-3.8.0.inst/include -D__STDC_CONSTANT_MACROS >>> -D__STDC_FORMAT_MACROS -D__STDC_LIMIT_MACROS >>> LLVM_CXXFLAGS: >>> -I/home/chuck/Code/LLVM/llvm-3.8.0.inst/include -W -Wno-unused-parameter >>> -Wwrite-strings -Wno-missing-field-initializers -Wno-long-long >>> -Wno-maybe-uninitialized -Wdelete-non-virtual-dtor -Wno-comment >>> -std=c++11 -D__STDC_CONSTANT_MACROS -D__STDC_FORMAT_MACROS >>> -D__STDC_LIMIT_MACROS >>> LLVM_CPPFLAGS: >>> -I/home/chuck/Code/LLVM/llvm-3.8.0.inst/include -D__STDC_CONSTANT_MACROS >>> -D__STDC_FORMAT_MACROS -D__STDC_LIMIT_MACROS >>> LLVM_LDFLAGS: -L/home/chuck/Code/LLVM/llvm-3.8.0.inst/lib >>> >>> PYTHON2: python2 >>> >>> Run 'make' to build Mesa >>> >>> [chuck@wopr mesa-11.2.2]$ >>> >>> Your resulting configure output should be similar. >>> >>> - Chuck >>> >>> On Wed, Jun 29, 2016 at 8:01 AM, Edson Contreras Cárdenas < >>> [email protected]> wrote: >>> >>>> Hello everyone, >>>> >>>> Sorry for bothering you all, but I cannot get the gallium llvmpipe >>>> driver working, and I need some help. >>>> >>>> My environment is: >>>> RHEL6.6 >>>> gcc-5.2 (system) >>>> libudev < 151 (system, I cannot upgrade kernel) >>>> >>>> llvm-3.8 (from source) >>>> libva-1.7.1 (from source) >>>> libxshmfence-latest (from source) >>>> libxcb-latest (from source) >>>> libdrm-latest (from source) >>>> >>>> I have all my libs installed in a non-standard path: >>>> >>>> MYLIBS_PREFIX=/remote/sharedLibs >>>> >>>> And my configure script looks like: >>>> >>>> ../mesa-11.2.2/configure \ >>>> >>>> PKG_CONFIG_PATH=${MYLIBS_PREFIX}/libxcb/lib/pkgconfig:${MYLIBS_PREFIX}/libdrm/lib/pkgconfig:${MYLIBS_PREFIX}/libxshmfence/lib/pkgconfig:${MYLIBS_PREFIX}/libva/lib/pkgconfig >>>> \ >>>> —prefix=${MYLIBS_PREFIX}/mesa-11.2-llvmpipe \ >>>> —with-llvm-prefix=${MYLIBS_PREFIX}/llvm-3.8 \ >>>> —with-gnu-ld \ >>>> —enable-gallium-llvm=yes \ >>>> —enable-sysfs \ >>>> —enable-xlib-glx \ >>>> —enable-glx \ >>>> —enable-texture-float \ >>>> —disable-dri \ >>>> —disable-dri3 \ >>>> —disable-egl \ >>>> —disable-llvm-shared-libs \ >>>> —with-gallium-drivers=swrast >>>> >>>> The thing is that I have a valid libGL.so after building, but doesn't >>>> have support for OpenGL 3.2. In addition to that, if I run "glxinfo | grep >>>> OpenGL" it does not mention Gallium llvmpipe driver anywhere (however it >>>> does mention mesa 11.2) and glxgears runs smoothly. >>>> >>>> Finally, if I try 'scons', it fails due to lack of udev >= 151. >>>> >>>> Could you please help me to provide to scons the flag --enable-sysfs, >>>> or, help me to configure 'configure flags' in order to have llvmpipe driver >>>> running? >>>> Thank you very much in advance. >>>> >>>> Regards, >>>> Edson >>>> >>>> _______________________________________________ >>>> mesa-users mailing list >>>> [email protected] >>>> https://lists.freedesktop.org/mailman/listinfo/mesa-users >>>> >>>> >>> >> >> >> -- >> Atte. >> Edson René Contreras Cárdenas >> Ingeniero Civil Electrónico >> TCAD R&D Software Engineer II >> Synopsys Chile >> > > _______________________________________________ mesa-users mailing list [email protected] https://lists.freedesktop.org/mailman/listinfo/mesa-users