View Issue Details
ID | Project | Category | View Status | Date Submitted | Last Update |
---|---|---|---|---|---|
0003438 | Slicer4 | Core: GUI | public | 2013-10-05 03:21 | 2017-06-07 23:27 |
Reporter | lassoan | Assigned To | jcfr | ||
Priority | normal | Severity | major | Reproducibility | random |
Status | closed | Resolution | fixed | ||
Product Version | |||||
Target Version | Slicer 4.4.0 | Fixed in Version | Slicer 4.4.0 | ||
Summary | 0003438: Slicer somettimes hangs at the end of scene saving | ||||
Description | Seems to be an issue with OpenGL error handling in VTK in vtkOpenGLRenderWindow::GetPixelData(). int vtkOpenGLRenderWindow::GetPixelData(int x1, int y1, // set the current window ... | ||||
Additional Information | Stack traces: OPENGL32.dll!glDebugEntry+0x10 OPENGL32.dll!glGetError | ||||
Tags | No tags attached. | ||||
Randomly occurs with Win7 64-bit, NVidia NVS 4200M, Driver 296.20, DirectX 11. Reported by others, too. |
|
That infinite loop should be enabled in debug mode only, as some errors are not cleared after calling glGetError - this is a VTK bug, but not the root cause. Infinite glGetError is most likely due to an invalid/uninitialized context: |
|
Done some more investigation:
I don't have time for more investigation but I think this should be enough information for CTK developers to fix the issue and the problem should be probably reported to VTK developers as well. |
|
Workaround for users until the problem is fixed: switch to the “Four-up” layout before saving the scene. |
|
It does not happen to me on the mac. |
|
Also does not happen for me when using remote desktop to a windows 7 machine (tested 4.3.0). |
|
I can reproduce with Slicer 4.3.0 over remote desktop on Win7:
|
|
Thanks Andras - yes, with the steps described in note 10143 I can replicate the issue on my machine via remote access. It looks to me as though the problem is that there are QVTKWidget instances that are parented to the main window but have never been rendered (so they have no opengl context). This loop can probably be fixed: It may be as simple as skipping QVTKWidgets that are not currently visible [1] [1] http://qt-project.org/doc/qt-4.8/qwidget.html#visible-prop |
|
Steve's suggested visibility check works perfectly (the screenshot is generated correctly and there is no hang). See the exact code change below. There is a very similar loop in CTK\Libs\Widgets\ctkWidgetsUtils.cpp for QWidget. Probably this check should be added there, too. diff --git a/Libs/Visualization/VTK/Widgets/ctkVTKWidgetsUtils.cpp b/Libs/Visualization/VTK/Widgets/ctkVTKWidgetsUtils.cpp
|
|
Fixed in CTK https://github.com/commontk/CTK/commit/e4694372310dfa1de4bb654b427083f27d4d091c Slicer updated: https://github.com/Slicer/Slicer/commit/a1115337e986829e0792759702269ee77440067e |
|
Tested on latest nightly on Win64 and it works correctly now. |
|
Backported to Slicer-4-3 branch. See http://viewvc.slicer.org/viewvc.cgi/Slicer4?view=revision&revision=22622 |
|
Slicer: 2145-support-for-installing-extension-from-file a1115337 2013-10-08 03:18:45 Details Diff |
BUG: 0003438 Avoid hang when saving due to non-visible widget grab If the OpenGL context of the window is not correctly initialized, then VTK cannot get a copy of the pixels and goes into an infinite loop checking the GL error. This CTK version includes a patch from Andras avoids this problem. git-svn-id: http://svn.slicer.org/Slicer4/trunk@22605 3bd1e089-480b-0410-8dfb-8563597acbee |
||
mod - SuperBuild/External_CTK.cmake | Diff File |
Date Modified | Username | Field | Change |
---|---|---|---|
2013-10-05 03:21 | lassoan | New Issue | |
2013-10-05 03:21 | lassoan | Status | new => assigned |
2013-10-05 03:21 | lassoan | Assigned To | => kikinis |
2013-10-05 03:26 | lassoan | Note Added: 0010136 | |
2013-10-05 05:30 | lassoan | Note Added: 0010137 | |
2013-10-05 05:55 | kikinis | Assigned To | kikinis => jcfr |
2013-10-05 16:40 | lassoan | Note Added: 0010140 | |
2013-10-05 16:55 | lassoan | Note Added: 0010141 | |
2013-10-06 05:52 | kikinis | Note Added: 0010142 | |
2013-10-06 11:07 | pieper | Note Added: 0010143 | |
2013-10-06 11:42 | lassoan | Note Added: 0010144 | |
2013-10-06 11:52 | pieper | Note Added: 0010145 | |
2013-10-06 13:59 | lassoan | Note Added: 0010147 | |
2013-10-08 00:12 | pieper | Note Added: 0010150 | |
2013-10-08 00:12 | pieper | Status | assigned => resolved |
2013-10-08 00:12 | pieper | Fixed in Version | => Slicer 4.3.2 |
2013-10-08 00:12 | pieper | Resolution | open => fixed |
2013-10-19 08:15 | lassoan | Note Added: 0010198 | |
2013-10-19 08:15 | lassoan | Status | resolved => closed |
2013-10-21 06:06 | jcfr | Target Version | => Slicer 4.3.2 |
2013-10-21 06:06 | jcfr | Note Added: 0010201 | |
2014-03-06 10:16 | nicole | Target Version | Slicer 4.3.2 => Slicer 4.4.0 |
2014-03-06 10:17 | nicole | Fixed in Version | Slicer 4.3.2 => Slicer 4.4.0 |
2017-06-07 23:27 | pieper | Changeset attached | => Slicer 2145-support-for-installing-extension-from-file a1115337 |