oxygenexceptionlistwidget: better check index validity in "edit" method. Also update buttons status after removing items, since
apparently selectionChanged signal is not sent by Qt.
CCBUG: 309388
oxygenexceptionlistwidget: better check index validity in "edit" method. Also update buttons status after removing items, since
apparently selectionChanged signal is not sent by Qt.
CCBUG: 309388
It appears that we're accidentally choosing an MSAA config with the
Intel driver in Mesa 9.0. So change the algorithm to take the values
of GLX_SAMPLES and GLX_SAMPLE_BUFFERS into account.
Found by Kenneth Graunke.
According to Pierre-Loup Griffais (Plagman on IRC) this is causing
choppy VDPAU video playback when compositing is enabled.
Removing these calls doesn't seem to cause any regressions, and the
commit that added them doesn't give a reason. So let's just get rid
of them for now.
(cherry picked from commit 20e6349843d9bb838673a301330d7dc5d08401a5)
Boxswitch is activated as tabbox, possibly due to a downstream issue
This results in multiple effects being assigned to the tabbox and no
GUI way for the user to fix this.
Since the BoxSwitch effects nowadays only exists as sidearm for
coverswitch, the tabbox setting is now hardcoded and disabled in the
effect, making it completely impossible to accidentally use it as tabbox.
BUG: 303387
REVIEW: 106695
FIXED-IN: 4.9.3
Boxswitch is activated as tabbox, possibly due to a downstream issue
This results in multiple effects being assigned to the tabbox and no
GUI way for the user to fix this.
Since the BoxSwitch effects nowadays only exists as sidearm for
coverswitch, the tabbox setting is now hardcoded and disabled in the
effect, making it completely impossible to accidentally use it as tabbox.
BUG: 303387
REVIEW: 106695
FIXED-IN: 4.9.3
Adjustment to reality. KWin has had a dependency on Mesa 8.0 for quite
some time given that it is what basically all distributions ship.
It is better to clearly state what is required. For KWin Mesa 8.0 is a
more reliable dependency as all DRI drivers which do not support DRI2
have been removed.
Packagers have been informed about this intended change some weeks ago.
REVIEW: 106799
During detecting the OpenGL capabilities also a recommended compositor
can be set. This recommendation is honoured by the OpenGL based
compositors. That is the SceneOpenGL2 requires a recommendation for at
least OpenGL2 and the SceneOpenGL1 requires at least a recommendation for
OpenGL1. If the driver recommends XRender compositing the SceneOpenGL
performs the existing fallback to XRender.
With this recommendation the hacks in the Scene are removed, e.g. it is
no longer checked whether the driver is software emulation as that is
provided through the recommendation.
To overrule the recommendation the environment variable KWIN_COMPOSE is
extended by the values O1 and O2 to enforce either OpenGL 1 or OpenGL 2.
This overwrites all other checks. As a side-effect this allows now to run
KWin on the llvmpipe:
LIBGL_ALWAYS_SOFTWARE=1 KWIN_COMPOSE=O2 kwin --replace &
But not that I would recommend to use it :-)
REVIEW: 106741
The logic has already ensured that the ARBBlurShader can only be used
when using the OpenGL1 compositor, the OpenGL 2 compositor needs to use
the GLSLBlurShader.
This change moves the complete ARBBlurShader into a KWIN_HAVE_OPENGL_1
ifdef section.
As a side-effect the ::create method can now return a NULL pointer which
makes more sense then returning an ARBBlurShader in case that the
GLSLShader is not supported.
REVIEW: 106738
If the build option is enabled KWIN_HAVE_OPENGL_1 is passed as a compile
flag when build against OpenGL.
This compile flag is meant to replace the KWIN_HAVE_OPENGLES. So far code
has been ifdefed for special behavior of OpenGL ES 2.0 and to remove
fixed functionality calls which are not available in OpenGL ES 2.0.
With this build flag the fixed functionality calls which are only used in
the OpenGL1 Compositor can be removed and keeping the KWIN_HAVE_OPENGLES
for the real differences between OpenGL 2.x and OpenGL ES 2.0.
E.g. a call like glColor4f should be in an
glColor4f(1.0, 1.0, 1.0, 1.0);
while a call like glPolygonMode should be in an
glPolygonMode(GL_FRONT_AND_BACK, GL_LINE);
Building for OpenGL ES 2.0 of course implies that KWIN_HAVE_OPENGL_1 is
not defined.
Given that the Catalyst driver is now supporting direct rendering and by
that can use the OpenGL 2 code path we do no longer need to force
disable the Blur effect and Lanczos filters which used to crash in the
ARB shader path.
The ARB shader path - which can only be used in OpenGL 1 - is kept
disabled for Catalyst.
CCBUG: 270818
CCBUG: 286795
REVIEW: 106798
VMware uses a Gallium driver which means that OpenGL based compositing
works out of the box without any adjustments to GLPlatform.
Just adding recognizing code for the SVGA3D driver.
REVIEW: 106826
OpenGL is properly working if there is a direct rendering context.
If LIBGL_ALWAYS_INDIRECT is set VirtualBox falls back to Mesa's software
rasterizer. So in order to get OpenGL the driver is now whitelisted in
the opengltest.
GLPlatform is extended to recognize the VirtualBox driver and has new
methods to report whether it is a virtual machine and VirtualBox. The
detection is rather limited as we don't get access to the underlying
hardware, so we do not know whether the features are really supported.
We need to trust the driver here in announcing the right extensions.
The driver does not provide glxQueryDrawable although it is part of
GLX 1.3. A hack is added in the glxbackend to set the function pointer to
NULL. This can unfortunately not be done in glxResolveFunctions() as
QueryDrawable seems not to be provided by an extension (at least not
listed in the OpenGL registry) and getProcAddress resolves a function but
it only prints an OpenGL Warning to stderr.
As a note: the driver reports that it is using XSHM for
GLX_EXT_texture_from_pixmap.
REVIEW: 106821
When turning off the compositor do not release the compositor selection
directly but delay it through a timer. The idea is that the internal
change when e.g. restarting the compositor or switching from XRender to
OpenGL should not be visible to the outside world.
This hopefully makes restarting the compositor more robust in Plasma due
to the SelectionWatcher sometimes reporting incorrect results.
When restarting KWin the change does not matter as the selection gets
force claimed by the new instance anyway.
CCBUG: 179042
REVIEW: 106844
Plastik has been removed and the new Aurorae has the same requirement as
Oxygen. This fallback was anyway useless given that KWin nowadays uses
raster paint engine by default and hardly anything would work with such a
small QPixmap::defaultDepth().
REVIEW: 106613
Disable animations till the decoration is completel loaded. This
ensures that the buttons do not flicker because of the animation from
black to their respective color.
A component has the advantage that the width property can depend from
other properties. This does not work with the previous on the fly
construction as the width does not update when the referenced property
changes.