summaryrefslogtreecommitdiffstats
path: root/video/out/drm_common.c
diff options
context:
space:
mode:
authorPhilip Langdale <philipl@overt.org>2022-04-03 20:08:33 -0700
committerPhilip Langdale <github.philipl@overt.org>2022-04-05 20:56:36 -0700
commit73a06ffae663e9fb78c5dff4b6bd01a637296a69 (patch)
tree22672b7d07e0ed0c53ea4817015481143f0b6d6d /video/out/drm_common.c
parentf61eda0f5e9f8085003c4c31111db525a438cbc1 (diff)
downloadmpv-73a06ffae663e9fb78c5dff4b6bd01a637296a69.tar.bz2
mpv-73a06ffae663e9fb78c5dff4b6bd01a637296a69.tar.xz
drm: context_drm_egl: add support for enabling VRR
Variable Refresh Rate (VRR), aka Freesync or Adaptive Sync can be used with DRM by setting the VRR_ENABLED property on a crtc if the connector reports that it is VRR_CAPABLE. This is a useful feature for us as it is common to play 24/25/50 fps content on displays that are nominally locked to 60Hz. VRR can allow this content to play at native framerates. This is a simple change as we just need to check the capability and set the enabled property if requested by the user. I've defaulted it to disabled for now, but it might make sense to default to auto in the long term.
Diffstat (limited to 'video/out/drm_common.c')
-rw-r--r--video/out/drm_common.c3
1 files changed, 3 insertions, 0 deletions
diff --git a/video/out/drm_common.c b/video/out/drm_common.c
index aa86b7750b..dad9aaf2fb 100644
--- a/video/out/drm_common.c
+++ b/video/out/drm_common.c
@@ -98,6 +98,8 @@ const struct m_sub_options drm_conf = {
{"drm-osd-plane-id", OPT_REPLACED("drm-draw-plane")},
{"drm-video-plane-id", OPT_REPLACED("drm-drmprime-video-plane")},
{"drm-osd-size", OPT_REPLACED("drm-draw-surface-size")},
+ {"drm-vrr-enabled", OPT_CHOICE(drm_vrr_enabled,
+ {"no", 0}, {"yes", 1}, {"auto", -1})},
{0},
},
.defaults = &(const struct drm_opts) {
@@ -105,6 +107,7 @@ const struct m_sub_options drm_conf = {
.drm_atomic = 1,
.drm_draw_plane = DRM_OPTS_PRIMARY_PLANE,
.drm_drmprime_video_plane = DRM_OPTS_OVERLAY_PLANE,
+ .drm_vrr_enabled = 0,
},
.size = sizeof(struct drm_opts),
};