Implement a "fast" bsinc path
commit9b64e5e0db2a778313bb873bb38f481ce40efe31
authorChris Robinson <chris.kcat@gmail.com>
Fri, 27 Sep 2019 02:24:29 +0000 (26 19:24 -0700)
committerChris Robinson <chris.kcat@gmail.com>
Fri, 27 Sep 2019 02:24:29 +0000 (26 19:24 -0700)
tree4ac057e992a8720abf57e1ce548d4bda1a750f42
parentd50ca464cd5e4f07bc399fd244578b0b34d72aef
Implement a "fast" bsinc path

This takes advantage of the fact than when increment <= 1 (when not down-
sampling), the scale factor is always 0. As a result, the scale and scale-phase
deltas never contribute to the filtered output. Removing those multiply+add
operations cuts half of the work done by the inner loop.

Sounds that do need to down-sample (when played with a high pitch, or is 48khz
on 44.1khz output, for example), still go through the normal bsinc process.
alc/alu.cpp
alc/alu.h
alc/converter.cpp
alc/mixer/defs.h
alc/mixer/mixer_c.cpp
alc/mixer/mixer_neon.cpp
alc/mixer/mixer_sse.cpp
alc/mixvoice.cpp