diff options
Diffstat (limited to 'lib/ioctl_wrappers.c')
-rw-r--r-- | lib/ioctl_wrappers.c | 11 |
1 files changed, 9 insertions, 2 deletions
diff --git a/lib/ioctl_wrappers.c b/lib/ioctl_wrappers.c index 39e8469e..10d95872 100644 --- a/lib/ioctl_wrappers.c +++ b/lib/ioctl_wrappers.c @@ -1659,10 +1659,10 @@ void igt_require_fb_modifiers(int fd) int __kms_addfb(int fd, uint32_t handle, uint32_t width, uint32_t height, uint32_t stride, uint32_t pixel_format, uint64_t modifier, - uint32_t flags, uint32_t *buf_id) + uint32_t *offsets, uint32_t flags, uint32_t *buf_id) { struct drm_mode_fb_cmd2 f; - int ret; + int ret, i; igt_require_fb_modifiers(fd); @@ -1676,6 +1676,13 @@ int __kms_addfb(int fd, uint32_t handle, uint32_t width, uint32_t height, f.pitches[0] = stride; f.modifier[0] = modifier; + for (i = 1; i < 4 && offsets && offsets[i]; i++) { + f.handles[i] = handle; + f.pitches[i] = stride; + f.modifier[i] = modifier; + f.offsets[i] = offsets[i]; + } + ret = igt_ioctl(fd, DRM_IOCTL_MODE_ADDFB2, &f); *buf_id = f.fb_id; |