From: "Ville Syrjälä" <ville.syrjala@linux.intel.com>
To: "Michel Dänzer" <michel@daenzer.net>
Cc: nicolai.haehnle@amd.com, Marek.Olsak@amd.com,
dri-devel@lists.freedesktop.org, Christian.Koenig@amd.com,
manasi.d.navare@intel.com, amd-gfx@lists.freedesktop.org,
Alexander.Deucher@amd.com, "Kazlauskas,
Nicholas" <nicholas.kazlauskas@amd.com>
Subject: Re: [PATCH v2 2/3] drm: Add variable refresh property to DRM CRTC
Date: Tue, 25 Sep 2018 18:28:17 +0300 [thread overview]
Message-ID: <20180925152817.GK9144@intel.com> (raw)
In-Reply-To: <e084c331-93a1-247b-9c73-12140932bb60@daenzer.net>
On Tue, Sep 25, 2018 at 04:35:59PM +0200, Michel Dänzer wrote:
> On 2018-09-25 4:04 p.m., Ville Syrjälä wrote:
> > On Tue, Sep 25, 2018 at 03:28:28PM +0200, Michel Dänzer wrote:
> >> On 2018-09-24 10:26 p.m., Ville Syrjälä wrote:
> >>> On Mon, Sep 24, 2018 at 03:06:02PM -0400, Kazlauskas, Nicholas wrote:
> >>>> On 09/24/2018 02:38 PM, Ville Syrjälä wrote:
> >>>>>
> >>>>> Actually I don't understand why this per-crtc thing is being added at
> >>>>> all. You already have the prop on the connector. Why do we want to
> >>>>> make life more difficult by requiring the thing to be set on both the
> >>>>> crtc and connector?
> >>>>
> >>>> It doesn't make much sense without both.
> >>>>
> >>>> The user can globally enable or disable the variable_refresh_enabled on
> >>>> the connector. This is the user's preference.
> >>>>
> >>>> What they don't control is the variable_refresh - the content hint that
> >>>> userspace specifies when the CRTC contents are suitable for enabling
> >>>> variable refresh features (like adaptive sync). This is userspace's
> >>>> preference.
> >>>
> >>> By userspace I guess you mean the compositor/display server.
> >>
> >> Actually rather the application, see the corresponding Mesa and
> >> xf86-video-amdgpu patches.
> >>
> >>
> >>> I don't really see why the kernel has to be involved like this in a
> >>> userspace policy matter. If the compositor doesn't think vrr is a good
> >>> idea then it could simply choose to disable the prop on the connector
> >>> even when requested by its clients.
> >>
> >> Connector properties are exposed directly to X11 clients as RandR output
> >> properties. With only the connector property, the user running e.g.
> >>
> >> xrandr --output <name> --set variable_refresh_enabled 1
> >>
> >> would result in variable refresh being enabled regardless of whether a
> >> variable refresh compatible client is currently using page flipping,
> >> which can result in flickering or getting stuck at the minimum refresh rate.
> >
> > in ddx:
> >
> > configure_vrr()
> > {
> > kms_vrr = client_vrr && is_vrr_a_good_idea();
> > kms_setprop(kms_vrr);
> > }
> >
> > set_prop()
> > {
> > if (is_vrr_prop)
> > configure_vrr();
> > else
> > kms_setprop();
> > }
> >
> > other_stuff()
> > {
> > /* some stuff */
> > ...
> >
> > if (vrr_related_stuff_changed)
> > configure_vrr();
> > }
> >
> > or something along those lines?
> >
>
> Sure, that's not the problem, which is that if the Xorg driver doesn't
> actively hide the property from clients (e.g. because it's a currently
> released version), we get the issue I described above.
That sounds more like what client caps were meant for. Or maybe
drop the connector vrr enable prop and just go with the crtc one?
>
> Also, if the Xorg driver were to hide the connector property from
> clients, there's no way for the user to completely disable variable
> refresh for a display (unless the Xorg driver exposes another fake
> property for that, which seems a bit silly).
>
>
> --
> Earthling Michel Dänzer | http://www.amd.com
> Libre software enthusiast | Mesa and X developer
--
Ville Syrjälä
Intel
_______________________________________________
dri-devel mailing list
dri-devel@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/dri-devel
next prev parent reply other threads:[~2018-09-25 15:28 UTC|newest]
Thread overview: 42+ messages / expand[flat|nested] mbox.gz Atom feed top
2018-09-24 18:15 [PATCH v2 0/3] A DRM API for adaptive sync and variable refresh rate support Nicholas Kazlauskas
2018-09-24 18:15 ` [PATCH v2 2/3] drm: Add variable refresh property to DRM CRTC Nicholas Kazlauskas
2018-09-24 18:38 ` Ville Syrjälä
2018-09-24 19:06 ` Kazlauskas, Nicholas
[not found] ` <4aa1583c-2be0-8cec-2857-6c3e489965b4-5C7GfCeVMHo@public.gmane.org>
2018-09-24 20:26 ` Ville Syrjälä
[not found] ` <20180924202655.GA9144-ral2JQCrhuEAvxtiuMwx3w@public.gmane.org>
2018-09-25 13:28 ` Michel Dänzer
[not found] ` <2158aa72-9156-5592-822a-c815f373fd53-otUistvHUpPR7s880joybQ@public.gmane.org>
2018-09-25 14:04 ` Ville Syrjälä
[not found] ` <20180925140433.GH9144-ral2JQCrhuEAvxtiuMwx3w@public.gmane.org>
2018-09-25 14:35 ` Michel Dänzer
2018-09-25 15:28 ` Ville Syrjälä [this message]
[not found] ` <20180925152817.GK9144-ral2JQCrhuEAvxtiuMwx3w@public.gmane.org>
2018-10-01 7:10 ` Daniel Vetter
2018-09-25 13:51 ` Kazlauskas, Nicholas
2018-10-05 8:10 ` Pekka Paalanen
2018-10-05 16:21 ` Kazlauskas, Nicholas
[not found] ` <fdc195dd-9650-8194-3a16-393f61bb2eee-5C7GfCeVMHo@public.gmane.org>
2018-10-05 16:56 ` Michel Dänzer
2018-10-05 17:48 ` Kazlauskas, Nicholas
2018-10-08 10:57 ` Michel Dänzer
2018-10-10 7:14 ` Pekka Paalanen
2018-10-10 13:35 ` Kazlauskas, Nicholas
[not found] ` <3bb5e05d-f7e6-8e44-cfae-202191d64245-5C7GfCeVMHo@public.gmane.org>
2018-10-12 7:23 ` Pekka Paalanen
2018-10-12 7:35 ` Koenig, Christian
[not found] ` <894d12d3-aa0b-c0f6-6347-7d13e58e651a-5C7GfCeVMHo@public.gmane.org>
2018-10-12 9:21 ` Pekka Paalanen
2018-10-12 11:20 ` Koenig, Christian
2018-10-12 12:58 ` Kazlauskas, Nicholas
2018-10-15 13:57 ` Pekka Paalanen
2018-10-15 16:02 ` Kazlauskas, Nicholas
[not found] ` <52103366-510d-15a6-61d2-26196a4f0e57-5C7GfCeVMHo@public.gmane.org>
2018-10-16 7:36 ` Pekka Paalanen
[not found] ` <20180924181537.12092-1-nicholas.kazlauskas-5C7GfCeVMHo@public.gmane.org>
2018-09-24 18:15 ` [PATCH v2 1/3] drm: Add variable refresh rate properties to connector Nicholas Kazlauskas
2018-09-24 18:32 ` Ville Syrjälä
2018-10-01 7:05 ` Daniel Vetter
2018-09-24 18:15 ` [PATCH v2 3/3] drm/amd/display: Set FreeSync state using DRM VRR properties Nicholas Kazlauskas
2018-10-01 7:15 ` [PATCH v2 0/3] A DRM API for adaptive sync and variable refresh rate support Daniel Vetter
2018-10-02 14:49 ` Harry Wentland
2018-10-03 8:41 ` Daniel Vetter
[not found] ` <20181003084120.GP11082-dv86pmgwkMBes7Z6vYuT8azUEOm+Xw19@public.gmane.org>
2018-10-03 18:35 ` Manasi Navare
2018-10-11 19:37 ` Harry Wentland
2018-10-11 19:41 ` Harry Wentland
2018-10-03 8:25 ` Mike Lothian
[not found] ` <CAHbf0-HhjG2xc1sAjHBR=Ep11LzumO6tdyzBcKSZ8h82H28Zbg-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2018-10-11 19:44 ` Harry Wentland
2018-10-12 8:26 ` Michel Dänzer
[not found] ` <ac5b5865-6bb0-08e8-d83c-26893e75b11e-otUistvHUpPR7s880joybQ@public.gmane.org>
2018-10-12 8:31 ` Koenig, Christian
[not found] ` <84c4a243-ca2c-49a7-9e2c-22666292aea9-5C7GfCeVMHo@public.gmane.org>
2018-10-25 17:57 ` Wentland, Harry
[not found] ` <1c3d19a7-3afa-6de5-59e0-37a19d73848b-5C7GfCeVMHo@public.gmane.org>
2018-10-26 9:33 ` Michel Dänzer
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=20180925152817.GK9144@intel.com \
--to=ville.syrjala@linux.intel.com \
--cc=Alexander.Deucher@amd.com \
--cc=Christian.Koenig@amd.com \
--cc=Marek.Olsak@amd.com \
--cc=amd-gfx@lists.freedesktop.org \
--cc=dri-devel@lists.freedesktop.org \
--cc=manasi.d.navare@intel.com \
--cc=michel@daenzer.net \
--cc=nicholas.kazlauskas@amd.com \
--cc=nicolai.haehnle@amd.com \
/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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.