scene optimizations

Supersedes: !3488 (closed)
Closes: #3144 (closed)
Based on: !3509 (merged)

The set of optimizations implemented by this series:

  • Only parts of the scene node that are visible will only get damaged.
  • While rendering, only the visible parts of the nodes will actually be rendered. Everything else will be culled.
  • output enter/leave events are based on a node's visibility.
  • frame done events are only sent for visible nodes.
  • Direct scan out will ignore invisible nodes above a proper candidate and all stuff below it if that candidate is opaque or its background is explicitly black through a rect for example.
Edited by Alexander Orzechowski

Merge request reports