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
- Initial announcement: Simplified python wheel for VTK
- Release note: https://gitlab.kitware.com/vtk/vtk/-/blob/master/Documentation/release/dev/support-runtime-opengl-window-selection.md
- New runtime options: Runtime settings - VTK documentation
- OpenGL selection process: Build Settings - VTK documentation
- MR - https://gitlab.kitware.com/vtk/vtk/-/merge_requests/11367