[igt-dev] [PATCH i-g-t 1/4] tests/i915/kms_psr2_sf.c: Fix for setting wrong size for cursor fb

Jouni Högander jouni.hogander at intel.com
Mon May 30 06:06:58 UTC 2022


Current code is setting wrong size for cursor framebuffer. Fix thi
by handling all plane types separately.

Fixes: https://gitlab.freedesktop.org/drm/intel/-/issues/6064
Signed-off-by: Jouni Högander <jouni.hogander at intel.com>
---
 tests/i915/kms_psr2_sf.c | 20 +++++++++++++++-----
 1 file changed, 15 insertions(+), 5 deletions(-)

diff --git a/tests/i915/kms_psr2_sf.c b/tests/i915/kms_psr2_sf.c
index 1ccbd11a..f9f514ab 100644
--- a/tests/i915/kms_psr2_sf.c
+++ b/tests/i915/kms_psr2_sf.c
@@ -710,8 +710,7 @@ static void plane_move_continuous(data_t *data)
 static void damaged_plane_update(data_t *data)
 {
 	igt_plane_t *test_plane = data->test_plane;
-	uint32_t h = data->mode->hdisplay;
-	uint32_t v = data->mode->vdisplay;
+	uint32_t h, v;
 	int x, y;
 
 	if (data->big_fb_test) {
@@ -721,9 +720,20 @@ static void damaged_plane_update(data_t *data)
 		x = y = 0;
 	}
 
-	if (data->test_plane_id == DRM_PLANE_TYPE_OVERLAY) {
-		h = h/2;
-		v = v/2;
+	switch (data->test_plane_id) {
+	case DRM_PLANE_TYPE_OVERLAY:
+		h = data->mode->hdisplay / 2;
+		v = data->mode->vdisplay / 2;
+		break;
+	case DRM_PLANE_TYPE_PRIMARY:
+		h = data->mode->hdisplay;
+		v = data->mode->vdisplay;
+		break;
+	case DRM_PLANE_TYPE_CURSOR:
+		h = v = CUR_SIZE;
+		break;
+	default:
+		igt_assert(false);
 	}
 
 	if (data->screen_changes & 1) {
-- 
2.25.1



More information about the igt-dev mailing list