I have an stereo application utilizing QT and running well on VTK8.1 using QVTKWidget. However, when switching to VTK8.2, I see a number of VTK errors every time a call is made to vtkRenderer::Render()
I see the same issue when updating the QVTKWidget to QVTKOpenGLWidget. I followed the steps also from the thread here, where the user seemed to have a similar issue: OpenGL state errors with QVTKOpenGLWidget and vtk8.2
It seems that the QVTKOpenGLWindow::initializeGL function is never called on QVTKOpenGLWidget’s internal window.
I’m able to run the test case from TestQVTKOpenGLWidget.cxx without any issues, so I’m wondering if perhaps this is an issue with my stereo rendering setup?
Generic Warning: In d:\engine\vtk\vtk-8.2.0\rendering\opengl2\vtkopenglstate.cxx, line 162
Error in cache state for GL_VIEWPORT
Generic Warning: In d:\engine\vtk\vtk-8.2.0\rendering\opengl2\vtkopenglstate.cxx, line 173
Error in cache state for GL_SCISSOR_BOX
Generic Warning: In d:\engine\vtk\vtk-8.2.0\rendering\opengl2\vtkopenglstate.cxx, line 229
at stack loc
at vtkOpenGLState::CheckState in d:\engine\vtk\vtk-8.2.0\rendering\opengl2\vtkopenglstate.cxx line 228
at vtkOpenGLState::SetEnumState in d:\engine\vtk\vtk-8.2.0\rendering\opengl2\vtkopenglstate.cxx line 552
at vtkOpenGLState::vtkglDisable in d:\engine\vtk\vtk-8.2.0\rendering\opengl2\vtkopenglstate.cxx line 821
at vtkOpenGLProperty::Render in d:\engine\vtk\vtk-8.2.0\rendering\opengl2\vtkopenglproperty.cxx line 45
at vtkActor::RenderOpaqueGeometry in d:\engine\vtk\vtk-8.2.0\rendering\core\vtkactor.cxx line 172
at vtkRenderer::UpdateOpaquePolygonalGeometry in d:\engine\vtk\vtk-8.2.0\rendering\core\vtkrenderer.cxx line 742
at vtkRenderer::DeviceRenderOpaqueGeometry in d:\engine\vtk\vtk-8.2.0\rendering\core\vtkrenderer.cxx line 432
at vtkOpenGLRenderer::DeviceRenderOpaqueGeometry in d:\engine\vtk\vtk-8.2.0\rendering\opengl2\vtkopenglrenderer.cxx line 435
at vtkOpenGLRenderer::UpdateGeometry in d:\engine\vtk\vtk-8.2.0\rendering\opengl2\vtkopenglrenderer.cxx line 323
at vtkOpenGLRenderer::DeviceRender in d:\engine\vtk\vtk-8.2.0\rendering\opengl2\vtkopenglrenderer.cxx line 236
at vtkRenderer::Render in d:\engine\vtk\vtk-8.2.0\rendering\core\vtkrenderer.cxx line 372
at vtkRendererCollection::Render in d:\engine\vtk\vtk-8.2.0\rendering\core\vtkrenderercollection.cxx line 53
at vtkRenderWindow::DoStereoRender in d:\engine\vtk\vtk-8.2.0\rendering\core\vtkrenderwindow.cxx line 358
at vtkRenderWindow::Render in d:\engine\vtk\vtk-8.2.0\rendering\core\vtkrenderwindow.cxx line 292
at vtkOpenGLRenderWindow::Render in d:\engine\vtk\vtk-8.2.0\rendering\opengl2\vtkopenglrenderwindow.cxx line 2565
eneric Warning: In d:\engine\vtk\vtk-8.2.0\rendering\opengl2\vtkopenglstate.cxx, line 162
Error in cache state for GL_VIEWPORT
Generic Warning: In d:\engine\vtk\vtk-8.2.0\rendering\opengl2\vtkopenglstate.cxx, line 173
Error in cache state for GL_SCISSOR_BOX
Generic Warning: In d:\engine\vtk\vtk-8.2.0\rendering\opengl2\vtkopenglstate.cxx, line 229
at stack loc
at vtkOpenGLState::CheckState in d:\engine\vtk\vtk-8.2.0\rendering\opengl2\vtkopenglstate.cxx line 228
at vtkOpenGLState::vtkglDepthMask in d:\engine\vtk\vtk-8.2.0\rendering\opengl2\vtkopenglstate.cxx line 424
at vtkOpenGLState::ScopedValue<unsigned char>::~ScopedValue<unsigned char> in d:\engine\vtk\vtk-8.2.0\rendering\opengl2\vtkopenglstate.h line 150
SymGetLineFromAddr64 returned error code 487
at vtkOpenGLState::ScopedglDepthMask::~ScopedglDepthMask
at vtkOpenGLActor::Render in d:\engine\vtk\vtk-8.2.0\rendering\opengl2\vtkopenglactor.cxx line 113
at vtkActor::RenderOpaqueGeometry in d:\engine\vtk\vtk-8.2.0\rendering\core\vtkactor.cxx line 196
at vtkRenderer::UpdateOpaquePolygonalGeometry in d:\engine\vtk\vtk-8.2.0\rendering\core\vtkrenderer.cxx line 742
at vtkRenderer::DeviceRenderOpaqueGeometry in d:\engine\vtk\vtk-8.2.0\rendering\core\vtkrenderer.cxx line 432
at vtkOpenGLRenderer::DeviceRenderOpaqueGeometry in d:\engine\vtk\vtk-8.2.0\rendering\opengl2\vtkopenglrenderer.cxx line 435
at vtkOpenGLRenderer::UpdateGeometry in d:\engine\vtk\vtk-8.2.0\rendering\opengl2\vtkopenglrenderer.cxx line 323
at vtkOpenGLRenderer::DeviceRender in d:\engine\vtk\vtk-8.2.0\rendering\opengl2\vtkopenglrenderer.cxx line 236
at vtkRenderer::Render in d:\engine\vtk\vtk-8.2.0\rendering\core\vtkrenderer.cxx line 372
at vtkRendererCollection::Render in d:\engine\vtk\vtk-8.2.0\rendering\core\vtkrenderercollection.cxx line 53
at vtkRenderWindow::DoStereoRender in d:\engine\vtk\vtk-8.2.0\rendering\core\vtkrenderwindow.cxx line 358
at vtkRenderWindow::Render in d:\engine\vtk\vtk-8.2.0\rendering\core\vtkrenderwindow.cxx line 292
at vtkOpenGLRenderWindow::Render in d:\engine\vtk\vtk-8.2.0\rendering\opengl2\vtkopenglrenderwindow.cxx line 2565
Generic Warning: In d:\engine\vtk\vtk-8.2.0\rendering\opengl2\vtkopenglstate.cxx, line 229
at stack loc
at vtkOpenGLState::CheckState in d:\engine\vtk\vtk-8.2.0\rendering\opengl2\vtkopenglstate.cxx line 228
at vtkOpenGLState::vtkglDepthMask in d:\engine\vtk\vtk-8.2.0\rendering\opengl2\vtkopenglstate.cxx line 424
at vtkOpenGLActor::Render in d:\engine\vtk\vtk-8.2.0\rendering\opengl2\vtkopenglactor.cxx line 69
at vtkActor::RenderOpaqueGeometry in d:\engine\vtk\vtk-8.2.0\rendering\core\vtkactor.cxx line 196
at vtkRenderer::UpdateOpaquePolygonalGeometry in d:\engine\vtk\vtk-8.2.0\rendering\core\vtkrenderer.cxx line 742
at vtkRenderer::DeviceRenderOpaqueGeometry in d:\engine\vtk\vtk-8.2.0\rendering\core\vtkrenderer.cxx line 432
at vtkOpenGLRenderer::DeviceRenderOpaqueGeometry in d:\engine\vtk\vtk-8.2.0\rendering\opengl2\vtkopenglrenderer.cxx line 435
at vtkOpenGLRenderer::UpdateGeometry in d:\engine\vtk\vtk-8.2.0\rendering\opengl2\vtkopenglrenderer.cxx line 323
at vtkOpenGLRenderer::DeviceRender in d:\engine\vtk\vtk-8.2.0\rendering\opengl2\vtkopenglrenderer.cxx line 236
at vtkRenderer::Render in d:\engine\vtk\vtk-8.2.0\rendering\core\vtkrenderer.cxx line 372
at vtkRendererCollection::Render in d:\engine\vtk\vtk-8.2.0\rendering\core\vtkrenderercollection.cxx line 53
at vtkRenderWindow::DoStereoRender in d:\engine\vtk\vtk-8.2.0\rendering\core\vtkrenderwindow.cxx line 358
at vtkRenderWindow::Render in d:\engine\vtk\vtk-8.2.0\rendering\core\vtkrenderwindow.cxx line 292
at vtkOpenGLRenderWindow::Render in d:\engine\vtk\vtk-8.2.0\rendering\opengl2\vtkopenglrenderwindow.cxx line 2565
Generic Warning: In d:\engine\vtk\vtk-8.2.0\rendering\opengl2\vtkopenglstate.cxx, line 162
Error in cache state for GL_VIEWPORT
Generic Warning: In d:\engine\vtk\vtk-8.2.0\rendering\opengl2\vtkopenglstate.cxx, line 173
Error in cache state for GL_SCISSOR_BOX
Generic Warning: In d:\engine\vtk\vtk-8.2.0\rendering\opengl2\vtkopenglstate.cxx, line 229
at stack loc
at vtkOpenGLState::CheckState in d:\engine\vtk\vtk-8.2.0\rendering\opengl2\vtkopenglstate.cxx line 228
at vtkOpenGLState::vtkglClearColor in d:\engine\vtk\vtk-8.2.0\rendering\opengl2\vtkopenglstate.cxx line 376
at vtkOpenGLRenderer::Clear in d:\engine\vtk\vtk-8.2.0\rendering\opengl2\vtkopenglrenderer.cxx line 567
at epxCameraOpenGL2::Render in d:\code\dev-update3rdparty\source\epxrendering\epxcameraopengl2.cpp line 97
at vtkRenderer::UpdateCamera in d:\engine\vtk\vtk-8.2.0\rendering\core\vtkrenderer.cxx line 482
at vtkOpenGLRenderer::DeviceRender in d:\engine\vtk\vtk-8.2.0\rendering\opengl2\vtkopenglrenderer.cxx line 232
at vtkRenderer::Render in d:\engine\vtk\vtk-8.2.0\rendering\core\vtkrenderer.cxx line 372
at vtkRendererCollection::Render in d:\engine\vtk\vtk-8.2.0\rendering\core\vtkrenderercollection.cxx line 53
at vtkRenderWindow::DoStereoRender in d:\engine\vtk\vtk-8.2.0\rendering\core\vtkrenderwindow.cxx line 333
at vtkRenderWindow::Render in d:\engine\vtk\vtk-8.2.0\rendering\core\vtkrenderwindow.cxx line 292
at vtkOpenGLRenderWindow::Render in d:\engine\vtk\vtk-8.2.0\rendering\opengl2\vtkopenglrenderwindow.cxx line 2565
Generic Warning: In d:\engine\vtk\vtk-8.2.0\rendering\opengl2\vtkopenglstate.cxx, line 162
Error in cache state for GL_VIEWPORT
Generic Warning: In d:\engine\vtk\vtk-8.2.0\rendering\opengl2\vtkopenglstate.cxx, line 173
Error in cache state for GL_SCISSOR_BOX
Generic Warning: In d:\engine\vtk\vtk-8.2.0\rendering\opengl2\vtkopenglstate.cxx, line 229
at stack loc
at vtkOpenGLState::CheckState in d:\engine\vtk\vtk-8.2.0\rendering\opengl2\vtkopenglstate.cxx line 228
at vtkOpenGLState::vtkglClearDepth in d:\engine\vtk\vtk-8.2.0\rendering\opengl2\vtkopenglstate.cxx line 394
at vtkOpenGLRenderer::Clear in d:\engine\vtk\vtk-8.2.0\rendering\opengl2\vtkopenglrenderer.cxx line 573
at epxCameraOpenGL2::Render in d:\code\dev-update3rdparty\source\epxrendering\epxcameraopengl2.cpp line 97
at vtkRenderer::UpdateCamera in d:\engine\vtk\vtk-8.2.0\rendering\core\vtkrenderer.cxx line 482
at vtkOpenGLRenderer::DeviceRender in d:\engine\vtk\vtk-8.2.0\rendering\opengl2\vtkopenglrenderer.cxx line 232
at vtkRenderer::Render in d:\engine\vtk\vtk-8.2.0\rendering\core\vtkrenderer.cxx line 372
at vtkRendererCollection::Render in d:\engine\vtk\vtk-8.2.0\rendering\core\vtkrenderercollection.cxx line 53
at vtkRenderWindow::DoStereoRender in d:\engine\vtk\vtk-8.2.0\rendering\core\vtkrenderwindow.cxx line 333
at vtkRenderWindow::Render in d:\engine\vtk\vtk-8.2.0\rendering\core\vtkrenderwindow.cxx line 292
at vtkOpenGLRenderWindow::Render in d:\engine\vtk\vtk-8.2.0\rendering\opengl2\vtkopenglrenderwindow.cxx line 2565
Another note - these errors don’t appear when in a release build of my application. I’ve enabled both VTK_REPORT_OPENGL_ERRORS and VTK_REPORT_OPENGL_ERRORS_IN_RELEASE_BUILDS
Those warnings can be ignored if your application is working OK. You can turn them off by undefining VTK_REPORT_OPENGL_ERRORS (in vtkOpenGLState.cxx) There have been massive changes and fixes in the Qt and OpenGL classes since 8.2 so I hesitate to dig into the old code too much with 9.0 coming out. Testing against master would be interesting as we tend not to have a lot of crystal eyes testing.