Project

General

Profile

Enhancement #26

Optimize window repainting area

Added by Arnaud Fontaine over 6 years ago. Updated over 6 years ago.

Status:
Closed
Priority:
High
Category:
Core
Target version:
Start date:
01/14/2012
Due date:
% Done:

100%


Description

Currently, DamageReportNonEmpty is used but this is not efficient as it reports the full window area. Instead, DamageReportRawRectangles should be used to get the real damaged area. This should dramatically improve repainting.

Associated revisions

Revision a226620a (diff)
Added by Arnaud Fontaine over 6 years ago

Optimize window repainting area (closes: #26).

Before, DamageReportNonEmpty was used but this was not efficient at all as it
just reports a single DamageNotify event each time the damage rectangle
changes from empty to non-empty, meaning that the damaged area will be the
full window.

Instead, use DamageReportRawRectangles to get the real damaged area of a
window. This also makes check whether a window is fully damaged more useful.

Revision 20783f9b (diff)
Added by Arnaud Fontaine over 6 years ago

Use DamageReportDeltaRectangles to avoid being flooded with DamageNotify (refs: #26).

With DamageReportRawRectangles level, no attempt to compress out overlapping
rectangles is made, therefore many events are received and handled needlessly
(according to a test, 3 times more events are received on the same test).
Whereas with DamageReportNonEmpty level only a single event specifying the
full window region is sent thus this is not efficient for small damage
regions.

History

#1 Updated by Arnaud Fontaine over 6 years ago

  • Status changed from New to Closed
  • % Done changed from 0 to 100

Also available in: Atom PDF