Skip to content
GitLab
Projects Groups Snippets
  • /
  • Help
    • Help
    • Support
    • Community forum
    • Submit feedback
    • Contribute to GitLab
  • Sign in
  • KWin KWin
  • Project information
    • Project information
    • Activity
    • Labels
    • Members
  • Repository
    • Repository
    • Files
    • Commits
    • Branches
    • Tags
    • Contributors
    • Graph
    • Compare
  • Issues 58
    • Issues 58
    • List
    • Boards
    • Service Desk
    • Milestones
  • Bugzilla
    • Bugzilla
  • Merge requests 160
    • Merge requests 160
  • CI/CD
    • CI/CD
    • Pipelines
    • Jobs
    • Schedules
  • Deployments
    • Deployments
    • Releases
  • Analytics
    • Analytics
    • Value stream
    • CI/CD
    • Repository
  • Wiki
    • Wiki
  • Snippets
    • Snippets
  • Activity
  • Graph
  • Create a new issue
  • Jobs
  • Commits
  • Issue Boards
Collapse sidebar
  • PlasmaPlasma
  • KWinKWin
  • Issues
  • #25
Closed
Open
Issue created Dec 02, 2020 by David Edmundson@davidedmundsonDeveloper

Better thumbnails

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 work/new_thumbnail

Curent state:

  • 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.

Edited Dec 02, 2020 by David Edmundson
Assignee
Assign to
Time tracking