996ee34e14
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
310 lines
8.3 KiB
XML
310 lines
8.3 KiB
XML
<?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>
|
|
<width>481</width>
|
|
<height>349</height>
|
|
</rect>
|
|
</property>
|
|
<layout class="QFormLayout" name="formLayout">
|
|
<property name="fieldGrowthPolicy">
|
|
<enum>QFormLayout::AllNonFixedFieldsGrow</enum>
|
|
</property>
|
|
<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>
|
|
<property name="text">
|
|
<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>
|
|
<property name="wordWrap">
|
|
<bool>true</bool>
|
|
</property>
|
|
<property name="messageType">
|
|
<enum>KMessageWidget::Warning</enum>
|
|
</property>
|
|
</widget>
|
|
</item>
|
|
<item>
|
|
<widget class="KMessageWidget" name="scaleWarning">
|
|
<property name="visible">
|
|
<bool>false</bool>
|
|
</property>
|
|
<property name="text">
|
|
<string>Scale method "Accurate" is not supported by all hardware and can cause performance regressions and rendering artifacts.</string>
|
|
</property>
|
|
<property name="wordWrap">
|
|
<bool>true</bool>
|
|
</property>
|
|
<property name="messageType">
|
|
<enum>KMessageWidget::Warning</enum>
|
|
</property>
|
|
</widget>
|
|
</item>
|
|
<item>
|
|
<widget class="KMessageWidget" name="tearingWarning">
|
|
<property name="visible">
|
|
<bool>false</bool>
|
|
</property>
|
|
<property name="wordWrap">
|
|
<bool>true</bool>
|
|
</property>
|
|
<property name="messageType">
|
|
<enum>KMessageWidget::Warning</enum>
|
|
</property>
|
|
</widget>
|
|
</item>
|
|
<item>
|
|
<widget class="KMessageWidget" name="windowThumbnailWarning">
|
|
<property name="visible">
|
|
<bool>false</bool>
|
|
</property>
|
|
<property name="text">
|
|
<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>
|
|
<property name="wordWrap">
|
|
<bool>true</bool>
|
|
</property>
|
|
<property name="messageType">
|
|
<enum>KMessageWidget::Warning</enum>
|
|
</property>
|
|
</widget>
|
|
</item>
|
|
</layout>
|
|
</item>
|
|
<item row="1" column="0" colspan="2">
|
|
<widget class="QCheckBox" name="compositingEnabled">
|
|
<property name="text">
|
|
<string>Enable compositor on startup</string>
|
|
</property>
|
|
</widget>
|
|
</item>
|
|
<item row="2" column="0">
|
|
<widget class="QLabel" name="label">
|
|
<property name="text">
|
|
<string>Animation speed:</string>
|
|
</property>
|
|
</widget>
|
|
</item>
|
|
<item row="2" column="1">
|
|
<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>
|
|
<item row="4" column="0">
|
|
<widget class="QLabel" name="glScaleFilterLabel">
|
|
<property name="text">
|
|
<string>Scale method:</string>
|
|
</property>
|
|
</widget>
|
|
</item>
|
|
<item row="4" column="1">
|
|
<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>
|
|
<item row="5" column="0">
|
|
<widget class="QLabel" name="xrScaleFilterLabel">
|
|
<property name="text">
|
|
<string>Scale method:</string>
|
|
</property>
|
|
</widget>
|
|
</item>
|
|
<item row="5" column="1">
|
|
<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>
|
|
<item row="6" column="0" colspan="2">
|
|
<widget class="Line" name="line">
|
|
<property name="orientation">
|
|
<enum>Qt::Horizontal</enum>
|
|
</property>
|
|
</widget>
|
|
</item>
|
|
<item row="7" column="0">
|
|
<widget class="QLabel" name="label_2">
|
|
<property name="text">
|
|
<string>Rendering backend:</string>
|
|
</property>
|
|
</widget>
|
|
</item>
|
|
<item row="7" column="1">
|
|
<widget class="QComboBox" name="type"/>
|
|
</item>
|
|
<item row="8" column="0" colspan="2">
|
|
<widget class="Line" name="line_2">
|
|
<property name="orientation">
|
|
<enum>Qt::Horizontal</enum>
|
|
</property>
|
|
</widget>
|
|
</item>
|
|
<item row="9" column="0">
|
|
<widget class="QLabel" name="label_5">
|
|
<property name="text">
|
|
<string>Tearing prevention ("vsync"):</string>
|
|
</property>
|
|
</widget>
|
|
</item>
|
|
<item row="9" column="1">
|
|
<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>
|
|
<item row="10" column="0">
|
|
<widget class="QLabel" name="label_6">
|
|
<property name="text">
|
|
<string>Keep window thumbnails:</string>
|
|
</property>
|
|
</widget>
|
|
</item>
|
|
<item row="10" column="1">
|
|
<widget class="QComboBox" name="windowThumbnail">
|
|
<item>
|
|
<property name="text">
|
|
<string>Never</string>
|
|
</property>
|
|
</item>
|
|
<item>
|
|
<property name="text">
|
|
<string>Only for Shown Windows</string>
|
|
</property>
|
|
</item>
|
|
<item>
|
|
<property name="text">
|
|
<string>Always</string>
|
|
</property>
|
|
</item>
|
|
</widget>
|
|
</item>
|
|
<item row="12" column="0">
|
|
<widget class="QLabel" name="label_9">
|
|
<property name="text">
|
|
<string>Experimental:</string>
|
|
</property>
|
|
</widget>
|
|
</item>
|
|
<item row="12" column="1">
|
|
<widget class="QCheckBox" name="colorCorrection">
|
|
<property name="text">
|
|
<string>Enable color correction</string>
|
|
</property>
|
|
</widget>
|
|
</item>
|
|
</layout>
|
|
</widget>
|
|
<customwidgets>
|
|
<customwidget>
|
|
<class>KMessageWidget</class>
|
|
<extends>QFrame</extends>
|
|
<header>kmessagewidget.h</header>
|
|
<container>1</container>
|
|
</customwidget>
|
|
</customwidgets>
|
|
<resources/>
|
|
<connections/>
|
|
</ui>
|