[Intel-gfx] [PATCH i-g-t 17/43] kms_rotation_crc: Factor out common primary/sprite code in prepare_crtc()

Damien Lespiau damien.lespiau at intel.com
Thu Jul 10 20:00:18 CEST 2014


This results in less code, always a good thing. Also, we only really
need one reference CRC.

Signed-off-by: Damien Lespiau <damien.lespiau at intel.com>
---
 tests/kms_rotation_crc.c | 89 +++++++++++++++++-------------------------------
 1 file changed, 32 insertions(+), 57 deletions(-)

diff --git a/tests/kms_rotation_crc.c b/tests/kms_rotation_crc.c
index 5f499d7..bc11b9c 100644
--- a/tests/kms_rotation_crc.c
+++ b/tests/kms_rotation_crc.c
@@ -61,7 +61,7 @@ typedef struct {
 	int type;
 	int pipe;
 	struct igt_fb fb;
-	igt_crc_t ref_crc[2];
+	igt_crc_t ref_crc;
 	igt_pipe_crc_t *pipe_crc;
 	int rotate;
 } data_t;
@@ -97,7 +97,7 @@ static bool prepare_crtc(data_t *data)
 	drmModeModeInfo *mode;
 	igt_display_t *display = &data->display;
 	igt_output_t *output = data->output;
-	igt_plane_t *primary, *sprite;
+	igt_plane_t *plane;
 	int fb_id;
 
 	igt_output_set_pipe(output, data->pipe);
@@ -106,6 +106,19 @@ static bool prepare_crtc(data_t *data)
 	if (!data->output->valid)
 		return false;
 
+	switch (data->type) {
+		case DRM_PLANE_TYPE_OVERLAY: /* Sprite */
+			igt_info("Sprite plane\n");
+			plane = igt_output_get_plane(output, IGT_PLANE_2);
+			break;
+		case DRM_PLANE_TYPE_PRIMARY: /* Primary */
+			igt_info("Primary plane\n");
+			plane = igt_output_get_plane(output, IGT_PLANE_PRIMARY);
+			break;
+		default:
+			return false;
+	}
+
 	/* create the pipe_crc object for this pipe */
 	if (data->pipe_crc)
 		igt_pipe_crc_free(data->pipe_crc);
@@ -118,65 +131,27 @@ static bool prepare_crtc(data_t *data)
 		return false;
 	}
 
-	switch (data->type) {
-
-		case DRM_PLANE_TYPE_OVERLAY: /* Sprite */
-			igt_info("Sprite plane\n");
-			mode = igt_output_get_mode(output);
-
-			fb_id = igt_create_fb(data->gfx_fd,
-					mode->hdisplay, mode->vdisplay,
-					DRM_FORMAT_XRGB8888,
-					false, /* tiled */
-					&data->fb);
-			igt_assert(fb_id);
-
-			paint_squares(data, &data->fb, mode, DRM_ROTATE_180);
-
-			sprite = igt_output_get_plane(output, IGT_PLANE_2);
-			igt_plane_set_fb(sprite, &data->fb);
-			igt_display_commit(display);
-
-			/* Collect reference crc */
-			igt_pipe_crc_collect_crc(data->pipe_crc, &data->ref_crc[1]);
-
-			paint_squares(data, &data->fb, mode, DRM_ROTATE_0);
-
-			sprite = igt_output_get_plane(output, IGT_PLANE_2);
-			igt_plane_set_fb(sprite, &data->fb);
-			igt_display_commit(display);
-
-			break;
-		case DRM_PLANE_TYPE_PRIMARY: /* Primary */
-			igt_info("Primary plane\n");
-			mode = igt_output_get_mode(output);
-
-			fb_id = igt_create_fb(data->gfx_fd,
-					      mode->hdisplay, mode->vdisplay,
-					      DRM_FORMAT_XRGB8888,
-					      false, /* tiled */
-					      &data->fb);
-			igt_assert(fb_id);
-
-			paint_squares(data, &data->fb, mode, DRM_ROTATE_180);
-
-			primary = igt_output_get_plane(output, IGT_PLANE_PRIMARY);
-			igt_plane_set_fb(primary, &data->fb);
-			igt_display_commit(display);
+	mode = igt_output_get_mode(output);
 
-			/* Collect reference crc */
-			igt_pipe_crc_collect_crc(data->pipe_crc, &data->ref_crc[0]);
+	fb_id = igt_create_fb(data->gfx_fd,
+			mode->hdisplay, mode->vdisplay,
+			DRM_FORMAT_XRGB8888,
+			false, /* tiled */
+			&data->fb);
+	igt_assert(fb_id);
 
-			paint_squares(data, &data->fb, mode, DRM_ROTATE_0);
+	paint_squares(data, &data->fb, mode, DRM_ROTATE_180);
 
-			primary = igt_output_get_plane(output, IGT_PLANE_PRIMARY);
-			igt_plane_set_fb(primary, &data->fb);
-			igt_display_commit(display);
+	igt_plane_set_fb(plane, &data->fb);
+	igt_display_commit(display);
 
-			break;
+	/* Collect reference crc */
+	igt_pipe_crc_collect_crc(data->pipe_crc, &data->ref_crc);
 
+	paint_squares(data, &data->fb, mode, DRM_ROTATE_0);
 
-	}
+	igt_plane_set_fb(plane, &data->fb);
+	igt_display_commit(display);
 
 	return true;
 }
@@ -332,7 +307,7 @@ static void test_sprite_rotation(data_t *data)
 					return;
 				}
 			}
-			igt_assert(igt_crc_equal(&data->ref_crc[1], &crc_output));
+			igt_assert(igt_crc_equal(&data->ref_crc, &crc_output));
 			sleep(2);
 			valid_tests++;
 			cleanup_crtc(data, output);
@@ -378,7 +353,7 @@ static void test_primary_rotation(data_t *data)
 					return;
 				}
 			}
-			igt_assert(igt_crc_equal(&data->ref_crc[0], &crc_output));
+			igt_assert(igt_crc_equal(&data->ref_crc, &crc_output));
 			sleep(2);
 			valid_tests++;
 			cleanup_crtc(data, output);
-- 
1.8.3.1




More information about the Intel-gfx mailing list