From b362850689d1b0048b7f4641cc236128b5a43773 Mon Sep 17 00:00:00 2001 From: Simon Ser Date: Fri, 5 Mar 2021 16:07:58 +0100 Subject: [PATCH] xf86drmMode: set FB_MODIFIERS flag when modifiers are supplied The kernel will always return EINVAL if modifiers are supplied but the flag DRM_MODE_FB_MODIFIERS isn't set. That's a pretty nice footgun. Be a little more helpful and set the flag if the user has supplied a modifier array. Signed-off-by: Simon Ser Reviewed-by: Emil Velikov --- xf86drmMode.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/xf86drmMode.c b/xf86drmMode.c index c3920b9..dc17724 100644 --- a/xf86drmMode.c +++ b/xf86drmMode.c @@ -289,8 +289,10 @@ drm_public int drmModeAddFB2WithModifiers(int fd, uint32_t width, memcpy(f.handles, bo_handles, 4 * sizeof(bo_handles[0])); memcpy(f.pitches, pitches, 4 * sizeof(pitches[0])); memcpy(f.offsets, offsets, 4 * sizeof(offsets[0])); - if (modifier) + if (modifier) { + f.flags |= DRM_MODE_FB_MODIFIERS; memcpy(f.modifier, modifier, 4 * sizeof(modifier[0])); + } if ((ret = DRM_IOCTL(fd, DRM_IOCTL_MODE_ADDFB2, &f))) return ret; -- 2.7.4