GLPlatform can recommend the compositor to use
Review Request #106741 - Created Oct. 5, 2012 and submitted
GLPlatform can recommend the compositor to use During detecting the OpenGL capabilities also a recommended compositor can be set. This recommendation is honoured by the OpenGL based compositors. That is the SceneOpenGL2 requires a recommendation for at least OpenGL2 and the SceneOpenGL1 requires at least a recommendation for OpenGL1. If the driver recommends XRender compositing the SceneOpenGL performs the existing fallback to XRender. With this recommendation the hacks in the Scene are removed, e.g. it is no longer checked whether the driver is software emulation as that is provided through the recommendation. To overrule the recommendation the environment variable KWIN_COMPOSE is extended by the values O1 and O2 to enforce either OpenGL 1 or OpenGL 2. This overwrites all other checks. As a side-effect this allows now to run KWin on the llvmpipe: LIBGL_ALWAYS_SOFTWARE=1 KWIN_COMPOSE=O2 kwin --replace & But not that I would recommend to use it :-)
not really tried the various recommendation as I am lacking hardware, but played with LIBGL_ALWAYS_SOFTWARE and combinations and it behaved always like expected. For the record: I want to extend our platform detection by further "hardware" for 4.10. I want to be able to detect: * GPU of the RaspberryPi * GPU of the Pandaboard * "GPU" of VirtualBox * "GPU" of KVM For the last two an isVirtualMachine() accessor might make sense.
+1 on choosing the default backend at runtime. But it looks to me like there is no way to override the default without editing the environment. IMO the "compositing type" combo in the settings should indicate the default choice, and also be the mechanism for overriding it. That the user has a way to do this is especially important when the default is not based on actual testing. When it comes to GLPlatform we also the problem that no one (including myself) is maintaining it. It is not able to detect the latest graphics cards from AMD, Intel or NVIDIA.