diff options
| -rw-r--r-- | meta-oe/recipes-graphics/vk-gl-cts/files/0001-decode-fix-build-on-ARMv7-targets.patch | 4 | ||||
| -rw-r--r-- | meta-oe/recipes-graphics/vk-gl-cts/files/0001-decode-fix-building-for-non-NEON-enabled-ARM-targets.patch | 73 | ||||
| -rw-r--r-- | meta-oe/recipes-graphics/vk-gl-cts/vulkan-cts-sources.inc | 2 | ||||
| -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 | ||
| 10 | Add missing vreinterpret call in order to fix that error. | 10 | Add missing vreinterpret call in order to fix that error. |
| 11 | 11 | ||
| 12 | Fixes KhronosGroup/VK-GL-CTS#547 | ||
| 13 | |||
| 12 | Signed-off-by: Dmitry Baryshkov <dmitry.baryshkov@oss.qualcomm.com> | 14 | Signed-off-by: Dmitry Baryshkov <dmitry.baryshkov@oss.qualcomm.com> |
| 13 | Upstream-Status: Submitted [https://github.com/KhronosGroup/Vulkan-Video-Samples/pull/109] | 15 | Upstream-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 | ||
| 19 | Reported-by: Ryan Eatmon <reatmon@ti.com> | 19 | Reported-by: Ryan Eatmon <reatmon@ti.com> |
| 20 | Co-developed-by: Stéphane Cerveau <scerveau@igalia.com> | ||
| 20 | Signed-off-by: Dmitry Baryshkov <dmitry.baryshkov@oss.qualcomm.com> | 21 | Signed-off-by: Dmitry Baryshkov <dmitry.baryshkov@oss.qualcomm.com> |
| 21 | Upstream-Status: Submitted [https://github.com/KhronosGroup/Vulkan-Video-Samples/pull/112] | 22 | Upstream-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 | ||
| 27 | diff --git a/vk_video_decoder/libs/NvVideoParser/CMakeLists.txt b/vk_video_decoder/libs/NvVideoParser/CMakeLists.txt | 28 | diff --git a/vk_video_decoder/libs/NvVideoParser/CMakeLists.txt b/vk_video_decoder/libs/NvVideoParser/CMakeLists.txt |
| 28 | index 84251ed60ab9..65da635e2929 100644 | 29 | index 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) | ||
| 70 | diff --git a/vk_video_decoder/libs/NvVideoParser/src/VulkanVideoDecoder.cpp b/vk_video_decoder/libs/NvVideoParser/src/VulkanVideoDecoder.cpp | 80 | diff --git a/vk_video_decoder/libs/NvVideoParser/src/VulkanVideoDecoder.cpp b/vk_video_decoder/libs/NvVideoParser/src/VulkanVideoDecoder.cpp |
| 71 | index 83b968ef55df..eced7fcd7bba 100644 | 81 | index 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 | -- | ||
| 88 | 2.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 @@ | |||
| 6 | RECIPE_UPGRADE_EXTRA_TASKS += "do_refresh_srcuri" | 6 | RECIPE_UPGRADE_EXTRA_TASKS += "do_refresh_srcuri" |
| 7 | 7 | ||
| 8 | python __anonymous() { | 8 | python __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 | ||
| 3 | require khronos-cts.inc | 3 | require khronos-cts.inc |
| 4 | 4 | ||
| 5 | SRCREV_vk-gl-cts = "03c0746a55b78eab63c664a11948b52419e1f309" | 5 | SRCREV_vk-gl-cts = "aa481ab6eb66a1c74768fabec453ea6e60f0ee0e" |
| 6 | 6 | ||
| 7 | require vulkan-cts-sources.inc | 7 | require vulkan-cts-sources.inc |
| 8 | 8 | ||
