optimise performance of pa_process.c buffer processors
[Trac: Originally assigned to none]
The buffer processor functions on pa_process.c do the work of moving data from callback buffers to the host. The code here has not been extensively optimised or benchmarked.
Possibly optimisations include:
- Consider cache tilings for intereave<->deinterleave.
- don't allocate temp buffers for blocking streams unless they are needed. At the moment they are needed, but perhaps for host APIs where the implementation passes a buffer to the host they could be used.
- bypass conversions alltogether when channels are known to be zero.
The buffer processor functions on pa_process.c do the work of moving data from callback buffers to the host. The code here has not been extensively optimised or benchmarked.
Possibly optimisations include:
- Consider cache tilings for intereave<->deinterleave.
- don't allocate temp buffers for blocking streams unless they are needed. At the moment they are needed, but perhaps for host APIs where the implementation passes a buffer to the host they could be used.
- bypass conversions alltogether when channels are known to be zero.
Leave a comment