Status Update: Runtime OpenGL render window selection in VTK

Hi,

I’m happy to share that we have simplified the OpenGL window system logic in VTK so developers can rely on a single vtk build for deployments in both cloud and desktop.

How does this impact consumers of VTK?

Starting from VTK 9.4, scheduled for November, 2024, your project can rely on just a single vtk package for onscreen, offscreen and headless rendering. In the past, for cloud deployments that used vtk python wheel, you had to uninstall vtk and re-install vtk-osmesa or vtk-egl. Furthermore, you had to get those from wheels.vtk.org, whereas now you would get headless and offscreen support directly from the vtk wheel in pypi.org!

Technical details

Linux

There is going to be only one wheel instead of three separate wheels. This new wheel is flexible and can fallback to EGL/OSMesa at runtime. If you’re a maintainer of a project depending on VTK, please remind your users to have valid OpenGL drivers. On linux, libEGL or libOSMesa can be installed from the package manager.

Windows

In windows, there will now be only one wheel. Users interested in software-based headless rendering can download osmesa.dll from Releases · pal1000/mesa-dist-win · GitHub

Relevant links

  1. Initial announcement: Simplified python wheel for VTK
  2. Release note: https://gitlab.kitware.com/vtk/vtk/-/blob/master/Documentation/release/dev/support-runtime-opengl-window-selection.md
  3. New runtime options: Runtime settings - VTK documentation
  4. OpenGL selection process: Build Settings - VTK documentation
  5. MR - https://gitlab.kitware.com/vtk/vtk/-/merge_requests/11367
4 Likes