[<prev] [next>] [thread-next>] [day] [month] [year] [list]
Message-Id: <20210508195641.397198-1-robdclark@gmail.com>
Date: Sat, 8 May 2021 12:56:37 -0700
From: Rob Clark <robdclark@...il.com>
To: dri-devel@...ts.freedesktop.org
Cc: Rob Clark <robdclark@...omium.org>,
Abhinav Kumar <abhinavk@...eaurora.org>,
Bernard <bernard@...o.com>,
freedreno@...ts.freedesktop.org (open list:DRM DRIVER FOR MSM ADRENO
GPU), Hongbo Yao <yaohongbo@...wei.com>,
Kalyan Thota <kalyan_t@...eaurora.org>,
linux-arm-msm@...r.kernel.org (open list:DRM DRIVER FOR MSM ADRENO GPU),
linux-kernel@...r.kernel.org (open list),
Maxime Ripard <maxime@...no.tech>,
Qinglang Miao <miaoqinglang@...wei.com>,
Stephen Boyd <swboyd@...omium.org>
Subject: [PATCH 0/2] drm: Fix atomic helper dirtyfb stalls
From: Rob Clark <robdclark@...omium.org>
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 lets just skip it otherwise.
Rob Clark (2):
drm: Fix dirtyfb stalls
drm/msm/dpu: Wire up needs_dirtyfb
drivers/gpu/drm/drm_damage_helper.c | 8 ++++++++
drivers/gpu/drm/msm/disp/dpu1/dpu_crtc.c | 14 ++++++++++++++
include/drm/drm_modeset_helper_vtables.h | 14 ++++++++++++++
3 files changed, 36 insertions(+)
--
2.30.2
Powered by blists - more mailing lists