display: Support arbitrary resolutions #311
Closed
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
This PR adds support for custom resolutions by changing the replacing the existing
resolution_t
enum type with a struct type of the same name that includes width, height and interlacing as its values, which is then sent as an argument todisplay_init
like before. The new implementation includes some asserts to protect against invalid settings that do not work on real hardware.There is still one bug left to resolve. When changing resolutions frequently, it seems that some resolutions will break the VI output in real hardware and leave it in a corrupt state that remains even after soft reset. This can be reproduced that applying this patch to the
test
example that I made for testing the feature and then press D-pad right, then D-pad down (which should correspond to 322x241).