View Issue Details

IDProjectCategoryView StatusLast Update
0024310Open CASCADEOCCT:Visualizationpublic2013-12-19 13:59
Reporterkgv Assigned Toabv 
PrioritynormalSeverityminor 
Status closedResolutionfixed 
PlatformWindowsOSVC++ 2008 
Target Version6.7.0Fixed in Version6.7.0 
Summary0024310: TKOpenGl - GLSL compatibility issues
DescriptionSome ancient OpenGL implementations are unable to draw Phong GLSL program.
Particularly:
- RadeOn 9600, GL version 2.1.8454, GLSL version 1.20. Result: linkage fails without description.
- Mesa Windows GDI Driver, GL version 2.1 Mesa 7.8.2, GLSL version 1.20. Result: unhandled GL_INVALID_OPERATION and broken rendering.
- GeForce 320, Mac OS X 10.6 / OS X 10.9. Result: white shape (but image drawn fine with Apple software renderer).
TagsNo tags attached.
Test case number

Relationships

related to 0024250 closedbugmaster TKOpenGl - per-pixel lighting using GLSL program (Phong shading) 
related to 0024322 closedbugmaster TKOpenGl - light sources management inconsistency 
related to 0024345 closedbugmaster TKOpenGl - GLSL compatibility issues on NV40 (GeForce 6xxx/7xxx) 
related to 0024363 closedkgv Automated Tests - optimize testing environment for visualization tests 

Activities

kgv

2013-11-02 16:46

developer   ~0026431

Some GLSL implementation are unable to handle structure array uniforms in proper way. We might eliminate their usage to workaround such issues which will lead to syntax degradation.

The proposed patch in CR24310 branch detects issue in old Mesa implementation to prevent broken rendering. Notice that other broken drivers might be broken in different way... But probably not much important nowadays.

kgv

2013-11-04 03:52

developer   ~0026436

Since this issue happens more often, new patch has been implemented which eliminates problematic constructions. Shader program now works with old Mesa library (with some artifacts) and GeForce on Mac OS X. Ancient RadeOn 9600 seems to be unable to execute program due to hardware limits.

In addition new Draw Harness command vlight has been introduced for light sources configuration.

Please see branch CR24310_2.

apl

2013-11-05 17:20

developer   ~0026459

Dear kgv,

The branch is completely reviewed.

Please proceed with pending minor remark (if still any) and send to testing.

abv

2013-11-06 11:06

manager   ~0026465

Tested on Windows: the patch fixes the problem with shaders on GeForce 630M

Related Changesets

occt: master 12381341

2013-11-04 00:42:44

abv


Committer: abv Details Diff
0024310: TKOpenGl - GLSL compatibility issues

Lights defintion clean up:
- remove duplicated enumeration TLightType (equals to Visual3d_TypeOfLightSource)
- remove unused fields from Graphic3d_CLight
- OpenGl_Light, reuse Graphic3d_CLight definition

Phong GLSL program:
- move out cumulative ambient light intencity from limited list of lights
- compatibility issues, replace array of structures (light sources, materials, clipping planes) with arrays of primitive types

New Draw Harness command vlight to alter light sources definition.

OpenGl_ShaderProgram::Initialize() - add missing Linker log
Affected Issues
0024310
mod - src/Graphic3d/Graphic3d_CLight.hxx Diff File
mod - src/Graphic3d/Graphic3d_CView.hxx Diff File
mod - src/Graphic3d/Graphic3d_GraphicDriver.cdl Diff File
mod - src/Graphic3d/Graphic3d_GraphicDriver.cxx Diff File
mod - src/InterfaceGraphic/InterfaceGraphic_telem.hxx Diff File
mod - src/InterfaceGraphic/InterfaceGraphic_Visual3d.hxx Diff File
mod - src/NCollection/NCollection_Vec4.hxx Diff File
mod - src/OpenGl/OpenGl_Light.hxx Diff File
mod - src/OpenGl/OpenGl_ShaderManager.cxx Diff File
mod - src/OpenGl/OpenGl_ShaderProgram.cxx Diff File
mod - src/OpenGl/OpenGl_ShaderProgram.hxx Diff File
mod - src/OpenGl/OpenGl_View.cxx Diff File
mod - src/OpenGl/OpenGl_View_2.cxx Diff File
mod - src/OpenGl/OpenGl_Workspace_Raytrace.cxx Diff File
mod - src/Shaders/Declarations.glsl Diff File
add - src/Shaders/DeclarationsImpl.glsl Diff File
mod - src/Shaders/PhongShading.fs Diff File
mod - src/Shaders/PhongShading.vs Diff File
mod - src/V3d/V3d_Light.cdl Diff File
mod - src/V3d/V3d_Light.cxx Diff File
mod - src/ViewerTest/ViewerTest_ViewerCommands.cxx Diff File
mod - src/Visual3d/Visual3d_Light.cdl Diff File
mod - src/Visual3d/Visual3d_Light.cxx Diff File
mod - src/Visual3d/Visual3d_View.cxx Diff File
mod - tests/v3d/glsl/phong_box Diff File
mod - tests/v3d/glsl/phong_couple Diff File
mod - tests/v3d/glsl/phong_fuse Diff File
add - tests/v3d/glsl/phong_fuse2 Diff File
mod - tests/v3d/glsl/phong_views Diff File

Issue History

Date Modified Username Field Change
2013-11-02 16:38 kgv New Issue
2013-11-02 16:38 kgv Assigned To => kgv
2013-11-02 16:38 kgv Relationship added related to 0024250
2013-11-02 16:46 kgv Note Added: 0026431
2013-11-02 16:46 kgv Assigned To kgv => dbp
2013-11-02 16:46 kgv Status new => resolved
2013-11-04 03:52 kgv Note Added: 0026436
2013-11-04 03:52 kgv Description Updated
2013-11-05 11:16 dbp Assigned To dbp => kgv
2013-11-05 11:16 dbp Status resolved => assigned
2013-11-05 11:25 kgv Assigned To kgv => apl
2013-11-05 11:25 kgv Status assigned => resolved
2013-11-05 11:50 kgv Priority low => normal
2013-11-05 17:20 apl Note Added: 0026459
2013-11-05 17:20 apl Assigned To apl => kgv
2013-11-05 17:20 apl Status resolved => assigned
2013-11-06 11:05 kgv Relationship added related to 0024322
2013-11-06 11:06 abv Note Added: 0026465
2013-11-06 11:07 abv Changeset attached => occt master 12381341
2013-11-06 11:07 abv Assigned To kgv => abv
2013-11-06 11:07 abv Status assigned => verified
2013-11-06 11:07 abv Resolution open => fixed
2013-11-11 20:37 kgv Relationship added related to 0024345
2013-11-15 11:29 kgv Relationship added related to 0024363
2013-12-19 13:50 bugmaster Status verified => closed
2013-12-19 13:59 bugmaster Fixed in Version => 6.7.0