[PATCH RFC 3/6] drm/mediatek: ovl: Fix misaligned layer source size on AFBC mode
CK Hu (胡俊光)
ck.hu at mediatek.com
Mon Feb 2 18:01:15 PST 2026
On Tue, 2025-12-30 at 11:03 -0300, Nícolas F. R. A. Prado wrote:
> From: Ariel D'Alessandro <ariel.dalessandro at collabora.com>
>
> In AFBC mode, OVL_SRC_SIZE must be block aligned. Due to this limitation
> of the AFBC format, OVL_CLIP needs to be used to achieve the desired
> output size of the layer while still meeting the alignment constraints.
> Failure to do this will result in vblank timeouts and no rendered output
> when the AFBC data source isn't aligned to the AFBC block (32x8).
>
> Configure OVL_CLIP so unaligned AFBC layers can be displayed.
>
> The following illustrates how the alignment is achieved through the clip
> settings for the horizontal coordinates, the vertical coordinates are
> analogous:
>
> /------------------------------------------------\
> > |
> > ........................ |
> > ........................ |
> > ........................ |
> > ........................ |
> > |
> \------------------------------------------------/
> | | | |
> | src.x1 src.x2 |
> | | | |
> | |<-------------------->| |
> | src_width |
> | |
> N * AFBC_DATA_BLOCK_WIDTH M * AFBC_DATA_BLOCK_WIDTH
> | |
> |<----->| |<----->|
> clip_left clip_right
As I know, crop is used to drop pixel data.
From the name of 'clip_left', I think it would drop the left part of this image.
But usually the image is aligned to the left (start from axis 0) and append garbage data in right part.
If so, clip_left should be zero and all the clip would be clip_right.
This is the normal behavior.
If OVL_CROP does behave as this, add comment to describe that clip_left does not drop pixel data.
Regards,
CK
>
> Signed-off-by: Ariel D'Alessandro <ariel.dalessandro at collabora.com>
> Co-developed-by: Nícolas F. R. A. Prado <nfraprado at collabora.com>
> Signed-off-by: Nícolas F. R. A. Prado <nfraprado at collabora.com>
> ---
>
More information about the linux-arm-kernel
mailing list