1
0
Fork 0
mirror of synced 2025-03-06 20:59:54 +01:00
linux/drivers/gpu/drm/msm/disp/dpu1
Rob Clark 9e4dde28e9 drm/msm: Avoid dirtyfb stalls on video mode displays (v2)
Someone on IRC once asked an innocent enough sounding question:  Why
with xf86-video-modesetting is es2gears limited at 120fps.

So I broke out the perfetto tracing mesa MR and took a look.  It turns
out the problem was drm_atomic_helper_dirtyfb(), which would end up
waiting for vblank.. es2gears would rapidly push two frames to Xorg,
which would blit them to screen and in idle hook (I assume) call the
DIRTYFB ioctl.  Which in turn would do an atomic update to flush the
dirty rects, which would stall until the next vblank.  And then the
whole process would repeat.

But this is a bit silly, we only need dirtyfb for command mode DSI
panels.  So track in plane state whether dirtyfb is required, and
track in the fb how many attached planes require dirtyfb so that we
can skip it when not required.  (Note, mdp4 does not actually have
cmd mode support.)

Signed-off-by: Rob Clark <robdclark@chromium.org>
Reviewed-by: Dmitry Baryshkov <dmitry.baryshkov@linaro.org>
Link: https://lore.kernel.org/r/20220223191118.881321-1-robdclark@gmail.com
Signed-off-by: Rob Clark <robdclark@chromium.org>
2022-02-25 07:59:58 -08:00
..
dpu_core_irq.h drm/msm/dpu: simplify IRQ enabling/disabling 2021-06-23 07:32:15 -07:00
dpu_core_perf.c drm/msm/dpu: simplify clocks handling 2022-02-18 20:15:12 +03:00
dpu_core_perf.h drm/msm/dpu: simplify clocks handling 2022-02-18 20:15:12 +03:00
dpu_crtc.c drm/msm: Avoid dirtyfb stalls on video mode displays (v2) 2022-02-25 07:59:58 -08:00
dpu_crtc.h drm/msm/dpu: stop manually removing debugfs files for the DPU CRTC 2021-12-15 15:28:40 -08:00
dpu_encoder.c drm/msm/dpu: pull connector from dpu_encoder_phys to dpu_encoder_virt 2022-02-18 20:15:12 +03:00
dpu_encoder.h drm/msm: move struct msm_display_info to dpu driver 2022-02-18 20:15:11 +03:00
dpu_encoder_phys.h drm/msm/dpu: pull connector from dpu_encoder_phys to dpu_encoder_virt 2022-02-18 20:15:12 +03:00
dpu_encoder_phys_cmd.c drm/msm/dpu: Fix timeout issues on command mode panels 2022-02-18 20:28:13 +03:00
dpu_encoder_phys_vid.c drm/msm/dpu: switch dpu_encoder to use atomic_mode_set 2022-02-18 20:15:12 +03:00
dpu_formats.c drm/msm/disp: Move various debug logs to atomic bucket 2021-06-23 07:32:16 -07:00
dpu_formats.h treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 284 2019-06-05 17:36:37 +02:00
dpu_hw_blk.h drm/msm/dpu: hw_blk: make dpu_hw_blk empty opaque structure 2021-06-23 07:33:54 -07:00
dpu_hw_catalog.c drm/msm/dpu: wire up MSM8998's DSPP blocks 2022-02-23 13:17:58 +03:00
dpu_hw_catalog.h drm/msm: add support for QCM2290 MDSS 2022-02-23 06:04:48 +03:00
dpu_hw_ctl.c drm/msm/dpu: Add a function to retrieve the current CTL status 2022-02-18 20:28:08 +03:00
dpu_hw_ctl.h drm/msm/dpu: Add a function to retrieve the current CTL status 2022-02-18 20:28:08 +03:00
dpu_hw_dspp.c drm/msm/dpu: invalid parameter check in dpu_setup_dspp_pcc 2022-01-25 05:45:39 +03:00
dpu_hw_dspp.h drm/msm/dpu: add support for pcc color block in dpu driver 2020-05-18 09:26:32 -07:00
dpu_hw_interrupts.c drm/msm/dpu: Add INTF_5 interrupts 2022-02-18 20:15:11 +03:00
dpu_hw_interrupts.h drm/msm/dpu: Add INTF_5 interrupts 2022-02-18 20:15:11 +03:00
dpu_hw_intf.c drm/msm/dpu: hw_blk: make dpu_hw_blk empty opaque structure 2021-06-23 07:33:54 -07:00
dpu_hw_intf.h drm/msm/dpu: stop embedding dpu_hw_blk into dpu_hw_intf 2022-02-18 20:15:11 +03:00
dpu_hw_lm.c drm/msm/dpu: Add CRC support for DPU 2021-10-21 10:42:42 -07:00
dpu_hw_lm.h drm/msm/dpu: Add CRC support for DPU 2021-10-21 10:42:42 -07:00
dpu_hw_mdss.h drm/msm/dpu: Fix a typo 2021-06-23 07:33:52 -07:00
dpu_hw_merge3d.c drm/msm/dpu: hw_blk: make dpu_hw_blk empty opaque structure 2021-06-23 07:33:54 -07:00
dpu_hw_merge3d.h drm/msm/dpu: setup merge modes in merge_3d block 2020-11-04 08:26:26 -08:00
dpu_hw_pingpong.c drm/msm/dpu: hw_blk: make dpu_hw_blk empty opaque structure 2021-06-23 07:33:54 -07:00
dpu_hw_pingpong.h drm/msm/dpu: use struct dpu_hw_merge_3d in dpu_hw_pingpong 2021-06-23 07:33:54 -07:00
dpu_hw_sspp.c drm/msm/dpu: move SSPP debugfs support from plane to SSPP code 2021-12-16 09:51:25 -08:00
dpu_hw_sspp.h drm/msm/dpu: move SSPP debugfs support from plane to SSPP code 2021-12-16 09:51:25 -08:00
dpu_hw_top.c drm/msm: populate intf_audio_select() base on hardware capability 2022-02-18 20:15:11 +03:00
dpu_hw_top.h drivers: gpu: drm: msn: disp: dpu1: Fixed couple of spellings in the file dpu_hw_top.h 2021-04-07 11:05:44 -07:00
dpu_hw_util.c drm/msm/dpu: drop dpu_csc_cfg from dpu_plane 2021-11-28 09:32:02 -08:00
dpu_hw_util.h drm/msm/dpu: drop dpu_csc_cfg from dpu_plane 2021-11-28 09:32:02 -08:00
dpu_hw_vbif.c drm/msm/dpu: Fix VBIF_XINL_QOS_LVL_REMAP_000 register offset 2021-01-31 11:34:35 -08:00
dpu_hw_vbif.h treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 284 2019-06-05 17:36:37 +02:00
dpu_hwio.h treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 284 2019-06-05 17:36:37 +02:00
dpu_kms.c Merge branches 'msm-next-lumag-dpu' and 'msm-next-lumag-dsi' into msm-next-lumag 2022-02-23 13:19:03 +03:00
dpu_kms.h drm/msm/dpu: simplify clocks handling 2022-02-18 20:15:12 +03:00
dpu_mdss.c Merge branches 'msm-next-lumag-core', 'msm-next-lumag-dpu', 'msm-next-lumag-dp', 'msm-next-lumag-dsi', 'msm-next-lumag-hdmi' and 'msm-next-lumag-mdp5' into msm-next-lumag 2022-02-19 05:31:42 +03:00
dpu_plane.c drm/msm: Avoid dirtyfb stalls on video mode displays (v2) 2022-02-25 07:59:58 -08:00
dpu_plane.h drm/msm: Avoid dirtyfb stalls on video mode displays (v2) 2022-02-25 07:59:58 -08:00
dpu_rm.c drm/msm/dpu: fix error handling in dpu_rm_init 2022-02-18 20:15:11 +03:00
dpu_rm.h drm/msm/dpu: stop embedding dpu_hw_blk into dpu_hw_intf 2022-02-18 20:15:11 +03:00
dpu_trace.h drm/msm/dpu: Remove encoder->enable() hack 2021-12-07 14:47:10 -08:00
dpu_vbif.c drm/msm/disp: Move various debug logs to atomic bucket 2021-06-23 07:32:16 -07:00
dpu_vbif.h treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 284 2019-06-05 17:36:37 +02:00
msm_media_info.h drm/msm/dpu: Clean up dpu_media_info.h static inline functions 2018-12-11 13:10:19 -05:00