mirror of https://lore.kernel.org/lkml/
 help / color / mirror / Atom feed
From: Leo Li <sunpeng.li@amd.com>
To: Mikhail Gavrilov <mikhail.v.gavrilov@gmail.com>
Cc: Harry Wentland <harry.wentland@amd.com>,
	zaeem.mohamed@amd.com, pekka.paalanen@collabora.com, "Wheeler,
	Daniel" <daniel.wheeler@amd.com>,
	"Deucher, Alexander" <alexander.deucher@amd.com>,
	amd-gfx list <amd-gfx@lists.freedesktop.org>,
	dri-devel <dri-devel@lists.freedesktop.org>,
	Linux List Kernel Mailing <linux-kernel@vger.kernel.org>,
	Linux regressions mailing list <regressions@lists.linux.dev>
Subject: Re: 6.11/regression/bisected - after commit 1b04dcca4fb1, launching some RenPy games causes computer hang
Date: Tue, 10 Sep 2024 17:11:42 -0400	[thread overview]
Message-ID: <6db472e4-cd90-4ba6-8368-725b10ba5b4a@amd.com> (raw)
In-Reply-To: <eeab54b4-c055-4992-9ca4-f9e382db68c4@amd.com>

Hi Mikhail,

Can you give this patch a try to see if it helps?
https://gist.github.com/leeonadoh/3271e90ec95d768424c572c970ada743

Thanks,
Leo

On 2024-09-10 11:47, Leo Li wrote:
> 
> 
> On 2024-09-08 19:30, Mikhail Gavrilov wrote:
>> I have done additional tests:
>> 1. The computer does not hang with 6900XT instead the screen flickers
>> when moving the cursor.
>> 2. The computer does not hang with 7900XTX if I turn off VRR. But the
>> screen flickers when moving the cursor, as on 6900XT.
>> To enable VRR, please set 'variable-refresh-rate' in
>> experimental-features, and in the Display setting, enable Variable
>> Refresh Rate.
>> $ gsettings set org.gnome.mutter experimental-features
>> "['variable-refresh-rate', 'scale-monitor-framebuffer']"
>> https://postimg.cc/PvXYdvGR
> 
> Thanks Mikhail, I think I know what's going on now.
> 
> The `scale-monitor-framebuffer` experimental setting is what puts us down the
> bad code path. It seems VRR has nothing to do with this issue, just setting
> `scale-monitor-framebuffer` is enough to reproduce.
> 
> It seems that mutter with this setting is opting for HW scaling rather than GPU
> scaling. I see that "Find the Orange Narwhal" sends out a 1080p buffer,
> which with this setting, gets directly scanned out and scaled by DCN HW to 4k in
> full screen.
> 
> An oddity with current gen DCN hardware is that the cursor inherits the scaling
> of the HW plane underneath. So if mutter requests a hw cursor with a different
> scaling than the game's plane, amdgpu will reject that, and likely force mutter
> into SW cursor.
> 
> My offending patch changed this behavior by rerouting DCN HW pipes to
> accommodate such a configuration. It essentially takes a full-fledged DCN
> overlay plane, and uses that just for the cursor, and thereby freeing it from
> inheriting things from the underlying hw plane.
> 
> My guess is this causes flickering due to how DC (display core driver) handles
> updates; it needs all enabled planes in it's update state. However, a KMS cursor
> update will only include the cursor plane. It's likely that amdgpu_dm only adds
> the dedicated cursor plane to DC's update state, leaving the game's plane out.
> 
> The fix isn't exactly trivial. If I don't get anywhere before the fixes window,
> I'll send out a revert.
> 
> Cheers,
> Leo

  reply	other threads:[~2024-09-10 21:11 UTC|newest]

Thread overview: 15+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2024-08-05 18:05 Mikhail Gavrilov
2024-08-24 21:12 ` Mikhail Gavrilov
2024-09-03  6:35   ` Mikhail Gavrilov
2024-09-03 23:15     ` Leo Li
2024-09-04 22:21       ` Mikhail Gavrilov
2024-09-04 23:06         ` Leo Li
2024-09-05  6:06           ` Mikhail Gavrilov
2024-09-06 19:46             ` Leo Li
2024-09-08 23:30               ` Mikhail Gavrilov
2024-09-10 15:47                 ` Leo Li
2024-09-10 21:11                   ` Leo Li [this message]
2024-09-10 22:16                     ` Mikhail Gavrilov
2024-09-09  8:49               ` Michel Dänzer
2025-01-26 16:46           ` [BUG,BISECTED] WARNING dcn20_find_secondary_pipe Chris Bainbridge
2025-01-27  9:44             ` Imre Deak

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=6db472e4-cd90-4ba6-8368-725b10ba5b4a@amd.com \
    --to=sunpeng.li@amd.com \
    --cc=alexander.deucher@amd.com \
    --cc=amd-gfx@lists.freedesktop.org \
    --cc=daniel.wheeler@amd.com \
    --cc=dri-devel@lists.freedesktop.org \
    --cc=harry.wentland@amd.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=mikhail.v.gavrilov@gmail.com \
    --cc=pekka.paalanen@collabora.com \
    --cc=regressions@lists.linux.dev \
    --cc=zaeem.mohamed@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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox

all inboxes | Powered by JetHome®