diff options
author | Chris Wilson <chris@chris-wilson.co.uk> | 2013-09-29 13:33:26 +0100 |
---|---|---|
committer | Chris Wilson <chris@chris-wilson.co.uk> | 2013-09-29 13:33:26 +0100 |
commit | a0bb41d16f75901bc18b7024679e2b3a35fc14f6 (patch) | |
tree | 482789c0b92f1c5c3def2c93fb972372b1a56630 /src | |
parent | 0dd20381364aabede2e1306945abe21d57c1d7b4 (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>
Diffstat (limited to 'src')
-rw-r--r-- | src/sna/sna_video.c | 4 | ||||
-rw-r--r-- | src/sna/sna_video.h | 2 |
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; |