From b3f774d2c0462469a53ad0372664a1cd3ff0411f Mon Sep 17 00:00:00 2001 From: BZLZHH Date: Thu, 6 Aug 2026 09:44:04 -0400 Subject: [PATCH] [Fix] (CI): name the EGL vendor library the benchmark job runs on The benchmark job is the only one that brings a real GL context up - DriverBench dlopens libEGL.so.1 and renders through it - but its apt list only asks for libegl1, which is glvnd's dispatch layer and nothing more. The vendor library behind it, libegl-mesa0, has been arriving as a Recommends of libegl1 rather than because anything asked for it. That is too quiet a dependency for the one job whose whole purpose is running a driver: a base image change, or --no-install-recommends turning up anywhere upstream, would leave eglInitialize with no vendor to dispatch to and fail the job for a reason nothing in the workflow explains. Name it, next to libgl1-mesa-dri, which is listed for exactly the same reason. Verified with a full headless ctest -C Release -L benchmark - no $DISPLAY, no $EGL_PLATFORM, mesa as the only EGL vendor: SanityBench, ProgramBench, BufferBench and DriverBench all pass. --- .github/workflows/test.yml | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index 0de01ad9..03f567f0 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -177,9 +177,13 @@ jobs: uses: lukka/get-cmake@v4.3.3 - name: Install runtime dependencies + # libegl-mesa0 is the EGL vendor library itself: DriverBench brings up a + # real GL context, and libegl1 is only glvnd's dispatch. It normally + # arrives as a Recommends of libegl1, which is too quiet a dependency for + # the one job that needs a working driver. run: | sudo apt-get update - sudo apt-get install -y libvulkan1 libegl1 libgles2 libgl1-mesa-dri mesa-vulkan-drivers + sudo apt-get install -y libvulkan1 libegl1 libegl-mesa0 libgles2 libgl1-mesa-dri mesa-vulkan-drivers - name: Download Linux runtime uses: actions/download-artifact@v8