Use portable_simd from std instead of packed_simd
Since this seems to be the way forward and they encourage using the feature flag instead of the using it as a separate crate.
This commit is contained in:
parent
8eafcebe62
commit
3f6f472a34
4 changed files with 12 additions and 29 deletions
17
Cargo.lock
generated
17
Cargo.lock
generated
|
@ -281,7 +281,6 @@ name = "diopser"
|
||||||
version = "0.1.0"
|
version = "0.1.0"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"nih_plug",
|
"nih_plug",
|
||||||
"packed_simd_2",
|
|
||||||
]
|
]
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
|
@ -465,12 +464,6 @@ dependencies = [
|
||||||
"winapi",
|
"winapi",
|
||||||
]
|
]
|
||||||
|
|
||||||
[[package]]
|
|
||||||
name = "libm"
|
|
||||||
version = "0.1.4"
|
|
||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
||||||
checksum = "7fc7aa29613bd6a620df431842069224d8bc9011086b1db4c0e0cd47fa03ec9a"
|
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "lock_api"
|
name = "lock_api"
|
||||||
version = "0.4.6"
|
version = "0.4.6"
|
||||||
|
@ -644,16 +637,6 @@ dependencies = [
|
||||||
"ttf-parser",
|
"ttf-parser",
|
||||||
]
|
]
|
||||||
|
|
||||||
[[package]]
|
|
||||||
name = "packed_simd_2"
|
|
||||||
version = "0.3.7"
|
|
||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
||||||
checksum = "defdcfef86dcc44ad208f71d9ff4ce28df6537a4e0d6b0e8e845cb8ca10059a6"
|
|
||||||
dependencies = [
|
|
||||||
"cfg-if",
|
|
||||||
"libm",
|
|
||||||
]
|
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "parking_lot"
|
name = "parking_lot"
|
||||||
version = "0.12.0"
|
version = "0.12.0"
|
||||||
|
|
|
@ -10,10 +10,8 @@ crate-type = ["cdylib"]
|
||||||
|
|
||||||
[features]
|
[features]
|
||||||
default = ["simd"]
|
default = ["simd"]
|
||||||
# Make it go fast, vroom
|
# Make it go fast, vroom. Requires a nightly compiler.
|
||||||
simd = ["packed_simd"]
|
simd = []
|
||||||
|
|
||||||
[dependencies]
|
[dependencies]
|
||||||
nih_plug = { path = "../../", features = ["assert_process_allocs"] }
|
nih_plug = { path = "../../", features = ["assert_process_allocs"] }
|
||||||
|
|
||||||
packed_simd = { version = "0.3.6", package = "packed_simd_2", optional = true }
|
|
||||||
|
|
|
@ -18,7 +18,7 @@ use std::f32::consts;
|
||||||
use std::ops::{Add, Mul, Sub};
|
use std::ops::{Add, Mul, Sub};
|
||||||
|
|
||||||
#[cfg(feature = "simd")]
|
#[cfg(feature = "simd")]
|
||||||
use packed_simd::f32x2;
|
use std::simd::f32x2;
|
||||||
|
|
||||||
/// A simple biquad filter with functions for generating coefficients for an all-pass filter.
|
/// A simple biquad filter with functions for generating coefficients for an all-pass filter.
|
||||||
///
|
///
|
||||||
|
|
|
@ -14,6 +14,8 @@
|
||||||
// You should have received a copy of the GNU General Public License
|
// You should have received a copy of the GNU General Public License
|
||||||
// along with this program. If not, see <https://www.gnu.org/licenses/>.
|
// along with this program. If not, see <https://www.gnu.org/licenses/>.
|
||||||
|
|
||||||
|
#![cfg_attr(feature = "simd", feature(portable_simd))]
|
||||||
|
|
||||||
#[macro_use]
|
#[macro_use]
|
||||||
extern crate nih_plug;
|
extern crate nih_plug;
|
||||||
|
|
||||||
|
@ -28,7 +30,7 @@ use std::sync::atomic::{AtomicBool, Ordering};
|
||||||
use std::sync::Arc;
|
use std::sync::Arc;
|
||||||
|
|
||||||
#[cfg(feature = "simd")]
|
#[cfg(feature = "simd")]
|
||||||
use packed_simd::f32x2;
|
use std::simd::f32x2;
|
||||||
|
|
||||||
mod filter;
|
mod filter;
|
||||||
|
|
||||||
|
@ -282,10 +284,10 @@ impl Plugin for Diopser {
|
||||||
// supports steroo audio.
|
// supports steroo audio.
|
||||||
#[cfg(feature = "simd")]
|
#[cfg(feature = "simd")]
|
||||||
{
|
{
|
||||||
let mut samples =
|
let mut samples = f32x2::from_array([
|
||||||
f32x2::new(*unsafe { channel_samples.get_unchecked_mut(0) }, *unsafe {
|
*unsafe { channel_samples.get_unchecked_mut(0) },
|
||||||
channel_samples.get_unchecked_mut(1)
|
*unsafe { channel_samples.get_unchecked_mut(1) },
|
||||||
});
|
]);
|
||||||
|
|
||||||
for filter in self
|
for filter in self
|
||||||
.filters
|
.filters
|
||||||
|
@ -295,8 +297,8 @@ impl Plugin for Diopser {
|
||||||
samples = filter.process(samples);
|
samples = filter.process(samples);
|
||||||
}
|
}
|
||||||
|
|
||||||
*unsafe { channel_samples.get_unchecked_mut(0) } = samples.extract(0);
|
*unsafe { channel_samples.get_unchecked_mut(0) } = samples.as_array()[0];
|
||||||
*unsafe { channel_samples.get_unchecked_mut(1) } = samples.extract(1);
|
*unsafe { channel_samples.get_unchecked_mut(1) } = samples.as_array()[1];
|
||||||
}
|
}
|
||||||
|
|
||||||
#[cfg(not(feature = "simd"))]
|
#[cfg(not(feature = "simd"))]
|
||||||
|
|
Loading…
Add table
Reference in a new issue