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

Rotations reset on unmatched frames when the source DMD frame change #44

Closed
Kraken74 opened this issue Feb 12, 2024 · 8 comments
Closed

Comments

@Kraken74
Copy link

Kraken74 commented Feb 12, 2024

Color rotations should only reset when the colorization frame matches a source DMD frame, but right now the rotations reset every time the source DMD frame changes even though the project file is unmatched.

https://imgur.com/a/YXRH13W

@Kraken74
Copy link
Author

Kraken74 commented Feb 12, 2024

Here is a sample crz for AFM to troubleshoot the color rotations. The colors should rotate non-stop as only the very first frame is matched.
https://mega.nz/folder/Qz4BnRhA#cCKY7tkmTJzXWrwxNT1yCQ

@mkalkbrenner
Copy link
Collaborator

This issue is caused by the way libserum is used in DMDext and devices (including the virtual DMD) that can't perform color rotations on their own.
If you use libserum with libdmdutil in VPX Standalone and attach a ZeDMD, the rotations won't reset. The reason is that ZeDMD is able to perform the rotations on its own until it gets a new frame. And in this setup it doesn't get a new frame.
But attached to DMDEXT, ZeDMD has the same issue as the native rotation feature is not used in this setup.

@zesinger I don't know yet, if the fix has to be done in libserum or it DMDEXT integration where the "fake" frames for rotations are created.

@zesinger
Copy link
Owner

zesinger commented Feb 18, 2024

@mkalkbrenner You mean that we should use the libserum rotation function within DMDext to avoid any reset?

@mkalkbrenner
Copy link
Collaborator

First, we need to investigate, where the reset happens.
But I also noticed the issue since ZeDMD uses the same logic as the others in DMDEXT now instead of it's own rotations.

@zesinger
Copy link
Owner

I didn't know that the color rotations were not made by the ESP32 anymore.

@mkalkbrenner
Copy link
Collaborator

I didn't know that the color rotations were not made by the ESP32 anymore.

Just in combination with DMDEXT. It is caused by the DMDext architecture. You can only declare compatibility to features for the entire device and not per mode. So if you implement IRotation for full compatibility, you can't use the native mode.
And libserum has the issue that you can't use two instances for the same ROM at the same time, one with the rotations as used by DMDEXT or alphaDMD and one to leverage the ZeDMD native mode.
That's why we designed libdmdutil differently.

@mkalkbrenner
Copy link
Collaborator

So I suggest that we carefully review the issue and then take a decision how to solve it in a smart way. @jsm174 also has some thoughts about it.

@zesinger
Copy link
Owner

should be fixed

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants