Skip to content

Fix round transition for legacy apps - #2105

Merged
jplexer merged 2 commits into
coredevices:mainfrom
jplexer:fix/round-transition-legacy-app-fb
Sep 18, 2026
Merged

jplexer merged 2 commits into
coredevices:mainfrom
jplexer:fix/round-transition-legacy-app-fb

Conversation

@jplexer

@jplexer jplexer commented Sep 18, 2026

Copy link
Copy Markdown
Member

No description provided.

jplexer and others added 2 commits September 18, 2026 11:12
The bezel and shift copies clear each row of the update rect with a
memset whose length is end_x - start_x. On round displays a rect whose
origin lies to the right of a row's max_x makes that negative, which
memset takes as a huge size_t. All callers so far happened to stay
inside the row range; guard the loops so new callers can pass arbitrary
rects safely.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Signed-off-by: Joshua Jun <lets@throw.rocks>
The round-display modal push and flip-pop transitions fill the app area
with g_compositor_transitions_app_fb_draw_implementation, whose line
fillers copy app framebuffer pixels 1:1 at display coordinates. That is
only right when the app framebuffer matches the display. A legacy 3x
watchface on gabbro/getafix renders into a 180x180 buffer, so during a
notification dismiss (or push) the face was drawn unscaled at the
top-left instead of centred in its bezel or scaled, and the rest of the
circle was left with whatever the modal had drawn.

Route those fills through compositor_scaled_app_fb_copy(), which applies
the configured bezel or scaling mode, whenever the app framebuffer size
differs from the display. Native apps keep the existing fast path with
antialiased edge blending.

Verified by compiling the compositor for qemu_gabbro and getafix@dvt2;
not yet checked on hardware.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Signed-off-by: Joshua Jun <lets@throw.rocks>
@jplexer
jplexer marked this pull request as ready for review September 18, 2026 09:23
@jplexer
jplexer requested a review from gmarull as a code owner September 18, 2026 09:23
@jplexer
jplexer merged commit 749c8cf into coredevices:main Sep 18, 2026
48 checks passed
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

Successfully merging this pull request may close these issues.

2 participants