[regression] MIR_CLIENT_PERF_REPORT is showing bogus render times and buffer lag

Bug #1581368 reported by Daniel van Vugt on 2016-05-13
This bug affects 1 person
Affects Status Importance Assigned to Milestone
Fix Released
Daniel van Vugt
Fix Released
Daniel van Vugt
mir (Ubuntu)

Bug Description

MIR_CLIENT_PERF_REPORT is showing bogus render times:

$ env MIR_CLIENT_PERF_REPORT=log bin/mir_demo_client_egltriangle
[2016-05-13 16:20:12.972236] perf: mir_demo_client_egltriangle.bin: 62.68 FPS, render time 23216586.29ms, buffer lag 0.00ms (3 buffers)
[2016-05-13 16:20:13.973084] perf: mir_demo_client_egltriangle.bin: 60.00 FPS, render time 23217610.93ms, buffer lag 0.00ms (3 buffers)
[2016-05-13 16:20:14.973926] perf: mir_demo_client_egltriangle.bin: 60.00 FPS, render time 23218611.88ms, buffer lag 0.00ms (3 buffers)
^CSignal 2 received. Good night.

I haven't bisected it yet but know:
FAULTY: Mir 0.24 lp:mir
WORKING: Mir 0.21 (xenial)

Related branches

summary: - [regression] MIR_CLIENT_PERF_REPORT is showing bogus render times
+ [regression] MIR_CLIENT_PERF_REPORT is showing bogus render times and
+ buffer lag
Daniel van Vugt (vanvugt) wrote :

Bisected. The regression occurred in:

revno: 3479 [merge]
author: Kevin DuBois <email address hidden>
committer: Tarmac
branch nick: development-branch
timestamp: Tue 2016-04-26 15:28:57 +0000
  client: send incoming asynchronous buffer messages directly to the mcl::Buffer object. Prepares the buffers to be allocated from the connection, instead of a chain/stream.

  Change the async protocol a bit too so the RPC channel can manage the async buffers better. The RPC allocate/free buffer calls are not synchronized with the async buffer sending, so the server has to be a bit more explicit about what operation its performing, so the client side rpc channel can clean up the buffers better.

  So the notification chains go from:
  OBS (buffer_stream):
  rpc -> buffer_stream
  NBS (buffer_stream):
  rpc -> buffer_stream
  NBS: (presentation_chain):
  rpc -> buffer_stream -> buffer


  OBS (buffer_stream):
  rpc -> buffer_stream
  NBS (buffer_stream):
  rpc -> buffer -> buffer_stream
  NBS: (presentation_chain):
  rpc -> buffer .

  Approved by mir-ci-bot, Cemil Azizoglu.

Changed in mir:
status: New → Triaged
milestone: none → 0.24.0
assignee: nobody → Daniel van Vugt (vanvugt)
Changed in mir:
status: Triaged → In Progress
tags: added: nbs
Mir CI Bot (mir-ci-bot) wrote :

Fix committed into lp:mir at revision None, scheduled for release in mir, milestone 0.24.0

Changed in mir:
status: In Progress → Fix Committed
Kevin DuBois (kdub) wrote :

have to fix additional problem in 0.23, so its become easier to pick this up for 0.23.0

Daniel van Vugt (vanvugt) wrote :

Fix committed to lp:mir/0.23 at revision 3499, scheduled for release in Mir 0.23.0

Launchpad Janitor (janitor) wrote :

This bug was fixed in the package mir - 0.23.0+16.10.20160602.1-0ubuntu1

mir (0.23.0+16.10.20160602.1-0ubuntu1) yakkety; urgency=medium

  [ Kevin DuBois ]
  * New upstream release 0.23.0 (https://launchpad.net/mir/+milestone/0.23.0)
    - ABI summary:
      . mirclient ABI unchanged at 9
      . mirserver ABI bumped to 40
      . mircommon ABI bumped at 6
      . mirplatform ABI unchanged at 11
      . mirprotobuf ABI unchanged at 3
      . mirplatformgraphics ABI unchanged at 9
      . mirclientplatform ABI unchanged at 5
      . mirinputplatform ABI unchanged at 5
    - Enhancements:
      . Enable internal usage of more flexible graphics buffer submission,
        precursing client API additions.
    - Bug fixes:
      . Potential NBS performance loss after resize (LP: #1579076)
      . Performance loss with NBS and overlays on (LP: #1578159)
      . Mir crashes with useless backtrace when mg::Platform methods throw
        (LP: #1553549)
      . Virtual output is not removed when screencast client disappears
        (LP: #1573572)
      . Can't VT switch from mir_demo_server (any more) (LP: #1576260)
      . mir_demo_server(_minimal): Window movement/resizing stops responding
        when the cursor leaves the surface, and can lead to windows 1px wide
        and unrecoverable. (LP: #1447886)
      . Virtual display output configuration is set to LVDS (LP: #1573782)
      . Mir-on-X11 doesn't pass Alt+primary button drag to Mir (LP: #1575765)
      . Mir-on-X11 breaks mir_proving_server resize logic (LP: #1575192)
      . Resizing can crash mir_demo_server (LP: #1575211)
      . [regression] Cursor stops at phantom edge on M10 and N7 (LP: #1580774)
      . [regression] MIR_CLIENT_PERF_REPORT is showing bogus render times and
        buffer lag (LP: #1581368)
      . Test failures in ClientLogging.reports_performance due to the above
        fix. (LP: #1583970, LP: #1584603, LP: #1584605)
      . Do not throw when creating some objects under HWC 1.5 (LP: #1583086)
      . Correct black frame issue under Xmir (LP: #1584784)

  [ Tarmac, Kevin DuBois <email address hidden>, Daniel van Vugt <email address hidden>, Andreas Pokorny <email address hidden>, Alberto Aguirre ]
  * 0.23.0 Mir release

 -- Kevin DuBois <email address hidden> Thu, 02 Jun 2016 13:18:03 +0000

Changed in mir (Ubuntu):
status: New → Fix Released
Changed in mir:
status: Fix Committed → Fix Released
To post a comment you must log in.
This report contains Public information  Edit
Everyone can see this information.

Other bug subscribers