MantisBT - VTK | |||||
| View Issue Details | |||||
| ID | Project | Category | View Status | Date Submitted | Last Update |
| 0015435 | VTK | (No Category) | public | 2015-04-23 11:42 | 2016-08-12 09:55 |
| Reporter | Edson Tadeu M. Manoel | ||||
| Assigned To | T.J. Corona | ||||
| Priority | high | Severity | minor | Reproducibility | have not tried |
| Status | closed | Resolution | moved | ||
| Platform | OS | OS Version | |||
| Product Version | 6.0.0 | ||||
| Target Version | Fixed in Version | ||||
| Project | TBD | ||||
| Type | crash | ||||
| Summary | 0015435: Crash related to vtkRenderWindow::SetOffScreenRendering | ||||
| Description | There is a crash in VTK 6 that seems related to setting off-screen rendering to On, and then to Off again. This is a simple failing test case: ``` def test_off_screen_rendering_bug(): import vtk renderer = vtk.vtkRenderer() render_window = vtk.vtkRenderWindow() render_window.AddRenderer(renderer) render_window.Render() render_window.SetOffScreenRendering(True) render_window.SetOffScreenRendering(False) # <-- Problem happens here assert render_window.GetRenderers().GetFirstRenderer().GetRenderWindow() is not None render_window.Render() # <-- Crashes here if the assert above is commented out. ``` The RenderWindow pointer of the renderers are being set to NULL in the `render_window.SetOffScreenRendering(False)` call. Note: this is only happening when the attribute OffScreenUseFrameBuffer is 0, because SetOffScreenRendering is invoking CleanUpOffScreenRendering, which is invoking CleanUpRenderers, which sets the RenderWindow to NULL and then it is never attributed back to a valid value (because ContextId is also set to 0, and ResumeScreenRendering only restores the RenderWindow when ContextId != 0). OffScreenUseFrameBuffer is kept as 0 when CreateHardwareOffScreenWindow fails (probably because OpenGL framebuffer extension is also disabled). So, in order to really reproduce this, the framebuffer must be disabled (using remote desktop connection seems to do this). This used to work on older versions, so I've tried to trace what changes led to this problem, and I got these commits: https://gitlab.kitware.com/vtk/vtk/commit/9b6f235663f5db37455a26ea77647a3f693e5f8d [^] Authored by: Clinton Stimpson 7 years ago ENH: Don't leave the vtkRenderer's RenderWindow NULL after reparenting the vtkRenderWindow. Making modifications (add/remove 3D widgets) before the next render would lead to crashes. https://gitlab.kitware.com/vtk/vtk/commit/a6fa3e375c17771864345763ae2283d47be7aae8 [^] Authored by: Burlen Loring 2 years ago OpenGL error hunt This patch implements OpenGL error checking in VTK. (...) https://gitlab.kitware.com/vtk/vtk/commit/f7f82536aa867acc64b9a458c60810dd3fbf2b00 [^] Authored by: Utkarsh Ayachit 2 years ago Fixed regression introduced by a6fa3e375c. | ||||
| Steps To Reproduce | |||||
| Additional Information | |||||
| Tags | No tags attached. | ||||
| Relationships | |||||
| Attached Files | |||||
| Issue History | |||||
| Date Modified | Username | Field | Change | ||
| 2015-04-23 11:42 | Edson Tadeu M. Manoel | New Issue | |||
| 2015-08-26 16:35 | Berk Geveci | Assigned To | => T.J. Corona | ||
| 2015-08-26 16:48 | T.J. Corona | Note Added: 0035072 | |||
| 2015-08-26 16:48 | T.J. Corona | Status | backlog => closed | ||
| 2015-08-26 16:48 | T.J. Corona | Resolution | open => unable to reproduce | ||
| 2015-08-27 08:28 | Edson Tadeu M. Manoel | Note Added: 0035078 | |||
| 2015-08-27 08:28 | Edson Tadeu M. Manoel | Status | closed => backlog | ||
| 2015-08-27 08:28 | Edson Tadeu M. Manoel | Resolution | unable to reproduce => reopened | ||
| 2015-08-27 11:16 | T.J. Corona | Note Added: 0035084 | |||
| 2015-08-27 13:27 | Edson Tadeu M. Manoel | Note Added: 0035086 | |||
| 2016-08-12 09:55 | Kitware Robot | Note Added: 0037384 | |||
| 2016-08-12 09:55 | Kitware Robot | Status | backlog => closed | ||
| 2016-08-12 09:55 | Kitware Robot | Resolution | reopened => moved | ||
| Notes | |||||
|
|
|||||
|
|
||||
|
|
|||||
|
|
||||
|
|
|||||
|
|
||||
|
|
|||||
|
|
||||
|
|
|||||
|
|
||||