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 <valentine.burley@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/41541>
This commit is contained in:
Valentine Burley 2026-05-13 14:44:01 +02:00 committed by Marge Bot
parent f7fed3bdf8
commit 6cf5da8dd3
7 changed files with 146 additions and 157 deletions

View file

@ -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 <valentine.burley@collabora.com>
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 <valentine.burley@collabora.com>
---
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 <path to openglcts> -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 <android/native_window.h>
+#if DE_ANDROID_API >= 24
+#include <media/NdkImageReader.h>
+#include <media/NdkImage.h>
+#include <mutex>
+#include <atomic>
+#endif
+#if DE_ANDROID_API >= 26
+#include <android/hardware_buffer.h>
@ -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<bool> closing{false};
+ AImageReader_ImageListener listener;
+
+ ImageQueue()
+ {
+ listener.context = this;
+ listener.onImageAvailable = onImageAvailable;
+ }
+
+ ~ImageQueue()
+ {
+ }
+
+ static void onImageAvailable(void *context, AImageReader *reader)
+ {
+ ImageQueue *queue = reinterpret_cast<ImageQueue *>(context);
+
+ std::unique_lock<std::mutex> 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<std::mutex> 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<std::mutex> 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

View file

@ -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 <daniels@collabora.com>
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 <daniels@collabora.com>
---
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 <android/native_window.h>
@@ -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<std::mutex> 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<string> 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;
};

View file

@ -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"

View file

@ -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

View file

@ -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

View file

@ -1,2 +0,0 @@
# Timeouts with the CTS 1.4.4.2 -> 1.4.5.3 uprev
dEQP-VK.wsi.android.incremental_present.*

View file

@ -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