rustdesk / rustdesk/rustdesk-server

Secondary monitors gray on mobile client when using 2K resolution

Open
#650 0 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

bug
Dominant language
Rust
Stars
10.4k
Forks
2.6k
PR merge metrics
No merged PRs in 30d

Description

Bug Description

RustDesk mobile client shows gray screen for secondary monitors when the remote resolution is set to 2K. The same monitors render normally when the mobile client resolution is set to 1920x1080.

This only happens on the mobile client. A desktop RustDesk client can view all monitors normally.

Environment

Controlled host:

  • OS: Ubuntu Linux
  • Session type: X11
  • RustDesk host version: 1.2.0
  • Monitors: 3

Monitor layout from xrandr --listmonitors:

Monitors: 3
  0: +*DP-2 2560/597x1440/336+1920+0  DP-2
  1: +DP-4 1920/518x1200/324+4480+0  DP-4
  2: +DP-6 1920/518x1200/324+0+0  DP-6

Remote clients:

- Desktop client: works normally
- Mobile client: iOS/Android affected

## Steps to Reproduce

1. Connect from RustDesk mobile client to the Ubuntu host.
2. Set the mobile client remote resolution to 2K.
3. View the primary monitor.
4. Switch to the second or third monitor.
5. Observe that the second/third monitor is gray.
6. Change the mobile client resolution to 1920x1080.
7. Switch to the second or third monitor again.

## Actual Behavior

When mobile resolution is set to 2K:

- Primary monitor displays normally.
- Second and third monitors are gray screens.

When mobile resolution is set to 1920x1080:

- All monitors display normally.

## Expected Behavior

All monitors should display normally on the mobile client when resolution is set to 2K, the same as they do at 1920x1080 and on desktop clients.

## Additional Observations

A desktop RustDesk client connected to the same host displays all monitors normally.

When switching monitors from the mobile client, the desktop client also switches to the selected monitor and shows the correct image. This suggests the host is detecting and capturing the secondary monitors correctly, and the issue is likely in the mobile client
rendering/decoding path for secondary displays at 2K resolution.

Updating the self-hosted RustDesk server did not change the behavior.

Host RustDesk config has hardware codec disabled:

enable-hwcodec = 'N'

Recent logs did not show a clear monitor capture failure. The relevant recurring messages were mostly connection-manager/Flutter/GTK cleanup messages, for example:

gtk_window_get_position: assertion 'GTK_IS_WINDOW (window)' failed
gtk_window_resize: assertion 'GTK_IS_WINDOW (window)' failed
void fl_view_set_textures(FlView *, GdkGLContext *, GPtrArray *): assertion 'FL_IS_VIEW(self)' failed

## Workaround

Set the mobile client resolution to 1920x1080 instead of 2K.

Contributor guide

No contributing guide indexed for this repository

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

No source file or test is named. Reproduce the issue on the mobile client with the documented Ubuntu/X11 multi-monitor layout, then trace the mobile monitor-switching and rendering/decoding path at 2K versus 1920x1080. Done means all secondary monitors render normally at 2K on iOS and Android without regressing desktop behavior.

Written by the indexing model from the issue text.

Assessment

Tech stack
android, flutter, ios
Domain
mobile-dev
Issue type
Bug
Difficulty
4/5
Estimated time
3-5 days
Activity status
Quiet
Clarity
Mostly clear
Newbie friendliness
48/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.