mirror of
https://gitlab.freedesktop.org/mesa/mesa.git
synced 2025-12-28 16:50:10 +01:00
ci/android: factor out GLES runtime version retrieval to a function
Different versions of Android might have different ways of getting the GLES runtime version, so factor this out to a function, so that the mechanism can be changed in a centralized way. Also rename MESA_RUNTIME_VERSION to GLES_RUNTIME_VERSION because this is really what is being retrieved, in the future we might have a similar check for the vulkan Mesa driver. While at it remove mentions of SurfaceFlinger in some comments since the mechanism to retrieve the versions is irrelevant for the purposes of the checks. Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/34111>
This commit is contained in:
parent
3af15abd68
commit
4ee3c302ce
1 changed files with 15 additions and 12 deletions
|
|
@ -78,30 +78,33 @@ $ADB push /angle/libEGL_angle.so "$ANGLE_DEST_PATH/libEGL_angle.so"
|
|||
$ADB push /angle/libGLESv1_CM_angle.so "$ANGLE_DEST_PATH/libGLESv1_CM_angle.so"
|
||||
$ADB push /angle/libGLESv2_angle.so "$ANGLE_DEST_PATH/libGLESv2_angle.so"
|
||||
|
||||
# Check what GLES implementation Surfaceflinger is using before copying the new mesa libraries
|
||||
while [ "$($ADB shell dumpsys SurfaceFlinger | grep GLES:)" = "" ] ; do sleep 1; done
|
||||
$ADB shell dumpsys SurfaceFlinger | grep GLES
|
||||
get_gles_runtime_version() {
|
||||
while [ "$($ADB shell dumpsys SurfaceFlinger | grep GLES:)" = "" ] ; do sleep 1; done
|
||||
$ADB shell dumpsys SurfaceFlinger | grep GLES
|
||||
}
|
||||
|
||||
# restart Android shell, so that surfaceflinger uses the new libraries
|
||||
# Check what GLES implementation is used before loading the new libraries
|
||||
get_gles_runtime_version
|
||||
|
||||
# restart Android shell, so that services use the new libraries
|
||||
$ADB shell stop
|
||||
$ADB shell start
|
||||
|
||||
# Check what GLES implementation Surfaceflinger is using after copying the new mesa libraries
|
||||
# Note: we are injecting the ANGLE libs in the vendor partition, so we need to check if the
|
||||
# ANGLE libs are being used after the shell restart
|
||||
while [ "$($ADB shell dumpsys SurfaceFlinger | grep GLES:)" = "" ] ; do sleep 1; done
|
||||
MESA_RUNTIME_VERSION="$($ADB shell dumpsys SurfaceFlinger | grep GLES:)"
|
||||
# Check what GLES implementation is used after loading the new libraries
|
||||
GLES_RUNTIME_VERSION="$(get_gles_runtime_version)"
|
||||
|
||||
if [ -n "$ANGLE_TAG" ]; then
|
||||
# Note: we are injecting the ANGLE libs too, so we need to check if the
|
||||
# ANGLE libs are being used after the shell restart.
|
||||
ANGLE_HASH=$(head -c 12 /angle/version)
|
||||
if ! printf "%s" "$MESA_RUNTIME_VERSION" | grep --quiet "${ANGLE_HASH}"; then
|
||||
if ! printf "%s" "$GLES_RUNTIME_VERSION" | grep --quiet "${ANGLE_HASH}"; then
|
||||
echo "Fatal: Android is loading a wrong version of the ANGLE libs: ${ANGLE_HASH}" 1>&2
|
||||
exit 1
|
||||
fi
|
||||
else
|
||||
MESA_BUILD_VERSION=$(cat "$INSTALL/VERSION")
|
||||
if ! printf "%s" "$MESA_RUNTIME_VERSION" | grep --quiet "${MESA_BUILD_VERSION}$"; then
|
||||
echo "Fatal: Android is loading a wrong version of the Mesa3D libs: ${MESA_RUNTIME_VERSION}" 1>&2
|
||||
if ! printf "%s" "$GLES_RUNTIME_VERSION" | grep --quiet "${MESA_BUILD_VERSION}$"; then
|
||||
echo "Fatal: Android is loading a wrong version of the Mesa3D GLES libs: ${GLES_RUNTIME_VERSION}" 1>&2
|
||||
exit 1
|
||||
fi
|
||||
fi
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue