aboutsummaryrefslogtreecommitdiffstats
path: root/alc/mixer/mixer_sse.cpp
Commit message (Collapse)AuthorAgeFilesLines
* Use a matching type given the initializerChris Robinson2020-05-021-3/+3
|
* Improve the leftover and realignment mixing loopsChris Robinson2020-05-021-4/+4
| | | | | | | | Using a mask helps the compiler recognize that the leftover (any remaining non- multiple-of-4) and realignment loops will only have 3 iterations at most, which it can unroll or otherwise make more meaningful optimizations for. Previously it would try to vectorize and partially unroll the loops, which is wasteful when there would never be enough to vectorize.
* Avoid iterators for the main mixerChris Robinson2020-05-011-25/+22
|
* Don't truncate odd IR sizes with SSEChris Robinson2020-04-301-1/+1
|
* Use a more efficient type for holding the IrSizeChris Robinson2020-04-301-3/+3
|
* Get rid of the specialized MixRow_ methodsChris Robinson2020-04-161-31/+0
|
* Use structs for the mixer and resampler tagsChris Robinson2020-04-031-0/+4
|
* Avoid using ALfloat in the mixer functionsChris Robinson2020-04-031-11/+11
|
* Another small cleanupChris Robinson2020-04-031-2/+2
|
* Jump to the target gain if the fade amount is smallChris Robinson2020-04-031-2/+4
|
* Avoid unnecessary duplication in the resamplersChris Robinson2020-04-031-18/+14
|
* Generate the bsinc tables using constexpr methodsChris Robinson2020-04-021-0/+1
| | | | | | | | All the methods used should be compliant with C++14 constexpr rules. However, the number of scales and phases cause GenerateBSincCoeffs to reach the allowed step limit, preventing full compile-time generation. It's not a terribly big deal, it'll generate them very quickly when loading, but it does prevent using shared read-only memory pages.
* Simplify post-mix HRTF gain storageChris Robinson2020-01-051-2/+2
|
* Use size_t for array indicesChris Robinson2019-12-111-6/+7
|
* Don't force the HRIR length to a rounded valueChris Robinson2019-12-111-1/+1
| | | | | The coefficient and accumulation buffers are guaranteed large enough for the full size, and the SIMD handlers will behave the same either way.
* Avoid holding HRTF accumulation samples per-sourceChris Robinson2019-11-031-10/+5
| | | | | | It notably simplifies things to mix HRTF sources into an accumulation buffer together, which the Dry buffer's Ambisonic-to-HRTF decode is then added to, before being mixed to the Real output.
* Remove the Offset parameter from ApplyCoeffsChris Robinson2019-10-021-43/+50
|
* Clean up some ALfloat -> floatChris Robinson2019-10-021-11/+9
|
* Repack the bsinc resamplers coefficientsChris Robinson2019-09-291-4/+4
| | | | | | This puts the base coefficients and the phase deltas next to each other. This improves caching, as the base and phase deltas are always used together while the scales are only used for the non-fast versions.
* Implement a "fast" bsinc pathChris Robinson2019-09-261-0/+47
| | | | | | | | | | 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.
* Make the bsinc l and m coefficients unsignedChris Robinson2019-09-171-4/+2
|
* Clean up some more shadowing warningsChris Robinson2019-09-161-5/+7
|
* Fix some more implicit conversions noted by GCCChris Robinson2019-09-141-3/+4
|
* Pass IrSize to the HRTF mixers as unsignedChris Robinson2019-09-131-5/+5
|
* Make the resampler increment unsignedChris Robinson2019-09-131-3/+2
|
* Only ASSUME values where a variable is usedChris Robinson2019-09-041-1/+1
|
* Store the voice fraction offset as unsignedChris Robinson2019-08-311-5/+4
|
* Avoid reading from pointers to __m128 valuesChris Robinson2019-08-211-16/+13
|
* Use size_t for the mixers' fade counter and outposChris Robinson2019-08-201-4/+4
|
* Use size_t for HrtfMixer functions' buffer sizeChris Robinson2019-08-201-4/+4
|
* Pass a span to the Resample functionChris Robinson2019-08-201-5/+4
|
* Pass a span for the Mix function's inputChris Robinson2019-08-201-27/+24
|
* Rename the Mix function input for clarityChris Robinson2019-08-201-7/+7
|
* Pass the MixRow buffer size as a spanChris Robinson2019-08-201-15/+12
|
* Allow using a variable channel stride for MixRowSamplesChris Robinson2019-08-191-5/+6
|
* Don't require MixRow's output to be a FloatBufferLineChris Robinson2019-08-181-1/+1
|
* Modify LIKELY and UNLIKELY to not need extra parenthesisChris Robinson2019-08-041-3/+3
|
* Don't templatize HrirArrayChris Robinson2019-07-311-1/+1
|
* Rename al/* sources to avoid camel-caseChris Robinson2019-07-291-2/+0
|
* Rename Alc to alcChris Robinson2019-07-281-0/+262