Add CPU dispatch for the strings effect
This commit is contained in:
parent
10fa64b2c8
commit
843d603f37
2 changed files with 17 additions and 2 deletions
|
|
@ -1,6 +1,7 @@
|
|||
include (GNUInstallDirs)
|
||||
|
||||
add_subdirectory(external/kiss_fft)
|
||||
add_subdirectory(external/cpuid)
|
||||
|
||||
set (SFIZZ_SOURCES
|
||||
sfizz/Synth.cpp
|
||||
|
|
@ -54,7 +55,7 @@ target_sources(sfizz_static PRIVATE ${SFIZZ_SOURCES} sfizz/sfizz_wrapper.cpp sfi
|
|||
target_include_directories (sfizz_static PUBLIC .)
|
||||
target_include_directories (sfizz_static PUBLIC external)
|
||||
target_link_libraries (sfizz_static PUBLIC absl::strings absl::span)
|
||||
target_link_libraries (sfizz_static PRIVATE sfizz_parser absl::flat_hash_map Threads::Threads sfizz-sndfile sfizz-pugixml sfizz-spline sfizz-kissfft)
|
||||
target_link_libraries (sfizz_static PRIVATE sfizz_parser absl::flat_hash_map Threads::Threads sfizz-sndfile sfizz-pugixml sfizz-spline sfizz-kissfft sfizz-cpuid)
|
||||
set_target_properties (sfizz_static PROPERTIES OUTPUT_NAME sfizz PUBLIC_HEADER "sfizz.h;sfizz.hpp")
|
||||
if (WIN32)
|
||||
target_compile_definitions (sfizz_static PRIVATE _USE_MATH_DEFINES)
|
||||
|
|
@ -89,7 +90,7 @@ if (SFIZZ_SHARED)
|
|||
target_sources(sfizz_shared PRIVATE ${SFIZZ_SOURCES} sfizz/sfizz_wrapper.cpp sfizz/sfizz.cpp)
|
||||
target_include_directories (sfizz_shared PRIVATE .)
|
||||
target_include_directories (sfizz_shared PRIVATE external)
|
||||
target_link_libraries (sfizz_shared PRIVATE absl::strings absl::span sfizz_parser absl::flat_hash_map Threads::Threads sfizz-sndfile sfizz-pugixml sfizz-spline sfizz-kissfft)
|
||||
target_link_libraries (sfizz_shared PRIVATE absl::strings absl::span sfizz_parser absl::flat_hash_map Threads::Threads sfizz-sndfile sfizz-pugixml sfizz-spline sfizz-kissfft sfizz-cpuid)
|
||||
if (WIN32)
|
||||
target_compile_definitions (sfizz_shared PRIVATE _USE_MATH_DEFINES)
|
||||
endif()
|
||||
|
|
|
|||
|
|
@ -22,6 +22,7 @@ Extensions
|
|||
#include "Opcode.h"
|
||||
#include "MathHelpers.h"
|
||||
#include "SIMDHelpers.h"
|
||||
#include "cpuid/cpuinfo.hpp"
|
||||
#include "absl/memory/memory.h"
|
||||
#include <cmath>
|
||||
|
||||
|
|
@ -31,6 +32,19 @@ namespace fx {
|
|||
Strings::Strings()
|
||||
: _stringsArray(new ResonantArrayScalar)
|
||||
{
|
||||
ResonantArray* array = nullptr;
|
||||
|
||||
#if SFIZZ_CPU_FAMILY_X86_64 || SFIZZ_CPU_FAMILY_I386
|
||||
cpuid::cpuinfo cpuInfo;
|
||||
if (cpuInfo.has_avx())
|
||||
array = new ResonantArrayAVX;
|
||||
else if (cpuInfo.has_sse())
|
||||
array = new ResonantArraySSE;
|
||||
#endif
|
||||
if (!array)
|
||||
array = new ResonantArrayScalar;
|
||||
|
||||
_stringsArray.reset(array);
|
||||
}
|
||||
|
||||
Strings::~Strings()
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue