Wiadomość napisana przez Piotr Oniszczuk piotr.oniszczuk@gmail.com w dniu 01.04.2022, o godz. 15:05:
Wiadomość napisana przez Sascha Hauer s.hauer@pengutronix.de w dniu 01.04.2022, o godz. 14:52:
Based on the discussion with Andy please try the following patch, it should fix your green screen issue. Note that with this patch the CRTC and plane ids will change, so the modetest commands need to be adjusted accordingly.
Sascha
-------------------------8<---------------------------
-- From cbc03073623a7180243331ac24c3afaf9dec7522 Mon Sep 17 00:00:00 2001 From: Sascha Hauer s.hauer@pengutronix.de Date: Fri, 1 Apr 2022 14:48:49 +0200 Subject: [PATCH] fixup! drm: rockchip: Add VOP2 driver
drivers/gpu/drm/rockchip/rockchip_drm_vop2.c | 14 ++++++++++++++ 1 file changed, 14 insertions(+)
diff --git a/drivers/gpu/drm/rockchip/rockchip_drm_vop2.c b/drivers/gpu/drm/rockchip/rockchip_drm_vop2.c index 7dba7b9b63dc6..1421bf2f133f1 100644 --- a/drivers/gpu/drm/rockchip/rockchip_drm_vop2.c +++ b/drivers/gpu/drm/rockchip/rockchip_drm_vop2.c @@ -2287,6 +2287,20 @@ static int vop2_create_crtc(struct vop2 *vop2) } }
if (vop2->data->soc_id == 3566) {
/*
* On RK3566 these windows don't have an independent
* framebuffer. They share the framebuffer with smart0,
* esmart0 and cluster0 respectively.
*/
switch (win->data->phys_id) {
case ROCKCHIP_VOP2_SMART1:
case ROCKCHIP_VOP2_ESMART1:
case ROCKCHIP_VOP2_CLUSTER1:
continue;
}
}
- if (win->type == DRM_PLANE_TYPE_OVERLAY) possible_crtcs = (1 << nvps) - 1;
-- 2.30.2
Pengutronix e.K. | | Steuerwalder Str. 21 | http://www.pengutronix.de/ | 31137 Hildesheim, Germany | Phone: +49-5121-206917-0 | Amtsgericht Hildesheim, HRA 2686 | Fax: +49-5121-206917-5555 |
Sascha
Now works perfectly! (hd playback with 3.5...5.5% cpu while rendering to drm plane)
Fantastic work of You!
Sascha,
Having vop2 finally working with drm planes rendering i discovered another issue: overlay osd is invisible at playback.
context: player draws video on plane #X and osd on overlay plane #Y When user do i.e. seek at playback - app uses overlay OSD plane to display OSD to user. This approach is used by majority of players (KODI, etc.)
This works well on all platforms i have - except rk3566
For me it looks like z-order vop2 issue or alpha blending issue. As this is only on rk3566 and only on drm-planes mode - issue is vop2 related imho.
what you think?