Benchmarking Compositors

Registered by Jesse Barker

This session will discuss general approaches and techniques for benchmarking and profiling compositing window and surface managers (e.g., compiz, kwin). Particular attention will be given to enhancements and extensions to the glcompbench utility (https://launchpad.net/glcompbench), including feedback to compositor projects to yield optimizations based upon results as well as its use as a test bed for new potential rendering features.

Blueprint information

Status:
Complete
Approver:
Jesse Barker
Priority:
High
Drafter:
None
Direction:
Approved
Assignee:
Alexandros Frantzis
Definition:
Approved
Series goal:
Proposed for trunk
Implementation:
Informational Informational
Milestone target:
None
Started by
Alexandros Frantzis
Completed by
Alexandros Frantzis

Related branches

Sprints

Whiteboard

Summit notes:

* New tests
  * Compiz + plugins
  * Kwin + plugins
  * Surfaceflinger

* glcompench internals
 * Make the test parametrical?
 * Make the tests real plugins (separate .so files)?
 * Command line UI additions (tests to use, parameters to set per test etc)
 * If we were to add alternative compositing paths (e.g. leveraging pixman NEON support), we would need additional options to control that.
* More performance info we need to expose?

Work items (tentative):
  * [ACTION] Identify list of plugins from compiz to "port" as tests - Amaranth
  * [ACTION] Implement "list tests" option - afrantzis
  * [ACTION] Implement option to allow for a specific list (subset) of tests to be run - afrantzis
  * [ACTION] Investigate possible NEON paths for handling some operations - jesse-barker
  * [ACTION] Scope out work to implement loadable model for test development - afrantzis
  * [ACTION] Investigate surfaceflinger compositing model to identify test cases - graphicsWG-TBD
  * [ACTION] Coordinate GPU profiling efforts to yield mapping between application view and perf events - jesse-barker
  * [ACTION] Add work item to "profiling display" blueprint to accept glcompbench output as input - afrantzis
  * [ACTION] Implement new options to refine output to make it friendler for profiling consumption - jesse-barker

(?)

Work Items

Dependency tree

* Blueprints in grey have been implemented.

This blueprint contains Public information 
Everyone can see this information.