aboutsummaryrefslogtreecommitdiffstats
path: root/Alc/mixer_sse3.c
Commit message (Collapse)AuthorAgeFilesLines
* Move mixer sources into a sub-directoryChris Robinson2018-03-221-0/+0
|
* Replace the sinc4 resampler with cubicChris Robinson2018-01-071-98/+0
| | | | | | | Turns out the C version of the cubic resampler is just slightly faster than even the SSE3 version of the FIR4 resampler. This is likely due to not using a 64KB random-access lookup table along with unaligned loads, both offseting the gains from SSE.
* Pass the filter entry to apply to resample_fir4Chris Robinson2017-08-181-1/+1
|
* Store the sinc4 table in the filter stateChris Robinson2017-08-161-6/+7
| | | | Also rename the resampler functions to remove the unnecessary '32' token.
* Handle the source offset fraction as an ALsizeiChris Robinson2017-04-081-2/+2
|
* Pre-compute the sinc4 resampler coefficient tableChris Robinson2017-04-081-4/+4
|
* Remove the sinc8 resampler optionChris Robinson2017-02-191-71/+4
| | | | | Perf shows less than 1 percent CPU difference from the higher quality bsinc resampler, but uses almost twice as much memory (a 128KB lookup table).
* Put BsincState in a generic unionChris Robinson2017-02-131-6/+6
|
* Use ALsizei and ALint for sizes and offsets with resamplers and filtersChris Robinson2017-01-161-10/+10
|
* Add some more 'restrict' keywordsChris Robinson2016-10-061-4/+6
|
* Fix placement of alignas - fixes Mac OS X buildrdb2016-05-031-4/+4
|
* Implement a band-limited sinc resamplerChris Robinson2015-11-051-2/+2
| | | | | | | | This is essentially a 12-point sinc resampler, unless it's resampling to a rate higher than the output, at which point it will vary between 12 and 24 points and do anti-aliasing to avoid/reduce frequencies going over nyquist. Code provided by Christopher Fitzgerald.
* Use the correct position in the SSE resamplers for left-over processingChris Robinson2015-10-251-4/+7
|
* Use the correct array indices for SSE register componentsChris Robinson2015-10-171-4/+4
| | | | | | SSE uses reverse ordering, such that component 0 is the last in memory. _mm_load_* and _mm_loadu_*, and the corresponding stores, do not change the memory ordering.
* Replace the sinc6 resampler with sinc8, and make SSE versionsChris Robinson2015-10-111-0/+66
|
* Move the FIR4 from SSE2 to SSE3Chris Robinson2015-10-111-0/+93
SSE3 can avoid the slow _MM_TRANSPOSE_PS4 call thanks to the inclusion of horizontal adds.