Skip to content
GitLab
Projects Groups Snippets
  • /
  • Help
    • Help
    • Support
    • Community forum
    • Submit feedback
    • Contribute to GitLab
  • Register
  • Sign in
  • mutter mutter
  • Project information
    • Project information
    • Activity
    • Labels
    • Members
  • Repository
    • Repository
    • Files
    • Commits
    • Branches
    • Tags
    • Contributors
    • Graph
    • Compare
  • Issues 1,148
    • Issues 1,148
    • List
    • Boards
    • Service Desk
    • Milestones
  • Merge requests 118
    • Merge requests 118
  • CI/CD
    • CI/CD
    • Pipelines
    • Jobs
    • Schedules
  • Deployments
    • Deployments
    • Environments
    • Releases
  • Packages and registries
    • Packages and registries
    • Container Registry
  • Monitor
    • Monitor
    • Incidents
  • Analytics
    • Analytics
    • Value stream
    • CI/CD
    • Repository
  • Wiki
    • Wiki
  • Snippets
    • Snippets
  • Activity
  • Graph
  • Create a new issue
  • Jobs
  • Commits
  • Issue Boards
Collapse sidebar
  • GNOMEGNOME
  • muttermutter
  • Merge requests
  • !1324

Make culling actually cull (it didn't before)

  • Review changes

  • Download
  • Email patches
  • Plain diff
Closed Daniel van Vugt requested to merge vanvugt/mutter:cull-content into master Jun 19, 2020
  • Overview 11
  • Commits 2
  • Pipelines 6
  • Changes 2

meta_shaped_texture_paint_content was being called on all windows including those fully obscured and meant to be culled. It seems the culling test in meta_surface_actor_paint is ineffective because we don't actually use paint for painting. We use ClutterContent instead.

The difficulty with ClutterContent is that it gets painted before the actor's paint vfunc, and even before pre_paint. So to actually make culling work we need go up to the parent object (a MetaWindowActor) and enforce the culling there. So now meta_shaped_texture_paint_content is not called for culled windows.


Performance measurements on an i7-7700 at UHD 3840x2160:

Dragging a small terminal window over 8 maximized terminal windows:
Before: 30 FPS, 23 ms/frame
After: 60 FPS, 5 ms/frame

Maximized glxgears over 8 maximized terminal windows:
Before: 15 FPS, 50 ms/frame
After : 60 FPS, 6 ms/frame


Closes: #1295 (closed)

Also recommended: !1323 (merged)

Edited Jun 19, 2020 by Daniel van Vugt
Assignee
Assign to
Reviewers
Request review from
Time tracking
Source branch: cull-content