Re: [mesa-users] Configuring mesa-11.2.2 llvmpipe with non-standard paths

Edson Contreras Cárdenas <[email protected]>
Newsgroups gmane.comp.video.mesa3d.user
Message-ID <CAPOUx5LiNyeLYHOG_f1xqhUXOnr1s68Wn=ss57Nqvjkp8JFcbg@mail.gmail.com>
Thanks! After doing what you mentioned, everything worked.

However, in order to make vtk-7.0-OpenGL2 to work, I had to set the
environment variable MESA_GL_OVERRIDE_VERSION 3.2 because the output of
"pure" glxinfo is:

[edsonc@mesa-tests]:~>glxinfo | grep -i opengl
    OpenGL vendor string: VMware, Inc.
    OpenGL renderer string: Gallium 0.4 on llvmpipe (LLVM 3.8, 128 bits)
    OpenGL version string: 3.0 Mesa 11.2.2 (git-)
    OpenGL shading language version string: 1.30
    OpenGL extensions:


As OpenGL version string is 3.0, my vtk-7.0-OpenGL2 crashes with
'gp4_shaders' instructions. That's fixed with the environment variable
shown above. Is this ok? Should that variable be set?

And last but not least, does mesa-11.2.2 have the OpenSWR driver? I'm
asking in order to have only one libGL.so with swrast driver and swr_avx2
driver and switch in between them if cpu has this avx support, or is not
possible? Should I have 2 libGL.so?

Thanks again for all your support and time.

Regards,
Edson

2016-06-29 15:11 GMT-04:00 Chuck Atkins <[email protected]>:

> 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
>>>
>>
>>
>


-- 
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
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.