2014-05-23 08:11:02 +00:00
<?xml version="1.0" encoding="UTF-8"?>
<ui version="4.0">
<class>CompositingForm</class>
<widget class="QWidget" name="CompositingForm">
<property name="geometry">
<rect>
<x>0</x>
<y>0</y>
2016-08-26 06:56:42 +00:00
<width>462</width>
<height>377</height>
2014-05-23 08:11:02 +00:00
</rect>
</property>
<layout class="QFormLayout" name="formLayout">
<property name="fieldGrowthPolicy">
<enum>QFormLayout::AllNonFixedFieldsGrow</enum>
</property>
2016-07-19 15:03:58 +00:00
<item row="0" column="0" colspan="2">
<layout class="QVBoxLayout" name="verticalLayout_4">
<item>
<widget class="KMessageWidget" name="glCrashedWarning">
<property name="visible">
<bool>false</bool>
</property>
2016-08-26 06:56:42 +00:00
<property name="text" stdset="0">
2016-07-19 15:03:58 +00:00
<string>OpenGL compositing (the default) has crashed KWin in the past.
This was most likely due to a driver bug.
If you think that you have meanwhile upgraded to a stable driver,
you can reset this protection but be aware that this might result in an immediate crash!
Alternatively, you might want to use the XRender backend instead.</string>
</property>
2016-08-26 06:56:42 +00:00
<property name="wordWrap" stdset="0">
2016-07-19 15:03:58 +00:00
<bool>true</bool>
</property>
</widget>
</item>
<item>
<widget class="KMessageWidget" name="scaleWarning">
<property name="visible">
<bool>false</bool>
</property>
2016-08-26 06:56:42 +00:00
<property name="text" stdset="0">
2016-07-19 15:03:58 +00:00
<string>Scale method "Accurate" is not supported by all hardware and can cause performance regressions and rendering artifacts.</string>
</property>
2016-08-26 06:56:42 +00:00
<property name="wordWrap" stdset="0">
2016-07-19 15:03:58 +00:00
<bool>true</bool>
</property>
</widget>
</item>
<item>
<widget class="KMessageWidget" name="tearingWarning">
<property name="visible">
<bool>false</bool>
</property>
2016-08-26 06:56:42 +00:00
<property name="wordWrap" stdset="0">
2016-07-19 15:03:58 +00:00
<bool>true</bool>
</property>
</widget>
</item>
<item>
<widget class="KMessageWidget" name="windowThumbnailWarning">
<property name="visible">
<bool>false</bool>
</property>
2016-08-26 06:56:42 +00:00
<property name="text" stdset="0">
2016-07-19 15:03:58 +00:00
<string>Keeping the window thumbnail always interferes with the minimized state of windows. This can result in windows not suspending their work when minimized.</string>
</property>
2016-08-26 06:56:42 +00:00
<property name="wordWrap" stdset="0">
2016-07-19 15:03:58 +00:00
<bool>true</bool>
</property>
</widget>
</item>
</layout>
</item>
2014-06-03 09:39:10 +00:00
<item row="1" column="0" colspan="2">
2014-05-23 08:11:02 +00:00
<widget class="QCheckBox" name="compositingEnabled">
<property name="text">
<string>Enable compositor on startup</string>
</property>
</widget>
</item>
2014-06-03 09:39:10 +00:00
<item row="2" column="0">
2014-05-23 08:11:02 +00:00
<widget class="QLabel" name="label">
<property name="text">
<string>Animation speed:</string>
</property>
</widget>
</item>
2014-06-03 09:39:10 +00:00
<item row="2" column="1">
2014-05-23 08:11:02 +00:00
<layout class="QVBoxLayout" name="verticalLayout_3">
<item>
<widget class="QSlider" name="animationSpeed">
<property name="maximum">
<number>6</number>
</property>
<property name="orientation">
<enum>Qt::Horizontal</enum>
</property>
<property name="tickPosition">
<enum>QSlider::TicksBelow</enum>
</property>
<property name="tickInterval">
<number>1</number>
</property>
</widget>
</item>
<item>
<layout class="QHBoxLayout" name="horizontalLayout">
<item>
<widget class="QLabel" name="label_3">
<property name="text">
<string>Instant</string>
</property>
</widget>
</item>
<item>
<spacer name="horizontalSpacer">
<property name="orientation">
<enum>Qt::Horizontal</enum>
</property>
<property name="sizeHint" stdset="0">
<size>
<width>40</width>
<height>20</height>
</size>
</property>
</spacer>
</item>
<item>
<widget class="QLabel" name="label_4">
<property name="text">
<string>Very slow</string>
</property>
</widget>
</item>
</layout>
</item>
</layout>
</item>
2014-06-03 09:39:10 +00:00
<item row="4" column="0">
2014-05-23 08:11:02 +00:00
<widget class="QLabel" name="glScaleFilterLabel">
<property name="text">
<string>Scale method:</string>
</property>
</widget>
</item>
2014-06-03 09:39:10 +00:00
<item row="4" column="1">
2014-05-23 08:11:02 +00:00
<widget class="QComboBox" name="glScaleFilter">
<item>
<property name="text">
<string>Crisp</string>
</property>
</item>
<item>
<property name="text">
<string>Smooth</string>
</property>
</item>
<item>
<property name="text">
<string>Accurate</string>
</property>
</item>
</widget>
</item>
2014-06-03 09:39:10 +00:00
<item row="5" column="0">
2014-05-23 08:11:02 +00:00
<widget class="QLabel" name="xrScaleFilterLabel">
<property name="text">
<string>Scale method:</string>
</property>
</widget>
</item>
2014-06-03 09:39:10 +00:00
<item row="5" column="1">
2014-05-23 08:11:02 +00:00
<widget class="QComboBox" name="xrScaleFilter">
<item>
<property name="text">
<string>Crisp</string>
</property>
</item>
<item>
<property name="text">
<string>Smooth (slower)</string>
</property>
</item>
</widget>
</item>
2014-06-03 09:39:10 +00:00
<item row="6" column="0" colspan="2">
2014-05-23 08:11:02 +00:00
<widget class="Line" name="line">
<property name="orientation">
<enum>Qt::Horizontal</enum>
</property>
</widget>
</item>
2014-06-03 09:39:10 +00:00
<item row="7" column="0">
2014-05-23 08:11:02 +00:00
<widget class="QLabel" name="label_2">
<property name="text">
<string>Rendering backend:</string>
</property>
</widget>
</item>
2014-06-03 09:39:10 +00:00
<item row="7" column="1">
2014-05-23 08:11:02 +00:00
<widget class="QComboBox" name="type"/>
</item>
2016-07-19 15:03:58 +00:00
<item row="8" column="0" colspan="2">
<widget class="Line" name="line_2">
<property name="orientation">
<enum>Qt::Horizontal</enum>
2014-05-23 08:11:02 +00:00
</property>
</widget>
</item>
2016-07-19 15:03:58 +00:00
<item row="9" column="0">
2014-05-23 08:11:02 +00:00
<widget class="QLabel" name="label_5">
<property name="text">
<string>Tearing prevention ("vsync"):</string>
</property>
</widget>
</item>
2016-07-19 15:03:58 +00:00
<item row="9" column="1">
2014-05-23 08:11:02 +00:00
<widget class="QComboBox" name="tearingPrevention">
<item>
<property name="text">
<string>Never</string>
</property>
</item>
<item>
<property name="text">
<string>Automatic</string>
</property>
</item>
<item>
<property name="text">
<string>Only when cheap</string>
</property>
</item>
<item>
<property name="text">
<string>Full screen repaints</string>
</property>
</item>
<item>
<property name="text">
<string>Re-use screen content</string>
</property>
</item>
</widget>
</item>
2016-07-19 15:03:58 +00:00
<item row="10" column="0">
2014-05-23 08:11:02 +00:00
<widget class="QLabel" name="label_6">
<property name="text">
<string>Keep window thumbnails:</string>
</property>
</widget>
</item>
2016-07-19 15:03:58 +00:00
<item row="10" column="1">
2014-05-23 08:11:02 +00:00
<widget class="QComboBox" name="windowThumbnail">
<item>
<property name="text">
2015-02-04 13:03:50 +00:00
<string>Never</string>
2014-05-23 08:11:02 +00:00
</property>
</item>
<item>
<property name="text">
<string>Only for Shown Windows</string>
</property>
</item>
<item>
<property name="text">
2015-02-04 13:03:50 +00:00
<string>Always</string>
2014-05-23 08:11:02 +00:00
</property>
</item>
</widget>
</item>
2016-07-19 15:03:58 +00:00
<item row="12" column="0">
2014-05-23 08:11:02 +00:00
<widget class="QLabel" name="label_9">
<property name="text">
<string>Experimental:</string>
</property>
</widget>
</item>
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-07-15 09:06:31 +00:00
<item row="12" column="1">
2014-05-23 08:11:02 +00:00
<widget class="QCheckBox" name="colorCorrection">
<property name="text">
<string>Enable color correction</string>
</property>
</widget>
</item>
2016-08-26 06:56:42 +00:00
<item row="13" column="1">
<widget class="QCheckBox" name="windowsBlockCompositing">
<property name="toolTip">
<string>Applications can set a hint to block compositing when the window is open.
This brings performance improvements for e.g. games.
The setting can be overruled by window-specific rules.</string>
</property>
<property name="text">
<string>Allow applications to block compositing</string>
</property>
</widget>
</item>
2014-05-23 08:11:02 +00:00
</layout>
</widget>
2014-06-03 09:39:10 +00:00
<customwidgets>
<customwidget>
<class>KMessageWidget</class>
<extends>QFrame</extends>
2016-07-19 15:03:58 +00:00
<header>kmessagewidget.h</header>
2014-06-03 09:39:10 +00:00
<container>1</container>
</customwidget>
</customwidgets>
2014-05-23 08:11:02 +00:00
<resources/>
<connections/>
</ui>