[performance] glXSwapIntervalEXT called every frame, which is very slow on Nvidia.
Bug #1051286 reported by
Sam Spilsbury
This bug affects 4 people
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
Compiz |
Fix Released
|
Medium
|
Daniel van Vugt |
Bug Description
glXSwapIntervalEXT is called every frame, when it only needs to be called once when using buffer swaps (eg turned on).
Related branches
lp://qastaging/~compiz-team/compiz/compiz.fix_1051286
Superseded
for merging
into
lp://qastaging/compiz/0.9.9
- Daniel van Vugt: Needs Fixing
- jenkins (community): Needs Fixing (continuous-integration)
- Sam Spilsbury: Pending requested
-
Diff: 1486 lines (+1020/-128)15 files modifiedplugins/opengl/CMakeLists.txt (+3/-0)
plugins/opengl/include/opengl/doublebuffer.h (+10/-1)
plugins/opengl/src/doublebuffer/CMakeLists.txt (+1/-0)
plugins/opengl/src/doublebuffer/src/double-buffer.cpp (+64/-11)
plugins/opengl/src/doublebuffer/tests/test-opengl-double-buffer.cpp (+166/-4)
plugins/opengl/src/privates.h (+24/-10)
plugins/opengl/src/screen.cpp (+105/-102)
plugins/opengl/src/vsyncmethod.h (+61/-0)
plugins/opengl/src/vsyncmethod/CMakeLists.txt (+25/-0)
plugins/opengl/src/vsyncmethod/include/vsync-method-swap-interval.h (+67/-0)
plugins/opengl/src/vsyncmethod/include/vsync-method-wait-video-sync.h (+67/-0)
plugins/opengl/src/vsyncmethod/src/vsync-method-swap-interval.cpp (+100/-0)
plugins/opengl/src/vsyncmethod/src/vsync-method-wait-video-sync.cpp (+87/-0)
plugins/opengl/src/vsyncmethod/tests/CMakeLists.txt (+24/-0)
plugins/opengl/src/vsyncmethod/tests/test-opengl-vsync-methods.cpp (+216/-0)
Superseded
for merging
into
lp://qastaging/compiz/0.9.8
- Sam Spilsbury: Needs Resubmitting
- Daniel van Vugt: Needs Resubmitting
- jenkins (community): Needs Fixing (continuous-integration)
-
Diff: 1477 lines (+1021/-106)15 files modifiedplugins/opengl/CMakeLists.txt (+3/-0)
plugins/opengl/include/opengl/doublebuffer.h (+10/-1)
plugins/opengl/src/doublebuffer/CMakeLists.txt (+1/-0)
plugins/opengl/src/doublebuffer/src/double-buffer.cpp (+64/-11)
plugins/opengl/src/doublebuffer/tests/test-opengl-double-buffer.cpp (+166/-4)
plugins/opengl/src/privates.h (+24/-10)
plugins/opengl/src/screen.cpp (+107/-80)
plugins/opengl/src/vsyncmethod.h (+61/-0)
plugins/opengl/src/vsyncmethod/CMakeLists.txt (+25/-0)
plugins/opengl/src/vsyncmethod/include/vsync-method-swap-interval.h (+67/-0)
plugins/opengl/src/vsyncmethod/include/vsync-method-wait-video-sync.h (+67/-0)
plugins/opengl/src/vsyncmethod/src/vsync-method-swap-interval.cpp (+100/-0)
plugins/opengl/src/vsyncmethod/src/vsync-method-wait-video-sync.cpp (+87/-0)
plugins/opengl/src/vsyncmethod/tests/CMakeLists.txt (+24/-0)
plugins/opengl/src/vsyncmethod/tests/test-opengl-vsync-methods.cpp (+215/-0)
lp://qastaging/~vanvugt/compiz/fastSwapInterval
- Sam Spilsbury: Approve
- jenkins (community): Approve (continuous-integration)
-
Diff: 40 lines (+13/-3)1 file modifiedplugins/opengl/src/screen.cpp (+13/-3)
tags: | added: gdebugger performance |
Changed in compiz: | |
milestone: | none → 0.9.8.4 |
Changed in compiz: | |
status: | New → In Progress |
Changed in compiz: | |
assignee: | nobody → Sam Spilsbury (smspillaz) |
importance: | Undecided → High |
summary: |
- [performance][nvidia] glXSwapIntervalEXT called every frame, when it - only need to be called once + [performance] glXSwapIntervalEXT called every frame, which is very slow + on Nvidia. |
tags: | added: nvidia-is-slow |
Changed in compiz: | |
status: | In Progress → Fix Committed |
Changed in compiz: | |
status: | Fix Committed → Fix Released |
To post a comment you must log in.
I can't reproduce this anymore. I found that the major thing which boosted performance was not letting the driver pick the refresh rate.
Nevertheless, not calling into OpenGL lots is probably a good thing.