Signed-off-by: falkTX <falktx@falktx.com>tags/24.04
| @@ -53,7 +53,7 @@ jobs: | |||
| shell: bash | |||
| run: | | |||
| ./deps/PawPaw/.github/workflows/bootstrap-deps.sh linux-${{ matrix.target }} | |||
| apt-get install -yqq wget | |||
| apt-get install -yqq wget zip | |||
| - name: Setup dependencies (aarch64) | |||
| if: ${{ matrix.target == 'aarch64' }} | |||
| shell: bash | |||
| @@ -417,7 +417,7 @@ jobs: | |||
| - name: Set up dependencies | |||
| run: | | |||
| ./deps/PawPaw/.github/workflows/bootstrap-deps.sh ${{ matrix.target }} | |||
| apt-get install -yqq wget | |||
| apt-get install -yqq wget zip | |||
| apt-get clean | |||
| - name: Set up ccache | |||
| uses: hendrikmuhs/ccache-action@v1.2 | |||
| @@ -212,9 +212,6 @@ | |||
| [submodule "plugins/dBiz"] | |||
| path = plugins/dBiz | |||
| url = https://github.com/dBiz/dBiz.git | |||
| [submodule "include/simde"] | |||
| path = include/simde | |||
| url = https://github.com/simd-everywhere/simde.git | |||
| [submodule "plugins/RebelTech"] | |||
| path = plugins/RebelTech | |||
| url = https://github.com/hemmer/rebel-tech-vcv.git | |||
| @@ -68,6 +68,12 @@ endif | |||
| ifeq ($(NOSIMD),true) | |||
| BASE_FLAGS += -DCARDINAL_NOSIMD | |||
| else ifeq ($(WASM),true) | |||
| BASE_FLAGS += -msse -msse2 -msse3 -msimd128 | |||
| else ifeq ($(CPU_ARM32),true) | |||
| BASE_FLAGS += -mfpu=neon-vfpv4 -mfloat-abi=hard | |||
| else ifeq ($(CPU_I386_OR_X86_64),true) | |||
| BASE_FLAGS += -msse -msse2 -msse3 -mfpmath=sse | |||
| endif | |||
| ifeq ($(SYSDEPS),true) | |||
| @@ -109,10 +115,6 @@ BASE_FLAGS += -DSIMDE_FAST_NANS | |||
| BASE_FLAGS += -DSIMDE_FAST_ROUND_MODE | |||
| BASE_FLAGS += -DSIMDE_FAST_ROUND_TIES | |||
| # unwanted | |||
| BASE_FLAGS += -DSIMDE_X86_SSE4_1_H | |||
| BASE_FLAGS += -DSIMDE_X86_SSE4_2_H | |||
| # ----------------------------------------------------------------------------- | |||
| # Rack build flags | |||
| @@ -161,25 +163,8 @@ endif | |||
| # needed for enabling SSE in pffft | |||
| ifeq ($(CPU_I386),true) | |||
| ifneq ($(NOSIMD),true) | |||
| BASE_FLAGS += -Di386 | |||
| endif | |||
| endif | |||
| # SIMD must always be enabled, even in debug builds | |||
| ifneq ($(NOSIMD),true) | |||
| ifeq ($(DEBUG),true) | |||
| ifeq ($(WASM),true) | |||
| BASE_FLAGS += -msse -msse2 -msse3 -msimd128 | |||
| else ifeq ($(CPU_ARM32),true) | |||
| BASE_FLAGS += -mfpu=neon-vfpv4 -mfloat-abi=hard | |||
| else ifeq ($(CPU_I386_OR_X86_64),true) | |||
| BASE_FLAGS += -msse -msse2 -msse3 -mfpmath=sse | |||
| endif | |||
| endif | |||
| endif | |||
| BASE_FLAGS += -I$(abspath $(ROOT)/dpf/dgl/src/nanovg) | |||
| BASE_FLAGS += -I$(abspath $(ROOT)/dpf/distrho) | |||
| @@ -269,19 +269,6 @@ endif | |||
| # use custom JUCE from DISTRHO and Carla | |||
| SURGE_CXX_FLAGS += -I$(abspath ../carla/source/modules) | |||
| # SIMD must always be enabled, even in debug builds | |||
| ifeq ($(NOSIMD),true) | |||
| SURGE_CXX_FLAGS += -DCARDINAL_NOSIMD | |||
| else ifeq ($(DEBUG),true) | |||
| ifeq ($(WASM),true) | |||
| SURGE_CXX_FLAGS += -msse -msse2 -msse3 -msimd128 | |||
| else ifeq ($(CPU_ARM32),true) | |||
| SURGE_CXX_FLAGS += -mfpu=neon-vfpv4 -mfloat-abi=hard | |||
| else ifeq ($(CPU_I386_OR_X86_64),true) | |||
| SURGE_CXX_FLAGS += -msse -msse2 -mfpmath=sse | |||
| endif | |||
| endif | |||
| # possibly use fftw? | |||
| # ifeq ($(shell $(PKG_CONFIG) --exists fftw3 fftw3f && echo true),true) | |||
| # SURGE_CXX_FLAGS += -DJUCE_DSP_USE_STATIC_FFTW=1 | |||
| @@ -1 +1 @@ | |||
| Subproject commit 1369e1f84e6391df761b5ac5e143ab6841e57f7e | |||
| Subproject commit 7822bb0ba1deb75b3010d6efab63a4f854174b56 | |||
| @@ -1,26 +1,19 @@ | |||
| /* | |||
| * DISTRHO Cardinal Plugin | |||
| * Copyright (C) 2021-2023 Filipe Coelho <falktx@falktx.com> | |||
| * | |||
| * This program is free software; you can redistribute it and/or | |||
| * modify it under the terms of the GNU General Public License as | |||
| * published by the Free Software Foundation; either version 3 of | |||
| * the License, or any later version. | |||
| * | |||
| * This program is distributed in the hope that it will be useful, | |||
| * but WITHOUT ANY WARRANTY; without even the implied warranty of | |||
| * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | |||
| * GNU General Public License for more details. | |||
| * | |||
| * For a full copy of the GNU General Public License see the LICENSE file. | |||
| * Copyright (C) 2021-2024 Filipe Coelho <falktx@falktx.com> | |||
| * SPDX-License-Identifier: GPL-3.0-or-later | |||
| */ | |||
| #pragma once | |||
| #if (defined(__i386__) || defined(__x86_64__) || defined(__EMSCRIPTEN__)) && !defined(CARDINAL_NOSIMD) | |||
| #include "simd-compat.h" | |||
| #ifdef SIMDE_X86_SSE2_NATIVE | |||
| # include_next <emmintrin.h> | |||
| #else | |||
| # include "mmintrin.h" | |||
| # include "xmmintrin.h" | |||
| # define SIMDE_ENABLE_NATIVE_ALIASES | |||
| # include "simde/x86/sse.h" | |||
| # include "simde/x86/sse2.h" | |||
| # undef SIMDE_ENABLE_NATIVE_ALIASES | |||
| #endif | |||
| @@ -1,27 +1,20 @@ | |||
| /* | |||
| * DISTRHO Cardinal Plugin | |||
| * Copyright (C) 2021-2023 Filipe Coelho <falktx@falktx.com> | |||
| * | |||
| * This program is free software; you can redistribute it and/or | |||
| * modify it under the terms of the GNU General Public License as | |||
| * published by the Free Software Foundation; either version 3 of | |||
| * the License, or any later version. | |||
| * | |||
| * This program is distributed in the hope that it will be useful, | |||
| * but WITHOUT ANY WARRANTY; without even the implied warranty of | |||
| * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | |||
| * GNU General Public License for more details. | |||
| * | |||
| * For a full copy of the GNU General Public License see the LICENSE file. | |||
| * Copyright (C) 2021-2024 Filipe Coelho <falktx@falktx.com> | |||
| * SPDX-License-Identifier: GPL-3.0-or-later | |||
| */ | |||
| #pragma once | |||
| #if (defined(__i386__) || defined(__x86_64__) || defined(__EMSCRIPTEN__)) && !defined(CARDINAL_NOSIMD) | |||
| #include "simd-compat.h" | |||
| #ifdef SIMDE_X86_SSE_NATIVE | |||
| # include_next <immintrin.h> | |||
| #else | |||
| # define SIMDE_ENABLE_NATIVE_ALIASES | |||
| # include "../simde/simde/x86/sse.h" | |||
| # include "../simde/simde/x86/sse2.h" | |||
| # undef SIMDE_ENABLE_NATIVE_ALIASES | |||
| # include "mmintrin.h" | |||
| # include "xmmintrin.h" | |||
| # include "emmintrin.h" | |||
| # include "pmmintrin.h" | |||
| # include "tmmintrin.h" | |||
| # include "smmintrin.h" | |||
| #endif | |||
| @@ -1,28 +1,17 @@ | |||
| /* | |||
| * DISTRHO Cardinal Plugin | |||
| * Copyright (C) 2021-2023 Filipe Coelho <falktx@falktx.com> | |||
| * | |||
| * This program is free software; you can redistribute it and/or | |||
| * modify it under the terms of the GNU General Public License as | |||
| * published by the Free Software Foundation; either version 3 of | |||
| * the License, or any later version. | |||
| * | |||
| * This program is distributed in the hope that it will be useful, | |||
| * but WITHOUT ANY WARRANTY; without even the implied warranty of | |||
| * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | |||
| * GNU General Public License for more details. | |||
| * | |||
| * For a full copy of the GNU General Public License see the LICENSE file. | |||
| * Copyright (C) 2021-2024 Filipe Coelho <falktx@falktx.com> | |||
| * SPDX-License-Identifier: GPL-3.0-or-later | |||
| */ | |||
| #pragma once | |||
| #if (defined(__i386__) || defined(__x86_64__)) && !defined(CARDINAL_NOSIMD) | |||
| #include "simd-compat.h" | |||
| #ifdef SIMDE_X86_MMX_NATIVE | |||
| # include_next <mmintrin.h> | |||
| #elif defined(__EMSCRIPTEN__) && !defined(CARDINAL_NOSIMD) | |||
| # include <wasm_simd128.h> | |||
| #else | |||
| # define SIMDE_ENABLE_NATIVE_ALIASES | |||
| # include "../simde/simde/x86/mmx.h" | |||
| # include "simde/x86/mmx.h" | |||
| # undef SIMDE_ENABLE_NATIVE_ALIASES | |||
| #endif | |||
| @@ -1,51 +1,20 @@ | |||
| /* | |||
| * DISTRHO Cardinal Plugin | |||
| * Copyright (C) 2021-2023 Filipe Coelho <falktx@falktx.com> | |||
| * | |||
| * This program is free software; you can redistribute it and/or | |||
| * modify it under the terms of the GNU General Public License as | |||
| * published by the Free Software Foundation; either version 3 of | |||
| * the License, or any later version. | |||
| * | |||
| * This program is distributed in the hope that it will be useful, | |||
| * but WITHOUT ANY WARRANTY; without even the implied warranty of | |||
| * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | |||
| * GNU General Public License for more details. | |||
| * | |||
| * For a full copy of the GNU General Public License see the LICENSE file. | |||
| * Copyright (C) 2021-2024 Filipe Coelho <falktx@falktx.com> | |||
| * SPDX-License-Identifier: GPL-3.0-or-later | |||
| */ | |||
| #pragma once | |||
| #if (defined(__i386__) || defined(__x86_64__) || defined(__EMSCRIPTEN__)) && !defined(CARDINAL_NOSIMD) | |||
| #include "simd-compat.h" | |||
| #ifdef SIMDE_X86_SSE3_NATIVE | |||
| # include_next <pmmintrin.h> | |||
| # if defined(__EMSCRIPTEN__) && !defined(CARDINAL_NOSIMD) | |||
| static __inline__ __m64 __attribute__((__always_inline__, __nodebug__)) | |||
| _mm_set1_pi16(short w) | |||
| { | |||
| return __extension__ (__m64){ static_cast<float>(w), static_cast<float>(w) }; | |||
| } | |||
| # endif | |||
| #else | |||
| # include "mmintrin.h" | |||
| # include "xmmintrin.h" | |||
| # include "emmintrin.h" | |||
| # define SIMDE_ENABLE_NATIVE_ALIASES | |||
| # include "simde/x86/sse.h" | |||
| # include "simde/x86/sse2.h" | |||
| # include "simde/x86/sse3.h" | |||
| # undef SIMDE_ENABLE_NATIVE_ALIASES | |||
| /* | |||
| #elif defined(__ARM_NEON) | |||
| # include "../sse2neon/sse2neon.h" | |||
| static inline | |||
| void __builtin_ia32_pause() | |||
| { | |||
| __asm__ __volatile__("isb\n"); | |||
| } | |||
| static inline | |||
| __m64 _mm_set1_pi16(short w) | |||
| { | |||
| return vreinterpret_s64_s16(vdup_n_s16(w)); | |||
| } | |||
| */ | |||
| #endif | |||
| @@ -0,0 +1,52 @@ | |||
| /* | |||
| * DISTRHO Cardinal Plugin | |||
| * Copyright (C) 2021-2024 Filipe Coelho <falktx@falktx.com> | |||
| * SPDX-License-Identifier: GPL-3.0-or-later | |||
| */ | |||
| #pragma once | |||
| // native up to SSE3 | |||
| #if (defined(_M_X64) || defined(__amd64__) || defined(__SSE2__) || (defined(_M_IX86_FP) && _M_IX86_FP == 2)) && !defined(__EMSCRIPTEN__) && !defined(CARDINAL_NOSIMD) | |||
| # define SIMDE_X86_MMX_NATIVE | |||
| # define SIMDE_X86_SSE_NATIVE | |||
| # define SIMDE_X86_SSE2_NATIVE | |||
| # define SIMDE_X86_SSE3_NATIVE | |||
| #else | |||
| # define SIMDE_X86_MMX_NO_NATIVE | |||
| # define SIMDE_X86_SSE_NO_NATIVE | |||
| # define SIMDE_X86_SSE2_NO_NATIVE | |||
| # define SIMDE_X86_SSE3_NO_NATIVE | |||
| #endif | |||
| // everything else is emulated | |||
| #define SIMDE_X86_SSSE3_NO_NATIVE | |||
| #define SIMDE_X86_SSE4_1_NO_NATIVE | |||
| #define SIMDE_X86_SSE4_2_NO_NATIVE | |||
| #define SIMDE_X86_XOP_NO_NATIVE | |||
| #define SIMDE_X86_AVX_NO_NATIVE | |||
| #define SIMDE_X86_AVX2_NO_NATIVE | |||
| #define SIMDE_X86_FMA_NO_NATIVE | |||
| #define SIMDE_X86_AVX512F_NO_NATIVE | |||
| #define SIMDE_X86_AVX512BF16_NO_NATIVE | |||
| #define SIMDE_X86_AVX512BW_NO_NATIVE | |||
| #define SIMDE_X86_AVX512VL_NO_NATIVE | |||
| #define SIMDE_X86_AVX512DQ_NO_NATIVE | |||
| #define SIMDE_X86_AVX512CD_NO_NATIVE | |||
| #define SIMDE_X86_AVX5124VNNIW_NO_NATIVE | |||
| #define SIMDE_X86_AVX512VNNI_NO_NATIVE | |||
| #define SIMDE_X86_AVX512VBMI2_NO_NATIVE | |||
| #define SIMDE_X86_AVX512VBMI_NO_NATIVE | |||
| #define SIMDE_X86_AVX512BITALG_NO_NATIVE | |||
| #define SIMDE_X86_AVX512VPOPCNTDQ_NO_NATIVE | |||
| #define SIMDE_X86_AVX512VP2INTERSECT_NO_NATIVE | |||
| #define SIMDE_X86_SVML_NO_NATIVE | |||
| // control wasm simd state | |||
| #ifdef __EMSCRIPTEN__ | |||
| # ifdef CARDINAL_NOSIMD | |||
| # define SIMDE_WASM_SIMD128_NO_NATIVE | |||
| # else | |||
| # define SIMDE_WASM_SIMD128_NATIVE | |||
| # endif | |||
| #endif | |||
| @@ -0,0 +1,23 @@ | |||
| /* | |||
| * DISTRHO Cardinal Plugin | |||
| * Copyright (C) 2021-2024 Filipe Coelho <falktx@falktx.com> | |||
| * SPDX-License-Identifier: GPL-3.0-or-later | |||
| */ | |||
| #pragma once | |||
| #include "simd-compat.h" | |||
| #ifdef SIMDE_X86_SSE4_1_NATIVE | |||
| # include_next <smmintrin.h> | |||
| #else | |||
| # include "mmintrin.h" | |||
| # include "xmmintrin.h" | |||
| # include "emmintrin.h" | |||
| # include "pmmintrin.h" | |||
| # include "tmmintrin.h" | |||
| # define SIMDE_ENABLE_NATIVE_ALIASES | |||
| # include "simde/x86/sse4.1.h" | |||
| # include "simde/x86/sse4.2.h" | |||
| # undef SIMDE_ENABLE_NATIVE_ALIASES | |||
| #endif | |||
| @@ -0,0 +1,21 @@ | |||
| /* | |||
| * DISTRHO Cardinal Plugin | |||
| * Copyright (C) 2021-2024 Filipe Coelho <falktx@falktx.com> | |||
| * SPDX-License-Identifier: GPL-3.0-or-later | |||
| */ | |||
| #pragma once | |||
| #include "simd-compat.h" | |||
| #ifdef SIMDE_X86_SSSE3_NATIVE | |||
| # include_next <tmmintrin.h> | |||
| #else | |||
| # include "mmintrin.h" | |||
| # include "xmmintrin.h" | |||
| # include "emmintrin.h" | |||
| # include "pmmintrin.h" | |||
| # define SIMDE_ENABLE_NATIVE_ALIASES | |||
| # include "simde/x86/ssse3.h" | |||
| # undef SIMDE_ENABLE_NATIVE_ALIASES | |||
| #endif | |||
| @@ -1,26 +1,20 @@ | |||
| /* | |||
| * DISTRHO Cardinal Plugin | |||
| * Copyright (C) 2021-2023 Filipe Coelho <falktx@falktx.com> | |||
| * | |||
| * This program is free software; you can redistribute it and/or | |||
| * modify it under the terms of the GNU General Public License as | |||
| * published by the Free Software Foundation; either version 3 of | |||
| * the License, or any later version. | |||
| * | |||
| * This program is distributed in the hope that it will be useful, | |||
| * but WITHOUT ANY WARRANTY; without even the implied warranty of | |||
| * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | |||
| * GNU General Public License for more details. | |||
| * | |||
| * For a full copy of the GNU General Public License see the LICENSE file. | |||
| * Copyright (C) 2021-2024 Filipe Coelho <falktx@falktx.com> | |||
| * SPDX-License-Identifier: GPL-3.0-or-later | |||
| */ | |||
| #pragma once | |||
| #if (defined(__i386__) || defined(__x86_64__) || defined(__EMSCRIPTEN__)) && !defined(CARDINAL_NOSIMD) | |||
| #include "simd-compat.h" | |||
| #ifdef SIMDE_X86_SSE_NATIVE | |||
| # include_next <xmmintrin.h> | |||
| #else | |||
| # include "mmintrin.h" | |||
| # define SIMDE_ENABLE_NATIVE_ALIASES | |||
| # include "simde/x86/avx.h" | |||
| # include "simde/x86/sse.h" | |||
| # undef SIMDE_ENABLE_NATIVE_ALIASES | |||
| // always use SSE2 mode, as seen in gcc | |||
| # include "emmintrin.h" | |||
| #endif | |||
| @@ -1,27 +1,14 @@ | |||
| /* | |||
| * DISTRHO Cardinal Plugin | |||
| * Copyright (C) 2021-2023 Filipe Coelho <falktx@falktx.com> | |||
| * | |||
| * This program is free software; you can redistribute it and/or | |||
| * modify it under the terms of the GNU General Public License as | |||
| * published by the Free Software Foundation; either version 3 of | |||
| * the License, or any later version. | |||
| * | |||
| * This program is distributed in the hope that it will be useful, | |||
| * but WITHOUT ANY WARRANTY; without even the implied warranty of | |||
| * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | |||
| * GNU General Public License for more details. | |||
| * | |||
| * For a full copy of the GNU General Public License see the LICENSE file. | |||
| * Copyright (C) 2021-2024 Filipe Coelho <falktx@falktx.com> | |||
| * SPDX-License-Identifier: GPL-3.0-or-later | |||
| */ | |||
| #pragma once | |||
| #include "mmintrin.h" | |||
| #include "xmmintrin.h" | |||
| #include "emmintrin.h" | |||
| #include "immintrin.h" | |||
| #include "pmmintrin.h" | |||
| #define SIMDE_ENABLE_NATIVE_ALIASES | |||
| #include "simde/x86/ssse3.h" | |||
| #include "simde/x86/sse4.1.h" | |||
| #include "simde/x86/sse4.2.h" | |||
| #include "tmmintrin.h" | |||
| #include "smmintrin.h" | |||
| @@ -1,22 +1,12 @@ | |||
| /* | |||
| * DISTRHO Cardinal Plugin | |||
| * Copyright (C) 2021-2023 Filipe Coelho <falktx@falktx.com> | |||
| * | |||
| * This program is free software; you can redistribute it and/or | |||
| * modify it under the terms of the GNU General Public License as | |||
| * published by the Free Software Foundation; either version 3 of | |||
| * the License, or any later version. | |||
| * | |||
| * This program is distributed in the hope that it will be useful, | |||
| * but WITHOUT ANY WARRANTY; without even the implied warranty of | |||
| * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | |||
| * GNU General Public License for more details. | |||
| * | |||
| * For a full copy of the GNU General Public License see the LICENSE file. | |||
| * Copyright (C) 2021-2024 Filipe Coelho <falktx@falktx.com> | |||
| * SPDX-License-Identifier: GPL-3.0-or-later | |||
| */ | |||
| #pragma once | |||
| #include "simd/common.hpp" | |||
| #include_next "simd/functions.hpp" | |||
| #undef SIMDE_MM_FROUND_NO_EXC | |||
| // #undef SIMDE_MM_FROUND_NO_EXC | |||
| // #undef _MM_FROUND_NO_EXC | |||
| @@ -284,7 +284,6 @@ endif | |||
| ifeq ($(shell $(PKG_CONFIG) --exists fftw3f && echo true),true) | |||
| PLUGIN_FILES += Cardinal/src/AudioToCVPitch.cpp | |||
| # MINIPLUGIN_FILES += Cardinal/src/AudioToCVPitch.cpp | |||
| BASE_FLAGS += -DHAVE_FFTW3F | |||
| endif | |||
| # -------------------------------------------------------------- | |||
| @@ -1280,6 +1279,14 @@ BASE_FLAGS += -D'aligned_alloc_16(ptr)'='aligned_alloc(16,ptr)' | |||
| BASE_FLAGS += -D'aligned_free_16(ptr)'='free(ptr)' | |||
| endif | |||
| ifeq ($(WASM),true) | |||
| BASE_FLAGS += -DEIGEN_DONT_VECTORIZE=1 | |||
| endif | |||
| ifeq ($(shell $(PKG_CONFIG) --exists fftw3f && echo true),true) | |||
| BASE_FLAGS += -DHAVE_FFTW3F | |||
| endif | |||
| ifeq ($(shell $(PKG_CONFIG) --exists sndfile && echo true),true) | |||
| BASE_FLAGS += -DHAVE_SNDFILE | |||
| endif | |||
| @@ -1329,10 +1336,6 @@ RTNEURAL_FLAGS += -DSKIP_MINGW_FORMAT | |||
| RTNEURAL_FLAGS += -DRTNEURAL_DEFAULT_ALIGNMENT=16 | |||
| RTNEURAL_FLAGS += -DRTNEURAL_USE_EIGEN=1 | |||
| ifeq ($(WASM),true) | |||
| RTNEURAL_FLAGS += -DEIGEN_DONT_VECTORIZE=1 | |||
| endif | |||
| RTNEURAL_FLAGS += -ICardinal/src/AIDA-X/RTNeural | |||
| RTNEURAL_FLAGS += -ICardinal/src/AIDA-X/RTNeural/modules/Eigen | |||