Skip to content
GitLab
Projects Groups Snippets
  • /
  • Help
    • Help
    • Support
    • Community forum
    • Submit feedback
    • Contribute to GitLab
  • Register
  • Sign in
  • D drm-hwcomposer
  • Project information
    • Project information
    • Activity
    • Labels
    • Members
  • Repository
    • Repository
    • Files
    • Commits
    • Branches
    • Tags
    • Contributors
    • Graph
    • Compare
  • Issues 12
    • Issues 12
    • List
    • Boards
    • Service Desk
    • Milestones
  • Merge requests 4
    • Merge requests 4
  • CI/CD
    • CI/CD
    • Pipelines
    • Jobs
    • Schedules
  • Deployments
    • Deployments
    • Environments
    • Releases
  • Packages and registries
    • Packages and registries
    • Container Registry
  • Monitor
    • Monitor
    • Incidents
  • Analytics
    • Analytics
    • Value stream
    • CI/CD
    • Repository
  • Wiki
    • Wiki
  • Snippets
    • Snippets
  • Activity
  • Graph
  • Create a new issue
  • Jobs
  • Commits
  • Issue Boards
Collapse sidebar

Due to an influx of spam, we have had to impose restrictions on new accounts. Please see this wiki page for instructions on how to get full permissions. Sorry for the inconvenience.

  • drm-hwcomposer
  • drm-hwcomposer
  • Merge requests
  • !75

drm_hwcomposer: Introduce dumpsys metrics

  • Review changes

  • Download
  • Email patches
  • Plain diff
Merged Roman Stratiienko requested to merge roman.stratiienko/drm-hwcomposer:dumpsys-pr into master Nov 28, 2019
  • Overview 5
  • Commits 1
  • Pipelines 11
  • Changes 2

To make optimal performance/power consumption ratio we want to use composing by
dedicated hardware to merge as much as possible composition cases.
We are going to continuously optimize and improve drm_hwcomposer HAL, that
makes high demand on formal validation process.

Introduce "pixel operation" definition. It should be in direct ratio with power
consumption, but currently it roughly calculated as sum of pixels merged by
each layer.
In some future we should apply some average gains depending of operation type
to calculate pixops more precisely. (e.g. scaling should take more pixops than
blending, and blending should take more that copying, etc.).
Using pixops could be very helpful when drm_hwc HAL have a choice which layer
sets to merge by GPU, making possible minimal energy model based planning.

Create statistics of the following events:

  1. Total frames count
  2. Total pixel operations
  3. Pixel operations validated to use GPU (CLIENT)
  4. Calculate composer efficiency: DEVICE/TOTAL operations ratio
  5. Failed atomic validation commits count
  6. Failed atomic presenting commits count

Usage:

  • $ adb shell dumpsys SurfaceFlinger
    Statistics will be shown at the end of the dump in 2 forms:
  1. Since system launched
  2. Since last dumpsys command called

Using statistics for the regression slope monitoring example:

  1. Boot the board without the change
  2. Use touch or keyboard (avoid using of mouse pointer) to do some predefined actions (open application, start video, etc.)
  3. Save the metrics
  4. Boot the board with the change
  5. Do exactly the same actions as in (2)
  6. Save the metrics
  7. Use metrics before and after change to indicate regression slope

This code was used as reference:
https://android.googlesource.com/platform/hardware/interfaces/+/refs/tags/android-10.0.0_r11/graphics/composer/2.1/utils/hwc2on1adapter/HWC2On1Adapter.cpp#352

API is described in details here:
https://android.googlesource.com/platform/hardware/libhardware/+/refs/tags/android-cts-10.0_r2/include/hardware/hwcomposer2.h#1089

Edited Dec 02, 2019 by Roman Stratiienko
Assignee
Assign to
Reviewers
Request review from
Time tracking
Source branch: dumpsys-pr