sna: Use the right is-clipped hint
The region here has yet to be clipped, and so the only valid is-clipped
hint is from the flags computed from the PolyRect extents. Make sure we
use those when determining whether it is valid to discard damage.
Fixes regression from
commit ad03900688 [2.99.903]
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date: Tue Sep 24 10:00:03 2013 +0100
sna: Separate out copy preferrence from operating in place decision
Reported-by: Nick Bowler <nbowler@draconx.ca>
Tested-by: Nick Bowler <nbowler@draconx.ca>
Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=79992
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
This commit is contained in:
parent
b082a07a69
commit
15485602d8
|
|
@ -14382,16 +14382,15 @@ sna_poly_fill_rect(DrawablePtr draw, GCPtr gc, int n, xRectangle *rect)
|
|||
RegionTranslate(®ion, dx, dy);
|
||||
}
|
||||
|
||||
if (region_subsumes_drawable(®ion, &pixmap->drawable)) {
|
||||
discard_cpu_damage(sna, priv);
|
||||
hint |= IGNORE_CPU | REPLACES;
|
||||
} else {
|
||||
if ((flags & 2) == 0)
|
||||
hint |= IGNORE_CPU;
|
||||
if (priv->cpu_damage &&
|
||||
region_subsumes_damage(®ion, priv->cpu_damage)) {
|
||||
if ((flags & 2) == 0) {
|
||||
hint |= IGNORE_CPU;
|
||||
if (region_subsumes_drawable(®ion, &pixmap->drawable)) {
|
||||
discard_cpu_damage(sna, priv);
|
||||
hint |= IGNORE_CPU;
|
||||
hint |= REPLACES;
|
||||
} else {
|
||||
if (priv->cpu_damage &&
|
||||
region_subsumes_damage(®ion, priv->cpu_damage))
|
||||
discard_cpu_damage(sna, priv);
|
||||
}
|
||||
}
|
||||
if (priv->cpu_damage == NULL) {
|
||||
|
|
|
|||
Loading…
Reference in New Issue