diff options
author | Maarten Lankhorst <maarten.lankhorst@canonical.com> | 2012-10-23 10:37:27 +0200 |
---|---|---|
committer | Maarten Lankhorst <maarten.lankhorst@canonical.com> | 2012-10-23 10:37:27 +0200 |
commit | 72230cd5a7846f7a26f929262a745dc0bdc34a3d (patch) | |
tree | 88a1537f90cbed2ff7e4d89784260e4e7095d8ab | |
parent | 1d7890ecb8b3188177ab85608ea232812672d923 (diff) | |
download | xorg-driver-xf86-video-nouveau-72230cd5a7846f7a26f929262a745dc0bdc34a3d.tar.gz |
exa: fix up download_from/upload_to screen
Add a missing return TRUE to download_from_screen.
Add a missing exaMarkSync to memcpy in upload_to_screen.
Add a really loud warning to both if memcpy to/from tiled is done.
Signed-off-by: Maarten Lankhorst <maarten.lankhorst@canonical.com>
-rw-r--r-- | src/nouveau_exa.c | 11 |
1 files changed, 11 insertions, 0 deletions
diff --git a/src/nouveau_exa.c b/src/nouveau_exa.c index 13d7e1f..136b68f 100644 --- a/src/nouveau_exa.c +++ b/src/nouveau_exa.c @@ -285,9 +285,14 @@ nouveau_exa_download_from_screen(PixmapPtr pspix, int x, int y, int w, int h, h -= lines; y += lines; } + return TRUE; memcpy: bo = nouveau_pixmap_bo(pspix); + if (nv50_style_tiled_pixmap(pspix)) + ErrorF("%s:%d - falling back to memcpy ignores tiling\n", + __func__, __LINE__); + if (nouveau_bo_map(bo, NOUVEAU_BO_RD, pNv->client)) return FALSE; src = (char *)bo->map + (y * src_pitch) + (x * cpp); @@ -373,10 +378,16 @@ nouveau_exa_upload_to_screen(PixmapPtr pdpix, int x, int y, int w, int h, /* fallback to memcpy-based transfer */ memcpy: bo = nouveau_pixmap_bo(pdpix); + if (nv50_style_tiled_pixmap(pdpix)) + ErrorF("%s:%d - falling back to memcpy ignores tiling\n", + __func__, __LINE__); + if (nouveau_bo_map(bo, NOUVEAU_BO_WR, pNv->client)) return FALSE; dst = (char *)bo->map + (y * dst_pitch) + (x * cpp); ret = NVAccelMemcpyRect(dst, src, h, dst_pitch, src_pitch, w*cpp); + if (ret) + exaMarkSync(pdpix->drawable.pScreen); return ret; } |