aboutsummaryrefslogtreecommitdiffstats
path: root/Alc/mixer_sse41.c
Commit message (Collapse)AuthorAgeFilesLines
* Replace the sinc4 resampler with cubicChris Robinson2018-01-071-69/+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-7/+8
| | | | Also rename the resampler functions to remove the unnecessary '32' token.
* Handle the source offset fraction as an ALsizeiChris Robinson2017-04-081-4/+4
|
* Pre-compute the sinc4 resampler coefficient tableChris Robinson2017-04-081-4/+4
|
* Remove the sinc8 resampler optionChris Robinson2017-02-191-77/+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-9/+9
|
* Use ALsizei and ALint for sizes and offsets with resamplers and filtersChris Robinson2017-01-161-15/+15
|
* Add some more 'restrict' keywordsChris Robinson2016-10-061-6/+9
|
* Fix placement of alignas - fixes Mac OS X buildrdb2016-05-031-6/+6
|
* Implement a band-limited sinc resamplerChris Robinson2015-11-051-3/+3
| | | | | | | | 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-5/+8
|
* Fix the SSE4.1 resamplersChris Robinson2015-10-241-20/+20
| | | | | Apparently the given _mm_extract_epi32 index obeys memory order, rather than component order.
* Use the correct array indices for SSE register componentsChris Robinson2015-10-171-25/+25
| | | | | | 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/+72
|
* Slightly improve the FIR4 SSE resamplersChris Robinson2015-10-111-4/+3
|
* Implement a 6-point sinc-lanczos filterChris Robinson2015-09-291-4/+4
|
* Replace the cubic resampler with a 4-point sinc/lanczos filterChris Robinson2015-09-271-6/+6
|
* Constify some variablesChris Robinson2014-12-161-12/+12
|
* Multiply samples with the cubic coeffs before transposingChris Robinson2014-12-151-6/+7
| | | | This avoids having to transpose the cubic coefficients.
* Load samples with _mm_loadu_ps in the cubic SSE resamplersChris Robinson2014-12-151-4/+5
|
* Add SSE2 and SSE4.1 cubic resamplersChris Robinson2014-12-151-0/+66
|
* Update COPYING to the latest ↵François Cami2014-08-181-2/+2
| | | | https://www.gnu.org/licenses/old-licenses/lgpl-2.0.txt to fix the FSF' address Fix the FSF' address in the source
* Update a couple sources with the proper authorChris Robinson2014-06-061-1/+1
|
* Move InitiatePositionArrays to mixer_defs.hChris Robinson2014-06-061-23/+2
|
* Add SSE2 and SSE4.1 linear resamplersTimothy Arceri2014-06-061-0/+103
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.