diff mbox series

[meta-oe] vulkan-cts: upgrade 1.4.4.2 -> 1.4.5.0

Message ID 20251221181402.3314874-1-dmitry.baryshkov@oss.qualcomm.com
State New
Headers show
Series [meta-oe] vulkan-cts: upgrade 1.4.4.2 -> 1.4.5.0 | expand

Commit Message

Dmitry Baryshkov Dec. 21, 2025, 6:14 p.m. UTC
Upgrade Vulkan CTS, adding support for new extensions and fixing some
older bugs, e.g. compatibility with ARMv7 (thus dropping the patches,
applied upstream) or with Vulkan 1.0.

Signed-off-by: Dmitry Baryshkov <dmitry.baryshkov@oss.qualcomm.com>
---
 ...01-decode-fix-build-on-ARMv7-targets.patch | 35 -------
 ...ing-for-non-NEON-enabled-ARM-targets.patch | 96 -------------------
 .../vk-gl-cts/vulkan-cts-sources.inc          | 16 ++--
 ...n-cts_1.4.4.2.bb => vulkan-cts_1.4.5.0.bb} |  7 +-
 4 files changed, 9 insertions(+), 145 deletions(-)
 delete mode 100644 meta-oe/recipes-graphics/vk-gl-cts/files/0001-decode-fix-build-on-ARMv7-targets.patch
 delete mode 100644 meta-oe/recipes-graphics/vk-gl-cts/files/0001-decode-fix-building-for-non-NEON-enabled-ARM-targets.patch
 rename meta-oe/recipes-graphics/vk-gl-cts/{vulkan-cts_1.4.4.2.bb => vulkan-cts_1.4.5.0.bb} (70%)
diff mbox series

Patch

diff --git a/meta-oe/recipes-graphics/vk-gl-cts/files/0001-decode-fix-build-on-ARMv7-targets.patch b/meta-oe/recipes-graphics/vk-gl-cts/files/0001-decode-fix-build-on-ARMv7-targets.patch
deleted file mode 100644
index 3c13ebe5c0ec..000000000000
--- a/meta-oe/recipes-graphics/vk-gl-cts/files/0001-decode-fix-build-on-ARMv7-targets.patch
+++ /dev/null
@@ -1,35 +0,0 @@ 
-From 16d72de3280410b185f33e489727761096a2e6e4 Mon Sep 17 00:00:00 2001
-From: Dmitry Baryshkov <dmitry.baryshkov@oss.qualcomm.com>
-Date: Wed, 22 Oct 2025 14:34:22 +0300
-Subject: [PATCH] decode: fix build on ARMv7 targets
-
-Building NEON code on ARMv7 fails with the following error:
-
-...../src/NextStartCodeNEON.cpp:39:57: error: cannot convert 'uint8x8_t' to 'uint64x1_t'
-
-Add missing vreinterpret call in order to fix that error.
-
-Fixes KhronosGroup/VK-GL-CTS#547
-
-Signed-off-by: Dmitry Baryshkov <dmitry.baryshkov@oss.qualcomm.com>
-Upstream-Status: Backport [https://github.com/KhronosGroup/Vulkan-Video-Samples/commit/1e665d0f5139114203e04a1398de8c94ef031fd7]
----
- vk_video_decoder/libs/NvVideoParser/src/NextStartCodeNEON.cpp | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/vk_video_decoder/libs/NvVideoParser/src/NextStartCodeNEON.cpp b/vk_video_decoder/libs/NvVideoParser/src/NextStartCodeNEON.cpp
-index f1a3381d7122..2c695a924ebd 100644
---- a/vk_video_decoder/libs/NvVideoParser/src/NextStartCodeNEON.cpp
-+++ b/vk_video_decoder/libs/NvVideoParser/src/NextStartCodeNEON.cpp
-@@ -36,7 +36,7 @@ size_t VulkanVideoDecoder::next_start_code<SIMD_ISA::NEON>(const uint8_t *pdatai
- #if defined (__aarch64__) || defined(_M_ARM64)
-                 uint64_t resmask = vmaxvq_u8(vmask);
- #else
--                uint64_t resmask = vget_lane_u64(vmax_u8(vget_low_u8(vmask), vget_high_u8(vmask)), 0);
-+                uint64_t resmask = vget_lane_u64(vreinterpret_u64_u8(vmax_u8(vget_low_u8(vmask), vget_high_u8(vmask))), 0);
- #endif
-                 if (resmask)
-                 {
--- 
-2.51.0
-
diff --git a/meta-oe/recipes-graphics/vk-gl-cts/files/0001-decode-fix-building-for-non-NEON-enabled-ARM-targets.patch b/meta-oe/recipes-graphics/vk-gl-cts/files/0001-decode-fix-building-for-non-NEON-enabled-ARM-targets.patch
deleted file mode 100644
index 3bfa332d1416..000000000000
--- a/meta-oe/recipes-graphics/vk-gl-cts/files/0001-decode-fix-building-for-non-NEON-enabled-ARM-targets.patch
+++ /dev/null
@@ -1,96 +0,0 @@ 
-From 95b4ea5b8a5044fed7aeb1c279eddae709a6ce5f Mon Sep 17 00:00:00 2001
-From: Dmitry Baryshkov <dmitry.baryshkov@oss.qualcomm.com>
-Date: Tue, 28 Oct 2025 19:27:21 +0200
-Subject: [PATCH] decode: fix building for non-NEON-enabled ARM targets
-
-Building for non-NEON ARM targets fails with the cryptic message. Verify
-that it is possible to build NEON code at all.
-
-.../work/armv7at2hf-vfp-oe-linux-gnueabi/vulkan-cts/1.4.4.0/recipe-sysroot-native/usr/lib/arm-oe-linux-gnueabi/gcc/arm-oe-linux-gnueabi/15.2.0/include/arm_neon.h:11019:1:
-error: inlining failed in call to 'always_inline' 'uint8x16_t
-vld1q_u8(const uint8_t*)': target specific option mismatch
-11019 | vld1q_u8 (const uint8_t * __a)
-       | ^~~~~~~~
-.../work/armv7at2hf-vfp-oe-linux-gnueabi/vulkan-cts/1.4.4.0/sources/vulkan-cts-1.4.4.0/external/vulkan-video-samples/src/vk_video_decoder/libs/NvVideoParser/src/NextStartCodeNEON.cpp:22:36:
-note: called from here
-    22 |         uint8x16_t vdata = vld1q_u8(pdatain);
-       |                            ~~~~~~~~^~~~~~~~~
-
-Reported-by: Ryan Eatmon <reatmon@ti.com>
-Co-developed-by: Stéphane Cerveau <scerveau@igalia.com>
-Signed-off-by: Dmitry Baryshkov <dmitry.baryshkov@oss.qualcomm.com>
-Upstream-Status: Backport [https://github.com/KhronosGroup/Vulkan-Video-Samples/commit/8aabc529c7a981f2738acab1527745989ae91f26]
----
- .../libs/NvVideoParser/CMakeLists.txt         | 27 ++++++++++++++-----
- .../NvVideoParser/src/VulkanVideoDecoder.cpp  |  2 ++
- 2 files changed, 22 insertions(+), 7 deletions(-)
-
-diff --git a/vk_video_decoder/libs/NvVideoParser/CMakeLists.txt b/vk_video_decoder/libs/NvVideoParser/CMakeLists.txt
-index 84251ed6..8c324408 100644
---- a/vk_video_decoder/libs/NvVideoParser/CMakeLists.txt
-+++ b/vk_video_decoder/libs/NvVideoParser/CMakeLists.txt
-@@ -65,6 +65,14 @@ check_cxx_source_compiles("
-   #endif
- " IS_ARM)
- 
-+check_cxx_source_compiles("
-+  #if defined(__ARM_NEON)
-+  int main() { return 0; }
-+  #else
-+  #error Not ARM NEON
-+  #endif
-+  " HAS_ARM_NEON)
-+
- check_cxx_source_compiles("
-   #if defined(__x86_64__) || defined(_M_X64) || defined(__i386__) || defined(_M_IX86)
-   int main() { return 0; }
-@@ -84,7 +92,6 @@ if (IS_AARCH64 OR (CMAKE_GENERATOR_PLATFORM MATCHES "^aarch64") OR (CMAKE_GENERA
-     set(NEON_CPU_FEATURE "-march=armv8-a")
-     set(SVE_CPU_FEATURE "-march=armv8-a+sve")
-   endif()
--  MESSAGE(STATUS "Parser optimizations selected for generic ARM NEON")
-   add_library(next_start_code_c OBJECT ${CMAKE_CURRENT_SOURCE_DIR}/src/NextStartCodeC.cpp include)
-   target_include_directories(next_start_code_c PUBLIC ${CMAKE_CURRENT_SOURCE_DIR}/include)
-   add_library(next_start_code_neon OBJECT ${CMAKE_CURRENT_SOURCE_DIR}/src/NextStartCodeNEON.cpp include)
-@@ -113,12 +120,18 @@ elseif (IS_ARM OR (CMAKE_GENERATOR_PLATFORM MATCHES "^arm") OR (CMAKE_GENERATOR_
-   endif()
-   add_library(next_start_code_c OBJECT ${CMAKE_CURRENT_SOURCE_DIR}/src/NextStartCodeC.cpp include)
-   target_include_directories(next_start_code_c PUBLIC ${CMAKE_CURRENT_SOURCE_DIR}/include)
--  add_library(next_start_code_neon OBJECT ${CMAKE_CURRENT_SOURCE_DIR}/src/NextStartCodeNEON.cpp include)
--  set_target_properties(next_start_code_neon PROPERTIES COMPILE_FLAGS ${NEON_CPU_FEATURE} )
--  target_include_directories(next_start_code_neon PUBLIC ${CMAKE_CURRENT_SOURCE_DIR}/include)
--  MESSAGE(STATUS "Parser optimizations linking ARM next_start_code_c next_start_code_neon")
--  target_link_libraries(${VULKAN_VIDEO_PARSER_LIB} next_start_code_c next_start_code_neon)
--  target_link_libraries(${VULKAN_VIDEO_PARSER_STATIC_LIB} next_start_code_c next_start_code_neon)
-+  if (HAS_ARM_NEON)
-+    add_library(next_start_code_neon OBJECT ${CMAKE_CURRENT_SOURCE_DIR}/src/NextStartCodeNEON.cpp include)
-+    set_target_properties(next_start_code_neon PROPERTIES COMPILE_FLAGS ${NEON_CPU_FEATURE} )
-+    target_include_directories(next_start_code_neon PUBLIC ${CMAKE_CURRENT_SOURCE_DIR}/include)
-+    MESSAGE(STATUS "Parser optimizations linking ARM next_start_code_c next_start_code_neon")
-+    target_link_libraries(${VULKAN_VIDEO_PARSER_LIB} next_start_code_c next_start_code_neon)
-+    target_link_libraries(${VULKAN_VIDEO_PARSER_STATIC_LIB} next_start_code_c next_start_code_neon)
-+  else()
-+    MESSAGE(STATUS "Parser optimizations linking ARM next_start_code_c")
-+    target_link_libraries(${VULKAN_VIDEO_PARSER_LIB} next_start_code_c)
-+    target_link_libraries(${VULKAN_VIDEO_PARSER_STATIC_LIB} next_start_code_c)
-+  endif()
- elseif (IS_X86)
-   MESSAGE(STATUS "Parser optimization for X86 ${CMAKE_SYSTEM_PROCESSOR}")
-   if(WIN32)
-diff --git a/vk_video_decoder/libs/NvVideoParser/src/VulkanVideoDecoder.cpp b/vk_video_decoder/libs/NvVideoParser/src/VulkanVideoDecoder.cpp
-index 83b968ef..5f7ff53e 100644
---- a/vk_video_decoder/libs/NvVideoParser/src/VulkanVideoDecoder.cpp
-+++ b/vk_video_decoder/libs/NvVideoParser/src/VulkanVideoDecoder.cpp
-@@ -335,10 +335,12 @@ bool VulkanVideoDecoder::ParseByteStream(const VkParserBitstreamPacket* pck, siz
-         return ParseByteStreamSVE(pck, pParsedBytes);
-     } else
- #endif //__aarch64__
-+#if defined(__ARM_NEON)
-     if (m_NextStartCode == SIMD_ISA::NEON)
-     {
-         return ParseByteStreamNEON(pck, pParsedBytes);
-     } else
-+#endif // __ARM_NEON
- #endif
-     {
-         return ParseByteStreamC(pck, pParsedBytes);
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
index 89d052dbdfb2..cf1d24f637a5 100644
--- a/meta-oe/recipes-graphics/vk-gl-cts/vulkan-cts-sources.inc
+++ b/meta-oe/recipes-graphics/vk-gl-cts/vulkan-cts-sources.inc
@@ -6,19 +6,19 @@ 
 RECIPE_UPGRADE_EXTRA_TASKS += "do_refresh_srcuri"
 
 python __anonymous() {
-    if d.getVar("PV") != "1.4.4.2":
+    if d.getVar("PV") != "1.4.5.0":
         bb.warn("-sources.inc out of date, run refresh_srcuri task")
 }
 
 SRC_URI += " \
     https://raw.githubusercontent.com/baldurk/renderdoc/v1.1/renderdoc/api/app/renderdoc_app.h;subdir=${BB_GIT_DEFAULT_DESTSUFFIX}/external/renderdoc/src;sha256sum=e7b5f0aa5b1b0eadc63a1c624c0ca7f5af133aa857d6a4271b0ef3d0bdb6868e \
-    git://github.com/KhronosGroup/SPIRV-Tools.git;protocol=https;nobranch=1;destsuffix=${BB_GIT_DEFAULT_DESTSUFFIX}/external/spirv-tools/src;rev=b8b90dba56eb8c75050a712188d662fd51c953df \
-    git://github.com/KhronosGroup/glslang.git;protocol=https;nobranch=1;destsuffix=${BB_GIT_DEFAULT_DESTSUFFIX}/external/glslang/src;rev=38f6708b6b6f213010c51ffa8f577a7751e12ce7 \
-    git://github.com/KhronosGroup/SPIRV-Headers.git;protocol=https;nobranch=1;destsuffix=${BB_GIT_DEFAULT_DESTSUFFIX}/external/spirv-headers/src;rev=97e96f9e9defeb4bba3cfbd034dec516671dd7a3 \
-    git://github.com/KhronosGroup/Vulkan-Docs.git;protocol=https;nobranch=1;destsuffix=${BB_GIT_DEFAULT_DESTSUFFIX}/external/vulkan-docs/src;rev=9c6d565f72ba6929c239c3e20f90b6375acad3bd \
-    git://github.com/KhronosGroup/Vulkan-ValidationLayers.git;protocol=https;nobranch=1;destsuffix=${BB_GIT_DEFAULT_DESTSUFFIX}/external/vulkan-validationlayers/src;rev=68e4cdd8269c2af39aa16793c9089d1893eae972 \
-    git://github.com/google/amber.git;protocol=https;nobranch=1;destsuffix=${BB_GIT_DEFAULT_DESTSUFFIX}/external/amber/src;rev=57ba1ca211b6f4890c013dcf42cb16069ae916dd \
+    git://github.com/KhronosGroup/SPIRV-Tools.git;protocol=https;nobranch=1;destsuffix=${BB_GIT_DEFAULT_DESTSUFFIX}/external/spirv-tools/src;rev=8a67272ca6c266b21dd0a9548471756a237ebbef \
+    git://github.com/KhronosGroup/glslang.git;protocol=https;nobranch=1;destsuffix=${BB_GIT_DEFAULT_DESTSUFFIX}/external/glslang/src;rev=7a47e2531cb334982b2a2dd8513dca0a3de4373d \
+    git://github.com/KhronosGroup/SPIRV-Headers.git;protocol=https;nobranch=1;destsuffix=${BB_GIT_DEFAULT_DESTSUFFIX}/external/spirv-headers/src;rev=b824a462d4256d720bebb40e78b9eb8f78bbb305 \
+    git://github.com/KhronosGroup/Vulkan-Docs.git;protocol=https;nobranch=1;destsuffix=${BB_GIT_DEFAULT_DESTSUFFIX}/external/vulkan-docs/src;rev=60a4ad187cf3be4ede658f0fae7dd392192a314b \
+    git://github.com/KhronosGroup/Vulkan-ValidationLayers.git;protocol=https;nobranch=1;destsuffix=${BB_GIT_DEFAULT_DESTSUFFIX}/external/vulkan-validationlayers/src;rev=0a11cf1257471c22b9e7d620ab48057fb2f53cf9 \
+    git://github.com/google/amber.git;protocol=https;nobranch=1;destsuffix=${BB_GIT_DEFAULT_DESTSUFFIX}/external/amber/src;rev=9482448393f3f1f75067cc6ba8ad77fda48691c6 \
     git://github.com/open-source-parsers/jsoncpp.git;protocol=https;nobranch=1;destsuffix=${BB_GIT_DEFAULT_DESTSUFFIX}/external/jsoncpp/src;rev=9059f5cad030ba11d37818847443a53918c327b1 \
-    git://github.com/KhronosGroup/Vulkan-Video-Samples.git;protocol=https;nobranch=1;destsuffix=${BB_GIT_DEFAULT_DESTSUFFIX}/external/vulkan-video-samples/src;rev=56a40ba4199e5500b2a7540c15dc139fc4b19595 \
+    git://github.com/KhronosGroup/Vulkan-Video-Samples.git;protocol=https;nobranch=1;destsuffix=${BB_GIT_DEFAULT_DESTSUFFIX}/external/vulkan-video-samples/src;rev=823364b0c7abdc4f4e39418d3dd9dc11623ef146 \
     git://github.com/Igalia/video_generator.git;protocol=https;nobranch=1;destsuffix=${BB_GIT_DEFAULT_DESTSUFFIX}/external/video_generator/src;rev=426300e12a5cc5d4676807039a1be237a2b68187 \
 "
diff --git a/meta-oe/recipes-graphics/vk-gl-cts/vulkan-cts_1.4.4.2.bb b/meta-oe/recipes-graphics/vk-gl-cts/vulkan-cts_1.4.5.0.bb
similarity index 70%
rename from meta-oe/recipes-graphics/vk-gl-cts/vulkan-cts_1.4.4.2.bb
rename to meta-oe/recipes-graphics/vk-gl-cts/vulkan-cts_1.4.5.0.bb
index 0ae7119535cc..34dc10e44dec 100644
--- a/meta-oe/recipes-graphics/vk-gl-cts/vulkan-cts_1.4.4.2.bb
+++ b/meta-oe/recipes-graphics/vk-gl-cts/vulkan-cts_1.4.5.0.bb
@@ -2,15 +2,10 @@  DESCRIPTION = "Vulkan CTS"
 
 require khronos-cts.inc
 
-SRCREV_vk-gl-cts = "aa481ab6eb66a1c74768fabec453ea6e60f0ee0e"
+SRCREV_vk-gl-cts = "db74f486c9d0594bc997f8f79521b424708ba8da"
 
 require vulkan-cts-sources.inc
 
-SRC_URI:append = " \
-    file://0001-decode-fix-build-on-ARMv7-targets.patch;patchdir=external/vulkan-video-samples/src \
-    file://0001-decode-fix-building-for-non-NEON-enabled-ARM-targets.patch;patchdir=external/vulkan-video-samples/src \
-"
-
 # Workaround an optimization bug that breaks createMeshShaderMiscTestsEXT
 OECMAKE_CXX_FLAGS:remove:toolchain-gcc = "-O2"