Commit Graph

33 Commits (e8e6e31a876a0ef1b20d0d2469de9759ef6ba02a)

Author SHA1 Message Date
Martin Gräßlin e8e6e31a87 [kcmkwin/compositing] Hide config options which don't make sense if Compositing is required
Summary:
On Wayland compositing is required. It doesn't make any sense to offer
the user to disable the compositor or to allow windows to block
compositing.

The Compositor DBus interface gains a new property whether the platform
requires compositing. This is queried by the compositing kcm and based
on that the two mentioned options get hidden and not stored to config
file.

Test Plan: Opened the KCM on Wayland

Reviewers: #kwin, #plasma_on_wayland

Subscribers: plasma-devel, kwin

Tags: #plasma_on_wayland, #kwin

Differential Revision: https://phabricator.kde.org/D2586
2016-09-13 15:47:42 +02:00
Martin Gräßlin 853020336f Introduce a config option whether applications are allowed to block compositing
Summary:
From feedback we got it seems that not all users agree to games and
other applications blocking compositing. Some users prefer to have
compositing always on even if this gives a small performance penelity.

This change introduces a dedicated config option to specify whether games
are allowed to block compositing. By default this option is enabled.

The setting can be overwritten with a window specific rule. So usecases
like all windows except this very specific one are supported.

In the user interface the config option is shown where previously the
unredirect fullscreen option was shown.

Test Plan:
Run a game which should block compositing, verified it blocks.
Changed the setting, run the game again, verified it doesn't block. And
once more for with allowing to block.

Reviewers: #kwin, #plasma_on_wayland, #vdg

Subscribers: plasma-devel, kwin

Tags: #plasma_on_wayland, #kwin

Differential Revision: https://phabricator.kde.org/D2584
2016-09-13 15:47:05 +02:00
Martin Gräßlin 996ee34e14 Remove the unredirect fullscreen windows functionality
Summary:
Rational: unredirect fullscreen windows is a weird beast. It's intended
to make fullscreen windows "faster" by not compositing that screen. But
that doesn't really work as KWin jumps out of that condition pretty
quickly. E.g. whenever a tooltip window is shown. KWin itself has a
better functionality by supporting to block compositing completely.
The complete code was full of hacks around it to try to ensure that
things don't break.

Overall unredirect fullscreen has always been the odd one. We had it
because a compositor needs to have it, but it never got truly integrated.
E.g. effects don't interact with it properly so that some things randomly
work, others don't. Will it trigger the screenedge, probably yes, but
will it show the highlight: properly no.

By removing the functionality we finally acknowledge that this mode is
not maintained and has not been maintained for years and that we do not
intend to support it better in future. Over the years we tried to make
it more and more hidden: it's disabled for Intel GPUs, because it used
to crash KWin. It's marked as an "expert" option, etc.

It's clearly something we tried to hide from the user that it exists.

For Wayland the whole unredirect infrastructure doesn't make sense
either. There is no such thing as "unredirecting". We might make use
of passing buffers directly to the underlying stack, but that will be
done automatically when we know it can be done, not by some magic is
this a window of specific size.

Test Plan:
Compiles, cannot really test as I am an Intel user who never
had that working.

Reviewers: #kwin, #plasma, #vdg

Subscribers: kwin

Tags: #kwin

Differential Revision: https://phabricator.kde.org/D2180
2016-08-04 14:48:35 +02:00
Martin Gräßlin 58668e52a0 [kcmkwin/compositing] Show warning message when selecting "dangerous" options
The idea is to warn the user that changing the settings might break
the setup when we know it could be dangerous. The following cases are
considered:
* Scale filter Accurate
* Tearing prevention
* keep window thumbnail always
* EGL if EGL and GLX are available
* unredirect fullscreen not working on all hardware

In addition the OpenGL is Unsafe warning is turned int a KMessageWidget
which is also used for all the other warnings.

REVIEW: 118494
2014-06-16 09:04:33 +02:00
Martin Gräßlin b259dda336 [kcmkwin/compositing] Carry the changed argument in the changed signals 2014-06-02 14:58:00 +02:00
Martin Gräßlin 61c631c94e [kwincompositing-kcm] Add a config option for the OpenGL Platform Interface
A small model is added which holds the available platform interfaces read
from KWin through DBus.

REVIEW: 117699
2014-05-13 09:23:03 +02:00
Martin Gräßlin b92f4a6991 [kwincompositing-kcm] Fix the reinit signal invocation
REVIEW: 117700
2014-04-25 10:04:04 +02:00
Martin Gräßlin ceecc5be27 [kwincompositing] Integrate the new kcmkwin subdirectory into build tree
* root CMakeLists.txt finds Declarative and Qt5Multimedia (Runtime)
* kwincompositing CMakeLists.txt is cleaned up to not be a project
2014-04-03 07:23:17 +02:00
Martin Gräßlin 05db7b9f7c Use xml interfaces to interact with KWin's DBus interfaces
It's a little bit more type safe.

REVIEW: 116649
2014-04-03 07:23:16 +02:00
Martin Gräßlin edc399a444 Drop OpenGL 1
KWin doesn't support OpenGL 1 any more so we should not allow the
user to switch to it.

REVIEW: 116636
2014-04-03 07:23:16 +02:00
Hrvoje Senjan e3a83463a1 Fix includes...
...and thus, build.
Jenkins will still fail due to:
"set(CMAKE_CXX_FLAGS "${Qt5Widgets_EXECUTABLE_COMPILE_FLAGS}")"

REVIEW: 114902
2014-04-03 07:23:15 +02:00
Mathieu Tarral be506dee30 This patch adds a checkbox to enable/disable effects on startup
REVIEW: 114046
2014-04-03 07:23:15 +02:00
Martin Gräßlin 6006a91e8a Invoke the reinit Compositor signal when the advanced options changed
Therefore we track whether the options got changed and if they did
we emit the reinit signal once the configuration is saved.
2014-04-03 07:23:15 +02:00
Martin Gräßlin 450888df50 Fix connection to KWin through DBus
Not 100 % perfect yet as KWin needs to have the compositor connect
to the signals.
2014-04-03 07:23:15 +02:00
Martin Gräßlin f19acce59d Implement the KCModule::defaults 2014-04-03 07:23:15 +02:00
Martin Gräßlin 1dd1c8e51d Add the compositingType as another property to Compositing
Methods added to the Model to map from row index to the backend
identifier and vice versa. That way the Compositing object can do
all the saving and loading.
2014-04-03 07:23:15 +02:00
Martin Gräßlin 3a8a0d73ea Save complete state in Compositing QObject
* all properties extended to be writable and emit change signals
* contains load from and save to config functionality
* Compositing object in qml view is connected to the values of the
  components. So changes are directly mapped from UI to business logic
2014-04-03 07:23:15 +02:00
Martin Gräßlin bfab98839c Fix typo 2014-04-03 07:23:15 +02:00
Martin Gräßlin dd23f40c81 Clean up CMakeLists.txt
Find only required modules and not everything kde-workspace used to find.
Also properly set the target link targets.
2014-04-03 07:23:14 +02:00
Antonis Tsiapaliokas bd3219b5a7 Add Color Correction support 2014-04-03 07:23:14 +02:00
Antonis Tsiapaliokas 748d2d327f Add glSwapStrategy support 2014-04-03 07:23:14 +02:00
Antonis Tsiapaliokas 5448c7ce36 We are now able to suspend desktop effects for fullscreen windows 2014-04-03 07:23:14 +02:00
Antonis Tsiapaliokas c79894945c Add glScaleFilter and xrFilterScale support 2014-04-03 07:23:14 +02:00
Antonis Tsiapaliokas e1308f8b40 Add Window Thumbnail support 2014-04-03 07:23:14 +02:00
Antonis Tsiapaliokas d33c2afb81 Add animation speed Slider 2014-04-03 07:23:14 +02:00
Antonis Tsiapaliokas f4e412f244 Add missing i18n 2014-04-03 07:23:14 +02:00
Antonis Tsiapaliokas 14b66445e3 should be const 2014-04-03 07:23:14 +02:00
Antonis Tsiapaliokas 842bacab23 Fix typo 2014-04-03 07:23:14 +02:00
Antonis Tsiapaliokas 67144780bd Create a new QAbstractItemModel for our CompoBox.
In the feature we will need to hanlde some Wayland stuff
so we need our model to be smarter.

Also remove some left overs from the graphics system
2014-04-03 07:23:13 +02:00
Antonis Tsiapaliokas c0a188b3f2 Remove Graphics System.
Graphics System is deprecated on Qt5 and it has been removed from KWin.
2014-04-03 07:23:13 +02:00
Antonis Tsiapaliokas 517e248c1c Fix the coding style 2014-04-03 07:23:13 +02:00
Antonis Tsiapaliokas c32758c458 Add ComboBox for Compositing Type and for Graphics System 2014-04-03 07:23:13 +02:00
Antonis Tsiapaliokas 16a066db78 Check if OpenGLisBroken 2014-04-03 07:23:13 +02:00