View Issue Details [ Jump to Notes ] | [ Print ] | ||||||||
ID | Project | Category | View Status | Date Submitted | Last Update | ||||
0015840 | VTK | (No Category) | public | 2015-11-18 08:46 | 2015-11-19 11:26 | ||||
Reporter | Simon ESNEAULT | ||||||||
Assigned To | |||||||||
Priority | normal | Severity | minor | Reproducibility | have not tried | ||||
Status | closed | Resolution | fixed | ||||||
Platform | OS | OS Version | |||||||
Product Version | |||||||||
Target Version | Fixed in Version | ||||||||
Summary | 0015840: QVTKWidget regression, crash after "reparenting" a widget on OSX | ||||||||
Description | VTK 6.3 / OGL2 / Qt 5.3.2, OSX A program will crash after reparenting a QVTKWidget on OSX with the new OpenGL backend. The crash is in the method vtkShaderProgram::FindUniform() but we suspect it is about the OpenGL context not being ready on time for the next paintEvent with the new parent. Attached is a program that reproduce the problem, and here is a full backtrace : ******************************************************************************************************************************************************** ERROR: In /Users/gloups/VTK/src/Rendering/OpenGL2/vtkShaderProgram.cxx, line 354 vtkShaderProgram (0x6000001809c0): 1: #version 120 2: #define highp 3: #define mediump 4: #define lowp 5: 6: /*========================================================================= 7: 8: Program: Visualization Toolkit 9: Module: vtkPolyDataVS.glsl 10: 11: Copyright (c) Ken Martin, Will Schroeder, Bill Lorensen 12: All rights reserved. 13: See Copyright.txt or http://www.kitware.com/Copyright.htm [^] for details. 14: 15: This software is distributed WITHOUT ANY WARRANTY; without even 16: the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR 17: PURPOSE. See the above copyright notice for more information. 18: 19: =========================================================================*/ 20: 21: attribute vec4 vertexMC; 22: 23: // frag position in VC 24: varying vec4 vertexVCVSOutput; 25: 26: // optional normal declaration 27: attribute vec3 normalMC; 28: uniform mat3 normalMatrix; 29: varying vec3 normalVCVSOutput; 30: 31: // extra lighting parameters 32: //VTK::Light::Dec 33: 34: // Texture coordinates 35: //VTK::TCoord::Dec 36: 37: // material property values 38: //VTK::Color::Dec 39: 40: // clipping plane vars 41: //VTK::Clip::Dec 42: 43: // camera and actor matrix values 44: uniform mat4 MCDCMatrix; 45: uniform mat4 MCVCMatrix; 46: 47: // Apple Bug 48: //VTK::PrimID::Dec 49: 50: void main() 51: { 52: //VTK::Color::Impl 53: 54: normalVCVSOutput = normalMatrix * normalMC; 55: 56: //VTK::TCoord::Impl 57: 58: //VTK::Clip::Impl 59: 60: //VTK::PrimID::Impl 61: 62: vertexVCVSOutput = MCVCMatrix * vertexMC; 63: gl_Position = MCDCMatrix * vertexMC; 64: 65: 66: //VTK::Light::Impl 67: } 68: ERROR: In /Users/gloups/VTK/src/Rendering/OpenGL2/vtkShaderProgram.cxx, line 355 vtkShaderProgram (0x6000001809c0): ERROR: 0:1: '' : version '120' is not supported ERROR: 0:2: '' : #version required and missing. ERROR: 0:21: 'attribute' : syntax error: syntax error (lldb) bt * thread #1: tid = 0x600e30, 0x0000000100609f1f VtkReparentingProblem`vtkShaderProgram::FindUniform(char const*) + 31, queue = 'com.apple.main-thread', stop reason = EXC_BAD_ACCESS (code=1, address=0x60) * frame #0: 0x0000000100609f1f VtkReparentingProblem`vtkShaderProgram::FindUniform(char const*) + 31 frame #1: 0x00000001006074ab VtkReparentingProblem`vtkShaderProgram::SetUniformi(char const*, int) + 27 frame #2: 0x00000001005b8c28 VtkReparentingProblem`vtkOpenGLPolyDataMapper::SetMapperShaderParameters(vtkOpenGLHelper&, vtkRenderer*, vtkActor*) + 72 frame #3: 0x00000001005b8b1b VtkReparentingProblem`vtkOpenGLPolyDataMapper::UpdateShaders(vtkOpenGLHelper&, vtkRenderer*, vtkActor*) + 1211 frame #4: 0x00000001005bb782 VtkReparentingProblem`vtkOpenGLPolyDataMapper::RenderPieceDraw(vtkRenderer*, vtkActor*) + 818 frame #5: 0x00000001005bbbe3 VtkReparentingProblem`vtkOpenGLPolyDataMapper::RenderPiece(vtkRenderer*, vtkActor*) + 195 frame #6: 0x00000001004ba1fe VtkReparentingProblem`vtkPolyDataMapper::Render(vtkRenderer*, vtkActor*) + 174 frame #7: 0x0000000100561be0 VtkReparentingProblem`vtkOpenGLActor::Render(vtkRenderer*, vtkMapper*) + 144 frame #8: 0x00000001004667c3 VtkReparentingProblem`vtkActor::RenderOpaqueGeometry(vtkViewport*) + 435 frame 0000009: 0x00000001005caa87 VtkReparentingProblem`vtkOpenGLRenderer::UpdateGeometry() + 263 frame #10: 0x00000001005ca945 VtkReparentingProblem`vtkOpenGLRenderer::DeviceRender() + 181 frame 0000011: 0x00000001004cb96c VtkReparentingProblem`vtkRenderer::Render() + 604 frame #12: 0x00000001004d08cc VtkReparentingProblem`vtkRendererCollection::Render() + 92 frame #13: 0x00000001004c5d1a VtkReparentingProblem`vtkRenderWindow::DoStereoRender() + 138 frame #14: 0x00000001004c5098 VtkReparentingProblem`vtkRenderWindow::Render() + 328 frame #15: 0x00000001005c7816 VtkReparentingProblem`vtkOpenGLRenderWindow::Render() + 22 frame #16: 0x00000001004c8f17 VtkReparentingProblem`vtkRenderWindowInteractor::Render() + 39 frame #17: 0x00000001006831dd VtkReparentingProblem`QVTKWidget::paintEvent(QPaintEvent*) + 109 frame #18: 0x0000000100bb73d6 QtWidgets`QWidget::event(QEvent*) + 1958 frame #19: 0x0000000100683079 VtkReparentingProblem`QVTKWidget::event(QEvent*) + 281 frame #20: 0x0000000100b7effc QtWidgets`QApplicationPrivate::notify_helper(QObject*, QEvent*) + 300 frame #21: 0x0000000100b81abb QtWidgets`QApplication::notify(QObject*, QEvent*) + 6187 frame #22: 0x0000000101902932 QtCore`QCoreApplication::notifyInternal(QObject*, QEvent*) + 114 frame #23: 0x0000000100bb2035 QtWidgets`QWidgetPrivate::drawWidget(QPaintDevice*, QRegion const&, QPoint const&, int, QPainter*, QWidgetBackingStore*) + 2997 frame #24: 0x0000000100b8aed0 QtWidgets`QWidgetPrivate::repaint_sys(QRegion const&) + 400 frame #25: 0x0000000100bd4987 QtWidgets`QWidgetWindow::event(QEvent*) + 423 frame #26: 0x0000000100b7effc QtWidgets`QApplicationPrivate::notify_helper(QObject*, QEvent*) + 300 frame #27: 0x0000000100b81abb QtWidgets`QApplication::notify(QObject*, QEvent*) + 6187 frame #28: 0x0000000101902932 QtCore`QCoreApplication::notifyInternal(QObject*, QEvent*) + 114 frame #29: 0x00000001011c4d7a QtGui`QGuiApplicationPrivate::processExposeEvent(QWindowSystemInterfacePrivate::ExposeEvent*) + 314 frame #30: 0x00000001011c08a7 QtGui`QGuiApplicationPrivate::processWindowSystemEvent(QWindowSystemInterfacePrivate::WindowSystemEvent*) + 951 frame #31: 0x00000001011af1cb QtGui`QWindowSystemInterface::sendWindowSystemEvents(QFlags<QEventLoop::ProcessEventsFlag>) + 315 frame #32: 0x0000000104a39f0d libqcocoa.dylib`QCocoaEventDispatcherPrivate::processPostedEvents() + 317 frame #33: 0x0000000104a3a8a8 libqcocoa.dylib`QCocoaEventDispatcherPrivate::postedEventsSourceCallback(void*) + 40 frame #34: 0x00007fff8f9e3a01 CoreFoundation`__CFRUNLOOP_IS_CALLING_OUT_TO_A_SOURCE0_PERFORM_FUNCTION__ + 17 frame #35: 0x00007fff8f9d5b8d CoreFoundation`__CFRunLoopDoSources0 + 269 frame #36: 0x00007fff8f9d51bf CoreFoundation`__CFRunLoopRun + 927 frame #37: 0x00007fff8f9d4bd8 CoreFoundation`CFRunLoopRunSpecific + 296 frame #38: 0x00007fff8b65f56f HIToolbox`RunCurrentEventLoopInMode + 235 frame #39: 0x00007fff8b65f2ea HIToolbox`ReceiveNextEventCommon + 431 frame #40: 0x00007fff8b65f12b HIToolbox`_BlockUntilNextEventMatchingListInModeWithFilter + 71 frame #41: 0x00007fff894cf8ab AppKit`_DPSNextEvent + 978 frame #42: 0x00007fff894cee58 AppKit`-[NSApplication nextEventMatchingMask:untilDate:inMode:dequeue:] + 346 frame #43: 0x00007fff894c4af3 AppKit`-[NSApplication run] + 594 frame #44: 0x0000000104a395e4 libqcocoa.dylib`QCocoaEventDispatcher::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) + 2420 frame #45: 0x00000001018ff9ad QtCore`QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) + 381 frame #46: 0x0000000101902ee7 QtCore`QCoreApplication::exec() + 359 frame #47: 0x0000000100005dab VtkReparentingProblem`main + 59 frame #48: 0x0000000100005d64 VtkReparentingProblem`start + 52 ******************************************************************************************************************************************************** Hope this test case helps Thanks Simon | ||||||||
Tags | No tags attached. | ||||||||
Project | TBD | ||||||||
Type | incorrect functionality | ||||||||
Attached Files | QVTKWidgetReparent.zip [^] (1,992 bytes) 2015-11-18 08:46 | ||||||||
Relationships | |
Relationships |
Notes | |
There are no notes attached to this issue. |
Notes |
Issue History | |||
Date Modified | Username | Field | Change |
2015-11-18 08:46 | Simon ESNEAULT | New Issue | |
2015-11-18 08:46 | Simon ESNEAULT | File Added: QVTKWidgetReparent.zip | |
2015-11-19 11:26 | Ken Martin | Status | backlog => closed |
2015-11-19 11:26 | Ken Martin | Resolution | open => fixed |
Issue History |
Copyright © 2000 - 2018 MantisBT Team |