[Paraview] Rendering failed because... of the OpenGL driver

Paul McIntosh paul.mcintosh at internetscooter.com
Thu Apr 15 07:08:14 EDT 2010


All,

I just thought I'd share this slight improvement to the code to help with
debugging why GPU rendering fails. Maybe this can get into the source?

In ParaView3/VTK/VolumeRendering/vtkOpenGLGPUVolumeRayCastMapper.cxx
vtkOpenGLGPUVolumeRayCastMapper::PreRender, I've added extra code to handle
an unsupported driver and report it to the user.

  // If we can't load the necessary extensions, provide
  // feedback on why it failed.
  if(!this->LoadExtensionsSucceeded)
    {
    const char *gl_vendor=reinterpret_cast<const char
*>(glGetString(GL_VENDOR));
    const char *gl_version=reinterpret_cast<const char
*>(glGetString(GL_VERSION));
    vtkErrorMacro(
      "Rendering failed because the following OpenGL extensions "
      "are required but not supported: " <<
      (this->UnsupportedRequiredExtensions->Stream.str()).c_str() <<
      "\n or the " << gl_vendor << " " << gl_version << " OpenGL
implementation is not supported for GPU rendering"
       );
    return;
    }

In 3.9.0 an error was reported about extensions but it did not indicate what
OpenGL driver it found (e.g. Mesa and ATI libraries are not handled). The
new error output looks like the following: 

ERROR: In
/scratch/pmcintos/ParaView3/VTK/VolumeRendering/vtkOpenGLGPUVolumeRayCastMap
per.cxx, line 4207
vtkOpenGLGPUVolumeRayCastMapper (0x18a06460): Rendering failed because the
following OpenGL extensions are required but not supported: 
 or the Mesa Project 1.4 (2.1 Mesa 7.6.1) OpenGL implementation is not
supported for GPU rendering

Hope this helps someone :)

Cheers,

Paul
---
www.internetscooter.com 



More information about the ParaView mailing list