Skip to content

fix(wayland): use the current wl_output mode#5150

Open
zacharydenton wants to merge 1 commit into
LizardByte:masterfrom
zacharydenton:fix/wayland-current-mode-reinit
Open

fix(wayland): use the current wl_output mode#5150
zacharydenton wants to merge 1 commit into
LizardByte:masterfrom
zacharydenton:fix/wayland-current-mode-reinit

Conversation

@zacharydenton
Copy link
Copy Markdown

@zacharydenton zacharydenton commented May 18, 2026

Description

wl_output.mode is emitted for every advertised mode, not just the active one.

The current code overwrites viewport.width and viewport.height on every mode event, which can leave Sunshine latched to a supported mode instead of the current mode.

When that happens, wlgrab sees every captured frame as a size mismatch and reinitializes endlessly.

This tracks the compositor's current mode explicitly and only falls back to the first advertised mode until a current one is seen.

Screenshot

Issues Fixed or Closed

Roadmap Issues

Type of Change

  • fix: Bug fix (non-breaking change which fixes an issue)
  • feat: New feature (non-breaking change which adds functionality)
  • docs: Documentation only changes
  • style: Changes that do not affect the meaning of the code (white-space, formatting, missing semicolons, etc.)
  • refactor: Code change that neither fixes a bug nor adds a feature
  • perf: Code change that improves performance
  • test: Adding missing tests or correcting existing tests
  • build: Changes that affect the build system or external dependencies
  • ci: Changes to CI configuration files and scripts
  • chore: Other changes that don't modify src or test files
  • revert: Reverts a previous commit
  • BREAKING CHANGE: Introduces a breaking change (can be combined with any type above)

Checklist

  • Code follows the style guidelines of this project
  • Code has been self-reviewed
  • Code has been commented, particularly in hard-to-understand areas
  • Code docstring/documentation-blocks for new or existing methods/components have been added or updated
  • Unit tests have been added or updated for any new or modified functionality

AI Usage

  • None: No AI tools were used in creating this PR
  • Light: AI provided minor assistance (formatting, simple suggestions)
  • Moderate: AI helped with code generation or debugging specific parts
  • Heavy: AI generated most or all of the code changes

wl_output.mode is emitted for every advertised mode, not just the active one. The current code overwrites viewport.width and viewport.height on every mode event, which can leave Sunshine latched to a supported mode instead of the current mode.

When that happens, wlgrab sees every captured frame as a size mismatch and reinitializes endlessly.

Track the compositor's current mode explicitly and only fall back to the first advertised mode until a current one is seen.

Signed-off-by: Zach Denton <z@chdenton.com>
@sonarqubecloud
Copy link
Copy Markdown

@ReenigneArcher
Copy link
Copy Markdown
Member

Thank you for the PR submission, but I noticed you didn't use our PR template.

Please update the PR to use the correct template. You can find it at https://github.com/LizardByte/.github/blob/master/.github/pull_request_template.md?plain=1

@zacharydenton zacharydenton changed the title platform/linux/wayland: use the current wl_output mode fix(wayland): use the current wl_output mode May 19, 2026
@zacharydenton
Copy link
Copy Markdown
Author

@ReenigneArcher Done.

@ReenigneArcher ReenigneArcher added the ai PR has signs of heavy ai usage (either indicated by user or assumed) label May 19, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

ai PR has signs of heavy ai usage (either indicated by user or assumed)

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants