@@ -1531,6 +1531,17 @@ void kmstest_remove_fb(int fd, struct kmstest_fb *fb)
gem_close(fd, fb->gem_handle);
}
+void kmstest_write_fb(int fd, struct kmstest_fb *fb, const char *filename)
+{
+ cairo_surface_t *surface;
+ cairo_status_t status;
+
+ surface = create_image_surface(fd, fb);
+ status = cairo_surface_write_to_png(surface, filename);
+ assert(status == CAIRO_STATUS_SUCCESS);
+ cairo_surface_destroy(surface);
+}
+
const char *kmstest_format_str(uint32_t drm_format)
{
struct format_desc_struct *f;
@@ -328,6 +328,7 @@ void kmstest_paint_color_gradient(cairo_t *cr, int x, int y, int w, int h,
void kmstest_paint_test_pattern(cairo_t *cr, int width, int height);
void kmstest_paint_image(cairo_t *cr, const char *filename,
int dst_x, int dst_y, int dst_width, int dst_height);
+void kmstest_write_fb(int fd, struct kmstest_fb *fb, const char *filename);
void kmstest_dump_mode(drmModeModeInfo *mode);
int kmstest_get_pipe_from_crtc_id(int fd, int crtc_id);
const char *kmstest_format_str(uint32_t drm_format);
Signed-off-by: Damien Lespiau <damien.lespiau@intel.com> --- lib/drmtest.c | 11 +++++++++++ lib/drmtest.h | 1 + 2 files changed, 12 insertions(+)