Select to view content in your preferred language

mesa-libGL version compatability

3101
8
09-03-2013 07:17 AM
StephenBaier
Occasional Contributor
I am currently working on Red Hat Enterprise Linux 6.4 (RHEL) compatability for my ArcGIS Java Runtime SDK 10.1.1 application, which utilizes an ArcGISLocalTiledLayer on a JMap. I generated the topography package (.tpk file) using ArcMap (on a Windows machine). The map works fine in Windows, but uses DirectX for rendering. The problem I am having on RHEL is OpenGL-based rendering.

(1): Does it matter that the .tpk was generated on Windows? Did I miss a check-box for OpenGL compatability?

If the problem isn't related to (1), then:

(2): Is there a maximum supported version of mesa-libGL?
The system requirements help page states that mesa-libGL 7.10-1 is the required version. It also states:
The Linux patches from RHEL Server will be supported as long as the patches are from Red Hat without any modification to the latest kernel/glibc version.
The version that RHEL Server lists of mesa-libGL is currently 9.0-0.8_4.3.

(3): I have found it impossible to get to mesa-libGL 7.x without breaking OpenGL entirely, due to mesa-dri1-drivers minimal version.

When running my application using the current RHEL Server version, I receive the following error, leading to a segfault:

Error compiling shader: 0:2(1): error: Illegal use of reserved word `precision'
0:2(1): error: syntax error, unexpected ERROR_TOK


Error compiling shader: 0:2(1): error: Illegal use of reserved word `precision'
0:2(1): error: syntax error, unexpected ERROR_TOK


Error linking program: error: linking with uncompiled shadererror: linking with uncompiled shader

Error compiling shader: 0:2(1): error: Illegal use of reserved word `precision'
0:2(1): error: syntax error, unexpected ERROR_TOK


Error compiling shader: 0:2(1): error: Illegal use of reserved word `precision'
0:2(1): error: syntax error, unexpected ERROR_TOK


Error linking program: error: linking with uncompiled shadererror: linking with uncompiled shader

Error compiling shader: 0:2(1): error: Illegal use of reserved word `precision'
0:2(1): error: syntax error, unexpected ERROR_TOK


Error compiling shader: 0:2(1): error: Illegal use of reserved word `precision'
0:2(1): error: syntax error, unexpected ERROR_TOK


Error linking program: error: linking with uncompiled shadererror: linking with uncompiled shader

m_shaders[1]->init_graphics_hardware_resources() FAILED
Error compiling shader: 0:2(1): error: Illegal use of reserved word `precision'
0:2(1): error: syntax error, unexpected ERROR_TOK


Error compiling shader: 0:2(1): error: Illegal use of reserved word `precision'
0:2(1): error: syntax error, unexpected ERROR_TOK


Error linking program: error: linking with uncompiled shadererror: linking with uncompiled shader

Error compiling shader: 0:2(1): error: Illegal use of reserved word `precision'
0:2(1): error: syntax error, unexpected ERROR_TOK


Error compiling shader: 0:2(1): error: Illegal use of reserved word `precision'
0:2(1): error: syntax error, unexpected ERROR_TOK


Error linking program: error: linking with uncompiled shadererror: linking with uncompiled shader

Error compiling shader: 0:2(1): error: Illegal use of reserved word `precision'
0:2(1): error: syntax error, unexpected ERROR_TOK


Error compiling shader: 0:2(1): error: Illegal use of reserved word `precision'
0:2(1): error: syntax error, unexpected ERROR_TOK


Error linking program: error: linking with uncompiled shadererror: linking with uncompiled shader

m_shaders[2]->init_graphics_hardware_resources() FAILED
Error compiling shader: 0:2(1): error: Illegal use of reserved word `precision'
0:2(1): error: syntax error, unexpected ERROR_TOK


Error compiling shader: 0:2(1): error: Illegal use of reserved word `precision'
0:2(1): error: syntax error, unexpected ERROR_TOK


Error linking program: error: linking with uncompiled shadererror: linking with uncompiled shader

Error compiling shader: 0:2(1): error: Illegal use of reserved word `precision'
0:2(1): error: syntax error, unexpected ERROR_TOK


Error compiling shader: 0:2(1): error: Illegal use of reserved word `precision'
0:2(1): error: syntax error, unexpected ERROR_TOK


Error linking program: error: linking with uncompiled shadererror: linking with uncompiled shader

Error compiling shader: 0:2(1): error: Illegal use of reserved word `precision'
0:2(1): error: syntax error, unexpected ERROR_TOK


Error compiling shader: 0:2(1): error: Illegal use of reserved word `precision'
0:2(1): error: syntax error, unexpected ERROR_TOK


Error linking program: error: linking with uncompiled shadererror: linking with uncompiled shader

m_shaders[3]->init_graphics_hardware_resources() FAILED
Error compiling shader: 0:2(1): error: Illegal use of reserved word `precision'
0:2(1): error: syntax error, unexpected ERROR_TOK


Error compiling shader: 0:2(1): error: Illegal use of reserved word `precision'
0:2(1): error: syntax error, unexpected ERROR_TOK


Error linking program: error: linking with uncompiled shadererror: linking with uncompiled shader

Error compiling shader: 0:2(1): error: Illegal use of reserved word `precision'
0:2(1): error: syntax error, unexpected ERROR_TOK


Error compiling shader: 0:2(1): error: Illegal use of reserved word `precision'
0:2(1): error: syntax error, unexpected ERROR_TOK


Error linking program: error: linking with uncompiled shadererror: linking with uncompiled shader

Error compiling shader: 0:2(1): error: Illegal use of reserved word `precision'
0:2(1): error: syntax error, unexpected ERROR_TOK


Error compiling shader: 0:2(1): error: Illegal use of reserved word `precision'
0:2(1): error: syntax error, unexpected ERROR_TOK


Error linking program: error: linking with uncompiled shadererror: linking with uncompiled shader

m_shaders[4]->init_graphics_hardware_resources() FAILED
Shaders_manager::init_graphics_hardware_resources FAILED
Error compiling shader: 0:2(1): error: Illegal use of reserved word `precision'
0:2(1): error: syntax error, unexpected ERROR_TOK


Error compiling shader: 0:2(1): error: Illegal use of reserved word `precision'
0:2(1): error: syntax error, unexpected ERROR_TOK


Error linking program: error: linking with uncompiled shadererror: linking with uncompiled shader

#
# A fatal error has been detected by the Java Runtime Environment:
#
#  SIGSEGV (0xb) at pc=0x00007f98b0e1fcc0, pid=15007, tid=140292829189888
#
# JRE version: 7.0_25-b15
# Java VM: Java HotSpot(TM) 64-Bit Server VM (23.25-b01 mixed mode linux-amd64 compressed oops)
# Problematic frame:
# C  [libruntimecore_java.so+0x69dcc0]  Esri_runtimecore::Mapping::Tex_quad_shader_program::begin_draw(void*, float const (&) [16], float const (&) [4])+0x20
#
# Core dump written. Default location: /home/user/core or core.15007
#
# An error report file with more information is saved as:
# /home/user/hs_err_pid15007.log
#
# If you would like to submit a bug report, please visit:
#   http://bugreport.sun.com/bugreport/crash.jsp
#
Tile_layer::process_message_ - tile status = failed.
Tile_layer::process_message_ - tile status = failed.
Tile_layer::process_message_ - tile status = failed.
Tile_layer::process_message_ - tile status = failed.
Tile_layer::process_message_ - tile status = failed.
Tile_layer::process_message_ - tile status = failed.


What caught my eye the most was:

Error compiling shader: 0:2(1): error: Illegal use of reserved word `precision'


Looking at the current OpenGL Shader Language specification, 'precision' is indeed a reserved word. My thought, then, is that mesa-libGL 7.10-1, as required by Java Runtime SDK, operates on an older OpenGL Shader Language spec without that reserved word; and since that was the case, the ArcMap-generated .tpk contains usage of these reserved words. I have no experience with OpenGL up to this point and therefore could be way off in this assumption. Please let me know if this is the case.

Assuming this was a mesa-libGL version issue, I attempted to downgrade to mesa-libGL-7.10-1. The problem I run into is a clash between mesa-dri-drivers and mesa-dri1-drivers. mesa-dri1-drivers has a minimal version (that I can find and is hosted by RHEL) of 7.11-8 while the highest 7.x version of mesa-libGL, mesa-libGLU and mesa-dri-drivers is 7.11-5 (the first one that hits on yum downgrade). When I attempt to downgrade mesa* I receive:

Transaction Check Error:
  file /usr/lib64/dri/mga_dri.so from install of mesa-dri-drivers-7.11-5.el6.x86_64 conflicts with file from package mesa-dri1-drivers-7.11-8.el6.x86_64
  file /usr/lib64/dri/r128_dri.so from install of mesa-dri-drivers-7.11-5.el6.x86_64 conflicts with file from package mesa-dri1-drivers-7.11-8.el6.x86_64
  file /usr/lib64/dri/savage_dri.so from install of mesa-dri-drivers-7.11-5.el6.x86_64 conflicts with file from package mesa-dri1-drivers-7.11-8.el6.x86_64
  file /usr/lib64/dri/unichrome_dri.so from install of mesa-dri-drivers-7.11-5.el6.x86_64 conflicts with file from package mesa-dri1-drivers-7.11-8.el6.x86_64


And if I simply erase mesa-dri1-drivers, OpenGL breaks altogether (confirmed by glxinfo).

Has anyone had this problem?
0 Kudos
8 Replies
JohnWass
Deactivated User
I dont have any answers, but will add that I am on Ubuntu 12.04 here and the GL libs appear to be at 8.0.x.  I havent saw any problems in general use, for a test just loaded up the demo that uses a tpk and it works fine.
0 Kudos
StephenBaier
Occasional Contributor
That is interesting because I received the above errors even with 8.0.5.

Makes me think I am having a more general system configuration issue.
0 Kudos
EricBader
Honored Contributor
Exactly which Red Hat are you running on, I didn't catch that. Is it 6? 5? Is it an LTS?
0 Kudos
StephenBaier
Occasional Contributor
Exactly which Red Hat are you running on, I didn't catch that. Is it 6? 5? Is it an LTS?


I am running RHEL 6.4. I am not sure what LTS is exactly; Google says something about Long Term Support. It is registered with RHEL Network and has all RHEL updates, if that is what you mean. I even did a 100% fresh install to ensure I hadn't messed anything up (installing nvidia drivers had previously messed up OpenGL); results did not vary.
0 Kudos
StephenBaier
Occasional Contributor
I downloaded and built the mesa-lib test suite. Rendering all kinds of 2D and 3D stuff just fine.

Does anyone know if there are any particular tests in this massive test suite that could verify I have what I need for rendering .tpks?
0 Kudos
EricBader
Honored Contributor
I am running RHEL 6.4. I am not sure what LTS is exactly; Google says something about Long Term Support. It is registered with RHEL Network and has all RHEL updates, if that is what you mean. I even did a 100% fresh install to ensure I hadn't messed anything up (installing nvidia drivers had previously messed up OpenGL); results did not vary.


Yes, thank you. That was exactly what I was asking.
As long as you are using a Long Term Supported version of RHEL you should be fine. It's the mesa driver I'm wondering about.
0 Kudos
StephenBaier
Occasional Contributor
I think I found the problem. Looking back at the System Requirements again, I noticed that there is a requirement for 64MB of Video RAM. Turns out my integrated graphics card only has 16MB of prefetchable and 8MB of non-prefetchable. I don't know if running out of memory could cause the shader compilation problems, but overflowing memory could cause a segfault.

I have tried, to no avail, to install the nvidia drivers and use the actual graphics card (GeForce GT 640) instead of the integrated graphics. However, wheneven I install the nvidia drivers, I cannot boot into level 5 anymore. Additionally, when I do glxinfo, I receive an error: Cannot access diplay :0 (or something like that). In the end it boils down to a system configuration problem it seems, if only I could get my real graphics card working...
0 Kudos
StephenBaier
Occasional Contributor
Confirmed, the integrated graphics card wasn't cutting it. Finally got the system to run off the nVidia card, now I have my map showing. It is, however, much more laggy when panning and zooming than with DirectX on Windows. Wondering how I could improve that.
0 Kudos