Clients can't get high frequency input in Unity8

Bug #1497105 reported by Daniel van Vugt
10
This bug affects 2 people
Affects Status Importance Assigned to Milestone
Canonical System Image
Fix Released
Medium
Daniel van Vugt
Mir
Invalid
Medium
Unassigned
qtmir (Ubuntu)
Invalid
Medium
Unassigned
unity8 (Ubuntu)
Fix Released
Medium
Daniel van Vugt

Bug Description

Clients can't get high frequency input in Unity8.

Using native (non-nested) Mir servers, clients can get the full speed input stream if they so choose (MIR_CLIENT_INPUT_RATE=0). And it's planned that this will become a formal API feature: bug 1439590

However in Unity8, because it is a nested server, the client no longer has the option of getting this high frequency input.

Examples of clients that utilize high frequency input for improved visual quality:
   mir_demo_client_fingerpaint -w--desktop_file_hint=unity8
   mir_demo_client_target -n--desktop_file_hint=unity8
You may also want to experiment with those using ultra-high frequency input by adding a kernel parameter: usbhid.mousepoll=1

This is a tricky problem because for touch at least we do want the input stream to be throttled to the display rate from the top level down. Perhaps the answer is to enhance Unity8 to be a full-speed (non-resampled) client and then the clients of Unity8 can then still have a choice of whether they get resampling or not.

Related branches

Changed in qtmir:
importance: Undecided → Medium
Changed in qtmir (Ubuntu):
importance: Undecided → Medium
Changed in unity8 (Ubuntu):
importance: Undecided → Medium
Revision history for this message
Daniel van Vugt (vanvugt) wrote :

See also: bug 1486341

Revision history for this message
Daniel van Vugt (vanvugt) wrote :

Test case for mako (using Mir 0.16 syntax):

   env MIR_CLIENT_PERF_REPORT=log mir_demo_client_target -n -- --desktop_file_hint=dialer-app

Expect: The reported FPS is higher than the display refresh rate (above 90 on mako).

Revision history for this message
Gerry Boland (gerboland) wrote :

In that case, shell should not resample events, and leave that up the client, no?

Revision history for this message
Gerry Boland (gerboland) wrote :

QtMir not deciding to resample, that's unity8.

Changed in qtmir:
status: New → Invalid
Changed in qtmir (Ubuntu):
status: New → Invalid
Revision history for this message
Daniel van Vugt (vanvugt) wrote :

Yes, I think in the long run we want raw input being passed to clients and then to rely on the toolkits to do the right thing.

However I won't flick that switch until Qt's input resampling is usable for us. That might be possible after we do frame notification, and have more accurate and steady frame timing independent of nesting.

Changed in unity8 (Ubuntu):
assignee: nobody → Daniel van Vugt (vanvugt)
tags: added: unity8-desktop
Changed in mir:
assignee: nobody → Daniel van Vugt (vanvugt)
status: New → In Progress
milestone: none → 0.26.0
importance: Undecided → Medium
tags: added: visual-quality
Changed in unity8 (Ubuntu):
status: New → In Progress
Changed in mir:
milestone: 0.26.0 → none
status: In Progress → Invalid
Changed in canonical-devices-system-image:
status: New → In Progress
assignee: nobody → Daniel van Vugt (vanvugt)
importance: Undecided → Medium
summary: - Clients can't get high resolution input in Unity8
+ Clients can't get high frequency input in Unity8
description: updated
Changed in mir:
assignee: Daniel van Vugt (vanvugt) → nobody
Revision history for this message
Launchpad Janitor (janitor) wrote :

This bug was fixed in the package unity8 - 8.15+17.04.20170110.4-0ubuntu1

---------------
unity8 (8.15+17.04.20170110.4-0ubuntu1) zesty; urgency=medium

  [ Albert Astals Cid ]
  * Give focus to one of the buttons of the dialog
  * tst_WindowResizeArea: Use default values for mouseFlick speed and
    iterations (LP: #1651580)
  * Require Qt 5.6 & misc fixes

  [ Daniel van Vugt ]
  * Deprecate usage of Mir's input resampling, instead opting for: (LP:
    #1497105, #1591328)

  [ Josh Arenson ]
  * Allow the scopes list to automatically scroll when a scope is being
    dragged past the bounds of the screen. (LP: #1575319)

  [ Lukáš Tinkl ]
  * Fix touch window controls being unreachable when the overlay is
    being displayed (LP: #1648167)
  * Fixup paths for window state storage in snappy environment
  * Add Unity.Platform mock for our tests (LP: #1655336)

  [ Michael Zanetti ]
  * PreviewRatingInput: Use displayText instead of text to
    enable/disable the Send button (LP: #1595910)
  * Add a D-Bus interface to control some debug facilities on the fly
  * some launcher workarounds for the snapping

  [ Michał Sawicz ]
  * Nuke leftover Platform in IndicatorsManager

  [ Nick Dedekind ]
  * Added registry for application menus

  [ Michael Terry, Nick Dedekind ]
  * Run the qmluitests.sh autopkg test against the installed package.

  [ Michał Sawicz, Nick Dedekind ]
  * Application menus

  [ Rodney Dawes ]
  * Remove the payments widget and dependency on libpay as no longer
    needed.

 -- Michał Sawicz <email address hidden> Tue, 10 Jan 2017 14:48:42 +0000

Changed in unity8 (Ubuntu):
status: In Progress → Fix Released
Michał Sawicz (saviq)
no longer affects: qtmir
Changed in canonical-devices-system-image:
status: In Progress → Fix Released
To post a comment you must log in.
This report contains Public information  
Everyone can see this information.

Other bug subscribers

Remote bug watches

Bug watches keep track of this bug in other bug trackers.