1. 22 Oct, 2015 1 commit
  2. 21 Oct, 2015 6 commits
  3. 20 Oct, 2015 7 commits
    • Martin Flöser's avatar
      [kcmkwin/deco] Delay deleting of PreviewBridge · 484e4be7
      Martin Flöser authored
      Our decoration is deleted using deleteLater() and that might cause access
      to the bridge. Given that we also need to deleteLater() the
      PreviewBridge.
      
      To do so the PreviewBridge is no longer directly exposed to QML, but
      in a wrapper object which holds the bridge as only element.
      
      BUG: 344278
      FIXED-IN: 5.4.3
      REVIEW: 125724
      484e4be7
    • Martin Flöser's avatar
      [hwcomposer] Rework the vsync code · 93b5e133
      Martin Flöser authored
      This changes how we synchronize through vsync. We use a mutex and a
      wait condition to synchronize the threads. When presenting the frame
      our main gui thread blocks and will be woken up by the vsync event
      (or a timeout of max 1 frame time slot). In order to minimize the
      blocked time we use the blocksForRetrace functionality from the GLX
      compositor.
      
      Given this change we no longer need to tell the compositor that we
      are swapping the frame, it's blocked anyway. Also we don't need the
      failsafe QTimer anymore.
      
      With this change applied on a Nexus 5 it's succeeding the "Martin
      tortures phone test". It doesn't tear anymore and has a smooth
      experience.
      
      I'm rather disappointed by the fact that we need to block in order
      to get vsync. This means Android/hwcomposer is as bad as GLX. So
      much for the "Android stack is so awesome", in fact it's not. Anybody
      thinking it's awesome should compare to DRM/KMS and especially atomic
      modesetting. Yes it's possible to present frames without tearing and
      without having to block the rendering thread.
      
      Reviewed-By: Marco Martin and Bhushan Shah
      93b5e133
    • Martin Flöser's avatar
      Don't perform Compositor::setCompositeTimer during startup · d24411b9
      Martin Flöser authored
      The check whether Workspace is created is not sufficient. There's a
      time when Workspace is already created but Compositor not ready yet
      and where we can hit this code path.
      d24411b9
    • Martin Flöser's avatar
      [hwcomposer] Use three rendering buffers · b38999e0
      Martin Flöser authored
      Seems to improve the tearing problem.
      b38999e0
    • Martin Flöser's avatar
      [hwcomposer] Use newer setOutputsEnabled API instead of blocking buffer swap · 98a669d7
      Martin Flöser authored
      The newer API is designed for the case that outputs are disabled and
      makes sure that we don't have to abuse the aboutToSwapBuffers. This
      also prevents possible conflicts between blocking during rendering and
      screens being off.
      
      Reviewed-By: Bhushan Shah
      98a669d7
    • Martin Flöser's avatar
      Merge branch 'Plasma/5.4' · a730b5d2
      Martin Flöser authored
      a730b5d2
    • Martin Flöser's avatar
      [decorations] Delay closeWindow to next event cycle · 10ad9262
      Martin Flöser authored
      Once again our famous "closing glxgears crashes Aurorae".
      
      BUG: 346857
      FIXED-IN: 5.4.3
      REVIEW: 125704
      10ad9262
  4. 19 Oct, 2015 3 commits
    • Martin Flöser's avatar
      [autotests] Dashboard is no longer available · 5f8e8985
      Martin Flöser authored
      Sorry for breaking the autotest.
      5f8e8985
    • Martin Flöser's avatar
      Drop the Dashboard Effect · 126263b6
      Martin Flöser authored
      Basically dead code given that Plasma doesn't have a dedicated dashboard
      mode anymore and also doesn't set the required window role for it to
      work.
      
      By deleting we save one string comparison for each newly opened window.
      
      REVIEW: 125686
      126263b6
    • Martin Flöser's avatar
      Delay enabling vsync till first frame is rendered · d2cb445f
      Martin Flöser authored
      According to the hwcomposer documentation:
      "It is a (silent) error to have HWC_EVENT_VSYNC enabled when calling
      hwc_composer_device.set(..., 0, 0, 0) (screen off)".
      
      Because of that we may not enable vsync directly after toggling the
      output, but need to wait till after calling the set call.
      
      Reviewed-by: Bhushan Shah
      d2cb445f
  5. 18 Oct, 2015 1 commit
  6. 16 Oct, 2015 3 commits
  7. 15 Oct, 2015 6 commits
  8. 14 Oct, 2015 13 commits