I am using the command line interface pvbatch
of ParaView to render PNG screenshots of my data. If I do so on my local machine, it runs fine, the result is as expected. However, if I run the same script in the Arch Linux Docker container via GitLab CI, the drawing order is not respected.
In this minimal example, we have two data sets in XDMF format:
- minimal example on KU Leuven GitLab
- repo.zip (24.6 KB) all relevant files in the Git repository that was uploaded to GitLab
- plane.xdmf (532 Bytes) two points
- points.xdmf (431 Bytes) a plane between those two points
- state.pvsm (280.9 KB) the ParaView state to render a screenshot in
- screenshot.pvbatch.py (206 Bytes)
pvbatch
script to take the screenshot - .gitlab-ci.yml (217 Bytes) GitLab CI script that runs
pvbatch
in an Arch Linux container - log (50.5 KB) full command line output
The script screenshot.pvbatch.py
outputs screenshot.png
. This is what it should look like, and what it in fact looks like when I run the given script on my local machine:
However, when I run the same script in the Docker container via GitLab CI according to .gitlab-ci.yaml
, I instead get this result, where the front point is wrongly drawn behind the plane.
Again, this is my pvbatch
script:
from paraview.simple import *
LoadState('state.pvsm')
renderView = GetActiveViewOrCreate('RenderView')
renderView.ViewSize = [300, 300]
SaveScreenshot('screenshot.png', view=renderView)
And this is my GitLab CI configuration:
image: archlinux
render:
script:
- pacman -Sy --noconfirm paraview xorg-server-xvfb
- xvfb-run -a -s "-screen 0 1920x1080x24" -- pvbatch screenshot.pvbatch.py
artifacts:
paths:
- screenshot.png
This is the command line output of pvbatch:
$ xvfb-run -a -s "-screen 0 1920x1080x24" -- pvbatch screenshot.pvbatch.py
[runner-wxekhkry-project-17162-concurrent-0-mv2i3dvd:01681] mca_base_component_repository_open: unable to open mca_accelerator_cuda: libcuda.so.1: cannot open shared object file: No such file or directory (ignored)
[runner-wxekhkry-project-17162-concurrent-0-mv2i3dvd:01681] mca_base_component_repository_open: unable to open mca_accelerator_rocm: libamdhip64.so.6: cannot open shared object file: No such file or directory (ignored)
[runner-wxekhkry-project-17162-concurrent-0-mv2i3dvd:01681] mca_base_component_repository_open: unable to open mca_rcache_gpusm: libcuda.so.1: cannot open shared object file: No such file or directory (ignored)
[runner-wxekhkry-project-17162-concurrent-0-mv2i3dvd:01681] mca_base_component_repository_open: unable to open mca_rcache_rgpusm: libcuda.so.1: cannot open shared object file: No such file or directory (ignored)
[openvkl] application requested ISPC device width 16via device name cpu_16
[openvkl] CPU device instantiated with width: 16, ISA: AVX512SKX
MESA: error: ZINK: vkCreateInstance failed (VK_ERROR_INCOMPATIBLE_DRIVER)
glx: failed to create drisw screen
failed to load driver: zink
MESA: error: ZINK: vkCreateInstance failed (VK_ERROR_INCOMPATIBLE_DRIVER)
glx: failed to create drisw screen
failed to load driver: zink
So now I wonder, how I can fix this issue, such that my data is drawn correctly.
Any help is very much appreciated!