aboutsummaryrefslogtreecommitdiffstats
path: root/Alc/ALu.c
diff options
context:
space:
mode:
authorTimothy Arceri <[email protected]>2014-06-04 02:57:13 -0700
committerChris Robinson <[email protected]>2014-06-06 07:15:00 -0700
commitfc0be88c0f8d3d8887edd2afac915840f4e3f5e4 (patch)
treedbe626f58eff02c0b34ddaa7ec09fa3de4c10f35 /Alc/ALu.c
parent3b2fcb3ef6f00d026f06ca154060b29ded3eb3fc (diff)
Add SSE2 and SSE4.1 linear resamplers
Currently the only way SSE 4.1 is detected is by using __get_cpuid, i.e. with GCC. Windows' IsProcessorFeaturePresent does not report SSE4.1 capabilities.
Diffstat (limited to 'Alc/ALu.c')
-rw-r--r--Alc/ALu.c8
1 files changed, 8 insertions, 0 deletions
diff --git a/Alc/ALu.c b/Alc/ALu.c
index e661af1d..488a7273 100644
--- a/Alc/ALu.c
+++ b/Alc/ALu.c
@@ -91,6 +91,14 @@ static ResamplerFunc SelectResampler(enum Resampler Resampler, ALuint increment)
case PointResampler:
return Resample_point32_C;
case LinearResampler:
+#ifdef HAVE_SSE4_1
+ if((CPUCapFlags&CPU_CAP_SSE4_1))
+ return Resample_lerp32_SSE41;
+#endif
+#ifdef HAVE_SSE2
+ if((CPUCapFlags&CPU_CAP_SSE2))
+ return Resample_lerp32_SSE2;
+#endif
return Resample_lerp32_C;
case CubicResampler:
return Resample_cubic32_C;