sway icon indicating copy to clipboard operation
sway copied to clipboard

sway cannot reposition displays, gives no indication of error

Open ohthehugemanatee opened this issue 2 years ago • 8 comments

Please fill out the following:

  • Sway Version: 1.7

  • Debug Log:

    • https://gist.github.com/ohthehugemanatee/e9d5eae4f7822487b54d6ff0cd0f2fe4
  • Configuration File: Also happens with default configuration.

  • Stack Trace: N/A

  • Description: Sway starts and adds a second display just fine. But adjusting the position of either display does nothing.

To reproduce:

  • connect second display (DP-5)
  • run swaymsg output DP-5 pos 0 0
  • observe no position change.
~ 
❯ swaymsg --raw output DP-5 position 0 0 
[
  {
    "success": true
  }
]

~ 
❯ echo $?
0

Trying to do the same through wdisplays says "the display server was not able to process your changes." image

Kanshi tries to apply my previously-working config, and thinks applying is fine... but fails afterwards.:

Apr 26 12:49:26 alia kanshi[29478]: applying profile 'homeoffice'
Apr 26 12:49:26 alia kanshi[29478]: applying profile output 'eDP-1' on connected head 'eDP-1'
Apr 26 12:49:26 alia kanshi[29478]: applying profile output 'Samsung Electric Company C34H89x H1AK500000' on connected head 'DP-5'
Apr 26 12:49:26 alia kanshi[29478]: failed to apply configuration for profile 'homeoffice'

Sway debug stdout and stderr output give no indication that anything is wrong.

In case it's helpful:

~ 
❯ swaymsg -t get_outputs
[
  {
    "id": 3,
    "type": "output",
    "orientation": "none",
    "percent": 0.15065913370998119,
    "urgent": false,
    "marks": [
    ],
    "layout": "output",
    "border": "none",
    "current_border_width": 0,
    "rect": {
      "x": 1080,
      "y": 1440,
      "width": 1280,
      "height": 800
    },
    "deco_rect": {
      "x": 0,
      "y": 0,
      "width": 0,
      "height": 0
    },
    "window_rect": {
      "x": 0,
      "y": 0,
      "width": 0,
      "height": 0
    },
    "geometry": {
      "x": 0,
      "y": 0,
      "width": 0,
      "height": 0
    },
    "name": "eDP-1",
    "window": null,
    "nodes": [
    ],
    "floating_nodes": [
    ],
    "focus": [
      4
    ],
    "fullscreen_mode": 0,
    "sticky": false,
    "active": true,
    "dpms": true,
    "primary": false,
    "make": "Sharp Corporation",
    "model": "0x14A8",
    "serial": "0x00000000",
    "scale": 3.0,
    "scale_filter": "nearest",
    "transform": "normal",
    "adaptive_sync_status": "disabled",
    "current_workspace": "1",
    "modes": [
      {
        "width": 3840,
        "height": 2400,
        "refresh": 59994
      },
      {
        "width": 3840,
        "height": 2400,
        "refresh": 47995
      }
    ],
    "current_mode": {
      "width": 3840,
      "height": 2400,
      "refresh": 59994
    },
    "max_render_time": 0,
    "focused": false,
    "subpixel_hinting": "unknown"
  },
  {
    "id": 5,
    "type": "output",
    "orientation": "none",
    "percent": 0.72881355932203384,
    "urgent": false,
    "marks": [
    ],
    "layout": "output",
    "border": "none",
    "current_border_width": 0,
    "rect": {
      "x": 2360,
      "y": 1440,
      "width": 3440,
      "height": 1440
    },
    "deco_rect": {
      "x": 0,
      "y": 0,
      "width": 0,
      "height": 0
    },
    "window_rect": {
      "x": 0,
      "y": 0,
      "width": 0,
      "height": 0
    },
    "geometry": {
      "x": 0,
      "y": 0,
      "width": 0,
      "height": 0
    },
    "name": "DP-5",
    "window": null,
    "nodes": [
    ],
    "floating_nodes": [
    ],
    "focus": [
      6
    ],
    "fullscreen_mode": 0,
    "sticky": false,
    "active": true,
    "dpms": true,
    "primary": false,
    "make": "Samsung Electric Company",
    "model": "C34H89x",
    "serial": "H1AK500000",
    "scale": 1.0,
    "scale_filter": "nearest",
    "transform": "normal",
    "adaptive_sync_status": "disabled",
    "current_workspace": "2",
    "modes": [
      {
        "width": 3440,
        "height": 1440,
        "refresh": 49987
      },
      {
        "width": 3440,
        "height": 1440,
        "refresh": 99982
      },
      {
        "width": 3440,
        "height": 1440,
        "refresh": 59973
      },
      {
        "width": 2560,
        "height": 1440,
        "refresh": 59951
      },
      {
        "width": 2560,
        "height": 1080,
        "refresh": 60000
      },
      {
        "width": 2560,
        "height": 1080,
        "refresh": 60000
      },
      {
        "width": 2560,
        "height": 1080,
        "refresh": 59940
      },
      {
        "width": 1920,
        "height": 1080,
        "refresh": 60000
      },
      {
        "width": 1920,
        "height": 1080,
        "refresh": 60000
      },
      {
        "width": 1920,
        "height": 1080,
        "refresh": 59940
      },
      {
        "width": 1920,
        "height": 1080,
        "refresh": 50000
      },
      {
        "width": 1680,
        "height": 1050,
        "refresh": 59883
      },
      {
        "width": 1600,
        "height": 900,
        "refresh": 60000
      },
      {
        "width": 1280,
        "height": 1024,
        "refresh": 75025
      },
      {
        "width": 1280,
        "height": 1024,
        "refresh": 60020
      },
      {
        "width": 1440,
        "height": 900,
        "refresh": 59901
      },
      {
        "width": 1280,
        "height": 800,
        "refresh": 59910
      },
      {
        "width": 1152,
        "height": 864,
        "refresh": 75000
      },
      {
        "width": 1280,
        "height": 720,
        "refresh": 60000
      },
      {
        "width": 1280,
        "height": 720,
        "refresh": 60000
      },
      {
        "width": 1280,
        "height": 720,
        "refresh": 59940
      },
      {
        "width": 1280,
        "height": 720,
        "refresh": 50000
      },
      {
        "width": 1024,
        "height": 768,
        "refresh": 75029
      },
      {
        "width": 1024,
        "height": 768,
        "refresh": 70069
      },
      {
        "width": 1024,
        "height": 768,
        "refresh": 60004
      },
      {
        "width": 832,
        "height": 624,
        "refresh": 74551
      },
      {
        "width": 800,
        "height": 600,
        "refresh": 75000
      },
      {
        "width": 800,
        "height": 600,
        "refresh": 72188
      },
      {
        "width": 800,
        "height": 600,
        "refresh": 60317
      },
      {
        "width": 800,
        "height": 600,
        "refresh": 56250
      },
      {
        "width": 720,
        "height": 576,
        "refresh": 50000
      },
      {
        "width": 720,
        "height": 480,
        "refresh": 60000
      },
      {
        "width": 720,
        "height": 480,
        "refresh": 59940
      },
      {
        "width": 640,
        "height": 480,
        "refresh": 75000
      },
      {
        "width": 640,
        "height": 480,
        "refresh": 72809
      },
      {
        "width": 640,
        "height": 480,
        "refresh": 66667
      },
      {
        "width": 640,
        "height": 480,
        "refresh": 60000
      },
      {
        "width": 640,
        "height": 480,
        "refresh": 59940
      },
      {
        "width": 720,
        "height": 400,
        "refresh": 70082
      }
    ],
    "current_mode": {
      "width": 3440,
      "height": 1440,
      "refresh": 49987
    },
    "max_render_time": 0,
    "focused": true,
    "subpixel_hinting": "unknown"
  }
]

ohthehugemanatee avatar Apr 26 '22 11:04 ohthehugemanatee

This isn't a Sway debug log.

emersion avatar Apr 26 '22 11:04 emersion

There are failures around applying output configurations with disman+wlroots backend as well.

disman_backend_launcher[1201]: disman.wayland.wlroots: Applying config failed.
ápr 26 18:32:07 adee-UX550GD sway-adee[1066]: 00:00:48.243 [ERROR] [sway/config/output.c:501] Failed to commit output DP-2
ápr 26 18:32:07 adee-UX550GD sway-adee[1066]: 00:00:48.243 [ERROR] [wlr] [backend/drm/atomic.c:37] connector DP-2: Atomic commit failed (pageflip): Device or resource busy

A second try succeeds. Is https://gitlab.freedesktop.org/wlroots/wlroots/-/merge_requests/2693 related to this problem? My current workaround is a patch for disman to exit without a coredump and systemd then restarts it.

adee avatar Apr 26 '22 17:04 adee

@emersion sorry about that, updated the debug log accordingly. I logged in from gdb, and ran:

 > swaymsg -t get_outputs 
Output eDP-1 'Sharp Corporation 0x14A8 0x00000000'
  Current mode: 3840x2400 @ 59.994 Hz
  Position: 1080,1440
  Scale factor: 3.000000
  Scale filter: nearest
  Subpixel hinting: unknown
  Transform: normal
  Workspace: 1
  Max render time: off
  Adaptive sync: disabled
  Available modes:
    3840x2400 @ 59.994 Hz
    3840x2400 @ 47.995 Hz

Output DP-5 'Samsung Electric Company C34H89x H1AK500000' (focused)
  Current mode: 3440x1440 @ 49.987 Hz
  Position: 2360,1440
  Scale factor: 1.000000
  Scale filter: nearest
  Subpixel hinting: unknown
  Transform: normal
  Workspace: 2
  Max render time: off
  Adaptive sync: disabled
  Available modes:
    3440x1440 @ 49.987 Hz
    3440x1440 @ 99.982 Hz
    3440x1440 @ 59.973 Hz
    2560x1440 @ 59.951 Hz
    2560x1080 @ 60.000 Hz
    2560x1080 @ 60.000 Hz
    2560x1080 @ 59.940 Hz
    1920x1080 @ 60.000 Hz
    1920x1080 @ 60.000 Hz
    1920x1080 @ 59.940 Hz
    1920x1080 @ 50.000 Hz
    1680x1050 @ 59.883 Hz
    1600x900 @ 60.000 Hz
    1280x1024 @ 75.025 Hz
    1280x1024 @ 60.020 Hz
    1440x900 @ 59.901 Hz
    1280x800 @ 59.910 Hz
    1152x864 @ 75.000 Hz
    1280x720 @ 60.000 Hz
    1280x720 @ 60.000 Hz
    1280x720 @ 59.940 Hz
    1280x720 @ 50.000 Hz
    1024x768 @ 75.029 Hz
    1024x768 @ 70.069 Hz
    1024x768 @ 60.004 Hz
    832x624 @ 74.551 Hz
    800x600 @ 75.000 Hz
    800x600 @ 72.188 Hz
    800x600 @ 60.317 Hz
    800x600 @ 56.250 Hz
    720x576 @ 50.000 Hz
    720x480 @ 60.000 Hz
    720x480 @ 59.940 Hz
    640x480 @ 75.000 Hz
    640x480 @ 72.809 Hz
    640x480 @ 66.667 Hz
    640x480 @ 60.000 Hz
    640x480 @ 59.940 Hz
    720x400 @ 70.082 Hz
 
> swaymsg -r output DP-5 pos 0 0
[
  {
    "success": true
  }
]

> systemctl --user restart kanshi

swaymsg and kanshi were both unable to reposition. I then tried the same with wdisplays, but of course no luck.

If it's relevant: I noticed that when my locking script turns off my eDP-1 display (with swaymsg output eDP-1 disable, I can't turn it back on again.

  • swaymsg output eDP-1 dpms on and swaymsg output eDP-1 enable do nothing.
  • I can reproduce myself: if I disable it, the output won't come back on unless I logout.
  • I can manually trigger dpms off and dpms on again with no problem.

Thank you for your help!

ohthehugemanatee avatar May 03 '22 17:05 ohthehugemanatee

Can I provide any more information?

ohthehugemanatee avatar May 16 '22 19:05 ohthehugemanatee

Does this help? https://gitlab.freedesktop.org/wlroots/wlroots/-/merge_requests/3575

emersion avatar May 27 '22 12:05 emersion

Does this help? https://gitlab.freedesktop.org/wlroots/wlroots/-/merge_requests/3575

With that patch I no longer get "Atomic commit failed (pageflip): Device or resource busy" error during hotplug.

adee avatar May 27 '22 16:05 adee

Updated to latest devel wlroots (including this patch) and I can't reproduce the issue anymore - except kanshi still fails to reposition. Closing this issue as resolved, and opening one over there. :)

ohthehugemanatee avatar Sep 01 '22 09:09 ohthehugemanatee

Dammit, gotta reopen. This worked for my first test, but not afterwards.

swaymsg output DP-6 position 0 500
# observe display successfully repositioned.
swaymsg output DP-6 position 0 0
# observe display is not repositioned.
swaymsg output DP-6 disable
# observe display is successfully disabled
swaymsg output DP-6 enable
# display is not enabled.

Need more logs, perhaps?

ohthehugemanatee avatar Sep 01 '22 09:09 ohthehugemanatee

I still have this problem. DRM log from 30 seconds with swaywm already open: https://gist.github.com/ohthehugemanatee/cd9fd600fd197b48796ac2f0f7e0a2a7 . I opened wdisplays and tried repositioning the external display.

Interesting part starts around line 64000:

[Di Dez  6 15:23:48 2022] i915 0000:00:02.0: [drm:drm_atomic_set_mode_prop_for_crtc [drm]] Set [MODE:3440x1440] for [CRTC:236:pipe C] state 000000006872a50a
[Di Dez  6 15:23:48 2022] [drm:drm_mode_object_put.part.0 [drm]] OBJ ID: 325 (4)
[Di Dez  6 15:23:48 2022] [drm:drm_mode_object_put.part.0 [drm]] OBJ ID: 325 (3)
[Di Dez  6 15:23:48 2022] [drm:drm_mode_object_get [drm]] OBJ ID: 284 (4)
[Di Dez  6 15:23:48 2022] [drm:drm_mode_object_get [drm]] OBJ ID: 284 (5)
[Di Dez  6 15:23:48 2022] i915 0000:00:02.0: [drm:drm_atomic_get_connector_state [drm]] Added [CONNECTOR:284:DP-6] 00000000bfea3800 state to 00000000799718f7
[Di Dez  6 15:23:48 2022] [drm:drm_mode_object_put.part.0 [drm]] OBJ ID: 284 (6)
[Di Dez  6 15:23:48 2022] i915 0000:00:02.0: [drm:drm_atomic_check_only [drm]] checking 00000000799718f7
[Di Dez  6 15:23:48 2022] i915 0000:00:02.0: [drm:drm_atomic_helper_check_modeset [drm_kms_helper]] [CRTC:236:pipe C] mode changed
[Di Dez  6 15:23:48 2022] i915 0000:00:02.0: [drm:update_connector_routing [drm_kms_helper]] Updating routing for [CONNECTOR:284:DP-6]
[Di Dez  6 15:23:48 2022] i915 0000:00:02.0: [drm:update_connector_routing [drm_kms_helper]] [CONNECTOR:284:DP-6] keeps [ENCODER:271:DP-MST C], now on [CRTC:236:pipe C]
[Di Dez  6 15:23:48 2022] i915 0000:00:02.0: [drm:drm_atomic_helper_check_modeset [drm_kms_helper]] [CRTC:236:pipe C] needs all connectors, enable: y, active: y
[Di Dez  6 15:23:48 2022] i915 0000:00:02.0: [drm:drm_atomic_add_affected_connectors [drm]] Adding all current connectors for [CRTC:236:pipe C] to 00000000799718f7
[Di Dez  6 15:23:48 2022] i915 0000:00:02.0: [drm:drm_atomic_add_affected_planes [drm]] Adding all current planes for [CRTC:236:pipe C] to 00000000799718f7
[Di Dez  6 15:23:48 2022] i915 0000:00:02.0: [drm:drm_atomic_add_encoder_bridges [drm]] Adding all bridges for [encoder:271:DP-MST C] to 00000000799718f7
[Di Dez  6 15:23:48 2022] i915 0000:00:02.0: [drm:drm_atomic_add_encoder_bridges [drm]] Adding all bridges for [encoder:271:DP-MST C] to 00000000799718f7
[Di Dez  6 15:23:48 2022] i915 0000:00:02.0: [drm:intel_modeset_pipe_config [i915]] [CONNECTOR:284:DP-6] Limiting display bpp to 24 instead of EDID bpp 24, requested bpp 36, max platform bpp 36
[Di Dez  6 15:23:48 2022] i915 0000:00:02.0: [drm:drm_dp_mst_get_port_malloc [drm_display_helper]] port 0000000042f3aa23 (5)
[Di Dez  6 15:23:48 2022] i915 0000:00:02.0: [drm:drm_atomic_get_private_obj_state [drm]] Added new private object 000000000c5ff17c state 00000000b362d8ac to 00000000799718f7
[Di Dez  6 15:23:48 2022] i915 0000:00:02.0: [drm:drm_dp_atomic_find_vcpi_slots [drm_display_helper]] [CONNECTOR:284:DP-6] [MST PORT:0000000042f3aa23] VCPI 39 -> 65
[Di Dez  6 15:23:48 2022] i915 0000:00:02.0: [drm:drm_dp_atomic_find_vcpi_slots [drm_display_helper]] [CONNECTOR:284:DP-6] [MST PORT:0000000042f3aa23] PBN 1144 -> 1945
[Di Dez  6 15:23:48 2022] [drm:drm_dp_mst_update_slots [drm_display_helper]] 8b/10b encoding format on mst_state 0x00000000b362d8ac
[Di Dez  6 15:23:48 2022] i915 0000:00:02.0: [drm:intel_modeset_pipe_config [i915]] hw max bpp: 24, pipe bpp: 24, dithering: 0
[Di Dez  6 15:23:48 2022] i915 0000:00:02.0: [drm:pipe_config_mismatch [i915]] [CRTC:236:pipe C] fastset mismatch in dp_m_n (expected tu 39 data 4967143/8388608 link 413928/1048576, or tu 0 data 0/0 link 0/0, found tu 65, data 8442978/8388608 link 703581/1048576)
[Di Dez  6 15:23:48 2022] i915 0000:00:02.0: [drm:pipe_config_mismatch [i915]] [CRTC:236:pipe C] fastset mismatch in hw.pipe_mode.crtc_vtotal (expected 1481, found 1510)
[Di Dez  6 15:23:48 2022] i915 0000:00:02.0: [drm:pipe_config_mismatch [i915]] [CRTC:236:pipe C] fastset mismatch in hw.pipe_mode.crtc_vblank_end (expected 1481, found 1510)
[Di Dez  6 15:23:48 2022] i915 0000:00:02.0: [drm:pipe_config_mismatch [i915]] [CRTC:236:pipe C] fastset mismatch in hw.adjusted_mode.crtc_vtotal (expected 1481, found 1510)
[Di Dez  6 15:23:48 2022] i915 0000:00:02.0: [drm:pipe_config_mismatch [i915]] [CRTC:236:pipe C] fastset mismatch in hw.adjusted_mode.crtc_vblank_end (expected 1481, found 1510)
[Di Dez  6 15:23:48 2022] i915 0000:00:02.0: [drm:pipe_config_mismatch [i915]] [CRTC:236:pipe C] fastset mismatch in hw.pipe_mode.crtc_clock (expected 319750, found 543500)
[Di Dez  6 15:23:48 2022] i915 0000:00:02.0: [drm:pipe_config_mismatch [i915]] [CRTC:236:pipe C] fastset mismatch in hw.adjusted_mode.crtc_clock (expected 319750, found 543500)
[Di Dez  6 15:23:48 2022] i915 0000:00:02.0: [drm:drm_dp_mst_atomic_check [drm_display_helper]] [MST PORT:0000000042f3aa23] requires 65 vcpi slots
[Di Dez  6 15:23:48 2022] i915 0000:00:02.0: [drm:drm_dp_mst_atomic_check [drm_display_helper]] [MST PORT:0000000042f3aa23] not enough VCPI slots in mst state 00000000b362d8ac (avail=63)
[Di Dez  6 15:23:48 2022] i915 0000:00:02.0: [drm:intel_dump_pipe_config [i915]] [CRTC:236:pipe C] enable: yes [failed]
[Di Dez  6 15:23:48 2022] i915 0000:00:02.0: [drm:intel_dump_pipe_config [i915]] active: yes, output_types: DP_MST (0x800), output format: RGB
[Di Dez  6 15:23:48 2022] i915 0000:00:02.0: [drm:intel_dump_pipe_config [i915]] cpu_transcoder: C, pipe bpp: 24, dithering: 0
[Di Dez  6 15:23:48 2022] i915 0000:00:02.0: [drm:intel_dump_pipe_config [i915]] MST master transcoder: <invalid>
[Di Dez  6 15:23:48 2022] i915 0000:00:02.0: [drm:intel_dump_pipe_config [i915]] port sync: master transcoder: <invalid>, slave transcoder bitmask = 0x0
[Di Dez  6 15:23:48 2022] i915 0000:00:02.0: [drm:intel_dump_pipe_config [i915]] bigjoiner: no, pipes: 0x0
[Di Dez  6 15:23:48 2022] i915 0000:00:02.0: [drm:intel_dump_pipe_config [i915]] splitter: disabled, link count 0, overlap 0
[Di Dez  6 15:23:48 2022] i915 0000:00:02.0: [drm:intel_dump_pipe_config [i915]] dp m_n: lanes: 2; data_m: 8442978, data_n: 8388608, link_m: 703581, link_n: 1048576, tu: 65
[Di Dez  6 15:23:48 2022] i915 0000:00:02.0: [drm:intel_dump_pipe_config [i915]] dp m2_n2: lanes: 2; data_m: 0, data_n: 0, link_m: 0, link_n: 0, tu: 0
[Di Dez  6 15:23:48 2022] i915 0000:00:02.0: [drm:intel_dump_pipe_config [i915]] framestart delay: 1, MSA timing delay: 0
[Di Dez  6 15:23:48 2022] i915 0000:00:02.0: [drm:intel_dump_pipe_config [i915]] audio: 1, infoframes: 0, infoframes enabled: 0x0
[Di Dez  6 15:23:48 2022] i915 0000:00:02.0: [drm:intel_dump_pipe_config [i915]] vrr: no, vmin: 0, vmax: 0, pipeline full: 0, guardband: 0 flipline: 0, vmin vblank: -1, vmax vblank: -2
[Di Dez  6 15:23:48 2022] i915 0000:00:02.0: [drm:intel_dump_pipe_config [i915]] requested mode: "3440x1440": 100 543500 3440 3488 3520 3600 1440 1443 1453 1510 0x48 0x9
[Di Dez  6 15:23:48 2022] i915 0000:00:02.0: [drm:intel_dump_pipe_config [i915]] adjusted mode: "3440x1440": 100 543500 3440 3488 3520 3600 1440 1443 1453 1510 0x48 0x9
[Di Dez  6 15:23:48 2022] i915 0000:00:02.0: [drm:intel_dump_crtc_timings [i915]] crtc timings: 543500 3440 3488 3520 3600 1440 1443 1453 1510, type: 0x48 flags: 0x9
[Di Dez  6 15:23:48 2022] i915 0000:00:02.0: [drm:intel_dump_pipe_config [i915]] pipe mode: "3440x1440": 100 543500 3440 3488 3520 3600 1440 1443 1453 1510 0x40 0x9
[Di Dez  6 15:23:48 2022] i915 0000:00:02.0: [drm:intel_dump_crtc_timings [i915]] crtc timings: 543500 3440 3488 3520 3600 1440 1443 1453 1510, type: 0x40 flags: 0x9
[Di Dez  6 15:23:48 2022] i915 0000:00:02.0: [drm:intel_dump_pipe_config [i915]] port clock: 810000, pipe src: 3440x1440+0+0, pixel rate 543500
[Di Dez  6 15:23:48 2022] i915 0000:00:02.0: [drm:intel_dump_pipe_config [i915]] linetime: 0, ips linetime: 0
[Di Dez  6 15:23:48 2022] i915 0000:00:02.0: [drm:intel_dump_pipe_config [i915]] num_scalers: 2, scaler_users: 0x0, scaler_id: -1
[Di Dez  6 15:23:48 2022] i915 0000:00:02.0: [drm:intel_dump_pipe_config [i915]] pch pfit: 0x0+0+0, disabled, force thru: no
[Di Dez  6 15:23:48 2022] i915 0000:00:02.0: [drm:intel_dump_pipe_config [i915]] ips: 0, double wide: 0, drrs: 0
[Di Dez  6 15:23:48 2022] i915 0000:00:02.0: [drm:icl_dump_hw_state [i915]] dpll_hw_state: cfgcr0: 0x0, cfgcr1: 0x0, div0: 0x0, mg_refclkin_ctl: 0x100, hg_clktop2_coreclkctl1: 0x500, mg_clktop2_hsclkctl: 0x100, mg_pll_div0: 0x5e000069, mg_pll_div2: 0x21012, mg_pll_lf: 0x27110804, mg_pll_frac_lock: 0x55552, mg_pll_ssc: 0x8001200, mg_pll_bias: 0x0, mg_pll_tdc_coldst_bias: 0x10000
[Di Dez  6 15:23:48 2022] i915 0000:00:02.0: [drm:intel_dump_pipe_config [i915]] csc_mode: 0x0 gamma_mode: 0x0 gamma_enable: 0 csc_enable: 0
[Di Dez  6 15:23:48 2022] i915 0000:00:02.0: [drm:intel_dump_pipe_config [i915]] degamma lut: 0 entries, gamma lut: 0 entries
[Di Dez  6 15:23:48 2022] i915 0000:00:02.0: [drm:intel_dump_plane_state [i915]] [PLANE:169:plane 1C] fb: [FB:310] 3440x1440 format = XR24 little-endian (0x34325258) modifier = 0x100000000000001, visible: yes
[Di Dez  6 15:23:48 2022] i915 0000:00:02.0: [drm:intel_dump_plane_state [i915]]        rotation: 0x1, scaler: -1
[Di Dez  6 15:23:48 2022] i915 0000:00:02.0: [drm:intel_dump_plane_state [i915]]        src: 3440.000000x1440.000000+0.000000+0.000000 dst: 3440x1440+0+0
[Di Dez  6 15:23:48 2022] i915 0000:00:02.0: [drm:intel_dump_plane_state [i915]] [PLANE:232:cursor C] fb: [NOFB], visible: no
[Di Dez  6 15:23:48 2022] i915 0000:00:02.0: [drm:drm_atomic_check_only [drm]] atomic driver check for 00000000799718f7 failed: -28
[Di Dez  6 15:23:48 2022] i915 0000:00:02.0: [drm:drm_atomic_state_default_clear [drm]] Clearing atomic state 00000000799718f7

The key error is [drm:drm_dp_mst_atomic_check [drm_display_helper]] [MST PORT:0000000042f3aa23] not enough VCPI slots in mst state 00000000b362d8ac (avail=63) . A duckduckgo search came up with kernel patches to various graphics drivers especially including intel, which adjust how we get and track available VCPI slots... so it is clearly a kernel level issue. The number of VCPI slots detected is insufficient for the desired resolution/refresh rate.

I don't know enough about the video subsystem to be sure, but to my understanding : wlroots and swaymsg -t get_outputs correctly report the available resolutions for the adapter/display, but does not filter by limitations like VCPI slots.

The workaround is to simply use the same resolution at a lower refresh rate.

I leave it to the maintainers to decide if this should be addressed, or closed as wontfix.

ohthehugemanatee avatar Dec 06 '22 17:12 ohthehugemanatee

but does not filter by limitations like VCPI slots

wlroots can't do that, only the kernel would have enough info, and even then this depends on the number of connected outputs etc.

emersion avatar Dec 07 '22 08:12 emersion

You can try WLR_DRM_NO_MODIFIERS=1 as a workaround, it sometimes help on Intel.

emersion avatar Dec 07 '22 08:12 emersion

WLR_DRM_NO_MODIFIERS=1 worked for me

ngkz avatar Jan 02 '23 12:01 ngkz