From 90da3b27d939b3b7af1cf7fed10dfaaa7e271622 Mon Sep 17 00:00:00 2001 From: Andrew Opalach Date: Thu, 30 Oct 2025 14:40:08 -0400 Subject: Fixes from testing sink change, document things Signed-off-by: Andrew Opalach --- src/screen/screen.c | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) (limited to 'src/screen') diff --git a/src/screen/screen.c b/src/screen/screen.c index 7bd5d25..844076e 100644 --- a/src/screen/screen.c +++ b/src/screen/screen.c @@ -1,4 +1,5 @@ #define AL_LOG_SECTION "screen" +//#define AL_LOG_ENABLE_TRACE #include #include #include @@ -703,7 +704,9 @@ void camu_screen_clear(struct camu_screen *scr) void camu_screen_set_state(struct camu_screen *scr, s32 state) { - // @TODO: What to do if a buffer is queued for removal and we pause here. + // If state = PAUSED, remove_buffer() relies on screen_wake(). + // Unlike mixer_pause() there are no special considerations needed for + // the buffer queue at the point we set state to PAUSED. al_atomic_store(s32)(&scr->state, state, AL_ATOMIC_RELEASE); if (state == CAMU_SCREEN_PAUSED) { al_atomic_add(u32)(&scr->force_refresh, 1, AL_ATOMIC_RELAXED); @@ -747,6 +750,7 @@ bool camu_screen_tick(struct camu_screen *scr, bool *force) force_refresh = al_atomic_load(u32)(&scr->force_refresh, AL_ATOMIC_ACQUIRE); do_render |= force_refresh > 0; *force = force_refresh > 0; + log_trace("tick (do_render: %s, force_refresh: %u).", BOOLSTR(do_render), force_refresh); if (force_refresh > 0) { al_atomic_sub(u32)(&scr->force_refresh, 1, AL_ATOMIC_RELEASE); } -- cgit v1.2.3-101-g0448