From: "Christian König" <ckoenig.leichtzumerken@gmail.com>
To: Alex Deucher <alexdeucher@gmail.com>
Cc: Alex Deucher <alexander.deucher@amd.com>, amd-gfx@lists.freedesktop.org
Subject: Re: [PATCH 1/2] Revert "drm/amd: Remove freesync video mode amdgpu parameter"
Date: Wed, 28 Feb 2024 15:45:24 +0100 [thread overview]
Message-ID: <d9a450ed-5632-42ce-b53c-e70b71762606@gmail.com> (raw)
In-Reply-To: <CADnq5_OSLcbSX2H4b72YRVGz7GQqHg-8bcNWxdUdcoqAwP=dsg@mail.gmail.com>
Am 28.02.24 um 15:23 schrieb Alex Deucher:
> On Wed, Feb 28, 2024 at 2:03 AM Christian König
> <ckoenig.leichtzumerken@gmail.com> wrote:
>> Am 27.02.24 um 19:48 schrieb Alex Deucher:
>>> This reverts commit e94e787e37b99645e7c02d20d0a1ba0f8a18a82a.
>>>
>>> This conflicts with how compositors want to handle VRR. Now
>>> that compositors actually handle VRR, we probably don't need
>>> freesync video.
>>>
>>> Closes: https://gitlab.freedesktop.org/drm/amd/-/issues/2985
>> Scratching my head what actually happens here? Doesn't the problem then
>> just depend on a module parameter?
> Yes. The problem is that when freesync video is enabled, compositors
> don't know which modes are actual modes and which are a VRR video
> mode. There are still customers that want the vrr video mode smooth
> video playback, but compositors don't want this by default. I guess
> the alternative is to just drop this feature altogether now that
> compositors and media players are starting to support this properly.
That's what I would suggest as well.
As far as I can see adding those modes is actually buggy behavior and we
need to avoid it.
Christian.
>
> Alex
>
>> Regards,
>> Christian.
>>
>>> Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
>>> ---
>>> drivers/gpu/drm/amd/amdgpu/amdgpu.h | 1 +
>>> drivers/gpu/drm/amd/amdgpu/amdgpu_drv.c | 27 +++++++++++++++++++++++++
>>> 2 files changed, 28 insertions(+)
>>>
>>> diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu.h b/drivers/gpu/drm/amd/amdgpu/amdgpu.h
>>> index 0e365cadcc3fc..925026c183f41 100644
>>> --- a/drivers/gpu/drm/amd/amdgpu/amdgpu.h
>>> +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu.h
>>> @@ -194,6 +194,7 @@ extern int amdgpu_emu_mode;
>>> extern uint amdgpu_smu_memory_pool_size;
>>> extern int amdgpu_smu_pptable_id;
>>> extern uint amdgpu_dc_feature_mask;
>>> +extern uint amdgpu_freesync_vid_mode;
>>> extern uint amdgpu_dc_debug_mask;
>>> extern uint amdgpu_dc_visual_confirm;
>>> extern int amdgpu_dm_abm_level;
>>> diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_drv.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_drv.c
>>> index 15a8a64fc4e28..82b154b103f43 100644
>>> --- a/drivers/gpu/drm/amd/amdgpu/amdgpu_drv.c
>>> +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_drv.c
>>> @@ -199,6 +199,7 @@ int amdgpu_mes_kiq;
>>> int amdgpu_noretry = -1;
>>> int amdgpu_force_asic_type = -1;
>>> int amdgpu_tmz = -1; /* auto */
>>> +uint amdgpu_freesync_vid_mode;
>>> int amdgpu_reset_method = -1; /* auto */
>>> int amdgpu_num_kcq = -1;
>>> int amdgpu_smartshift_bias;
>>> @@ -883,6 +884,32 @@ module_param_named(damageclips, amdgpu_damage_clips, int, 0444);
>>> MODULE_PARM_DESC(tmz, "Enable TMZ feature (-1 = auto (default), 0 = off, 1 = on)");
>>> module_param_named(tmz, amdgpu_tmz, int, 0444);
>>>
>>> +/**
>>> + * DOC: freesync_video (uint)
>>> + * Enable the optimization to adjust front porch timing to achieve seamless
>>> + * mode change experience when setting a freesync supported mode for which full
>>> + * modeset is not needed.
>>> + *
>>> + * The Display Core will add a set of modes derived from the base FreeSync
>>> + * video mode into the corresponding connector's mode list based on commonly
>>> + * used refresh rates and VRR range of the connected display, when users enable
>>> + * this feature. From the userspace perspective, they can see a seamless mode
>>> + * change experience when the change between different refresh rates under the
>>> + * same resolution. Additionally, userspace applications such as Video playback
>>> + * can read this modeset list and change the refresh rate based on the video
>>> + * frame rate. Finally, the userspace can also derive an appropriate mode for a
>>> + * particular refresh rate based on the FreeSync Mode and add it to the
>>> + * connector's mode list.
>>> + *
>>> + * Note: This is an experimental feature.
>>> + *
>>> + * The default value: 0 (off).
>>> + */
>>> +MODULE_PARM_DESC(
>>> + freesync_video,
>>> + "Enable freesync modesetting optimization feature (0 = off (default), 1 = on)");
>>> +module_param_named(freesync_video, amdgpu_freesync_vid_mode, uint, 0444);
>>> +
>>> /**
>>> * DOC: reset_method (int)
>>> * GPU reset method (-1 = auto (default), 0 = legacy, 1 = mode0, 2 = mode1, 3 = mode2, 4 = baco)
next prev parent reply other threads:[~2024-02-28 14:45 UTC|newest]
Thread overview: 7+ messages / expand[flat|nested] mbox.gz Atom feed top
2024-02-27 18:48 [PATCH 1/2] Revert "drm/amd: Remove freesync video mode amdgpu parameter" Alex Deucher
2024-02-27 18:48 ` [PATCH 2/2] Reapply "Revert drm/amd/display: Enable Freesync Video Mode by default" Alex Deucher
2024-02-27 19:45 ` [PATCH 1/2] Revert "drm/amd: Remove freesync video mode amdgpu parameter" Hamza Mahfooz
2024-02-28 6:38 ` Christian König
2024-02-28 14:23 ` Alex Deucher
2024-02-28 14:45 ` Christian König [this message]
2024-02-29 15:49 ` Alex Deucher
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=d9a450ed-5632-42ce-b53c-e70b71762606@gmail.com \
--to=ckoenig.leichtzumerken@gmail.com \
--cc=alexander.deucher@amd.com \
--cc=alexdeucher@gmail.com \
--cc=amd-gfx@lists.freedesktop.org \
/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