summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--video/out/drm_prime.c12
1 files changed, 9 insertions, 3 deletions
diff --git a/video/out/drm_prime.c b/video/out/drm_prime.c
index 1cfaa1a1d3..9335fa8e02 100644
--- a/video/out/drm_prime.c
+++ b/video/out/drm_prime.c
@@ -73,10 +73,16 @@ int drm_prime_create_framebuffer(struct mp_log *log, int fd,
modifiers, &framebuffer->fb_id,
DRM_MODE_FB_MODIFIERS);
if (ret < 0) {
- mp_err(log, "Failed to create framebuffer on layer %d: %s\n",
- 0, mp_strerror(errno));
- goto fail;
+ ret = drmModeAddFB2(fd, width, height, layer->format,
+ handles, pitches, offsets,
+ &framebuffer->fb_id, 0);
+ if (ret < 0) {
+ mp_err(log, "Failed to create framebuffer with drmModeAddFB2 on layer %d: %s\n",
+ 0, mp_strerror(errno));
+ goto fail;
+ }
}
+
for (int plane = 0; plane < AV_DRM_MAX_PLANES; plane++) {
drm_prime_add_handle_ref(handle_refs, framebuffer->gem_handles[plane]);
}