[PATCH 00/10] Freesync Panel Replay V2
Alex Deucher
alexdeucher at gmail.com
Mon Jul 10 20:17:42 UTC 2023
On Mon, Jul 10, 2023 at 3:27 PM Bhawanpreet Lakha
<Bhawanpreet.Lakha at amd.com> wrote:
>
> This patch set introduces Freesync Panel Replay capability on DCN 3.1.4
> and newer. Replay has been verified to be working with these patches (in
> house)
>
> These patches are enabling panel replay in static screen use-cases.
> Other use cases will be added as they are ready
>
>
> The importance of Replay
> ************************
>
> In some instances, the GPU is transmitting repeated frames to the sink
> without any updates or changes in the content. These repeat transmission
> are wasteful, resulting in power draw in different aspects of the system
>
> 1. DCN is fetching the frame of data from DF/UMC/DRAM. This memory traffic
> prevents power down of parts of this HW path.
>
> 2. GPU is transmitting pixel data to the display through the main link of
> the DisplayPort interface. This prevents power down of both the Source
> transmitter (TX) and the Sink receiver (RX)
>
>
>
> How it improves on PSR
> ************************
>
> The concepts of utilizing replay is similar to PSR, but there is a benefit of:
> Source and Sink remaining synchronized which allows for
> - lower latency when switching from replay to live frames
> - enable the possibility of more use cases
> - easy control of the sink's refresh rate during replay
>
> Due to Source and Sink remaining timing synchronized, Replay can be activated
> in more UI scenarios.
>
>
> V2: Bug fixes, V1 had some issues which have all been fixed.
> - Invisible Cursor
> - Random Hang
> - Laggy System
>
Are there minimum DMCUB firmware versions required for this? If so,
we should check before enabling this.
Alex
> Regards,
> Bhawan
>
> Bhawanpreet Lakha (10):
> drm/amd/display: Add structs for Freesync Panel Replay
> drm/amd/display: Add Functions to enable Freesync Panel Replay
> drm/amd/display: Add Freesync Panel DM code
> drm/amd/display: Read replay data from sink
> drm/amd/display: Get replay info from VSDB
> drm/amd/display: Add Replay supported/enabled checks
> drm/amd/display: Update replay for clk_mgr optimizations
> drm/amd/display: Update adaptive sync infopackets for replay
> drm/amd/display: Handle Replay related hpd irq
> drm/amd/display: Enable Replay for static screen use cases
>
> .../gpu/drm/amd/display/amdgpu_dm/Makefile | 2 +-
> .../gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c | 71 ++-
> .../gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.h | 14 +
> .../amd/display/amdgpu_dm/amdgpu_dm_crtc.c | 9 +-
> .../amd/display/amdgpu_dm/amdgpu_dm_replay.c | 183 ++++++++
> .../amd/display/amdgpu_dm/amdgpu_dm_replay.h | 46 ++
> .../gpu/drm/amd/display/dc/clk_mgr/clk_mgr.c | 3 +
> drivers/gpu/drm/amd/display/dc/core/dc.c | 6 +
> .../drm/amd/display/dc/core/dc_link_exports.c | 5 +
> drivers/gpu/drm/amd/display/dc/dc.h | 6 +
> drivers/gpu/drm/amd/display/dc/dc_dmub_srv.c | 3 +
> drivers/gpu/drm/amd/display/dc/dc_dp_types.h | 29 ++
> drivers/gpu/drm/amd/display/dc/dc_types.h | 41 ++
> drivers/gpu/drm/amd/display/dc/dce/Makefile | 2 +-
> .../gpu/drm/amd/display/dc/dce/dmub_replay.c | 303 +++++++++++++
> .../gpu/drm/amd/display/dc/dce/dmub_replay.h | 58 +++
> .../display/dc/dce110/dce110_hw_sequencer.c | 6 +
> .../drm/amd/display/dc/dcn21/dcn21_resource.c | 1 +
> .../drm/amd/display/dc/dcn30/dcn30_resource.c | 1 +
> .../amd/display/dc/dcn302/dcn302_resource.c | 1 +
> .../amd/display/dc/dcn303/dcn303_resource.c | 1 +
> .../drm/amd/display/dc/dcn31/dcn31_resource.c | 13 +
> .../amd/display/dc/dcn314/dcn314_resource.c | 14 +
> .../amd/display/dc/dcn315/dcn315_resource.c | 1 +
> .../amd/display/dc/dcn316/dcn316_resource.c | 1 +
> .../gpu/drm/amd/display/dc/inc/core_types.h | 19 +
> drivers/gpu/drm/amd/display/dc/inc/link.h | 14 +
> .../drm/amd/display/dc/link/link_factory.c | 7 +
> .../dc/link/protocols/link_dp_capability.c | 10 +
> .../dc/link/protocols/link_dp_irq_handler.c | 66 +++
> .../link/protocols/link_edp_panel_control.c | 165 +++++++
> .../link/protocols/link_edp_panel_control.h | 8 +
> .../gpu/drm/amd/display/dmub/inc/dmub_cmd.h | 412 ++++++++++++++++++
> .../gpu/drm/amd/display/include/dpcd_defs.h | 5 +-
> .../display/modules/info_packet/info_packet.c | 4 +
> .../amd/display/modules/power/power_helpers.c | 5 +
> .../amd/display/modules/power/power_helpers.h | 2 +
> drivers/gpu/drm/amd/include/amd_shared.h | 2 +
> 38 files changed, 1533 insertions(+), 6 deletions(-)
> create mode 100644 drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_replay.c
> create mode 100644 drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_replay.h
> create mode 100644 drivers/gpu/drm/amd/display/dc/dce/dmub_replay.c
> create mode 100644 drivers/gpu/drm/amd/display/dc/dce/dmub_replay.h
>
> --
> 2.25.1
>
More information about the amd-gfx
mailing list