Skip to content

Commit

Permalink
Merge pull request #514 from amartinz/device-info/mir-android-platform
Browse files Browse the repository at this point in the history
porting: configuring: DeviceInfo: add Mir section
  • Loading branch information
Flohack74 committed Jul 25, 2022
2 parents aaa8124 + 24f5eae commit efad41b
Show file tree
Hide file tree
Showing 3 changed files with 86 additions and 4 deletions.
81 changes: 81 additions & 0 deletions porting/configure_test_fix/device_info/Mir.rst
Original file line number Diff line number Diff line change
@@ -0,0 +1,81 @@
.. _DeviceInfo_Mir:

Mir
===

Overview of all Mir keys::

<devicename>:
MirAndroidPlatformClientEglFlush: <comma-separated-list/"all">
MirAndroidPlatformClientFenceSync: <comma-separated-list/"all">
MirAndroidPlatformServerBackpressure: <boolean>
MirAndroidPlatformServerClearFbFence: <boolean>
MirAndroidPlatformServerEglSync: <boolean>
MirAndroidPlatformServerPartialUpdates: <boolean>

mir-platform-android
--------------------

====================================== =========== ============================================= ===========================
Key Description Value(s) Default value
====================================== =========== ============================================= ===========================
MirAndroidPlatformClientEglFlush See below Comma-separated list (or special value "all") Empty
MirAndroidPlatformClientFenceSync See below Comma-separated list (or special value "all") Empty
MirAndroidPlatformServerBackpressure See below Boolean False
MirAndroidPlatformServerClearFbFence See below Boolean False
MirAndroidPlatformServerEglSync See below Boolean Launcher argument (``default``)
MirAndroidPlatformServerPartialUpdates See below Boolean False
====================================== =========== ============================================= ===========================

MirAndroidPlatformClientEglFlush
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

Force GL command buffer flush on eglSwapBuffers, in case the driver doesn't follow the spec.

MirAndroidPlatformClientFenceSync
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

Classic fence-only synchronization without GL command buffer flushing.

MirAndroidPlatformServerBackpressure
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

Allows redrawing to be skipped or not after a missed frame, similarly to SurfaceFlinger.

MirAndroidPlatformServerClearFbFence
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

Framebuffer changes only continue after the fence has been successfully waited on.

MirAndroidPlatformServerEglSync
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

Allow or avoid synchronization using EGL fencing primitives when drawing the screen.

Overrules existing launcher argument.

MirAndroidPlatformServerPartialUpdates
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

Allow partial redraws to HWC-assigned server-side buffers.

Examples
--------

Device ``sample`` using:

- Enabling egl flushing for every client except for ``lomiri`` and ``unity8``
- Note that you can use ``!`` to invert conditions and turn the `allow` into a `deny` list.
- Disabling egl sync for the server
- Enabling partial updates for the server

Config file::

$ cat /etc/deviceinfo/devices/sample.yaml
sample:
MirAndroidPlatformClientEglFlush:
- "!/usr/bin/unity8,!/usr/bin/lomiri,all"
MirAndroidPlatformServerEglSync:
- false
MirAndroidPlatformServerPartialUpdates:
- true
2 changes: 1 addition & 1 deletion porting/configure_test_fix/device_info/Repowerd.rst
Original file line number Diff line number Diff line change
Expand Up @@ -24,7 +24,7 @@ DoubleTapToWake Configuration for toggling DT2W List of formatted strings:
Examples
--------

Device `sample` using:
Device ``sample`` using:

- Custom backlight sysfs path to disable autodetection of the path controlling the backlight
- Double Tap to Wake (DT2W) configuration to allow double tapping to wake the device, specifing two potential paths
Expand Down
7 changes: 4 additions & 3 deletions porting/configure_test_fix/device_info/index.rst
Original file line number Diff line number Diff line change
Expand Up @@ -37,9 +37,9 @@ This allows for a lot of flexibility, however keys should be properly documented
Built-in config keys
--------------------

============================ ========================================================= =====================================================
============================ ========================================================= ========================================================
Key Description Value(s)
============================ ========================================================= =====================================================
============================ ========================================================= ========================================================
Name Device name / codename Any string
PrettyName Pretty name of the device Any string
DeviceType Sets device type desktop, tablet, phone
Expand All @@ -50,12 +50,13 @@ PortraitOrientation Orientation of the device when in portrait mode
InvertedPortraitOrientation Orientation of the device when in inverted portrait mode Portrait, InvertedPortrait, Landscape, InvertedLandscape
LandscapeOrientation Orientation of the device when in landscape mode Portrait, InvertedPortrait, Landscape, InvertedLandscape
InvertedLandscapeOrientation Orientation of the device when in inverted landscape mode Portrait, InvertedPortrait, Landscape, InvertedLandscape
============================ ========================================================= =====================================================
============================ ========================================================= ========================================================

Other keys are documented in the component specific subpages.

.. toctree::
:maxdepth: 1
:name: device_info

Mir
Repowerd

0 comments on commit efad41b

Please sign in to comment.