What is the difference between OpenGl and XRender in KDE Desktop Effects?

In KDE environment when you go to Desktop Effects and in the Advanced tab there is an option named "Compositing type" which can be set to OpenGl or XRenderer.

  1. What is the difference between these two options?

  2. What's the use case of each option?


OpenGL and XRender are both drawing APIs that allow for applications of certain geometrical transformations while doing so.

OpenGL is targeted at drawing operations to be executed by a dedicated graphics processing unit (GPU) and provides many features that make generating a 3D-looking image very easy (depth buffer, depth testing, 4×4 homogenous transformation matrices). But you can do 2D looking graphics as well with OpenGL.

XRender is an extension to the X11, to support methods of rendering (antialiasing, alpha blending) that are not possible to do with the core X11 drawing functions. The XRender-API is optimized for 2D looking graphics, though (no depth buffer/test, 3×3 transformation matrices).

Note that XRender is not perfectly orthogonal to OpenGL. Epecially if you need antialiasing in OpenGL you have to use a few functions from XRender to enable it.

What's the use case of each option?

The option of XRender is there to support systems for which there is no proper OpenGL support (lack of stable drivers), but acceptable support for XRender operations. Also XRender is a bit easier to setup (from a programmers point of view) than OpenGL.

In general OpenGL is more flexible than XRender from a programmers perspective. If you're asking which of each you should choose: Start with OpenGL and if everything works acceptable stick with it. The XRender option is a fallback if OpenGL doesn't work properly (however since nowadays in the drivers XRender shares a large part with OpenGL, or is actually implemented using OpenGL it makes no practical difference any more).

Need Your Help

Concatenate multiple cell arrays using for loop?

arrays matlab concatenation cell-array

I have a cell array containing 750 "documents" (750 arrays of words within the single cell array). I am trying to concatenate all of the words to make a single array.

Unable to cast DTE, project or solution to VCProject and VCCodeModel

c# visual-studio-2010 add-in envdte

I am trying to get some information about c+= programs, through code. I have had some success with EnvDTE, now I need to use VCProject and VCCodeModel and I am running into casting problems (hope t...