summaryrefslogtreecommitdiffstats
path: root/video/out/opengl/context_drm_egl.c
diff options
context:
space:
mode:
authorLongChair <longchair@hotmail.com>2018-04-29 17:46:23 +0200
committerJan Ekström <jeebjp@gmail.com>2018-05-01 20:48:02 +0300
commited94f8dc00dd75bf5d88bdf73b9d69a579c0f8ef (patch)
treea7464c8db4f154423ee148c2c6e08f047b41a762 /video/out/opengl/context_drm_egl.c
parent49bc07faea5f3c621eed437fadf68653b4b2498b (diff)
downloadmpv-ed94f8dc00dd75bf5d88bdf73b9d69a579c0f8ef.tar.bz2
mpv-ed94f8dc00dd75bf5d88bdf73b9d69a579c0f8ef.tar.xz
drm/atomic: refactor planes names
We are currently using primary / overlay planes drm objects, assuming that primary plane is osd and overlay plane is video. This commit is doing two things : - replace the primary / overlay planes members with osd and video planes member without the assumption - Add two more options to determine which one of the primary / overlay is associated to osd / video. - It will default osd to overlay and video to primary if unspecified
Diffstat (limited to 'video/out/opengl/context_drm_egl.c')
-rw-r--r--video/out/opengl/context_drm_egl.c11
1 files changed, 6 insertions, 5 deletions
diff --git a/video/out/opengl/context_drm_egl.c b/video/out/opengl/context_drm_egl.c
index 27b1ab968a..c0f7fa244e 100644
--- a/video/out/opengl/context_drm_egl.c
+++ b/video/out/opengl/context_drm_egl.c
@@ -352,9 +352,9 @@ static void drm_egl_swap_buffers(struct ra_ctx *ctx)
update_framebuffer_from_bo(ctx, p->gbm.next_bo);
if (atomic_ctx) {
- drm_object_set_property(atomic_ctx->request, atomic_ctx->primary_plane, "FB_ID", p->fb->id);
- drm_object_set_property(atomic_ctx->request, atomic_ctx->primary_plane, "CRTC_ID", atomic_ctx->crtc->id);
- drm_object_set_property(atomic_ctx->request, atomic_ctx->primary_plane, "ZPOS", 1);
+ drm_object_set_property(atomic_ctx->request, atomic_ctx->osd_plane, "FB_ID", p->fb->id);
+ drm_object_set_property(atomic_ctx->request, atomic_ctx->osd_plane, "CRTC_ID", atomic_ctx->crtc->id);
+ drm_object_set_property(atomic_ctx->request, atomic_ctx->osd_plane, "ZPOS", 1);
ret = drmModeAtomicCommit(p->kms->fd, atomic_ctx->request,
DRM_MODE_ATOMIC_NONBLOCK | DRM_MODE_PAGE_FLIP_EVENT, NULL);
@@ -442,7 +442,7 @@ static bool probe_gbm_format(struct ra_ctx *ctx, uint32_t argb_format, uint32_t
}
drmModePlane *drmplane =
- drmModeGetPlane(p->kms->fd, p->kms->atomic_context->primary_plane->id);
+ drmModeGetPlane(p->kms->fd, p->kms->atomic_context->osd_plane->id);
bool have_argb = false;
bool have_xrgb = false;
bool result = false;
@@ -490,7 +490,8 @@ static bool drm_egl_init(struct ra_ctx *ctx)
MP_VERBOSE(ctx, "Initializing KMS\n");
p->kms = kms_create(ctx->log, ctx->vo->opts->drm_opts->drm_connector_spec,
ctx->vo->opts->drm_opts->drm_mode_id,
- ctx->vo->opts->drm_opts->drm_overlay_id);
+ ctx->vo->opts->drm_opts->drm_osd_plane_id,
+ ctx->vo->opts->drm_opts->drm_video_plane_id);
if (!p->kms) {
MP_ERR(ctx, "Failed to create KMS.\n");
return false;