Skip to content

Secondary monitors gray on mobile client when using 2K resolution #650

@jasonqwerty100987

Description

@jasonqwerty100987

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.

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugSomething isn't working

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions