ThumbnailItem is an exported QQuickItem from Scripting used by third party effects such as Parachute/KWinOverview as well as the tabbox and Plasma Mobile's overview page.
The current implementation is dated. The Item, rather than drawing directly goes through a complex spidery route to tell kwin to paint a window at the same absolute position. This breaks z-index, clipping, syncing, shadereffects and is generally messy.
Now we have use of shared contexts and we have SceneWindow export a frame texture it should be feasible to do it properly without any performance cost.
A POC is available at
- Tabbox seems just as fast and now actually slide in properly!
- We currently lose lanczos and some other visual effects. That is fixable.
- Parachute works...after some modifications. It's not 100% API compatible as they set a property which exists only on QQuickPaintedItem
For now the current scope is the tabbox and some effects, which we need anyway.
But if we can make something super performant, and perform 9-tiling the shadows and decos inside the thumbnail code we will have all the infrastructure in place to evaluate if it can be used as a base for Kwin's main rendering which indirectly solves per-thread compositing #24, and gives us vulkan support.