We have ParaView-v6.0.0-RC1 compiled on a Grace Hopper cluster with the standard cmake options -DVTK_OPENGL_HAS_EGL:BOOL=ON -DVTK_USE_X:BOOL=OFF
According to the release notes, the variable VTK_DEFAULT_OPENGL_WINDOW can be used to force a specific backend
We set it to vtkEGLRenderWindow, and expects pvbatch to report the same output which we have with version v5.13 also compiled with the same options and the same compiler. Our baseline (v5.13) reports:
Moreover, pvbatch -m paraview.info printed “OpenGL Window Backend : OSMesa” so this is unlikely. In short, it used vtkOSOpenGLRenderWindow after realizing that vtkEGLRenderWindow failed to initialize.
Okay. It should atleast report some warnings if vtkEGLRenderWindow fails to find a device.
I expected to see atleast one of these warning messages:
from vtkEGLRenderWindow: "Getting the number of devices (graphics cards) on a system require "
“EGL_EXT_device_base, EGL_EXT_platform_device and EGL_EXT_platform_base extensions”
from vtkEGLRenderWindow: “EGL device index: 0 could not be initialized. Trying other devices…”
from vtkEGLRenderWindow: “Could not initialize a device. Exiting…”
from vtkEGLRenderWindow: "Only EGL 1.4 and greater allows OpenGL as client API. "
“See eglBindAPI for more information.”
from vtkOpenGLRenderWindow: “Failed to initialize OpenGL functions!”
I’m surprised it doesn’t report a single warning besides that GL_MAX_TESS_GEN_LEVEL. This could only mean that vtkEGLRenderWindow was not compiled at all?
What are the contents of $buildDir/VTK/Rendering/OpenGL2/vtkRenderingOpenGLConfigure.h? This file also exists in the install directory. Does it have a #define VTK_OPENGL_HAS_EGL? Is there a vtkEGLRenderWindow.cxx.o object in your build dir?
more vtkRenderingOpenGLConfigure.h
// SPDX-FileCopyrightText: Copyright (c) Ken Martin, Will Schroeder, Bill Lorensen
// SPDX-License-Identifier: BSD-3-Clause
/--------------------------------------------------------------------------/
/* Setup VTK based on platform features and configuration. */
/* OGLR /
/ OGLR is for GLX. It can be on Unix, Mac or Windows */ #if ((defined(VTK_USE_OPENGL_LIBRARY) && defined(VTK_USE_X) &&
!defined(_WIN32)) ||
(defined(VTK_USE_X) && defined(_WIN32))) &&
!defined(VTK_USE_COCOA)
=====================================================
btw, I am not sure your paraview.info can be trusted at 100%. Here is why:
I did not enable MPI:
grep PARAVIEW_USE_MPI CMakeCache.txt
PARAVIEW_USE_MPI:BOOL=OFF
Yet, the paraview.info module reports “MPI Enabled : True” (see above)
So the warnings should appear even on release builds. The reason I asked if it is a release build is because it’s easier to debug with print statements instead of stepping through in a debugger. Have you applied the patch I shared and rebuilt? Does it print the sentences in vtkLog from the patch file?
I am not getting there. I put a breakpoint in vtkOpenGLMessageHandler and this is how I got there:
199 std::string messageType;
Missing separate debuginfos, use: zypper install Mesa-libglapi0-debuginfo-22.3.5-150500.75.2.aarch64 libOSMesa8-debuginfo-22.3.5-150500.75.2.aarch64
(gdb) where #0 vtkOpenGLMessageHandler (source=33350, type=33356, id=1, severity=37190,
message=0xffffffffb3e8 “GL_INVALID_ENUM in glGetIntegerv(pname=GL_MAX_TESS_GEN_LEVEL)”)
at /capstor/scratch/cscs/jfavre/ParaView/ParaView-v6.0.0-RC1/VTK/Rendering/OpenGL2/vtkOpenGLRenderWindow.cxx:199 #1 0x0000ffffd32fcc1c in ?? () from /usr/lib64/libOSMesa.so.8 #2 0x0000ffffd348199c in ?? () from /usr/lib64/libOSMesa.so.8 #3 0x0000ffffd3483a9c in ?? () from /usr/lib64/libOSMesa.so.8 #4 0x0000ffffe9c4e4a8 in vtkOpenGLState::Initialize (this=0xa3ae50)
at /capstor/scratch/cscs/jfavre/ParaView/ParaView-v6.0.0-RC1/VTK/Rendering/OpenGL2/vtkOpenGLState.cxx:1602 #5 0x0000ffffe9c0fffc in vtkOpenGLRenderWindow::OpenGLInitState (this=0xa3a270)
at /capstor/scratch/cscs/jfavre/ParaView/ParaView-v6.0.0-RC1/VTK/Rendering/OpenGL2/vtkOpenGLRenderWindow.cxx:837 #6 0x0000ffffe9c0ffb0 in vtkOpenGLRenderWindow::OpenGLInit (this=0xa3a270)
at /capstor/scratch/cscs/jfavre/ParaView/ParaView-v6.0.0-RC1/VTK/Rendering/OpenGL2/vtkOpenGLRenderWindow.cxx:825 #7 0x0000ffffe9c92f58 in vtkOSOpenGLRenderWindow::CreateOffScreenWindow (this=0xa3a270,
width=300, height=300)
at /capstor/scratch/cscs/jfavre/ParaView/ParaView-v6.0.0-RC1/VTK/Rendering/OpenGL2/vtkOSOpenGLRenderWindow.cxx:322 #8 0x0000ffffe9c931b8 in vtkOSOpenGLRenderWindow::Initialize (this=0xa3a270)
at /capstor/scratch/cscs/jfavre/ParaView/ParaView-v6.0.0-RC1/VTK/Rendering/OpenGL2/vtkOSOpenGLRenderWindow.cxx:393 #9 0x0000ffffe9c14ef0 in vtkOpenGLRenderWindow::Start (this=0xa3a270)
at /capstor/scratch/cscs/jfavre/ParaView/ParaView-v6.0.0-RC1/VTK/Rendering/OpenGL2/vtkOpenGLRenderWindow.cxx:1913 #10 0x0000ffffe7c784d4 in vtkRenderWindow::Render (this=0xa3a270)
at /capstor/scratch/cscs/jfavre/ParaView/ParaView-v6.0.0-RC1/VTK/Rendering/Core/vtkRenderWindow.cxx:450 #11 0x0000ffffe9c18ae4 in vtkOpenGLRenderWindow::Render (this=0xa3a270)
at /capstor/scratch/cscs/jfavre/ParaView/ParaView-v6.0.0-RC1/VTK/Rendering/OpenGL2/vtkOpenGLRenderWindow.cxx:3064 #12 0x0000fffff01ea540 in vtkPVOpenGLInformation::CopyFromObject (this=0xa3a0e0, obj=0x0)
at /capstor/scratch/cscs/jfavre/ParaView/ParaView-v6.0.0-RC1/Remoting/Views/vtkPVOpenGLInformation.cxx:55
is discourse still the best way to communicate about this issue? feel free to engage in discussion with me in another channel.