Benchmark results (with FBO enabled) in compiz 0.9.8.0 are lower than compiz 0.9.7
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
Compiz |
Fix Released
|
Medium
|
Sam Spilsbury | ||
compiz (Ubuntu) |
Fix Released
|
Undecided
|
Unassigned |
Bug Description
I've noticed a 9-10% drop in performance between compiz 0.9.7 and compiz 0.9.8 where FBO rendering is enabled. If I edit the opengl plugin to explicitly disable the FBO code and buffer swapping then it is fast again (since I have the fix for bug 1037411).
NOTE 1:
This regression was allowed in compiz 0.9.8.0 because it is generally only visible in benchmark results. Meanwhile, physical compiz rendering performance (as reported by the compiz Benchmark plugin) is higher in compiz 0.9.8.0 than previous versions, in most cases.
NOTE 2:
If you're just worried about fullscreen game performance, then you don't need to wait for this bug to be resolved. You can get optimal graphics performance with unredirect mode. But see bug 980663 first.
WORKAROUND 1:
Revert back to the rendering method used by compiz 0.9.7. Not recommended as it will increase stuttering of animations and make desktop usage less smooth...
CCSM > OpenGL >
framebuffer_
vertex_
always_
WARNING: Workaround 1 will make your desktop and animations less smooth. It will increase the peak frame rate at the expense of the minimum and average frame rate.
WORKAROUND 2:
If you only care about fullscreen graphics performance then:
1. Make sure you have compiz 0.9.8.2 or later. Otherwise this is unsafe.
2. CCSM > Composite > unredirect_
WARNING: Workaround 2 is not enabled by default because it can and does cause serious problems with system stability. Mainly with the nouveau and intel graphics drivers.
Related branches
- PS Jenkins bot (community): Approve (continuous-integration)
- Christopher Townsend (community): Approve
- Marco Trevisan (Treviño): Approve
- Esokrates: Pending (testing, benchmarking) requested
- Andrea Azzarone: Pending requested
- Timo Jyrinki: Pending (build&run) requested
- MC Return: Pending requested
- Daniel van Vugt: Pending requested
- Sam Spilsbury: Pending requested
-
Diff: 2221 lines (+1500/-72)17 files modifiedplugins/composite/CMakeLists.txt (+6/-1)
plugins/composite/include/composite/agedamagequery.h (+53/-0)
plugins/composite/include/composite/composite.h (+53/-14)
plugins/composite/src/backbuffertracking/CMakeLists.txt (+31/-0)
plugins/composite/src/backbuffertracking/include/backbuffertracking.h (+125/-0)
plugins/composite/src/backbuffertracking/src/backbuffertracking.cpp (+214/-0)
plugins/composite/src/backbuffertracking/tests/CMakeLists.txt (+22/-0)
plugins/composite/src/backbuffertracking/tests/test-composite-backbuffertracking.cpp (+449/-0)
plugins/composite/src/privates.h (+18/-2)
plugins/composite/src/screen.cpp (+149/-11)
plugins/opengl/include/opengl/opengl.h (+18/-3)
plugins/opengl/src/paint.cpp (+25/-6)
plugins/opengl/src/privates.h (+31/-4)
plugins/opengl/src/screen.cpp (+297/-30)
plugins/opengl/src/window.cpp (+1/-1)
plugins/water/src/water.cpp (+7/-0)
plugins/water/src/water.h (+1/-0)
- Daniel van Vugt: Needs Resubmitting
- PS Jenkins bot (community): Approve (continuous-integration)
- MC Return: Pending requested
- Andrea Azzarone: Pending requested
- Esokrates: Pending (testing, benchmarking) requested
- Timo Jyrinki: Pending (build&run) requested
- Sam Spilsbury: Pending requested
-
Diff: 2221 lines (+1500/-72)17 files modifiedplugins/composite/CMakeLists.txt (+6/-1)
plugins/composite/include/composite/agedamagequery.h (+53/-0)
plugins/composite/include/composite/composite.h (+53/-14)
plugins/composite/src/backbuffertracking/CMakeLists.txt (+31/-0)
plugins/composite/src/backbuffertracking/include/backbuffertracking.h (+125/-0)
plugins/composite/src/backbuffertracking/src/backbuffertracking.cpp (+214/-0)
plugins/composite/src/backbuffertracking/tests/CMakeLists.txt (+22/-0)
plugins/composite/src/backbuffertracking/tests/test-composite-backbuffertracking.cpp (+449/-0)
plugins/composite/src/privates.h (+18/-2)
plugins/composite/src/screen.cpp (+149/-11)
plugins/opengl/include/opengl/opengl.h (+18/-3)
plugins/opengl/src/paint.cpp (+25/-6)
plugins/opengl/src/privates.h (+31/-4)
plugins/opengl/src/screen.cpp (+297/-30)
plugins/opengl/src/window.cpp (+1/-1)
plugins/water/src/water.cpp (+7/-0)
plugins/water/src/water.h (+1/-0)
summary: |
- [GLES] gles2 benchmark results are significantly lower than trunk + [GLES] Benchmark results (with FBO enabled) in compiz 0.9.8.0 are much + lower than compiz 0.9.7 |
description: | updated |
Changed in compiz: | |
assignee: | Daniel van Vugt (vanvugt) → nobody |
milestone: | 0.9.8.0 → 0.9.8.4 |
description: | updated |
tags: | added: performance |
description: | updated |
Changed in compiz: | |
assignee: | nobody → Daniel van Vugt (vanvugt) |
summary: |
- [GLES] Benchmark results (with FBO enabled) in compiz 0.9.8.0 are much - lower than compiz 0.9.7 + [GLES] Benchmark results (with FBO+VBO) in compiz 0.9.8.0 are much lower + than compiz 0.9.7 |
Changed in compiz: | |
assignee: | Daniel van Vugt (vanvugt) → Sam Spilsbury (smspillaz) |
description: | updated |
description: | updated |
Changed in compiz: | |
milestone: | 0.9.8.4 → 0.9.9.0 |
description: | updated |
description: | updated |
description: | updated |
Changed in compiz: | |
status: | Confirmed → Triaged |
Changed in compiz: | |
milestone: | 0.9.9.0 → 0.9.9.2 |
Changed in compiz: | |
milestone: | 0.9.9.2 → 0.9.10.0 |
status: | Triaged → In Progress |
Changed in compiz: | |
milestone: | 0.9.10.0 → 0.9.11.0 |
Changed in compiz: | |
status: | Fix Committed → Fix Released |
It appears this is two separate issues:
1. glmark and glxgears report 80-96% lower frame rates. This is fixed if I disable FBO support. Unfortunately that doesn't fix #2...
2. Desktop feels much more sluggish with gles2 than trunk.