graphics: osd combined with deep pipeline can trigger crash|reboot
Adding this diff to the nick app crashes my badge after a few minutes:
diff --git a/python_payload/apps/nick/__init__.py b/python_payload/apps/nick/__init__.py
index 0f7bb0535..7d13af11a 100644
--- a/python_payload/apps/nick/__init__.py
+++ b/python_payload/apps/nick/__init__.py
@@ -116,6 +116,7 @@ class NickApp(Application):
self._config = Configuration.load(self._filename)
self._pronouns_serialized = " ".join(self._config.pronouns)
self._angle = 0.0
+ self._counts = 0
if not self._config.config_loaded and not self._config.config_errors:
self._config.save(self._filename)
@@ -143,11 +144,7 @@ class NickApp(Application):
ctx.move_to(0, 0)
ctx.save()
- if self._config.mode == 0:
- ctx.scale(self._scale_name, 1)
- elif self._config.mode == 1:
- ctx.rotate(self._angle)
- ctx.text(self._config.name)
+ ctx.text("%s" % self._counts)
ctx.restore()
if self._pronouns_serialized:
@@ -179,6 +176,8 @@ class NickApp(Application):
d_ang = self._angle + (ang + math.pi / 8 * math.sin(self._phase))
self._angle -= d_ang / 20
+ self._counts = (self._counts + 1) % 1024
+
self._led += delta_ms / 45
if self._led >= 40:
self._led = 0
It's not clear to me what is happening. There are no specific logs on the hardware serial line either. This is happening on current main. The stock nick app seems to be stable. @pippin is there some kind of cache in the ctx layer which is affected by the fact that I'm printing changing text?
Edited by schneider