Bugzilla – Bug 1219095
python-matplotlib:test FTBFS with Mesa 23.3.0
Last modified: 2024-03-26 11:00:06 UTC
Created attachment 872100 [details] python-matplotlib:test An update of Mesa 23.3.0+ ( https://build.opensuse.org/request/show/1140618 ) is making python-matplotlib:test FTBFS. More precisely one test is failing: [ 318s] =================================== FAILURES =================================== [ 318s] ___________________________ test_openin_any_paranoid ___________________________ [ 318s] [gw2] linux -- Python 3.9.18 /usr/bin/python3.9 [ 318s] [ 318s] @needs_usetex [ 318s] def test_openin_any_paranoid(): [ 318s] completed = subprocess.run( [ 318s] [sys.executable, "-c", [ 318s] 'import matplotlib.pyplot as plt;' [ 318s] 'plt.rcParams.update({"text.usetex": True});' [ 318s] 'plt.title("paranoid");' [ 318s] 'plt.show(block=False);'], [ 318s] env={**os.environ, 'openin_any': 'p'}, check=True, capture_output=True) [ 318s] > assert completed.stderr == b"" [ 318s] E AssertionError: assert b'MESA: error: ZINK: vkCreateInstance failed (VK_ERROR_INCOMPATIBLE_DRIVER)\nglx: failed to create drisw screen\nfailed to load driver: zink\n' == b'' [ 318s] E Full diff: [ 318s] E - b'' [ 318s] E + ( [ 318s] E + b'MESA: error: ZINK: vkCreateInstance failed (VK_ERROR_INCOMPATIBLE_DRIVER' [ 318s] E + b')\nglx: failed to create drisw screen\nfailed to load driver: zink\n', [ 318s] E + ) [ 318s] [ 318s] /usr/lib64/python3.9/site-packages/matplotlib/tests/test_texmanager.py:74: AssertionError Please find the full log attached.
Ok. Adding packages libvulkan_lvp Mesa-vulkan-device-select Mesa-vulkan-overlay doesn't help. Even removing zink_dri.so from /usr/lib64/dri/doesn't during build before the test runs does not. [...] [ 199s] > assert completed.stderr == b"" [ 199s] E AssertionError: assert b'MESA-LOADER: failed to open zink: /usr/lib64/dri/zink_dri.so: cannot open shared object file: No such file or directory (search paths /usr/lib64/dri, suffix _dri)\nfailed to load driver: zink\n' == b'' [...] For some reason Mesa thinks it wants to load zink driver. And fails, if this is not possible.
When not removing the driver file [ 270s] > assert completed.stderr == b"" [ 270s] E AssertionError: assert b'error: XDG_RUNTIME_DIR is invalid or not set in the environment.\nMESA: error: ZINK: failed to choose pdev\nglx: failed to create drisw screen\nfailed to load driver: zink\n' == b''
Ok. I can reproduce these messages, but they are just warnings. The fallback to 'swrast' ("llvmpipe") driver just works. Actually you can already use D3D_ALWAYS_SOFTWARE=1 glxinfo to use zink + software rendering I suggest to make use of LIBGL_ALWAYS_SOFTWARE=1 environment variable. Hopefully eporting it works, I'm doing a testbuild of python-matplotlib:test with that right now.
(setting LIBGL_ALWAYS_SOFTWARE=1 forces Mesa to use 'swrast' ("llvmpipe") driver.)
Seems to work. Submit requests here. https://build.opensuse.org/request/show/1141029 https://build.opensuse.org/request/show/1141030 Closing.
Testing here: https://build.opensuse.org/project/show/openSUSE:Factory:Staging:E
(In reply to Ana Guerrero from comment #8) > Testing here: > > https://build.opensuse.org/project/show/openSUSE:Factory:Staging:E Seems this was successful. :-)