[PATCH RFC 06/25] drm/connector: hdmi: Add VTEM EMP generation
Michel Dänzer
michel.daenzer at mailbox.org
Wed Sep 30 00:50:27 PDT 2026
On 9/29/26 20:55, Vidith Madhu wrote:
> On Sat, 26 Sep 2026, Nicolas Frattaroli wrote:
>> On Friday, 25 September 2026 05:48:54 Central European Summer Time Vidith Madhu wrote:
>>
>>> Maybe it would make sense to extend the qms_enabled connector property
>>> introduced in this patchset to an enum of {Off, Gaming, QMS}? This would allow
>>> a standard path to control the VRR state on the sink, separately from
>>> vrr_enabled.
>>
>> An earlier version of the patch series I was working on internally had a
>> VRR limiter property that would either be Off (i.e. Game), Game-Limited,
>> QMS-Limited, and it self-inflicted some amount of confusion because of
>> the way things were named, so I refactored it to the limiter values being
>> what determines whether a limiter is used, and the QMS enable to determine
>> whether QMS is used to apply said limit. So my initial reaction is to be
>> hesitant about expanding the collection of possible states exposed through
>> the uAPI.
>>
>> To help my understanding: what does
>>
>> vrr_enabled=true
>> $new_property=Off
>>
>> mean for presentation?
> In this case, it should be acceptable to disable VRR on both the source
> and sink and effectively ignore vrr_enabled=true. From reading
> https://elixir.bootlin.com/linux/v7.2.8/source/drivers/gpu/drm/drm_connector.c#L2370
> vrr_enabled is essentially a hint and there is no need to reject commits
> because of its value (at least, that is how we handle it in the NVIDIA
> driver).
I presume you're referring to this:
* The driver will take this property as a hint to enable variable
* refresh rate support if the receiver supports it, ie. if the
* "vrr_capable" property is true on the &drm_connector object.
My reading of that is simply: "If vrr_capable=0, VRR_ENABLED=1 has no effect" (i.e. kind of stating the obvious :). Not sure I see the justification for VRR_ENABLED being "just a hint" beyond that.
>> Another state I'm curious about is
>>
>> vrr_enabled=false
>> $new_property=Game
>>
>> which I assume is the case you're interested in, where the compositor does
>> not want VRR presentation but we're keeping the sink in Game mode to avoid
>> having the display go blank.
> That's right, in this case VRR is enabled on the sink but deactivated
> source-side. For NVIDIA, there is a distinct HW "deactivated" state of
> VRR, but we could achieve the same result by setting the frame range
> limits to a fixed value as you suggested.
>>
>> is that correct, and something that does need an expanded property? I feel
>> like userspace could be smart enough to do that by keeping vrr_enabled=true
>> and then setting a fixed target, if the goal is to have non-VRR but with the
>> display still in VRR mode.
> I agree, I am a little concerned though about the transition period for
> compositors to adopt this new model. I know for example KDE is using the
> vrr_enabled property for their "AdaptiveSync" option, and it seems like it
> would be a regression if all of a sudden toggling it caused display
> blanking on newer kernels.
Yes it would be, also for mutter, which currently sets VRR_ENABLED to 1 only while there's a surface fully covering the screen.
--
Earthling Michel Dänzer \ GNOME / Xwayland / Mesa developer
https://redhat.com \ Libre software enthusiast
More information about the Linux-rockchip
mailing list