mirror of
https://gitlab.freedesktop.org/mesa/mesa.git
synced 2026-05-18 22:28:06 +02:00
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:
parent
f7fed3bdf8
commit
6cf5da8dd3
7 changed files with 146 additions and 157 deletions
|
|
@ -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
|
||||
|
|
|
|||
|
|
@ -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;
|
||||
};
|
||||
|
||||
|
|
|
|||
|
|
@ -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"
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
|
|
|||
|
|
@ -1,2 +0,0 @@
|
|||
# Timeouts with the CTS 1.4.4.2 -> 1.4.5.3 uprev
|
||||
dEQP-VK.wsi.android.incremental_present.*
|
||||
|
|
@ -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
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue