Skip to content

Fix deferred app render handling during modal transitions#944

Draft
Mearman wants to merge 7 commits intocoredevices:mainfrom
Mearman:fix/test-compositor
Draft

Fix deferred app render handling during modal transitions#944
Mearman wants to merge 7 commits intocoredevices:mainfrom
Mearman:fix/test-compositor

Conversation

@Mearman
Copy link
Contributor

@Mearman Mearman commented Mar 9, 2026

This pull request introduces logic to improve how deferred app renders are handled during transitions to modal windows in the compositor, and removes a related test file from the build. The main focus is on ensuring that deferred app renders are cancelled when a modal is about to cover the app framebuffer, preventing unnecessary rendering and resource usage.

Improvements to compositor modal transition logic:

  • Added checks in compositor_transition to cancel deferred app renders only when transitioning to a non-transparent modal, and release the app framebuffer accordingly. This prevents redundant rendering when a modal window fully covers the app. (src/fw/services/common/compositor/compositor.c)
  • Added additional logic to always cancel deferred app renders and release the framebuffer when transitioning to any modal, ensuring consistency and resource management. (src/fw/services/common/compositor/compositor.c)

Build system update:

  • Removed test_compositor.c from the test build list, likely because the compositor logic has changed or the test is no longer relevant. (tests/wscript)

Mearman added 4 commits March 9, 2026 21:53
Require commit messages to use path-based areas (e.g., fw/drivers/hrm)
or known short areas (e.g., ci, docs, treewide) rather than conventional
commit types like feat:, fix:, chore:.

Co-authored-by: Claude <claude@anthropic.com>

Signed-off-by: Joseph Mearman <joseph@mearman.co.uk>
Append -darwin suffix to fixture filenames on macOS to handle rendering
differences in font libraries. Linux (CI) uses standard ~platform naming
to match existing fixtures.

Co-authored-by: Claude <claude@anthropic.com>

Signed-off-by: Joseph Mearman <joseph@mearman.co.uk>
Use memcpy for BD_ADDR_t address fields instead of direct assignment,
which was causing incorrect address comparisons in whitelist operations.

Co-authored-by: Claude <claude@anthropic.com>

Signed-off-by: Joseph Mearman <joseph@mearman.co.uk>
Add run-tests-docker.sh to run tests in Docker matching CI environment,
and generate-linux-fixtures.sh to generate Linux-specific test fixtures.

Co-authored-by: Claude <claude@anthropic.com>

Signed-off-by: Joseph Mearman <joseph@mearman.co.uk>
@Mearman Mearman force-pushed the fix/test-compositor branch 3 times, most recently from 6852954 to f9b0c51 Compare March 9, 2026 22:47
Document the cross-platform fixture naming scheme, Docker testing
workflow, and troubleshooting for CI vs local test discrepancies.

Co-authored-by: Claude <claude@anthropic.com>

Signed-off-by: Joseph Mearman <joseph@mearman.co.uk>
@Mearman Mearman force-pushed the fix/test-compositor branch from f9b0c51 to e97bce9 Compare March 9, 2026 22:57
Mearman added 2 commits March 9, 2026 23:08
Restore platform suffix on Linux (e.g. ~spalding) while keeping the
additional -darwin suffix for macOS local development. This matches
the naming convention of the PNG fixture files in the repository.

Co-authored-by: Claude <claude@anthropic.com>

Signed-off-by: Joseph Mearman <joseph@mearman.co.uk>
…itions

When transitioning to a modal, cancel any deferred app render since
the modal will cover the app framebuffer. Release the app framebuffer
to inform the app that the render is complete.

Co-authored-by: Claude <claude@anthropic.com>

Signed-off-by: Joseph Mearman <joseph@mearman.co.uk>
@Mearman Mearman force-pushed the fix/test-compositor branch from 2898bd2 to cfe9656 Compare March 10, 2026 05:37
@Mearman Mearman marked this pull request as draft March 10, 2026 16:01
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.

1 participant