View Issue Details

IDProjectCategoryView StatusLast Update
0028890CommunityOCCT:Visualizationpublic2017-09-29 16:28
ReporterVico Liang Assigned Tobugmaster  
PrioritynormalSeveritymajor 
Status closedResolutionfixed 
PlatformWindowsOSVC++ 2013 
Product Version7.1.0 
Target Version7.2.0Fixed in Version7.2.0 
Summary0028890: Visualization - After closing all views and then display the view again, just the first view has object(s) displayed
DescriptionSteps to reproduce the problem:
1. Create AIS_InteractiveContext myAISContext1, myAISContext2;
2. Display any kind of AIS_InteractiveObject inside myAISContext1, myAISContext2;
3. Create two views to display objects: aView1 for myAISContext1, aView2 for myAISContext2;
// Till now, all is ok;
4. Close these two views aView1 and aView2, both views are removed with view->Remove() function.
5. Create two new views again: aView3 for myAISContext1, aView4 for myAISContext2;

NOTE, the bug occurs in the last step, aView3 will show the object as expected, but aView4 display nothing.

I debug the problem and find the causes:
Graphic3d_GraphicDriver will release all opengl internal resource if there is no any view exist and the IsDeviceLost will return true. If there is a new view need to display objects it will try to rebuild the Graphic3d_Structure. The problem occurs that it just rebuild the first view's Graphic3d_Structure and the later view's structure will not be built since after the frist view building structure, IsDeviceLost will return false, see detailed in method:void V3d_View::Redraw()

Steps To Reproduce
pload MODELING VISUALIZATION
vclear
vclose ALL
box b1_1 0 0 0 1 2 3
box b1_2 0 3 0 3 1 2
box b2_1 0 0 0 3 1 2
box b2_2 0 3 0 1 2 3

# fill first Viewer
vinit Driver1/Viewer1/View1
vzbufftrihedron
vdisplay -dispMode 1 b1_1 b1_2
vfit
vsetcolor b1_1 RED
vsetcolor b1_2 GREEN

# fill second Viewer
vinit Driver1/Viewer2/View1
vzbufftrihedron
vdisplay -dispMode 1 b2_1 b2_2
vfit
vsetcolor b2_1 RED
vsetcolor b2_2 GREEN

# enable RayTracing which sets DeviceLost flag
vactivate Driver1/Viewer1/View1
vraytrace 1
# OK - first View is redrawn in Ray-Trace mode

vactivate Driver1/Viewer2/View1
vraytrace 1
# KO - objects within second View were not re-computed for Ray-Tracing

TagsNo tags attached.
Test case numberbugs vis bug28890

Activities

git

2017-07-07 17:06

administrator   ~0068093

Branch CR28890 has been created by kgv.

SHA-1: 0541b64c1eddb9e22a6db93ae90e17d1c8d47c10


Detailed log of new commits:

Author: kgv
Date: Fri Jul 7 17:06:09 2017 +0300

    0028890: Visualization - After closing all views and then display the view again, just the first view has object(s) displayed
    
    DeviceLost flag has been moved from Graphic3d_GraphicDriver to Graphic3d_StructureManager,
    so that all Viewers sharing the same Driver instance are properly invalidated.
    
    Fixed clearing of objects by vclear command in case of multiple Viewers.

git

2017-07-07 17:14

administrator   ~0068094

Branch CR28890 has been updated forcibly by kgv.

SHA-1: aea112813c46a5546310d4ab0b2dfd40d261ae22

git

2017-07-07 17:24

administrator   ~0068097

Branch CR28890 has been updated forcibly by kgv.

SHA-1: 0bd26fac10d213fabea7e9f0cad82937ad70f18c

kgv

2017-07-07 17:24

developer   ~0068098

Patch is ready for review.

git

2017-07-11 10:53

administrator   ~0068177

Branch CR28890 has been updated forcibly by kgv.

SHA-1: 56e7c4cbd182beabac4090e2b114fe974b825b06

apl

2017-07-11 11:42

developer   ~0068182

Dear bugmaster,

Please test the patch.

mkv

2017-07-11 17:30

tester   ~0068192

Dear BugMaster,
Branch CR28890 from occt git-repository (and master from products git-repository) was compiled on Linux, MacOS and Windows platforms and tested on Release mode.
SHA-1: 56e7c4cbd182beabac4090e2b114fe974b825b06

Number of compiler warnings:

occt component :
Linux: 0 (0 on master)
Windows: 0 (0 on master)
MacOS : 0 (0 on master)

products component :
Linux: 64 (64 on master)
Windows: 0 (0 on master)
MacOS : 1162
There are following compilation errors on Windows platform:
http://jenkins-test-09.nnov.opencascade.com:8080/view/CR28890-master/view/SAMPLES/job/CR28890-master-Products-Windows-64-VC10-sample-csharp/1/parsed_console/
1>occcsharp_wrap.cxx(106200) : error C2661: 'OpenGl_View::OpenGl_View' : no overloaded function takes 5 arguments
1>occcsharp_wrap.cxx(106255) : error C2661: 'D3DHost_View::D3DHost_View' : no overloaded function takes 5 arguments

http://jenkins-test-09.nnov.opencascade.com:8080/view/CR28890-master/view/SAMPLES/job/CR28890-master-Products-Windows-64-VC10-sample-java/1/parsed_console/
..\..\..\OCCwrapJava\occjava_wrap.cxx(119098): error C2661: 'OpenGl_View::OpenGl_View' : no overloaded function takes 5 arguments [C:\install\CR28890-master\Windows-64-VC10-opt\Products\samples\java\win64\VC10\cmake\OCCwrapJava.vcxproj]
  ..\..\..\OCCwrapJava\occjava_wrap.cxx(119098): error C2661: 'OpenGl_View::OpenGl_View' : no overloaded function takes 5 arguments [C:\install\CR28890-master\Windows-64-VC10-opt\Products\samples\java\win64\VC10\cmake\OCCwrapJava.vcxproj]
    1 Error(s)

Regressions/Differences/Improvements:
No regressions/differences

Testing cases:
http://occt-tests/CR28890-master-OCCT/Debian70-64/bugs/vis/bug28890.html
http://occt-tests/CR28890-master-OCCT/Windows-64-VC10/bugs/vis/bug28890.html
bugs vis bug28890: OK

Testing on Linux:
occt component :
Total CPU difference: 18949.42000000012 / 19289.600000000315 [-1.76%]
Total MEMORY difference: 92162000 / 91873630 [+0.31%]
products component :
Total CPU difference: 6444.170000000065 / 6487.850000000069 [-0.67%]
Total MEMORY difference: 37647654 / 37650261 [-0.01%]
Testing on Windows:
occt component :
Total CPU difference: 17773.19392999852 / 17787.234019998614 [-0.08%]
Total MEMORY difference: 59027834 / 59031436 [-0.01%]
products component :
Total CPU difference: 6675.688392600067 / 6584.849010300061 [+1.38%]
Total MEMORY difference: 27877015 / 28099545 [-0.79%]

There are no differences in images found by testdiff.

mkv

2017-07-11 17:30

tester   ~0068193

Dear kgv,
Branch CR28890 has been rejected due to:
- compilation errors on Windows platform in Samples

kgv

2017-07-11 19:25

developer   ~0068201

Last edited: 2017-07-11 19:26

Please check Product samples compilation within patch pushed to Products.

mkv

2017-07-12 16:26

tester   ~0068213

Dear BugMaster,
Branch CR28890 from products git-repository was compiled on Linux, MacOS and Windows platforms on Release mode.
SHA-1: 2cc6d6cf3d6e1ae59261b1d954aeeb4300efc741

Number of compiler warnings:

products component :
Linux: 64 (64 on master)
Windows: 0 (0 on master)
MacOS : 1136

There are not compilation errors on Windows platform in Samples

mkv

2017-07-12 16:27

tester   ~0068214

Dear BugMaster,
Branch CR28890 from occt git-repository and branch CR28890 from products git-repository are TESTED.

git

2017-07-17 10:05

administrator   ~0068348

Branch CR28890 has been deleted by kgv.

SHA-1: 56e7c4cbd182beabac4090e2b114fe974b825b06

Related Changesets

occt: master 851dacdb

2017-07-07 14:06:09

kgv


Committer: bugmaster Details Diff
0028890: Visualization - After closing all views and then display the view again, just the first view has object(s) displayed

DeviceLost flag has been moved from Graphic3d_GraphicDriver to Graphic3d_StructureManager,
so that all Viewers sharing the same Driver instance are properly invalidated.

Fixed clearing of objects by vclear command in case of multiple Viewers.
Affected Issues
0028890
mod - src/D3DHost/D3DHost_GraphicDriver.cxx Diff File
mod - src/D3DHost/D3DHost_View.cxx Diff File
mod - src/D3DHost/D3DHost_View.hxx Diff File
mod - src/Graphic3d/Graphic3d_GraphicDriver.cxx Diff File
mod - src/Graphic3d/Graphic3d_GraphicDriver.hxx Diff File
mod - src/Graphic3d/Graphic3d_StructureManager.cxx Diff File
mod - src/Graphic3d/Graphic3d_StructureManager.hxx Diff File
mod - src/OpenGl/OpenGl_GraphicDriver.cxx Diff File
mod - src/OpenGl/OpenGl_GraphicDriver.hxx Diff File
mod - src/OpenGl/OpenGl_View.cxx Diff File
mod - src/OpenGl/OpenGl_View.hxx Diff File
mod - src/OpenGl/OpenGl_View_Redraw.cxx Diff File
mod - src/V3d/V3d_View.cxx Diff File
mod - src/ViewerTest/ViewerTest.cxx Diff File
mod - src/ViewerTest/ViewerTest_ViewerCommands.cxx Diff File
add - tests/bugs/vis/bug28890 Diff File

Issue History

Date Modified Username Field Change
2017-07-04 13:02 Vico Liang New Issue
2017-07-04 13:02 Vico Liang Assigned To => kgv
2017-07-04 13:11 Vico Liang Description Updated
2017-07-07 16:18 kgv Steps to Reproduce Updated
2017-07-07 17:03 kgv Summary After closing all views and then display the view again, just the first view has object(s) displayed => Visualization - After closing all views and then display the view again, just the first view has object(s) displayed
2017-07-07 17:06 git Note Added: 0068093
2017-07-07 17:14 git Note Added: 0068094
2017-07-07 17:24 git Note Added: 0068097
2017-07-07 17:24 kgv Note Added: 0068098
2017-07-07 17:24 kgv Assigned To kgv => apl
2017-07-07 17:24 kgv Status new => resolved
2017-07-11 10:53 git Note Added: 0068177
2017-07-11 11:42 apl Note Added: 0068182
2017-07-11 11:42 apl Assigned To apl => bugmaster
2017-07-11 11:42 apl Status resolved => reviewed
2017-07-11 12:20 mkv Assigned To bugmaster => mkv
2017-07-11 17:30 mkv Note Added: 0068192
2017-07-11 17:30 mkv Note Added: 0068193
2017-07-11 17:30 mkv Assigned To mkv => kgv
2017-07-11 17:30 mkv Status reviewed => assigned
2017-07-11 17:30 mkv Test case number => bugs vis bug28890
2017-07-11 19:25 kgv Note Added: 0068201
2017-07-11 19:25 kgv Assigned To kgv => bugmaster
2017-07-11 19:25 kgv Status assigned => resolved
2017-07-11 19:25 kgv Status resolved => reviewed
2017-07-11 19:26 kgv Note Edited: 0068201
2017-07-11 20:10 mkv Assigned To bugmaster => mkv
2017-07-12 16:26 mkv Note Added: 0068213
2017-07-12 16:27 mkv Note Added: 0068214
2017-07-12 16:27 mkv Assigned To mkv => bugmaster
2017-07-12 16:27 mkv Status reviewed => tested
2017-07-14 13:55 bugmaster Changeset attached => occt master 851dacdb
2017-07-14 13:55 bugmaster Status tested => verified
2017-07-14 13:55 bugmaster Resolution open => fixed
2017-07-17 10:05 git Note Added: 0068348
2017-09-29 16:18 aiv Fixed in Version => 7.2.0
2017-09-29 16:28 aiv Status verified => closed