summaryrefslogtreecommitdiffstats
path: root/meta-oe/recipes-graphics/vk-gl-cts
diff options
context:
space:
mode:
Diffstat (limited to 'meta-oe/recipes-graphics/vk-gl-cts')
-rw-r--r--meta-oe/recipes-graphics/vk-gl-cts/files/0001-Fix-missing-include-cstdint-causing-build-failures.patch47
-rw-r--r--meta-oe/recipes-graphics/vk-gl-cts/files/0001-cmake-Define-WAYLAND_SCANNER-and-WAYLAND_PROTOCOLS_D.patch22
-rw-r--r--meta-oe/recipes-graphics/vk-gl-cts/files/0001-use-library-sonames-for-linking.patch123
-rw-r--r--meta-oe/recipes-graphics/vk-gl-cts/files/0001-vulkan-cts-include-missing-cstdint.patch34
-rw-r--r--meta-oe/recipes-graphics/vk-gl-cts/files/0001-vulkancts-Include-missing-cstdint.patch32
-rw-r--r--meta-oe/recipes-graphics/vk-gl-cts/files/fix-clang-private-operator.patch2
-rw-r--r--meta-oe/recipes-graphics/vk-gl-cts/files/fix-musl.patch4
-rw-r--r--meta-oe/recipes-graphics/vk-gl-cts/files/gen-framework-path.patch20
-rwxr-xr-xmeta-oe/recipes-graphics/vk-gl-cts/files/generate-srcuri.py131
-rw-r--r--meta-oe/recipes-graphics/vk-gl-cts/khronos-cts.inc73
-rw-r--r--meta-oe/recipes-graphics/vk-gl-cts/opengl-es-cts-sources.inc25
-rw-r--r--meta-oe/recipes-graphics/vk-gl-cts/opengl-es-cts/0001-use-library-sonames-for-linking.patch114
-rw-r--r--meta-oe/recipes-graphics/vk-gl-cts/opengl-es-cts_3.2.12.0.bb30
-rw-r--r--meta-oe/recipes-graphics/vk-gl-cts/opengl-es-cts_3.2.9.3.bb40
-rw-r--r--meta-oe/recipes-graphics/vk-gl-cts/vulkan-cts-sources.inc26
-rw-r--r--meta-oe/recipes-graphics/vk-gl-cts/vulkan-cts/0001-use-library-sonames-for-linking.patch114
-rw-r--r--meta-oe/recipes-graphics/vk-gl-cts/vulkan-cts_1.3.7.3.bb38
-rw-r--r--meta-oe/recipes-graphics/vk-gl-cts/vulkan-cts_1.4.2.1.bb25
18 files changed, 453 insertions, 447 deletions
diff --git a/meta-oe/recipes-graphics/vk-gl-cts/files/0001-Fix-missing-include-cstdint-causing-build-failures.patch b/meta-oe/recipes-graphics/vk-gl-cts/files/0001-Fix-missing-include-cstdint-causing-build-failures.patch
new file mode 100644
index 0000000000..44632bc74f
--- /dev/null
+++ b/meta-oe/recipes-graphics/vk-gl-cts/files/0001-Fix-missing-include-cstdint-causing-build-failures.patch
@@ -0,0 +1,47 @@
1From 1d80b54aefd1f5f361990b1223c6fe308a8d3085 Mon Sep 17 00:00:00 2001
2From: Ricardo Garcia <rgarcia@igalia.com>
3Date: Mon, 21 Apr 2025 12:30:05 +0200
4Subject: [PATCH] Fix missing #include <cstdint> causing build failures
5
6Tested on Fedora 42 with clang.
7
8Upstream-Status: Submitted [https://github.com/google/amber/pull/1092]
9
10Fixes:
11http://errors.yoctoproject.org/Errors/Details/852849/
12
13In file included from TOPDIR/tmp/work/core2-64-oe-linux/vulkan-cts/1.4.1.0/git/external/amber/src/src/type.cc:15:
14TOPDIR/tmp/work/core2-64-oe-linux/vulkan-cts/1.4.1.0/git/external/amber/src/src/type.h:56:39: error: 'uint32_t' has not been declared
15 56 | static bool IsInt8(FormatMode mode, uint32_t num_bits) {
16 | ^~~~~~~~
17
18Signed-off-by: Martin Jansa <martin.jansa@gmail.com>
19---
20 src/tokenizer.h | 1 +
21 src/type.h | 1 +
22 2 files changed, 2 insertions(+)
23
24diff --git a/src/tokenizer.h b/src/tokenizer.h
25index 53efec60..ea4f19df 100644
26--- a/src/tokenizer.h
27+++ b/src/tokenizer.h
28@@ -16,6 +16,7 @@
29 #define SRC_TOKENIZER_H_
30
31 #include <cstdlib>
32+#include <cstdint>
33 #include <memory>
34 #include <string>
35
36diff --git a/src/type.h b/src/type.h
37index c63779ba..97720f29 100644
38--- a/src/type.h
39+++ b/src/type.h
40@@ -16,6 +16,7 @@
41 #define SRC_TYPE_H_
42
43 #include <cassert>
44+#include <cstdint>
45 #include <memory>
46 #include <string>
47 #include <vector>
diff --git a/meta-oe/recipes-graphics/vk-gl-cts/files/0001-cmake-Define-WAYLAND_SCANNER-and-WAYLAND_PROTOCOLS_D.patch b/meta-oe/recipes-graphics/vk-gl-cts/files/0001-cmake-Define-WAYLAND_SCANNER-and-WAYLAND_PROTOCOLS_D.patch
index f659e36066..9eef9a702e 100644
--- a/meta-oe/recipes-graphics/vk-gl-cts/files/0001-cmake-Define-WAYLAND_SCANNER-and-WAYLAND_PROTOCOLS_D.patch
+++ b/meta-oe/recipes-graphics/vk-gl-cts/files/0001-cmake-Define-WAYLAND_SCANNER-and-WAYLAND_PROTOCOLS_D.patch
@@ -15,15 +15,15 @@ Signed-off-by: Khem Raj <raj.khem@gmail.com>
15 15
16--- a/framework/platform/CMakeLists.txt 16--- a/framework/platform/CMakeLists.txt
17+++ b/framework/platform/CMakeLists.txt 17+++ b/framework/platform/CMakeLists.txt
18@@ -73,8 +73,9 @@ if (NOT DEFINED TCUTIL_PLATFORM_SRCS) 18@@ -83,8 +83,9 @@ if (NOT DEFINED TCUTIL_PLATFORM_SRCS)
19 add_definitions(-DDEQP_SUPPORT_WAYLAND=1) 19 configure_file(${WAYLAND_XDG_SHELL_SRC_DIR}/xdg-shell.c ${DEQP_XDG_SHELL_GEN_OUTPUTS_DIR}/xdg-shell.c COPYONLY)
20 include_directories(lnx/wayland) 20 configure_file(${WAYLAND_XDG_SHELL_SRC_DIR}/xdg-shell.h ${DEQP_XDG_SHELL_GEN_OUTPUTS_DIR}/xdg-shell.h COPYONLY)
21 21 else ()
22- pkg_get_variable(WAYLAND_PROTOCOLS_DIR wayland-protocols pkgdatadir) 22- pkg_get_variable(WAYLAND_PROTOCOLS_DIR wayland-protocols pkgdatadir)
23- 23-
24+ if (NOT WAYLAND_PROTOCOLS_DIR) 24+ if (NOT WAYLAND_PROTOCOL_DIR)
25+ pkg_get_variable(WAYLAND_PROTOCOLS_DIR wayland-protocols pkgdatadir) 25+ pkg_get_variable(WAYLAND_PROTOCOLS_DIR wayland-protocols pkgdatadir)
26+ endif() 26+ endif()
27 if (NOT WAYLAND_SCANNER) 27 if (NOT WAYLAND_SCANNER)
28 pkg_get_variable(WAYLAND_SCANNER wayland-scanner wayland_scanner) 28 pkg_get_variable(WAYLAND_SCANNER wayland-scanner wayland_scanner)
29 endif() 29 endif()
diff --git a/meta-oe/recipes-graphics/vk-gl-cts/files/0001-use-library-sonames-for-linking.patch b/meta-oe/recipes-graphics/vk-gl-cts/files/0001-use-library-sonames-for-linking.patch
new file mode 100644
index 0000000000..5e19ed2db3
--- /dev/null
+++ b/meta-oe/recipes-graphics/vk-gl-cts/files/0001-use-library-sonames-for-linking.patch
@@ -0,0 +1,123 @@
1From acd25c4b8d5b7e420a7a89bdfd6551c70de828b3 Mon Sep 17 00:00:00 2001
2From: Trevor Woerner <twoerner@gmail.com>
3Date: Thu, 23 Sep 2021 19:36:43 -0400
4Subject: [PATCH] use library sonames for linking
5
6The recommended "best practices" for applications is to link to library
7sonames (e.g. libGL.so.1) instead of library names (e.g. libGL.so). This
8ensures that applications don't try to use libraries if an incompatible ABI
9change occurs.
10
11Upstream-Status: Denied [https://github.com/KhronosGroup/VK-GL-CTS/pull/288]
12Signed-off-by: Trevor Woerner <twoerner@gmail.com>
13---
14 framework/egl/egluGLContextFactory.cpp | 4 ++--
15 framework/egl/wrapper/eglwLibrary.cpp | 2 +-
16 framework/platform/android/tcuAndroidPlatform.cpp | 2 +-
17 framework/platform/lnx/X11/tcuLnxX11EglDisplayFactory.cpp | 2 +-
18 .../platform/lnx/wayland/tcuLnxWaylandEglDisplayFactory.cpp | 2 +-
19 framework/platform/surfaceless/tcuSurfacelessPlatform.cpp | 6 +++---
20 6 files changed, 9 insertions(+), 9 deletions(-)
21
22--- a/framework/egl/egluGLContextFactory.cpp
23+++ b/framework/egl/egluGLContextFactory.cpp
24@@ -63,7 +63,7 @@ using std::vector;
25 #if (DE_OS == DE_OS_WIN32)
26 #define DEQP_GLES2_LIBRARY_PATH "libGLESv2.dll"
27 #else
28-#define DEQP_GLES2_LIBRARY_PATH "libGLESv2.so"
29+#define DEQP_GLES2_LIBRARY_PATH "libGLESv2.so.2"
30 #endif
31 #endif
32
33@@ -75,7 +75,7 @@ using std::vector;
34 #if (DE_OS == DE_OS_WIN32)
35 #define DEQP_OPENGL_LIBRARY_PATH "opengl32.dll"
36 #else
37-#define DEQP_OPENGL_LIBRARY_PATH "libGL.so"
38+#define DEQP_OPENGL_LIBRARY_PATH "libGL.so.1"
39 #endif
40 #endif
41
42--- a/framework/egl/wrapper/eglwLibrary.cpp
43+++ b/framework/egl/wrapper/eglwLibrary.cpp
44@@ -145,7 +145,7 @@ DefaultLibrary::~DefaultLibrary(void)
45 const char *DefaultLibrary::getLibraryFileName(void)
46 {
47 #if (DE_OS == DE_OS_ANDROID) || (DE_OS == DE_OS_UNIX)
48- return "libEGL.so";
49+ return "libEGL.so.1";
50 #elif (DE_OS == DE_OS_WIN32)
51 return "libEGL.dll";
52 #else
53--- a/framework/platform/android/tcuAndroidPlatform.cpp
54+++ b/framework/platform/android/tcuAndroidPlatform.cpp
55@@ -56,7 +56,7 @@ static const eglu::NativeWindow::Capabil
56 class NativeDisplay : public eglu::NativeDisplay
57 {
58 public:
59- NativeDisplay(void) : eglu::NativeDisplay(DISPLAY_CAPABILITIES), m_library("libEGL.so")
60+ NativeDisplay(void) : eglu::NativeDisplay(DISPLAY_CAPABILITIES), m_library("libEGL.so.1")
61 {
62 }
63 virtual ~NativeDisplay(void)
64@@ -223,7 +223,7 @@ class VulkanLibrary : public vk::Library
65 {
66 public:
67 VulkanLibrary(const char *libraryPath)
68- : m_library(libraryPath != nullptr ? libraryPath : "libvulkan.so")
69+ : m_library(libraryPath != nullptr ? libraryPath : "libvulkan.so.1")
70 , m_driver(m_library)
71 {
72 }
73--- a/framework/platform/lnx/X11/tcuLnxX11EglDisplayFactory.cpp
74+++ b/framework/platform/lnx/X11/tcuLnxX11EglDisplayFactory.cpp
75@@ -77,7 +77,7 @@ using tcu::TextureLevel;
76 class Library : public eglw::DefaultLibrary
77 {
78 public:
79- Library(void) : eglw::DefaultLibrary("libEGL.so")
80+ Library(void) : eglw::DefaultLibrary("libEGL.so.1")
81 {
82 }
83
84--- a/framework/platform/lnx/wayland/tcuLnxWaylandEglDisplayFactory.cpp
85+++ b/framework/platform/lnx/wayland/tcuLnxWaylandEglDisplayFactory.cpp
86@@ -64,7 +64,7 @@ public:
87 Display(MovePtr<wayland::Display> waylandDisplay)
88 : NativeDisplay(CAPABILITIES, EGL_PLATFORM_WAYLAND_KHR, "EGL_KHR_platform_wayland")
89 , m_display(waylandDisplay)
90- , m_library("libEGL.so")
91+ , m_library("libEGL.so.1")
92 {
93 }
94
95--- a/framework/platform/surfaceless/tcuSurfacelessPlatform.cpp
96+++ b/framework/platform/surfaceless/tcuSurfacelessPlatform.cpp
97@@ -69,7 +69,7 @@ using std::vector;
98
99 // Default library names
100 #if !defined(DEQP_GLES2_LIBRARY_PATH)
101-#define DEQP_GLES2_LIBRARY_PATH "libGLESv2.so"
102+#define DEQP_GLES2_LIBRARY_PATH "libGLESv2.so.2"
103 #endif
104
105 #if !defined(DEQP_GLES3_LIBRARY_PATH)
106@@ -77,7 +77,7 @@ using std::vector;
107 #endif
108
109 #if !defined(DEQP_OPENGL_LIBRARY_PATH)
110-#define DEQP_OPENGL_LIBRARY_PATH "libGL.so"
111+#define DEQP_OPENGL_LIBRARY_PATH "libGL.so.1"
112 #endif
113
114 #if !defined(DEQP_VULKAN_LIBRARY_PATH)
115@@ -258,7 +258,7 @@ glu::RenderContext *ContextFactory::crea
116
117 EglRenderContext::EglRenderContext(const glu::RenderConfig &config, const tcu::CommandLine &cmdLine,
118 const glu::RenderContext *sharedContext)
119- : m_egl("libEGL.so")
120+ : m_egl("libEGL.so.1")
121 , m_contextType(config.type)
122 , m_eglDisplay(EGL_NO_DISPLAY)
123 , m_eglContext(EGL_NO_CONTEXT)
diff --git a/meta-oe/recipes-graphics/vk-gl-cts/files/0001-vulkan-cts-include-missing-cstdint.patch b/meta-oe/recipes-graphics/vk-gl-cts/files/0001-vulkan-cts-include-missing-cstdint.patch
deleted file mode 100644
index 0dd59713a1..0000000000
--- a/meta-oe/recipes-graphics/vk-gl-cts/files/0001-vulkan-cts-include-missing-cstdint.patch
+++ /dev/null
@@ -1,34 +0,0 @@
1From b07f6ecd6ab83b788301a555dc546b9a5c9dd8a2 Mon Sep 17 00:00:00 2001
2From: Khem Raj <raj.khem@gmail.com>
3Date: Wed, 25 Jan 2023 19:19:34 -0800
4Subject: [PATCH] Include missing <cstdint>
5
6This error is seen with gcc-13 where include headers are not implicitly
7included [1]
8
9Fixes errors e.g.
10error: 'uint32_t' does not name a type
11
12[1] https://www.gnu.org/software/gcc/gcc-13/porting_to.html
13
14Upstream-Status: Submitted [https://github.com/KhronosGroup/VK-GL-CTS/pull/378]
15Signed-off-by: Khem Raj <raj.khem@gmail.com>
16---
17 framework/common/tcuDefs.hpp | 1 +
18 1 file changed, 1 insertion(+)
19
20diff --git a/framework/common/tcuDefs.hpp b/framework/common/tcuDefs.hpp
21index ad3d0736d..6dfac10fb 100644
22--- a/framework/common/tcuDefs.hpp
23+++ b/framework/common/tcuDefs.hpp
24@@ -26,6 +26,7 @@
25 #include "deDefs.hpp"
26 #include "qpTestLog.h"
27
28+#include <cstdint>
29 #include <string>
30 #include <stdexcept>
31
32--
332.39.1
34
diff --git a/meta-oe/recipes-graphics/vk-gl-cts/files/0001-vulkancts-Include-missing-cstdint.patch b/meta-oe/recipes-graphics/vk-gl-cts/files/0001-vulkancts-Include-missing-cstdint.patch
deleted file mode 100644
index 40aea8f203..0000000000
--- a/meta-oe/recipes-graphics/vk-gl-cts/files/0001-vulkancts-Include-missing-cstdint.patch
+++ /dev/null
@@ -1,32 +0,0 @@
1From 1b7646ced0f0b969f818084887885827ed1a4244 Mon Sep 17 00:00:00 2001
2From: Khem Raj <raj.khem@gmail.com>
3Date: Mon, 31 May 2021 17:31:33 -0700
4Subject: [PATCH] vulkancts: Include missing <cstdint>
5
6Fixes build with gcc-13
7
8../git/external/vulkancts/modules/vulkan/spirv_assembly/vktSpvAsmFloatControlsTests.cpp:2798:102: error: 'uintptr_t' in namespace 'std' does not name a type
9 2798 | BufferDataType type = static_cast<BufferDataType>(reinterpret_cast<std::uintptr_t>(expectedOutputs[resultIndex].getUserData()));
10 | ^~~~~~~~~
11
12Upstream-Status: Submitted [https://github.com/KhronosGroup/VK-GL-CTS/pull/378]
13Signed-off-by: Khem Raj <raj.khem@gmail.com>
14---
15 .../vulkan/spirv_assembly/vktSpvAsmFloatControlsTests.cpp | 1 +
16 1 file changed, 1 insertion(+)
17
18diff --git a/external/vulkancts/modules/vulkan/spirv_assembly/vktSpvAsmFloatControlsTests.cpp b/external/vulkancts/modules/vulkan/spirv_assembly/vktSpvAsmFloatControlsTests.cpp
19index ab02be1dc..3d3ee4829 100644
20--- a/external/vulkancts/modules/vulkan/spirv_assembly/vktSpvAsmFloatControlsTests.cpp
21+++ b/external/vulkancts/modules/vulkan/spirv_assembly/vktSpvAsmFloatControlsTests.cpp
22@@ -33,6 +33,7 @@
23 #include "deFloat16.h"
24 #include "vkQueryUtil.hpp"
25 #include "vkRefUtil.hpp"
26+#include <cstdint>
27 #include <cstring>
28 #include <vector>
29 #include <limits>
30--
312.39.1
32
diff --git a/meta-oe/recipes-graphics/vk-gl-cts/files/fix-clang-private-operator.patch b/meta-oe/recipes-graphics/vk-gl-cts/files/fix-clang-private-operator.patch
index 4ecc371ca4..af59dd3e61 100644
--- a/meta-oe/recipes-graphics/vk-gl-cts/files/fix-clang-private-operator.patch
+++ b/meta-oe/recipes-graphics/vk-gl-cts/files/fix-clang-private-operator.patch
@@ -2,7 +2,7 @@ Upstream-Status: Pending
2 2
3--- a/external/glslang/src/glslang/Include/PoolAlloc.h 3--- a/external/glslang/src/glslang/Include/PoolAlloc.h
4+++ b/external/glslang/src/glslang/Include/PoolAlloc.h 4+++ b/external/glslang/src/glslang/Include/PoolAlloc.h
5@@ -240,8 +240,9 @@ protected: 5@@ -245,8 +245,9 @@ protected:
6 6
7 int numCalls; // just an interesting statistic 7 int numCalls; // just an interesting statistic
8 size_t totalBytes; // just an interesting statistic 8 size_t totalBytes; // just an interesting statistic
diff --git a/meta-oe/recipes-graphics/vk-gl-cts/files/fix-musl.patch b/meta-oe/recipes-graphics/vk-gl-cts/files/fix-musl.patch
index 58dc1f24dd..717d489786 100644
--- a/meta-oe/recipes-graphics/vk-gl-cts/files/fix-musl.patch
+++ b/meta-oe/recipes-graphics/vk-gl-cts/files/fix-musl.patch
@@ -2,9 +2,9 @@ Upstream-Status: Pending
2 2
3--- a/framework/delibs/dethread/CMakeLists.txt 3--- a/framework/delibs/dethread/CMakeLists.txt
4+++ b/framework/delibs/dethread/CMakeLists.txt 4+++ b/framework/delibs/dethread/CMakeLists.txt
5@@ -42,6 +42,7 @@ if (DE_OS_IS_UNIX) 5@@ -41,6 +41,7 @@ if (DE_OS_IS_UNIX)
6 if (${CMAKE_SYSTEM_NAME} STREQUAL "FreeBSD")
6 add_definitions(-D__BSD_VISIBLE) 7 add_definitions(-D__BSD_VISIBLE)
7 add_definitions(-D_XOPEN_SOURCE=600)
8 endif () 8 endif ()
9+ add_definitions(-D_XOPEN_SOURCE=600) 9+ add_definitions(-D_XOPEN_SOURCE=600)
10 add_definitions(-D_GNU_SOURCE) 10 add_definitions(-D_GNU_SOURCE)
diff --git a/meta-oe/recipes-graphics/vk-gl-cts/files/gen-framework-path.patch b/meta-oe/recipes-graphics/vk-gl-cts/files/gen-framework-path.patch
deleted file mode 100644
index 8a8d8d2c32..0000000000
--- a/meta-oe/recipes-graphics/vk-gl-cts/files/gen-framework-path.patch
+++ /dev/null
@@ -1,20 +0,0 @@
1Prepend instead of append to the module search path, as this script needs to use
2the local module build, not the host module build.
3
4Upstream-Status: Submitted
5Signed-off-by: Ross Burton <ross.burton@arm.com>
6
7diff --git a/external/vulkancts/scripts/gen_framework.py b/external/vulkancts/scripts/gen_framework.py
8index 83c5329ce..10e720910 100755
9--- a/external/vulkancts/scripts/gen_framework.py
10+++ b/external/vulkancts/scripts/gen_framework.py
11@@ -33 +33 @@ from collections import OrderedDict
12-sys.path.append(os.path.join(os.path.dirname(__file__), "..", "..", "..", "scripts"))
13+sys.path.insert(0, os.path.join(os.path.dirname(__file__), "..", "..", "..", "scripts"))
14diff --git a/external/vulkancts/scripts/gen_framework_c.py b/external/vulkancts/scripts/gen_framework_c.py
15index 95587e642..84b878cb2 100644
16--- a/external/vulkancts/scripts/gen_framework_c.py
17+++ b/external/vulkancts/scripts/gen_framework_c.py
18@@ -28 +28 @@ import re
19-sys.path.append(os.path.join(os.path.dirname(__file__), "..", "..", "..", "scripts"))
20+sys.path.insert(0, os.path.join(os.path.dirname(__file__), "..", "..", "..", "scripts"))
diff --git a/meta-oe/recipes-graphics/vk-gl-cts/files/generate-srcuri.py b/meta-oe/recipes-graphics/vk-gl-cts/files/generate-srcuri.py
new file mode 100755
index 0000000000..c2756b592c
--- /dev/null
+++ b/meta-oe/recipes-graphics/vk-gl-cts/files/generate-srcuri.py
@@ -0,0 +1,131 @@
1#! /usr/bin/env python3
2
3import json
4import re
5import os
6import subprocess
7import sys
8import types
9import urllib.parse
10
11
12def resolve_commit(repo, ref):
13 # If it looks like a SHA, just return that
14 if re.match(r"[a-z0-9]{40}", ref):
15 return ref
16
17 # Otherwise it's probably a tag name so resolve it
18 cmd = ("git", "ls-remote", "--tags", "--exit-code", repo, ref)
19 ret = subprocess.run(cmd, check=True, text=True, capture_output=True)
20 sha = ret.stdout.split(maxsplit=1)[0]
21 assert len(sha) == 40
22 return sha
23
24
25def transform_git(repo_url, repo_ref, destination):
26 parts = urllib.parse.urlparse(repo_url)
27 protocol = parts.scheme
28 parts = parts._replace(scheme="git")
29 url = urllib.parse.urlunparse(parts)
30 # Resolve the commit reference to a SHA
31 sha = resolve_commit(repo_url, repo_ref)
32
33 return url + f";protocol={protocol};nobranch=1;destsuffix={destination};rev={sha}"
34
35
36def load_module(filename):
37 import importlib.util
38
39 spec = importlib.util.spec_from_file_location("fetchmodule", filename)
40 module = importlib.util.module_from_spec(spec)
41 spec.loader.exec_module(module)
42 return module
43
44
45def convert_fetch(basedir):
46 """
47 Convert the external/fetch_sources.py data
48 """
49 fetch = load_module(os.path.join(basedir, "fetch_sources.py"))
50 lines = []
51 for p in fetch.PACKAGES:
52 if isinstance(p, fetch.SourcePackage):
53 # Ignore these as so far we can use the system copies
54 pass
55 elif isinstance(p, fetch.SourceFile):
56 dest = "/".join(["git/external", p.baseDir, p.extractDir])
57 url = f"{p.url};subdir={dest};sha256sum={p.checksum}"
58 lines.append(f" {url} \\")
59 elif isinstance(p, fetch.GitRepo):
60 dest = "/".join(["git/external", p.baseDir, p.extractDir])
61 url = transform_git(p.httpsUrl, p.revision, dest)
62 lines.append(f" {url} \\")
63 else:
64 assert f"Unexpected {p=}"
65 return lines
66
67
68def convert_knowngood(basedir, destination):
69 """
70 Convert the """
71 filename = os.path.join(basedir, "vulkan-validationlayers/src/scripts/known_good.json")
72 try:
73 with open(filename) as fp:
74 data = json.load(fp, object_hook=lambda x: types.SimpleNamespace(**x))
75 except FileNotFoundError:
76 return []
77
78 lines = []
79 for repo in data.repos:
80 # Skip repositories that are not needed on Linux (TODO: assumes linux target)
81 if hasattr(repo, "build_platforms") and repo.build_platforms != "linux":
82 continue
83
84 # Switch the URL to use git: and save the original protocol
85 parts = urllib.parse.urlparse(repo.url)
86 protocol = parts.scheme
87 parts = parts._replace(scheme="git")
88 url = urllib.parse.urlunparse(parts)
89 # Resolve the commit reference to a SHA
90 sha = resolve_commit(repo.url, repo.commit)
91
92 destsuffix = destination + "/" + repo.sub_dir
93
94 url += f";protocol={protocol};nobranch=1;destsuffix={destsuffix};rev={sha}"
95 lines.append(f" {url} \\")
96 return lines
97
98
99def main():
100 pv = sys.argv[1]
101 basedir = sys.argv[2]
102
103 print("""
104#
105# Generated by generate-srcuri.py, don't update manually")
106#
107
108RECIPE_UPGRADE_EXTRA_TASKS += "do_refresh_srcuri"
109
110python __anonymous() {
111 if d.getVar("PV") != "%s":
112 bb.warn("-sources.inc out of date, run refresh_srcuri task")
113}
114""" % (pv))
115
116 print('SRC_URI += " \\')
117 lines = convert_fetch(basedir)
118 print("\n".join(lines))
119 print('"')
120
121 #lines = convert_knowngood(sys.argv[1], "git/external/validation")
122 #if lines:
123 # print('SRC_URI += " \\')
124 # print("\n".join(lines))
125 # print('"')
126 #else:
127 # print("# Re-run")
128
129
130if __name__ == "__main__":
131 main()
diff --git a/meta-oe/recipes-graphics/vk-gl-cts/khronos-cts.inc b/meta-oe/recipes-graphics/vk-gl-cts/khronos-cts.inc
index 09f1fbcaee..1cc2da7a49 100644
--- a/meta-oe/recipes-graphics/vk-gl-cts/khronos-cts.inc
+++ b/meta-oe/recipes-graphics/vk-gl-cts/khronos-cts.inc
@@ -1,46 +1,31 @@
1LICENSE = "Apache-2.0" 1LICENSE = "Apache-2.0"
2LIC_FILES_CHKSUM = "file://LICENSE;md5=3b83ef96387f14655fc854ddc3c6bd57" 2LIC_FILES_CHKSUM = "file://LICENSE;md5=3b83ef96387f14655fc854ddc3c6bd57"
3 3
4SRC_URI = "\ 4SRC_URI = "git://github.com/KhronosGroup/VK-GL-CTS.git;protocol=https;name=vk-gl-cts;nobranch=1 \
5 git://github.com/KhronosGroup/VK-GL-CTS.git;protocol=https;name=vk-gl-cts;nobranch=1 \ 5 file://0001-cmake-Define-WAYLAND_SCANNER-and-WAYLAND_PROTOCOLS_D.patch \
6 git://github.com/google/amber;protocol=https;destsuffix=git/external/amber/src;name=amber;branch=main \ 6 file://0001-use-library-sonames-for-linking.patch \
7 git://github.com/KhronosGroup/glslang.git;protocol=https;destsuffix=git/external/glslang/src;name=glslang;branch=main \ 7 file://generate-srcuri.py \
8 git://github.com/KhronosGroup/SPIRV-Headers.git;protocol=https;destsuffix=git/external/spirv-headers/src;name=spirv-headers;branch=main \ 8 "
9 git://github.com/KhronosGroup/SPIRV-Tools.git;protocol=https;destsuffix=git/external/spirv-tools/src;name=spirv-tools;branch=main \
10 git://github.com/open-source-parsers/jsoncpp.git;protocol=https;destsuffix=git/external/jsoncpp/src;name=jsoncpp;branch=master \
11 git://github.com/KhronosGroup/Vulkan-Docs.git;protocol=https;destsuffix=git/external/vulkan-docs/src;name=vulkan-docs;branch=main \
12 https://raw.githubusercontent.com/baldurk/renderdoc/v1.1/renderdoc/api/app/renderdoc_app.h;subdir=git/external/renderdoc/src;name=renderdoc \
13 git://github.com/Igalia/ESExtractor.git;protocol=https;destsuffix=git/external/ESExtractor/src;name=ESExtractor;branch=main \
14 git://github.com/Igalia/vk_video_samples.git;protocol=https;destsuffix=git/external/nvidia-video-samples/src;name=video-parser;nobranch=1 \
15"
16 9
17S = "${WORKDIR}/git" 10SRC_URI:append:libc-musl = "file://fix-musl.patch"
11SRC_URI:append:toolchain-clang = "file://fix-clang-private-operator.patch"
18 12
19SRCREV_FORMAT = "vk-gl-cts_amber_glslang_spirv-headers_spirv-tools_jsoncpp_vulkan-docs" 13SRCREV_FORMAT = "vk-gl-cts"
20 14
21S = "${WORKDIR}/git"
22 15
23inherit pkgconfig cmake features_check python3native qemu 16inherit pkgconfig cmake cmake-qemu features_check python3native
17
18UPSTREAM_CHECK_GITTAGREGEX = "${BPN}-(?P<pver>\d+(\.\d+)+)"
24 19
25ANY_OF_DISTRO_FEATURES += "opengl vulkan" 20ANY_OF_DISTRO_FEATURES += "opengl vulkan"
26 21
27DEPENDS += "python3-lxml-native libpng zlib virtual/libgles2 qemu-native" 22DEPENDS += "python3-lxml-native libpng zlib virtual/libgles2 qemu-native"
28
29SRC_URI += " \
30 file://0001-vulkancts-Include-missing-cstdint.patch \
31 file://0001-use-library-sonames-for-linking.patch \
32"
33
34SRC_URI:append:libc-musl = "\
35 file://fix-musl.patch \
36"
37DEPENDS:append:libc-musl = " libexecinfo" 23DEPENDS:append:libc-musl = " libexecinfo"
38 24
39SRC_URI:append:toolchain-clang = "\ 25EXTRA_OECMAKE += "-DAMBER_DISABLE_WERROR=ON \
40 file://fix-clang-private-operator.patch \ 26 -DUPDATE_DEPS_DIR=${S}/external/validation/ \
41" 27 -DWAYLAND_SCANNER=${STAGING_BINDIR_NATIVE}/wayland-scanner \
42 28 -DWAYLAND_PROTOCOLS_DIR=${STAGING_DATADIR}/wayland-protocols"
43EXTRA_OECMAKE:prepend:class-target = "-DCMAKE_CROSSCOMPILING_EMULATOR=${WORKDIR}/qemuwrapper -DWAYLAND_SCANNER=${STAGING_BINDIR_NATIVE}/wayland-scanner -DWAYLAND_PROTOCOLS_DIR=${STAGING_DATADIR}/wayland-protocols -DAMBER_DISABLE_WERROR=ON"
44 29
45# The best thing for the user to do is to not specify any of the following 30# The best thing for the user to do is to not specify any of the following
46# PACKAGECONFIGs (i.e. leave it blank) which tells the project to do its own 31# PACKAGECONFIGs (i.e. leave it blank) which tells the project to do its own
@@ -54,17 +39,6 @@ PACKAGECONFIG[x11_egl] = "-DDEQP_TARGET=x11_egl,,virtual/libx11 virtual/egl,,,su
54PACKAGECONFIG[x11_glx] = "-DDEQP_TARGET=x11_glx,,virtual/libx11,,,surfaceless wayland x11_egl x11_egl_glx" 39PACKAGECONFIG[x11_glx] = "-DDEQP_TARGET=x11_glx,,virtual/libx11,,,surfaceless wayland x11_egl x11_egl_glx"
55PACKAGECONFIG[x11_egl_glx] = "-DDEQP_TARGET=x11_glx,,virtual/libx11 virtual/egl,,,surfaceless wayland x11_egl x11_glx" 40PACKAGECONFIG[x11_egl_glx] = "-DDEQP_TARGET=x11_glx,,virtual/libx11 virtual/egl,,,surfaceless wayland x11_egl x11_glx"
56 41
57do_configure:append() {
58 # Write out a qemu wrapper that will be used by cmake
59 # so that it can run target helper binaries through that.
60 qemu_binary="${@qemu_wrapper_cmdline(d, d.getVar('STAGING_DIR_HOST'), [d.expand('${STAGING_DIR_HOST}${libdir}'),d.expand('${STAGING_DIR_HOST}${base_libdir}')])}"
61 cat > ${WORKDIR}/qemuwrapper << EOF
62#!/bin/sh
63$qemu_binary "\$@"
64EOF
65 chmod +x ${WORKDIR}/qemuwrapper
66}
67
68python __anonymous() { 42python __anonymous() {
69 # if the user doesn't specify any PACKAGECONFIG then the cts build system 43 # if the user doesn't specify any PACKAGECONFIG then the cts build system
70 # is going to probe the sysroot to try to figure out what to build 44 # is going to probe the sysroot to try to figure out what to build
@@ -81,3 +55,20 @@ python __anonymous() {
81CTSDIR = "/usr/lib/${BPN}" 55CTSDIR = "/usr/lib/${BPN}"
82 56
83FILES:${PN} += "${CTSDIR}" 57FILES:${PN} += "${CTSDIR}"
58
59# does not work with libc++-19 due
60# error: implicit instantiation of undefined template 'std::char_traits<unsigned int>'
61TOOLCHAIN = "gcc"
62
63# Prototype task to refresh the generated SRC_URI entries by parsing
64# the files in the source tree and writing a BPN-sources.inc file.
65do_refresh_srcuri() {
66 ${UNPACKDIR}/generate-srcuri.py ${PV} ${S}/external/ \
67 > ${THISDIR}/${BPN}-sources.inc
68 # Don't convert ${S}/external/vulkan-validationlayers/src/scripts/known_good.json as we
69 # currently build without validation
70}
71
72addtask refresh_srcuri after do_patch
73do_refresh_srcuri[network] = "1"
74do_refresh_srcuri[nostamp] = "1"
diff --git a/meta-oe/recipes-graphics/vk-gl-cts/opengl-es-cts-sources.inc b/meta-oe/recipes-graphics/vk-gl-cts/opengl-es-cts-sources.inc
new file mode 100644
index 0000000000..4e7155cd7f
--- /dev/null
+++ b/meta-oe/recipes-graphics/vk-gl-cts/opengl-es-cts-sources.inc
@@ -0,0 +1,25 @@
1
2#
3# Generated by generate-srcuri.py, don't update manually")
4#
5
6RECIPE_UPGRADE_EXTRA_TASKS += "do_refresh_srcuri"
7
8python __anonymous() {
9 if d.getVar("PV") != "3.2.12.0":
10 bb.warn("-sources.inc out of date, run refresh_srcuri task")
11}
12
13SRC_URI += " \
14 https://raw.githubusercontent.com/baldurk/renderdoc/v1.1/renderdoc/api/app/renderdoc_app.h;subdir=${BB_GIT_DEFAULT_DESTSUFFIX}/external/renderdoc/src;sha256sum=e7b5f0aa5b1b0eadc63a1c624c0ca7f5af133aa857d6a4271b0ef3d0bdb6868e \
15 git://github.com/KhronosGroup/SPIRV-Tools.git;protocol=https;nobranch=1;destsuffix=${BB_GIT_DEFAULT_DESTSUFFIX}/external/spirv-tools/src;rev=04b4a204aa501992ae85a207be1e200e195c98e1 \
16 git://github.com/KhronosGroup/glslang.git;protocol=https;nobranch=1;destsuffix=${BB_GIT_DEFAULT_DESTSUFFIX}/external/glslang/src;rev=0549c7127c2fbab2904892c9d6ff491fa1e93751 \
17 git://github.com/KhronosGroup/SPIRV-Headers.git;protocol=https;nobranch=1;destsuffix=${BB_GIT_DEFAULT_DESTSUFFIX}/external/spirv-headers/src;rev=e7294a8ebed84f8c5bd3686c68dbe12a4e65b644 \
18 git://github.com/KhronosGroup/Vulkan-Docs.git;protocol=https;nobranch=1;destsuffix=${BB_GIT_DEFAULT_DESTSUFFIX}/external/vulkan-docs/src;rev=645c59c70e826d9738b6bb103316c03d887dfed3 \
19 git://github.com/KhronosGroup/Vulkan-ValidationLayers.git;protocol=https;nobranch=1;destsuffix=${BB_GIT_DEFAULT_DESTSUFFIX}/external/vulkan-validationlayers/src;rev=6cf616f131e9870c499a50441bca2d07ccda9733 \
20 git://github.com/google/amber.git;protocol=https;nobranch=1;destsuffix=${BB_GIT_DEFAULT_DESTSUFFIX}/external/amber/src;rev=6fa5ac1fb3b01c93eef3caa2aeb8841565e38d90 \
21 git://github.com/open-source-parsers/jsoncpp.git;protocol=https;nobranch=1;destsuffix=${BB_GIT_DEFAULT_DESTSUFFIX}/external/jsoncpp/src;rev=9059f5cad030ba11d37818847443a53918c327b1 \
22 git://github.com/Igalia/vk_video_samples.git;protocol=https;nobranch=1;destsuffix=${BB_GIT_DEFAULT_DESTSUFFIX}/external/nvidia-video-samples/src;rev=45fe88b456c683120138f052ea81f0a958ff3ec4 \
23 git://github.com/KhronosGroup/Vulkan-Video-Samples.git;protocol=https;nobranch=1;destsuffix=${BB_GIT_DEFAULT_DESTSUFFIX}/external/vulkan-video-samples/src;rev=0e87744edbb84c9c56c3fc8de9ea5150af5ee4ea \
24 git://github.com/Igalia/video_generator.git;protocol=https;nobranch=1;destsuffix=${BB_GIT_DEFAULT_DESTSUFFIX}/external/video_generator/src;rev=426300e12a5cc5d4676807039a1be237a2b68187 \
25"
diff --git a/meta-oe/recipes-graphics/vk-gl-cts/opengl-es-cts/0001-use-library-sonames-for-linking.patch b/meta-oe/recipes-graphics/vk-gl-cts/opengl-es-cts/0001-use-library-sonames-for-linking.patch
deleted file mode 100644
index b5a1d331ed..0000000000
--- a/meta-oe/recipes-graphics/vk-gl-cts/opengl-es-cts/0001-use-library-sonames-for-linking.patch
+++ /dev/null
@@ -1,114 +0,0 @@
1From acd25c4b8d5b7e420a7a89bdfd6551c70de828b3 Mon Sep 17 00:00:00 2001
2From: Trevor Woerner <twoerner@gmail.com>
3Date: Thu, 23 Sep 2021 19:36:43 -0400
4Subject: [PATCH] use library sonames for linking
5
6The recommended "best practices" for applications is to link to library
7sonames (e.g. libGL.so.1) instead of library names (e.g. libGL.so). This
8ensures that applications don't try to use libraries if an incompatible ABI
9change occurs.
10
11Upstream-Status: Submitted [https://github.com/KhronosGroup/VK-GL-CTS/pull/288]
12Signed-off-by: Trevor Woerner <twoerner@gmail.com>
13---
14 framework/egl/egluGLContextFactory.cpp | 4 ++--
15 framework/egl/wrapper/eglwLibrary.cpp | 2 +-
16 framework/platform/android/tcuAndroidPlatform.cpp | 2 +-
17 framework/platform/lnx/X11/tcuLnxX11EglDisplayFactory.cpp | 2 +-
18 .../platform/lnx/wayland/tcuLnxWaylandEglDisplayFactory.cpp | 2 +-
19 framework/platform/surfaceless/tcuSurfacelessPlatform.cpp | 6 +++---
20 6 files changed, 9 insertions(+), 9 deletions(-)
21
22--- a/framework/egl/egluGLContextFactory.cpp
23+++ b/framework/egl/egluGLContextFactory.cpp
24@@ -63,7 +63,7 @@ using std::vector;
25 # if (DE_OS == DE_OS_WIN32)
26 # define DEQP_GLES2_LIBRARY_PATH "libGLESv2.dll"
27 # else
28-# define DEQP_GLES2_LIBRARY_PATH "libGLESv2.so"
29+# define DEQP_GLES2_LIBRARY_PATH "libGLESv2.so.2"
30 # endif
31 #endif
32
33@@ -75,7 +75,7 @@ using std::vector;
34 # if (DE_OS == DE_OS_WIN32)
35 # define DEQP_OPENGL_LIBRARY_PATH "opengl32.dll"
36 # else
37-# define DEQP_OPENGL_LIBRARY_PATH "libGL.so"
38+# define DEQP_OPENGL_LIBRARY_PATH "libGL.so.1"
39 # endif
40 #endif
41
42--- a/framework/egl/wrapper/eglwLibrary.cpp
43+++ b/framework/egl/wrapper/eglwLibrary.cpp
44@@ -148,7 +148,7 @@ DefaultLibrary::~DefaultLibrary (void)
45 const char* DefaultLibrary::getLibraryFileName (void)
46 {
47 #if (DE_OS == DE_OS_ANDROID) || (DE_OS == DE_OS_UNIX)
48- return "libEGL.so";
49+ return "libEGL.so.1";
50 #elif (DE_OS == DE_OS_WIN32)
51 return "libEGL.dll";
52 #else
53--- a/framework/platform/android/tcuAndroidPlatform.cpp
54+++ b/framework/platform/android/tcuAndroidPlatform.cpp
55@@ -57,7 +57,7 @@ static const eglu::NativeWindow::Capabil
56 class NativeDisplay : public eglu::NativeDisplay
57 {
58 public:
59- NativeDisplay (void) : eglu::NativeDisplay(DISPLAY_CAPABILITIES), m_library("libEGL.so") {}
60+ NativeDisplay (void) : eglu::NativeDisplay(DISPLAY_CAPABILITIES), m_library("libEGL.so.1") {}
61 virtual ~NativeDisplay (void) {}
62
63 virtual EGLNativeDisplayType getLegacyNative (void) { return EGL_DEFAULT_DISPLAY; }
64--- a/framework/platform/lnx/X11/tcuLnxX11EglDisplayFactory.cpp
65+++ b/framework/platform/lnx/X11/tcuLnxX11EglDisplayFactory.cpp
66@@ -75,7 +75,7 @@ class Library : public eglw::DefaultLibr
67 {
68 public:
69 Library (void)
70- : eglw::DefaultLibrary("libEGL.so")
71+ : eglw::DefaultLibrary("libEGL.so.1")
72 {
73 }
74
75--- a/framework/platform/lnx/wayland/tcuLnxWaylandEglDisplayFactory.cpp
76+++ b/framework/platform/lnx/wayland/tcuLnxWaylandEglDisplayFactory.cpp
77@@ -66,7 +66,7 @@ public:
78 EGL_PLATFORM_WAYLAND_KHR,
79 "EGL_KHR_platform_wayland")
80 , m_display (waylandDisplay)
81- , m_library ("libEGL.so") {}
82+ , m_library ("libEGL.so.1") {}
83
84 ~Display(void) {}
85 wayland::Display& getWaylandDisplay (void) { return *m_display; }
86--- a/framework/platform/surfaceless/tcuSurfacelessPlatform.cpp
87+++ b/framework/platform/surfaceless/tcuSurfacelessPlatform.cpp
88@@ -69,7 +69,7 @@ using std::vector;
89
90 // Default library names
91 #if !defined(DEQP_GLES2_LIBRARY_PATH)
92-# define DEQP_GLES2_LIBRARY_PATH "libGLESv2.so"
93+# define DEQP_GLES2_LIBRARY_PATH "libGLESv2.so.2"
94 #endif
95
96 #if !defined(DEQP_GLES3_LIBRARY_PATH)
97@@ -77,7 +77,7 @@ using std::vector;
98 #endif
99
100 #if !defined(DEQP_OPENGL_LIBRARY_PATH)
101-# define DEQP_OPENGL_LIBRARY_PATH "libGL.so"
102+# define DEQP_OPENGL_LIBRARY_PATH "libGL.so.1"
103 #endif
104
105 #if !defined(DEQP_VULKAN_LIBRARY_PATH)
106@@ -234,7 +234,7 @@ glu::RenderContext* ContextFactory::crea
107 }
108
109 EglRenderContext::EglRenderContext(const glu::RenderConfig& config, const tcu::CommandLine& cmdLine)
110- : m_egl("libEGL.so")
111+ : m_egl("libEGL.so.1")
112 , m_contextType(config.type)
113 , m_eglDisplay(EGL_NO_DISPLAY)
114 , m_eglContext(EGL_NO_CONTEXT)
diff --git a/meta-oe/recipes-graphics/vk-gl-cts/opengl-es-cts_3.2.12.0.bb b/meta-oe/recipes-graphics/vk-gl-cts/opengl-es-cts_3.2.12.0.bb
new file mode 100644
index 0000000000..1bcbed1600
--- /dev/null
+++ b/meta-oe/recipes-graphics/vk-gl-cts/opengl-es-cts_3.2.12.0.bb
@@ -0,0 +1,30 @@
1DESCRIPTION = "OpenGL CTS"
2
3require khronos-cts.inc
4
5SRCREV_vk-gl-cts = "42e61858e862e153cd0fe36593a8c3f7c16c3275"
6
7require opengl-es-cts-sources.inc
8
9EXTRA_OECMAKE += "-DSELECTED_BUILD_TARGETS="cts-runner deqp-egl deqp-gles2 deqp-gles3 deqp-gles31 deqp-gl-shared de-internal-tests glcts""
10
11do_install() {
12 install -d ${D}/${CTSDIR}
13 cp -r ${B}/external/openglcts/modules/* ${D}/${CTSDIR}
14 cp -r ${S}/external/openglcts/data/gl_cts/data/mustpass/ ${D}/${CTSDIR}/mustpass/
15
16 install -m 0755 ${B}/modules/egl/deqp-egl ${D}/${CTSDIR}
17 install -m 0755 ${B}/modules/gles2/deqp-gles2 ${D}/${CTSDIR}
18 install -m 0755 ${B}/modules/gles3/deqp-gles3 ${D}/${CTSDIR}
19 install -m 0755 ${B}/modules/gles31/deqp-gles31 ${D}/${CTSDIR}
20 install -m 0755 ${B}/modules/internal/de-internal-tests ${D}/${CTSDIR}
21
22 rm -rf ${D}/${CTSDIR}/*.a ${D}/${CTSDIR}/cmake_install.cmake ${D}/${CTSDIR}/CMakeFiles
23 rm -rf ${D}/${CTSDIR}/*/*.a ${D}/${CTSDIR}/*/cmake_install.cmake ${D}/${CTSDIR}/*/CMakeFiles
24 rm -rf ${D}/${CTSDIR}/common/subgroups/*.a ${D}/${CTSDIR}/common/subgroups/cmake_install.cmake ${D}/${CTSDIR}/common/subgroups/CMakeFiles
25}
26
27SECURITY_CFLAGS:riscv64 = "${SECURITY_NOPIE_CFLAGS}"
28# GCC-15 segfaults see - https://gcc.gnu.org/bugzilla/show_bug.cgi?id=120119
29TUNE_CCARGS:remove:aarch64 = "-mcpu=cortex-a57+crc"
30LTO = ""
diff --git a/meta-oe/recipes-graphics/vk-gl-cts/opengl-es-cts_3.2.9.3.bb b/meta-oe/recipes-graphics/vk-gl-cts/opengl-es-cts_3.2.9.3.bb
deleted file mode 100644
index 0656d724b4..0000000000
--- a/meta-oe/recipes-graphics/vk-gl-cts/opengl-es-cts_3.2.9.3.bb
+++ /dev/null
@@ -1,40 +0,0 @@
1DESCRIPTION = "OpenGL CTS"
2
3require khronos-cts.inc
4# opengl-es-cts-3.2.9.3
5SRCREV_vk-gl-cts = "7f5fb62245d535a1fc0bf50b2c7e5a342dc551fe"
6SRCREV_amber = "933ecb4d6288675a92eb1650e0f52b1d7afe8273"
7SRCREV_glslang = "a0ad0d7067521fff880e36acfb8ce453421c3f25"
8SRCREV_spirv-headers = "87d5b782bec60822aa878941e6b13c0a9a954c9b"
9SRCREV_spirv-tools = "f98473ceeb1d33700d01e20910433583e5256030"
10SRCREV_ESExtractor = "ce5d7ebcf0ebb0d78385ee4cc34653eb6764bfc4"
11# Not yet needed
12SRCREV_jsoncpp = "9059f5cad030ba11d37818847443a53918c327b1"
13SRCREV_vulkan-docs = "9a2e576a052a1e65a5d41b593e693ff02745604b"
14SRCREV_video-parser = "7d68747d3524842afaf050c5e00a10f5b8c07904"
15SRC_URI[renderdoc.sha256sum] = "e7b5f0aa5b1b0eadc63a1c624c0ca7f5af133aa857d6a4271b0ef3d0bdb6868e"
16
17SRC_URI += "\
18 git://github.com/nvpro-samples/vk_video_samples.git;protocol=https;destsuffix=git/external/video-parser/src;name=video-parser;branch=main \
19 file://gen-framework-path.patch \
20 "
21S = "${WORKDIR}/git"
22
23do_install() {
24 install -d ${D}/${CTSDIR}
25 cp -r ${B}/external/openglcts/modules/* ${D}/${CTSDIR}
26
27 install -m 0755 ${B}/modules/egl/deqp-egl ${D}/${CTSDIR}
28 install -m 0755 ${B}/modules/gles2/deqp-gles2 ${D}/${CTSDIR}
29 install -m 0755 ${B}/modules/gles3/deqp-gles3 ${D}/${CTSDIR}
30 install -m 0755 ${B}/modules/gles31/deqp-gles31 ${D}/${CTSDIR}
31 install -m 0755 ${B}/modules/internal/de-internal-tests ${D}/${CTSDIR}
32
33 rm -rf ${D}/${CTSDIR}/*.a ${D}/${CTSDIR}/cmake_install.cmake ${D}/${CTSDIR}/CMakeFiles
34 rm -rf ${D}/${CTSDIR}/*/*.a ${D}/${CTSDIR}/*/cmake_install.cmake ${D}/${CTSDIR}/*/CMakeFiles
35 rm -rf ${D}/${CTSDIR}/common/subgroups/*.a ${D}/${CTSDIR}/common/subgroups/cmake_install.cmake ${D}/${CTSDIR}/common/subgroups/CMakeFiles
36}
37
38SECURITY_CFLAGS:riscv64 = "${SECURITY_NOPIE_CFLAGS}"
39LTO = ""
40
diff --git a/meta-oe/recipes-graphics/vk-gl-cts/vulkan-cts-sources.inc b/meta-oe/recipes-graphics/vk-gl-cts/vulkan-cts-sources.inc
new file mode 100644
index 0000000000..563da1007a
--- /dev/null
+++ b/meta-oe/recipes-graphics/vk-gl-cts/vulkan-cts-sources.inc
@@ -0,0 +1,26 @@
1
2#
3# Generated by generate-srcuri.py, don't update manually")
4#
5
6RECIPE_UPGRADE_EXTRA_TASKS += "do_refresh_srcuri"
7
8python __anonymous() {
9 if d.getVar("PV") != "1.4.2.1":
10 bb.warn("-sources.inc out of date, run refresh_srcuri task")
11}
12
13SRC_URI += " \
14 https://raw.githubusercontent.com/baldurk/renderdoc/v1.1/renderdoc/api/app/renderdoc_app.h;subdir=${BB_GIT_DEFAULT_DESTSUFFIX}/external/renderdoc/src;sha256sum=e7b5f0aa5b1b0eadc63a1c624c0ca7f5af133aa857d6a4271b0ef3d0bdb6868e \
15 git://github.com/KhronosGroup/SPIRV-Tools.git;protocol=https;nobranch=1;destsuffix=${BB_GIT_DEFAULT_DESTSUFFIX}/external/spirv-tools/src;rev=3364b982713a0440d1d342dd5eec65b122a61b71 \
16 git://github.com/KhronosGroup/glslang.git;protocol=https;nobranch=1;destsuffix=${BB_GIT_DEFAULT_DESTSUFFIX}/external/glslang/src;rev=1b65bd602b23d401d1c4c86dfa90a36a52c66294 \
17 git://github.com/KhronosGroup/SPIRV-Headers.git;protocol=https;nobranch=1;destsuffix=${BB_GIT_DEFAULT_DESTSUFFIX}/external/spirv-headers/src;rev=767e901c986e9755a17e7939b3046fc2911a4bbd \
18 git://github.com/KhronosGroup/Vulkan-Docs.git;protocol=https;nobranch=1;destsuffix=${BB_GIT_DEFAULT_DESTSUFFIX}/external/vulkan-docs/src;rev=645c59c70e826d9738b6bb103316c03d887dfed3 \
19 git://github.com/KhronosGroup/Vulkan-ValidationLayers.git;protocol=https;nobranch=1;destsuffix=${BB_GIT_DEFAULT_DESTSUFFIX}/external/vulkan-validationlayers/src;rev=6cf616f131e9870c499a50441bca2d07ccda9733 \
20 git://github.com/google/amber.git;protocol=https;nobranch=1;destsuffix=${BB_GIT_DEFAULT_DESTSUFFIX}/external/amber/src;rev=6fa5ac1fb3b01c93eef3caa2aeb8841565e38d90 \
21 git://github.com/open-source-parsers/jsoncpp.git;protocol=https;nobranch=1;destsuffix=${BB_GIT_DEFAULT_DESTSUFFIX}/external/jsoncpp/src;rev=9059f5cad030ba11d37818847443a53918c327b1 \
22 git://github.com/Igalia/vk_video_samples.git;protocol=https;nobranch=1;destsuffix=${BB_GIT_DEFAULT_DESTSUFFIX}/external/nvidia-video-samples/src;rev=45fe88b456c683120138f052ea81f0a958ff3ec4 \
23 git://github.com/KhronosGroup/Vulkan-Video-Samples.git;protocol=https;nobranch=1;destsuffix=${BB_GIT_DEFAULT_DESTSUFFIX}/external/vulkan-video-samples/src;rev=0e87744edbb84c9c56c3fc8de9ea5150af5ee4ea \
24 git://github.com/Igalia/video_generator.git;protocol=https;nobranch=1;destsuffix=${BB_GIT_DEFAULT_DESTSUFFIX}/external/video_generator/src;rev=426300e12a5cc5d4676807039a1be237a2b68187 \
25 file://0001-Fix-missing-include-cstdint-causing-build-failures.patch;patchdir=external/amber/src \
26"
diff --git a/meta-oe/recipes-graphics/vk-gl-cts/vulkan-cts/0001-use-library-sonames-for-linking.patch b/meta-oe/recipes-graphics/vk-gl-cts/vulkan-cts/0001-use-library-sonames-for-linking.patch
deleted file mode 100644
index f12abd0c1a..0000000000
--- a/meta-oe/recipes-graphics/vk-gl-cts/vulkan-cts/0001-use-library-sonames-for-linking.patch
+++ /dev/null
@@ -1,114 +0,0 @@
1From acd25c4b8d5b7e420a7a89bdfd6551c70de828b3 Mon Sep 17 00:00:00 2001
2From: Trevor Woerner <twoerner@gmail.com>
3Date: Thu, 23 Sep 2021 19:36:43 -0400
4Subject: [PATCH] use library sonames for linking
5
6The recommended "best practices" for applications is to link to library
7sonames (e.g. libGL.so.1) instead of library names (e.g. libGL.so). This
8ensures that applications don't try to use libraries if an incompatible ABI
9change occurs.
10
11Upstream-Status: Submitted [https://github.com/KhronosGroup/VK-GL-CTS/pull/288]
12Signed-off-by: Trevor Woerner <twoerner@gmail.com>
13---
14 framework/egl/egluGLContextFactory.cpp | 4 ++--
15 framework/egl/wrapper/eglwLibrary.cpp | 2 +-
16 framework/platform/android/tcuAndroidPlatform.cpp | 2 +-
17 framework/platform/lnx/X11/tcuLnxX11EglDisplayFactory.cpp | 2 +-
18 .../platform/lnx/wayland/tcuLnxWaylandEglDisplayFactory.cpp | 2 +-
19 framework/platform/surfaceless/tcuSurfacelessPlatform.cpp | 6 +++---
20 6 files changed, 9 insertions(+), 9 deletions(-)
21
22--- a/framework/egl/egluGLContextFactory.cpp
23+++ b/framework/egl/egluGLContextFactory.cpp
24@@ -63,7 +63,7 @@ using std::vector;
25 # if (DE_OS == DE_OS_WIN32)
26 # define DEQP_GLES2_LIBRARY_PATH "libGLESv2.dll"
27 # else
28-# define DEQP_GLES2_LIBRARY_PATH "libGLESv2.so"
29+# define DEQP_GLES2_LIBRARY_PATH "libGLESv2.so.2"
30 # endif
31 #endif
32
33@@ -75,7 +75,7 @@ using std::vector;
34 # if (DE_OS == DE_OS_WIN32)
35 # define DEQP_OPENGL_LIBRARY_PATH "opengl32.dll"
36 # else
37-# define DEQP_OPENGL_LIBRARY_PATH "libGL.so"
38+# define DEQP_OPENGL_LIBRARY_PATH "libGL.so.1"
39 # endif
40 #endif
41
42--- a/framework/egl/wrapper/eglwLibrary.cpp
43+++ b/framework/egl/wrapper/eglwLibrary.cpp
44@@ -148,7 +148,7 @@ DefaultLibrary::~DefaultLibrary (void)
45 const char* DefaultLibrary::getLibraryFileName (void)
46 {
47 #if (DE_OS == DE_OS_ANDROID) || (DE_OS == DE_OS_UNIX)
48- return "libEGL.so";
49+ return "libEGL.so.1";
50 #elif (DE_OS == DE_OS_WIN32)
51 return "libEGL.dll";
52 #else
53--- a/framework/platform/android/tcuAndroidPlatform.cpp
54+++ b/framework/platform/android/tcuAndroidPlatform.cpp
55@@ -57,7 +57,7 @@ static const eglu::NativeWindow::Capabil
56 class NativeDisplay : public eglu::NativeDisplay
57 {
58 public:
59- NativeDisplay (void) : eglu::NativeDisplay(DISPLAY_CAPABILITIES), m_library("libEGL.so") {}
60+ NativeDisplay (void) : eglu::NativeDisplay(DISPLAY_CAPABILITIES), m_library("libEGL.so.1") {}
61 virtual ~NativeDisplay (void) {}
62
63 virtual EGLNativeDisplayType getLegacyNative (void) { return EGL_DEFAULT_DISPLAY; }
64--- a/framework/platform/lnx/X11/tcuLnxX11EglDisplayFactory.cpp
65+++ b/framework/platform/lnx/X11/tcuLnxX11EglDisplayFactory.cpp
66@@ -75,7 +75,7 @@ class Library : public eglw::DefaultLibr
67 {
68 public:
69 Library (void)
70- : eglw::DefaultLibrary("libEGL.so")
71+ : eglw::DefaultLibrary("libEGL.so.1")
72 {
73 }
74
75--- a/framework/platform/lnx/wayland/tcuLnxWaylandEglDisplayFactory.cpp
76+++ b/framework/platform/lnx/wayland/tcuLnxWaylandEglDisplayFactory.cpp
77@@ -66,7 +66,7 @@ public:
78 EGL_PLATFORM_WAYLAND_KHR,
79 "EGL_KHR_platform_wayland")
80 , m_display (waylandDisplay)
81- , m_library ("libEGL.so") {}
82+ , m_library ("libEGL.so.1") {}
83
84 ~Display(void) {}
85 wayland::Display& getWaylandDisplay (void) { return *m_display; }
86--- a/framework/platform/surfaceless/tcuSurfacelessPlatform.cpp
87+++ b/framework/platform/surfaceless/tcuSurfacelessPlatform.cpp
88@@ -69,7 +69,7 @@ using std::vector;
89
90 // Default library names
91 #if !defined(DEQP_GLES2_LIBRARY_PATH)
92-# define DEQP_GLES2_LIBRARY_PATH "libGLESv2.so"
93+# define DEQP_GLES2_LIBRARY_PATH "libGLESv2.so.2"
94 #endif
95
96 #if !defined(DEQP_GLES3_LIBRARY_PATH)
97@@ -77,7 +77,7 @@ using std::vector;
98 #endif
99
100 #if !defined(DEQP_OPENGL_LIBRARY_PATH)
101-# define DEQP_OPENGL_LIBRARY_PATH "libGL.so"
102+# define DEQP_OPENGL_LIBRARY_PATH "libGL.so.1"
103 #endif
104
105 #if !defined(DEQP_VULKAN_LIBRARY_PATH)
106@@ -237,7 +237,7 @@ glu::RenderContext* ContextFactory::crea
107 }
108
109 EglRenderContext::EglRenderContext(const glu::RenderConfig& config, const tcu::CommandLine& cmdLine, const glu::RenderContext *sharedContext)
110- : m_egl("libEGL.so")
111+ : m_egl("libEGL.so.1")
112 , m_contextType(config.type)
113 , m_eglDisplay(EGL_NO_DISPLAY)
114 , m_eglContext(EGL_NO_CONTEXT)
diff --git a/meta-oe/recipes-graphics/vk-gl-cts/vulkan-cts_1.3.7.3.bb b/meta-oe/recipes-graphics/vk-gl-cts/vulkan-cts_1.3.7.3.bb
deleted file mode 100644
index 1008a5fd42..0000000000
--- a/meta-oe/recipes-graphics/vk-gl-cts/vulkan-cts_1.3.7.3.bb
+++ /dev/null
@@ -1,38 +0,0 @@
1DESCRIPTION = "Vulkan CTS"
2
3require khronos-cts.inc
4
5SRC_URI += "git://github.com/Igalia/vk_video_samples.git;protocol=https;destsuffix=git/external/nvidia-video-samples/src;name=video-parser;nobranch=1"
6
7# vulkan-cts-1.3.7.3
8SRCREV_vk-gl-cts = "d71a36db16d98313c431829432a136dbda692a08"
9SRCREV_amber = "933ecb4d6288675a92eb1650e0f52b1d7afe8273"
10SRCREV_glslang = "c5117b328afc86e16edff6ed6afe0fe7872a7cf3"
11SRCREV_spirv-headers = "b8b9eb8640c8c0107ba580fbcb10f969022ca32c"
12SRCREV_spirv-tools = "bfc94f63a7adbcf8ae166f5f108ac9f69079efc0"
13SRCREV_jsoncpp = "9059f5cad030ba11d37818847443a53918c327b1"
14SRCREV_vulkan-docs = "b9aad705f0d9e5e6734ac2ad671d5d1de57b05e0"
15SRC_URI[renderdoc.sha256sum] = "e7b5f0aa5b1b0eadc63a1c624c0ca7f5af133aa857d6a4271b0ef3d0bdb6868e"
16# Not yet needed
17SRCREV_ESExtractor = "75ffcaf55bb069f7a23764194742d2fb78c7f71f"
18SRCREV_video-parser = "138bbe048221d315962ddf8413aa6a08cc62a381"
19
20SRC_URI += "file://0001-cmake-Define-WAYLAND_SCANNER-and-WAYLAND_PROTOCOLS_D.patch \
21 file://0001-vulkan-cts-include-missing-cstdint.patch \
22"
23
24TOOLCHAIN = "gcc"
25
26S = "${WORKDIR}/git"
27
28REQUIRED_DISTRO_FEATURES = "vulkan"
29inherit features_check
30
31DEPENDS += " vulkan-loader"
32
33do_install() {
34 install -d ${D}/${CTSDIR}
35 cp -r ${B}/external/vulkancts/modules/vulkan/* ${D}/${CTSDIR}/
36 rm -rf ${D}/${CTSDIR}/*.a ${D}/${CTSDIR}/cmake_install.cmake ${D}/${CTSDIR}/CMakeFiles
37 rm -rf ${D}/${CTSDIR}/*/*.a ${D}/${CTSDIR}/*/cmake_install.cmake ${D}/${CTSDIR}/*/CMakeFiles
38}
diff --git a/meta-oe/recipes-graphics/vk-gl-cts/vulkan-cts_1.4.2.1.bb b/meta-oe/recipes-graphics/vk-gl-cts/vulkan-cts_1.4.2.1.bb
new file mode 100644
index 0000000000..abbd026047
--- /dev/null
+++ b/meta-oe/recipes-graphics/vk-gl-cts/vulkan-cts_1.4.2.1.bb
@@ -0,0 +1,25 @@
1DESCRIPTION = "Vulkan CTS"
2
3require khronos-cts.inc
4
5SRCREV_vk-gl-cts = "644f10ca39dea3b7d9dbadaa75c56206b499a520"
6
7require vulkan-cts-sources.inc
8
9# Workaround an optimization bug that breaks createMeshShaderMiscTestsEXT
10OECMAKE_CXX_FLAGS:remove:toolchain-gcc = "-O2"
11
12REQUIRED_DISTRO_FEATURES = "vulkan"
13inherit features_check
14
15DEPENDS += " vulkan-loader"
16
17EXTRA_OECMAKE += "-DSELECTED_BUILD_TARGETS="deqp-vk deqp-vksc""
18
19do_install() {
20 install -d ${D}/${CTSDIR}/mustpass
21 cp -r ${B}/external/vulkancts/modules/vulkan/* ${D}/${CTSDIR}/
22 cp -r ${S}/external/vulkancts/mustpass/main/ ${D}/${CTSDIR}/mustpass/
23 rm -rf ${D}/${CTSDIR}/*.a ${D}/${CTSDIR}/cmake_install.cmake ${D}/${CTSDIR}/CMakeFiles
24 rm -rf ${D}/${CTSDIR}/*/*.a ${D}/${CTSDIR}/*/cmake_install.cmake ${D}/${CTSDIR}/*/CMakeFiles
25}