Need a model for user selectable buffering techinques #612
Labels
enhancement
future consideration
This issue is tracking a feature for consideration in any future major work.
Is your feature request related to a problem? Please describe.
I just ran into an interesting issue with the i2sParrallel mode. The current "work in progress" branch has a single back buffer that is used by i2s hardware to send in its needed muxed format. Each channel has their own fore buffer in their feature format. The issue at hand is to Show(), the last send must have been completed by hardware as the fore buffer is going to be "translated" into the single shared back buffer. This process is slow due to how the bits are transcribed. Further, it can only happen when the buffer is not sending, so no gained async speed.
Describe the solution you'd like
A solution is that a secondary buffer that matches the shared back buffer is allocated and used during the show() calls by each channel. So, no waiting for the send to complete so the time-consuming transcription can happen async to sending. Then the faster process of copying the data can wait until the last send is complete.
Now the user may not have enough memory for this, so they may want to choose low memory slower or higher memory faster. Having a model to expose this to the user that allows them to select the tradeoff they need is the goal.
Additional context
This model should continue to follow the template design parameters of this library to keep branching down, code size down, memory use down.
The text was updated successfully, but these errors were encountered: