View Issue Details

IDProjectCategoryView StatusLast Update
0026665Open CASCADEOCCT:Visualizationpublic2015-10-23 20:50
Reporterkgv Assigned Tobugmaster  
PrioritynormalSeverityminor 
Status closedResolutionfixed 
Product Version6.8.0 
Target Version6.9.1Fixed in Version6.9.1 
Summary0026665: Visualization, TKOpenGl - specify precision for integer uniforms explicitly within OpenGL ES
DescriptionThere are GLSL program linkage issues occurs on some OpenGL ES drivers:
Error: Uniform occLightSourcesTypes precision mismatch with other stage.
  EGLVersion:     1.4 Android META-EGL
  EGLVendor:      Android
  EGLClient APIs: OpenGL_ES
  GLvendor:       Qualcomm
  GLdevice:       Adreno (TM) 430
  GLversion:      OpenGL ES 3.1 V@103.0 (GIT@Ib2e715f795) [GLSL: OpenGL ES GLSL ES 3.10]


OCCT shares definition of all uniforms between all program stages within file "Declarations.glsl", even if them are used only within single stage. This usually works fine, since GLSL compiler discards all unused uniforms and precision conflicts do not appear. However in this case driver has failed for some reason.

uniform ivec2 occLightSourcesTypes[THE_MAX_LIGHTS]; //!< packed light sources types

The default precision of ivec2 will be highp in Vertex Shader and mediump in Fragment Shader.
Steps To ReproduceN/A
TagsNo tags attached.
Test case numberNot needed

Activities

git

2015-09-09 14:02

administrator   ~0045312

Branch CR26665 has been created by kgv.

SHA-1: 675e4ab85d32f178cae1e3a8baa775a89f8303df


Detailed log of new commits:

Author: kgv
Date: Wed Sep 9 10:29:43 2015 +0300

    0026665: Visualization, TKOpenGl - specify precision for integer uniforms explicitly within OpenGL ES
    
    Use lowp for enumerations / Boolean uniforms.
    Define default integer precision to highp in Fragment Shader when available.

kgv

2015-09-09 14:02

developer   ~0045313

Please test the patch.

apv

2015-09-10 14:27

tester   ~0045417

Dear BugMaster,

Branch CR26665 from occt git-repository (and master from products git-repository) was compiled on Linux, MacOS and Windows platforms and tested.
SHA-1: 675e4ab85d32f178cae1e3a8baa775a89f8303df

Number of compiler warnings:
occt component:
   Linux: 15 (15 on master)
   Windows: 0 (0 on master)
products component:
   Linux: 39 (39 on master)
   Windows: 0 (0 on master)

Regressions/Differences:
Not detected

Testing cases:
Not needed

Testing on Linux:
Total MEMORY difference: 91271133 / 91936270 [-0.72%]
Total CPU difference: 17828.189999999147 / 17715.38999999897 [+0.64%]

Testing on Windows:
Total MEMORY difference: 57089893 / 57099279 [-0.02%]
Total CPU difference: 16061.862959998942 / 16228.503228199388 [-1.03%]

git

2015-10-16 16:14

administrator   ~0046885

Branch CR26665 has been deleted by kgv.

SHA-1: 675e4ab85d32f178cae1e3a8baa775a89f8303df

Related Changesets

occt: master 8a53d1c4

2015-09-09 07:29:43

kgv


Committer: bugmaster Details Diff
0026665: Visualization, TKOpenGl - specify precision for integer uniforms explicitly within OpenGL ES

Use lowp for enumerations / Boolean uniforms.
Define default integer precision to highp in Fragment Shader when available.
Affected Issues
0026665
mod - src/OpenGl/OpenGl_ShaderProgram.cxx Diff File
mod - src/Shaders/Declarations.glsl Diff File
mod - src/Shaders/DeclarationsImpl.glsl Diff File

Issue History

Date Modified Username Field Change
2015-09-08 18:29 kgv New Issue
2015-09-08 18:29 kgv Assigned To => kgv
2015-09-08 18:29 kgv Status new => assigned
2015-09-08 18:29 kgv Product Version 6.9.1 => 6.8.0
2015-09-08 18:29 kgv Target Version => 7.0.0
2015-09-08 18:32 kgv Description Updated
2015-09-09 10:21 kgv Summary Visualization, TKOpenGl - specify precision for uniforms explicitly within OpenGL ES => Visualization, TKOpenGl - specify precision for integer uniforms explicitly within OpenGL ES
2015-09-09 14:02 git Note Added: 0045312
2015-09-09 14:02 kgv Note Added: 0045313
2015-09-09 14:02 kgv Assigned To kgv => bugmaster
2015-09-09 14:02 kgv Status assigned => resolved
2015-09-09 14:02 kgv Status resolved => reviewed
2015-09-09 15:07 apv Assigned To bugmaster => apv
2015-09-10 14:25 apv Test case number => Not needed
2015-09-10 14:27 apv Note Added: 0045417
2015-09-10 14:27 apv Assigned To apv => bugmaster
2015-09-10 14:27 apv Status reviewed => tested
2015-09-11 14:09 bugmaster Changeset attached => occt master 8a53d1c4
2015-09-11 14:09 bugmaster Status tested => verified
2015-09-11 14:09 bugmaster Resolution open => fixed
2015-09-11 19:02 abv Target Version 7.0.0 => 6.9.1
2015-10-16 14:55 aiv Status verified => closed
2015-10-16 16:14 git Note Added: 0046885
2015-10-23 20:50 aiv Fixed in Version => 6.9.1