summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--meta-oe/recipes-graphics/vk-gl-cts/files/0001-decode-fix-build-on-ARMv7-targets.patch4
-rw-r--r--meta-oe/recipes-graphics/vk-gl-cts/files/0001-decode-fix-building-for-non-NEON-enabled-ARM-targets.patch73
-rw-r--r--meta-oe/recipes-graphics/vk-gl-cts/vulkan-cts-sources.inc2
-rw-r--r--meta-oe/recipes-graphics/vk-gl-cts/vulkan-cts_1.4.4.2.bb (renamed from meta-oe/recipes-graphics/vk-gl-cts/vulkan-cts_1.4.4.0.bb)2
4 files changed, 45 insertions, 36 deletions
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
index d8680a292b..3c13ebe5c0 100644
--- 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
@@ -9,8 +9,10 @@ Building NEON code on ARMv7 fails with the following error:
9 9
10Add missing vreinterpret call in order to fix that error. 10Add missing vreinterpret call in order to fix that error.
11 11
12Fixes KhronosGroup/VK-GL-CTS#547
13
12Signed-off-by: Dmitry Baryshkov <dmitry.baryshkov@oss.qualcomm.com> 14Signed-off-by: Dmitry Baryshkov <dmitry.baryshkov@oss.qualcomm.com>
13Upstream-Status: Submitted [https://github.com/KhronosGroup/Vulkan-Video-Samples/pull/109] 15Upstream-Status: Backport [https://github.com/KhronosGroup/Vulkan-Video-Samples/commit/1e665d0f5139114203e04a1398de8c94ef031fd7]
14--- 16---
15 vk_video_decoder/libs/NvVideoParser/src/NextStartCodeNEON.cpp | 2 +- 17 vk_video_decoder/libs/NvVideoParser/src/NextStartCodeNEON.cpp | 2 +-
16 1 file changed, 1 insertion(+), 1 deletion(-) 18 1 file changed, 1 insertion(+), 1 deletion(-)
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
index d51ccafc94..3bfa332d14 100644
--- 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
@@ -17,73 +17,80 @@ note: called from here
17 | ~~~~~~~~^~~~~~~~~ 17 | ~~~~~~~~^~~~~~~~~
18 18
19Reported-by: Ryan Eatmon <reatmon@ti.com> 19Reported-by: Ryan Eatmon <reatmon@ti.com>
20Co-developed-by: Stéphane Cerveau <scerveau@igalia.com>
20Signed-off-by: Dmitry Baryshkov <dmitry.baryshkov@oss.qualcomm.com> 21Signed-off-by: Dmitry Baryshkov <dmitry.baryshkov@oss.qualcomm.com>
21Upstream-Status: Submitted [https://github.com/KhronosGroup/Vulkan-Video-Samples/pull/112] 22Upstream-Status: Backport [https://github.com/KhronosGroup/Vulkan-Video-Samples/commit/8aabc529c7a981f2738acab1527745989ae91f26]
22--- 23---
23 .../libs/NvVideoParser/CMakeLists.txt | 18 +++++++++++++++++- 24 .../libs/NvVideoParser/CMakeLists.txt | 27 ++++++++++++++-----
24 .../NvVideoParser/src/VulkanVideoDecoder.cpp | 2 ++ 25 .../NvVideoParser/src/VulkanVideoDecoder.cpp | 2 ++
25 2 files changed, 19 insertions(+), 1 deletion(-) 26 2 files changed, 22 insertions(+), 7 deletions(-)
26 27
27diff --git a/vk_video_decoder/libs/NvVideoParser/CMakeLists.txt b/vk_video_decoder/libs/NvVideoParser/CMakeLists.txt 28diff --git a/vk_video_decoder/libs/NvVideoParser/CMakeLists.txt b/vk_video_decoder/libs/NvVideoParser/CMakeLists.txt
28index 84251ed60ab9..65da635e2929 100644 29index 84251ed6..8c324408 100644
29--- a/vk_video_decoder/libs/NvVideoParser/CMakeLists.txt 30--- a/vk_video_decoder/libs/NvVideoParser/CMakeLists.txt
30+++ b/vk_video_decoder/libs/NvVideoParser/CMakeLists.txt 31+++ b/vk_video_decoder/libs/NvVideoParser/CMakeLists.txt
31@@ -65,6 +65,13 @@ check_cxx_source_compiles(" 32@@ -65,6 +65,14 @@ check_cxx_source_compiles("
32 #endif 33 #endif
33 " IS_ARM) 34 " IS_ARM)
34 35
35+check_cxx_source_compiles(" 36+check_cxx_source_compiles("
36+ #include <arm_neon.h> 37+ #if defined(__ARM_NEON)
37+ uint8_t *pin; 38+ int main() { return 0; }
38+ uint8x16_t vdata; 39+ #else
39+ int main() { vdata = vld1q_u8(pin); return 0; } 40+ #error Not ARM NEON
41+ #endif
40+ " HAS_ARM_NEON) 42+ " HAS_ARM_NEON)
41+ 43+
42 check_cxx_source_compiles(" 44 check_cxx_source_compiles("
43 #if defined(__x86_64__) || defined(_M_X64) || defined(__i386__) || defined(_M_IX86) 45 #if defined(__x86_64__) || defined(_M_X64) || defined(__i386__) || defined(_M_IX86)
44 int main() { return 0; } 46 int main() { return 0; }
45@@ -85,6 +99,7 @@ if (IS_AARCH64 OR (CMAKE_GENERATOR_PLATFORM MATCHES "^aarch64") OR (CMAKE_GENERA 47@@ -84,7 +92,6 @@ if (IS_AARCH64 OR (CMAKE_GENERATOR_PLATFORM MATCHES "^aarch64") OR (CMAKE_GENERA
48 set(NEON_CPU_FEATURE "-march=armv8-a")
46 set(SVE_CPU_FEATURE "-march=armv8-a+sve") 49 set(SVE_CPU_FEATURE "-march=armv8-a+sve")
47 endif() 50 endif()
48 MESSAGE(STATUS "Parser optimizations selected for generic ARM NEON") 51- MESSAGE(STATUS "Parser optimizations selected for generic ARM NEON")
49+ add_compile_definitions(HAS_ARM_NEON=1)
50 add_library(next_start_code_c OBJECT ${CMAKE_CURRENT_SOURCE_DIR}/src/NextStartCodeC.cpp include) 52 add_library(next_start_code_c OBJECT ${CMAKE_CURRENT_SOURCE_DIR}/src/NextStartCodeC.cpp include)
51 target_include_directories(next_start_code_c PUBLIC ${CMAKE_CURRENT_SOURCE_DIR}/include) 53 target_include_directories(next_start_code_c PUBLIC ${CMAKE_CURRENT_SOURCE_DIR}/include)
52 add_library(next_start_code_neon OBJECT ${CMAKE_CURRENT_SOURCE_DIR}/src/NextStartCodeNEON.cpp include) 54 add_library(next_start_code_neon OBJECT ${CMAKE_CURRENT_SOURCE_DIR}/src/NextStartCodeNEON.cpp include)
53@@ -102,7 +117,7 @@ if (IS_AARCH64 OR (CMAKE_GENERATOR_PLATFORM MATCHES "^aarch64") OR (CMAKE_GENERA 55@@ -113,12 +120,18 @@ elseif (IS_ARM OR (CMAKE_GENERATOR_PLATFORM MATCHES "^arm") OR (CMAKE_GENERATOR_
54 target_link_libraries(${VULKAN_VIDEO_PARSER_LIB} next_start_code_c next_start_code_neon next_start_code_sve)
55 target_link_libraries(${VULKAN_VIDEO_PARSER_STATIC_LIB} next_start_code_c next_start_code_neon next_start_code_sve)
56 endif() 56 endif()
57-elseif (IS_ARM OR (CMAKE_GENERATOR_PLATFORM MATCHES "^arm") OR (CMAKE_GENERATOR_PLATFORM MATCHES "^ARM"))
58+elseif ((IS_ARM OR (CMAKE_GENERATOR_PLATFORM MATCHES "^arm") OR (CMAKE_GENERATOR_PLATFORM MATCHES "^ARM")) AND HAS_ARM_NEON)
59 MESSAGE(STATUS "Parser optimization for ARM ${CMAKE_SYSTEM_PROCESSOR}")
60 if(WIN32)
61 MESSAGE(STATUS "Parser optimizations selected for WIN32 VFPv4")
62@@ -111,6 +126,7 @@ elseif (IS_ARM OR (CMAKE_GENERATOR_PLATFORM MATCHES "^arm") OR (CMAKE_GENERATOR_
63 MESSAGE(STATUS "Parser optimizations selected for UNIX armv7-a+simd")
64 set(NEON_CPU_FEATURE "-march=armv7-a+simd")
65 endif()
66+ add_compile_definitions(HAS_ARM_NEON=1)
67 add_library(next_start_code_c OBJECT ${CMAKE_CURRENT_SOURCE_DIR}/src/NextStartCodeC.cpp include) 57 add_library(next_start_code_c OBJECT ${CMAKE_CURRENT_SOURCE_DIR}/src/NextStartCodeC.cpp include)
68 target_include_directories(next_start_code_c PUBLIC ${CMAKE_CURRENT_SOURCE_DIR}/include) 58 target_include_directories(next_start_code_c PUBLIC ${CMAKE_CURRENT_SOURCE_DIR}/include)
69 add_library(next_start_code_neon OBJECT ${CMAKE_CURRENT_SOURCE_DIR}/src/NextStartCodeNEON.cpp include) 59- add_library(next_start_code_neon OBJECT ${CMAKE_CURRENT_SOURCE_DIR}/src/NextStartCodeNEON.cpp include)
60- set_target_properties(next_start_code_neon PROPERTIES COMPILE_FLAGS ${NEON_CPU_FEATURE} )
61- target_include_directories(next_start_code_neon PUBLIC ${CMAKE_CURRENT_SOURCE_DIR}/include)
62- MESSAGE(STATUS "Parser optimizations linking ARM next_start_code_c next_start_code_neon")
63- target_link_libraries(${VULKAN_VIDEO_PARSER_LIB} next_start_code_c next_start_code_neon)
64- target_link_libraries(${VULKAN_VIDEO_PARSER_STATIC_LIB} next_start_code_c next_start_code_neon)
65+ if (HAS_ARM_NEON)
66+ add_library(next_start_code_neon OBJECT ${CMAKE_CURRENT_SOURCE_DIR}/src/NextStartCodeNEON.cpp include)
67+ set_target_properties(next_start_code_neon PROPERTIES COMPILE_FLAGS ${NEON_CPU_FEATURE} )
68+ target_include_directories(next_start_code_neon PUBLIC ${CMAKE_CURRENT_SOURCE_DIR}/include)
69+ MESSAGE(STATUS "Parser optimizations linking ARM next_start_code_c next_start_code_neon")
70+ target_link_libraries(${VULKAN_VIDEO_PARSER_LIB} next_start_code_c next_start_code_neon)
71+ target_link_libraries(${VULKAN_VIDEO_PARSER_STATIC_LIB} next_start_code_c next_start_code_neon)
72+ else()
73+ MESSAGE(STATUS "Parser optimizations linking ARM next_start_code_c")
74+ target_link_libraries(${VULKAN_VIDEO_PARSER_LIB} next_start_code_c)
75+ target_link_libraries(${VULKAN_VIDEO_PARSER_STATIC_LIB} next_start_code_c)
76+ endif()
77 elseif (IS_X86)
78 MESSAGE(STATUS "Parser optimization for X86 ${CMAKE_SYSTEM_PROCESSOR}")
79 if(WIN32)
70diff --git a/vk_video_decoder/libs/NvVideoParser/src/VulkanVideoDecoder.cpp b/vk_video_decoder/libs/NvVideoParser/src/VulkanVideoDecoder.cpp 80diff --git a/vk_video_decoder/libs/NvVideoParser/src/VulkanVideoDecoder.cpp b/vk_video_decoder/libs/NvVideoParser/src/VulkanVideoDecoder.cpp
71index 83b968ef55df..eced7fcd7bba 100644 81index 83b968ef..5f7ff53e 100644
72--- a/vk_video_decoder/libs/NvVideoParser/src/VulkanVideoDecoder.cpp 82--- a/vk_video_decoder/libs/NvVideoParser/src/VulkanVideoDecoder.cpp
73+++ b/vk_video_decoder/libs/NvVideoParser/src/VulkanVideoDecoder.cpp 83+++ b/vk_video_decoder/libs/NvVideoParser/src/VulkanVideoDecoder.cpp
74@@ -335,10 +335,12 @@ bool VulkanVideoDecoder::ParseByteStream(const VkParserBitstreamPacket* pck, siz 84@@ -335,10 +335,12 @@ bool VulkanVideoDecoder::ParseByteStream(const VkParserBitstreamPacket* pck, siz
75 return ParseByteStreamSVE(pck, pParsedBytes); 85 return ParseByteStreamSVE(pck, pParsedBytes);
76 } else 86 } else
77 #endif //__aarch64__ 87 #endif //__aarch64__
78+#if defined(HAS_ARM_NEON) 88+#if defined(__ARM_NEON)
79 if (m_NextStartCode == SIMD_ISA::NEON) 89 if (m_NextStartCode == SIMD_ISA::NEON)
80 { 90 {
81 return ParseByteStreamNEON(pck, pParsedBytes); 91 return ParseByteStreamNEON(pck, pParsedBytes);
82 } else 92 } else
83+#endif // HAS_ARM_NEON 93+#endif // __ARM_NEON
84 #endif 94 #endif
85 { 95 {
86 return ParseByteStreamC(pck, pParsedBytes); 96 return ParseByteStreamC(pck, pParsedBytes);
87--
882.51.0
89
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 a403278699..89d052dbdf 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,7 +6,7 @@
6RECIPE_UPGRADE_EXTRA_TASKS += "do_refresh_srcuri" 6RECIPE_UPGRADE_EXTRA_TASKS += "do_refresh_srcuri"
7 7
8python __anonymous() { 8python __anonymous() {
9 if d.getVar("PV") != "1.4.4.0": 9 if d.getVar("PV") != "1.4.4.2":
10 bb.warn("-sources.inc out of date, run refresh_srcuri task") 10 bb.warn("-sources.inc out of date, run refresh_srcuri task")
11} 11}
12 12
diff --git a/meta-oe/recipes-graphics/vk-gl-cts/vulkan-cts_1.4.4.0.bb b/meta-oe/recipes-graphics/vk-gl-cts/vulkan-cts_1.4.4.2.bb
index 4d2f223a39..0ae7119535 100644
--- a/meta-oe/recipes-graphics/vk-gl-cts/vulkan-cts_1.4.4.0.bb
+++ b/meta-oe/recipes-graphics/vk-gl-cts/vulkan-cts_1.4.4.2.bb
@@ -2,7 +2,7 @@ DESCRIPTION = "Vulkan CTS"
2 2
3require khronos-cts.inc 3require khronos-cts.inc
4 4
5SRCREV_vk-gl-cts = "03c0746a55b78eab63c664a11948b52419e1f309" 5SRCREV_vk-gl-cts = "aa481ab6eb66a1c74768fabec453ea6e60f0ee0e"
6 6
7require vulkan-cts-sources.inc 7require vulkan-cts-sources.inc
8 8