View Issue Details

IDProjectCategoryView StatusLast Update
0029124Open CASCADEOCCT:Visualizationpublic2018-06-29 21:19
ReporterabvAssigned Tobugmaster  
PrioritynormalSeverityminor 
Status closedResolutionfixed 
Target Version7.3.0Fixed in Version7.3.0 
Summary0029124: Visualization, Tests - failures when tests are executed via Remote Desktop connection
DescriptionWhen I run tests on my workstation (Windows 7) via remote desktop connection from Windows 10 workstation, it uses OpenGl software driver by Microsoft that does not provide necessary features for OCCT visualization to work normally; it falls back to fixed pipeline.

This leads to several kinds of failures in tests:

1. [0029125] Command vdump in some tests (e.g. mesh advanced_shading A1) fails with message

TKOpenGl | Type: Other | ID: 0 | Severity: Low | Message:
  Unhandled GL error: GL_INVALID_ENUM
Fail: view dump failed!

2. Command vreadpixel prints extra message in the beginning "Warning, on screen buffer is used for image dump - content might be invalid" which breaks further logic of the test (it expects to get three integers, not text)

3. The same message is output by vdump and perhaps some other commands, and sometimes is interpreted as error (e.g. in grid caf presentation)

4. [0029125] 6 tests in the grid v3d dimensions fail with access violation exception, occurring in OpenGl_VertexBuffer::Create() which uses theGlCtx->core15fwd without checking it for null

5. [0025162] "Error: NPOT Textures (21x21) are not supported by hardware" in test bugs vis bug9517, 23102, 23804, 24725, 24930, 25369, 25475...

6. [0029127] Second call to vdump kills DRAW in test bugs vis bug23813 (access violation in glReadPixels called from penGl_Workspace::BufferDump); the same occurs in test bugs vis bug24001 and v3d anim videorecorder

7. Ray tracing and path tracing are not available

In addition, there are over 100 tests failing due to inability to verify color of the pixel (result of vreadpixel command), e.g. bugs vis bug25251
Steps To ReproduceRun tests on remote computer while connecting via Remote Desktop Connection on Windows
Additional information
and documentation updates
Draw[6]> vinit
TKOpenGl | Type: Portability | ID: 0 | Severity: High | Message:
  OpenGL driver is too old! Context info:
    Vendor: Microsoft Corporation
    Renderer: GDI Generic
    Version: 1.1.0
  Fallback using deprecated fixed-function pipeline.
  Visualization might work incorrectly.
  Consider upgrading the graphics driver.
Driver1/Viewer1/View1
Draw[8]> vglinfo
OpenGL info:
  GLvendor: Microsoft Corporation
  GLdevice: GDI Generic
  GLversion: 1.1.0
  GLSLversion:
  Max texture size: 1024
  Max combined texture units: 1
  Max MSAA samples: 0
  Viewport: 409x409
  ResolutionRatio: 1
TagsNo tags attached.
Test case numberNot required

Relationships

related to 0025162 closedbugmaster Open CASCADE Visualization, TKOpenGl - drop GLU library dependency 
related to 0024644 closedbugmaster Open CASCADE Draw_Printer - provide the way to control messages gravity filter 
parent of 0029125 closedbugmaster Open CASCADE Visualization, OpenGl_Text - fix access violation within OpenGL1.1 context 
parent of 0029127 closedbugmaster Open CASCADE Visualization - V3d_View::ToPixMap() crashes on tiled rendering without FBO 

Activities

kgv

2017-09-19 13:04

developer   ~0070671

Last edited: 2017-09-19 13:04

1. Command vdump fails with message
TKOpenGl | Type: Other | ID: 0 | Severity: Low | Message:
  Unhandled GL error: GL_INVALID_ENUM
Fail: view dump failed!

I cannot reproduce this issue.

2. Command vreadpixel prints extra message in the beginning "Warning, on screen buffer is used for image dump - content might be invalid" which breaks further logic of the test (it expects to get three integers, not text)

3. The same message is output by vdump and perhaps some other commands, and sometimes is interpreted as error (e.g. in grid caf presentation)

This is not a Visualization issue - it is a problem of Draw Harness which redirects all messages of Message::DefaultMessenger() to Tcl by default.

git

2017-09-19 13:04

administrator   ~0070672

Branch CR29124 has been created by abv.

SHA-1: 4b0c7182b49a13429bc1adb2bf13506b185f65e5


Detailed log of new commits:

Author: abv
Date: Tue Sep 19 13:04:23 2017 +0300

    0029124: Visualization, Tests - failures when tests are executed via Remote Desktop connection
    
    Protection against accessing null pointer is added in OpenGl_VertexBuffer::Create().
    OpenGl-related warnings are suppressed in command vreadpixel.
    Test grid caf presentation is configured to ignore OpenGl-related warning messages.

abv

2017-09-19 13:07

manager   ~0070673

Branch CR29124 (based on CR28824_2 -- I need it for testing) contains corrections for points 2-4 (the latter is different from fix made in CR29125 -- I suppose both fixes can be kept for more safety).

abv

2017-09-19 13:07

manager   ~0070674

Problem 1 is reproduced not in all cases, but at least in tests in grid mesh -- sorry I did not recognize that in the beginning.

git

2017-09-19 13:13

administrator   ~0070675

Branch CR29124 has been updated by abv.

SHA-1: 6699b9c45250c88fa5eda70ed920428601263c73


Detailed log of new commits:

Author: abv
Date: Tue Sep 19 13:13:09 2017 +0300

    Tests in grid tools are configured to report status SKIPPED if tools are not available (OCCT is built without Qt).

kgv

2017-09-19 13:27

developer   ~0070677

Last edited: 2017-09-19 13:27

> Problem 1 is reproduced not in all cases, but at least in tests in grid mesh
Actually this is a bug in vglinfo, not vdump.
I have amended fix for this to 0029125.

abv

2017-09-19 13:49

manager   ~0070679

Besides, problem 1 was also reproduced in all tests in group 3dparty -- initially they failed for me because of wrong binaries of Gl2Ps used

git

2017-09-20 10:46

administrator   ~0070705

Branch CR29124 has been updated forcibly by abv.

SHA-1: 5146ed7c79be9d822323a666f97bafa9d1d60cdc

kgv

2017-09-20 18:16

developer   ~0070715

> 6. Second call to vdump kills DRAW in test bugs vis bug23813 (access violation in glReadPixels called from penGl_Workspace::BufferDump);
0029127 handles vdump crash in bug23813.

kgv

2017-09-20 18:18

developer   ~0070717

> 5. "Error: NPOT Textures (21x21) are not supported by hardware" in test bugs vis bug9517, 23102, 23804, 24725, 24930, 25369, 25475...
Fallback for NPOT textures has been dropped within 0025162, and there is no reason for it on modern configurations.

abv

2017-09-21 16:11

manager   ~0070738

Please review corrections pushed to branch CR29124; the tests have passed fine -- see Jenkins job CR29124-master-abv

kgv

2017-09-21 16:17

developer   ~0070739

--- a/src/ViewerTest/ViewerTest_ViewerCommands.cxx
+++ b/src/ViewerTest/ViewerTest_ViewerCommands.cxx
@@ -6022,6 +6022,10 @@ static int VReadPixel (Draw_Interpretor& theDI,
     return 1;
   }
 
+  // clear possible warnings messages that could have been added by ToPixMap
+  // into the Tcl interpretor via DefaultMessenger
+  theDI.Reset();

I have doubts that this is a correct fix and a proper place for it.
What is the result of it - warnings are suppressed, or somehow not returned to Tcl?
By the way, these messages might be generated by many other commands, not just vreadpixel.

abv

2017-09-21 17:15

manager   ~0070745

The effect is that in the case of successful completion of vreadpixel it will return exactly what is expected -- either RGB values or color name. For that, warnings or any other messages that could have been generated during execution of the code of the command until that point are cleared by Reset(). If above code fails, its messages will remain in the interpretor. Other commands are not touched, since for them having such warning visible can be useful.

kgv

2017-09-22 11:56

developer   ~0070777

> For that, warnings or any other messages that could have been generated
> during execution of the code of the command until that point
> are cleared by Reset(). If above code fails, its messages
> will remain in the interpretor.
It does not look correct suppressing messages from output like this.
I would say that Draw_Printer should not replace Message_PrinterOStream by default, or Draw_Printer should redirect messages to Tcl depending on Gravity (e.g., only failures?).

abv

2017-09-22 15:52

manager   ~0070794

Last edited: 2017-09-22 15:53

Implementation of Draw_Printer is different subject, it goes far outside the scope of the current issue. If you like, you can create a separate issue for this.

Note that Draw_Printer has been set as default for all DRAW in fix for 0024644; before that it was set only on XSDRAW -- the need was to handle results of tpstat command in DRAW tests, see 0023452.

I guess that changes in Draw_Printer can easily affect our tests that might rely on ability to handle such messages on Tcl level.

kgv

2017-10-04 20:29

developer   ~0071210

Please try redirecting Default Messenger content (if any) to std::cout, instead of discarding it at all within vreadpixel command.

git

2017-10-05 13:48

administrator   ~0071238

Branch CR29124_1 has been created by abv.

SHA-1: 30b2e022350900759b8834b44acdadda2dff8e27


Detailed log of new commits:

Author: abv
Date: Tue Sep 19 13:04:23 2017 +0300

    0029124: Visualization, Tests - failures when tests are executed via Remote Desktop connection
    
    Protection against accessing null pointer is added in OpenGl_VertexBuffer::Create().
    In command vreadpixel OpenGl-related warnings are redirected to cout so that they do not contaminate the command output.
    Test grid caf presentation is configured to ignore OpenGl-related warning messages.
    Tests in grid tools are configured to report status SKIPPED if tools are not available (OCCT is built without Qt).

abv

2017-10-05 13:58

manager   ~0071239

Corrected version is pushed to CR29124_1 (on current master) and tested (manually, on remote desktop); please consider for integration

git

2017-10-14 12:19

administrator   ~0071458

Branch CR29124 has been deleted by kgv.

SHA-1: 5146ed7c79be9d822323a666f97bafa9d1d60cdc

git

2017-10-14 12:19

administrator   ~0071459

Branch CR29124_1 has been deleted by kgv.

SHA-1: 30b2e022350900759b8834b44acdadda2dff8e27

Related Changesets

occt: master 68beaa3c

2017-09-19 10:04:23

abv


Committer: bugmaster Details Diff
0029124: Visualization, Tests - failures when tests are executed via Remote Desktop connection

Protection against accessing null pointer is added in OpenGl_VertexBuffer::Create().
In command vreadpixel OpenGl-related warnings are redirected to cout so that they do not contaminate the command output.
Test grid caf presentation is configured to ignore OpenGl-related warning messages.
Tests in grid tools are configured to report status SKIPPED if tools are not available (OCCT is built without Qt).
Affected Issues
0029124
mod - src/OpenGl/OpenGl_VertexBuffer.cxx Diff File
mod - src/ViewerTest/ViewerTest_ViewerCommands.cxx Diff File
mod - tests/bugs/vis/bug22018 Diff File
mod - tests/caf/parse.rules Diff File
mod - tests/tools/parse.rules Diff File

Issue History

Date Modified Username Field Change
2017-09-19 12:21 abv New Issue
2017-09-19 12:21 abv Assigned To => kgv
2017-09-19 12:58 kgv Relationship added parent of 0029125
2017-09-19 12:59 abv Description Updated
2017-09-19 13:04 kgv Note Added: 0070671
2017-09-19 13:04 git Note Added: 0070672
2017-09-19 13:04 kgv Note Edited: 0070671
2017-09-19 13:07 abv Note Added: 0070673
2017-09-19 13:07 abv Note Added: 0070674
2017-09-19 13:13 git Note Added: 0070675
2017-09-19 13:27 kgv Note Added: 0070677
2017-09-19 13:27 kgv Note Edited: 0070677
2017-09-19 13:49 abv Note Added: 0070679
2017-09-19 14:23 abv Description Updated
2017-09-20 10:46 git Note Added: 0070705
2017-09-20 14:30 kgv Relationship added parent of 0029127
2017-09-20 18:16 kgv Note Added: 0070715
2017-09-20 18:17 kgv Relationship added related to 0025162
2017-09-20 18:18 kgv Note Added: 0070717
2017-09-20 18:20 kgv Description Updated
2017-09-21 16:11 abv Note Added: 0070738
2017-09-21 16:11 abv Status new => resolved
2017-09-21 16:11 abv Steps to Reproduce Updated
2017-09-21 16:17 kgv Note Added: 0070739
2017-09-21 16:19 kgv Assigned To kgv => abv
2017-09-21 16:19 kgv Status resolved => feedback
2017-09-21 17:15 abv Note Added: 0070745
2017-09-21 17:40 abv Assigned To abv => kgv
2017-09-22 11:56 kgv Note Added: 0070777
2017-09-22 11:56 kgv Assigned To kgv => abv
2017-09-22 15:52 abv Note Added: 0070794
2017-09-22 15:53 abv Note Edited: 0070794
2017-09-22 15:54 abv Assigned To abv => kgv
2017-09-22 16:12 kgv Relationship added related to 0024644
2017-10-04 20:29 kgv Note Added: 0071210
2017-10-04 20:29 kgv Assigned To kgv => abv
2017-10-04 20:29 kgv Status feedback => assigned
2017-10-05 13:48 git Note Added: 0071238
2017-10-05 13:58 abv Note Added: 0071239
2017-10-05 13:58 abv Assigned To abv => kgv
2017-10-05 13:58 abv Status assigned => resolved
2017-10-05 13:58 abv Assigned To kgv => bugmaster
2017-10-05 13:58 abv Status resolved => reviewed
2017-10-06 14:55 bugmaster Changeset attached => occt master 68beaa3c
2017-10-06 14:55 bugmaster Status reviewed => verified
2017-10-06 14:55 bugmaster Resolution open => fixed
2017-10-09 10:20 bugmaster Test case number => Not required
2017-10-14 12:19 git Note Added: 0071458
2017-10-14 12:19 git Note Added: 0071459
2018-02-20 12:59 aiv Target Version 7.4.0 => 7.3.0
2018-06-29 21:15 aiv Fixed in Version => 7.3.0
2018-06-29 21:19 aiv Status verified => closed