summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorChris Wilson <chris@chris-wilson.co.uk>2012-01-29 15:43:42 +0000
committerChris Wilson <chris@chris-wilson.co.uk>2012-01-29 15:43:42 +0000
commite1e67e8f394480eb4fef1238ccfd49cc36e4b6f2 (patch)
tree8f6c375d6bde14da7def4cdf2da1aa9e176e62e7
parentd3fb1e1e89ccf5cefe6add66de4f960ef07cac60 (diff)
sna: Fix the "trivial" fix to improve error handling
The logic was just backwards and we tried to upload a shadowless GPU pixmap. Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
-rw-r--r--src/sna/kgem.c6
-rw-r--r--src/sna/sna_render.c2
2 files changed, 7 insertions, 1 deletions
diff --git a/src/sna/kgem.c b/src/sna/kgem.c
index 1d7b8e92..fff2d19b 100644
--- a/src/sna/kgem.c
+++ b/src/sna/kgem.c
@@ -3490,6 +3490,12 @@ struct kgem_bo *kgem_upload_source_image(struct kgem *kgem,
DBG(("%s : (%d, %d), (%d, %d), stride=%d, bpp=%d\n",
__FUNCTION__, box->x1, box->y1, box->x2, box->y2, stride, bpp));
+ assert(data);
+ assert(width > 0);
+ assert(height > 0);
+ assert(stride);
+ assert(bpp);
+
bo = kgem_create_buffer_2d(kgem,
width, height, bpp,
KGEM_BUFFER_WRITE_INPLACE, &dst);
diff --git a/src/sna/sna_render.c b/src/sna/sna_render.c
index cbaaafd5..9a98990a 100644
--- a/src/sna/sna_render.c
+++ b/src/sna/sna_render.c
@@ -1044,7 +1044,7 @@ sna_render_picture_extract(struct sna *sna,
return 0;
} else {
bool upload = true;
- if (!texture_is_cpu(pixmap, &box) &&
+ if (!texture_is_cpu(pixmap, &box) ||
move_to_gpu(pixmap, &box)) {
struct sna_pixmap *priv;