diff options
author | Thomas Hellstrom <thellstrom@vmware.com> | 2011-12-14 10:22:22 +0100 |
---|---|---|
committer | Thomas Hellstrom <thellstrom@vmware.com> | 2011-12-15 08:31:16 +0100 |
commit | f664e31d73bd31594e069d8bcca872687b84d8d9 (patch) | |
tree | 85a9b79ec5c0607d7516d4bad8b339c0f4d552e6 /saa | |
parent | 0eef22437093d29f572abea845fff9c03fca5e4e (diff) |
saa: Always read back hw contents on poly_fill_rect
The damage region may be much larger than the actual area
filled, so make sure we read back any hw contents in the damage region
since we use it to mark sw dirty.
Revisit this in the future since it may increase readbacks in an
undesired way. There are workarounds.
Signed-off-by: Thomas Hellstrom <thellstrom@vmware.com>
Reviewed-by: Jakob Bornecrantz <jakob@vmware.com>
Diffstat (limited to 'saa')
-rw-r--r-- | saa/saa_unaccel.c | 8 |
1 files changed, 7 insertions, 1 deletions
diff --git a/saa/saa_unaccel.c b/saa/saa_unaccel.c index 8c1d89b..deaf5aa 100644 --- a/saa/saa_unaccel.c +++ b/saa/saa_unaccel.c @@ -389,7 +389,13 @@ saa_check_poly_fill_rect(DrawablePtr pDrawable, GCPtr pGC, SAA_FALLBACK(("to %p (%c)\n", pDrawable, saa_drawable_loc(pDrawable))); sscreen->fallback_count++; - if (!saa_pad_write(pDrawable, pGC, TRUE, &access)) + + /* + * TODO: Use @prect for readback / damaging instead of + * the damage region. This may fragment the dirty regions more + * but should avoid unnecessary readbacks. + */ + if (!saa_pad_write(pDrawable, pGC, FALSE, &access)) goto out_no_access;; if (!saa_prepare_access_gc(pGC)) goto out_no_gc; |