mirror of
https://gitlab.freedesktop.org/wayland/weston.git
synced 2025-12-20 07:00:09 +01:00
ci: Bump kernel and Mesa version
1. Bump the kernel version to the drm-misc-next-2025-09-04 tag, fixing various issues required for vkms testing. 2. Use /sys/bus/faux/devices/vkms/drm/ instead of /sys/devices/platform/vkms/drm/ for the card basename. 3. Bump Mesa to the commit needed for vkms+lavapipe. This also needs another leak workaround, so the code got a small cleanup. Signed-off-by: Robert Mader <robert.mader@collabora.com>
This commit is contained in:
parent
e187420e38
commit
5e7835bf2b
4 changed files with 24 additions and 17 deletions
|
|
@ -43,7 +43,7 @@
|
||||||
variables:
|
variables:
|
||||||
FDO_UPSTREAM_REPO: wayland/weston
|
FDO_UPSTREAM_REPO: wayland/weston
|
||||||
FDO_REPO_SUFFIX: "$BUILD_OS-$FDO_DISTRIBUTION_VERSION/$BUILD_ARCH"
|
FDO_REPO_SUFFIX: "$BUILD_OS-$FDO_DISTRIBUTION_VERSION/$BUILD_ARCH"
|
||||||
FDO_DISTRIBUTION_TAG: '2025-09-04-mesa-25.2.2'
|
FDO_DISTRIBUTION_TAG: '2025-09-24-linux-drm-misc-next-2025-09-04-and-mesa-25.3-kms-dri-sw-vulkan-vkms'
|
||||||
|
|
||||||
|
|
||||||
include:
|
include:
|
||||||
|
|
|
||||||
|
|
@ -59,7 +59,7 @@ fdo_log_section_end install_meson
|
||||||
# just a regular container.
|
# just a regular container.
|
||||||
fdo_log_section_start_collapsed install_kernel "install_kernel"
|
fdo_log_section_start_collapsed install_kernel "install_kernel"
|
||||||
if [[ -n "$KERNEL_DEFCONFIG" ]]; then
|
if [[ -n "$KERNEL_DEFCONFIG" ]]; then
|
||||||
git clone --depth=1 --branch=v6.14 https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git linux
|
git clone --depth=1 --branch=drm-misc-next-2025-09-04 https://gitlab.freedesktop.org/drm/misc/kernel.git linux
|
||||||
cd linux
|
cd linux
|
||||||
|
|
||||||
if [[ "${BUILD_ARCH}" = "x86-64" ]]; then
|
if [[ "${BUILD_ARCH}" = "x86-64" ]]; then
|
||||||
|
|
@ -181,8 +181,11 @@ make install
|
||||||
cd ../..
|
cd ../..
|
||||||
rm -rf libx11
|
rm -rf libx11
|
||||||
|
|
||||||
git clone --branch mesa-25.2.2 --depth=1 https://gitlab.freedesktop.org/mesa/mesa.git
|
git clone --single-branch --branch main https://gitlab.freedesktop.org/mesa/mesa.git
|
||||||
cd mesa
|
cd mesa
|
||||||
|
# Last commit needed to make the Vulkan backend work with vkms+lavapipe, will be
|
||||||
|
# released in 25.3.
|
||||||
|
git checkout -b snapshot 45dc8b4d979aa2275f20db399a4430f0224799f5
|
||||||
meson setup build --wrap-mode=nofallback -Dauto_features=disabled \
|
meson setup build --wrap-mode=nofallback -Dauto_features=disabled \
|
||||||
-Dgallium-drivers=llvmpipe -Dvulkan-drivers=swrast -Dvideo-codecs= \
|
-Dgallium-drivers=llvmpipe -Dvulkan-drivers=swrast -Dvideo-codecs= \
|
||||||
-Degl=enabled -Dgbm=enabled -Dgles2=enabled -Dllvm=enabled \
|
-Degl=enabled -Dgbm=enabled -Dgles2=enabled -Dllvm=enabled \
|
||||||
|
|
|
||||||
|
|
@ -12,7 +12,7 @@ export LIBSEAT_BACKEND=seatd
|
||||||
# devices are loaded is not predictable, so the DRM node that VKMS takes can
|
# devices are loaded is not predictable, so the DRM node that VKMS takes can
|
||||||
# change across each boot. That's why we have this one-liner shell script to get
|
# change across each boot. That's why we have this one-liner shell script to get
|
||||||
# the appropriate node for VKMS.
|
# the appropriate node for VKMS.
|
||||||
export WESTON_TEST_SUITE_DRM_DEVICE=$(basename /sys/devices/platform/vkms/drm/card*)
|
export WESTON_TEST_SUITE_DRM_DEVICE=$(basename /sys/bus/faux/devices/vkms/drm/card*)
|
||||||
|
|
||||||
# ninja test depends on meson, and meson itself looks for its modules on folder
|
# ninja test depends on meson, and meson itself looks for its modules on folder
|
||||||
# $HOME/.local/lib/pythonX.Y/site-packages (the Python version may differ).
|
# $HOME/.local/lib/pythonX.Y/site-packages (the Python version may differ).
|
||||||
|
|
@ -27,8 +27,9 @@ export SEATD_LOGLEVEL=debug
|
||||||
|
|
||||||
# Terrible hack, per comment in weston-test-runner.c's main(): find Mesa's
|
# Terrible hack, per comment in weston-test-runner.c's main(): find Mesa's
|
||||||
# llvmpipe/lavapipe driver module location
|
# llvmpipe/lavapipe driver module location
|
||||||
export WESTON_CI_LEAK_DL_HANDLE=$(find /usr/local -name swrast_dri.so -print 2>/dev/null || true)
|
export WESTON_CI_LEAK_DL_HANDLES=$(find /usr/local -name swrast_dri.so -print 2>/dev/null || true):
|
||||||
export WESTON_CI_LEAK_DL_HANDLE_LVP=$(find /usr/local -name libvulkan_lvp.so -print 2>/dev/null || true)
|
export WESTON_CI_LEAK_DL_HANDLES=$WESTON_CI_LEAK_DL_HANDLES:$(find /usr/local -name libvulkan_lvp.so -print 2>/dev/null || true)
|
||||||
|
export WESTON_CI_LEAK_DL_HANDLES=$WESTON_CI_LEAK_DL_HANDLES:$(find /usr/local -name libgallium\*.so -print 2>/dev/null || true)
|
||||||
|
|
||||||
# run the tests and save the exit status
|
# run the tests and save the exit status
|
||||||
# we give ourselves a very generous timeout multiplier due to ASan overhead
|
# we give ourselves a very generous timeout multiplier due to ASan overhead
|
||||||
|
|
|
||||||
|
|
@ -669,8 +669,7 @@ main(int argc, char *argv[])
|
||||||
enum test_result_code ret;
|
enum test_result_code ret;
|
||||||
enum test_result_code result = RESULT_OK;
|
enum test_result_code result = RESULT_OK;
|
||||||
const struct fixture_setup_array *fsa;
|
const struct fixture_setup_array *fsa;
|
||||||
const char *leak_dl_handle;
|
char *leak_dl_handles;
|
||||||
const char *leak_dl_handle_lvp;
|
|
||||||
int fi;
|
int fi;
|
||||||
int fi_end;
|
int fi_end;
|
||||||
|
|
||||||
|
|
@ -682,17 +681,21 @@ main(int argc, char *argv[])
|
||||||
* Turns out if llvmpipe is always live, then the pointers are always
|
* Turns out if llvmpipe is always live, then the pointers are always
|
||||||
* reachable, so LeakSanitizer just tells us about our own code rather
|
* reachable, so LeakSanitizer just tells us about our own code rather
|
||||||
* than LLVM's, so ...
|
* than LLVM's, so ...
|
||||||
|
*
|
||||||
|
* This hack works so well that it also solved the obscure leak reports
|
||||||
|
* for lavapipe and libgallium!
|
||||||
*/
|
*/
|
||||||
leak_dl_handle = getenv("WESTON_CI_LEAK_DL_HANDLE");
|
leak_dl_handles = getenv("WESTON_CI_LEAK_DL_HANDLES");
|
||||||
if (leak_dl_handle)
|
if (leak_dl_handles) {
|
||||||
(void) dlopen(leak_dl_handle, RTLD_LAZY | RTLD_GLOBAL | RTLD_NODELETE);
|
char* token;
|
||||||
|
|
||||||
/* ... and this hack works so well that it also solved the obscure leak
|
token = strtok(leak_dl_handles, ":");
|
||||||
* reports for lavapipe, so we copied it!
|
while (token) {
|
||||||
*/
|
if (strlen(token) > 0)
|
||||||
leak_dl_handle_lvp = getenv("WESTON_CI_LEAK_DL_HANDLE_LVP");
|
(void) dlopen(token, RTLD_LAZY | RTLD_GLOBAL | RTLD_NODELETE);
|
||||||
if (leak_dl_handle_lvp)
|
token = strtok(NULL, ":");
|
||||||
(void) dlopen(leak_dl_handle_lvp, RTLD_LAZY | RTLD_GLOBAL | RTLD_NODELETE);
|
}
|
||||||
|
}
|
||||||
|
|
||||||
harness = weston_test_harness_create(argc, argv);
|
harness = weston_test_harness_create(argc, argv);
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Add table
Reference in a new issue