diff mbox series

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

Message ID 20220107182809.141003-2-jose.exposito89@gmail.com (mailing list archive)
State New, archived
Headers show
Series [RESEND,v2,1/3] drm/vkms: refactor overlay plane creation | expand

Commit Message

José Expósito Jan. 7, 2022, 6:28 p.m. UTC
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 |

Signed-off-by: José Expósito <jose.exposito89@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(-)

Comments

Melissa Wen Jan. 9, 2022, 4:59 p.m. UTC | #1
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@igalia.com>
> 
> Signed-off-by: José Expósito <jose.exposito89@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
>
José Expósito Jan. 9, 2022, 5:59 p.m. UTC | #2
Hi Melissa,

Thanks for reviewing and applying the series :)

Now [1] should apply cleanly on drm-misc-next. Do you want me to resend
it with the appropriate prefix?

On Sun, Jan 09, 2022 at 03:59:55PM -0100, Melissa Wen wrote:
> 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.

I didn't include the results for kms_cursor_crc because some of the
tests cause issues on my PC. However, if you want to share the list of
regressions, I'll have a look into the test as well.

Thanks again,
José Expósito

[1] https://lore.kernel.org/all/20211226111219.27616-2-jose.exposito89@gmail.com/
diff mbox series

Patch

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) {