From 63730628b41bf18bde409764c7dfafe05f2708bb Mon Sep 17 00:00:00 2001 From: Tamas Petz Date: Tue, 23 Jan 2024 15:38:28 +0100 Subject: [PATCH] Fix position of __arm_locally_streaming keyword The keyword should be part of the definition, not the declaration. --- intrinsiccv/include/conversions/gray_to_rgb.h | 2 - intrinsiccv/include/conversions/rgb_to_rgb.h | 6 --- intrinsiccv/include/conversions/yuv_to_rgb.h | 4 -- intrinsiccv/include/filters/gaussian_blur.h | 1 - intrinsiccv/include/filters/sobel.h | 2 - intrinsiccv/include/resize/resize.h | 1 - intrinsiccv/include/sve2.h | 3 +- .../add_abs_with_threshold_sme2.cpp | 2 +- .../src/arithmetics/threshold_sme2.cpp | 2 +- .../src/conversions/gray_to_rgb_sme2.cpp | 14 +++---- .../src/conversions/rgb_to_rgb_sme2.cpp | 42 ++++++++----------- .../src/conversions/yuv_to_rgb_sme2.cpp | 8 ++-- .../src/filters/gaussian_blur_sme2.cpp | 10 ++--- intrinsiccv/src/filters/sobel_sme2.cpp | 14 ++++--- .../src/morphology/morphology_sme2.cpp | 4 +- intrinsiccv/src/resize/resize_sme2.cpp | 7 ++-- 16 files changed, 51 insertions(+), 71 deletions(-) diff --git a/intrinsiccv/include/conversions/gray_to_rgb.h b/intrinsiccv/include/conversions/gray_to_rgb.h index 02987d220..c9c0d5ffa 100644 --- a/intrinsiccv/include/conversions/gray_to_rgb.h +++ b/intrinsiccv/include/conversions/gray_to_rgb.h @@ -31,11 +31,9 @@ void gray_to_rgba_u8(const uint8_t *src, size_t src_stride, uint8_t *dst, namespace sme2 { -INTRINSICCV_LOCALLY_STREAMING void gray_to_rgb_u8(const uint8_t *src, size_t src_stride, uint8_t *dst, size_t dst_stride, size_t width, size_t height); -INTRINSICCV_LOCALLY_STREAMING void gray_to_rgba_u8(const uint8_t *src, size_t src_stride, uint8_t *dst, size_t dst_stride, size_t width, size_t height); diff --git a/intrinsiccv/include/conversions/rgb_to_rgb.h b/intrinsiccv/include/conversions/rgb_to_rgb.h index bbb307336..71879ead9 100644 --- a/intrinsiccv/include/conversions/rgb_to_rgb.h +++ b/intrinsiccv/include/conversions/rgb_to_rgb.h @@ -45,27 +45,21 @@ void rgba_to_rgb_u8(const uint8_t *src, size_t src_stride, uint8_t *dst, namespace sme2 { -INTRINSICCV_LOCALLY_STREAMING void rgb_to_bgr_u8(const uint8_t *src, size_t src_stride, uint8_t *dst, size_t dst_stride, size_t width, size_t height); -INTRINSICCV_LOCALLY_STREAMING void rgba_to_bgra_u8(const uint8_t *src, size_t src_stride, uint8_t *dst, size_t dst_stride, size_t width, size_t height); -INTRINSICCV_LOCALLY_STREAMING void rgb_to_bgra_u8(const uint8_t *src, size_t src_stride, uint8_t *dst, size_t dst_stride, size_t width, size_t height); -INTRINSICCV_LOCALLY_STREAMING void rgb_to_rgba_u8(const uint8_t *src, size_t src_stride, uint8_t *dst, size_t dst_stride, size_t width, size_t height); -INTRINSICCV_LOCALLY_STREAMING void rgba_to_bgr_u8(const uint8_t *src, size_t src_stride, uint8_t *dst, size_t dst_stride, size_t width, size_t height); -INTRINSICCV_LOCALLY_STREAMING void rgba_to_rgb_u8(const uint8_t *src, size_t src_stride, uint8_t *dst, size_t dst_stride, size_t width, size_t height); diff --git a/intrinsiccv/include/conversions/yuv_to_rgb.h b/intrinsiccv/include/conversions/yuv_to_rgb.h index 860d8186d..9348b618f 100644 --- a/intrinsiccv/include/conversions/yuv_to_rgb.h +++ b/intrinsiccv/include/conversions/yuv_to_rgb.h @@ -131,25 +131,21 @@ void yuv_sp_to_bgra_u8(const uint8_t *src_y, size_t src_y_stride, } // namespace sve2 namespace sme2 { -INTRINSICCV_LOCALLY_STREAMING void yuv_sp_to_rgb_u8(const uint8_t *src_y, size_t src_y_stride, const uint8_t *src_uv, size_t src_uv_stride, uint8_t *dst, size_t dst_stride, size_t width, size_t height, bool is_nv21); -INTRINSICCV_LOCALLY_STREAMING void yuv_sp_to_rgba_u8(const uint8_t *src_y, size_t src_y_stride, const uint8_t *src_uv, size_t src_uv_stride, uint8_t *dst, size_t dst_stride, size_t width, size_t height, bool is_nv21); -INTRINSICCV_LOCALLY_STREAMING void yuv_sp_to_bgr_u8(const uint8_t *src_y, size_t src_y_stride, const uint8_t *src_uv, size_t src_uv_stride, uint8_t *dst, size_t dst_stride, size_t width, size_t height, bool is_nv21); -INTRINSICCV_LOCALLY_STREAMING void yuv_sp_to_bgra_u8(const uint8_t *src_y, size_t src_y_stride, const uint8_t *src_uv, size_t src_uv_stride, uint8_t *dst, size_t dst_stride, size_t width, diff --git a/intrinsiccv/include/filters/gaussian_blur.h b/intrinsiccv/include/filters/gaussian_blur.h index f3a03cb2e..c9042b0b9 100644 --- a/intrinsiccv/include/filters/gaussian_blur.h +++ b/intrinsiccv/include/filters/gaussian_blur.h @@ -38,7 +38,6 @@ void gaussian_blur_5x5_u8(const uint8_t *src, size_t src_stride, uint8_t *dst, namespace sme2 { -INTRINSICCV_LOCALLY_STREAMING void gaussian_blur_5x5_u8(const uint8_t *src, size_t src_stride, uint8_t *dst, size_t dst_stride, size_t width, size_t height, size_t channels, diff --git a/intrinsiccv/include/filters/sobel.h b/intrinsiccv/include/filters/sobel.h index 165f0d657..5abed2d21 100644 --- a/intrinsiccv/include/filters/sobel.h +++ b/intrinsiccv/include/filters/sobel.h @@ -28,11 +28,9 @@ void sobel_3x3_vertical_s16_u8(const uint8_t *src, size_t src_stride, } // namespace sve2 namespace sme2 { -INTRINSICCV_LOCALLY_STREAMING void sobel_3x3_horizontal_s16_u8(const uint8_t *src, size_t src_stride, int16_t *dst, size_t dst_stride, size_t width, size_t height, size_t channels); -INTRINSICCV_LOCALLY_STREAMING void sobel_3x3_vertical_s16_u8(const uint8_t *src, size_t src_stride, int16_t *dst, size_t dst_stride, size_t width, size_t height, size_t channels); diff --git a/intrinsiccv/include/resize/resize.h b/intrinsiccv/include/resize/resize.h index e9ceb8229..361b820aa 100644 --- a/intrinsiccv/include/resize/resize.h +++ b/intrinsiccv/include/resize/resize.h @@ -24,7 +24,6 @@ void resize_to_quarter_u8(const uint8_t *src, size_t src_stride, } // namespace sve2 namespace sme2 { -INTRINSICCV_LOCALLY_STREAMING void resize_to_quarter_u8(const uint8_t *src, size_t src_stride, size_t src_width, size_t src_height, uint8_t *dst, size_t dst_stride, size_t dst_width, diff --git a/intrinsiccv/include/sve2.h b/intrinsiccv/include/sve2.h index c2b893221..c0996eca3 100644 --- a/intrinsiccv/include/sve2.h +++ b/intrinsiccv/include/sve2.h @@ -437,12 +437,13 @@ class RemainingPathAdapter : public OperationBase { using ContextType = Context; explicit RemainingPathAdapter(OperationType &operation) + INTRINSICCV_STREAMING_COMPATIBLE : OperationBase(operation) {} // Forwards remaining_path() to either vector_path() or tail_path() of the // inner operation depending on what is requested by the innermost operation. template - void remaining_path(ArgTypes... args) { + void remaining_path(ArgTypes... args) INTRINSICCV_STREAMING_COMPATIBLE { if constexpr (OperationType::uses_tail_path()) { this->operation().tail_path(std::forward(args)...); } else { diff --git a/intrinsiccv/src/arithmetics/add_abs_with_threshold_sme2.cpp b/intrinsiccv/src/arithmetics/add_abs_with_threshold_sme2.cpp index f76817e6b..998b54b91 100644 --- a/intrinsiccv/src/arithmetics/add_abs_with_threshold_sme2.cpp +++ b/intrinsiccv/src/arithmetics/add_abs_with_threshold_sme2.cpp @@ -7,7 +7,7 @@ namespace intrinsiccv::sme2 { template -INTRINSICCV_TARGET_FN_ATTS INTRINSICCV_LOCALLY_STREAMING void +INTRINSICCV_LOCALLY_STREAMING INTRINSICCV_TARGET_FN_ATTS void add_abs_with_threshold(const T *src_a, size_t src_a_stride, const T *src_b, size_t src_b_stride, T *dst, size_t dst_stride, size_t width, size_t height, T threshold) { diff --git a/intrinsiccv/src/arithmetics/threshold_sme2.cpp b/intrinsiccv/src/arithmetics/threshold_sme2.cpp index fa3415fc7..60ac7987a 100644 --- a/intrinsiccv/src/arithmetics/threshold_sme2.cpp +++ b/intrinsiccv/src/arithmetics/threshold_sme2.cpp @@ -7,7 +7,7 @@ namespace intrinsiccv::sme2 { template -INTRINSICCV_TARGET_FN_ATTS INTRINSICCV_LOCALLY_STREAMING void threshold_binary( +INTRINSICCV_LOCALLY_STREAMING INTRINSICCV_TARGET_FN_ATTS void threshold_binary( const T *src, size_t src_stride, T *dst, size_t dst_stride, size_t width, size_t height, T threshold, T value) { intrinsiccv::sve2::threshold_binary_sc(src, src_stride, dst, dst_stride, diff --git a/intrinsiccv/src/conversions/gray_to_rgb_sme2.cpp b/intrinsiccv/src/conversions/gray_to_rgb_sme2.cpp index bb5820922..fbe0e53fb 100644 --- a/intrinsiccv/src/conversions/gray_to_rgb_sme2.cpp +++ b/intrinsiccv/src/conversions/gray_to_rgb_sme2.cpp @@ -6,18 +6,16 @@ namespace intrinsiccv::sme2 { -INTRINSICCV_TARGET_FN_ATTS void gray_to_rgb_u8(const uint8_t *src, - size_t src_stride, uint8_t *dst, - size_t dst_stride, size_t width, - size_t height) { +INTRINSICCV_LOCALLY_STREAMING INTRINSICCV_TARGET_FN_ATTS void gray_to_rgb_u8( + const uint8_t *src, size_t src_stride, uint8_t *dst, size_t dst_stride, + size_t width, size_t height) { intrinsiccv::sve2::gray_to_rgb_u8_sc(src, src_stride, dst, dst_stride, width, height); } -INTRINSICCV_TARGET_FN_ATTS void gray_to_rgba_u8(const uint8_t *src, - size_t src_stride, uint8_t *dst, - size_t dst_stride, size_t width, - size_t height) { +INTRINSICCV_LOCALLY_STREAMING INTRINSICCV_TARGET_FN_ATTS void gray_to_rgba_u8( + const uint8_t *src, size_t src_stride, uint8_t *dst, size_t dst_stride, + size_t width, size_t height) { intrinsiccv::sve2::gray_to_rgba_u8_sc(src, src_stride, dst, dst_stride, width, height); } diff --git a/intrinsiccv/src/conversions/rgb_to_rgb_sme2.cpp b/intrinsiccv/src/conversions/rgb_to_rgb_sme2.cpp index 038da4684..389599af6 100644 --- a/intrinsiccv/src/conversions/rgb_to_rgb_sme2.cpp +++ b/intrinsiccv/src/conversions/rgb_to_rgb_sme2.cpp @@ -6,50 +6,44 @@ namespace intrinsiccv::sme2 { -INTRINSICCV_TARGET_FN_ATTS void rgb_to_bgr_u8(const uint8_t *src, - size_t src_stride, uint8_t *dst, - size_t dst_stride, size_t width, - size_t height) { +INTRINSICCV_LOCALLY_STREAMING INTRINSICCV_TARGET_FN_ATTS void rgb_to_bgr_u8( + const uint8_t *src, size_t src_stride, uint8_t *dst, size_t dst_stride, + size_t width, size_t height) { intrinsiccv::sve2::rgb_to_bgr_u8_sc(src, src_stride, dst, dst_stride, width, height); } -INTRINSICCV_TARGET_FN_ATTS void rgba_to_bgra_u8(const uint8_t *src, - size_t src_stride, uint8_t *dst, - size_t dst_stride, size_t width, - size_t height) { +INTRINSICCV_LOCALLY_STREAMING INTRINSICCV_TARGET_FN_ATTS void rgba_to_bgra_u8( + const uint8_t *src, size_t src_stride, uint8_t *dst, size_t dst_stride, + size_t width, size_t height) { intrinsiccv::sve2::rgba_to_bgra_u8_sc(src, src_stride, dst, dst_stride, width, height); } -INTRINSICCV_TARGET_FN_ATTS void rgb_to_bgra_u8(const uint8_t *src, - size_t src_stride, uint8_t *dst, - size_t dst_stride, size_t width, - size_t height) { +INTRINSICCV_LOCALLY_STREAMING INTRINSICCV_TARGET_FN_ATTS void rgb_to_bgra_u8( + const uint8_t *src, size_t src_stride, uint8_t *dst, size_t dst_stride, + size_t width, size_t height) { intrinsiccv::sve2::rgb_to_bgra_u8_sc(src, src_stride, dst, dst_stride, width, height); } -INTRINSICCV_TARGET_FN_ATTS void rgb_to_rgba_u8(const uint8_t *src, - size_t src_stride, uint8_t *dst, - size_t dst_stride, size_t width, - size_t height) { +INTRINSICCV_LOCALLY_STREAMING INTRINSICCV_TARGET_FN_ATTS void rgb_to_rgba_u8( + const uint8_t *src, size_t src_stride, uint8_t *dst, size_t dst_stride, + size_t width, size_t height) { intrinsiccv::sve2::rgb_to_rgba_u8_sc(src, src_stride, dst, dst_stride, width, height); } -INTRINSICCV_TARGET_FN_ATTS void rgba_to_bgr_u8(const uint8_t *src, - size_t src_stride, uint8_t *dst, - size_t dst_stride, size_t width, - size_t height) { +INTRINSICCV_LOCALLY_STREAMING INTRINSICCV_TARGET_FN_ATTS void rgba_to_bgr_u8( + const uint8_t *src, size_t src_stride, uint8_t *dst, size_t dst_stride, + size_t width, size_t height) { intrinsiccv::sve2::rgba_to_bgr_u8_sc(src, src_stride, dst, dst_stride, width, height); } -INTRINSICCV_TARGET_FN_ATTS void rgba_to_rgb_u8(const uint8_t *src, - size_t src_stride, uint8_t *dst, - size_t dst_stride, size_t width, - size_t height) { +INTRINSICCV_LOCALLY_STREAMING INTRINSICCV_TARGET_FN_ATTS void rgba_to_rgb_u8( + const uint8_t *src, size_t src_stride, uint8_t *dst, size_t dst_stride, + size_t width, size_t height) { intrinsiccv::sve2::rgba_to_rgb_u8_sc(src, src_stride, dst, dst_stride, width, height); } diff --git a/intrinsiccv/src/conversions/yuv_to_rgb_sme2.cpp b/intrinsiccv/src/conversions/yuv_to_rgb_sme2.cpp index 58726638f..a5088aa88 100644 --- a/intrinsiccv/src/conversions/yuv_to_rgb_sme2.cpp +++ b/intrinsiccv/src/conversions/yuv_to_rgb_sme2.cpp @@ -6,7 +6,7 @@ namespace intrinsiccv::sme2 { -INTRINSICCV_TARGET_FN_ATTS void yuv_sp_to_rgb_u8( +INTRINSICCV_LOCALLY_STREAMING INTRINSICCV_TARGET_FN_ATTS void yuv_sp_to_rgb_u8( const uint8_t *src_y, size_t src_y_stride, const uint8_t *src_uv, size_t src_uv_stride, uint8_t *dst, size_t dst_stride, size_t width, size_t height, bool is_nv21) { @@ -15,7 +15,7 @@ INTRINSICCV_TARGET_FN_ATTS void yuv_sp_to_rgb_u8( height, is_nv21); } -INTRINSICCV_TARGET_FN_ATTS void yuv_sp_to_rgba_u8( +INTRINSICCV_LOCALLY_STREAMING INTRINSICCV_TARGET_FN_ATTS void yuv_sp_to_rgba_u8( const uint8_t *src_y, size_t src_y_stride, const uint8_t *src_uv, size_t src_uv_stride, uint8_t *dst, size_t dst_stride, size_t width, size_t height, bool is_nv21) { @@ -24,7 +24,7 @@ INTRINSICCV_TARGET_FN_ATTS void yuv_sp_to_rgba_u8( height, is_nv21); } -INTRINSICCV_TARGET_FN_ATTS void yuv_sp_to_bgr_u8( +INTRINSICCV_LOCALLY_STREAMING INTRINSICCV_TARGET_FN_ATTS void yuv_sp_to_bgr_u8( const uint8_t *src_y, size_t src_y_stride, const uint8_t *src_uv, size_t src_uv_stride, uint8_t *dst, size_t dst_stride, size_t width, size_t height, bool is_nv21) { @@ -33,7 +33,7 @@ INTRINSICCV_TARGET_FN_ATTS void yuv_sp_to_bgr_u8( height, is_nv21); } -INTRINSICCV_TARGET_FN_ATTS void yuv_sp_to_bgra_u8( +INTRINSICCV_LOCALLY_STREAMING INTRINSICCV_TARGET_FN_ATTS void yuv_sp_to_bgra_u8( const uint8_t *src_y, size_t src_y_stride, const uint8_t *src_uv, size_t src_uv_stride, uint8_t *dst, size_t dst_stride, size_t width, size_t height, bool is_nv21) { diff --git a/intrinsiccv/src/filters/gaussian_blur_sme2.cpp b/intrinsiccv/src/filters/gaussian_blur_sme2.cpp index d9a9131e7..34f9b749b 100644 --- a/intrinsiccv/src/filters/gaussian_blur_sme2.cpp +++ b/intrinsiccv/src/filters/gaussian_blur_sme2.cpp @@ -7,11 +7,11 @@ namespace intrinsiccv::sme2 { -INTRINSICCV_TARGET_FN_ATTS void gaussian_blur_5x5_u8( - const uint8_t *src, size_t src_stride, uint8_t *dst, size_t dst_stride, - size_t width, size_t height, size_t channels, - intrinsiccv_border_type_t border_type, - const intrinsiccv_filter_params_t *params) { +INTRINSICCV_LOCALLY_STREAMING INTRINSICCV_TARGET_FN_ATTS void +gaussian_blur_5x5_u8(const uint8_t *src, size_t src_stride, uint8_t *dst, + size_t dst_stride, size_t width, size_t height, + size_t channels, intrinsiccv_border_type_t border_type, + const intrinsiccv_filter_params_t *params) { sve2::discrete_gaussian_blur(src, src_stride, dst, dst_stride, width, height, channels, border_type, params); diff --git a/intrinsiccv/src/filters/sobel_sme2.cpp b/intrinsiccv/src/filters/sobel_sme2.cpp index 5c8d86dac..7b4550758 100644 --- a/intrinsiccv/src/filters/sobel_sme2.cpp +++ b/intrinsiccv/src/filters/sobel_sme2.cpp @@ -6,16 +6,18 @@ namespace intrinsiccv::sme2 { -INTRINSICCV_TARGET_FN_ATTS void sobel_3x3_horizontal_s16_u8( - const uint8_t *src, size_t src_stride, int16_t *dst, size_t dst_stride, - size_t width, size_t height, size_t channels) { +INTRINSICCV_LOCALLY_STREAMING INTRINSICCV_TARGET_FN_ATTS void +sobel_3x3_horizontal_s16_u8(const uint8_t *src, size_t src_stride, int16_t *dst, + size_t dst_stride, size_t width, size_t height, + size_t channels) { intrinsiccv::sve2::sobel_3x3_horizontal_s16_u8_sc( src, src_stride, dst, dst_stride, width, height, channels); } -INTRINSICCV_TARGET_FN_ATTS void sobel_3x3_vertical_s16_u8( - const uint8_t *src, size_t src_stride, int16_t *dst, size_t dst_stride, - size_t width, size_t height, size_t channels) { +INTRINSICCV_LOCALLY_STREAMING INTRINSICCV_TARGET_FN_ATTS void +sobel_3x3_vertical_s16_u8(const uint8_t *src, size_t src_stride, int16_t *dst, + size_t dst_stride, size_t width, size_t height, + size_t channels) { intrinsiccv::sve2::sobel_3x3_vertical_s16_u8_sc( src, src_stride, dst, dst_stride, width, height, channels); } diff --git a/intrinsiccv/src/morphology/morphology_sme2.cpp b/intrinsiccv/src/morphology/morphology_sme2.cpp index 53d2e3517..a3c70f0b9 100644 --- a/intrinsiccv/src/morphology/morphology_sme2.cpp +++ b/intrinsiccv/src/morphology/morphology_sme2.cpp @@ -7,7 +7,7 @@ namespace intrinsiccv::sme2 { template -INTRINSICCV_TARGET_FN_ATTS INTRINSICCV_LOCALLY_STREAMING void dilate( +INTRINSICCV_LOCALLY_STREAMING INTRINSICCV_TARGET_FN_ATTS void dilate( const T *src, size_t src_stride, T *dst, size_t dst_stride, size_t width, size_t height, const intrinsiccv_morphology_params_t *params) { intrinsiccv::sve2::dilate_sc(src, src_stride, dst, dst_stride, width, @@ -15,7 +15,7 @@ INTRINSICCV_TARGET_FN_ATTS INTRINSICCV_LOCALLY_STREAMING void dilate( } template -INTRINSICCV_TARGET_FN_ATTS INTRINSICCV_LOCALLY_STREAMING void erode( +INTRINSICCV_LOCALLY_STREAMING INTRINSICCV_TARGET_FN_ATTS void erode( const T *src, size_t src_stride, T *dst, size_t dst_stride, size_t width, size_t height, const intrinsiccv_morphology_params_t *params) { intrinsiccv::sve2::erode_sc(src, src_stride, dst, dst_stride, width, diff --git a/intrinsiccv/src/resize/resize_sme2.cpp b/intrinsiccv/src/resize/resize_sme2.cpp index 8ee20e12e..3dee4382c 100644 --- a/intrinsiccv/src/resize/resize_sme2.cpp +++ b/intrinsiccv/src/resize/resize_sme2.cpp @@ -7,9 +7,10 @@ namespace intrinsiccv::sme2 { -INTRINSICCV_TARGET_FN_ATTS void resize_to_quarter_u8( - const uint8_t *src, size_t src_stride, size_t src_width, size_t src_height, - uint8_t *dst, size_t dst_stride, size_t dst_width, size_t dst_height) { +INTRINSICCV_LOCALLY_STREAMING INTRINSICCV_TARGET_FN_ATTS void +resize_to_quarter_u8(const uint8_t *src, size_t src_stride, size_t src_width, + size_t src_height, uint8_t *dst, size_t dst_stride, + size_t dst_width, size_t dst_height) { intrinsiccv::sve2::resize_to_quarter_u8_sc(src, src_stride, src_width, src_height, dst, dst_stride, dst_width, dst_height); -- GitLab