summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDaniel Stone <daniels@collabora.com>2018-07-09 13:51:51 +0100
committerDaniel Stone <daniels@collabora.com>2018-07-09 15:20:11 +0100
commitbdebc3170e5816d6e2d34b36d4643c53634a0e41 (patch)
tree122700b0cc3c5eb6d8078ae2b3073a8ee07f657f
parentdc082cb0718d2d07d259ffc02209cbb28714fbdc (diff)
downloadweston-bdebc3170e5816d6e2d34b36d4643c53634a0e41.tar.gz
compositor-drm: Don't set fb->size for non-dumb buffers
When creating a drm_fb from client (wl_buffer/dmabuf), gbm_surface, or client buffers, set fb->size to 0. The size member is only used for dumb buffers, where we mmap the whole buffer, and need the size recorded to later pass to munmap. Determining the full size of multi-planar buffers is difficult, as auxiliary planes are not guaranteed to have a (height*stride) allocation, e.g. if they are subsampled or if they do not contain pixel data at all but, e.g., compression information. Single-plane tiled buffers also often pad the buffer allocation to a multiple of tile height, making our existing calculation incorrect. Though it does no harm to record incorrect information, it also does no good as we never use it; remove it in order to avoid any confusion. Signed-off-by: Daniel Stone <daniels@collabora.com> Reviewed-by: Pekka Paalanen <pekka.paalanen@collabora.co.uk>
-rw-r--r--libweston/compositor-drm.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/libweston/compositor-drm.c b/libweston/compositor-drm.c
index 7753dfba..29fa98da 100644
--- a/libweston/compositor-drm.c
+++ b/libweston/compositor-drm.c
@@ -1063,7 +1063,7 @@ drm_fb_get_from_bo(struct gbm_bo *bo, struct drm_backend *backend,
fb->handles[0] = gbm_bo_get_handle(bo).u32;
fb->format = pixel_format_get_info(gbm_bo_get_format(bo));
fb->modifier = DRM_FORMAT_MOD_INVALID;
- fb->size = fb->strides[0] * fb->height;
+ fb->size = 0;
fb->fd = backend->drm.fd;
if (!fb->format) {