dri-devel Archive on lore.kernel.org
 help / color / mirror / Atom feed
From: Pekka Paalanen <ppaalanen-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>
To: "Michel Dänzer" <michel-otUistvHUpPR7s880joybQ@public.gmane.org>
Cc: daniel.vetter-/w4YWyX8dFk@public.gmane.org,
	Marek.Olsak-5C7GfCeVMHo@public.gmane.org,
	amd-gfx-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW@public.gmane.org,
	Nicholas Kazlauskas
	<nicholas.kazlauskas-5C7GfCeVMHo@public.gmane.org>,
	manasi.d.navare-ral2JQCrhuEAvxtiuMwx3w@public.gmane.org,
	dri-devel-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW@public.gmane.org,
	Alexander.Deucher-5C7GfCeVMHo@public.gmane.org,
	christian.koenig-5C7GfCeVMHo@public.gmane.org
Subject: Re: [PATCH v5 2/4] drm: Add vrr_enabled property to drm CRTC
Date: Fri, 26 Oct 2018 17:27:31 +0300	[thread overview]
Message-ID: <20181026172731.5776c301@eldfell> (raw)
In-Reply-To: <ec5d531d-e91a-ba2f-7e8e-4a875b183e97-otUistvHUpPR7s880joybQ@public.gmane.org>


[-- Attachment #1.1: Type: text/plain, Size: 3805 bytes --]

On Mon, 15 Oct 2018 12:06:52 +0200
Michel Dänzer <michel-otUistvHUpPR7s880joybQ@public.gmane.org> wrote:

> On 2018-10-15 11:47 a.m., Christian König wrote:
> > Am 15.10.2018 um 11:40 schrieb Michel Dänzer:  
> >> On 2018-10-13 7:38 p.m., Christian König wrote:  
> >>> Am 12.10.2018 um 18:44 schrieb Nicholas Kazlauskas:  
> >>>> This patch introduces the 'vrr_enabled' CRTC property to allow
> >>>> dynamic control over variable refresh rate support for a CRTC.
> >>>>
> >>>> This property should be treated like a content hint to the driver -
> >>>> if the hardware or driver is not capable of driving variable refresh
> >>>> timings then this is not considered an error.
> >>>>
> >>>> Capability for variable refresh rate support should be determined
> >>>> by querying the vrr_capable drm connector property.
> >>>>
> >>>> It is worth noting that while the property is intended for atomic use
> >>>> it isn't filtered from legacy userspace queries. This allows for Xorg
> >>>> userspace drivers to implement support.  
> >>> I'm honestly still not convinced that a per CRTC property is actually
> >>> the right approach.
> >>>
> >>> What we should rather do instead is to implement a target timestamp for
> >>> the page flip.  
> >> You'd have to be more specific about how the latter could completely
> >> replace the former. I don't see how it could.  
> > 
> > Each flip request send by an application gets a timestamp when the flip
> > should be displayed.
> > 
> > If I'm not completely mistaken we already have something like that in
> > both DRI2 as well as DRI3.  
> 
> Certainly not DRI2, but for now we're not enabling VRR with that anyway.
> 
> While the X11 Present extension specifies PresentOptionUST for this,
> support for it isn't implemented yet in xserver (as in setting the
> option has no effect, the X server interprets the target value as an MSC
> anyway).
> 
> So this couldn't work before the next major release of xserver, which
> based on recent history could be at least about one year away.

Hi

> In contrast, the CRTC property based solution for the gaming use-case
> can work even with older xserver versions.

This is probably the heaviest reason.

Coming up with a KMS UABI for target timestamps could get complicated.
Do you need a flip queue deeper than one? Do you need to be able to
cancel flips?

> > So as far as I can see we only need to add an extra flag that those
> > information are trust worth in the context of VRR as well.
> > 
> > If we don't set this flag we always get the always working fallback
> > behavior, e.g. VRR is disabled and we have a fixed refresh rate.
> > 
> > If we set this flag and the timestamp is in the past we get the VRR
> > behavior to display the next frame as soon as possible.
> > 
> > If we set this flag and specific a specific timestamp then we get the
> > VRR behavior to display the frame as close as possible to the specified
> > timestamp.  
> 
> Apart from the above, another issue is that this would give direct
> control to the client on whether or not VRR should be used. But we want
> to allow the user to disable VRR even if a client wants to use it, via
> an RandR output property. This requires that the Xorg driver can control
> whether or not VRR can actually be used, via the CRTC property added by
> this patch.

It would not imply direct control to clients. The target timestamps go
through the X server, the X server can mangle them or remove them
before calling KMS any way it wants. The X server can invent a RandR
property to disable/enable VRR.

One would need a video-DDX update the very minimum to start passing the
timestamps to the kernel, so there is no way VRR would be enabled
unwanted.


Thanks,
pq

[-- Attachment #1.2: OpenPGP digital signature --]
[-- Type: application/pgp-signature, Size: 833 bytes --]

[-- Attachment #2: Type: text/plain, Size: 154 bytes --]

_______________________________________________
amd-gfx mailing list
amd-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/amd-gfx

  parent reply	other threads:[~2018-10-26 14:27 UTC|newest]

Thread overview: 15+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2018-10-12 16:44 [PATCH v5 0/4] A DRM API for adaptive sync and variable refresh rate support Nicholas Kazlauskas
2018-10-12 16:44 ` [PATCH v5 1/4] drm: Add vrr_capable property to the drm connector Nicholas Kazlauskas
     [not found]   ` <20181012164458.12864-2-nicholas.kazlauskas-5C7GfCeVMHo@public.gmane.org>
2018-10-25 18:05     ` Wentland, Harry
2018-10-12 16:44 ` [PATCH v5 2/4] drm: Add vrr_enabled property to drm CRTC Nicholas Kazlauskas
2018-10-13 17:38   ` Christian König
     [not found]     ` <e1feafbe-2c37-d1ff-8a45-4672b4da1264-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>
2018-10-15  9:40       ` Michel Dänzer
     [not found]         ` <9811fdab-3efe-4701-92e1-0f53b323959d-otUistvHUpPR7s880joybQ@public.gmane.org>
2018-10-15  9:47           ` Christian König
     [not found]             ` <c9afd2f9-c80c-3147-6458-14e386196fb7-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>
2018-10-15 10:06               ` Michel Dänzer
     [not found]                 ` <ec5d531d-e91a-ba2f-7e8e-4a875b183e97-otUistvHUpPR7s880joybQ@public.gmane.org>
2018-10-15 10:47                   ` Koenig, Christian
2018-10-26 14:27                   ` Pekka Paalanen [this message]
2018-10-25 18:08   ` Wentland, Harry
2018-10-12 16:44 ` [PATCH v5 3/4] drm: Document variable refresh properties Nicholas Kazlauskas
     [not found]   ` <20181012164458.12864-4-nicholas.kazlauskas-5C7GfCeVMHo@public.gmane.org>
2018-10-25 18:13     ` Wentland, Harry
2018-10-12 16:44 ` [PATCH v5 4/4] drm/amdgpu: Set FreeSync state using drm VRR properties Nicholas Kazlauskas
2018-10-25 18:22   ` Wentland, Harry

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20181026172731.5776c301@eldfell \
    --to=ppaalanen-re5jqeeqqe8avxtiumwx3w@public.gmane.org \
    --cc=Alexander.Deucher-5C7GfCeVMHo@public.gmane.org \
    --cc=Marek.Olsak-5C7GfCeVMHo@public.gmane.org \
    --cc=amd-gfx-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW@public.gmane.org \
    --cc=christian.koenig-5C7GfCeVMHo@public.gmane.org \
    --cc=daniel.vetter-/w4YWyX8dFk@public.gmane.org \
    --cc=dri-devel-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW@public.gmane.org \
    --cc=manasi.d.navare-ral2JQCrhuEAvxtiuMwx3w@public.gmane.org \
    --cc=michel-otUistvHUpPR7s880joybQ@public.gmane.org \
    --cc=nicholas.kazlauskas-5C7GfCeVMHo@public.gmane.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox