On 18 December 2015 at 17:25, <ville.syrjala@xxxxxxxxxxxxxxx> wrote: > From: Ville Syrjälä <ville.syrjala@xxxxxxxxxxxxxxx> > > Several tests do one or more of the followin: > * igt_create_fb() + igt_paint_test_pattern() > * igt_create_color_fb() + igt_paint_test_pattern() > * igt_create_fb() + igt_paint_image() > > Extract them into new helpes: igt_create_pattern_fb(), > igt_create_color_pattern_fb(), igt_create_image_fb(). Couple of typos above: "ssme", "followin", "helpes" > > Signed-off-by: Ville Syrjälä <ville.syrjala@xxxxxxxxxxxxxxx> > --- > lib/igt_fb.c | 124 ++++++++++++++++++++++++++++++++++++++++++++++ > lib/igt_fb.h | 11 ++++ > tests/kms_atomic.c | 30 ++++------- > tests/kms_flip_tiling.c | 25 +++------- > tests/kms_panel_fitting.c | 42 ++++------------ > tests/kms_plane_scaling.c | 60 ++++++---------------- > tests/kms_pwrite_crc.c | 9 +--- > tests/kms_setmode.c | 11 ++-- > tests/pm_lpsp.c | 11 +--- > tests/pm_rpm.c | 10 ++-- > tests/testdisplay.c | 8 ++- > 11 files changed, 188 insertions(+), 153 deletions(-) > > diff --git a/lib/igt_fb.c b/lib/igt_fb.c > index 3ea9915c42c4..b3c7840a22ae 100644 > --- a/lib/igt_fb.c > +++ b/lib/igt_fb.c > @@ -537,6 +537,130 @@ unsigned int igt_create_color_fb(int fd, int width, int height, > return fb_id; > } > > +/** > + * igt_create_pattern_fb: > + * @fd: open i915 drm file descriptor > + * @width: width of the framebuffer in pixel > + * @height: height of the framebuffer in pixel > + * @format: drm fourcc pixel format code > + * @tiling: tiling layout of the framebuffer > + * @fb: pointer to an #igt_fb structure > + * > + * This function allocates a gem buffer object suitable to back a framebuffer > + * with the requested properties and then wraps it up in a drm framebuffer > + * object. All metadata is stored in @fb. > + * > + * Compared to igt_create_fb() this function also fills the entire framebuffer > + * with the test pattern. > + * > + * Returns: > + * The kms id of the created framebuffer on success or a negative error code on > + * failure. > + */ > +unsigned int igt_create_pattern_fb(int fd, int width, int height, > + uint32_t format, uint64_t tiling, > + struct igt_fb *fb /* out */) > +{ > + unsigned int fb_id; > + cairo_t *cr; > + > + fb_id = igt_create_fb(fd, width, height, format, tiling, fb); > + igt_assert(fb_id); > + > + cr = igt_get_cairo_ctx(fd, fb); > + igt_paint_test_pattern(cr, width, height); > + igt_assert(cairo_status(cr) == 0); > + cairo_destroy(cr); > + > + return fb_id; > +} > + > +/** > + * igt_create_pattern_fb: This should be igt_create_color_pattern_fb. > + * @fd: open i915 drm file descriptor > + * @width: width of the framebuffer in pixel > + * @height: height of the framebuffer in pixel > + * @format: drm fourcc pixel format code > + * @tiling: tiling layout of the framebuffer > + * @r: red value to use as fill color > + * @g: gree value to use as fill color Typo of "green" here. > + * @b: blue value to use as fill color > + * @fb: pointer to an #igt_fb structure > + * > + * This function allocates a gem buffer object suitable to back a framebuffer > + * with the requested properties and then wraps it up in a drm framebuffer > + * object. All metadata is stored in @fb. > + * > + * Compared to igt_create_fb() this function also fills the entire framebuffer > + * with the test pattern. > + * > + * Returns: > + * The kms id of the created framebuffer on success or a negative error code on > + * failure. > + */ > +unsigned int igt_create_color_pattern_fb(int fd, int width, int height, > + uint32_t format, uint64_t tiling, > + double r, double g, double b, > + struct igt_fb *fb /* out */) > +{ > + unsigned int fb_id; > + cairo_t *cr; > + > + fb_id = igt_create_fb(fd, width, height, format, tiling, fb); > + igt_assert(fb_id); > + > + cr = igt_get_cairo_ctx(fd, fb); > + igt_paint_color(cr, 0, 0, width, height, r, g, b); > + igt_paint_test_pattern(cr, width, height); > + igt_assert(cairo_status(cr) == 0); > + cairo_destroy(cr); > + > + return fb_id; > +} > + > +/** > + * igt_create_image_fb: > + * @drm_fd: open i915 drm file descriptor > + * @width: width of the framebuffer in pixel or 0 > + * @height: height of the framebuffer in pixel or 0 > + * @format: drm fourcc pixel format code > + * @tiling: tiling layout of the framebuffer > + * @filename: filename of the png image to draw @fb missing here. > + * > + * Create a framebuffer with the specified image. If @width is zero the > + * image width will be used. If @height is zero the image height will be used. > + * > + * Returns: > + * The kms id of the created framebuffer on success or a negative error code on > + * failure. > + */ > +unsigned int igt_create_image_fb(int fd, int width, int height, > + uint32_t format, uint64_t tiling, > + const char *filename, > + struct igt_fb *fb /* out */) > +{ > + cairo_surface_t *image; > + uint32_t fb_id; > + cairo_t *cr; > + > + image = cairo_image_surface_create_from_png(filename); > + igt_assert(cairo_surface_status(image) == CAIRO_STATUS_SUCCESS); > + if (width == 0) > + width = cairo_image_surface_get_width(image); > + if (height == 0) > + height = cairo_image_surface_get_height(image); > + cairo_surface_destroy(image); > + > + fb_id = igt_create_fb(fd, width, height, format, tiling, fb); > + > + cr = igt_get_cairo_ctx(fd, fb); > + igt_paint_image(cr, filename, 0, 0, width, height); > + igt_assert(cairo_status(cr) == 0); > + cairo_destroy(cr); > + > + return fb_id; > +} > + > struct box { > int x, y, width, height; > }; > diff --git a/lib/igt_fb.h b/lib/igt_fb.h > index 37892b50d495..5cc8644d01d4 100644 > --- a/lib/igt_fb.h > +++ b/lib/igt_fb.h > @@ -80,6 +80,17 @@ unsigned int igt_create_color_fb(int fd, int width, int height, > uint32_t format, uint64_t tiling, > double r, double g, double b, > struct igt_fb *fb /* out */); > +unsigned int igt_create_pattern_fb(int fd, int width, int height, > + uint32_t format, uint64_t tiling, > + struct igt_fb *fb /* out */); > +unsigned int igt_create_color_pattern_fb(int fd, int width, int height, > + uint32_t format, uint64_t tiling, > + double r, double g, double b, > + struct igt_fb *fb /* out */); > +unsigned int igt_create_image_fb(int drm_fd, int width, int height, > + uint32_t format, uint64_t tiling, > + const char *filename, > + struct igt_fb *fb /* out */); > unsigned int igt_create_stereo_fb(int drm_fd, drmModeModeInfo *mode, > uint32_t format, uint64_t tiling); > void igt_remove_fb(int fd, struct igt_fb *fb); > diff --git a/tests/kms_atomic.c b/tests/kms_atomic.c > index 7006e5eae411..501093cc3962 100644 > --- a/tests/kms_atomic.c > +++ b/tests/kms_atomic.c > @@ -867,7 +867,6 @@ static void plane_overlay(struct kms_atomic_crtc_state *crtc, > uint32_t format = plane_get_igt_format(&plane); > drmModeAtomicReq *req = drmModeAtomicAlloc(); > struct igt_fb fb; > - cairo_t *cr; > > igt_require(req); > igt_require(format != 0); > @@ -881,12 +880,9 @@ static void plane_overlay(struct kms_atomic_crtc_state *crtc, > plane.crtc_w = mode->hdisplay / 2; > plane.crtc_h = mode->vdisplay / 2; > plane.crtc_id = crtc->obj; > - plane.fb_id = igt_create_fb(plane.state->desc->fd, > - plane.crtc_w, plane.crtc_h, > - format, I915_TILING_NONE, &fb); > - > - cr = igt_get_cairo_ctx(plane.state->desc->fd, &fb); > - igt_paint_test_pattern(cr, plane.crtc_w, plane.crtc_h); > + plane.fb_id = igt_create_pattern_fb(plane.state->desc->fd, > + plane.crtc_w, plane.crtc_h, > + format, I915_TILING_NONE, &fb); > > /* Enable the overlay plane using the atomic API, and double-check > * state is what we think it should be. */ > @@ -916,7 +912,6 @@ static void plane_primary(struct kms_atomic_crtc_state *crtc, > uint32_t *connectors; > int num_connectors; > struct igt_fb fb; > - cairo_t *cr; > int i; > > connectors = calloc(crtc->state->num_connectors, sizeof(*connectors)); > @@ -939,12 +934,9 @@ static void plane_primary(struct kms_atomic_crtc_state *crtc, > plane.crtc_w = mode->hdisplay; > plane.crtc_h = mode->vdisplay; > plane.crtc_id = crtc->obj; > - plane.fb_id = igt_create_fb(plane.state->desc->fd, > - plane.crtc_w, plane.crtc_h, > - format, I915_TILING_NONE, &fb); > - > - cr = igt_get_cairo_ctx(plane.state->desc->fd, &fb); > - igt_paint_test_pattern(cr, plane.crtc_w, plane.crtc_h); > + plane.fb_id = igt_create_pattern_fb(plane.state->desc->fd, > + plane.crtc_w, plane.crtc_h, > + format, I915_TILING_NONE, &fb); > > /* Flip the primary plane using the atomic API, and double-check > * state is what we think it should be. */ > @@ -1044,7 +1036,6 @@ static void plane_invalid_params(struct kms_atomic_crtc_state *crtc, > uint32_t format = plane_get_igt_format(&plane); > drmModeAtomicReq *req = drmModeAtomicAlloc(); > struct igt_fb fb; > - cairo_t *cr; > > /* Pass a series of invalid object IDs for the FB ID. */ > plane.fb_id = plane.obj; > @@ -1098,12 +1089,9 @@ static void plane_invalid_params(struct kms_atomic_crtc_state *crtc, > plane.crtc_w = mode->hdisplay; > plane.crtc_h = mode->vdisplay; > plane.crtc_id = crtc->obj; > - plane.fb_id = igt_create_fb(plane.state->desc->fd, > - plane.crtc_w - 1, plane.crtc_h - 1, > - format, I915_TILING_NONE, &fb); > - > - cr = igt_get_cairo_ctx(plane.state->desc->fd, &fb); > - igt_paint_test_pattern(cr, plane.crtc_w - 1, plane.crtc_h - 1); > + plane.fb_id = igt_create_pattern_fb(plane.state->desc->fd, > + plane.crtc_w - 1, plane.crtc_h - 1, > + format, I915_TILING_NONE, &fb); > > plane_commit_atomic_err(&plane, plane_old, req, > ATOMIC_RELAX_NONE, ENOSPC); > diff --git a/tests/kms_flip_tiling.c b/tests/kms_flip_tiling.c > index 653a9706a700..4f7334de65fe 100644 > --- a/tests/kms_flip_tiling.c > +++ b/tests/kms_flip_tiling.c > @@ -39,16 +39,6 @@ typedef struct { > int gen; > } data_t; > > -static void > -fill_fb(struct igt_fb *fb, data_t *data, drmModeModeInfo *mode) > -{ > - cairo_t *cr; > - > - cr = igt_get_cairo_ctx(data->drm_fd, fb); > - igt_paint_test_pattern(cr, mode->hdisplay, mode->vdisplay); > - cairo_destroy(cr); > -} > - > static igt_pipe_crc_t *_pipe_crc; > > static igt_pipe_crc_t *pipe_crc_new(int pipe) > @@ -121,20 +111,17 @@ test_flip_tiling(data_t *data, igt_output_t *output, uint64_t tiling[2]) > width *= 2; > } > > - fb_id = igt_create_fb(data->drm_fd, width, mode->vdisplay, > - DRM_FORMAT_XRGB8888, tiling[0], > - &fb[0]); > + fb_id = igt_create_pattern_fb(data->drm_fd, width, mode->vdisplay, > + DRM_FORMAT_XRGB8888, tiling[0], > + &fb[0]); > igt_assert(fb_id); > > /* Second fb has different background so CRC does not match. */ > - fb_id = igt_create_color_fb(data->drm_fd, width, mode->vdisplay, > - DRM_FORMAT_XRGB8888, tiling[1], > - 0.5, 0.5, 0.5, &fb[1]); > + fb_id = igt_create_color_pattern_fb(data->drm_fd, width, mode->vdisplay, > + DRM_FORMAT_XRGB8888, tiling[1], > + 0.5, 0.5, 0.5, &fb[1]); > igt_assert(fb_id); > > - fill_fb(&fb[0], data, mode); > - fill_fb(&fb[1], data, mode); > - > /* Set the crtc and generate a reference CRC. */ > igt_plane_set_fb(primary, &fb[1]); > igt_display_commit(&data->display); > diff --git a/tests/kms_panel_fitting.c b/tests/kms_panel_fitting.c > index f8726e277c9d..829d9cdd0631 100644 > --- a/tests/kms_panel_fitting.c > +++ b/tests/kms_panel_fitting.c > @@ -53,26 +53,6 @@ typedef struct { > > #define FILE_NAME "1080p-left.png" > > -static void > -paint_color(data_t *d, struct igt_fb *fb, uint16_t w, uint16_t h) > -{ > - cairo_t *cr; > - > - cr = igt_get_cairo_ctx(d->drm_fd, fb); > - igt_paint_test_pattern(cr, w, h); > - cairo_destroy(cr); > -} > - > -static void > -paint_image(data_t *d, struct igt_fb *fb, uint16_t w, uint16_t h) > -{ > - cairo_t *cr; > - > - cr = igt_get_cairo_ctx(d->drm_fd, fb); > - igt_paint_image(cr, FILE_NAME, 0, 0, w, h); > - cairo_destroy(cr); > -} > - > static void prepare_crtc(data_t *data, igt_output_t *output, enum pipe pipe, > igt_plane_t *plane, drmModeModeInfo *mode, enum igt_commit_style s) > { > @@ -91,15 +71,13 @@ static void prepare_crtc(data_t *data, igt_output_t *output, enum pipe pipe, > } > > /* allocate fb for plane 1 */ > - data->fb_id1 = igt_create_fb(data->drm_fd, > - mode->hdisplay, mode->vdisplay, > - DRM_FORMAT_XRGB8888, > - LOCAL_I915_FORMAT_MOD_X_TILED, /* tiled */ > - &data->fb1); > + data->fb_id1 = igt_create_pattern_fb(data->drm_fd, > + mode->hdisplay, mode->vdisplay, > + DRM_FORMAT_XRGB8888, > + LOCAL_I915_FORMAT_MOD_X_TILED, /* tiled */ > + &data->fb1); > igt_assert(data->fb_id1); > > - paint_color(data, &data->fb1, mode->hdisplay, mode->vdisplay); > - > /* > * We always set the primary plane to actually enable the pipe as > * there's no way (that works) to light up a pipe with only a sprite > @@ -188,13 +166,11 @@ static void test_panel_fitting(data_t *d) > d->image_h = cairo_image_surface_get_height(image); > cairo_surface_destroy(image); > > - d->fb_id2 = igt_create_fb(d->drm_fd, > - d->image_w, d->image_h, > - DRM_FORMAT_XRGB8888, > - LOCAL_I915_FORMAT_MOD_X_TILED, /* tiled */ > - &d->fb2); > + d->fb_id2 = igt_create_image_fb(d->drm_fd, 0, 0, > + DRM_FORMAT_XRGB8888, > + LOCAL_I915_FORMAT_MOD_X_TILED, /* tiled */ > + FILE_NAME, &d->fb2); > igt_assert(d->fb_id2); > - paint_image(d, &d->fb2, d->fb2.width, d->fb2.height); > > /* Set up display to enable panel fitting */ > mode->hdisplay = 640; > diff --git a/tests/kms_plane_scaling.c b/tests/kms_plane_scaling.c > index 74bc6f8c148e..ad5404d90bfa 100644 > --- a/tests/kms_plane_scaling.c > +++ b/tests/kms_plane_scaling.c > @@ -55,26 +55,6 @@ typedef struct { > > #define FILE_NAME "1080p-left.png" > > -static void > -paint_color(data_t *d, struct igt_fb *fb, uint16_t w, uint16_t h) > -{ > - cairo_t *cr; > - > - cr = igt_get_cairo_ctx(d->drm_fd, fb); > - igt_paint_test_pattern(cr, w, h); > - cairo_destroy(cr); > -} > - > -static void > -paint_image(data_t *d, struct igt_fb *fb, uint16_t w, uint16_t h) > -{ > - cairo_t *cr; > - > - cr = igt_get_cairo_ctx(d->drm_fd, fb); > - igt_paint_image(cr, FILE_NAME, 0, 0, w, h); > - cairo_destroy(cr); > -} > - > static void prepare_crtc(data_t *data, igt_output_t *output, enum pipe pipe, > igt_plane_t *plane, drmModeModeInfo *mode, enum igt_commit_style s) > { > @@ -93,15 +73,13 @@ static void prepare_crtc(data_t *data, igt_output_t *output, enum pipe pipe, > } > > /* allocate fb for plane 1 */ > - data->fb_id1 = igt_create_fb(data->drm_fd, > - mode->hdisplay, mode->vdisplay, > - DRM_FORMAT_XRGB8888, > - LOCAL_I915_FORMAT_MOD_X_TILED, /* tiled */ > - &data->fb1); > + data->fb_id1 = igt_create_pattern_fb(data->drm_fd, > + mode->hdisplay, mode->vdisplay, > + DRM_FORMAT_XRGB8888, > + LOCAL_I915_FORMAT_MOD_X_TILED, /* tiled */ > + &data->fb1); > igt_assert(data->fb_id1); > > - paint_color(data, &data->fb1, mode->hdisplay, mode->vdisplay); > - > /* > * We always set the primary plane to actually enable the pipe as > * there's no way (that works) to light up a pipe with only a sprite > @@ -201,7 +179,6 @@ static void test_plane_scaling(data_t *d) > { > igt_display_t *display = &d->display; > igt_output_t *output; > - cairo_surface_t *image; > enum pipe pipe; > int valid_tests = 0; > int primary_plane_scaling = 0; /* For now */ > @@ -218,27 +195,18 @@ static void test_plane_scaling(data_t *d) > mode = igt_output_get_mode(output); > > /* allocate fb2 with image size */ > - image = cairo_image_surface_create_from_png(FILE_NAME); > - igt_assert(cairo_surface_status(image) == CAIRO_STATUS_SUCCESS); > - d->image_w = cairo_image_surface_get_width(image); > - d->image_h = cairo_image_surface_get_height(image); > - cairo_surface_destroy(image); > - > - d->fb_id2 = igt_create_fb(d->drm_fd, > - d->image_w, d->image_h, > - DRM_FORMAT_XRGB8888, > - LOCAL_I915_FORMAT_MOD_X_TILED, /* tiled */ > - &d->fb2); > + d->fb_id2 = igt_create_image_fb(d->drm_fd, 0, 0, > + DRM_FORMAT_XRGB8888, > + LOCAL_I915_FORMAT_MOD_X_TILED, /* tiled */ > + FILE_NAME, &d->fb2); > igt_assert(d->fb_id2); > - paint_image(d, &d->fb2, d->fb2.width, d->fb2.height); > > - d->fb_id3 = igt_create_fb(d->drm_fd, > - mode->hdisplay, mode->vdisplay, > - DRM_FORMAT_XRGB8888, > - LOCAL_I915_FORMAT_MOD_X_TILED, /* tiled */ > - &d->fb3); > + d->fb_id3 = igt_create_pattern_fb(d->drm_fd, > + mode->hdisplay, mode->vdisplay, > + DRM_FORMAT_XRGB8888, > + LOCAL_I915_FORMAT_MOD_X_TILED, /* tiled */ > + &d->fb3); > igt_assert(d->fb_id3); > - paint_color(d, &d->fb3, mode->hdisplay, mode->vdisplay); > > /* Set up display with plane 1 */ > d->plane1 = igt_output_get_plane(output, IGT_PLANE_PRIMARY); > diff --git a/tests/kms_pwrite_crc.c b/tests/kms_pwrite_crc.c > index 983418f845cd..86292bda32b3 100644 > --- a/tests/kms_pwrite_crc.c > +++ b/tests/kms_pwrite_crc.c > @@ -50,7 +50,6 @@ static void test(data_t *data) > igt_output_t *output = data->output; > struct igt_fb *fb = &data->fb[1]; > drmModeModeInfo *mode; > - cairo_t *cr; > uint32_t caching; > void *buf; > igt_crc_t crc; > @@ -58,12 +57,8 @@ static void test(data_t *data) > mode = igt_output_get_mode(output); > > /* create a non-white fb where we can pwrite later */ > - igt_create_fb(data->drm_fd, mode->hdisplay, mode->vdisplay, > - DRM_FORMAT_XRGB8888, LOCAL_DRM_FORMAT_MOD_NONE, fb); > - > - cr = igt_get_cairo_ctx(data->drm_fd, fb); > - igt_paint_test_pattern(cr, fb->width, fb->height); > - cairo_destroy(cr); > + igt_create_pattern_fb(data->drm_fd, mode->hdisplay, mode->vdisplay, > + DRM_FORMAT_XRGB8888, LOCAL_DRM_FORMAT_MOD_NONE, fb); > > /* flip to it to make it UC/WC and fully flushed */ > drmModeSetPlane(data->drm_fd, > diff --git a/tests/kms_setmode.c b/tests/kms_setmode.c > index d5ac8f931b55..531ce8391fa7 100644 > --- a/tests/kms_setmode.c > +++ b/tests/kms_setmode.c > @@ -146,8 +146,6 @@ static int paint_fb(struct igt_fb *fb, const char *test_name, > > cr = igt_get_cairo_ctx(drm_fd, fb); > > - igt_paint_test_pattern(cr, fb->width, fb->height); > - > cairo_move_to(cr, fb->width / 2, fb->height / 2); > cairo_set_font_size(cr, 24); > igt_cairo_printf_line(cr, align_hcenter, 40, "%s", test_name); > @@ -180,10 +178,11 @@ static void create_fb_for_crtc(struct crtc_config *crtc, > > bpp = 32; > depth = 24; > - fb_id = igt_create_fb(drm_fd, crtc->mode.hdisplay, > - crtc->mode.vdisplay, > - igt_bpp_depth_to_drm_format(bpp, depth), > - LOCAL_DRM_FORMAT_MOD_NONE, fb_info); > + fb_id = igt_create_pattern_fb(drm_fd, crtc->mode.hdisplay, > + crtc->mode.vdisplay, > + igt_bpp_depth_to_drm_format(bpp, depth), > + LOCAL_DRM_FORMAT_MOD_NONE, > + fb_info); > igt_assert_lt(0, fb_id); > } > > diff --git a/tests/pm_lpsp.c b/tests/pm_lpsp.c > index 257ae1b8b1d9..a82420bf06de 100644 > --- a/tests/pm_lpsp.c > +++ b/tests/pm_lpsp.c > @@ -78,16 +78,9 @@ static void screens_disabled_subtest(int drm_fd, drmModeResPtr drm_res) > static uint32_t create_fb(int drm_fd, int width, int height) > { > struct igt_fb fb; > - cairo_t *cr; > - uint32_t buffer_id; > > - buffer_id = igt_create_fb(drm_fd, width, height, DRM_FORMAT_XRGB8888, > - LOCAL_DRM_FORMAT_MOD_NONE, &fb); > - cr = igt_get_cairo_ctx(drm_fd, &fb); > - igt_paint_test_pattern(cr, width, height); > - cairo_destroy(cr); > - > - return buffer_id; > + return igt_create_pattern_fb(drm_fd, width, height, DRM_FORMAT_XRGB8888, > + LOCAL_DRM_FORMAT_MOD_NONE, &fb); > } > > static void edp_subtest(int drm_fd, drmModeResPtr drm_res, > diff --git a/tests/pm_rpm.c b/tests/pm_rpm.c > index 55fdb31cb723..3a5e8bafd3c7 100644 > --- a/tests/pm_rpm.c > +++ b/tests/pm_rpm.c > @@ -233,7 +233,6 @@ static bool init_modeset_params_for_type(struct mode_set_data *data, > int i; > uint32_t connector_id = 0; > drmModeModeInfoPtr mode = NULL; > - cairo_t *cr; > > for (i = 0; i < data->res->count_connectors; i++) { > drmModeConnectorPtr c = data->connectors[i]; > @@ -256,12 +255,9 @@ static bool init_modeset_params_for_type(struct mode_set_data *data, > if (!connector_id) > return false; > > - igt_create_fb(drm_fd, mode->hdisplay, mode->vdisplay, > - DRM_FORMAT_XRGB8888, LOCAL_DRM_FORMAT_MOD_NONE, > - ¶ms->fb); > - cr = igt_get_cairo_ctx(drm_fd, ¶ms->fb); > - igt_paint_test_pattern(cr, mode->hdisplay, mode->vdisplay); > - cairo_destroy(cr); > + igt_create_pattern_fb(drm_fd, mode->hdisplay, mode->vdisplay, > + DRM_FORMAT_XRGB8888, LOCAL_DRM_FORMAT_MOD_NONE, > + ¶ms->fb); > > params->crtc_id = data->res->crtcs[0]; > params->connector_id = connector_id; > diff --git a/tests/testdisplay.c b/tests/testdisplay.c > index 74e60b6f4bda..ff49e23a972d 100644 > --- a/tests/testdisplay.c > +++ b/tests/testdisplay.c > @@ -259,8 +259,6 @@ static void paint_output_info(struct connector *c, struct igt_fb *fb) > double max_width; > int i; > > - igt_paint_test_pattern(cr, l_width, l_height); > - > cairo_move_to(cr, l_width / 2, l_height / 2); > > /* Print connector and mode name */ > @@ -353,9 +351,9 @@ set_mode(struct connector *c) > width = c->mode.hdisplay; > height = c->mode.vdisplay; > > - fb_id = igt_create_fb(drm_fd, width, height, > - igt_bpp_depth_to_drm_format(bpp, depth), > - tiling, &fb_info[current_fb]); > + fb_id = igt_create_pattern_fb(drm_fd, width, height, > + igt_bpp_depth_to_drm_format(bpp, depth), > + tiling, &fb_info[current_fb]); > paint_output_info(c, &fb_info[current_fb]); > paint_color_key(&fb_info[current_fb]); > > -- > 2.4.10 > > _______________________________________________ > Intel-gfx mailing list > Intel-gfx@xxxxxxxxxxxxxxxxxxxxx > http://lists.freedesktop.org/mailman/listinfo/intel-gfx _______________________________________________ Intel-gfx mailing list Intel-gfx@xxxxxxxxxxxxxxxxxxxxx http://lists.freedesktop.org/mailman/listinfo/intel-gfx