← Back to team overview

touch-packages team mailing list archive

[Bug 1350716] Re: CompositorReport as used by DefaultDisplayBufferCompositor can't measure render time

 

** Changed in: mir
       Status: Fix Committed => Fix Released

** Also affects: mir (Ubuntu)
   Importance: Undecided
       Status: New

-- 
You received this bug notification because you are a member of Ubuntu
Touch seeded packages, which is subscribed to mir in Ubuntu.
https://bugs.launchpad.net/bugs/1350716

Title:
  CompositorReport as used by DefaultDisplayBufferCompositor can't
  measure render time

Status in Mir:
  Fix Released
Status in mir package in Ubuntu:
  New

Bug description:
  CompositorReport as used by DefaultDisplayBufferCompositor can't
  measure render time.

  Presently we have:

      // [A]
      report->began_frame(this);
      ...
      if (display_buffer.post_renderables_if_optimizable(renderable_list)) // [B] before page flip
      { 
          renderer->suspend();
          report->finished_frame(true, this);
      }
      else
      {
          display_buffer.make_current();

          renderer->set_rotation(display_buffer.orientation());

          renderer->begin();  // TODO deprecatable now?
          renderer->render(renderable_list);
          display_buffer.post_update();  // swap buffers, [B], then page flip
          renderer->end();

          report->finished_frame(false, this);
      }
      // [C]

  Compositor report correctly reports "frame time" as [C]-[A]. However a
  more useful measure is render time which is [B]-[A]. But we can't do
  that yet as we'd have to insert a reporting point in the middle of the
  post_ functions (or split them) so as to not include page flipping
  time in "render time", while still including the final eglSwapBuffers
  (if any).

To manage notifications about this bug go to:
https://bugs.launchpad.net/mir/+bug/1350716/+subscriptions