summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorChris Wilson <chris@chris-wilson.co.uk>2013-09-29 13:33:26 +0100
committerChris Wilson <chris@chris-wilson.co.uk>2013-09-29 13:33:26 +0100
commita0bb41d16f75901bc18b7024679e2b3a35fc14f6 (patch)
tree482789c0b92f1c5c3def2c93fb972372b1a56630
parent0dd20381364aabede2e1306945abe21d57c1d7b4 (diff)
sna/video: The sprite framebuffer also encodes its format
So we need to check whether the cached framebuffer matches the requested format, or else recreate. Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
-rw-r--r--src/sna/sna_video.c4
-rw-r--r--src/sna/sna_video.h2
2 files changed, 4 insertions, 2 deletions
diff --git a/src/sna/sna_video.c b/src/sna/sna_video.c
index 61f66151..132ca280 100644
--- a/src/sna/sna_video.c
+++ b/src/sna/sna_video.c
@@ -98,7 +98,8 @@ sna_video_buffer(struct sna_video *video,
if (video->buf && video->buf->scanout) {
if (frame->width != video->width ||
- frame->height != video->height)
+ frame->height != video->height ||
+ frame->id != video->format)
sna_video_free_buffers(video);
}
@@ -115,6 +116,7 @@ sna_video_buffer(struct sna_video *video,
video->width = frame->width;
video->height = frame->height;
+ video->format = frame->id;
return video->buf;
}
diff --git a/src/sna/sna_video.h b/src/sna/sna_video.h
index 996377bd..f906e95e 100644
--- a/src/sna/sna_video.h
+++ b/src/sna/sna_video.h
@@ -92,7 +92,7 @@ struct sna_video {
/** YUV data buffers */
struct kgem_bo *old_buf[2];
struct kgem_bo *buf;
- int width, height;
+ int width, height, format;
int alignment;
bool tiled;