aboutsummaryrefslogtreecommitdiffstats
path: root/Alc/bsinc_inc.c
Commit message (Collapse)AuthorAgeFilesLines
* Make the bsinc table layout more efficientChris Robinson2017-08-161-982/+1283
| | | | | | | | | | | | | | | | The old layout separated filters, scale deltas, phase deltas, and scale phase deltas into separate segments that each contained a numbers of scale and phase entries, Since processing a sample needed a filter and one of each delta entry relating to a particular scale and phase, the memory needed would be spread across the whole table. And since subsequent samples would use a different phase, it would jump around the table a whole lot as well. The new layout packs the data in a way more consistent with its use. The filters, scale deltas, phase deltas, and scale phase deltas are interleaved, such that for a particular scale and phase, the filter and delta entries used are contiguous. And the phase entries for a particular scale are kept together, so the ~500 to ~1000 samples processed per source update stay within the same 3KB to 6KB area of the 70+KB table, which is much more cache friendly.
* Keep bsinc info together in a structChris Robinson2017-08-151-0/+5101