~afrantzis/mir/fix-clang-yakkety

« back to all changes in this revision

Viewing changes to src/platforms/mesa/server/kms/display_buffer.h

  • Committer: Tarmac
  • Author(s): Daniel van Vugt
  • Date: 2015-06-30 09:42:30 UTC
  • mfrom: (2619.2.71 predictive-bypass-v3)
  • Revision ID: tarmac-20150630094230-hm46jbtnzgn1jzt8
Introducing "predictive bypass"; this provides a constant ~10ms reduction
in latency when fully bypassed/overlayed. This benefit is in addition to
any lag reductions provided by other branches.

Additional unexpected benefits (free!):
  * In some cases even smoothness/frame rate is improved by this branch
    (LP: #1447896).
  * Software cursors/touchspots appear to "stick" to the client app better
    with this branch. Because the underlying client surface has the
    additional time it needs to update for the new cursor/touch position
    before the frame is posted. Fixes: https://bugs.launchpad.net/bugs/1447896.

Approved by Daniel van Vugt, Chris Halse Rogers, Kevin DuBois.

Show diffs side-by-side

added added

removed removed

Lines of Context:
65
65
    void for_each_display_buffer(
66
66
        std::function<void(graphics::DisplayBuffer&)> const& f) override;
67
67
    void post() override;
 
68
    std::chrono::milliseconds recommended_sleep() const override;
68
69
 
69
70
    MirOrientation orientation() const override;
70
71
    void set_orientation(MirOrientation const rot, geometry::Rectangle const& a);
93
94
    uint32_t fb_width, fb_height;
94
95
    MirOrientation rotation;
95
96
    std::atomic<bool> needs_set_crtc;
 
97
    std::chrono::milliseconds recommend_sleep{0};
96
98
    bool page_flips_pending;
97
99
};
98
100