1. 02 Nov, 2021 13 commits
  2. 01 Nov, 2021 2 commits
  3. 31 Oct, 2021 4 commits
  4. 29 Oct, 2021 4 commits
    • Simon Ser's avatar
      backend/drm: avoid creating empty FB_DAMAGE_CLIPS prop · 83090de0
      Simon Ser authored
      drmModeCreatePropertyBlob cannot create zero-sized blobs, that
      fails with EINVAL.
      
      Closes: https://github.com/swaywm/wlroots/issues/3297
      83090de0
    • Simon Ser's avatar
      output: fix stack variable lifetime in wlr_output_send_present · b2f6ff45
      Simon Ser authored
      Variables on the stack are released when the parent block is closed.
      Here, `now` is used outside of the `if` block, causing the following
      crash when starting Sway with the headless backend:
      
          ==49606==ERROR: AddressSanitizer: stack-use-after-scope on address 0x7fff94645f90 at pc 0x5558aeae9e29 bp 0x7fff94645df0 sp 0x7fff94645de0
          READ of size 16 at 0x7fff94645f90 thread T0
              #0 0x5558aeae9e28 in handle_present ../sway/desktop/output.c:834
              #1 0x7fdc8d6792fb in wlr_signal_emit_safe ../subprojects/wlroots/util/signal.c:29
              #2 0x7fdc8d54f77f in wlr_output_send_present ../subprojects/wlroots/types/output/output.c:766
              #3 0x7fdc8d524a28 in output_commit ../subprojects/wlroots/backend/headless/output.c:71
              #4 0x7fdc8d54d2db in wlr_output_commit ../subprojects/wlroots/types/output/output.c:629
              #5 0x5558aeb013cb in output_render ../sway/desktop/render.c:1157
              #6 0x5558aeae549e in output_repaint_timer_handler ../sway/desktop/output.c:544
              #7 0x5558aeae5f8a in damage_handle_frame ../sway/desktop/output.c:606
              #8 0x7fdc8d6792fb in wlr_signal_emit_safe ../subprojects/wlroots/util/signal.c:29
              #9 0x7fdc8d6007d5 in output_handle_frame ../subprojects/wlroots/types/wlr_output_damage.c:44
              #10 0x7fdc8d6792fb in wlr_signal_emit_safe ../subprojects/wlroots/util/signal.c:29
              #11 0x7fdc8d54ee84 in wlr_output_send_frame ../subprojects/wlroots/types/output/output.c:720
              #12 0x7fdc8d54efc3 in schedule_frame_handle_idle_timer ../subprojects/wlroots/types/output/output.c:728
              #13 0x7fdc8c9dcf5a in wl_event_loop_dispatch_idle (/usr/lib/libwayland-server.so.0+0xaf5a)
              #14 0x7fdc8c9dcfb4 in wl_event_loop_dispatch (/usr/lib/libwayland-server.so.0+0xafb4)
              #15 0x7fdc8c9dabc6 in wl_display_run (/usr/lib/libwayland-server.so.0+0x8bc6)
              #16 0x5558aeac8e30 in server_run ../sway/server.c:285
              #17 0x5558aeac3c7d in main ../sway/main.c:396
              #18 0x7fdc8be35b24 in __libc_start_main (/usr/lib/libc.so.6+0x27b24)
              #19 0x5558aea8686d in _start (/home/simon/src/sway/build/sway/sway+0x33f86d)
      b2f6ff45
    • Simon Ser's avatar
      backend/drm: get rid of BO handle table · 0817c52a
      Simon Ser authored
      The BO handle table exists to avoid double-closing a BO handle,
      which aren't reference-counted by the kernel. But if we can
      guarantee that there is only ever a single ref for each BO handle,
      then we don't need the BO handle table anymore.
      
      This is possible if we create the handle right before the ADDFB2
      IOCTL, and close the handle right after. The handles are very
      short-lived and we don't need to track their lifetime.
      
      Because of multi-planar FBs, we need to be a bit careful: some
      FB planes might share the same handle. But with a small check, it's
      easy to avoid double-closing the same handle (which wouldn't be a
      big deal anyways).
      
      There's one gotcha though: drmModeSetCursor2 takes a BO handle as
      input. Saving the handles until drmModeSetCursor2 time would require
      us to track BO handle lifetimes, so we wouldn't be able to get rid
      of the BO handle table. As a workaround, use drmModeGetFB to turn the
      FB ID back to a BO handle, call drmModeSetCursor2 and then immediately
      close the BO handle. The overhead should be minimal since these IOCTLs
      are pretty cheap.
      
      Closes: https://github.com/swaywm/wlroots/issues/3164
      0817c52a
    • Simon Ser's avatar
      sceeencopy-v1: listen to output destroy in capture_output · 3b96aa04
      Simon Ser authored
      If the output is destroyed after capture_output but before
      frame_handle_copy, it'll have a dangling output pointer. Add the
      output destroy listener in capture_output.
      
      Closes: https://github.com/swaywm/wlroots/issues/3284
      3b96aa04
  5. 27 Oct, 2021 6 commits
  6. 26 Oct, 2021 3 commits
  7. 25 Oct, 2021 1 commit
  8. 22 Oct, 2021 6 commits
  9. 21 Oct, 2021 1 commit