853020336f
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
310 lines
8.5 KiB
XML
310 lines
8.5 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>462</width>
|
|
<height>377</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" stdset="0">
|
|
<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" stdset="0">
|
|
<bool>true</bool>
|
|
</property>
|
|
</widget>
|
|
</item>
|
|
<item>
|
|
<widget class="KMessageWidget" name="scaleWarning">
|
|
<property name="visible">
|
|
<bool>false</bool>
|
|
</property>
|
|
<property name="text" stdset="0">
|
|
<string>Scale method "Accurate" is not supported by all hardware and can cause performance regressions and rendering artifacts.</string>
|
|
</property>
|
|
<property name="wordWrap" stdset="0">
|
|
<bool>true</bool>
|
|
</property>
|
|
</widget>
|
|
</item>
|
|
<item>
|
|
<widget class="KMessageWidget" name="tearingWarning">
|
|
<property name="visible">
|
|
<bool>false</bool>
|
|
</property>
|
|
<property name="wordWrap" stdset="0">
|
|
<bool>true</bool>
|
|
</property>
|
|
</widget>
|
|
</item>
|
|
<item>
|
|
<widget class="KMessageWidget" name="windowThumbnailWarning">
|
|
<property name="visible">
|
|
<bool>false</bool>
|
|
</property>
|
|
<property name="text" stdset="0">
|
|
<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" stdset="0">
|
|
<bool>true</bool>
|
|
</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>
|
|
<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>
|
|
</layout>
|
|
</widget>
|
|
<customwidgets>
|
|
<customwidget>
|
|
<class>KMessageWidget</class>
|
|
<extends>QFrame</extends>
|
|
<header>kmessagewidget.h</header>
|
|
<container>1</container>
|
|
</customwidget>
|
|
</customwidgets>
|
|
<resources/>
|
|
<connections/>
|
|
</ui>
|