OpenGL State errors with QVTKOpenGLStereoWidget using VTK master

I have an stereo application utilizing QT and running well on VTK8.1 using QVTKWidget. When switching to VTK8.2, I see a number of VTK errors every time a call is made to vtkRenderer::Render() (see discussion here)

However, in the case of using VTK8.2, when I turn reporting of OpenGL errors off via VTK_REPORT_OPENGL_ERRORS, the application still works as intended.

I’m now attempting to work with the VTK Master branch in order to see what sort of hurdles we may encounter in the eventual update to VTK 9. I was able to run the test code in TestQtWidget.cxx using the QVTKOpenGLStereoWidget without any issues.

When I now try to drop in QVTKOpenGLStereoWidget into my stereo application, I end up with similar but slightly different OpenGL errors - the relevant and unique parts are posted here:

Generic Warning: In D:\engine\VTK\VTK-git\Rendering\OpenGL2\vtkOpenGLState.cxx, line 132
Error in cache state for GL_VIEWPORT

Generic Warning: In D:\engine\VTK\VTK-git\Rendering\OpenGL2\vtkOpenGLState.cxx, line 140
Error in cache state for GL_SCISSOR_BOX

Generic Warning: In D:\engine\VTK\VTK-git\Rendering\OpenGL2\vtkOpenGLState.cxx, line 222
Error in cache state for GL_DRAW_BUFFER got 36065 expected36064

Generic Warning: In D:\engine\VTK\VTK-git\Rendering\OpenGL2\vtkOpenGLState.cxx, line 240
Error in cache state for GL_READ_BUFFER

Generic Warning: In D:\engine\VTK\VTK-git\Rendering\OpenGL2\vtkOpenGLState.cxx, line 265
at stack loc
at vtksys::SystemInformationImplementation::GetProgramStack in d:\engine\vtk\vtk-git\utilities\kwsys\vtksys\systeminformation.cxx line 3948
at vtksys::SystemInformation::GetProgramStack in d:\engine\vtk\vtk-git\utilities\kwsys\vtksys\systeminformation.cxx line 871
at vtkOpenGLState::CheckState in d:\engine\vtk\vtk-git\rendering\opengl2\vtkopenglstate.cxx line 264
at vtkOpenGLState::SetEnumState in d:\engine\vtk\vtk-git\rendering\opengl2\vtkopenglstate.cxx line 894
at vtkOpenGLState::vtkglDisable in d:\engine\vtk\vtk-git\rendering\opengl2\vtkopenglstate.cxx line 1165
at vtkOpenGLProperty::Render in d:\engine\vtk\vtk-git\rendering\opengl2\vtkopenglproperty.cxx line 43
at vtkActor::RenderOpaqueGeometry in d:\engine\vtk\vtk-git\rendering\core\vtkactor.cxx line 207
at vtkRenderer::UpdateOpaquePolygonalGeometry in d:\engine\vtk\vtk-git\rendering\core\vtkrenderer.cxx line 736
at vtkRenderer::DeviceRenderOpaqueGeometry in d:\engine\vtk\vtk-git\rendering\core\vtkrenderer.cxx line 437
at vtkOpenGLRenderer::DeviceRenderOpaqueGeometry in d:\engine\vtk\vtk-git\rendering\opengl2\vtkopenglrenderer.cxx line 461
at vtkOpenGLRenderer::UpdateGeometry in d:\engine\vtk\vtk-git\rendering\opengl2\vtkopenglrenderer.cxx line 356
at vtkOpenGLRenderer::DeviceRender in d:\engine\vtk\vtk-git\rendering\opengl2\vtkopenglrenderer.cxx line 262
at vtkRenderer::Render in d:\engine\vtk\vtk-git\rendering\core\vtkrenderer.cxx line 378
at vtkRendererCollection::Render in d:\engine\vtk\vtk-git\rendering\core\vtkrenderercollection.cxx line 53
at vtkRenderWindow::DoStereoRender in d:\engine\vtk\vtk-git\rendering\core\vtkrenderwindow.cxx line 340
at vtkRenderWindow::Render in d:\engine\vtk\vtk-git\rendering\core\vtkrenderwindow.cxx line 299
at vtkOpenGLRenderWindow::Render in d:\engine\vtk\vtk-git\rendering\opengl2\vtkopenglrenderwindow.cxx line 2002
at vtkGenericOpenGLRenderWindow::Render in d:\engine\vtk\vtk-git\rendering\opengl2\vtkgenericopenglrenderwindow.cxx line 224
at vtkRenderWindowInteractor::Render in d:\engine\vtk\vtk-git\rendering\core\vtkrenderwindowinteractor.cxx line 186
at QVTKRenderWindowAdapter::QVTKInternals::paint in d:\engine\vtk\vtk-git\guisupport\qt\qvtkrenderwindowadapter.cxx line 284
at QVTKRenderWindowAdapter::paint in d:\engine\vtk\vtk-git\guisupport\qt\qvtkrenderwindowadapter.cxx line 681
at QVTKOpenGLWindow::paintGL in d:\engine\vtk\vtk-git\guisupport\qt\qvtkopenglwindow.cxx line 231
at QOpenGLWindow::paintEvent in d:\engine\qt-5.10.0\qtbase\src\gui\kernel\qopenglwindow.cpp line 649
at QPaintDeviceWindowPrivate::paint in d:\engine\qt-5.10.0\qtbase\src\gui\kernel\qpaintdevicewindow_p.h line 96
at QPaintDeviceWindowPrivate::doFlush in d:\engine\qt-5.10.0\qtbase\src\gui\kernel\qpaintdevicewindow_p.h line 104
at QPaintDeviceWindow::exposeEvent in d:\engine\qt-5.10.0\qtbase\src\gui\kernel\qpaintdevicewindow.cpp line 189
at QWindow::event in d:\engine\qt-5.10.0\qtbase\src\gui\kernel\qwindow.cpp line 2303
at QPaintDeviceWindow::event in d:\engine\qt-5.10.0\qtbase\src\gui\kernel\qpaintdevicewindow.cpp line 207
at QVTKOpenGLWindow::event in d:\engine\vtk\vtk-git\guisupport\qt\qvtkopenglwindow.cxx line 287

Generic Warning: In D:\engine\VTK\VTK-git\Rendering\OpenGL2\vtkOpenGLState.cxx, line 222
Error in cache state for GL_DRAW_BUFFER got 36065 expected36064

Generic Warning: In D:\engine\VTK\VTK-git\Rendering\OpenGL2\vtkOpenGLState.cxx, line 240
Error in cache state for GL_READ_BUFFER

Generic Warning: In D:\engine\VTK\VTK-git\Rendering\OpenGL2\vtkOpenGLState.cxx, line 265
at stack loc
at vtksys::SystemInformationImplementation::GetProgramStack in d:\engine\vtk\vtk-git\utilities\kwsys\vtksys\systeminformation.cxx line 3948
at vtksys::SystemInformation::GetProgramStack in d:\engine\vtk\vtk-git\utilities\kwsys\vtksys\systeminformation.cxx line 871
at vtkOpenGLState::CheckState in d:\engine\vtk\vtk-git\rendering\opengl2\vtkopenglstate.cxx line 264
at vtkOpenGLState::vtkglDepthMask in d:\engine\vtk\vtk-git\rendering\opengl2\vtkopenglstate.cxx line 760
at vtkOpenGLActor::Render in d:\engine\vtk\vtk-git\rendering\opengl2\vtkopenglactor.cxx line 68
at vtkActor::RenderOpaqueGeometry in d:\engine\vtk\vtk-git\rendering\core\vtkactor.cxx line 230
at vtkRenderer::UpdateOpaquePolygonalGeometry in d:\engine\vtk\vtk-git\rendering\core\vtkrenderer.cxx line 736
at vtkRenderer::DeviceRenderOpaqueGeometry in d:\engine\vtk\vtk-git\rendering\core\vtkrenderer.cxx line 437
at vtkOpenGLRenderer::DeviceRenderOpaqueGeometry in d:\engine\vtk\vtk-git\rendering\opengl2\vtkopenglrenderer.cxx line 461
at vtkOpenGLRenderer::UpdateGeometry in d:\engine\vtk\vtk-git\rendering\opengl2\vtkopenglrenderer.cxx line 356
at vtkOpenGLRenderer::DeviceRender in d:\engine\vtk\vtk-git\rendering\opengl2\vtkopenglrenderer.cxx line 262
at vtkRenderer::Render in d:\engine\vtk\vtk-git\rendering\core\vtkrenderer.cxx line 378
at vtkRendererCollection::Render in d:\engine\vtk\vtk-git\rendering\core\vtkrenderercollection.cxx line 53
at vtkRenderWindow::DoStereoRender in d:\engine\vtk\vtk-git\rendering\core\vtkrenderwindow.cxx line 340
at vtkRenderWindow::Render in d:\engine\vtk\vtk-git\rendering\core\vtkrenderwindow.cxx line 299
at vtkOpenGLRenderWindow::Render in d:\engine\vtk\vtk-git\rendering\opengl2\vtkopenglrenderwindow.cxx line 2002
at vtkGenericOpenGLRenderWindow::Render in d:\engine\vtk\vtk-git\rendering\opengl2\vtkgenericopenglrenderwindow.cxx line 224
at vtkRenderWindowInteractor::Render in d:\engine\vtk\vtk-git\rendering\core\vtkrenderwindowinteractor.cxx line 186
at QVTKRenderWindowAdapter::QVTKInternals::paint in d:\engine\vtk\vtk-git\guisupport\qt\qvtkrenderwindowadapter.cxx line 284
at QVTKRenderWindowAdapter::paint in d:\engine\vtk\vtk-git\guisupport\qt\qvtkrenderwindowadapter.cxx line 681
at QVTKOpenGLWindow::paintGL in d:\engine\vtk\vtk-git\guisupport\qt\qvtkopenglwindow.cxx line 231
at QOpenGLWindow::paintEvent in d:\engine\qt-5.10.0\qtbase\src\gui\kernel\qopenglwindow.cpp line 649
at QPaintDeviceWindowPrivate::paint in d:\engine\qt-5.10.0\qtbase\src\gui\kernel\qpaintdevicewindow_p.h line 96
at QPaintDeviceWindowPrivate::doFlush in d:\engine\qt-5.10.0\qtbase\src\gui\kernel\qpaintdevicewindow_p.h line 104
at QPaintDeviceWindow::exposeEvent in d:\engine\qt-5.10.0\qtbase\src\gui\kernel\qpaintdevicewindow.cpp line 189
at QWindow::event in d:\engine\qt-5.10.0\qtbase\src\gui\kernel\qwindow.cpp line 2303
at QPaintDeviceWindow::event in d:\engine\qt-5.10.0\qtbase\src\gui\kernel\qpaintdevicewindow.cpp line 207
at QVTKOpenGLWindow::event in d:\engine\vtk\vtk-git\guisupport\qt\qvtkopenglwindow.cxx line 287

Generic Warning: In D:\engine\VTK\VTK-git\Rendering\OpenGL2\vtkOpenGLState.cxx, line 222
Error in cache state for GL_DRAW_BUFFER got 36065 expected36064

Generic Warning: In D:\engine\VTK\VTK-git\Rendering\OpenGL2\vtkOpenGLState.cxx, line 240
Error in cache state for GL_READ_BUFFER

Generic Warning: In D:\engine\VTK\VTK-git\Rendering\OpenGL2\vtkOpenGLState.cxx, line 265
at stack loc
at vtksys::SystemInformationImplementation::GetProgramStack in d:\engine\vtk\vtk-git\utilities\kwsys\vtksys\systeminformation.cxx line 3948
at vtksys::SystemInformation::GetProgramStack in d:\engine\vtk\vtk-git\utilities\kwsys\vtksys\systeminformation.cxx line 871
at vtkOpenGLState::CheckState in d:\engine\vtk\vtk-git\rendering\opengl2\vtkopenglstate.cxx line 264
at vtkOpenGLState::vtkBindFramebuffer in d:\engine\vtk\vtk-git\rendering\opengl2\vtkopenglstate.cxx line 481
at vtkOpenGLFramebufferObject::Bind in d:\engine\vtk\vtk-git\rendering\opengl2\vtkopenglframebufferobject.cxx line 748
at vtkOpenGLRenderWindow::StereoMidpoint in d:\engine\vtk\vtk-git\rendering\opengl2\vtkopenglrenderwindow.cxx line 987
at vtkRenderWindow::DoStereoRender in d:\engine\vtk\vtk-git\rendering\core\vtkrenderwindow.cxx line 343
at vtkRenderWindow::Render in d:\engine\vtk\vtk-git\rendering\core\vtkrenderwindow.cxx line 299
at vtkOpenGLRenderWindow::Render in d:\engine\vtk\vtk-git\rendering\opengl2\vtkopenglrenderwindow.cxx line 2002
at vtkGenericOpenGLRenderWindow::Render in d:\engine\vtk\vtk-git\rendering\opengl2\vtkgenericopenglrenderwindow.cxx line 224
at vtkRenderWindowInteractor::Render in d:\engine\vtk\vtk-git\rendering\core\vtkrenderwindowinteractor.cxx line 186
at QVTKRenderWindowAdapter::QVTKInternals::paint in d:\engine\vtk\vtk-git\guisupport\qt\qvtkrenderwindowadapter.cxx line 284
at QVTKRenderWindowAdapter::paint in d:\engine\vtk\vtk-git\guisupport\qt\qvtkrenderwindowadapter.cxx line 681
at QVTKOpenGLWindow::paintGL in d:\engine\vtk\vtk-git\guisupport\qt\qvtkopenglwindow.cxx line 231
at QOpenGLWindow::paintEvent in d:\engine\qt-5.10.0\qtbase\src\gui\kernel\qopenglwindow.cpp line 649
at QPaintDeviceWindowPrivate::paint in d:\engine\qt-5.10.0\qtbase\src\gui\kernel\qpaintdevicewindow_p.h line 96
at QPaintDeviceWindowPrivate::doFlush in d:\engine\qt-5.10.0\qtbase\src\gui\kernel\qpaintdevicewindow_p.h line 104
at QPaintDeviceWindow::exposeEvent in d:\engine\qt-5.10.0\qtbase\src\gui\kernel\qpaintdevicewindow.cpp line 189
at QWindow::event in d:\engine\qt-5.10.0\qtbase\src\gui\kernel\qwindow.cpp line 2303
at QPaintDeviceWindow::event in d:\engine\qt-5.10.0\qtbase\src\gui\kernel\qpaintdevicewindow.cpp line 207
at QVTKOpenGLWindow::event in d:\engine\vtk\vtk-git\guisupport\qt\qvtkopenglwindow.cxx line 287

Generic Warning: In D:\engine\VTK\VTK-git\Rendering\OpenGL2\vtkOpenGLState.cxx, line 240
Error in cache state for GL_READ_BUFFER

Generic Warning: In D:\engine\VTK\VTK-git\Rendering\OpenGL2\vtkOpenGLState.cxx, line 265
at stack loc
at vtksys::SystemInformationImplementation::GetProgramStack in d:\engine\vtk\vtk-git\utilities\kwsys\vtksys\systeminformation.cxx line 3948
at vtksys::SystemInformation::GetProgramStack in d:\engine\vtk\vtk-git\utilities\kwsys\vtksys\systeminformation.cxx line 871
at vtkOpenGLState::CheckState in d:\engine\vtk\vtk-git\rendering\opengl2\vtkopenglstate.cxx line 264
at vtkOpenGLState::vtkglDrawBuffer in d:\engine\vtk\vtk-git\rendering\opengl2\vtkopenglstate.cxx line 548
at vtkOpenGLRenderWindow::StereoMidpoint in d:\engine\vtk\vtk-git\rendering\opengl2\vtkopenglrenderwindow.cxx line 990
at vtkRenderWindow::DoStereoRender in d:\engine\vtk\vtk-git\rendering\core\vtkrenderwindow.cxx line 343
at vtkRenderWindow::Render in d:\engine\vtk\vtk-git\rendering\core\vtkrenderwindow.cxx line 299
at vtkOpenGLRenderWindow::Render in d:\engine\vtk\vtk-git\rendering\opengl2\vtkopenglrenderwindow.cxx line 2002
at vtkGenericOpenGLRenderWindow::Render in d:\engine\vtk\vtk-git\rendering\opengl2\vtkgenericopenglrenderwindow.cxx line 224
at vtkRenderWindowInteractor::Render in d:\engine\vtk\vtk-git\rendering\core\vtkrenderwindowinteractor.cxx line 186
at QVTKRenderWindowAdapter::QVTKInternals::paint in d:\engine\vtk\vtk-git\guisupport\qt\qvtkrenderwindowadapter.cxx line 284
at QVTKRenderWindowAdapter::paint in d:\engine\vtk\vtk-git\guisupport\qt\qvtkrenderwindowadapter.cxx line 681
at QVTKOpenGLWindow::paintGL in d:\engine\vtk\vtk-git\guisupport\qt\qvtkopenglwindow.cxx line 231
at QOpenGLWindow::paintEvent in d:\engine\qt-5.10.0\qtbase\src\gui\kernel\qopenglwindow.cpp line 649
at QPaintDeviceWindowPrivate::paint in d:\engine\qt-5.10.0\qtbase\src\gui\kernel\qpaintdevicewindow_p.h line 96
at QPaintDeviceWindowPrivate::doFlush in d:\engine\qt-5.10.0\qtbase\src\gui\kernel\qpaintdevicewindow_p.h line 104
at QPaintDeviceWindow::exposeEvent in d:\engine\qt-5.10.0\qtbase\src\gui\kernel\qpaintdevicewindow.cpp line 189
at QWindow::event in d:\engine\qt-5.10.0\qtbase\src\gui\kernel\qwindow.cpp line 2303
at QPaintDeviceWindow::event in d:\engine\qt-5.10.0\qtbase\src\gui\kernel\qpaintdevicewindow.cpp line 207
at QVTKOpenGLWindow::event in d:\engine\vtk\vtk-git\guisupport\qt\qvtkopenglwindow.cxx line 287

Generic Warning: In D:\engine\VTK\VTK-git\Rendering\OpenGL2\vtkOpenGLState.cxx, line 240
Error in cache state for GL_READ_BUFFER

Generic Warning: In D:\engine\VTK\VTK-git\Rendering\OpenGL2\vtkOpenGLState.cxx, line 265
at stack loc
at vtksys::SystemInformationImplementation::GetProgramStack in d:\engine\vtk\vtk-git\utilities\kwsys\vtksys\systeminformation.cxx line 3948
at vtksys::SystemInformation::GetProgramStack in d:\engine\vtk\vtk-git\utilities\kwsys\vtksys\systeminformation.cxx line 871
at vtkOpenGLState::CheckState in d:\engine\vtk\vtk-git\rendering\opengl2\vtkopenglstate.cxx line 264
at vtkOpenGLState::vtkglViewport in d:\engine\vtk\vtk-git\rendering\opengl2\vtkopenglstate.cxx line 853
at vtkOpenGLRenderWindow::StereoMidpoint in d:\engine\vtk\vtk-git\rendering\opengl2\vtkopenglrenderwindow.cxx line 995
at vtkRenderWindow::DoStereoRender in d:\engine\vtk\vtk-git\rendering\core\vtkrenderwindow.cxx line 343
at vtkRenderWindow::Render in d:\engine\vtk\vtk-git\rendering\core\vtkrenderwindow.cxx line 299
at vtkOpenGLRenderWindow::Render in d:\engine\vtk\vtk-git\rendering\opengl2\vtkopenglrenderwindow.cxx line 2002
at vtkGenericOpenGLRenderWindow::Render in d:\engine\vtk\vtk-git\rendering\opengl2\vtkgenericopenglrenderwindow.cxx line 224
at vtkRenderWindowInteractor::Render in d:\engine\vtk\vtk-git\rendering\core\vtkrenderwindowinteractor.cxx line 186
at QVTKRenderWindowAdapter::QVTKInternals::paint in d:\engine\vtk\vtk-git\guisupport\qt\qvtkrenderwindowadapter.cxx line 284
at QVTKRenderWindowAdapter::paint in d:\engine\vtk\vtk-git\guisupport\qt\qvtkrenderwindowadapter.cxx line 681
at QVTKOpenGLWindow::paintGL in d:\engine\vtk\vtk-git\guisupport\qt\qvtkopenglwindow.cxx line 231
at QOpenGLWindow::paintEvent in d:\engine\qt-5.10.0\qtbase\src\gui\kernel\qopenglwindow.cpp line 649
at QPaintDeviceWindowPrivate::paint in d:\engine\qt-5.10.0\qtbase\src\gui\kernel\qpaintdevicewindow_p.h line 96
at QPaintDeviceWindowPrivate::doFlush in d:\engine\qt-5.10.0\qtbase\src\gui\kernel\qpaintdevicewindow_p.h line 104
at QPaintDeviceWindow::exposeEvent in d:\engine\qt-5.10.0\qtbase\src\gui\kernel\qpaintdevicewindow.cpp line 189
at QWindow::event in d:\engine\qt-5.10.0\qtbase\src\gui\kernel\qwindow.cpp line 2303
at QPaintDeviceWindow::event in d:\engine\qt-5.10.0\qtbase\src\gui\kernel\qpaintdevicewindow.cpp line 207
at QVTKOpenGLWindow::event in d:\engine\vtk\vtk-git\guisupport\qt\qvtkopenglwindow.cxx line 287

Generic Warning: In D:\engine\VTK\VTK-git\Rendering\OpenGL2\vtkOpenGLState.cxx, line 240
Error in cache state for GL_READ_BUFFER

Generic Warning: In D:\engine\VTK\VTK-git\Rendering\OpenGL2\vtkOpenGLState.cxx, line 265
at stack loc
at vtksys::SystemInformationImplementation::GetProgramStack in d:\engine\vtk\vtk-git\utilities\kwsys\vtksys\systeminformation.cxx line 3948
at vtksys::SystemInformation::GetProgramStack in d:\engine\vtk\vtk-git\utilities\kwsys\vtksys\systeminformation.cxx line 871
at vtkOpenGLState::CheckState in d:\engine\vtk\vtk-git\rendering\opengl2\vtkopenglstate.cxx line 264
at vtkOpenGLState::vtkglScissor in d:\engine\vtk\vtk-git\rendering\opengl2\vtkopenglstate.cxx line 877
at vtkOpenGLRenderWindow::StereoMidpoint in d:\engine\vtk\vtk-git\rendering\opengl2\vtkopenglrenderwindow.cxx line 996
at vtkRenderWindow::DoStereoRender in d:\engine\vtk\vtk-git\rendering\core\vtkrenderwindow.cxx line 343
at vtkRenderWindow::Render in d:\engine\vtk\vtk-git\rendering\core\vtkrenderwindow.cxx line 299
at vtkOpenGLRenderWindow::Render in d:\engine\vtk\vtk-git\rendering\opengl2\vtkopenglrenderwindow.cxx line 2002
at vtkGenericOpenGLRenderWindow::Render in d:\engine\vtk\vtk-git\rendering\opengl2\vtkgenericopenglrenderwindow.cxx line 224
at vtkRenderWindowInteractor::Render in d:\engine\vtk\vtk-git\rendering\core\vtkrenderwindowinteractor.cxx line 186
at QVTKRenderWindowAdapter::QVTKInternals::paint in d:\engine\vtk\vtk-git\guisupport\qt\qvtkrenderwindowadapter.cxx line 284
at QVTKRenderWindowAdapter::paint in d:\engine\vtk\vtk-git\guisupport\qt\qvtkrenderwindowadapter.cxx line 681
at QVTKOpenGLWindow::paintGL in d:\engine\vtk\vtk-git\guisupport\qt\qvtkopenglwindow.cxx line 231
at QOpenGLWindow::paintEvent in d:\engine\qt-5.10.0\qtbase\src\gui\kernel\qopenglwindow.cpp line 649
at QPaintDeviceWindowPrivate::paint in d:\engine\qt-5.10.0\qtbase\src\gui\kernel\qpaintdevicewindow_p.h line 96
at QPaintDeviceWindowPrivate::doFlush in d:\engine\qt-5.10.0\qtbase\src\gui\kernel\qpaintdevicewindow_p.h line 104
at QPaintDeviceWindow::exposeEvent in d:\engine\qt-5.10.0\qtbase\src\gui\kernel\qpaintdevicewindow.cpp line 189
at QWindow::event in d:\engine\qt-5.10.0\qtbase\src\gui\kernel\qwindow.cpp line 2303
at QPaintDeviceWindow::event in d:\engine\qt-5.10.0\qtbase\src\gui\kernel\qpaintdevicewindow.cpp line 207
at QVTKOpenGLWindow::event in d:\engine\vtk\vtk-git\guisupport\qt\qvtkopenglwindow.cxx line 287

Generic Warning: In D:\engine\VTK\VTK-git\Rendering\OpenGL2\vtkOpenGLState.cxx, line 222
Error in cache state for GL_DRAW_BUFFER got 36067 expected36064

Generic Warning: In D:\engine\VTK\VTK-git\Rendering\OpenGL2\vtkOpenGLState.cxx, line 240
Error in cache state for GL_READ_BUFFER

Generic Warning: In D:\engine\VTK\VTK-git\Rendering\OpenGL2\vtkOpenGLState.cxx, line 265
at stack loc
at vtksys::SystemInformationImplementation::GetProgramStack in d:\engine\vtk\vtk-git\utilities\kwsys\vtksys\systeminformation.cxx line 3948
at vtksys::SystemInformation::GetProgramStack in d:\engine\vtk\vtk-git\utilities\kwsys\vtksys\systeminformation.cxx line 871
at vtkOpenGLState::CheckState in d:\engine\vtk\vtk-git\rendering\opengl2\vtkopenglstate.cxx line 264
at vtkOpenGLState::SetEnumState in d:\engine\vtk\vtk-git\rendering\opengl2\vtkopenglstate.cxx line 894
at vtkOpenGLState::vtkglDisable in d:\engine\vtk\vtk-git\rendering\opengl2\vtkopenglstate.cxx line 1165
at vtkOpenGLProperty::Render in d:\engine\vtk\vtk-git\rendering\opengl2\vtkopenglproperty.cxx line 43
at vtkActor::RenderOpaqueGeometry in d:\engine\vtk\vtk-git\rendering\core\vtkactor.cxx line 207
at vtkRenderer::UpdateOpaquePolygonalGeometry in d:\engine\vtk\vtk-git\rendering\core\vtkrenderer.cxx line 736
at vtkRenderer::DeviceRenderOpaqueGeometry in d:\engine\vtk\vtk-git\rendering\core\vtkrenderer.cxx line 437
at vtkOpenGLRenderer::DeviceRenderOpaqueGeometry in d:\engine\vtk\vtk-git\rendering\opengl2\vtkopenglrenderer.cxx line 461
at vtkOpenGLRenderer::UpdateGeometry in d:\engine\vtk\vtk-git\rendering\opengl2\vtkopenglrenderer.cxx line 356
at vtkOpenGLRenderer::DeviceRender in d:\engine\vtk\vtk-git\rendering\opengl2\vtkopenglrenderer.cxx line 262
at vtkRenderer::Render in d:\engine\vtk\vtk-git\rendering\core\vtkrenderer.cxx line 378
at vtkRendererCollection::Render in d:\engine\vtk\vtk-git\rendering\core\vtkrenderercollection.cxx line 53
at vtkRenderWindow::DoStereoRender in d:\engine\vtk\vtk-git\rendering\core\vtkrenderwindow.cxx line 364
at vtkRenderWindow::Render in d:\engine\vtk\vtk-git\rendering\core\vtkrenderwindow.cxx line 299
at vtkOpenGLRenderWindow::Render in d:\engine\vtk\vtk-git\rendering\opengl2\vtkopenglrenderwindow.cxx line 2002
at vtkGenericOpenGLRenderWindow::Render in d:\engine\vtk\vtk-git\rendering\opengl2\vtkgenericopenglrenderwindow.cxx line 224
at vtkRenderWindowInteractor::Render in d:\engine\vtk\vtk-git\rendering\core\vtkrenderwindowinteractor.cxx line 186
at QVTKRenderWindowAdapter::QVTKInternals::paint in d:\engine\vtk\vtk-git\guisupport\qt\qvtkrenderwindowadapter.cxx line 284
at QVTKRenderWindowAdapter::paint in d:\engine\vtk\vtk-git\guisupport\qt\qvtkrenderwindowadapter.cxx line 681
at QVTKOpenGLWindow::paintGL in d:\engine\vtk\vtk-git\guisupport\qt\qvtkopenglwindow.cxx line 231
at QOpenGLWindow::paintEvent in d:\engine\qt-5.10.0\qtbase\src\gui\kernel\qopenglwindow.cpp line 649
at QPaintDeviceWindowPrivate::paint in d:\engine\qt-5.10.0\qtbase\src\gui\kernel\qpaintdevicewindow_p.h line 96
at QPaintDeviceWindowPrivate::doFlush in d:\engine\qt-5.10.0\qtbase\src\gui\kernel\qpaintdevicewindow_p.h line 104
at QPaintDeviceWindow::exposeEvent in d:\engine\qt-5.10.0\qtbase\src\gui\kernel\qpaintdevicewindow.cpp line 189
at QWindow::event in d:\engine\qt-5.10.0\qtbase\src\gui\kernel\qwindow.cpp line 2303
at QPaintDeviceWindow::event in d:\engine\qt-5.10.0\qtbase\src\gui\kernel\qpaintdevicewindow.cpp line 207
at QVTKOpenGLWindow::event in d:\engine\vtk\vtk-git\guisupport\qt\qvtkopenglwindow.cxx line 287

When I turn the error reporting off, my application does not run smoothly anymore - the viewport appears to be flashing on/off, and only one of the stereo buffers is rendered.

Any tips or gotchas that I may be missing? For example, I noticed that in the testing code, for QVTKOpenGLStereoWidget there is no longer a need to call QSurfaceFormat::setDefaultFormat .

Another note: when I make a direct call in my application to
glDrawBuffer(vtkOpenGLRenderWindow->GetBackRightBuffer())
to test if things are working, I receive a GL error with type GL_INVALID_OPERATION

I just noticed that when running the test code in TestQtWidget.cxx with QVTKOpenGLStereoWidget, there output doesn’t actually appear in stereo, even after adding the following options to the stereo window:

vtkNew<vtkGenericOpenGLRenderWindow> window;
window->SetStereoCapableWindow(1);
window->SetStereoRender(1);
window->SetStereoTypeToCrystalEyes();

When I run the QVTKWidget test code from VTK 8.1, the output window is displayed in stereo. Is there any help or information you can provide to help me get the test code running in stereo for the VTK master branch?