Desktop Effects Performance: Difference between revisions
No edit summary |
No edit summary |
||
Line 1: | Line 1: | ||
== Desktop Effect Performance == | == Desktop Effect Performance == | ||
The performance of Desktop Effects in the KDE Plasma Workspaces is mostly determined by the interaction of the graphics hardware (GPU), it's driver and the Compositor ([[KWin|Kwin]]). The Compositor tries to choose the best available settings for your GPU by querying the driver for what the hardware supports. Sometimes helping '''KWin''' on what the hardware really supports can improve the performance. | The performance of Desktop Effects in the KDE Plasma Workspaces is mostly determined by the interaction of the graphics hardware (GPU), it's driver and the ''Compositor'' ([[KWin|Kwin]]). The Compositor tries to choose the best available settings for your GPU by querying the driver for what the hardware supports. Sometimes helping '''KWin''' on what the hardware really supports can improve the performance. | ||
== Selecting the correct driver == | == Selecting the correct driver == | ||
Line 7: | Line 7: | ||
=== Determining the used driver === | === Determining the used driver === | ||
It is important to have the correct driver installed and used. If no driver or the wrong driver is used the desktop effects fall back to an non-accelerated backend | It is important to have the correct driver installed and used. If no driver or the wrong driver is used the desktop effects fall back to an non-accelerated backend ''(XRender).'' | ||
The information about the used driver is available through [[KInfoCenter|KInfoCenter]]. Click on <menuchoice>Graphical Information -> OpenGL</menuchoice> and study the information provided in the shown module. The relevant information is found in the | The information about the used driver is available through [[KInfoCenter|KInfoCenter]]. Click on <menuchoice>Graphical Information -> OpenGL</menuchoice> and study the information provided in the shown module. The relevant information is found in the ''Driver'' section, in particular ''Vendor'', ''Renderer'' and ''OpenGL/ES version''. The information is provided by the driver and can be difficult to parse. | ||
[[Image:kwin_kinfocenter_opengl.png|250px|thumb|left|OpenGL information in KInfoCenter]] | {|class="vertical-centered" | ||
|[[Image:kwin_kinfocenter_opengl.png|250px|thumb|left|OpenGL information in KInfoCenter]]||If the Renderer says "Software Rasterizer" no driver is installed. For all other drivers please check whether the correct one is used.<br /><br /> | |||
If the | |} | ||
=== Available Drivers === | === Available Drivers === | ||
Line 19: | Line 19: | ||
==== AMD/ATI ==== | ==== AMD/ATI ==== | ||
For AMD/ATI hardware two drivers are available: the proprietary | For AMD/ATI hardware two drivers are available: the proprietary ''fglrx'' or ''Catalyst'' and the free ''Mesa'' drivers (known as ''radeon'', ''r300'', ''r600''). With the fglrx driver not all functionality is available and the performance in general seems to be better with the Mesa drivers. The recommendation is to always use Mesa drivers with desktop effects. If you find the information "Mesa" in the OpenGL/ES version, then you are using the free drivers and you do not have to do anything. | ||
The Mesa drivers exist in an older and newer version. You should make sure to use the newer ones which you can identify by the word | The Mesa drivers exist in an older and newer version. You should make sure to use the newer ones which you can identify by the word "Gallium" in the Renderer string. | ||
==== Intel ==== | ==== Intel ==== | ||
Line 29: | Line 29: | ||
==== NVIDIA ==== | ==== NVIDIA ==== | ||
For NVIDIA hardware two drivers are available: the proprietary NVIDIA driver and the free Mesa drivers (known as | For NVIDIA hardware two drivers are available: the proprietary NVIDIA driver and the free Mesa drivers (known as ''nouveau''). The free drivers are still under heavy development and are not available on all distributions and for all hardware. In general it is recommended to use the proprietary drivers. You are using the proprietary drivers if it says ''NVIDIA'' in the '''OpenGL/ES version''' string. | ||
=== Installing the Driver === | === Installing the Driver === | ||
Line 37: | Line 37: | ||
== OpenGL Version == | == OpenGL Version == | ||
'''KWin''' supports | '''KWin''' supports OpenGL 1.x and OpenGL 2.x. By default '''KWin''' uses features of OpenGL 2 if they are available. OpenGL 2 allows to use more effects, but requires stronger hardware. It is important to know that even if your driver only supports e.g. OpenGL 1.4 it is possible that '''KWin''' uses features of OpenGL 2 which are available through extensions in the driver. | ||
You can find the OpenGL version provided by your driver in the | You can find the OpenGL version provided by your driver in the "OpenGL/ES version" string in [[KInfoCenter|KInfoCenter]] as described above. The version is defined by the first two or three digits, e.g. ''2.1''. | ||
It is not trivial to find out whether '''KWin''' uses | It is not trivial to find out whether '''KWin''' uses OpenGL 1 or 2 as this is completely determined at runtime. The best available test is to use the Invert effect which can be enabled in <menuchoice>Systemsettings -> Desktop Effects -> All Effects tab</menuchoice>. After enabling the screen should be inverted when using the shortcut <keycap>Meta + Ctrl + I</keycap>. If it inverts OpenGL 2 is used, if it does nothing OpenGL 1 is used. | ||
It is possible to force '''KWin''' to use OpenGL 1 through <menuchoice>Systemsettings -> Desktop Effects -> Advanced tab</menuchoice> and unchecking | It is possible to force '''KWin''' to use OpenGL 1 through <menuchoice>Systemsettings -> Desktop Effects -> Advanced tab</menuchoice> and unchecking <menuchoice>Use OpenGL 2 Shaders</menuchoice>. This can improve the performance for older hardware. In general it is completely safe to use OpenGL 2 Shaders if the driver reports a version of 3.x (only available with NVIDIA at the time of this writing). | ||
{{Tip|For modern hardware the OpenGL 2 Shaders yield a better performance than OpenGL 1. Disabling this option is no receipt for best performance.}} | {{Tip|For modern hardware the OpenGL 2 Shaders yield a better performance than OpenGL 1. Disabling this option is no receipt for best performance.}} | ||
Line 58: | Line 58: | ||
The table provides an overview of how the thumbnails are rendered with the different settings. | The table provides an overview of how the thumbnails are rendered with the different settings. | ||
{| | {|class="vertical-centered wikitable"; width="650" | ||
| | ! colspan="2" | Overview of how the thumbnails are rendered with the different settings | ||
|- | |- | ||
! Crisp: | |||
| [[File:kwin_crisp.png|Crisp]] | | [[File:kwin_crisp.png|Crisp]] | ||
|- | |- | ||
! Smooth: | |||
| [[File:kwin_smooth.png|Smooth]] | | [[File:kwin_smooth.png|Smooth]] | ||
|- | |- | ||
! Accurate: | |||
| [[File:kwin_accurate.png|Accurate]] | | [[File:kwin_accurate.png|Accurate]] | ||
|} | |} | ||
Line 79: | Line 79: | ||
Animations take some time and the length of an animations is what makes people think that this is a snappy interface or that it lags. This is a very subjective feeling and the difference between too fast and too slow can be milliseconds. It is impossible to have a perfect value for all users. | Animations take some time and the length of an animations is what makes people think that this is a snappy interface or that it lags. This is a very subjective feeling and the difference between too fast and too slow can be milliseconds. It is impossible to have a perfect value for all users. | ||
The global animation duration level can be changed through <menuchoice>Systemsettings -> Desktop Effects -> General Tab -> Animation speed selection list</menuchoice>. It varies from | The global animation duration level can be changed through <menuchoice>Systemsettings -> Desktop Effects -> General Tab -> Animation speed selection list</menuchoice>. It varies from "Extremely slow" to "Instant" which does not render any animations. By changing from "Normal" to "Fast" many users reported having a more snappy interface. | ||
== Qt Graphics System == | == Qt Graphics System == | ||
Line 85: | Line 85: | ||
Since 4.7 (Released July 2011) the Compositor can use the Qt graphics system ''raster'' instead of ''native'' (X11). This is only relevant for rendering the window decorations and is not related to the compositing backends (OpenGL/XRender). | Since 4.7 (Released July 2011) the Compositor can use the Qt graphics system ''raster'' instead of ''native'' (X11). This is only relevant for rendering the window decorations and is not related to the compositing backends (OpenGL/XRender). | ||
Which graphics system is used depends on the distribution defaults. For the Compositor | Which graphics system is used depends on the distribution defaults. For the Compositor raster is recommended especially if the NVIDIA driver is used. | ||
== Window Decorations == | == Window Decorations == | ||
Some Window Decorations perform animations when a window gets activated. This influences the performance of effects if during an animation the active window changes. The performance impact can be reduced by using the graphics system | Some Window Decorations perform animations when a window gets activated. This influences the performance of effects if during an animation the active window changes. The performance impact can be reduced by using the graphics system "raster" (see above). | ||
The default window decoration | The default window decoration ''Oxygen'' provides an option to disable the animations: <menuchoice>Systemsettings -> Workspaces Appearance -> Window Decorations -> Configure Decoration... -> General tab</menuchoice> Checkbox '''Enable animations'''. Disabling the animations can improve the performance. | ||
All window decorations which can be downloaded through the | All window decorations which can be downloaded through the ''Get New Decorations...'' dialog use such animations, but it is not possible to disable them. If there is an performance impact due to the theme, it is recommended to use a different one. In general the themed decorations are not optimized and provided to look good and not to be fast. | ||
Another area of window decorations which can impact the performance are shadows. Again the default decoration | Another area of window decorations which can impact the performance are shadows. Again the default decoration Oxygen provides a setting to disable them in the same configuration dialog as described above in tab "Shadows" and the themed decorations do not provide an option to disable shadows. | ||
== Blur Effect == | == Blur Effect == | ||
The Blur Effect is one of the most expensive effects provided by the Compositor. By default it gets enabled for all hardware except Intel hardware. The performance impact of the blur effect depends on the number of open and translucent windows. Especially translucent widget styles (e.g. Oxygen Translucent) and translucent window decorations (e.g. Aurorae Themes) have an impact on the performance. If such a theme is used and the performance is bad it is recommended to either change the theme or disable the Blur effect. | The ''Blur Effect'' is one of the most expensive effects provided by the Compositor. By default it gets enabled for all hardware except Intel hardware. The performance impact of the blur effect depends on the number of open and translucent windows. Especially translucent widget styles (e.g. Oxygen Translucent) and translucent window decorations (e.g. Aurorae Themes) have an impact on the performance. If such a theme is used and the performance is bad it is recommended to either change the theme or disable the Blur effect. | ||
The performance of the Blur effect can be adjusted through <menuchoice>Systemsettings -> Desktop Effects -> All Effects tab -> Configuration dialog of Blur effect</menuchoice>. Moving the slider for strength to | The performance of the Blur effect can be adjusted through <menuchoice>Systemsettings -> Desktop Effects -> All Effects tab -> Configuration dialog of Blur effect</menuchoice>. Moving the slider for strength to "Light" requires less resources while moving it towards "Strong" requires more resources. Since 4.8 (release January 2012) the intermediate rendering results can be kept (default) which improves the performance even with translucent themes. | ||
== Advanced Desktop Effects Settings == | == Advanced Desktop Effects Settings == | ||
Line 109: | Line 109: | ||
=== Compositing type === | === Compositing type === | ||
The Compositing type allows | The Compositing type allows choice of the compositing backend, either XRender or OpenGL' By default OpenGL is used which is hardware accelerated. XRender is available even if no OpenGL driver is installed (e.g. virtual machines) and uses mostly the CPU for rendering. Many effects are not available with XRender. | ||
{{Info|If there is no good reason to change, the default OpenGL is the correct choice. If OpenGL is not available there is an automatic fallback to XRender.}} | {{Info|1=If there is no good reason to change, the default OpenGL is the correct choice. If OpenGL is not available there is an automatic fallback to XRender.}} | ||
=== Keep window thumbnails === | === Keep window thumbnails === | ||
Line 125: | Line 125: | ||
=== OpenGL mode === | === OpenGL mode === | ||
{{Warning|The setting is | {{Warning|The setting is obsolete and has been removed in 4.7 (Released July 2011). Any setting except the default "Texture from Pixmap" is likely to break your desktop.}} | ||
=== Enable direct rendering === | === Enable direct rendering === | ||
{{Warning|The setting is | {{Warning|The setting is obsolete and has been removed in 4.8 (Released January 2012).}} | ||
The compositor determines by itself whether direct rendering can and has to be used. Changing this setting will most likely break functionality. | The compositor determines by itself whether direct rendering can and has to be used. Changing this setting will most likely break functionality. | ||
=== Use VSync === | === Use VSync === | ||
VSync allows to synchronize the rendering with the screen. Unless there is good reason to | ''VSync'' allows you to synchronize the rendering with the screen. Unless there is good reason to change, this setting should be enabled. Even if the setting is disabled the Compositor tries to use the frame rate the screen supports and by default a frame rate of 60 Hz is used. | ||
For multiple screens it is important to know that the rendering can only be synchronized with one screen. In case the screens have a different frame rate it might be valid to disable this option and to set a manual frame rate. | For multiple screens it is important to know that the rendering can only be synchronized with one screen. In case the screens have a different frame rate it might be valid to disable this option and to set a manual frame rate. |
Revision as of 10:52, 9 December 2011
Desktop Effect Performance
The performance of Desktop Effects in the KDE Plasma Workspaces is mostly determined by the interaction of the graphics hardware (GPU), it's driver and the Compositor (Kwin). The Compositor tries to choose the best available settings for your GPU by querying the driver for what the hardware supports. Sometimes helping KWin on what the hardware really supports can improve the performance.
Selecting the correct driver
Determining the used driver
It is important to have the correct driver installed and used. If no driver or the wrong driver is used the desktop effects fall back to an non-accelerated backend (XRender).
The information about the used driver is available through KInfoCenter. Click on and study the information provided in the shown module. The relevant information is found in the Driver section, in particular Vendor, Renderer and OpenGL/ES version. The information is provided by the driver and can be difficult to parse.
If the Renderer says "Software Rasterizer" no driver is installed. For all other drivers please check whether the correct one is used. |
Available Drivers
AMD/ATI
For AMD/ATI hardware two drivers are available: the proprietary fglrx or Catalyst and the free Mesa drivers (known as radeon, r300, r600). With the fglrx driver not all functionality is available and the performance in general seems to be better with the Mesa drivers. The recommendation is to always use Mesa drivers with desktop effects. If you find the information "Mesa" in the OpenGL/ES version, then you are using the free drivers and you do not have to do anything.
The Mesa drivers exist in an older and newer version. You should make sure to use the newer ones which you can identify by the word "Gallium" in the Renderer string.
Intel
Intel hardware uses the free Mesa drivers. There are no alternatives available.
NVIDIA
For NVIDIA hardware two drivers are available: the proprietary NVIDIA driver and the free Mesa drivers (known as nouveau). The free drivers are still under heavy development and are not available on all distributions and for all hardware. In general it is recommended to use the proprietary drivers. You are using the proprietary drivers if it says NVIDIA in the OpenGL/ES version string.
Installing the Driver
Installing the driver is specific to the used distribution. Please consult the documentation of your distribution about that matter.
OpenGL Version
KWin supports OpenGL 1.x and OpenGL 2.x. By default KWin uses features of OpenGL 2 if they are available. OpenGL 2 allows to use more effects, but requires stronger hardware. It is important to know that even if your driver only supports e.g. OpenGL 1.4 it is possible that KWin uses features of OpenGL 2 which are available through extensions in the driver.
You can find the OpenGL version provided by your driver in the "OpenGL/ES version" string in KInfoCenter as described above. The version is defined by the first two or three digits, e.g. 2.1.
It is not trivial to find out whether KWin uses OpenGL 1 or 2 as this is completely determined at runtime. The best available test is to use the Invert effect which can be enabled in Meta + Ctrl + I. If it inverts OpenGL 2 is used, if it does nothing OpenGL 1 is used.
. After enabling the screen should be inverted when using the shortcutIt is possible to force KWin to use OpenGL 1 through
and unchecking . This can improve the performance for older hardware. In general it is completely safe to use OpenGL 2 Shaders if the driver reports a version of 3.x (only available with NVIDIA at the time of this writing).
Thumbnail Scaling
The Compositor supports different scaling methods for thumbnails as rendered in the taskbar preview or effects like Present Windows. It is tried to render the thumbnails as accurate as possible which of course requires more resources.
The scaling method can be changed in
. The following settings are available:- Crisp
- Smooth
- Accurate
The table provides an overview of how the thumbnails are rendered with the different settings.
Overview of how the thumbnails are rendered with the different settings | |
---|---|
Crisp: | |
Smooth: | |
Accurate: |
By default Accurate is used. On Intel hardware Accurate is never used and cannot be enabled unless the environment variable KWIN_FORCE_LANCZOS is set to 1.
Switching from Accurate to Smooth can significantly improve the performance of effects like Present Windows.
General Speed of Animations
Animations take some time and the length of an animations is what makes people think that this is a snappy interface or that it lags. This is a very subjective feeling and the difference between too fast and too slow can be milliseconds. It is impossible to have a perfect value for all users.
The global animation duration level can be changed through
. It varies from "Extremely slow" to "Instant" which does not render any animations. By changing from "Normal" to "Fast" many users reported having a more snappy interface.Qt Graphics System
Since 4.7 (Released July 2011) the Compositor can use the Qt graphics system raster instead of native (X11). This is only relevant for rendering the window decorations and is not related to the compositing backends (OpenGL/XRender).
Which graphics system is used depends on the distribution defaults. For the Compositor raster is recommended especially if the NVIDIA driver is used.
Window Decorations
Some Window Decorations perform animations when a window gets activated. This influences the performance of effects if during an animation the active window changes. The performance impact can be reduced by using the graphics system "raster" (see above).
The default window decoration Oxygen provides an option to disable the animations:
Checkbox Enable animations. Disabling the animations can improve the performance.All window decorations which can be downloaded through the Get New Decorations... dialog use such animations, but it is not possible to disable them. If there is an performance impact due to the theme, it is recommended to use a different one. In general the themed decorations are not optimized and provided to look good and not to be fast.
Another area of window decorations which can impact the performance are shadows. Again the default decoration Oxygen provides a setting to disable them in the same configuration dialog as described above in tab "Shadows" and the themed decorations do not provide an option to disable shadows.
Blur Effect
The Blur Effect is one of the most expensive effects provided by the Compositor. By default it gets enabled for all hardware except Intel hardware. The performance impact of the blur effect depends on the number of open and translucent windows. Especially translucent widget styles (e.g. Oxygen Translucent) and translucent window decorations (e.g. Aurorae Themes) have an impact on the performance. If such a theme is used and the performance is bad it is recommended to either change the theme or disable the Blur effect.
The performance of the Blur effect can be adjusted through
. Moving the slider for strength to "Light" requires less resources while moving it towards "Strong" requires more resources. Since 4.8 (release January 2012) the intermediate rendering results can be kept (default) which improves the performance even with translucent themes.Advanced Desktop Effects Settings
The Compositor provides some advanced settings under
. Some of the settings have already been explained. This section focuses on the remaining settings. Changing these settings in general do not improve the performance but make it worse. The Compositor uses the best possible settings.Compositing type
The Compositing type allows choice of the compositing backend, either XRender or OpenGL' By default OpenGL is used which is hardware accelerated. XRender is available even if no OpenGL driver is installed (e.g. virtual machines) and uses mostly the CPU for rendering. Many effects are not available with XRender.
Keep window thumbnails
This has hardly any influence on performance. It is an option to decide how long thumbnails are kept. Best is to not touch this setting.
Suspend desktop effects for fullscreen windows
This setting influences the performance of fullscreen windows such as games. The compositor is suspended as long as there is a fullscreen window. The disadvantage is that it causes flickering when a window appears on top of the fullscreen window (e.g. a context menu) and is too generic. As well on some distributions (e.g. Kubuntu 11.04) the Intel driver causes a crash when closing the fullscreen window.
If the compositor should be disabled while a fullscreen application such as games or video is used it is better to disable compositing either through the shortcut Alt + Shift + F12 or since 4.7 (Released July 2011) through a window specific rule for the window.
OpenGL mode
Enable direct rendering
The compositor determines by itself whether direct rendering can and has to be used. Changing this setting will most likely break functionality.
Use VSync
VSync allows you to synchronize the rendering with the screen. Unless there is good reason to change, this setting should be enabled. Even if the setting is disabled the Compositor tries to use the frame rate the screen supports and by default a frame rate of 60 Hz is used.
For multiple screens it is important to know that the rendering can only be synchronized with one screen. In case the screens have a different frame rate it might be valid to disable this option and to set a manual frame rate.