Skip to content
Snippets Groups Projects

WIP: Merge master with input support

Closed Dorota Czaplejewicz requested to merge dorota.czaplejewicz/wlroots:librem5-input into librem5

This branch will bring input-method and text-input support to the Librem5.

This will unblock virtboard!21 (closed) and help virtboard#3 (closed) .

Testing plan:

nitrogen board (with phosh at factor 2 scaling)

  • rotation
  • auto maximization
  • automatic virtboard popup when switching focus around
  • virtboard typing with preedit

amd64 (with phosh at scale == 1 and two outputs (LVDS and HDM1))

  • rotation
  • moving of surfaces between outputs
  • auto maximazation
  • xdg app switching
  • brighness control
  • nightlight
  • restarting phosh several times
  • running phosh against the unpatched wlroots
  • check rootston's power consumption using powertop (~15mW, peaks at ~70mW)
  • automatic virtboard popup when switching focus around
  • virtboard typing with preedit

(note that touch input won't work out of the box due to https://github.com/swaywm/wlroots/issues/940

rootston-on-X at scale factor 2

  • auto maximization
  • phosh app switching
  • automatic virtboard popup when switching focus around
  • virtboard typing with preedit

qemu (at scale == 2)

  • rotation
  • librem5 like geometry
  • phosh app switching
  • automatic virtboard popup when switching focus around
  • virtboard typing with preedit
Edited by Dorota Czaplejewicz

Merge request reports

Loading
Loading

Activity

Filter activity
  • Approvals
  • Assignees & reviewers
  • Comments (from bots)
  • Comments (from users)
  • Commits & branches
  • Edits
  • Labels
  • Lock status
  • Mentions
  • Merge request status
  • Tracking
  • Dorota Czaplejewicz changed the description

    changed the description

  • mentioned in merge request virtboard!21 (closed)

  • Dorota Czaplejewicz changed the description

    changed the description

  • Dorota Czaplejewicz marked the checklist item librem5 like geometry as completed

    marked the checklist item librem5 like geometry as completed

  • I had this crash with (unpached) wlroots master right after unlocking the screen. Doesn't tell much by itself

                   Stack trace of thread 2283:
                    #0  0x00005564a9160070 n/a (n/a)
                    #1  0x00007f15d2b7556b surface_handle_resource_destroy (libwlroots.so.0)
                    #2  0x00007f15d2aae1be n/a (libwayland-server.so.0)
                    #3  0x00007f15d2ab2442 n/a (libwayland-server.so.0)
                    #4  0x00007f15d2ab292f n/a (libwayland-server.so.0)
                    #5  0x00007f15d2aae31d wl_client_destroy (libwayland-server.so.0)
                    #6  0x00007f15d2aae3f5 n/a (libwayland-server.so.0)
                    #7  0x00007f15d2aafb72 wl_event_loop_dispatch (libwayland-server.so.0)
                    #8  0x00007f15d2aae79a wl_display_run (libwayland-server.so.0)
                    #9  0x00005564a86ce652 main (rootston)
                    #10 0x00007f15d2446b17 __libc_start_main (libc.so.6)
                    #11 0x00005564a86c42ba _start (rootston)
                    
                    Stack trace of thread 2284:
                    #0  0x00007f15d1b31e6c futex_wait_cancelable (libpthread.so.0)
                    #1  0x00007f15cf6b7d8b util_queue_thread_func (i965_dri.so)
                    #2  0x00007f15cf6b7ab7 impl_thrd_routine (i965_dri.so)
                    #3  0x00007f15d1b2bf2a start_thread (libpthread.so.0)
                    #4  0x00007f15d251bedf __clone (libc.so.6)
  • Also gnome-terminal doesn't seem to render any surfaces while it works with our Librem5 branch (didn't look closer yet).

  • Thanks. A similar gnome-terminal issue was found by some wlroots people. I'll see about both issues, but I got caught up in phosh etc right now.

  • added 12 commits

    • 7ca3bc1d - Fix libdrm includes
    • 814fc136 - Merge pull request #1312 from ascent12/drm_include
    • 72973487 - render: fix meson including libdrm
    • 8beeb883 - Merge pull request #1313 from colemickens/libdrm
    • fa587b8e - Increase _POSIX_C_SOURCE to 200112L
    • 1d7cc1b3 - Add epoll-shim dependency on FreeBSD
    • affc83ff - Merge pull request #1317 from sghctoma/freebsd-fixes
    • 175ccc25 - rootston: Don't let the wlr_output handle the fullscreen view in case of layer-shell overlays
    • 14c6ee89 - text-input: Don't reject enable requests when unfocused
    • 5893b197 - Merge pull request #1316 from agx/fullscreen-vs-layershell
    • 67a2040c - Merge pull request #1318 from dcz-purism/text_input_error
    • ea2825ea - Merge branch 'sway/master' into librem5

    Compare with previous version

    Toggle commit list
  • Dorota Czaplejewicz marked the checklist item auto maximization as incomplete

    marked the checklist item auto maximization as incomplete

  • Dorota Czaplejewicz marked the checklist item librem5 like geometry as incomplete

    marked the checklist item librem5 like geometry as incomplete

  • I'm running master as of 67a2040c now and while gnome-terminal works again I had this crash triggered by a crashing chatty:

                    Stack trace of thread 2476:
                    #0  0x00005567bc2a03e2 handle_text_input_commit (rootston)
                    #1  0x00007f5f1341637e wlr_signal_emit_safe (libwlroots.so.0)
                    #2  0x00007f5f133f6d0e destroy_xdg_surface (libwlroots.so.0)
                    #3  0x00007f5f133f57e3 xdg_client_handle_resource_destroy (libwlroots.so.0)
                    #4  0x00007f5f133471be n/a (libwayland-server.so.0)
                    #5  0x00007f5f1334b442 n/a (libwayland-server.so.0)
                    #6  0x00007f5f1334b92f n/a (libwayland-server.so.0)
                    #7  0x00007f5f1334731d wl_client_destroy (libwayland-server.so.0)
                    #8  0x00007f5f133473f5 n/a (libwayland-server.so.0)
                    #9  0x00007f5f13348b72 wl_event_loop_dispatch (libwayland-server.so.0)
                    #10 0x00007f5f1334779a wl_display_run (libwayland-server.so.0)
                    #11 0x00005567bc299652 main (rootston)
                    #12 0x00007f5f12cdfb17 __libc_start_main (libc.so.6)
                    #13 0x00005567bc28f2ba _start (rootston)
                    
                    Stack trace of thread 2477:
                    #0  0x00007f5f123cae6c futex_wait_cancelable (libpthread.so.0)
                    #1  0x00007f5f0ff50d8b util_queue_thread_func (i965_dri.so)
                    #2  0x00007f5f0ff50ab7 impl_thrd_routine (i965_dri.so)
                    #3  0x00007f5f123c4f2a start_thread (libpthread.so.0)
                    #4  0x00007f5f12db4edf __clone (libc.so.6)
    (gdb) bt f
    #0  0x00005567bc2a03e2 in handle_text_input_commit (listener=0x5567bdad9f98, data=0x5567bdd401f0) at ../rootston/text_input.c:138
            relay = 0x5567bdad9f48
            text_input = 0x0
    #1  0x00007f5f1341637e in wlr_signal_emit_safe (signal=0x5567bdd402b8, data=0x5567bdd401f0) at ../util/signal.c:29
            pos = 0x5567bdad9f98
            l = 0x5567bdad9f98
            cursor = {link = {prev = 0x5567bdad9f98, next = 0x5567bdd3f8c0}, notify = 0x7f5f134162d7 <handle_noop>}
            end = {link = {prev = 0x5567bdd1f9a8, next = 0x5567bdd402b8}, notify = 0x7f5f134162d7 <handle_noop>}
    #2  0x00007f5f133f6d0e in destroy_xdg_surface (surface=0x5567bdd401f0) at ../types/xdg_shell/wlr_xdg_surface.c:459
            popup_state = 0x5567bdcfc040
            next = 0x7ffda192ab20
    #3  0x00007f5f133f57e3 in xdg_client_handle_resource_destroy (resource=0x5567bdcfc040) at ../types/xdg_shell/wlr_xdg_shell.c:71
            client = 0x5567bdc6fa70
            surface = 0x5567bdd401f0
            tmp = 0x5567bdc6fa70
    #4  0x00007f5f133471be in  () at /usr/lib/x86_64-linux-gnu/libwayland-server.so.0
    #5  0x00007f5f1334b442 in  () at /usr/lib/x86_64-linux-gnu/libwayland-server.so.0
    #6  0x00007f5f1334b92f in  () at /usr/lib/x86_64-linux-gnu/libwayland-server.so.0
    #7  0x00007f5f1334731d in wl_client_destroy () at /usr/lib/x86_64-linux-gnu/libwayland-server.so.0
    #8  0x00007f5f133473f5 in  () at /usr/lib/x86_64-linux-gnu/libwayland-server.so.0
    #9  0x00007f5f13348b72 in wl_event_loop_dispatch () at /usr/lib/x86_64-linux-gnu/libwayland-server.so.0
    #10 0x00007f5f1334779a in wl_display_run () at /usr/lib/x86_64-linux-gnu/libwayland-server.so.0
    #11 0x00005567bc299652 in main (argc=5, argv=0x7ffda192af78) at ../rootston/main.c:74
            __PRETTY_FUNCTION__ = "main"
            socket = 0x5567bd9ecb39 "wayland-0"
  • I assume this was with virtboard on?

  • Nope, not virtboard running.

  • I have no idea, nothing in text-input even registers a handler for this signal. It must be a weird memory corruption - let's keep an eye on this.

  • Dorota Czaplejewicz marked the checklist item auto maximization as completed

    marked the checklist item auto maximization as completed

  • We can't merge with these crashes. The trace would not be that clear (and I could reproduce back then before fixing the chatty crash and I think even without). Did you try to reproduce by clicking on different XMPP accounts in chatty?

  • I didn't intend to merge with crashes, just to continue testing unil I find where it fails reproducibly.

    No, I haven't tried with chatty yet. Do you remember which revision you were using? Were you using phosh at the same time? Did you have lots of apps running before, or can this happen without any "warmup"?

  • Try prior to ff7da432e53e57a94df573622188a43d06ab5f87

  • Loading
  • Loading
  • Loading
  • Loading
  • Loading
  • Loading
  • Loading
  • Loading
  • Loading
  • Loading
Please register or sign in to reply