From 53e8e70bba765ec8ff0d4684c7364fc504034bc4 Mon Sep 17 00:00:00 2001 From: Florian Walpen Date: Tue, 4 Apr 2023 17:28:51 +0200 Subject: [PATCH] audio/ardour: Update to 7.3.0 release. ChangeLog: https://ardour.org/whatsnew.html PR: 270056 Reported by: dev@submerge.ch (maintainer) --- audio/ardour/Makefile | 5 +- audio/ardour/distinfo | 6 +- .../files/patch-libs_ardour_ardour_cycles.h | 25 ---- .../patch-libs_ardour_sse__functions__avx.cc | 11 ++ ...-libs_ardour_sse__functions__avx__linux.cc | 84 ++++++++++++++ ...tch-libs_ardour_x86__functions__avx512f.cc | 109 ++++++++++++++++++ .../patch-libs_ardour_x86__functions__fma.cc | 13 +++ audio/ardour/pkg-plist | 1 + 8 files changed, 223 insertions(+), 31 deletions(-) delete mode 100644 audio/ardour/files/patch-libs_ardour_ardour_cycles.h create mode 100644 audio/ardour/files/patch-libs_ardour_sse__functions__avx.cc create mode 100644 audio/ardour/files/patch-libs_ardour_sse__functions__avx__linux.cc create mode 100644 audio/ardour/files/patch-libs_ardour_x86__functions__avx512f.cc create mode 100644 audio/ardour/files/patch-libs_ardour_x86__functions__fma.cc diff --git a/audio/ardour/Makefile b/audio/ardour/Makefile index e6096438046df..125fdabeea898 100644 --- a/audio/ardour/Makefile +++ b/audio/ardour/Makefile @@ -1,12 +1,11 @@ PORTNAME= ardour -DISTVERSION= 7.2.0 -PORTREVISION= 1 +DISTVERSION= 7.3.0 CATEGORIES= audio # Official source download is tailored to browsers, downloads from github are # deliberately made empty. Put the badly named distfile into a subdirectory. MASTER_SITES= https://community.ardour.org/download/release/ DISTNAME= Ardour-${DISTVERSION} -DISTFILES= 516 +DISTFILES= 522 DIST_SUBDIR= ${DISTNAME} MAINTAINER= dev@submerge.ch diff --git a/audio/ardour/distinfo b/audio/ardour/distinfo index 666a17a5c8d2c..cc3582c78e709 100644 --- a/audio/ardour/distinfo +++ b/audio/ardour/distinfo @@ -1,3 +1,3 @@ -TIMESTAMP = 1671141631 -SHA256 (Ardour-7.2.0/516) = c92d5b1dd09e7b8a580121478934b30cd9322fe052f45229dcf49363ca6e377f -SIZE (Ardour-7.2.0/516) = 12882609 +TIMESTAMP = 1676815269 +SHA256 (Ardour-7.3.0/522) = 1f45263b4fbfd69e605125bd9094b43fac85d164f1839d29681b8d4ee5695f29 +SIZE (Ardour-7.3.0/522) = 12897398 diff --git a/audio/ardour/files/patch-libs_ardour_ardour_cycles.h b/audio/ardour/files/patch-libs_ardour_ardour_cycles.h deleted file mode 100644 index 666c0bfde27c7..0000000000000 --- a/audio/ardour/files/patch-libs_ardour_ardour_cycles.h +++ /dev/null @@ -1,25 +0,0 @@ ---- libs/ardour/ardour/cycles.h.orig 2023-01-03 16:39:59 UTC -+++ libs/ardour/ardour/cycles.h -@@ -72,12 +72,22 @@ static inline cycles_t get_cycles (void) - - #elif defined(__powerpc64__) - -+#ifdef __linux__ - #include - typedef uint64_t cycles_t; - static inline cycles_t get_cycles(void) - { - return __ppc_get_timebase(); - } -+#elif defined(__FreeBSD__) -+typedef uint64_t cycles_t; -+static inline cycles_t get_cycles(void) -+{ -+ cycles_t tbr; -+ asm volatile("mfspr %0, 268" : "=r"(tbr)); -+ return tbr; -+} -+#endif - - #elif defined(__powerpc__) - diff --git a/audio/ardour/files/patch-libs_ardour_sse__functions__avx.cc b/audio/ardour/files/patch-libs_ardour_sse__functions__avx.cc new file mode 100644 index 0000000000000..10d8ff612f2c5 --- /dev/null +++ b/audio/ardour/files/patch-libs_ardour_sse__functions__avx.cc @@ -0,0 +1,11 @@ +--- libs/ardour/sse_functions_avx.cc.orig 2023-02-21 01:18:30 UTC ++++ libs/ardour/sse_functions_avx.cc +@@ -47,7 +47,7 @@ x86_sse_avx_find_peaks(const float* buf, uint32_t nfra + // load each 64 bytes into cash before processing + while (nframes >= 16) { + #if defined(COMPILER_MSVC) || defined(COMPILER_MINGW) +- _mm_prefetch(((char*)buf+64), _mm_hint(0) ); ++ _mm_prefetch(((char*)buf+64), _MM_HINT_NTA ); + #else + __builtin_prefetch(buf+64,0,0); + #endif diff --git a/audio/ardour/files/patch-libs_ardour_sse__functions__avx__linux.cc b/audio/ardour/files/patch-libs_ardour_sse__functions__avx__linux.cc new file mode 100644 index 0000000000000..c83d581aa634a --- /dev/null +++ b/audio/ardour/files/patch-libs_ardour_sse__functions__avx__linux.cc @@ -0,0 +1,84 @@ +--- libs/ardour/sse_functions_avx_linux.cc.orig 2023-02-21 01:17:58 UTC ++++ libs/ardour/sse_functions_avx_linux.cc +@@ -106,7 +106,7 @@ x86_sse_avx_compute_peak(const float *src, uint32_t nf + while (nframes >= 32) + { + #ifdef _WIN32 +- _mm_prefetch(reinterpret_cast(src + 32), _mm_hint(0)); ++ _mm_prefetch(reinterpret_cast(src + 32), _MM_HINT_NTA); + #else + __builtin_prefetch(reinterpret_cast(src + 32), 0, 0); + #endif +@@ -196,7 +196,7 @@ x86_sse_avx_find_peaks(const float *src, uint32_t nfra + while (nframes >= 32) + { + #ifdef _WIN32 +- _mm_prefetch(reinterpret_cast(src + 32), _mm_hint(0)); ++ _mm_prefetch(reinterpret_cast(src + 32), _MM_HINT_NTA); + #else + __builtin_prefetch(reinterpret_cast(src + 32), 0, 0); + #endif +@@ -278,7 +278,7 @@ x86_sse_avx_apply_gain_to_buffer(float *dst, uint32_t + while (frames >= 16) + { + #if defined(COMPILER_MSVC) || defined(COMPILER_MINGW) +- _mm_prefetch(((char *)dst + (16 * sizeof(float))), _mm_hint(0)); ++ _mm_prefetch(((char *)dst + (16 * sizeof(float))), _MM_HINT_NTA); + #else + __builtin_prefetch(reinterpret_cast(dst + 16), 0, 0); + #endif +@@ -410,8 +410,8 @@ x86_sse_avx_mix_buffers_with_gain_unaligned(float *dst + while (nframes >= 16) + { + #if defined(COMPILER_MSVC) || defined(COMPILER_MINGW) +- _mm_prefetch(((char *)dst + (16 * sizeof(float))), _mm_hint(0)); +- _mm_prefetch(((char *)src + (16 * sizeof(float))), _mm_hint(0)); ++ _mm_prefetch(((char *)dst + (16 * sizeof(float))), _MM_HINT_NTA); ++ _mm_prefetch(((char *)src + (16 * sizeof(float))), _MM_HINT_NTA); + #else + __builtin_prefetch(reinterpret_cast(src + 16), 0, 0); + __builtin_prefetch(reinterpret_cast(dst + 16), 0, 0); +@@ -503,8 +503,8 @@ x86_sse_avx_mix_buffers_with_gain_aligned(float *dst, + while (nframes >= 16) + { + #if defined(COMPILER_MSVC) || defined(COMPILER_MINGW) +- _mm_prefetch(((char *)dst + (16 * sizeof(float))), _mm_hint(0)); +- _mm_prefetch(((char *)src + (16 * sizeof(float))), _mm_hint(0)); ++ _mm_prefetch(((char *)dst + (16 * sizeof(float))), _MM_HINT_NTA); ++ _mm_prefetch(((char *)src + (16 * sizeof(float))), _MM_HINT_NTA); + #else + __builtin_prefetch(reinterpret_cast(src + 16), 0, 0); + __builtin_prefetch(reinterpret_cast(dst + 16), 0, 0); +@@ -592,8 +592,8 @@ x86_sse_avx_mix_buffers_no_gain_unaligned(float *dst, + while (nframes >= 16) + { + #if defined(COMPILER_MSVC) || defined(COMPILER_MINGW) +- _mm_prefetch(((char *)dst + (16 * sizeof(float))), _mm_hint(0)); +- _mm_prefetch(((char *)src + (16 * sizeof(float))), _mm_hint(0)); ++ _mm_prefetch(((char *)dst + (16 * sizeof(float))), _MM_HINT_NTA); ++ _mm_prefetch(((char *)src + (16 * sizeof(float))), _MM_HINT_NTA); + #else + __builtin_prefetch(reinterpret_cast(src + 16), 0, 0); + __builtin_prefetch(reinterpret_cast(dst + 16), 0, 0); +@@ -674,8 +674,8 @@ x86_sse_avx_mix_buffers_no_gain_aligned(float *dst, co + while (nframes >= 32) + { + #if defined(COMPILER_MSVC) || defined(COMPILER_MINGW) +- _mm_prefetch(((char *)dst + (32 * sizeof(float))), _mm_hint(0)); +- _mm_prefetch(((char *)src + (32 * sizeof(float))), _mm_hint(0)); ++ _mm_prefetch(((char *)dst + (32 * sizeof(float))), _MM_HINT_NTA); ++ _mm_prefetch(((char *)src + (32 * sizeof(float))), _MM_HINT_NTA); + #else + __builtin_prefetch(reinterpret_cast(src + 32), 0, 0); + __builtin_prefetch(reinterpret_cast(dst + 32), 0, 0); +@@ -717,8 +717,8 @@ x86_sse_avx_mix_buffers_no_gain_aligned(float *dst, co + while (nframes >= 16) + { + #if defined(COMPILER_MSVC) || defined(COMPILER_MINGW) +- _mm_prefetch(((char *)dst + (16 * sizeof(float))), _mm_hint(0)); +- _mm_prefetch(((char *)src + (16 * sizeof(float))), _mm_hint(0)); ++ _mm_prefetch(((char *)dst + (16 * sizeof(float))), _MM_HINT_NTA); ++ _mm_prefetch(((char *)src + (16 * sizeof(float))), _MM_HINT_NTA); + #else + __builtin_prefetch(reinterpret_cast(src + 16), 0, 0); + __builtin_prefetch(reinterpret_cast(dst + 16), 0, 0); diff --git a/audio/ardour/files/patch-libs_ardour_x86__functions__avx512f.cc b/audio/ardour/files/patch-libs_ardour_x86__functions__avx512f.cc new file mode 100644 index 0000000000000..79f1f3c649f78 --- /dev/null +++ b/audio/ardour/files/patch-libs_ardour_x86__functions__avx512f.cc @@ -0,0 +1,109 @@ +--- libs/ardour/x86_functions_avx512f.cc.orig 2023-02-21 01:05:04 UTC ++++ libs/ardour/x86_functions_avx512f.cc +@@ -83,7 +83,7 @@ x86_avx512f_compute_peak(const float *src, uint32_t nf + } + + while (frames >= 256) { +- _mm_prefetch(reinterpret_cast(src + 256), _mm_hint(0)); ++ _mm_prefetch(reinterpret_cast(src + 256), _MM_HINT_NTA); + + __m512 x0 = _mm512_load_ps(src + 0); + __m512 x1 = _mm512_load_ps(src + 16); +@@ -142,7 +142,7 @@ x86_avx512f_compute_peak(const float *src, uint32_t nf + } + + while (frames >= 128) { +- _mm_prefetch(reinterpret_cast(src + 128), _mm_hint(0)); ++ _mm_prefetch(reinterpret_cast(src + 128), _MM_HINT_NTA); + + __m512 x0 = _mm512_load_ps(src + 0); + __m512 x1 = _mm512_load_ps(src + 16); +@@ -176,7 +176,7 @@ x86_avx512f_compute_peak(const float *src, uint32_t nf + } + + while (frames >= 64) { +- _mm_prefetch(reinterpret_cast(src + 64), _mm_hint(0)); ++ _mm_prefetch(reinterpret_cast(src + 64), _MM_HINT_NTA); + + __m512 x0 = _mm512_load_ps(src + 0); + __m512 x1 = _mm512_load_ps(src + 16); +@@ -310,7 +310,7 @@ x86_avx512f_find_peaks(const float *src, uint32_t nfra + } + + while (frames >= 256) { +- _mm_prefetch(reinterpret_cast(src + 256), _mm_hint(0)); ++ _mm_prefetch(reinterpret_cast(src + 256), _MM_HINT_NTA); + + __m512 x0 = _mm512_load_ps(src + 0); + __m512 x1 = _mm512_load_ps(src + 16); +@@ -371,7 +371,7 @@ x86_avx512f_find_peaks(const float *src, uint32_t nfra + } + + while (frames >= 128) { +- _mm_prefetch(reinterpret_cast(src + 128), _mm_hint(0)); ++ _mm_prefetch(reinterpret_cast(src + 128), _MM_HINT_NTA); + + __m512 x0 = _mm512_load_ps(src + 0); + __m512 x1 = _mm512_load_ps(src + 16); +@@ -405,7 +405,7 @@ x86_avx512f_find_peaks(const float *src, uint32_t nfra + } + + while (frames >= 64) { +- _mm_prefetch(reinterpret_cast(src + 64), _mm_hint(0)); ++ _mm_prefetch(reinterpret_cast(src + 64), _MM_HINT_NTA); + + __m512 x0 = _mm512_load_ps(src + 0); + __m512 x1 = _mm512_load_ps(src + 16); +@@ -532,7 +532,7 @@ x86_avx512f_apply_gain_to_buffer(float *dst, uint32_t + + // Process the remaining samples 128 at a time + while (frames >= 128) { +- _mm_prefetch(reinterpret_cast(dst + 128), _mm_hint(0)); ++ _mm_prefetch(reinterpret_cast(dst + 128), _MM_HINT_NTA); + + __m512 x0 = _mm512_load_ps(dst + 0); + __m512 x1 = _mm512_load_ps(dst + 16); +@@ -679,8 +679,8 @@ x86_avx512f_mix_buffers_with_gain(float *dst, const fl + + // Process the remaining samples 128 at a time + while (frames >= 128) { +- _mm_prefetch(reinterpret_cast(src + 128), _mm_hint(0)); +- _mm_prefetch(reinterpret_cast(dst + 128), _mm_hint(0)); ++ _mm_prefetch(reinterpret_cast(src + 128), _MM_HINT_NTA); ++ _mm_prefetch(reinterpret_cast(dst + 128), _MM_HINT_NTA); + + __m512 x0 = _mm512_load_ps(src + 0); + __m512 x1 = _mm512_load_ps(src + 16); +@@ -836,8 +836,8 @@ x86_avx512f_mix_buffers_no_gain(float *dst, const floa + + // Process the remaining samples 128 at a time + while (frames >= 128) { +- _mm_prefetch(reinterpret_cast(src + 128), _mm_hint(0)); +- _mm_prefetch(reinterpret_cast(dst + 128), _mm_hint(0)); ++ _mm_prefetch(reinterpret_cast(src + 128), _MM_HINT_NTA); ++ _mm_prefetch(reinterpret_cast(dst + 128), _MM_HINT_NTA); + + __m512 x0 = _mm512_load_ps(src + 0); + __m512 x1 = _mm512_load_ps(src + 16); +@@ -987,8 +987,8 @@ x86_avx512f_copy_vector(float *dst, const float *src, + + // Process 256 samples at a time + while (frames >= 256) { +- _mm_prefetch(reinterpret_cast(src + 256), _mm_hint(0)); +- _mm_prefetch(reinterpret_cast(dst + 256), _mm_hint(0)); ++ _mm_prefetch(reinterpret_cast(src + 256), _MM_HINT_NTA); ++ _mm_prefetch(reinterpret_cast(dst + 256), _MM_HINT_NTA); + + __m512 x0 = _mm512_load_ps(src + 0); + __m512 x1 = _mm512_load_ps(src + 16); +@@ -1033,8 +1033,8 @@ x86_avx512f_copy_vector(float *dst, const float *src, + + // Process remaining samples 64 at a time + while (frames >= 64) { +- _mm_prefetch(reinterpret_cast(src + 64), _mm_hint(0)); +- _mm_prefetch(reinterpret_cast(dst + 64), _mm_hint(0)); ++ _mm_prefetch(reinterpret_cast(src + 64), _MM_HINT_NTA); ++ _mm_prefetch(reinterpret_cast(dst + 64), _MM_HINT_NTA); + + __m512 x0 = _mm512_load_ps(src + 0); + __m512 x1 = _mm512_load_ps(src + 16); diff --git a/audio/ardour/files/patch-libs_ardour_x86__functions__fma.cc b/audio/ardour/files/patch-libs_ardour_x86__functions__fma.cc new file mode 100644 index 0000000000000..f8afdb13e60ad --- /dev/null +++ b/audio/ardour/files/patch-libs_ardour_x86__functions__fma.cc @@ -0,0 +1,13 @@ +--- libs/ardour/x86_functions_fma.cc.orig 2023-02-21 01:16:53 UTC ++++ libs/ardour/x86_functions_fma.cc +@@ -67,8 +67,8 @@ x86_fma_mix_buffers_with_gain( + + while (nframes >= 16) { + #if defined(COMPILER_MSVC) || defined(COMPILER_MINGW) +- _mm_prefetch(((char *)dst + (16 * sizeof(float))), _mm_hint(0)); +- _mm_prefetch(((char *)src + (16 * sizeof(float))), _mm_hint(0)); ++ _mm_prefetch(((char *)dst + (16 * sizeof(float))), _MM_HINT_NTA); ++ _mm_prefetch(((char *)src + (16 * sizeof(float))), _MM_HINT_NTA); + #else + __builtin_prefetch(src + (16 * sizeof(float)), 0, 0); + __builtin_prefetch(dst + (16 * sizeof(float)), 0, 0); diff --git a/audio/ardour/pkg-plist b/audio/ardour/pkg-plist index 9ea13963efac9..f54224ea8a523 100644 --- a/audio/ardour/pkg-plist +++ b/audio/ardour/pkg-plist @@ -836,6 +836,7 @@ share/applications/%%ARDOUR_MAJOR%%.desktop %%DATADIR%%/scripts/reset_mixer.lua %%DATADIR%%/scripts/rubberband_swing.lua %%DATADIR%%/scripts/s_chanmap.lua +%%DATADIR%%/scripts/s_cut_copy_section.lua %%DATADIR%%/scripts/s_ducks.lua %%DATADIR%%/scripts/s_fader_automation.lua %%DATADIR%%/scripts/s_foreach_track.lua