diff --git a/.gitlab-ci/container/build-deqp.sh b/.gitlab-ci/container/build-deqp.sh index 55e2d3c2240..8f88916fa67 100755 --- a/.gitlab-ci/container/build-deqp.sh +++ b/.gitlab-ci/container/build-deqp.sh @@ -64,6 +64,7 @@ gl_cts_commits_to_backport=( # shellcheck disable=SC2034 gl_cts_patch_files=( + build-deqp-gl_Build-Don-t-build-Vulkan-utilities-for-GL-builds.patch ) if [ "${DEQP_TARGET}" = 'android' ]; then @@ -85,6 +86,7 @@ gles_cts_commits_to_backport=( # shellcheck disable=SC2034 gles_cts_patch_files=( + build-deqp-gl_Build-Don-t-build-Vulkan-utilities-for-GL-builds.patch ) if [ "${DEQP_TARGET}" = 'android' ]; then 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 new file mode 100644 index 00000000000..59dacabf807 --- /dev/null +++ b/.gitlab-ci/container/patches/build-deqp-gl_Build-Don-t-build-Vulkan-utilities-for-GL-builds.patch @@ -0,0 +1,328 @@ +From 4f53bcbb597a91bab715bc8d555cfd6c81263ac1 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 + +Change-Id: Ie412f914bb6264ffbd502deea57d80cc11a9948e +Signed-off-by: Daniel Stone +--- + framework/platform/CMakeLists.txt | 9 -- + .../platform/android/tcuAndroidPlatform.cpp | 118 ------------------ + framework/platform/lnx/tcuLnxPlatform.cpp | 9 +- + .../surfaceless/tcuSurfacelessPlatform.cpp | 54 -------- + 4 files changed, 1 insertion(+), 189 deletions(-) + +diff --git a/framework/platform/CMakeLists.txt b/framework/platform/CMakeLists.txt +index ec1deb5c2..49fe412a7 100644 +--- a/framework/platform/CMakeLists.txt ++++ b/framework/platform/CMakeLists.txt +@@ -15,8 +15,6 @@ if (NOT DEFINED TCUTIL_PLATFORM_SRCS) + win32/tcuWin32Window.hpp + win32/tcuWin32EGLNativeDisplayFactory.hpp + win32/tcuWin32EGLNativeDisplayFactory.cpp +- win32/tcuWin32VulkanPlatform.hpp +- win32/tcuWin32VulkanPlatform.cpp + ) + + elseif ((DE_OS_IS_UNIX OR DE_OS_IS_OSX) AND (DEQP_USE_X11 OR DEQP_USE_WAYLAND OR DEQP_USE_HEADLESS)) +@@ -28,8 +26,6 @@ if (NOT DEFINED TCUTIL_PLATFORM_SRCS) + lnx/tcuLnxPlatform.hpp + lnx/tcuLnxEglPlatform.hpp + lnx/tcuLnxEglPlatform.cpp +- lnx/tcuLnxVulkanPlatform.hpp +- lnx/tcuLnxVulkanPlatform.cpp + ) + + include_directories(lnx) +@@ -164,8 +160,6 @@ if (NOT DEFINED TCUTIL_PLATFORM_SRCS) + set(TCUTIL_PLATFORM_SRCS + osx/tcuOSXPlatform.cpp + osx/tcuOSXPlatform.hpp +- osx/tcuOSXVulkanPlatform.cpp +- osx/tcuOSXVulkanPlatform.hpp + osx/tcuOSXMetalView.mm + osx/tcuOSXMetalView.hpp + ) +@@ -191,9 +185,6 @@ if (DEQP_USE_WAYLAND) + add_dependencies(tcutil-platform deqp-xdg-shell) + endif() + +-# Add vkutil to the deps before tcutil so that it picks up the c++11 dependencies +-target_link_libraries(tcutil-platform vkutil) +- + target_link_libraries(tcutil-platform tcutil ${TCUTIL_PLATFORM_LIBS}) + + # 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 0472fa615..87033ad56 100644 +--- a/framework/platform/android/tcuAndroidPlatform.cpp ++++ b/framework/platform/android/tcuAndroidPlatform.cpp +@@ -31,7 +31,6 @@ + #include "eglwLibrary.hpp" + #include "eglwEnums.hpp" + #include "tcuFunctionLibrary.hpp" +-#include "vkWsiPlatform.hpp" + + // Assume no call translation is needed + #include +@@ -217,102 +216,6 @@ eglu::NativeDisplay *NativeDisplayFactory::createDisplay(const EGLAttrib *attrib + return new NativeDisplay(); + } + +-// Vulkan +- +-class VulkanLibrary : public vk::Library +-{ +-public: +- VulkanLibrary(const char *libraryPath) +- : m_library(libraryPath != DE_NULL ? libraryPath : "libvulkan.so") +- , m_driver(m_library) +- { +- } +- +- const vk::PlatformInterface &getPlatformInterface(void) const +- { +- return m_driver; +- } +- +- const tcu::FunctionLibrary &getFunctionLibrary(void) const +- { +- return m_library; +- } +- +-private: +- const tcu::DynamicFunctionLibrary m_library; +- const vk::PlatformDriver m_driver; +-}; +- +-DE_STATIC_ASSERT(sizeof(vk::pt::AndroidNativeWindowPtr) == sizeof(ANativeWindow *)); +- +-class VulkanWindow : public vk::wsi::AndroidWindowInterface +-{ +-public: +- VulkanWindow(tcu::Android::Window &window) +- : vk::wsi::AndroidWindowInterface(vk::pt::AndroidNativeWindowPtr(window.getNativeWindow())) +- , m_window(window) +- { +- } +- +- void setVisible(bool visible) +- { +- DE_UNREF(visible); +- } +- +- void resize(const UVec2 &newSize) +- { +- DE_UNREF(newSize); +- } +- +- void setMinimized(bool minimized) +- { +- DE_UNREF(minimized); +- TCU_THROW(NotSupportedError, "Minimized on Android is not implemented"); +- } +- +- ~VulkanWindow(void) +- { +- m_window.release(); +- } +- +-private: +- tcu::Android::Window &m_window; +-}; +- +-class VulkanDisplay : public vk::wsi::Display +-{ +-public: +- VulkanDisplay(WindowRegistry &windowRegistry) : m_windowRegistry(windowRegistry) +- { +- } +- +- vk::wsi::Window *createWindow(const Maybe &initialSize) const +- { +- Window *const window = m_windowRegistry.tryAcquireWindow(); +- +- if (window) +- { +- try +- { +- if (initialSize) +- window->setBuffersGeometry((int)initialSize->x(), (int)initialSize->y(), WINDOW_FORMAT_RGBA_8888); +- +- return new VulkanWindow(*window); +- } +- catch (...) +- { +- window->release(); +- throw; +- } +- } +- else +- TCU_THROW(ResourceError, "Native window is not available"); +- } +- +-private: +- WindowRegistry &m_windowRegistry; +-}; +- + static size_t getTotalSystemMemory(ANativeActivity *activity) + { + const size_t MiB = (size_t)(1 << 20); +@@ -355,11 +258,6 @@ bool Platform::processEvents(void) + return true; + } + +-vk::Library *Platform::createLibrary(const char *libraryPath) const +-{ +- return new VulkanLibrary(libraryPath); +-} +- + void Platform::describePlatform(std::ostream &dst) const + { + tcu::Android::describePlatform(m_activity.getNativeActivity(), dst); +@@ -398,21 +296,5 @@ void Platform::getMemoryLimits(tcu::PlatformMemoryLimits &limits) const + limits.devicePageTableHierarchyLevels = 3; + } + +-vk::wsi::Display *Platform::createWsiDisplay(vk::wsi::Type wsiType) const +-{ +- if (wsiType == vk::wsi::TYPE_ANDROID) +- return new VulkanDisplay(const_cast(m_windowRegistry)); +- else +- TCU_THROW(NotSupportedError, "WSI type not supported on Android"); +-} +- +-bool Platform::hasDisplay(vk::wsi::Type wsiType) const +-{ +- if (wsiType == vk::wsi::TYPE_ANDROID) +- return true; +- +- return false; +-} +- + } // namespace Android + } // namespace tcu +diff --git a/framework/platform/lnx/tcuLnxPlatform.cpp b/framework/platform/lnx/tcuLnxPlatform.cpp +index 8c0a3ef06..6b1a4985a 100644 +--- a/framework/platform/lnx/tcuLnxPlatform.cpp ++++ b/framework/platform/lnx/tcuLnxPlatform.cpp +@@ -23,12 +23,10 @@ + + #include "tcuLnxPlatform.hpp" + +-#include "tcuLnxVulkanPlatform.hpp" + #include "tcuLnxEglPlatform.hpp" + + #include "deUniquePtr.hpp" + #include "gluPlatform.hpp" +-#include "vkPlatform.hpp" + + #if defined(DEQP_SUPPORT_X11) + #include +@@ -64,10 +62,6 @@ public: + return !m_eventState.getQuitFlag(); + } + +- const vk::Platform &getVulkanPlatform(void) const +- { +- return m_vkPlatform; +- } + const eglu::Platform &getEGLPlatform(void) const + { + return m_eglPlatform; +@@ -79,12 +73,11 @@ public: + + private: + EventState m_eventState; +- VulkanPlatform m_vkPlatform; + egl::Platform m_eglPlatform; + LinuxGLPlatform m_glPlatform; + }; + +-LinuxPlatform::LinuxPlatform(void) : m_vkPlatform(m_eventState), m_eglPlatform(m_eventState) ++LinuxPlatform::LinuxPlatform(void) : m_eglPlatform(m_eventState) + { + #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 1cea9dd97..3d5bd8b62 100644 +--- a/framework/platform/surfaceless/tcuSurfacelessPlatform.cpp ++++ b/framework/platform/surfaceless/tcuSurfacelessPlatform.cpp +@@ -43,7 +43,6 @@ + #include "tcuPixelFormat.hpp" + #include "tcuPlatform.hpp" + #include "tcuRenderTarget.hpp" +-#include "vkPlatform.hpp" + + #include + +@@ -93,52 +92,6 @@ namespace tcu + namespace surfaceless + { + +-class VulkanLibrary : public vk::Library +-{ +-public: +- VulkanLibrary(const char *libraryPath) +- : m_library(libraryPath != DE_NULL ? libraryPath : DEQP_VULKAN_LIBRARY_PATH) +- , m_driver(m_library) +- { +- } +- +- const vk::PlatformInterface &getPlatformInterface(void) const +- { +- return m_driver; +- } +- const tcu::FunctionLibrary &getFunctionLibrary(void) const +- { +- return m_library; +- } +- +-private: +- const tcu::DynamicFunctionLibrary m_library; +- const vk::PlatformDriver m_driver; +-}; +- +-// Copied from tcuX11Platform.cpp +-class VulkanPlatform : public vk::Platform +-{ +-public: +- vk::Library *createLibrary(const char *libraryPath) const +- { +- return new VulkanLibrary(libraryPath); +- } +- +- void describePlatform(std::ostream &dst) const +- { +- utsname sysInfo; +- +- deMemset(&sysInfo, 0, sizeof(sysInfo)); +- +- if (uname(&sysInfo) != 0) +- throw std::runtime_error("uname() failed"); +- +- dst << "OS: " << sysInfo.sysname << " " << sysInfo.release << " " << sysInfo.version << "\n"; +- dst << "CPU: " << sysInfo.machine << "\n"; +- } +-}; +- + bool isEGLExtensionSupported(const eglw::Library &egl, eglw::EGLDisplay, const std::string &extName) + { + const vector exts = eglu::getClientExtensions(egl); +@@ -185,13 +138,6 @@ public: + { + return *this; + } +- const vk::Platform &getVulkanPlatform(void) const +- { +- return m_vkPlatform; +- } +- +-private: +- VulkanPlatform m_vkPlatform; + }; + + class ContextFactory : public glu::ContextFactory +-- +2.48.1 + diff --git a/.gitlab-ci/image-tags.yml b/.gitlab-ci/image-tags.yml index e96d9689a42..17fe46253d2 100644 --- a/.gitlab-ci/image-tags.yml +++ b/.gitlab-ci/image-tags.yml @@ -13,7 +13,7 @@ variables: DEBIAN_X86_64_BUILD_BASE_IMAGE: "debian/x86_64_build-base" - DEBIAN_BASE_TAG: "20250130-cts-vroom" + DEBIAN_BASE_TAG: "20250130-ctless" DEBIAN_X86_64_BUILD_IMAGE_PATH: "debian/x86_64_build" DEBIAN_BUILD_TAG: "20250128-llvm19-up" @@ -27,10 +27,10 @@ variables: DEBIAN_ARM64_TEST_IMAGE_VK_PATH: "debian/arm64_test-vk" DEBIAN_X86_64_TEST_ANDROID_IMAGE_PATH: "debian/x86_64_test-android" - DEBIAN_TEST_ANDROID_TAG: "20250130-cts-vroom" - DEBIAN_TEST_GL_TAG: "20250130-cts-vroom" - DEBIAN_TEST_VK_TAG: "20250130-cts-vroom" - KERNEL_ROOTFS_TAG: "20250130-cts-vroom" + DEBIAN_TEST_ANDROID_TAG: "20250130-ctless" + DEBIAN_TEST_GL_TAG: "20250130-ctless" + DEBIAN_TEST_VK_TAG: "20250130-ctless" + KERNEL_ROOTFS_TAG: "20250130-ctless" DEBIAN_PYUTILS_IMAGE: "debian/x86_64_pyutils" DEBIAN_PYUTILS_TAG: "20250129-lavacli"