From ad22f2419a65bfffd5180863ddc256ca94b26ce2 Mon Sep 17 00:00:00 2001 From: Valentine Burley Date: Tue, 7 Oct 2025 12:55:53 +0200 Subject: [PATCH] ci/android: Make Vulkan driver replacement conditional This avoids hard-coding Vulkan drivers that are not part of the arm64 Mesa build archive. Signed-off-by: Valentine Burley Part-of: --- .gitlab-ci/android-runner.sh | 22 +++++++++++++++------- 1 file changed, 15 insertions(+), 7 deletions(-) diff --git a/.gitlab-ci/android-runner.sh b/.gitlab-ci/android-runner.sh index 3392c759f43..d791996f06f 100755 --- a/.gitlab-ci/android-runner.sh +++ b/.gitlab-ci/android-runner.sh @@ -71,13 +71,21 @@ $ADB push "$INSTALL/lib/libEGL.so" /vendor/lib64/egl/libEGL_mesa.so $ADB push "$INSTALL/lib/libGLESv1_CM.so" /vendor/lib64/egl/libGLESv1_CM_mesa.so $ADB push "$INSTALL/lib/libGLESv2.so" /vendor/lib64/egl/libGLESv2_mesa.so -$ADB shell rm -f /vendor/lib64/hw/vulkan.lvp.so* -$ADB shell rm -f /vendor/lib64/hw/vulkan.virtio.so* -$ADB shell rm -f /vendor/lib64/hw/vulkan.intel.so* - -$ADB push "$INSTALL/lib/libvulkan_lvp.so" /vendor/lib64/hw/vulkan.lvp.so -$ADB push "$INSTALL/lib/libvulkan_virtio.so" /vendor/lib64/hw/vulkan.virtio.so -$ADB push "$INSTALL/lib/libvulkan_intel.so" /vendor/lib64/hw/vulkan.intel.so +# Remove and replace Vulkan drivers: +# - For Cuttlefish virtual machines, replace lavapipe or venus +# - For Android hardware, replace the Vulkan driver specified by VK_DRIVER +if [ -n "${CUTTLEFISH_GPU_MODE:-}" ]; then + if [ "$CUTTLEFISH_GPU_MODE" = "mesa_swrast" ] || [ "$CUTTLEFISH_GPU_MODE" = "mesa_swrast_guest_angle" ]; then + $ADB shell rm -f /vendor/lib64/hw/vulkan.lvp.so* + $ADB push "$INSTALL/lib/libvulkan_lvp.so" /vendor/lib64/hw/vulkan.lvp.so + else + $ADB shell rm -f /vendor/lib64/hw/vulkan.virtio.so* + $ADB push "$INSTALL/lib/libvulkan_virtio.so" /vendor/lib64/hw/vulkan.virtio.so + fi +else + $ADB shell rm -f /vendor/lib64/hw/vulkan.${VK_DRIVER}.so* + $ADB push "$INSTALL/lib/libvulkan_${VK_DRIVER}.so" /vendor/lib64/hw/vulkan.${VK_DRIVER}.so +fi $ADB shell rm -f /vendor/lib64/egl/libEGL_emulation.so* $ADB shell rm -f /vendor/lib64/egl/libGLESv1_CM_emulation.so*