MantisBT
Mantis Bug Tracker Workflow

View Issue Details Jump to Notes ] Related Changesets ] Issue History ] Print ]
IDProjectCategoryView StatusDate SubmittedLast Update
0029124Open CASCADE[OCCT] OCCT:Visualizationpublic2017-09-19 12:212018-06-29 21:19
Reporterabv 
Assigned Tobugmaster 
PrioritynormalSeverityminor 
StatusclosedResolutionfixed 
PlatformOSOS Version
Product Version 
Target Version[OCCT] 7.3.0Fixed in Version[OCCT] 7.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
Attached Files

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

-  Notes
(0070671)
kgv (developer)
2017-09-19 13:04
edited on: 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.

(0070672)
git (administrator)
2017-09-19 13:04

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.
(0070673)
abv (manager)
2017-09-19 13:07

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).
(0070674)
abv (manager)
2017-09-19 13:07

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.
(0070675)
git (administrator)
2017-09-19 13:13

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).

(0070677)
kgv (developer)
2017-09-19 13:27
edited on: 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.

(0070679)
abv (manager)
2017-09-19 13:49

Besides, problem 1 was also reproduced in all tests in group 3dparty -- initially they failed for me because of wrong binaries of Gl2Ps used
(0070705)
git (administrator)
2017-09-20 10:46

Branch CR29124 has been updated forcibly by abv.

SHA-1: 5146ed7c79be9d822323a666f97bafa9d1d60cdc
(0070715)
kgv (developer)
2017-09-20 18:16

> 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.
(0070717)
kgv (developer)
2017-09-20 18:18

> 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.
(0070738)
abv (manager)
2017-09-21 16:11

Please review corrections pushed to branch CR29124; the tests have passed fine -- see Jenkins job CR29124-master-abv
(0070739)
kgv (developer)
2017-09-21 16:17

--- 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.
(0070745)
abv (manager)
2017-09-21 17:15

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.
(0070777)
kgv (developer)
2017-09-22 11:56

> 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?).
(0070794)
abv (manager)
2017-09-22 15:52
edited on: 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.

(0071210)
kgv (developer)
2017-10-04 20:29

Please try redirecting Default Messenger content (if any) to std::cout, instead of discarding it at all within vreadpixel command.
(0071238)
git (administrator)
2017-10-05 13:48

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).
(0071239)
abv (manager)
2017-10-05 13:58

Corrected version is pushed to CR29124_1 (on current master) and tested (manually, on remote desktop); please consider for integration
(0071458)
git (administrator)
2017-10-14 12:19

Branch CR29124 has been deleted by kgv.

SHA-1: 5146ed7c79be9d822323a666f97bafa9d1d60cdc
(0071459)
git (administrator)
2017-10-14 12:19

Branch CR29124_1 has been deleted by kgv.

SHA-1: 30b2e022350900759b8834b44acdadda2dff8e27

- Related Changesets
occt: master 68beaa3c
Timestamp: 2017-09-19 10:04:23
Author: 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).
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 View Revisions
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 View Revisions
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 View Revisions
2017-09-19 13:49 abv Note Added: 0070679
2017-09-19 14:23 abv Description Updated View Revisions
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 View Revisions
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 View Revisions
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 16:25 kgv Relationship added related to 0029019
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 View Revisions
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 user533 Target Version 7.4.0* => 7.3.0
2018-06-29 21:15 user533 Fixed in Version => 7.3.0
2018-06-29 21:19 user533 Status verified => closed


Copyright © 2000 - 2018 MantisBT Team
Powered by Mantis Bugtracker