[PATCH 05/16] drm/i915/display: Handle frontbuffer rendering when PSR2 selective fetch is enabled
José Roberto de Souza
jose.souza at intel.com
Tue Sep 28 23:52:48 UTC 2021
CURSURFLIVE writes has no affect when PSR2 selective fetch is enabled,
the right thing to do here would be calculate the damaged area and
program PSR2 selective fetch registers properly during vblank but
we can't do that due to performance reasons.
So for now we can workaround and offer proper rendering by disabling
PSR2 and enabling in the worker a few miliseconds later if there is
no other frontbuffer rendering.
This approach will eat some of the PSR2 power savings when userspace
makes use of frontbuffer rendering but that is the solution that we
can offer to enable PSR2 selective fetch right now while we work in
the proper solution for frontbuffer rendering and PSR2.
Cc: Gwan-gyeong Mun <gwan-gyeong.mun at intel.com>
Cc: Ville Syrjälä <ville.syrjala at linux.intel.com>
Signed-off-by: José Roberto de Souza <jose.souza at intel.com>
---
drivers/gpu/drm/i915/display/intel_psr.c | 6 ++++++
1 file changed, 6 insertions(+)
diff --git a/drivers/gpu/drm/i915/display/intel_psr.c b/drivers/gpu/drm/i915/display/intel_psr.c
index 89ff3649ace15..5c5d3b7f2b4cb 100644
--- a/drivers/gpu/drm/i915/display/intel_psr.c
+++ b/drivers/gpu/drm/i915/display/intel_psr.c
@@ -1409,6 +1409,12 @@ static void psr_force_hw_tracking_exit(struct intel_dp *intel_dp)
{
struct drm_i915_private *dev_priv = dp_to_i915(intel_dp);
+ /* CURSURFLIVE has no effect when Selective fetch is enabled */
+ if (intel_dp->psr.psr2_sel_fetch_enabled) {
+ intel_psr_exit(intel_dp);
+ return;
+ }
+
/*
* Display WA #0884: skl+
* This documented WA for bxt can be safely applied
--
2.33.0
More information about the Intel-gfx-trybot
mailing list