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?