No problem. :) I was worried that I would break something since I couldn't compile it but it was simple a simple addition so I just went ahead with it.
For big ones, I'll let you know. :) cheers, Sung On Tue, Jul 23, 2013 at 2:58 PM, Christopher Michael <cp.mich...@samsung.com > wrote: > Thank you for porting this !! :) > > Cheers, > dh > > On 23/07/13 02:29, Sung W. Park - Enlightenment Git wrote: > > sung pushed a commit to branch master. > > > > commit 7aa516c01a620da3438de864ac0c0e5b80c93d0b > > Author: Sung W. Park <dunamis.p...@samsung.com> > > Date: Tue Jul 23 10:23:36 2013 +0900 > > > > Evas: adding image dump debug feature for wayland_egl backend > > > > Porting commit f10c108283d9b76708418ba172b9ff0b28a09cd6 to wayland > > engine. > > > > Added a feature to dump out a png image before calling SwapBuffers. > > To turn on the feature, use the following env vars. > > > > EVAS_GL_SWAP_BUFFER_DEBUG_DIR="dir_name" sets the name of the > directory > > that the files will be output to and enables the debug mode. > > > > EVAS_GL_SWAP_BUFFER_DEBUG_ALWAYS=1 will enable the writing of the > > files every frame. This in effect turns on the swap_buffer_debug > > variable, which can be set on or off in gdb for debugging. This > will > > allow dumping of certain frames without having to dump out a ton of > > files to track down one frame. > > --- > > src/modules/evas/engines/wayland_egl/evas_engine.c | 43 > ++++++++++++++++++++++ > > 1 file changed, 43 insertions(+) > > > > diff --git a/src/modules/evas/engines/wayland_egl/evas_engine.c > b/src/modules/evas/engines/wayland_egl/evas_engine.c > > index 1db4dbd..65edcca 100644 > > --- a/src/modules/evas/engines/wayland_egl/evas_engine.c > > +++ b/src/modules/evas/engines/wayland_egl/evas_engine.c > > @@ -41,6 +41,7 @@ struct _Render_Engine > > Eina_Bool lost_back : 1; > > Eina_Bool end : 1; > > Eina_Bool evgl_initted : 1; > > + int frame_cnt; > > > > struct > > { > > @@ -103,6 +104,9 @@ static Eina_Bool extn_have_buffer_age = EINA_TRUE; > > static int safe_native = -1; > > static int partial_rect_union_mode = -1; > > > > +static int swap_buffer_debug_mode = -1; > > +static int swap_buffer_debug = 0; > > + > > /* function tables - filled in later (func and parent func) */ > > static Evas_Func func, pfunc; > > static EVGL_Interface evgl_funcs = > > @@ -1188,6 +1192,7 @@ static void > > eng_output_flush(void *data, Evas_Render_Mode render_mode) > > { > > Render_Engine *re; > > + static char *dname = NULL; > > > > if (!(re = (Render_Engine *)data)) return; > > > > @@ -1201,6 +1206,41 @@ eng_output_flush(void *data, Evas_Render_Mode > render_mode) > > > > evas_gl_common_context_done(re->win->gl_context); > > > > + // Save contents of the framebuffer to a file > > + if (swap_buffer_debug_mode == -1) > > + { > > + if ((dname = getenv("EVAS_GL_SWAP_BUFFER_DEBUG_DIR"))) > > + { > > + int stat; > > + // Create a directory with 0775 permission > > + stat = mkdir(dname, > S_IRWXU|S_IRGRP|S_IXGRP|S_IROTH|S_IXOTH); > > + if ((!stat) || errno == EEXIST) swap_buffer_debug_mode = 1; > > + } > > + else > > + swap_buffer_debug_mode = 0; > > + } > > + > > + if (swap_buffer_debug_mode == 1) > > + { > > + // Set this env var to dump files every frame > > + // Or set the global var in gdb to 1|0 to turn it on and off > > + if (getenv("EVAS_GL_SWAP_BUFFER_DEBUG_ALWAYS")) > > + swap_buffer_debug = 1; > > + > > + if (swap_buffer_debug) > > + { > > + char fname[100]; > > + int ret = 0; > > + sprintf(fname, "%p", (void*)re->win); > > + > > + ret = evas_gl_common_buffer_dump(re->win->gl_context, > > + (const char*)dname, > > + (const char*)fname, > > + re->frame_cnt); > > + if (!ret) swap_buffer_debug_mode = 0; > > + } > > + } > > + > > if (!re->vsync) > > { > > if (re->info->vsync) eglSwapInterval(re->win->egl_disp, 1); > > @@ -1278,6 +1318,9 @@ eng_output_flush(void *data, Evas_Render_Mode > render_mode) > > evas_common_tilebuf_free_render_rects(re->rects); > > re->rects = NULL; > > } > > + > > + re->frame_cnt++; > > + > > end: > > evas_gl_preload_render_unlock(eng_gl_preload_make_current, re); > > } > > > > > > ------------------------------------------------------------------------------ > See everything from the browser to the database with AppDynamics > Get end-to-end visibility with application monitoring from AppDynamics > Isolate bottlenecks and diagnose root cause in seconds. > Start your free trial of AppDynamics Pro today! > http://pubads.g.doubleclick.net/gampad/clk?id=48808831&iu=/4140/ostg.clktrk > _______________________________________________ > enlightenment-devel mailing list > enlightenment-devel@lists.sourceforge.net > https://lists.sourceforge.net/lists/listinfo/enlightenment-devel > ------------------------------------------------------------------------------ See everything from the browser to the database with AppDynamics Get end-to-end visibility with application monitoring from AppDynamics Isolate bottlenecks and diagnose root cause in seconds. Start your free trial of AppDynamics Pro today! http://pubads.g.doubleclick.net/gampad/clk?id=48808831&iu=/4140/ostg.clktrk _______________________________________________ enlightenment-devel mailing list enlightenment-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/enlightenment-devel