MantisBT - ParaView
View Issue Details
0013947ParaView(No Category)public2013-03-16 18:522013-10-01 13:34
Burlen 
Utkarsh Ayachit 
highminorhave not tried
closedfixed 
git-master 
4.04.1 
Kitware
incorrect functionality
0013947: color scale editor issues on mac (Error: GL_INVALID_FRAMEBUFFER_OPERATION)
on Mac OSX 10.8.2 with a recent pull from master I'm encountering OpenGL errors from the pqColorScale editor dialog.

To reproduce: start paraview (and attach to ParaView using Apple's OpenGL Profiler with "break on open gl errors" set), create a wavelet source, slice, color by RTData, open the color scale editor. At this point in the terminal:

2013-03-16 14:39:04.866 paraview[28716:707] invalid drawable
2013-03-16 14:39:04.867 paraview[28716:707] invalid drawable


The profiler shows the following back trace:

glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT)
Error: GL_INVALID_FRAMEBUFFER_OPERATION
Context: 0x7fb7f998dc00
Virtual Screen: 0/2
kCGLCPCurrentRendererID: 16915206 (0x01021b06)
GL_RENDERER: AMD Radeon HD 6750M OpenGL Engine
GL_VENDOR: ATI Technologies Inc.
GL_VERSION: 2.1 ATI-1.0.29
kCGLCPGPUFragmentProcessing: GL_TRUE
kCGLCPGPUVertexProcessing: GL_TRUE

Function call stack:
0: 0x10f4ec40c in vtkOpenGLRenderer::Clear() at vtkOpenGLRenderer.cxx: 1080
1: 0x10f472cc8 in vtkOpenGLCamera::Render(vtkRenderer*) at vtkOpenGLCamera.cxx: 159
2: 0x10f8a172d in vtkRenderer::UpdateCamera() at vtkRenderer.cxx: 402
3: 0x10f4e5da7 in vtkOpenGLRenderer::DeviceRender() at vtkOpenGLRenderer.cxx: 250
4: 0x10f8a0f9e in vtkRenderer::Render() at vtkRenderer.cxx: 301
5: 0x10f89f19b in vtkRendererCollection::Render() at vtkRendererCollection.cxx: 53
6: 0x10f8bb398 in vtkRenderWindow::DoStereoRender() at vtkRenderWindow.cxx: 773
7: 0x10f8bb29a in vtkRenderWindow::DoFDRender() at vtkRenderWindow.cxx: 739
8: 0x10f8bac1d in vtkRenderWindow::DoAARender() at vtkRenderWindow.cxx: 618
9: 0x10f8ba1c5 in vtkRenderWindow::Render() at vtkRenderWindow.cxx: 433
10: 0x104e477d8 in pqTransferFunctionChartViewWidget::renderView() at pqTransferFunctionChartViewWidget.cxx: 837
11: 0x104e4777f in pqTransferFunctionChartViewWidget::resetView() at pqTransferFunctionChartViewWidget.cxx: 832
12: 0x104be17a3 in pqColorScaleEditor::updateScalarRange(double, double) at pqColorScaleEditor.cxx: 2253
13: 0x104bdd401 in pqColorScaleEditor::initColorScale() at pqColorScaleEditor.cxx: 2099
14: 0x104bdb153 in pqColorScaleEditor::setRepresentation(pqDataRepresentation*) at pqColorScaleEditor.cxx: 574
15: 0x104977cef in pqEditColorMapReaction::editColorMap() at pqEditColorMapReaction.cxx: 130
16: 0x1049cba31 in pqEditColorMapReaction::onTriggered() at pqEditColorMapReaction.h: 59
17: 0x1049d0880 in pqReaction::qt_static_metacall(QObject*, QMetaObject::Call, int, void**) at moc_pqReaction.cxx: 57
18: 0x11383e1ee in QMetaObject::activate(QObject*, QMetaObject const*, int, void**) in <QtCore>
19: 0x1128da431 in QAction::triggered(bool) in <QtGui>
20: 0x1128db7c4 in QAction::activate(QAction::ActionEvent) in <QtGui>
21: 0x112c857b9 in QAbstractButtonPrivate::click() in <QtGui>
22: 0x112c85a51 in QAbstractButton::mouseReleaseEvent(QMouseEvent*) in <QtGui>
23: 0x112d53cd2 in QToolButton::mouseReleaseEvent(QMouseEvent*) in <QtGui>
24: 0x11293d355 in QWidget::event(QEvent*) in <QtGui>
25: 0x112c84848 in QAbstractButton::event(QEvent*) in <QtGui>
26: 0x112d560df in QToolButton::event(QEvent*) in <QtGui>
27: 0x1128e09ed in QApplicationPrivate::notify_helper(QObject*, QEvent*) in <QtGui>
28: 0x1128e7590 in QApplication::notify(QObject*, QEvent*) in <QtGui>
29: 0x11382620c in QCoreApplication::notifyInternal(QObject*, QEvent*) in <QtCore>
30: 0x1128e4fdd in QApplicationPrivate::sendMouseEvent(QWidget*, QMouseEvent*, QWidget*, QWidget*, QWidget**, QPointer<QWidget>&, bool) in <QtGui>
31: 0x112894acb in qt_mac_handleMouseEvent(NSEvent*, QEvent::Type, Qt::MouseButton, QWidget*, bool) in <QtGui>
32: 0x7fff89e966d6 in -[NSWindow sendEvent:] in <AppKit>
33: 0x112889bb7 in -[QCocoaWindow sendEvent:] in <QtGui>
34: 0x7fff89e92744 in -[NSApplication sendEvent:] in <AppKit>
35: 0x11288ebf4 in -[QNSApplication sendEvent:] in <QtGui>
36: 0x7fff89da82fa in -[NSApplication run] in <AppKit>
37: 0x112899a80 in QEventDispatcherMac::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) in <QtGui>
38: 0x113825114 in QEventLoop::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) in <QtCore>
39: 0x1138254c4 in QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) in <QtCore>
40: 0x113827bac in QCoreApplication::exec() in <QtCore>
41: 0x1044c0625 in main at paraview_main.cxx: 81
42: 0x7fff8c5c87e1 in start in <libdyld.dylib>

Any idea? It's causing me problems because it's reported when I check for gl errors in my code. I'd really like to leave the error checking enabled.
No tags attached.
Issue History
2013-03-16 18:52BurlenNew Issue
2013-04-03 12:17BurlenNote Added: 0030508
2013-04-10 20:12BurlenNote Added: 0030552
2013-04-10 22:09BurlenNote Deleted: 0030552
2013-04-10 22:10BurlenNote Edited: 0030508bug_revision_view_page.php?bugnote_id=30508#r577
2013-04-16 10:55Utkarsh AyachitAssigned To => Utkarsh Ayachit
2013-04-16 10:56Utkarsh AyachitProjectTBD => Kitware
2013-04-16 10:56Utkarsh AyachitTarget Version => 4.0
2013-04-16 10:56Utkarsh AyachitPrioritynormal => high
2013-04-16 11:11BurlenNote Added: 0030573
2013-10-01 13:34BurlenNote Added: 0031672
2013-10-01 13:34BurlenStatusbacklog => closed
2013-10-01 13:34BurlenResolutionopen => fixed
2013-10-01 13:34BurlenFixed in Version => 4.1

Notes
(0030508)
Burlen   
2013-04-03 12:17   
(edited on: 2013-04-10 22:10)
in pqTransferFunctionChartViewWidget::renderView() at pqTransferFunctionChartViewWidget.cxx: 837

a hack to detect the invalid drawable and abort the render preventing the subsequent cascade of OpenGL errors as follows:

vtkRenderWindow *renWin = this->Internal->ChartView->GetRenderWindow();
renWin->MakeCurrent();
if (!renWin->IsCurrent()) return;

this only works inside qt code.

(0030573)
Burlen   
2013-04-16 11:11   
I have fixes for this and related set of bugs:

http://review.source.kitware.com/#/c/10895/1/Qt/Components/pqTransferFunctionChartViewWidget.cxx [^]

http://review.source.kitware.com/#/c/10895/1/Qt/Core/pqMultiSliceAxisWidget.cxx [^]

http://review.source.kitware.com/#/c/10895/1/ParaViewCore/ClientServerCore/Rendering/vtkPVRenderView.cxx [^]
(0031672)
Burlen   
2013-10-01 13:34   
this was fixed by checking for "valid drawable" before rendering