Graphics
Intel® graphics drivers and software, compatibility, troubleshooting, performance, and optimization
20647 Discussions

Atom x5-Z8500 OpenGL shader compilation failure with osgEarth

Stephen_M_4
Beginner
943 Views

System: Dell Venue Pro 5855

CPU: Intel Atom x5-Z8500

Driver: 20.19.15.4364 06/01/2016 Intel Corporation, signed by Microsoft Windows Hardware Compatibility Publisher

Issue:

Using osgEarth 2.7.0 fails on the specified hardware/driver platform.  Tracing this issue shows a compilation error with the shaders in use by osgEarth:

 <blockquote>Compiling VERTEX source:
    1: #version 120
    2:  
    3:  
    4:  #pragma vp_entryPoint "oe_mp_vertModel"
    5:  #pragma vp_location "vertex_model"
    6:  #pragma vp_order "-FLT_MAX"
    7:  
    8:  varying vec4 oe_layer_texc;
    9:  varying vec4 oe_layer_tilec;
   10:  
   11:  void oe_mp_vertModel(inout vec4 vertexModel)
   12:  {
   13:  oe_layer_texc = gl_MultiTexCoord0;
   14:  oe_layer_tilec = gl_MultiTexCoord1;
   15:  }
   16:  

VERTEX glCompileShader "oe_mp_vertModel" FAILED
VERTEX Shader "oe_mp_vertModel" infolog:
ERROR: 0:4: '' :  illegal character (") (0x22)
ERROR: 0:4: '' :  illegal character (") (0x22)
ERROR: 0:5: '' :  illegal character (") (0x22)
ERROR: 0:5: '' :  illegal character (") (0x22)
ERROR: 0:6: '' :  illegal character (") (0x22)
ERROR: 0:6: '' :  illegal character (") (0x22)  </blockquote>

osgEarth uses #pragma lines to insert its own pre-processing into the shader.  These pragmas include quoted properties which cause the shader compilation to fail.

Reading the OpenGL Shading Language specification (GLSLangSpec.Full.1.20.8.pdf) states:

"If an implementation does not recognize the tokens following #pragma, then it will ignore that pragma."

From this we would expect that the shader compilation would ignore the pragmas that it does not understand, rather than processing them and rejecting them due to unexpected characters - this interpretation  is based on limited reading around the specification and so could be disagreed with.  For reference though this is what appears to happen correctly on discrete graphics cards rather than embedded graphics.

It would be very useful to get an opinion from a member of the driver team about whether or not the observed behaviour is correct.

0 Kudos
2 Replies
Michael_C_Intel2
Employee
943 Views

Hi Stephen,

I am talking with the OpenGL driver team on this issue, based on your description is sounds like a driver issue. I will update when I know something. 

-Michael 

0 Kudos
Michael_C_Intel2
Employee
943 Views

Hi Stephen,

We have a fix for this issue, the next driver release will have it. 

-Michael

0 Kudos
Reply