[Intel-gfx] [PATCH 1/1] kms_cursor_crc/Enabling this test for variable cursor width and heights
sagar.a.kamble at intel.com
sagar.a.kamble at intel.com
Mon Feb 24 16:37:05 CET 2014
From: Sagar Kamble <sagar.a.kamble at intel.com>
Signed-off-by: Sagar Kamble <sagar.a.kamble at intel.com>
---
tests/kms_cursor_crc.c | 51 ++++++++++++++++++++++++++++++--------------------
1 file changed, 31 insertions(+), 20 deletions(-)
diff --git a/tests/kms_cursor_crc.c b/tests/kms_cursor_crc.c
index 38aa1ab..4458248 100644
--- a/tests/kms_cursor_crc.c
+++ b/tests/kms_cursor_crc.c
@@ -34,6 +34,8 @@
#include "igt_debugfs.h"
#include "igt_kms.h"
+int w = 0, h = 0;
+
enum cursor_type {
WHITE_VISIBLE,
WHITE_INVISIBLE,
@@ -170,7 +172,7 @@ static void test_crc(test_data_t *test_data, enum cursor_type cursor_type,
/* enable cursor */
igt_assert(drmModeSetCursor(data->drm_fd, test_data->crtc_id,
- data->fb[cursor_type].gem_handle, 64, 64) == 0);
+ data->fb[cursor_type].gem_handle, w, h) == 0);
if (onscreen) {
/* cursor onscreen, crc should match, except when white visible cursor is used */
@@ -180,32 +182,32 @@ static void test_crc(test_data_t *test_data, enum cursor_type cursor_type,
do_test(test_data, left, right, top, bottom);
/* 2 pixels inside */
- do_test(test_data, left - 62, right + 62, top , bottom );
- do_test(test_data, left , right , top - 62, bottom + 62);
- do_test(test_data, left - 62, right + 62, top - 62, bottom + 62);
+ do_test(test_data, left - (w - 2), right + (w - 2), top , bottom );
+ do_test(test_data, left , right , top - (w - 2), bottom + (w - 2));
+ do_test(test_data, left - (w - 2), right + (w - 2), top - (w - 2), bottom + (w - 2));
/* 1 pixel inside */
- do_test(test_data, left - 63, right + 63, top , bottom );
- do_test(test_data, left , right , top - 63, bottom + 63);
- do_test(test_data, left - 63, right + 63, top - 63, bottom + 63);
+ do_test(test_data, left - (w - 1), right + (w - 1), top , bottom );
+ do_test(test_data, left , right , top - (w - 1), bottom + (w - 1));
+ do_test(test_data, left - (w - 1), right + (w - 1), top - (w - 1), bottom + (w - 1));
} else {
/* cursor offscreen, crc should always match */
test_data->crc_must_match = true;
/* fully outside */
- do_test(test_data, left - 64, right + 64, top , bottom );
- do_test(test_data, left , right , top - 64, bottom + 64);
- do_test(test_data, left - 64, right + 64, top - 64, bottom + 64);
+ do_test(test_data, left - w, right + w, top , bottom );
+ do_test(test_data, left , right , top - w, bottom + w);
+ do_test(test_data, left - w, right + w, top - w, bottom + w);
/* fully outside by 1 extra pixels */
- do_test(test_data, left - 65, right + 65, top , bottom );
- do_test(test_data, left , right , top - 65, bottom + 65);
- do_test(test_data, left - 65, right + 65, top - 65, bottom + 65);
+ do_test(test_data, left - (w + 1), right + (w + 1), top , bottom );
+ do_test(test_data, left , right , top - (w + 1), bottom + (w + 1));
+ do_test(test_data, left - (w + 1), right + (w + 1), top - (w + 1), bottom + (w + 1));
/* fully outside by 2 extra pixels */
- do_test(test_data, left - 66, right + 66, top , bottom );
- do_test(test_data, left , right , top - 66, bottom + 66);
- do_test(test_data, left - 66, right + 66, top - 66, bottom + 66);
+ do_test(test_data, left - (w + 2), right + (w + 2), top , bottom );
+ do_test(test_data, left , right , top - (w + 2), bottom + (w + 2));
+ do_test(test_data, left - (w + 2), right + (w + 2), top - (w + 2), bottom + (w + 2));
/* fully outside by a lot of extra pixels */
do_test(test_data, left - 512, right + 512, top , bottom );
@@ -251,9 +253,9 @@ static bool prepare_crtc(test_data_t *test_data, uint32_t connector_id)
/* x/y position where the cursor is still fully visible */
test_data->left = 0;
- test_data->right = connector.config.default_mode.hdisplay - 64;
+ test_data->right = connector.config.default_mode.hdisplay - w;
test_data->top = 0;
- test_data->bottom = connector.config.default_mode.vdisplay - 64;
+ test_data->bottom = connector.config.default_mode.vdisplay - h;
/* make sure cursor is disabled */
igt_assert(drmModeSetCursor(data->drm_fd, test_data->crtc_id, 0, 0, 0) == 0);
@@ -314,20 +316,29 @@ static void create_cursor_fb(data_t *data,
{
cairo_t *cr;
- data->fb_id[cursor_type] = kmstest_create_fb2(data->drm_fd, 64, 64,
+ data->fb_id[cursor_type] = kmstest_create_fb2(data->drm_fd, w, h,
DRM_FORMAT_ARGB8888, false,
&data->fb[cursor_type]);
igt_assert(data->fb_id[cursor_type]);
cr = kmstest_get_cairo_ctx(data->drm_fd,
&data->fb[cursor_type]);
- kmstest_paint_color_alpha(cr, 0, 0, 64, 64, r, g, b, a);
+ kmstest_paint_color_alpha(cr, 0, 0, w, h, r, g, b, a);
igt_assert(cairo_status(cr) == 0);
}
igt_main
{
data_t data = {};
+ int c;
+ char args[10];
+
+ printf("\nEnter Width and Height of Cursor Plane (64x64, 128x128):");
+ scanf("%s", args);
+ if (sscanf(args, "%dx%d", &w, &h) != 2) {
+ printf("\nInvalid arguments");
+ return -1;
+ }
igt_skip_on_simulation();
--
1.8.5
More information about the Intel-gfx
mailing list