Merge lp:~vanvugt/mir/fix-1349698 into lp:mir
Proposed by
Daniel van Vugt
Status: | Merged |
---|---|
Approved by: | Alexandros Frantzis |
Approved revision: | no longer in the source branch. |
Merged at revision: | 1801 |
Proposed branch: | lp:~vanvugt/mir/fix-1349698 |
Merge into: | lp:mir |
Diff against target: |
237 lines (+24/-32) 8 files modified
examples/demo-shell/demo_renderer.cpp (+0/-22) include/platform/mir/graphics/gl_primitive.h (+10/-2) include/server/mir/compositor/gl_renderer.h (+2/-0) server-ABI-sha1sums (+2/-2) src/platform/graphics/android/hwc_fallback_gl_renderer.cpp (+1/-1) src/platform/graphics/tessellation_helpers.cpp (+0/-1) src/server/compositor/gl_renderer.cpp (+2/-2) tests/unit-tests/compositor/test_gl_renderer.cpp (+7/-2) |
To merge this branch: | bzr merge lp:~vanvugt/mir/fix-1349698 |
Related bugs: |
Reviewer | Review Type | Date Requested | Status |
---|---|---|---|
Kevin DuBois (community) | Approve | ||
Alan Griffiths | Approve | ||
Alexandros Frantzis (community) | Approve | ||
PS Jenkins bot (community) | continuous-integration | Approve | |
Review via email:
|
Commit message
GLRenderer/
that were consuming too much CPU time. (LP: #1349698)
1. Instead of a vector-of-vectors make it a flat vector of structures.
2. Cache the primitives vector memory instead of reallocating a new one
for every renderable on every frame.
This reduces tessellation CPU usage from 12% to 3% and almost doubles the
number of clients I can run under callgrind before they skip frames.
Description of the change
Probably not relevant to Unity8, but since I think I caused this bottleneck I want to fix it ASAP.
To post a comment you must log in.
PASSED: Continuous integration, rev:1802 jenkins. qa.ubuntu. com/job/ mir-team- mir-development -branch- ci/2256/ jenkins. qa.ubuntu. com/job/ mir-android- utopic- i386-build/ 1122 jenkins. qa.ubuntu. com/job/ mir-clang- utopic- amd64-build/ 1128 jenkins. qa.ubuntu. com/job/ mir-mediumtests -utopic- touch/1113 jenkins. qa.ubuntu. com/job/ mir-team- mir-development -branch- utopic- amd64-ci/ 778 jenkins. qa.ubuntu. com/job/ mir-team- mir-development -branch- utopic- amd64-ci/ 778/artifact/ work/output/ *zip*/output. zip jenkins. qa.ubuntu. com/job/ mir-team- mir-development -branch- utopic- armhf-ci/ 779 jenkins. qa.ubuntu. com/job/ mir-team- mir-development -branch- utopic- armhf-ci/ 779/artifact/ work/output/ *zip*/output. zip jenkins. qa.ubuntu. com/job/ mir-mediumtests -builder- utopic- armhf/48 jenkins. qa.ubuntu. com/job/ mir-mediumtests -builder- utopic- armhf/48/ artifact/ work/output/ *zip*/output. zip jenkins. qa.ubuntu. com/job/ mir-mediumtests -runner- mako/2241 s-jenkins. ubuntu- ci:8080/ job/touch- flash-device/ 10601
http://
Executed test runs:
SUCCESS: http://
SUCCESS: http://
SUCCESS: http://
SUCCESS: http://
deb: http://
SUCCESS: http://
deb: http://
SUCCESS: http://
deb: http://
SUCCESS: http://
SUCCESS: http://
Click here to trigger a rebuild: s-jenkins. ubuntu- ci:8080/ job/mir- team-mir- development- branch- ci/2256/ rebuild
http://