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