Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Need a model for user selectable buffering techinques #612

Open
Makuna opened this issue Jan 12, 2023 · 1 comment
Open

Need a model for user selectable buffering techinques #612

Makuna opened this issue Jan 12, 2023 · 1 comment
Assignees
Labels
enhancement future consideration This issue is tracking a feature for consideration in any future major work.

Comments

@Makuna
Copy link
Owner

Makuna commented Jan 12, 2023

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.

@Makuna Makuna self-assigned this Jan 12, 2023
@Makuna Makuna added enhancement future consideration This issue is tracking a feature for consideration in any future major work. labels Jan 12, 2023
@Makuna
Copy link
Owner Author

Makuna commented Jun 27, 2023

More details to consider from here

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement future consideration This issue is tracking a feature for consideration in any future major work.
Projects
None yet
Development

No branches or pull requests

1 participant