* [PATCH] tests/testdisplay.c: Add a option '-g' to save images which intended to paint on screen during each mode setting.
@ 2012-08-01 1:51 Yi Sun
2012-08-01 3:21 ` Ben Widawsky
2012-08-06 7:09 ` Daniel Vetter
0 siblings, 2 replies; 6+ messages in thread
From: Yi Sun @ 2012-08-01 1:51 UTC (permalink / raw)
To: daniel.vetter; +Cc: intel-gfx
That option will save all the images which are created and intended to paint on screen.
The images will be saved in folder "saveimages" with PNG format.
Signed-off-by: Yi Sun <yi.sun@intel.com>
diff --git a/tests/testdisplay.c b/tests/testdisplay.c
index 4430d07..2d1fdb0 100644
--- a/tests/testdisplay.c
+++ b/tests/testdisplay.c
@@ -64,6 +64,7 @@
#include <stdlib.h>
#include <signal.h>
+#include <sys/stat.h>
drmModeRes *resources;
int drm_fd, modes;
@@ -72,6 +73,7 @@ int dump_info = 0, test_all_modes =0, test_preferred_mode = 0, force_mode = 0,
int sleep_between_modes = 5;
uint32_t depth = 24, stride, bpp;
int qr_code = 0;
+int save_image = 0;
drmModeModeInfo force_timing;
@@ -379,6 +381,8 @@ paint_output_info(cairo_t *cr, int l_width, int l_height, void *priv)
cairo_text_extents_t name_extents, mode_extents;
char name_buf[128], mode_buf[128];
int i, x, y, modes_x, modes_y;
+ static int count = 0;
+ count++;
/* Get text extents for each string */
snprintf(name_buf, sizeof name_buf, "%s",
@@ -460,6 +464,25 @@ paint_output_info(cairo_t *cr, int l_width, int l_height, void *priv)
if (qr_code)
paint_image(cr, "./pass.png");
+
+ if (save_image){
+ char pngname[256];
+ char *pos;
+
+ readlink("/proc/self/exe", pngname, sizeof(pngname));
+ pos = strrchr(pngname, '/');
+ *(pos + 1) = '\0';
+
+ strcat(pngname, "saveimages");
+
+ //judge whether folder mkdir existed, if not create it.
+ if(access(pngname,0) == -1)
+ if (mkdir( pngname,0777))
+ fprintf (stderr, "error %d, %s\n", errno, strerror (errno));
+
+ sprintf(pngname, "%s/%d_%s@%d.png", pngname, count, c->mode.name, c->mode.vrefresh);
+ cairo_surface_write_to_png( cairo_get_target(cr), pngname );
+ }
}
static void sighandler(int signo)
@@ -599,7 +622,7 @@ int update_display(void)
return 1;
}
-static char optstr[] = "hiaf:s:d:p:mrt";
+static char optstr[] = "hiaf:s:d:p:mrtg";
static void usage(char *name)
{
@@ -612,6 +635,7 @@ static void usage(char *name)
fprintf(stderr, "\t-m\ttest the preferred mode\n");
fprintf(stderr, "\t-t\tuse a tiled framebuffer\n");
fprintf(stderr, "\t-r\tprint a QR code on the screen whose content is \"pass\" for the automatic test\n");
+ fprintf(stderr, "\t-g\tsave images which is intended to paint on the screen as png files in folder \"saveimages\"\n");
fprintf(stderr, "\t-f\t<clock MHz>,<hdisp>,<hsync-start>,<hsync-end>,<htotal>,\n");
fprintf(stderr, "\t\t<vdisp>,<vsync-start>,<vsync-end>,<vtotal>\n");
fprintf(stderr, "\t\ttest force mode\n");
@@ -704,6 +728,9 @@ int main(int argc, char **argv)
case 'r':
qr_code = 1;
break;
+ case 'g':
+ save_image = 1;
+ break;
default:
fprintf(stderr, "unknown option %c\n", c);
/* fall through */
--
1.7.6.4
^ permalink raw reply related [flat|nested] 6+ messages in thread* Re: [PATCH] tests/testdisplay.c: Add a option '-g' to save images which intended to paint on screen during each mode setting.
2012-08-01 1:51 [PATCH] tests/testdisplay.c: Add a option '-g' to save images which intended to paint on screen during each mode setting Yi Sun
@ 2012-08-01 3:21 ` Ben Widawsky
2012-08-06 7:09 ` Daniel Vetter
1 sibling, 0 replies; 6+ messages in thread
From: Ben Widawsky @ 2012-08-01 3:21 UTC (permalink / raw)
To: intel-gfx
On 2012-07-31 18:51, Yi Sun wrote:
> That option will save all the images which are created and intended
> to paint on screen.
> The images will be saved in folder "saveimages" with PNG format.
>
> Signed-off-by: Yi Sun <yi.sun@intel.com>
>
> diff --git a/tests/testdisplay.c b/tests/testdisplay.c
> index 4430d07..2d1fdb0 100644
> --- a/tests/testdisplay.c
> +++ b/tests/testdisplay.c
> @@ -64,6 +64,7 @@
>
> #include <stdlib.h>
> #include <signal.h>
> +#include <sys/stat.h>
>
> drmModeRes *resources;
> int drm_fd, modes;
> @@ -72,6 +73,7 @@ int dump_info = 0, test_all_modes =0,
> test_preferred_mode = 0, force_mode = 0,
> int sleep_between_modes = 5;
> uint32_t depth = 24, stride, bpp;
> int qr_code = 0;
> +int save_image = 0;
>
> drmModeModeInfo force_timing;
>
> @@ -379,6 +381,8 @@ paint_output_info(cairo_t *cr, int l_width, int
> l_height, void *priv)
> cairo_text_extents_t name_extents, mode_extents;
> char name_buf[128], mode_buf[128];
> int i, x, y, modes_x, modes_y;
> + static int count = 0;
> + count++;
>
> /* Get text extents for each string */
> snprintf(name_buf, sizeof name_buf, "%s",
> @@ -460,6 +464,25 @@ paint_output_info(cairo_t *cr, int l_width, int
> l_height, void *priv)
>
> if (qr_code)
> paint_image(cr, "./pass.png");
> +
> + if (save_image){
> + char pngname[256];
> + char *pos;
> +
> + readlink("/proc/self/exe", pngname, sizeof(pngname));
> + pos = strrchr(pngname, '/');
> + *(pos + 1) = '\0';
> +
> + strcat(pngname, "saveimages");
> +
> + //judge whether folder mkdir existed, if not create it.
> + if(access(pngname,0) == -1)
> + if (mkdir( pngname,0777))
> + fprintf (stderr, "error %d, %s\n", errno, strerror (errno));
> +
> + sprintf(pngname, "%s/%d_%s@%d.png", pngname, count, c->mode.name,
> c->mode.vrefresh);
I think we've already decided we're willing to piss off the BSD folks,
but just in case we haven't I googled around for a more portable way to
do this. It seems argv[0] *may* be better, may not. In any case, this
reminds me that maybe we should start noting things which won't work in
non-linux operating systems.
I also find it comical that adding the argument, and writing the
surface is like 5 lines, and the rest is all finding the damn executable
path :-)
> + cairo_surface_write_to_png( cairo_get_target(cr), pngname );
> + }
> }
>
> static void sighandler(int signo)
> @@ -599,7 +622,7 @@ int update_display(void)
> return 1;
> }
>
> -static char optstr[] = "hiaf:s:d:p:mrt";
> +static char optstr[] = "hiaf:s:d:p:mrtg";
>
> static void usage(char *name)
> {
> @@ -612,6 +635,7 @@ static void usage(char *name)
> fprintf(stderr, "\t-m\ttest the preferred mode\n");
> fprintf(stderr, "\t-t\tuse a tiled framebuffer\n");
> fprintf(stderr, "\t-r\tprint a QR code on the screen whose content
> is \"pass\" for the automatic test\n");
> + fprintf(stderr, "\t-g\tsave images which is intended to paint on
> the screen as png files in folder \"saveimages\"\n");
> fprintf(stderr, "\t-f\t<clock
> MHz>,<hdisp>,<hsync-start>,<hsync-end>,<htotal>,\n");
> fprintf(stderr,
> "\t\t<vdisp>,<vsync-start>,<vsync-end>,<vtotal>\n");
> fprintf(stderr, "\t\ttest force mode\n");
> @@ -704,6 +728,9 @@ int main(int argc, char **argv)
> case 'r':
> qr_code = 1;
> break;
> + case 'g':
> + save_image = 1;
> + break;
> default:
> fprintf(stderr, "unknown option %c\n", c);
> /* fall through */
^ permalink raw reply [flat|nested] 6+ messages in thread* Re: [PATCH] tests/testdisplay.c: Add a option '-g' to save images which intended to paint on screen during each mode setting.
2012-08-01 1:51 [PATCH] tests/testdisplay.c: Add a option '-g' to save images which intended to paint on screen during each mode setting Yi Sun
2012-08-01 3:21 ` Ben Widawsky
@ 2012-08-06 7:09 ` Daniel Vetter
2012-08-06 7:47 ` Sun, Yi
1 sibling, 1 reply; 6+ messages in thread
From: Daniel Vetter @ 2012-08-06 7:09 UTC (permalink / raw)
To: Yi Sun; +Cc: daniel.vetter, intel-gfx
On Wed, Aug 01, 2012 at 09:51:46AM +0800, Yi Sun wrote:
> That option will save all the images which are created and intended to paint on screen.
> The images will be saved in folder "saveimages" with PNG format.
>
> Signed-off-by: Yi Sun <yi.sun@intel.com>
tbh I don't see the point of this. Care to elaborate a bit what you want
to achieve with this?
-Daniel
--
Daniel Vetter
Mail: daniel@ffwll.ch
Mobile: +41 (0)79 365 57 48
^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: [PATCH] tests/testdisplay.c: Add a option '-g' to save images which intended to paint on screen during each mode setting.
2012-08-06 7:09 ` Daniel Vetter
@ 2012-08-06 7:47 ` Sun, Yi
2012-08-06 8:33 ` Daniel Vetter
0 siblings, 1 reply; 6+ messages in thread
From: Sun, Yi @ 2012-08-06 7:47 UTC (permalink / raw)
To: Daniel Vetter; +Cc: daniel.vetter@ffwll.ch, intel-gfx@lists.freedesktop.org
We want to use the option to save the images which are intended to be painted on the screen.
The images will be save in the folder "saveimages", and named like "1_1920x1200@60.png", "2_1920x1080@60" .....
That would be help for our automatic display testing. If some mode can't be lighten up in automatic display testing, we could check the image saved in the folder to see which mode setting failed manually.
Thanks
--Yi Sun
> -----Original Message-----
> From: Daniel Vetter [mailto:daniel.vetter@ffwll.ch] On Behalf Of Daniel Vetter
> Sent: Monday, August 06, 2012 3:09 PM
> To: Sun, Yi
> Cc: daniel.vetter@ffwll.ch; intel-gfx@lists.freedesktop.org; Jin, Gordon
> Subject: Re: [PATCH] tests/testdisplay.c: Add a option '-g' to save images which
> intended to paint on screen during each mode setting.
>
> On Wed, Aug 01, 2012 at 09:51:46AM +0800, Yi Sun wrote:
> > That option will save all the images which are created and intended to paint
> on screen.
> > The images will be saved in folder "saveimages" with PNG format.
> >
> > Signed-off-by: Yi Sun <yi.sun@intel.com>
>
> tbh I don't see the point of this. Care to elaborate a bit what you want to
> achieve with this?
> -Daniel
> --
> Daniel Vetter
> Mail: daniel@ffwll.ch
> Mobile: +41 (0)79 365 57 48
^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: [PATCH] tests/testdisplay.c: Add a option '-g' to save images which intended to paint on screen during each mode setting.
2012-08-06 7:47 ` Sun, Yi
@ 2012-08-06 8:33 ` Daniel Vetter
2012-08-08 6:49 ` Sun, Yi
0 siblings, 1 reply; 6+ messages in thread
From: Daniel Vetter @ 2012-08-06 8:33 UTC (permalink / raw)
To: Sun, Yi; +Cc: intel-gfx@lists.freedesktop.org
On Mon, Aug 6, 2012 at 9:47 AM, Sun, Yi <yi.sun@intel.com> wrote:
> We want to use the option to save the images which are intended to be painted on the screen.
> The images will be save in the folder "saveimages", and named like "1_1920x1200@60.png", "2_1920x1080@60" .....
>
> That would be help for our automatic display testing. If some mode can't be lighten up in automatic display testing, we could check the image saved in the folder to see which mode setting failed manually.
I still don't see what you need the images for ... adding more output
sounds sane, only lighting up a specific mode makes sense, but I have
no idea what you need the actual pngs for. Maybe I'm a bit dense.
-Daniel
--
Daniel Vetter
daniel.vetter@ffwll.ch - +41 (0) 79 364 57 48 - http://blog.ffwll.ch
^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: [PATCH] tests/testdisplay.c: Add a option '-g' to save images which intended to paint on screen during each mode setting.
2012-08-06 8:33 ` Daniel Vetter
@ 2012-08-08 6:49 ` Sun, Yi
0 siblings, 0 replies; 6+ messages in thread
From: Sun, Yi @ 2012-08-08 6:49 UTC (permalink / raw)
To: Daniel Vetter; +Cc: intel-gfx@lists.freedesktop.org
> -----Original Message-----
> From: daniel.vetter@ffwll.ch [mailto:daniel.vetter@ffwll.ch] On Behalf Of
> Daniel Vetter
> Sent: Monday, August 06, 2012 4:33 PM
> To: Sun, Yi
> Cc: intel-gfx@lists.freedesktop.org; Jin, Gordon
> Subject: Re: [PATCH] tests/testdisplay.c: Add a option '-g' to save images which
> intended to paint on screen during each mode setting.
>
> On Mon, Aug 6, 2012 at 9:47 AM, Sun, Yi <yi.sun@intel.com> wrote:
> > We want to use the option to save the images which are intended to be
> painted on the screen.
> > The images will be save in the folder "saveimages", and named like
> "1_1920x1200@60.png", "2_1920x1080@60" .....
> >
> > That would be help for our automatic display testing. If some mode can't be
> lighten up in automatic display testing, we could check the image saved in the
> folder to see which mode setting failed manually.
>
> I still don't see what you need the images for ... adding more output sounds
> sane, only lighting up a specific mode makes sense, but I have no idea what you
> need the actual pngs for. Maybe I'm a bit dense.
> -Daniel
> --
Oh, it seems that lighting up a specific mode is better than saving the surface into file. I'll try to rewrite it.
Thanks
--Sun, Yi
> Daniel Vetter
> daniel.vetter@ffwll.ch - +41 (0) 79 364 57 48 - http://blog.ffwll.ch
^ permalink raw reply [flat|nested] 6+ messages in thread
end of thread, other threads:[~2012-08-08 6:49 UTC | newest]
Thread overview: 6+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2012-08-01 1:51 [PATCH] tests/testdisplay.c: Add a option '-g' to save images which intended to paint on screen during each mode setting Yi Sun
2012-08-01 3:21 ` Ben Widawsky
2012-08-06 7:09 ` Daniel Vetter
2012-08-06 7:47 ` Sun, Yi
2012-08-06 8:33 ` Daniel Vetter
2012-08-08 6:49 ` Sun, Yi
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox