[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