From: Leo Li <sunpeng.li@amd.com>
To: Matthew Schwartz <matthew.schwartz@linux.dev>,
George Zhang <george.zhang@amd.com>,
<amd-gfx@lists.freedesktop.org>
Cc: Fangzhi Zuo <jerry.zuo@amd.com>
Subject: Re: [PATCH] drm/amd/display: only allow freesync on a VRR_ENABLED crtc
Date: Tue, 22 Sep 2026 13:50:12 -0400 [thread overview]
Message-ID: <c50780fe-70dc-4ecd-81df-90a6f7fa37d9@amd.com> (raw)
In-Reply-To: <6e07ec9f-9423-475c-8751-289ff11a40cb@linux.dev>
On 2026-09-21 15:47, Matthew Schwartz wrote:
> Hi George,
>
> After updating to Linux 7.2.x, I noticed gamescope's frame limiter falling
> below the requested rate. The reproducer was a Navi 33 driving 4K120
> through a DP-HDMI PCON, with VRR disabled. A 40fps limit was producing
> roughly 37fps.
>
> Gamescope was pacing against the fixed 120Hz refresh interval, but we
> observed frame intervals stretching to around 9.34ms instead of 8.33ms.
> The OTG vtotal also increased from 2249 to 2521. This was enough to
> disrupt the limiter's pacing despite userspace leaving VRR_ENABLED=0.
Hi Matt,
I wonder if this has to do with re-introducing 2-frame vblank off for NV3+
DGPUs, which made it into 7.2:
fba211b078d6 ("Revert "drm/amd/display: Restore 5s vbl offdelay for NV3x+ DGPUs"")
Since gamescope is only updating every 3rd frame, it's possible vblanks were
turned off during those two frames, signaling driver to enable idle optimizations.
To test this idea, does bumping this line to something like 5 frames ((u64)50 *) help?
https://elixir.bootlin.com/linux/v7.3-rc3/source/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c#L3377
Thanks,
Leo
>
> Tracing this led to allow_freesync remaining true for a VRR-capable
> sink even when the FreeSync state was inactive. That allowed FPO to
> stretch vblank around UCLK switches. The PCON whitelist change exposed
> this on our setup by making the sink eligible for that path.
>
> The intent is to keep the frame period fixed when userspace has
> disabled VRR, while retaining FPO eligibility when variable refresh is
> actually requested. With the patch, the original setup holds the
> requested 40fps again. I also tested VRR toggling on a Legion Go 2's
> internal eDP OLED panel and did not observe a regression.
>
> Thanks,
> Matt
next prev parent reply other threads:[~2026-09-22 17:50 UTC|newest]
Thread overview: 9+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-09-09 19:59 [PATCH] drm/amd/display: only allow freesync on a VRR_ENABLED crtc Matthew Schwartz
2026-09-21 19:41 ` George Zhang
2026-09-21 19:42 ` George Zhang
2026-09-21 19:47 ` Matthew Schwartz
2026-09-22 17:50 ` Leo Li [this message]
2026-09-22 18:04 ` Matthew Schwartz
2026-09-22 18:10 ` Leo Li
2026-09-22 18:23 ` Matthew Schwartz
2026-09-22 18:25 ` Matthew Schwartz
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=c50780fe-70dc-4ecd-81df-90a6f7fa37d9@amd.com \
--to=sunpeng.li@amd.com \
--cc=amd-gfx@lists.freedesktop.org \
--cc=george.zhang@amd.com \
--cc=jerry.zuo@amd.com \
--cc=matthew.schwartz@linux.dev \
/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.