From 6cf5da8dd3d7a308ec44a874716abfcacd87d936 Mon Sep 17 00:00:00 2001 From: Valentine Burley Date: Wed, 13 May 2026 14:44:01 +0200 Subject: [PATCH] ci/deqp: Rewrite headless Android WSI patch Update the headless Android WSI patch to fix intermittent timeout issues. It now uses an ImageReader listener to actively drain and instantly release frames from the buffer queue. This acts as a "null compositor" that prevents buffer starvation while maintaining stable GPU backpressure. This fixes dEQP-VK.wsi.android.maintenance1.* in newer VKCTS versions and resolves the race conditions that caused occasional teardown crashes. Also rebase build-deqp-gl_Build-Don-t-build-Vulkan-utilities-for-GL-builds.patch on top of the updated WSI patch. Signed-off-by: Valentine Burley Part-of: --- ...-headless-WSI-fallback-using-AImageR.patch | 132 +++++++++++++++--- ...build-Vulkan-utilities-for-GL-builds.patch | 54 ++++--- .gitlab-ci/image-tags.yml | 2 +- src/freedreno/ci/freedreno-a618-fails.txt | 39 ------ .../lavapipe/ci/lvp-android-angle-fails.txt | 39 ------ .../lavapipe/ci/lvp-android-angle-skips.txt | 2 - .../ci/android-angle-venus-anv-fails.txt | 35 ----- 7 files changed, 146 insertions(+), 157 deletions(-) delete mode 100644 src/gallium/frontends/lavapipe/ci/lvp-android-angle-skips.txt diff --git a/.gitlab-ci/container/patches/build-deqp-android-Implement-headless-WSI-fallback-using-AImageR.patch b/.gitlab-ci/container/patches/build-deqp-android-Implement-headless-WSI-fallback-using-AImageR.patch index 7abc7d83089..798fcce956a 100644 --- a/.gitlab-ci/container/patches/build-deqp-android-Implement-headless-WSI-fallback-using-AImageR.patch +++ b/.gitlab-ci/container/patches/build-deqp-android-Implement-headless-WSI-fallback-using-AImageR.patch @@ -1,4 +1,4 @@ -From 0ce7ca82289ec3351ccec4b37540d8fdbc8dd095 Mon Sep 17 00:00:00 2001 +From a801d75fcb16db89d2af67dd40040bc7c5f59df0 Mon Sep 17 00:00:00 2001 From: Valentine Burley Date: Thu, 23 Apr 2026 11:03:14 +0200 Subject: [PATCH] android: Implement headless WSI fallback using AImageReader @@ -11,12 +11,24 @@ ANativeWindow. This patch: - Implements a headless fallback using the AImageReader NDK API to create an off-screen ANativeWindow in tcuAndroidPlatform.cpp. +- Implements an active "null compositor" via an AImageReader listener + that immediately drains and releases acquired images. This ensures the + producer never runs out of buffers, fixing intermittent timeouts in + tests that require active consumption (e.g. maintenance1 tests). +- Uses AImageReader_acquireNextImageAsync and AImage_deleteAsync (API 26+) + to handle GPU sync fences. +- Adds thread-safe teardown logic using an atomic flag and a non-blocking + mutex lock (std::try_to_lock) to prevent race conditions between the + main thread and the background listener callback. - Adds ImageReaderNativeWindow (EGL) and ImageReaderVulkanWindow (Vulkan) - to manage the AImageReader lifecycle within the framework. + to manage the AImageReader and ImageQueue lifecycle. - Extracts the AImageReader creation logic into a shared helper acquireImageReaderWindow(). - Links against mediandk in android.cmake to provide AImageReader support for Android API levels >= 24. +- Uses AImageReader_newWithUsage (API 26+) with explicit hardware buffer flags + (SAMPLED_IMAGE | COMPOSER_OVERLAY) to mimic SurfaceFlinger allocation + constraints. - On Android API levels < 24 (where AImageReader is unavailable), window acquisition failure now consistently throws ResourceError instead of NotSupportedError. This aligns the EGL path with the existing Vulkan @@ -35,12 +47,12 @@ Change-Id: I462e617ae60e4dc3d9f0aeec11fd1628d0c6ff12 Signed-off-by: Valentine Burley --- external/openglcts/README.md | 7 +- - .../platform/android/tcuAndroidPlatform.cpp | 159 +++++++++++++++++- + .../platform/android/tcuAndroidPlatform.cpp | 237 +++++++++++++++++- targets/android/android.cmake | 5 + - 3 files changed, 164 insertions(+), 7 deletions(-) + 3 files changed, 242 insertions(+), 7 deletions(-) diff --git a/external/openglcts/README.md b/external/openglcts/README.md -index 69eb8a5c1e..f464291858 100644 +index 2eae316f58..24b270aee5 100644 --- a/external/openglcts/README.md +++ b/external/openglcts/README.md @@ -323,9 +323,10 @@ This is identical to the builds on other platforms and is better for iterative @@ -58,15 +70,18 @@ index 69eb8a5c1e..f464291858 100644 cmake -GNinja -DCMAKE_BUILD_TYPE=Debug \ diff --git a/framework/platform/android/tcuAndroidPlatform.cpp b/framework/platform/android/tcuAndroidPlatform.cpp -index af56dabb83..86984202fb 100644 +index af56dabb83..45861c8aee 100644 --- a/framework/platform/android/tcuAndroidPlatform.cpp +++ b/framework/platform/android/tcuAndroidPlatform.cpp -@@ -35,6 +35,12 @@ +@@ -35,6 +35,15 @@ // Assume no call translation is needed #include +#if DE_ANDROID_API >= 24 +#include ++#include ++#include ++#include +#endif +#if DE_ANDROID_API >= 26 +#include @@ -74,27 +89,75 @@ index af56dabb83..86984202fb 100644 struct egl_native_pixmap_t; DE_STATIC_ASSERT(sizeof(eglw::EGLNativeDisplayType) == sizeof(void *)); DE_STATIC_ASSERT(sizeof(eglw::EGLNativePixmapType) == sizeof(struct egl_native_pixmap_t *)); -@@ -136,6 +142,81 @@ private: +@@ -136,6 +145,141 @@ private: WindowRegistry &m_windowRegistry; }; +#if DE_ANDROID_API >= 24 -+static ANativeWindow *acquireImageReaderWindow(int width, int height, int32_t format, AImageReader **outReader) ++struct ImageQueue ++{ ++ std::mutex lock; ++ std::atomic closing{false}; ++ AImageReader_ImageListener listener; ++ ++ ImageQueue() ++ { ++ listener.context = this; ++ listener.onImageAvailable = onImageAvailable; ++ } ++ ++ ~ImageQueue() ++ { ++ } ++ ++ static void onImageAvailable(void *context, AImageReader *reader) ++ { ++ ImageQueue *queue = reinterpret_cast(context); ++ ++ std::unique_lock guard(queue->lock, std::try_to_lock); ++ if (!guard.owns_lock() || queue->closing.load(std::memory_order_acquire)) ++ return; ++ ++ AImage *image = nullptr; ++ ++#if DE_ANDROID_API >= 26 ++ int fenceFd = -1; ++ while (AImageReader_acquireNextImageAsync(reader, &image, &fenceFd) == AMEDIA_OK && image != nullptr) ++ { ++ AImage_deleteAsync(image, fenceFd); ++ } ++#else ++ while (AImageReader_acquireNextImage(reader, &image) == AMEDIA_OK && image != nullptr) ++ { ++ AImage_delete(image); ++ } ++#endif ++ } ++}; ++ ++static ANativeWindow *acquireImageReaderWindow(int width, int height, int32_t format, AImageReader **outReader, ++ ImageQueue **outQueue) +{ + AImageReader *reader = nullptr; +#if DE_ANDROID_API >= 26 + uint64_t usage = AHARDWAREBUFFER_USAGE_GPU_SAMPLED_IMAGE | AHARDWAREBUFFER_USAGE_COMPOSER_OVERLAY; -+ media_status_t status = AImageReader_newWithUsage(width, height, format, usage, 2, &reader); ++ media_status_t status = AImageReader_newWithUsage(width, height, format, usage, 4, &reader); +#else -+ media_status_t status = AImageReader_new(width, height, format, 2, &reader); ++ media_status_t status = AImageReader_new(width, height, format, 4, &reader); +#endif + if (status != AMEDIA_OK || !reader) + throw ResourceError("Failed to create AImageReader", nullptr, __FILE__, __LINE__); + ++ *outQueue = new ImageQueue(); ++ AImageReader_setImageListener(reader, &(*outQueue)->listener); ++ + ANativeWindow *nativeWindow = nullptr; + status = AImageReader_getWindow(reader, &nativeWindow); + if (status != AMEDIA_OK || !nativeWindow) + { ++ AImageReader_setImageListener(reader, nullptr); ++ delete *outQueue; ++ *outQueue = nullptr; + AImageReader_delete(reader); + throw ResourceError("Failed to get window from AImageReader", nullptr, __FILE__, __LINE__); + } @@ -106,9 +169,10 @@ index af56dabb83..86984202fb 100644 +class ImageReaderNativeWindow : public eglu::NativeWindow +{ +public: -+ ImageReaderNativeWindow(AImageReader *reader, ANativeWindow *window, int width, int height) ++ ImageReaderNativeWindow(AImageReader *reader, ImageQueue *queue, ANativeWindow *window, int width, int height) + : eglu::NativeWindow(WINDOW_CAPABILITIES) + , m_reader(reader) ++ , m_queue(queue) + , m_window(window) + , m_size(width, height) + { @@ -117,7 +181,17 @@ index af56dabb83..86984202fb 100644 + virtual ~ImageReaderNativeWindow(void) + { + if (m_reader) ++ { ++ if (m_queue) ++ { ++ m_queue->closing.store(true, std::memory_order_release); ++ std::lock_guard guard(m_queue->lock); ++ AImageReader_setImageListener(m_reader, nullptr); ++ } + AImageReader_delete(m_reader); ++ } ++ if (m_queue) ++ delete m_queue; + } + + virtual eglw::EGLNativeWindowType getLegacyNative(void) @@ -148,6 +222,7 @@ index af56dabb83..86984202fb 100644 + +private: + AImageReader *m_reader; ++ ImageQueue *m_queue; + ANativeWindow *m_window; + tcu::IVec2 m_size; +}; @@ -156,7 +231,7 @@ index af56dabb83..86984202fb 100644 // NativeWindow NativeWindow::NativeWindow(Window *window, int width, int height, int32_t format) -@@ -197,10 +278,29 @@ eglu::NativeWindow *NativeWindowFactory::createWindow(const eglu::WindowParams & +@@ -197,10 +341,30 @@ eglu::NativeWindow *NativeWindowFactory::createWindow(const eglu::WindowParams & { Window *window = m_windowRegistry.tryAcquireWindow(); @@ -177,12 +252,13 @@ index af56dabb83..86984202fb 100644 + height = height > 0 ? height : 256; + + AImageReader *reader = nullptr; ++ ImageQueue *queue = nullptr; + // Always use AIMAGE_FORMAT_RGBA_8888: the AImageReader is only used as a + // surface handle provider, and AIMAGE_FORMAT_* constants are not + // interchangeable with ANativeWindow_LegacyFormat values. -+ ANativeWindow *nativeWindow = acquireImageReaderWindow(width, height, AIMAGE_FORMAT_RGBA_8888, &reader); ++ ANativeWindow *nativeWindow = acquireImageReaderWindow(width, height, AIMAGE_FORMAT_RGBA_8888, &reader, &queue); + -+ return new ImageReaderNativeWindow(reader, nativeWindow, width, height); ++ return new ImageReaderNativeWindow(reader, queue, nativeWindow, width, height); +#else + throw ResourceError("Native window is not available", nullptr, __FILE__, __LINE__); +#endif @@ -190,7 +266,7 @@ index af56dabb83..86984202fb 100644 } // NativeDisplayFactory -@@ -279,6 +379,43 @@ private: +@@ -279,6 +443,55 @@ private: tcu::Android::Window &m_window; }; @@ -198,9 +274,10 @@ index af56dabb83..86984202fb 100644 +class ImageReaderVulkanWindow : public vk::wsi::AndroidWindowInterface +{ +public: -+ ImageReaderVulkanWindow(AImageReader *reader, ANativeWindow *window) ++ ImageReaderVulkanWindow(AImageReader *reader, ImageQueue *queue, ANativeWindow *window) + : vk::wsi::AndroidWindowInterface(vk::pt::AndroidNativeWindowPtr(window)) + , m_reader(reader) ++ , m_queue(queue) + { + } + @@ -223,18 +300,29 @@ index af56dabb83..86984202fb 100644 + ~ImageReaderVulkanWindow(void) + { + if (m_reader) ++ { ++ if (m_queue) ++ { ++ m_queue->closing.store(true, std::memory_order_release); ++ std::lock_guard guard(m_queue->lock); ++ AImageReader_setImageListener(m_reader, nullptr); ++ } + AImageReader_delete(m_reader); ++ } ++ if (m_queue) ++ delete m_queue; + } + +private: + AImageReader *m_reader; ++ ImageQueue *m_queue; +}; +#endif + class VulkanDisplay : public vk::wsi::Display { public: -@@ -306,7 +443,21 @@ public: +@@ -306,7 +519,23 @@ public: } } else @@ -245,10 +333,12 @@ index af56dabb83..86984202fb 100644 + width = width > 0 ? width : 256; + height = height > 0 ? height : 256; + -+ AImageReader *reader = nullptr; -+ ANativeWindow *nativeWindow = acquireImageReaderWindow(width, height, AIMAGE_FORMAT_RGBA_8888, &reader); ++ AImageReader *reader = nullptr; ++ ImageQueue *queue = nullptr; ++ ANativeWindow *nativeWindow = ++ acquireImageReaderWindow(width, height, AIMAGE_FORMAT_RGBA_8888, &reader, &queue); + -+ return new ImageReaderVulkanWindow(reader, nativeWindow); ++ return new ImageReaderVulkanWindow(reader, queue, nativeWindow); +#else TCU_THROW(ResourceError, "Native window is not available"); +#endif diff --git a/.gitlab-ci/container/patches/build-deqp-gl_Build-Don-t-build-Vulkan-utilities-for-GL-builds.patch b/.gitlab-ci/container/patches/build-deqp-gl_Build-Don-t-build-Vulkan-utilities-for-GL-builds.patch index c9ba0dc014e..0011b001e04 100644 --- a/.gitlab-ci/container/patches/build-deqp-gl_Build-Don-t-build-Vulkan-utilities-for-GL-builds.patch +++ b/.gitlab-ci/container/patches/build-deqp-gl_Build-Don-t-build-Vulkan-utilities-for-GL-builds.patch @@ -1,4 +1,4 @@ -From 8a9b46a0fd740679ff576ae70e5ac4bae12ac8b0 Mon Sep 17 00:00:00 2001 +From 7d13c48a3d9d679d499f91e066e36340e72255bf Mon Sep 17 00:00:00 2001 From: Daniel Stone Date: Wed, 29 Jan 2025 12:50:33 +0000 Subject: [PATCH] Build: Don't build Vulkan utilities for GL builds @@ -7,14 +7,14 @@ Change-Id: Ie412f914bb6264ffbd502deea57d80cc11a9948e Signed-off-by: Daniel Stone --- framework/platform/CMakeLists.txt | 9 - - .../platform/android/tcuAndroidPlatform.cpp | 177 +----------------- + .../platform/android/tcuAndroidPlatform.cpp | 191 +----------------- .../platform/android/tcuAndroidPlatform.hpp | 14 +- framework/platform/lnx/tcuLnxPlatform.cpp | 9 +- - .../surfaceless/tcuSurfacelessPlatform.cpp | 54 ------ - 5 files changed, 3 insertions(+), 260 deletions(-) + .../surfaceless/tcuSurfacelessPlatform.cpp | 52 ----- + 5 files changed, 3 insertions(+), 272 deletions(-) diff --git a/framework/platform/CMakeLists.txt b/framework/platform/CMakeLists.txt -index 64d248b30f..833df5a08a 100644 +index 8f6e0c5847..a675b815a9 100644 --- a/framework/platform/CMakeLists.txt +++ b/framework/platform/CMakeLists.txt @@ -15,8 +15,6 @@ if (NOT DEFINED TCUTIL_PLATFORM_SRCS) @@ -35,7 +35,7 @@ index 64d248b30f..833df5a08a 100644 ) include_directories(lnx) -@@ -168,8 +164,6 @@ if (NOT DEFINED TCUTIL_PLATFORM_SRCS) +@@ -170,8 +166,6 @@ if (NOT DEFINED TCUTIL_PLATFORM_SRCS) set(TCUTIL_PLATFORM_SRCS osx/tcuOSXPlatform.cpp osx/tcuOSXPlatform.hpp @@ -44,7 +44,7 @@ index 64d248b30f..833df5a08a 100644 osx/tcuOSXMetalView.mm osx/tcuOSXMetalView.hpp ) -@@ -195,9 +189,6 @@ if (DEQP_USE_WAYLAND) +@@ -197,9 +191,6 @@ if (DEQP_USE_WAYLAND) add_dependencies(tcutil-platform deqp-xdg-shell) endif() @@ -55,7 +55,7 @@ index 64d248b30f..833df5a08a 100644 # Always link to glutil as some platforms such as Win32 always support GL diff --git a/framework/platform/android/tcuAndroidPlatform.cpp b/framework/platform/android/tcuAndroidPlatform.cpp -index 9b117f50c6..b007c783cf 100644 +index 45861c8aee..c1054656ed 100644 --- a/framework/platform/android/tcuAndroidPlatform.cpp +++ b/framework/platform/android/tcuAndroidPlatform.cpp @@ -31,7 +31,6 @@ @@ -66,7 +66,7 @@ index 9b117f50c6..b007c783cf 100644 // Assume no call translation is needed #include -@@ -309,153 +308,6 @@ eglu::NativeDisplay *NativeDisplayFactory::createDisplay(const EGLAttrib *attrib +@@ -381,167 +380,6 @@ eglu::NativeDisplay *NativeDisplayFactory::createDisplay(const EGLAttrib *attrib return new NativeDisplay(); } @@ -136,9 +136,10 @@ index 9b117f50c6..b007c783cf 100644 -class ImageReaderVulkanWindow : public vk::wsi::AndroidWindowInterface -{ -public: -- ImageReaderVulkanWindow(AImageReader *reader, ANativeWindow *window) +- ImageReaderVulkanWindow(AImageReader *reader, ImageQueue *queue, ANativeWindow *window) - : vk::wsi::AndroidWindowInterface(vk::pt::AndroidNativeWindowPtr(window)) - , m_reader(reader) +- , m_queue(queue) - { - } - @@ -161,11 +162,22 @@ index 9b117f50c6..b007c783cf 100644 - ~ImageReaderVulkanWindow(void) - { - if (m_reader) +- { +- if (m_queue) +- { +- m_queue->closing.store(true, std::memory_order_release); +- std::lock_guard guard(m_queue->lock); +- AImageReader_setImageListener(m_reader, nullptr); +- } - AImageReader_delete(m_reader); +- } +- if (m_queue) +- delete m_queue; - } - -private: - AImageReader *m_reader; +- ImageQueue *m_queue; -}; -#endif - @@ -203,10 +215,12 @@ index 9b117f50c6..b007c783cf 100644 - width = width > 0 ? width : 256; - height = height > 0 ? height : 256; - -- AImageReader *reader = nullptr; -- ANativeWindow *nativeWindow = acquireImageReaderWindow(width, height, AIMAGE_FORMAT_RGBA_8888, &reader); +- AImageReader *reader = nullptr; +- ImageQueue *queue = nullptr; +- ANativeWindow *nativeWindow = +- acquireImageReaderWindow(width, height, AIMAGE_FORMAT_RGBA_8888, &reader, &queue); - -- return new ImageReaderVulkanWindow(reader, nativeWindow); +- return new ImageReaderVulkanWindow(reader, queue, nativeWindow); -#else - TCU_THROW(ResourceError, "Native window is not available"); -#endif @@ -220,7 +234,7 @@ index 9b117f50c6..b007c783cf 100644 static size_t getTotalSystemMemory(ANativeActivity *activity) { const size_t MiB = (size_t)(1 << 20); -@@ -484,8 +336,7 @@ static size_t getTotalSystemMemory(ANativeActivity *activity) +@@ -570,8 +408,7 @@ static size_t getTotalSystemMemory(ANativeActivity *activity) // Platform Platform::Platform(NativeActivity &activity) @@ -230,7 +244,7 @@ index 9b117f50c6..b007c783cf 100644 { m_nativeDisplayFactoryRegistry.registerFactory(new NativeDisplayFactory(m_windowRegistry)); m_contextFactoryRegistry.registerFactory(new eglu::GLContextFactory(m_nativeDisplayFactoryRegistry)); -@@ -501,16 +352,6 @@ bool Platform::processEvents(void) +@@ -587,16 +424,6 @@ bool Platform::processEvents(void) return true; } @@ -247,7 +261,7 @@ index 9b117f50c6..b007c783cf 100644 void Platform::getMemoryLimits(tcu::PlatformMemoryLimits &limits) const { // Worst-case estimates -@@ -544,22 +385,6 @@ void Platform::getMemoryLimits(tcu::PlatformMemoryLimits &limits) const +@@ -630,22 +457,6 @@ void Platform::getMemoryLimits(tcu::PlatformMemoryLimits &limits) const limits.devicePageTableHierarchyLevels = 3; } @@ -360,7 +374,7 @@ index 8c0a3ef06e..6b1a4985a1 100644 #if defined(DEQP_SUPPORT_GLX) m_glPlatform.registerFactory(x11::glx::createContextFactory(m_eventState)); diff --git a/framework/platform/surfaceless/tcuSurfacelessPlatform.cpp b/framework/platform/surfaceless/tcuSurfacelessPlatform.cpp -index 2224f4164e..c9f044b130 100644 +index 2224f4164e..713c4ee9e2 100644 --- a/framework/platform/surfaceless/tcuSurfacelessPlatform.cpp +++ b/framework/platform/surfaceless/tcuSurfacelessPlatform.cpp @@ -43,7 +43,6 @@ @@ -424,7 +438,7 @@ index 2224f4164e..c9f044b130 100644 bool isEGLExtensionSupported(const eglw::Library &egl, eglw::EGLDisplay, const std::string &extName) { const vector exts = eglu::getClientExtensions(egl); -@@ -191,13 +144,6 @@ public: +@@ -191,13 +144,8 @@ public: { return *this; } @@ -432,8 +446,8 @@ index 2224f4164e..c9f044b130 100644 - { - return m_vkPlatform; - } -- --private: + + private: - VulkanPlatform m_vkPlatform; }; diff --git a/.gitlab-ci/image-tags.yml b/.gitlab-ci/image-tags.yml index 441b571f716..ca263736a04 100644 --- a/.gitlab-ci/image-tags.yml +++ b/.gitlab-ci/image-tags.yml @@ -23,7 +23,7 @@ variables: DEBIAN_BUILD_TAG: "20260430-imgui.2" DEBIAN_TEST_BASE_TAG: "20260502-virgl" - DEBIAN_TEST_ANDROID_TAG: "20260514-vkbackport" + DEBIAN_TEST_ANDROID_TAG: "20260515-wsi-fix" DEBIAN_TEST_GL_TAG: "20260515-vvl-d5" DEBIAN_TEST_VIDEO_TAG: "20260512-vkuprev" DEBIAN_TEST_VK_TAG: "20260514-vkbackport" diff --git a/src/freedreno/ci/freedreno-a618-fails.txt b/src/freedreno/ci/freedreno-a618-fails.txt index 3b6cbf8e896..b15c9249f08 100644 --- a/src/freedreno/ci/freedreno-a618-fails.txt +++ b/src/freedreno/ci/freedreno-a618-fails.txt @@ -510,42 +510,3 @@ dEQP-VK.sparse_resources.buffer.ssbo.sparse_residency.buffer_size_2_17,Fail dEQP-VK.sparse_resources.buffer.ssbo.sparse_residency.buffer_size_2_20,Fail dEQP-VK.sparse_resources.buffer.ssbo.sparse_residency.buffer_size_2_24,Fail gmem-dEQP-VK.sparse_resources.buffer.ssbo.sparse_residency.buffer_size_2_24,Fail - -# VKCTS 1.4.4.2 -> 1.4.5.3 uprev -# Errors like "dEQP-VK.wsi.android.maintenance1.deferred_alloc.fifo.basic: -# vkd.acquireNextImageKHR(device, *swapchains[j], kAcquireImageTimeout, -# acquireSem.back(), VK_NULL_HANDLE, &imageIndex[j]): VK_TIMEOUT at -# vktWsiMaintenance1Tests.cpp:973 (Fail)" -awsi-dEQP-VK.wsi.android.maintenance1.deferred_alloc.fifo.basic,Fail -awsi-dEQP-VK.wsi.android.maintenance1.deferred_alloc.fifo.bind_image,Fail -awsi-dEQP-VK.wsi.android.maintenance1.present_fence.fifo.basic,Fail -awsi-dEQP-VK.wsi.android.maintenance1.present_fence.fifo.ordering,Fail -awsi-dEQP-VK.wsi.android.maintenance1.present_modes.fifo.change_modes,Fail -awsi-dEQP-VK.wsi.android.maintenance1.release_images.fifo.no_scaling.basic,Fail -awsi-dEQP-VK.wsi.android.maintenance1.release_images.fifo.no_scaling.release_before_present,Fail -awsi-dEQP-VK.wsi.android.maintenance1.release_images.fifo.no_scaling.resize_window_after_acquire_release_before_retire,Fail -awsi-dEQP-VK.wsi.android.maintenance1.release_images.fifo.no_scaling.resize_window_after_acquire,Fail -awsi-dEQP-VK.wsi.android.maintenance1.release_images.fifo.no_scaling.resize_window,Fail -awsi-dEQP-VK.wsi.android.maintenance1.release_images.fifo.stretch.basic,Fail -awsi-dEQP-VK.wsi.android.maintenance1.release_images.fifo.stretch.release_before_present,Fail -awsi-dEQP-VK.wsi.android.maintenance1.release_images.fifo.stretch.resize_window_after_acquire_release_before_retire,Fail -awsi-dEQP-VK.wsi.android.maintenance1.release_images.fifo.stretch.resize_window_after_acquire,Fail -awsi-dEQP-VK.wsi.android.maintenance1.release_images.fifo.stretch.resize_window,Fail -awsi-dEQP-VK.wsi.android.maintenance1.scaling.fifo.stretch.same_size_and_aspect,Fail -awsi-dEQP-VK.wsi.android.maintenance1.scaling.fifo.stretch.swapchain_bigger_same_aspect,Fail -awsi-dEQP-VK.wsi.android.maintenance1.scaling.fifo.stretch.swapchain_bigger_taller_aspect,Fail -awsi-dEQP-VK.wsi.android.maintenance1.scaling.fifo.stretch.swapchain_bigger_wider_aspect,Fail -awsi-dEQP-VK.wsi.android.maintenance1.scaling.fifo.stretch.swapchain_smaller_same_aspect,Fail -awsi-dEQP-VK.wsi.android.maintenance1.scaling.fifo.stretch.swapchain_smaller_taller_aspect,Fail -awsi-dEQP-VK.wsi.android.maintenance1.scaling.fifo.stretch.swapchain_smaller_wider_aspect,Fail -awsi-dEQP-VK.wsi.android.maintenance1.scaling.fifo.stretch.swapchain_taller,Fail -awsi-dEQP-VK.wsi.android.maintenance1.scaling.fifo.stretch.swapchain_wider,Fail -awsi-dEQP-VK.wsi.android.maintenance1.scaling.resize_window.fifo.stretch.same_size_and_aspect,Fail -awsi-dEQP-VK.wsi.android.maintenance1.scaling.resize_window.fifo.stretch.swapchain_bigger_same_aspect,Fail -awsi-dEQP-VK.wsi.android.maintenance1.scaling.resize_window.fifo.stretch.swapchain_bigger_taller_aspect,Fail -awsi-dEQP-VK.wsi.android.maintenance1.scaling.resize_window.fifo.stretch.swapchain_bigger_wider_aspect,Fail -awsi-dEQP-VK.wsi.android.maintenance1.scaling.resize_window.fifo.stretch.swapchain_smaller_same_aspect,Fail -awsi-dEQP-VK.wsi.android.maintenance1.scaling.resize_window.fifo.stretch.swapchain_smaller_taller_aspect,Fail -awsi-dEQP-VK.wsi.android.maintenance1.scaling.resize_window.fifo.stretch.swapchain_smaller_wider_aspect,Fail -awsi-dEQP-VK.wsi.android.maintenance1.scaling.resize_window.fifo.stretch.swapchain_taller,Fail -awsi-dEQP-VK.wsi.android.maintenance1.scaling.resize_window.fifo.stretch.swapchain_wider,Fail diff --git a/src/gallium/frontends/lavapipe/ci/lvp-android-angle-fails.txt b/src/gallium/frontends/lavapipe/ci/lvp-android-angle-fails.txt index edeaf7ee25d..c705eae6037 100644 --- a/src/gallium/frontends/lavapipe/ci/lvp-android-angle-fails.txt +++ b/src/gallium/frontends/lavapipe/ci/lvp-android-angle-fails.txt @@ -143,42 +143,3 @@ dEQP-EGL.functional.robustness.reset_context.shaders.out_of_bounds_non_robust.re dEQP-EGL.functional.robustness.reset_context.shaders.out_of_bounds_non_robust.reset_status.writes.local_array.compute,Crash dEQP-EGL.functional.robustness.reset_context.shaders.out_of_bounds_non_robust.reset_status.writes.shader_storage_block.compute,Crash dEQP-EGL.functional.robustness.reset_context.shaders.out_of_bounds_non_robust.reset_status.writes.uniform_block.compute,Crash - -# VKCTS 1.4.4.2 -> 1.4.5.3 uprev -# Errors like "dEQP-VK.wsi.android.maintenance1.deferred_alloc.fifo.basic: -# vkd.acquireNextImageKHR(device, *swapchains[j], kAcquireImageTimeout, -# acquireSem.back(), VK_NULL_HANDLE, &imageIndex[j]): VK_TIMEOUT at -# vktWsiMaintenance1Tests.cpp:973 (Fail)" -dEQP-VK.wsi.android.maintenance1.deferred_alloc.fifo.basic,Fail -dEQP-VK.wsi.android.maintenance1.deferred_alloc.fifo.bind_image,Fail -dEQP-VK.wsi.android.maintenance1.present_fence.fifo.basic,Fail -dEQP-VK.wsi.android.maintenance1.present_fence.fifo.ordering,Fail -dEQP-VK.wsi.android.maintenance1.present_modes.fifo.change_modes,Fail -dEQP-VK.wsi.android.maintenance1.release_images.fifo.no_scaling.basic,Fail -dEQP-VK.wsi.android.maintenance1.release_images.fifo.no_scaling.release_before_present,Fail -dEQP-VK.wsi.android.maintenance1.release_images.fifo.no_scaling.resize_window_after_acquire_release_before_retire,Fail -dEQP-VK.wsi.android.maintenance1.release_images.fifo.no_scaling.resize_window_after_acquire,Fail -dEQP-VK.wsi.android.maintenance1.release_images.fifo.no_scaling.resize_window,Fail -dEQP-VK.wsi.android.maintenance1.release_images.fifo.stretch.basic,Fail -dEQP-VK.wsi.android.maintenance1.release_images.fifo.stretch.release_before_present,Fail -dEQP-VK.wsi.android.maintenance1.release_images.fifo.stretch.resize_window_after_acquire_release_before_retire,Fail -dEQP-VK.wsi.android.maintenance1.release_images.fifo.stretch.resize_window_after_acquire,Fail -dEQP-VK.wsi.android.maintenance1.release_images.fifo.stretch.resize_window,Fail -dEQP-VK.wsi.android.maintenance1.scaling.fifo.stretch.same_size_and_aspect,Fail -dEQP-VK.wsi.android.maintenance1.scaling.fifo.stretch.swapchain_bigger_same_aspect,Fail -dEQP-VK.wsi.android.maintenance1.scaling.fifo.stretch.swapchain_bigger_taller_aspect,Fail -dEQP-VK.wsi.android.maintenance1.scaling.fifo.stretch.swapchain_bigger_wider_aspect,Fail -dEQP-VK.wsi.android.maintenance1.scaling.fifo.stretch.swapchain_smaller_same_aspect,Fail -dEQP-VK.wsi.android.maintenance1.scaling.fifo.stretch.swapchain_smaller_taller_aspect,Fail -dEQP-VK.wsi.android.maintenance1.scaling.fifo.stretch.swapchain_smaller_wider_aspect,Fail -dEQP-VK.wsi.android.maintenance1.scaling.fifo.stretch.swapchain_taller,Fail -dEQP-VK.wsi.android.maintenance1.scaling.fifo.stretch.swapchain_wider,Fail -dEQP-VK.wsi.android.maintenance1.scaling.resize_window.fifo.stretch.same_size_and_aspect,Fail -dEQP-VK.wsi.android.maintenance1.scaling.resize_window.fifo.stretch.swapchain_bigger_same_aspect,Fail -dEQP-VK.wsi.android.maintenance1.scaling.resize_window.fifo.stretch.swapchain_bigger_taller_aspect,Fail -dEQP-VK.wsi.android.maintenance1.scaling.resize_window.fifo.stretch.swapchain_bigger_wider_aspect,Fail -dEQP-VK.wsi.android.maintenance1.scaling.resize_window.fifo.stretch.swapchain_smaller_same_aspect,Fail -dEQP-VK.wsi.android.maintenance1.scaling.resize_window.fifo.stretch.swapchain_smaller_taller_aspect,Fail -dEQP-VK.wsi.android.maintenance1.scaling.resize_window.fifo.stretch.swapchain_smaller_wider_aspect,Fail -dEQP-VK.wsi.android.maintenance1.scaling.resize_window.fifo.stretch.swapchain_taller,Fail -dEQP-VK.wsi.android.maintenance1.scaling.resize_window.fifo.stretch.swapchain_wider,Fail diff --git a/src/gallium/frontends/lavapipe/ci/lvp-android-angle-skips.txt b/src/gallium/frontends/lavapipe/ci/lvp-android-angle-skips.txt deleted file mode 100644 index 4db08e1f4d1..00000000000 --- a/src/gallium/frontends/lavapipe/ci/lvp-android-angle-skips.txt +++ /dev/null @@ -1,2 +0,0 @@ -# Timeouts with the CTS 1.4.4.2 -> 1.4.5.3 uprev -dEQP-VK.wsi.android.incremental_present.* diff --git a/src/virtio/ci/android-angle-venus-anv-fails.txt b/src/virtio/ci/android-angle-venus-anv-fails.txt index 6b8d14813a0..8615fa5426c 100644 --- a/src/virtio/ci/android-angle-venus-anv-fails.txt +++ b/src/virtio/ci/android-angle-venus-anv-fails.txt @@ -3,38 +3,3 @@ dEQP-VK.synchronization.timeline_semaphore.wait_before_signal.write_blit_image_r dEQP-VK.synchronization.timeline_semaphore.wait_before_signal.write_copy_buffer_to_image_read_copy_image.image_128x128_r8g8b8a8_unorm,Fail dEQP-VK.synchronization2.timeline_semaphore.wait_before_signal.write_blit_image_read_image_vertex.image_128x128_r16g16b16a16_uint,Fail dEQP-VK.synchronization2.timeline_semaphore.wait_before_signal.write_copy_buffer_to_image_read_image_tess_eval.image_128x128_r8g8b8a8_unorm,Fail - -# VKCTS 1.4.4.2 -> 1.4.5.3 uprev -awsi-dEQP-VK.wsi.android.maintenance1.deferred_alloc.fifo.basic,Fail -awsi-dEQP-VK.wsi.android.maintenance1.deferred_alloc.fifo.bind_image,Fail -awsi-dEQP-VK.wsi.android.maintenance1.present_fence.fifo.basic,Fail -awsi-dEQP-VK.wsi.android.maintenance1.present_fence.fifo.ordering,Fail -awsi-dEQP-VK.wsi.android.maintenance1.present_modes.fifo.change_modes,Fail -awsi-dEQP-VK.wsi.android.maintenance1.release_images.fifo.no_scaling.basic,Fail -awsi-dEQP-VK.wsi.android.maintenance1.release_images.fifo.no_scaling.release_before_present,Fail -awsi-dEQP-VK.wsi.android.maintenance1.release_images.fifo.no_scaling.resize_window_after_acquire_release_before_retire,Fail -awsi-dEQP-VK.wsi.android.maintenance1.release_images.fifo.no_scaling.resize_window_after_acquire,Fail -awsi-dEQP-VK.wsi.android.maintenance1.release_images.fifo.no_scaling.resize_window,Fail -awsi-dEQP-VK.wsi.android.maintenance1.release_images.fifo.stretch.basic,Fail -awsi-dEQP-VK.wsi.android.maintenance1.release_images.fifo.stretch.release_before_present,Fail -awsi-dEQP-VK.wsi.android.maintenance1.release_images.fifo.stretch.resize_window_after_acquire_release_before_retire,Fail -awsi-dEQP-VK.wsi.android.maintenance1.release_images.fifo.stretch.resize_window_after_acquire,Fail -awsi-dEQP-VK.wsi.android.maintenance1.release_images.fifo.stretch.resize_window,Fail -awsi-dEQP-VK.wsi.android.maintenance1.scaling.fifo.stretch.same_size_and_aspect,Fail -awsi-dEQP-VK.wsi.android.maintenance1.scaling.fifo.stretch.swapchain_bigger_same_aspect,Fail -awsi-dEQP-VK.wsi.android.maintenance1.scaling.fifo.stretch.swapchain_bigger_taller_aspect,Fail -awsi-dEQP-VK.wsi.android.maintenance1.scaling.fifo.stretch.swapchain_bigger_wider_aspect,Fail -awsi-dEQP-VK.wsi.android.maintenance1.scaling.fifo.stretch.swapchain_smaller_same_aspect,Fail -awsi-dEQP-VK.wsi.android.maintenance1.scaling.fifo.stretch.swapchain_smaller_taller_aspect,Fail -awsi-dEQP-VK.wsi.android.maintenance1.scaling.fifo.stretch.swapchain_smaller_wider_aspect,Fail -awsi-dEQP-VK.wsi.android.maintenance1.scaling.fifo.stretch.swapchain_taller,Fail -awsi-dEQP-VK.wsi.android.maintenance1.scaling.fifo.stretch.swapchain_wider,Fail -awsi-dEQP-VK.wsi.android.maintenance1.scaling.resize_window.fifo.stretch.same_size_and_aspect,Fail -awsi-dEQP-VK.wsi.android.maintenance1.scaling.resize_window.fifo.stretch.swapchain_bigger_same_aspect,Fail -awsi-dEQP-VK.wsi.android.maintenance1.scaling.resize_window.fifo.stretch.swapchain_bigger_taller_aspect,Fail -awsi-dEQP-VK.wsi.android.maintenance1.scaling.resize_window.fifo.stretch.swapchain_bigger_wider_aspect,Fail -awsi-dEQP-VK.wsi.android.maintenance1.scaling.resize_window.fifo.stretch.swapchain_smaller_same_aspect,Fail -awsi-dEQP-VK.wsi.android.maintenance1.scaling.resize_window.fifo.stretch.swapchain_smaller_taller_aspect,Fail -awsi-dEQP-VK.wsi.android.maintenance1.scaling.resize_window.fifo.stretch.swapchain_smaller_wider_aspect,Fail -awsi-dEQP-VK.wsi.android.maintenance1.scaling.resize_window.fifo.stretch.swapchain_taller,Fail -awsi-dEQP-VK.wsi.android.maintenance1.scaling.resize_window.fifo.stretch.swapchain_wider,Fail