[PATCH RESEND v2 2/3] drm/vkms: add support for multiple overlay planes

Melissa Wen mwen at igalia.com
Sun Jan 9 16:59:55 UTC 2022


On 01/07, José Expósito wrote:
> Create 8 overlay planes instead of 1 when the "enable_overlay" module
> parameter is set.
> 
> The following igt-gpu-tools tests were executed without finding
> regressions. Notice than the numbers are identical:
> 
>                     |     master branch     |      this  patch      |
>                     | SUCCESS | SKIP | FAIL | SUCCESS | SKIP | FAIL |
>  kms_atomic         |      10 |   02 |   00 |      10 |   02 |   00 |
>  kms_plane_cursor   |      09 |   45 |   00 |      09 |   45 |   00 |
>  kms_plane_multiple |      01 |   23 |   00 |      01 |   23 |   00 |
>  kms_writeback      |      04 |   00 |   00 |      04 |   00 |   00 |

I checked that several testcases from kms_cursor_crc are failing after
recent changes in the test. However, this regression is not caused by
these changes and need futher investigation for fixing.

That said, this patch lgtm.

Reviewed-by: Melissa Wen <mwen at igalia.com>
> 
> Signed-off-by: José Expósito <jose.exposito89 at gmail.com>
> 
> ---
> 
> v2:
> 
>  - Set the number of overlay planes as a constant instead of as a
>    module parameter (Melissa Wen)
> 
>  - Add a test results in the commit message (Melissa Wen)
> ---
>  drivers/gpu/drm/vkms/vkms_drv.h    | 2 ++
>  drivers/gpu/drm/vkms/vkms_output.c | 9 ++++++---
>  2 files changed, 8 insertions(+), 3 deletions(-)
> 
> diff --git a/drivers/gpu/drm/vkms/vkms_drv.h b/drivers/gpu/drm/vkms/vkms_drv.h
> index d48c23d40ce5..9496fdc900b8 100644
> --- a/drivers/gpu/drm/vkms/vkms_drv.h
> +++ b/drivers/gpu/drm/vkms/vkms_drv.h
> @@ -20,6 +20,8 @@
>  #define XRES_MAX  8192
>  #define YRES_MAX  8192
>  
> +#define NUM_OVERLAY_PLANES 8
> +
>  struct vkms_writeback_job {
>  	struct dma_buf_map map[DRM_FORMAT_MAX_PLANES];
>  	struct dma_buf_map data[DRM_FORMAT_MAX_PLANES];
> diff --git a/drivers/gpu/drm/vkms/vkms_output.c b/drivers/gpu/drm/vkms/vkms_output.c
> index 2e805b2d36ae..ba0e82ae549a 100644
> --- a/drivers/gpu/drm/vkms/vkms_output.c
> +++ b/drivers/gpu/drm/vkms/vkms_output.c
> @@ -57,15 +57,18 @@ int vkms_output_init(struct vkms_device *vkmsdev, int index)
>  	struct vkms_plane *primary, *cursor = NULL;
>  	int ret;
>  	int writeback;
> +	unsigned int n;
>  
>  	primary = vkms_plane_init(vkmsdev, DRM_PLANE_TYPE_PRIMARY, index);
>  	if (IS_ERR(primary))
>  		return PTR_ERR(primary);
>  
>  	if (vkmsdev->config->overlay) {
> -		ret = vkms_add_overlay_plane(vkmsdev, index, crtc);
> -		if (ret)
> -			return ret;
> +		for (n = 0; n < NUM_OVERLAY_PLANES; n++) {
> +			ret = vkms_add_overlay_plane(vkmsdev, index, crtc);
> +			if (ret)
> +				return ret;
> +		}
>  	}
>  
>  	if (vkmsdev->config->cursor) {
> -- 
> 2.25.1
> 
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 833 bytes
Desc: not available
URL: <https://lists.freedesktop.org/archives/dri-devel/attachments/20220109/6d19fb97/attachment.sig>


More information about the dri-devel mailing list