mbox series

[RFC,0/3] Display experiment + GuC Display Metrics

Message ID 20240227145833.490328-1-rodrigo.vivi@intel.com (mailing list archive)
Headers show
Series Display experiment + GuC Display Metrics | expand

Message

Rodrigo Vivi Feb. 27, 2024, 2:58 p.m. UTC
First of all, I'm sorry if this is hitting your inbox twice.
I could swear that I had sent this 2 weeks ago, but I couldn't
find the lore or patchwork, so let me try again.

This series is a double experiment that I would like to get
some help.

1. Display - shared display between i915 and xe without a
need for the compat-layer. With this registration method
with a void * to the device driver we can at least start
to get rid of the compat layer and the nasty
-Ddrm_i915_private=xe_device
And perhaps move from this to a more standalone solution
later.

So, thoughts?

2. GuC SLPC display metrics. On this I need some help to
check the functionality of SLPC, debug GuC and some eyes
to see if the place of the display side is the best one.

From what I could see with the debugfs view added in this
patch, the shared buffer gets properly updated with the
display metrics and that is in sync with the display
refresh rate and the fame per second information that I
get to see in the screen. However for the workloads that
I used here I didn't like the end result. The extra
register read in the middle of the display critical areas
seems to cause more harm then good for the cases I got.

So, with this I need help with guc-debug, reviews, ideas.

Thanks in advance,
Rodrigo.

Rodrigo Vivi (3):
  drm/i915/display: Introduce intel_display_guc_metrics
  drm/i915: Add experimental GuC SLPC display metrics
  drm/xe: Add GuC SLPC Display Metrics

 drivers/gpu/drm/i915/Makefile                 |   1 +
 drivers/gpu/drm/i915/display/intel_display.c  |  14 +-
 .../gpu/drm/i915/display/intel_display_core.h |   2 +
 .../i915/display/intel_display_guc_metrics.c  | 153 ++++++++
 .../i915/display/intel_display_guc_metrics.h  |  26 ++
 .../display/intel_display_guc_metrics_types.h |  32 ++
 .../gpu/drm/i915/display/intel_display_irq.c  |   3 +
 .../drm/i915/display/skl_universal_plane.c    |   3 +
 drivers/gpu/drm/i915/gt/intel_rps.c           |   9 +
 .../drm/i915/gt/uc/abi/guc_actions_slpc_abi.h |  59 +++
 drivers/gpu/drm/i915/gt/uc/intel_guc_slpc.c   | 271 +++++++++++++-
 drivers/gpu/drm/i915/gt/uc/intel_guc_slpc.h   |   6 +
 .../gpu/drm/i915/gt/uc/intel_guc_slpc_types.h |   4 +
 drivers/gpu/drm/i915/i915_params.c            |   2 +-
 drivers/gpu/drm/i915/i915_params.h            |   4 +-
 drivers/gpu/drm/xe/Makefile                   |   1 +
 drivers/gpu/drm/xe/abi/guc_actions_slpc_abi.h |  59 +++
 drivers/gpu/drm/xe/xe_gt_debugfs.c            |  11 +
 drivers/gpu/drm/xe/xe_guc_pc.c                | 343 +++++++++++++++++-
 drivers/gpu/drm/xe/xe_guc_pc.h                |   3 +
 drivers/gpu/drm/xe/xe_guc_pc_types.h          |   2 +
 21 files changed, 991 insertions(+), 17 deletions(-)
 create mode 100644 drivers/gpu/drm/i915/display/intel_display_guc_metrics.c
 create mode 100644 drivers/gpu/drm/i915/display/intel_display_guc_metrics.h
 create mode 100644 drivers/gpu/drm/i915/display/intel_display_guc_metrics_types.h