[gdebugger] many redundant state changes
Bug #1051290 reported by
Sam Spilsbury
This bug affects 2 people
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
Compiz |
In Progress
|
Medium
|
MC Return | ||
compiz (Ubuntu) |
Fix Released
|
Undecided
|
Unassigned |
Bug Description
We make lots (99%) of redundant state changes which are easily avoidable. These make up about 7% of all calls into openGL. They include:
glDisable (GL_BLEND);
glDisable (GL_STENCIL_TEST);
glDisable (GL_DEPTH_TEST);
glTexEnvi (GL_TEXTURE_MODE, GL_REPLACE, ...)
glStencilMask (0);
Most of these can be tracked and avoided. If we are doing it to work around bugs in plugins those plugins should be fixed. Calling into openGL to set these redundant states involves calling directly into the driver to get context data, which can involve waiting on the driver until its ready to return this structure into the openGL library.
Testing this shows that these observations are 100% correct.
Related branches
tags: | added: gdebugger performance |
Changed in compiz: | |
milestone: | none → 0.9.8.4 |
Changed in compiz: | |
milestone: | 0.9.8.4 → 0.9.9.0 |
Changed in compiz: | |
milestone: | 0.9.9.0 → 0.9.9.2 |
Changed in compiz: | |
milestone: | 0.9.9.2 → 0.9.10.0 |
Changed in compiz: | |
status: | New → Confirmed |
description: | updated |
Changed in compiz: | |
assignee: | nobody → MC Return (mc-return) |
Changed in compiz: | |
status: | Confirmed → In Progress |
Changed in compiz: | |
importance: | Undecided → Medium |
Changed in compiz: | |
milestone: | 0.9.10.0 → 0.9.11.0 |
To post a comment you must log in.
This bug was fixed in the package compiz - 1:0.9.10+ 13.10.20130822- 0ubuntu1
--------------- 10+13.10. 20130822- 0ubuntu1) saucy; urgency=low
compiz (1:0.9.
[ Sam Spilsbury ]
* Bump version to 0.9.10
[ Łukasz 'sil2100' Zemczak ] patches/ unity_support_ test.patch:
* Remove debian/
- Running the support test from compiz has bad side effects, from now
on we run it from Xsession.d
* Automatic snapshot from revision 3644
[ Iven Hsu ] bridge. h private. See: lists.freedeskt op.org/ archives/ compiz/ 2013-March/ 003479. html
* Opacify: Only dim the windows above the active window.(LP:
#1189374). (LP: #1189374)
* KWD: Fix compile errors with KDE 4.11. The KWin developers made
kdecoration
http://
(LP: #1193792). (LP: #1193792)
[ Nikolay Martynov ]
* When static switcher is enabled and has an option to show
application icon turned on the icons are expected to be ~1/3 of a
thumbnail (48px). Instead they are displayed in 512px size and
completely cover everything. This change addresses this issue. See
LP #1173914. (LP: #1173914, #1186426)
[ BryanFRitt ]
* Fixed the non-working Annotate 'Clear' Button. Moved this option's
CCSM position upwards to keep the button shortcuts together. (LP:
#1202907). (LP: #1202907)
[ Mehrdad Afshari ]
* Added "move window to previous monitor" feature to compiz Put
plugin. (LP: #1178581)
[ Hu Kang ] decorator: destroy action menu when any of the (close, include/ core/logmessage .h (LP:
* gtk-window-
min, max) buttons on the title bar is pressed. (LP: #1101648)
* Remove redundant src/logmessage/
#1067246). (LP: #1067246)
[ Steve Langasek ]
* Fix for bug #763148 (with added test cases): when the desktop is
resized, windows should stay on their original workspace. (LP:
#763148)
[ Brandon Schaefer ] ameExtents instead. Now the window will always be
* Unrevert 3728, fix failing tests. Change the behaviour of
undecorating windows. Previously when a window was undecorated, we
would shift it back to an appropriate position according to its
gravity member. That behaviour was problematic because in the
StaticGravity case the window has to just stay in the same place.
But then if you had a window with StaticGravity which then did get a
decoration and later removed it, it would be placed as though it was
decorated and appear to be in the wrong place. The correct behaviour
is to place all windows as though they have decorations, and then
when decorations are removed, to move the window back to the corner
as indicated in its gravity and then expand its size to cover the
obscured regions no longer hidden because the decorations went away.
(LP: #1165343). 1. Completely remove decorOffsetMove and other
related code from decor.cpp. Put the logic to handle the
window->input () - window->border () placement offset inside of
setWindowFr
offset from its original non-decorated position to the new
decorated position, rather than having to guess between
decoration sizes. 2. Make saveGeometry and restoreGeometry work
relative to window->border () a...