Skip to content
Snippets Groups Projects
  1. Jul 25, 2017
  2. Jul 24, 2017
  3. Jul 21, 2017
  4. Jul 20, 2017
  5. Jul 18, 2017
  6. Jul 12, 2017
  7. Jul 03, 2017
  8. Jun 25, 2017
  9. Jun 12, 2017
  10. May 23, 2017
  11. May 19, 2017
  12. May 18, 2017
  13. May 02, 2017
    • Daniel Stone's avatar
      Account for very large repaint window misses · eca5cca5
      Daniel Stone authored
      
      At the bottom of weston_output_finish_frame(), code exists to account
      for flips which have missed the repaint window, by shifting them to lock
      on to the next repaint window rather than repainting immediately.
      
      This code only accounted for flips which missed their target by one
      repaint window. If they miss by multiples of the repaint window, adjust
      them until the next repaint timestamp is in the future. This will only
      happen in fairly extreme situations, such as Weston being scheduled out
      for a punitively long period of time. Nevertheless, try to help recovery
      by still aiming for more predictable timings.
      
      Signed-off-by: Daniel Stone's avatarDaniel Stone <daniels@collabora.com>
      Reviewed-by: Pekka Paalanen's avatarPekka Paalanen <pekka.paalanen@collabora.co.uk>
      eca5cca5
  14. Apr 21, 2017
  15. Apr 13, 2017
    • Derek Foreman's avatar
      compositor-drm: Fix disabling cursor plane · 2cd87fe8
      Derek Foreman authored
      
      commit a7cba1d4 changed the way
      the cursor plane is setup.  Previously it was pre-emptively set
      disabled for the next frame, and that would be changed at next
      frame time if the cursor plane was to be used.  It was changed
      to be disabled at plane assignment time.
      
      We disable the use of planes entirely by setting disable_planes to
      a non-zero value, which bypasses all calls to assign_planes - so
      if the plane was set-up in the previous frame it will retain its
      state post-disable.
      
      This leads to desktop zoom leaving the cursor plane in place when
      it sets disable_planes.
      
      This patch clears any stale cursor plane state from the redraw
      handler if disable_planes is set so drm_output_set_cursor()
      will do the right thing.
      
      Reviewed-by: Daniel Stone's avatarDaniel Stone <daniels@collabora.com>
      Reported-by: default avatarEmmanuel Gil Peyrot <emmanuel.peyrot@collabora.com>
      2cd87fe8
    • Pekka Paalanen's avatar
      libweston-desktop/xwayland: react to geometry changes · 5f93b9f6
      Pekka Paalanen authored and Daniel Stone's avatar Daniel Stone committed
      
      Fix up the window position whenever the geometry info changes.
      
      If the window geometry changes, we want to keep the input-responding
      content anchored to top-left. It is done by manipulating the dx,dy
      arguments originating from a wl_surface.attach request.
      
      Signed-off-by: Pekka Paalanen's avatarPekka Paalanen <pekka.paalanen@collabora.co.uk>
      Reviewed-by: default avatarLouis-Francis Ratté-Boulianne <lfrb@collabora.com>
      Acked-by: Daniel Stone's avatarDaniel Stone <daniels@collabora.com>
      5f93b9f6
    • Pekka Paalanen's avatar
      xwm: use _XWAYLAND_ALLOW_COMMITS · 7ace831c
      Pekka Paalanen authored and Daniel Stone's avatar Daniel Stone committed
      This patch uses the new feature proposed for Xwayland in the patch
      series https://patchwork.freedesktop.org/series/16610/ .
      
      When the frame window is created, immediately forbid Xwayland commits on
      it. This prevents commits before the decorations have been drawn and the
      initial pending state has been set. Commits are enabled right after
      drawing and setting.
      
      This ensures that the decorations are fully drawn when a window is
      mapped. This also solves the initial commit/pending race, but the race
      is on again after mapping.
      
      If Xwayland does not implement the needed support, we are just setting a
      window property with no effect.
      
      This patch is the final piece for solving T7622, excluding the
      _NET_WM_SYNC_REQUEST handling.
      
      Task: https://phabricator.freedesktop.org/T7622
      
      
      Signed-off-by: Pekka Paalanen's avatarPekka Paalanen <pekka.paalanen@collabora.co.uk>
      Reviewed-by: default avatarLouis-Francis Ratté-Boulianne <lfrb@collabora.com>
      Acked-by: Daniel Stone's avatarDaniel Stone <daniels@collabora.com>
      7ace831c
    • Pekka Paalanen's avatar
      xwm: do not draw decor twice on map · ad0da459
      Pekka Paalanen authored and Daniel Stone's avatar Daniel Stone committed
      
      Normal windows enter the MapRequest handler, which schedules drawing the
      decorations. Then Xwayland realizes the window, which ends with a call
      to xserver_map_shell_surface(). The decorations are already drawn, no
      need to draw them a second time. However, MapRequest handler could not
      set the pending state because the weston_surface did not exist at the
      time, because it gets created only when Xwayland realizes the window,
      which happens after XWM has forwarded the MapWindow in MapRequest
      handler. Therefore set the pending state explicitly at the end.
      Scheduling had it done much later anyway.
      
      Now that the pending state is set much earlier, it seems to be more
      likely that it gets set before Xwayland's first commit is handled. This
      means that -geometry command line option of X11 apps already takes the
      geometry (decorations) into account. I do not think it is reliable yet,
      though.
      
      There is still the race between Xwayland committing and XWM setting the
      pending state assuming the very next commit latches it in appropriately.
      The race exists not because of Wayland, but because WL_SURFACE_ID comes
      via X11, and could be processed after wl_compositor.create_surface and
      wl_surface.commit. That commit/pending race is solved by a following patch.
      
      For override-redirect windows weston_wm_window_schedule_repaint()
      reduced into a call to weston_wm_window_set_pending_state_OR(), so we
      can just call that directly. It should not matter that the call is moved
      to the end of the function.
      
      Signed-off-by: Pekka Paalanen's avatarPekka Paalanen <pekka.paalanen@collabora.co.uk>
      Reviewed-by: default avatarLouis-Francis Ratté-Boulianne <lfrb@collabora.com>
      Acked-by: Daniel Stone's avatarDaniel Stone <daniels@collabora.com>
      ad0da459
  16. Apr 12, 2017
  17. Apr 11, 2017
Loading