From b25135c7a95cdd6ae9117d720bc8ea2216cc9357 Mon Sep 17 00:00:00 2001 From: Valentine Burley Date: Tue, 1 Apr 2025 15:51:39 +0200 Subject: [PATCH] ci/android: Use DEQP_ANDROID_EXE for GLES CTS The new GLES CTS 3.2.12.0 release allows using DEQP_ANDROID_EXE for EGL testing on Android. Signed-off-by: Valentine Burley Part-of: --- .gitlab-ci/container/build-deqp.sh | 7 - .../container/debian/x86_64_test-android.sh | 2 +- ...ing-on-Android-from-the-command-line.patch | 182 ------------------ ...d-prints-to-stdout-instead-of-logcat.patch | 26 --- 4 files changed, 1 insertion(+), 216 deletions(-) delete mode 100644 .gitlab-ci/container/patches/build-deqp-gles_Allow-running-on-Android-from-the-command-line.patch delete mode 100644 .gitlab-ci/container/patches/build-deqp-gles_Android-prints-to-stdout-instead-of-logcat.patch diff --git a/.gitlab-ci/container/build-deqp.sh b/.gitlab-ci/container/build-deqp.sh index 52eeb08c7bb..0c00be862c6 100755 --- a/.gitlab-ci/container/build-deqp.sh +++ b/.gitlab-ci/container/build-deqp.sh @@ -81,13 +81,6 @@ gles_cts_patch_files=( build-deqp-gl_Revert-Fix-spurious-failures-when-using-a-config-wit.patch ) -if [ "${DEQP_TARGET}" = 'android' ]; then - gles_cts_patch_files+=( - build-deqp-gles_Allow-running-on-Android-from-the-command-line.patch - build-deqp-gles_Android-prints-to-stdout-instead-of-logcat.patch - ) -fi - ### Careful editing anything below this line diff --git a/.gitlab-ci/container/debian/x86_64_test-android.sh b/.gitlab-ci/container/debian/x86_64_test-android.sh index 04d82234b36..4853a56b4bd 100755 --- a/.gitlab-ci/container/debian/x86_64_test-android.sh +++ b/.gitlab-ci/container/debian/x86_64_test-android.sh @@ -99,7 +99,7 @@ EXTRA_CMAKE_ARGS="-DDEQP_ANDROID_EXE=ON -DDEQP_TARGET_TOOLCHAIN=ndk-modern -DAND DEQP_API=GLES \ DEQP_TARGET="android" \ -EXTRA_CMAKE_ARGS="-DDEQP_TARGET_TOOLCHAIN=ndk-modern -DANDROID_NDK_PATH=/$ndk -DANDROID_ABI=x86_64 -DDE_ANDROID_API=$ANDROID_SDK_VERSION" \ +EXTRA_CMAKE_ARGS="-DDEQP_ANDROID_EXE=ON -DDEQP_TARGET_TOOLCHAIN=ndk-modern -DANDROID_NDK_PATH=/$ndk -DANDROID_ABI=x86_64 -DDE_ANDROID_API=$ANDROID_SDK_VERSION" \ . .gitlab-ci/container/build-deqp.sh DEQP_API=VK \ diff --git a/.gitlab-ci/container/patches/build-deqp-gles_Allow-running-on-Android-from-the-command-line.patch b/.gitlab-ci/container/patches/build-deqp-gles_Allow-running-on-Android-from-the-command-line.patch deleted file mode 100644 index 09b9921364c..00000000000 --- a/.gitlab-ci/container/patches/build-deqp-gles_Allow-running-on-Android-from-the-command-line.patch +++ /dev/null @@ -1,182 +0,0 @@ -From 2503bf1be98eaa810672f6a6eb8f735a33511a4f Mon Sep 17 00:00:00 2001 -From: Tomeu Vizoso -Date: Fri, 26 Aug 2022 18:24:27 +0200 -Subject: [PATCH 1/2] Allow running on Android from the command line - -For testing the Android EGL platform without having to go via the -Android activity manager, build deqp-egl. - -Tests that render to native windows are unsupported, as command line -programs cannot create windows on Android. - -$ cmake -S . -B build/ -DDEQP_TARGET=android -DDEQP_TARGET_TOOLCHAIN=ndk-modern -DCMAKE_C_FLAGS=-Werror -DCMAKE_CXX_FLAGS=-Werror -DANDROID_NDK_PATH=./android-ndk-r21d -DANDROID_ABI=x86_64 -DDE_ANDROID_API=28 -DGLCTS_GTF_TARGET=gles32 -G Ninja -$ ninja -C build modules/egl/deqp-egl - -Signed-off-by: Tomeu Vizoso ---- - CMakeLists.txt | 38 ++----------------- - .../android/tcuAndroidNativeActivity.cpp | 36 +++++++++--------- - .../platform/android/tcuAndroidPlatform.cpp | 12 +++++- - 3 files changed, 34 insertions(+), 52 deletions(-) - -diff --git a/CMakeLists.txt b/CMakeLists.txt -index 309bdda18..7c833751f 100644 ---- a/CMakeLists.txt -+++ b/CMakeLists.txt -@@ -275,7 +275,7 @@ include_directories( - external/vulkancts/framework/vulkan - ) - --if (DE_OS_IS_ANDROID OR DE_OS_IS_IOS) -+if (DE_OS_IS_IOS) - # On Android deqp modules are compiled as libraries and linked into final .so - set(DEQP_MODULE_LIBRARIES ) - set(DEQP_MODULE_ENTRY_POINTS ) -@@ -319,7 +319,7 @@ macro (add_deqp_module MODULE_NAME SRCS LIBS EXECLIBS ENTRY) - set(DEQP_MODULE_LIBRARIES ${DEQP_MODULE_LIBRARIES} PARENT_SCOPE) - set(DEQP_MODULE_ENTRY_POINTS ${DEQP_MODULE_ENTRY_POINTS} PARENT_SCOPE) - -- if (NOT DE_OS_IS_ANDROID AND NOT DE_OS_IS_IOS) -+ if (NOT DE_OS_IS_IOS) - # Executable target - add_executable(${MODULE_NAME} ${PROJECT_SOURCE_DIR}/framework/platform/tcuMain.cpp ${ENTRY}) - target_link_libraries(${MODULE_NAME} PUBLIC "${EXECLIBS}" "${MODULE_NAME}${MODULE_LIB_TARGET_POSTFIX}") -@@ -341,7 +341,7 @@ macro (add_deqp_module_skip_android MODULE_NAME SRCS LIBS EXECLIBS ENTRY) - add_library("${MODULE_NAME}${MODULE_LIB_TARGET_POSTFIX}" STATIC ${SRCS}) - target_link_libraries("${MODULE_NAME}${MODULE_LIB_TARGET_POSTFIX}" ${LIBS}) - -- if (NOT DE_OS_IS_ANDROID AND NOT DE_OS_IS_IOS) -+ if (NOT DE_OS_IS_IOS) - # Executable target - add_executable(${MODULE_NAME} ${PROJECT_SOURCE_DIR}/framework/platform/tcuMain.cpp ${ENTRY}) - target_link_libraries(${MODULE_NAME} PUBLIC "${EXECLIBS}" "${MODULE_NAME}${MODULE_LIB_TARGET_POSTFIX}") -@@ -393,37 +393,7 @@ add_subdirectory(external/vulkancts/vkscpc ${MAYBE_EXCLUDE_FROM_ALL}) - add_subdirectory(external/openglcts ${MAYBE_EXCLUDE_FROM_ALL}) - - # Single-binary targets --if (DE_OS_IS_ANDROID) -- include_directories(executor) -- include_directories(${PROJECT_BINARY_DIR}/external/vulkancts/framework/vulkan) -- -- set(DEQP_SRCS -- framework/platform/android/tcuAndroidMain.cpp -- framework/platform/android/tcuAndroidJNI.cpp -- framework/platform/android/tcuAndroidPlatformCapabilityQueryJNI.cpp -- framework/platform/android/tcuTestLogParserJNI.cpp -- ${DEQP_MODULE_ENTRY_POINTS} -- ) -- -- set(DEQP_LIBS -- tcutil-platform -- xecore -- ${DEQP_MODULE_LIBRARIES} -- ) -- -- add_library(deqp SHARED ${DEQP_SRCS}) -- target_link_libraries(deqp ${DEQP_LIBS}) -- -- # Separate out the debug information because it's enormous -- add_custom_command(TARGET deqp POST_BUILD -- COMMAND ${CMAKE_STRIP} --only-keep-debug -o $.debug $ -- COMMAND ${CMAKE_STRIP} -g $) -- -- # Needed by OpenGL CTS that defines its own activity but depends on -- # common Android support code. -- target_include_directories(deqp PRIVATE framework/platform/android) -- --elseif (DE_OS_IS_IOS) -+if (DE_OS_IS_IOS) - # Code sign identity - set(DEQP_IOS_CODE_SIGN_IDENTITY "drawElements" CACHE STRING "Code sign identity for iOS build") - -diff --git a/framework/platform/android/tcuAndroidNativeActivity.cpp b/framework/platform/android/tcuAndroidNativeActivity.cpp -index 82a9ab699..4eab14a39 100644 ---- a/framework/platform/android/tcuAndroidNativeActivity.cpp -+++ b/framework/platform/android/tcuAndroidNativeActivity.cpp -@@ -115,23 +115,25 @@ namespace Android - - NativeActivity::NativeActivity(ANativeActivity *activity) : m_activity(activity) - { -- activity->instance = (void *)this; -- activity->callbacks->onStart = onStartCallback; -- activity->callbacks->onResume = onResumeCallback; -- activity->callbacks->onSaveInstanceState = onSaveInstanceStateCallback; -- activity->callbacks->onPause = onPauseCallback; -- activity->callbacks->onStop = onStopCallback; -- activity->callbacks->onDestroy = onDestroyCallback; -- activity->callbacks->onWindowFocusChanged = onWindowFocusChangedCallback; -- activity->callbacks->onNativeWindowCreated = onNativeWindowCreatedCallback; -- activity->callbacks->onNativeWindowResized = onNativeWindowResizedCallback; -- activity->callbacks->onNativeWindowRedrawNeeded = onNativeWindowRedrawNeededCallback; -- activity->callbacks->onNativeWindowDestroyed = onNativeWindowDestroyedCallback; -- activity->callbacks->onInputQueueCreated = onInputQueueCreatedCallback; -- activity->callbacks->onInputQueueDestroyed = onInputQueueDestroyedCallback; -- activity->callbacks->onContentRectChanged = onContentRectChangedCallback; -- activity->callbacks->onConfigurationChanged = onConfigurationChangedCallback; -- activity->callbacks->onLowMemory = onLowMemoryCallback; -+ if (activity) { -+ activity->instance = (void *)this; -+ activity->callbacks->onStart = onStartCallback; -+ activity->callbacks->onResume = onResumeCallback; -+ activity->callbacks->onSaveInstanceState = onSaveInstanceStateCallback; -+ activity->callbacks->onPause = onPauseCallback; -+ activity->callbacks->onStop = onStopCallback; -+ activity->callbacks->onDestroy = onDestroyCallback; -+ activity->callbacks->onWindowFocusChanged = onWindowFocusChangedCallback; -+ activity->callbacks->onNativeWindowCreated = onNativeWindowCreatedCallback; -+ activity->callbacks->onNativeWindowResized = onNativeWindowResizedCallback; -+ activity->callbacks->onNativeWindowRedrawNeeded = onNativeWindowRedrawNeededCallback; -+ activity->callbacks->onNativeWindowDestroyed = onNativeWindowDestroyedCallback; -+ activity->callbacks->onInputQueueCreated = onInputQueueCreatedCallback; -+ activity->callbacks->onInputQueueDestroyed = onInputQueueDestroyedCallback; -+ activity->callbacks->onContentRectChanged = onContentRectChangedCallback; -+ activity->callbacks->onConfigurationChanged = onConfigurationChangedCallback; -+ activity->callbacks->onLowMemory = onLowMemoryCallback; -+ } - } - - NativeActivity::~NativeActivity(void) -diff --git a/framework/platform/android/tcuAndroidPlatform.cpp b/framework/platform/android/tcuAndroidPlatform.cpp -index 0472fa615..ff8929409 100644 ---- a/framework/platform/android/tcuAndroidPlatform.cpp -+++ b/framework/platform/android/tcuAndroidPlatform.cpp -@@ -22,6 +22,7 @@ - *//*--------------------------------------------------------------------*/ - - #include "tcuAndroidPlatform.hpp" -+#include "tcuAndroidNativeActivity.hpp" - #include "tcuAndroidUtil.hpp" - #include "gluRenderContext.hpp" - #include "egluNativeDisplay.hpp" -@@ -198,7 +199,7 @@ eglu::NativeWindow *NativeWindowFactory::createWindow(const eglu::WindowParams & - Window *window = m_windowRegistry.tryAcquireWindow(); - - if (!window) -- throw ResourceError("Native window is not available", DE_NULL, __FILE__, __LINE__); -+ throw NotSupportedError("Native window is not available", DE_NULL, __FILE__, __LINE__); - - return new NativeWindow(window, params.width, params.height, format); - } -@@ -319,6 +320,9 @@ static size_t getTotalSystemMemory(ANativeActivity *activity) - - try - { -+ if (!activity) -+ throw tcu::InternalError("No activity (running from command line?"); -+ - const size_t totalMemory = getTotalAndroidSystemMemory(activity); - print("Device has %.2f MiB of system memory\n", static_cast(totalMemory) / static_cast(MiB)); - return totalMemory; -@@ -416,3 +420,9 @@ bool Platform::hasDisplay(vk::wsi::Type wsiType) const - - } // namespace Android - } // namespace tcu -+ -+tcu::Platform* createPlatform (void) -+{ -+ tcu::Android::NativeActivity activity(NULL); -+ return new tcu::Android::Platform(activity); -+} --- -2.45.2 - diff --git a/.gitlab-ci/container/patches/build-deqp-gles_Android-prints-to-stdout-instead-of-logcat.patch b/.gitlab-ci/container/patches/build-deqp-gles_Android-prints-to-stdout-instead-of-logcat.patch deleted file mode 100644 index 3c0b72c430d..00000000000 --- a/.gitlab-ci/container/patches/build-deqp-gles_Android-prints-to-stdout-instead-of-logcat.patch +++ /dev/null @@ -1,26 +0,0 @@ -From a602822c53e22e985f942f843ccadbfb64613212 Mon Sep 17 00:00:00 2001 -From: Helen Koike -Date: Tue, 27 Sep 2022 12:35:22 -0300 -Subject: [PATCH 2/2] Android prints to stdout instead of logcat - -Signed-off-by: Helen Koike ---- - framework/qphelper/qpDebugOut.c | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/framework/qphelper/qpDebugOut.c b/framework/qphelper/qpDebugOut.c -index 6579e9f48..c200c6f6b 100644 ---- a/framework/qphelper/qpDebugOut.c -+++ b/framework/qphelper/qpDebugOut.c -@@ -98,7 +98,7 @@ void qpDiev (const char* format, va_list args) - } - - /* print() implementation. */ --#if (DE_OS == DE_OS_ANDROID) -+#if (0) - - #include - --- -2.42.0 -