|
Patrik Jakobsson |
9a2cca |
From 4ff4ebac3f1378f4ba6e11fe5ad4a4ac590bb8a4 Mon Sep 17 00:00:00 2001
|
|
Patrik Jakobsson |
9a2cca |
From: =?UTF-8?q?Jouni=20H=C3=B6gander?= <jouni.hogander@intel.com>
|
|
Patrik Jakobsson |
9a2cca |
Date: Mon, 24 Oct 2022 08:46:49 +0300
|
|
Patrik Jakobsson |
9a2cca |
Subject: drm/i915/psr: Send update also on invalidate
|
|
Patrik Jakobsson |
9a2cca |
MIME-Version: 1.0
|
|
Patrik Jakobsson |
9a2cca |
Content-Type: text/plain; charset=UTF-8
|
|
Patrik Jakobsson |
9a2cca |
Content-Transfer-Encoding: 8bit
|
|
Patrik Jakobsson |
bd4acf |
Alt-commit: d755f89220a2b49bc90b7b520bb6edeb4adb5f01
|
|
Patrik Jakobsson |
9a2cca |
Git-commit: 4ff4ebac3f1378f4ba6e11fe5ad4a4ac590bb8a4
|
|
Patrik Jakobsson |
9a2cca |
Patch-mainline: v6.1-rc5
|
|
Patrik Jakobsson |
9a2cca |
References: git-fixes
|
|
Patrik Jakobsson |
9a2cca |
|
|
Patrik Jakobsson |
9a2cca |
Currently we are observing mouse cursor stuttering when using
|
|
Patrik Jakobsson |
9a2cca |
xrandr --scaling=1.2x1.2. X scaling/transformation seems to be
|
|
Patrik Jakobsson |
9a2cca |
doing fronbuffer rendering. When moving mouse cursor X seems to
|
|
Patrik Jakobsson |
9a2cca |
perform several invalidates and only one DirtyFB. I.e. it seems
|
|
Patrik Jakobsson |
9a2cca |
to be assuming updates are sent to panel while drawing is done.
|
|
Patrik Jakobsson |
9a2cca |
|
|
Patrik Jakobsson |
9a2cca |
Earlier we were disabling PSR in frontbuffer invalidate call back
|
|
Patrik Jakobsson |
9a2cca |
(when drawing in X started). PSR was re-enabled in frontbuffer
|
|
Patrik Jakobsson |
9a2cca |
flush callback (dirtyfb ioctl). This was working fine with X
|
|
Patrik Jakobsson |
9a2cca |
scaling/transformation. Now we are just enabling continuous full
|
|
Patrik Jakobsson |
9a2cca |
frame (cff) in PSR invalidate callback. Enabling cff doesn't
|
|
Patrik Jakobsson |
9a2cca |
trigger any updates. It just configures PSR to send full frame
|
|
Patrik Jakobsson |
9a2cca |
when updates are sent. I.e. there are no updates on screen before
|
|
Patrik Jakobsson |
9a2cca |
PSR flush callback is made. X seems to be doing several updates
|
|
Patrik Jakobsson |
9a2cca |
in frontbuffer before doing dirtyfb ioctl.
|
|
Patrik Jakobsson |
9a2cca |
|
|
Patrik Jakobsson |
9a2cca |
Fix this by sending single update on every invalidate callback.
|
|
Patrik Jakobsson |
9a2cca |
|
|
Patrik Jakobsson |
9a2cca |
Cc: José Roberto de Souza <jose.souza@intel.com>
|
|
Patrik Jakobsson |
9a2cca |
Cc: Ville Syrjälä <ville.syrjala@linux.intel.com>
|
|
Patrik Jakobsson |
9a2cca |
Cc: Mika Kahola <mika.kahola@intel.com>
|
|
Patrik Jakobsson |
9a2cca |
|
|
Patrik Jakobsson |
9a2cca |
Fixes: 805f04d42a6b ("drm/i915/display/psr: Use continuos full frame to handle frontbuffer invalidations")
|
|
Patrik Jakobsson |
9a2cca |
Closes: https://gitlab.freedesktop.org/drm/intel/-/issues/6679
|
|
Patrik Jakobsson |
9a2cca |
Signed-off-by: Jouni Högander <jouni.hogander@intel.com>
|
|
Patrik Jakobsson |
9a2cca |
Reported-by: Brian J. Tarricone <brian@tarricone.org>
|
|
Patrik Jakobsson |
9a2cca |
Tested-by: Brian J. Tarricone <brian@tarricone.org>
|
|
Patrik Jakobsson |
9a2cca |
Reviewed-by: Mika Kahola <mika.kahola@intel.com>
|
|
Patrik Jakobsson |
9a2cca |
Reviewed-by: José Roberto de Souza <jose.souza@intel.com>
|
|
Patrik Jakobsson |
9a2cca |
Signed-off-by: José Roberto de Souza <jose.souza@intel.com>
|
|
Patrik Jakobsson |
9a2cca |
Link: https://patchwork.freedesktop.org/patch/msgid/20221024054649.31299-1-jouni.hogander@intel.com
|
|
Patrik Jakobsson |
9a2cca |
(cherry picked from commit d755f89220a2b49bc90b7b520bb6edeb4adb5f01)
|
|
Patrik Jakobsson |
9a2cca |
Signed-off-by: Tvrtko Ursulin <tvrtko.ursulin@intel.com>
|
|
Patrik Jakobsson |
9a2cca |
Acked-by: Patrik Jakobsson <pjakobsson@suse.de>
|
|
Patrik Jakobsson |
9a2cca |
---
|
|
Patrik Jakobsson |
9a2cca |
drivers/gpu/drm/i915/display/intel_psr.c | 5 ++++-
|
|
Patrik Jakobsson |
9a2cca |
1 file changed, 4 insertions(+), 1 deletion(-)
|
|
Patrik Jakobsson |
9a2cca |
|
|
Patrik Jakobsson |
9a2cca |
diff --git a/drivers/gpu/drm/i915/display/intel_psr.c b/drivers/gpu/drm/i915/display/intel_psr.c
|
|
Patrik Jakobsson |
9a2cca |
index d4cce627d7a8..15c3e448aa0e 100644
|
|
Patrik Jakobsson |
9a2cca |
--- a/drivers/gpu/drm/i915/display/intel_psr.c
|
|
Patrik Jakobsson |
9a2cca |
+++ b/drivers/gpu/drm/i915/display/intel_psr.c
|
|
Patrik Jakobsson |
9a2cca |
@@ -2201,8 +2201,11 @@ static void _psr_invalidate_handle(struct intel_dp *intel_dp)
|
|
Patrik Jakobsson |
9a2cca |
if (intel_dp->psr.psr2_sel_fetch_enabled) {
|
|
Patrik Jakobsson |
9a2cca |
u32 val;
|
|
Patrik Jakobsson |
9a2cca |
|
|
Patrik Jakobsson |
9a2cca |
- if (intel_dp->psr.psr2_sel_fetch_cff_enabled)
|
|
Patrik Jakobsson |
9a2cca |
+ if (intel_dp->psr.psr2_sel_fetch_cff_enabled) {
|
|
Patrik Jakobsson |
9a2cca |
+ /* Send one update otherwise lag is observed in screen */
|
|
Patrik Jakobsson |
9a2cca |
+ intel_de_write(dev_priv, CURSURFLIVE(intel_dp->psr.pipe), 0);
|
|
Patrik Jakobsson |
9a2cca |
return;
|
|
Patrik Jakobsson |
9a2cca |
+ }
|
|
Patrik Jakobsson |
9a2cca |
|
|
Patrik Jakobsson |
9a2cca |
val = man_trk_ctl_enable_bit_get(dev_priv) |
|
|
Patrik Jakobsson |
9a2cca |
man_trk_ctl_partial_frame_bit_get(dev_priv) |
|
|
Patrik Jakobsson |
9a2cca |
--
|
|
Patrik Jakobsson |
9a2cca |
2.39.0
|
|
Patrik Jakobsson |
9a2cca |
|