diff options
author | LongChair <longchair@hotmail.com> | 2018-04-29 17:46:23 +0200 |
---|---|---|
committer | Jan Ekström <jeebjp@gmail.com> | 2018-05-01 20:48:02 +0300 |
commit | ed94f8dc00dd75bf5d88bdf73b9d69a579c0f8ef (patch) | |
tree | a7464c8db4f154423ee148c2c6e08f047b41a762 /video/out/opengl/context_drm_egl.c | |
parent | 49bc07faea5f3c621eed437fadf68653b4b2498b (diff) | |
download | mpv-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.c | 11 |
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; |