> 1. devdraw better performance in include\device.h , it defines several macros: MACRO_DRAWPIXEL, BPP32_DRAWPIXEL etc. in engine\devdraw.c, GdDrawImage, it has performance issue. in git source code: =================== } else if (bpp > 8) { /* 16, 18, 24, or 32bpp*/ while (height > 0) { =================== It will check the switch condition in this "while (height > 0)" loop frequently, which has performance issue.
> Maybe you could merge wdtv code to git, this is a critical issue. YuTao - I wanted to let you know I haven't forgotten about this critical speedup issue. I have been working on getting some other important changes in place first, before moving to optimize the GdDrawImage routine and removing the switch condition from the inner loop. I am looking into what code is generated in general by gcc in several cases when (possibly unsorted) switch statements are used. Your original WDTV code performs a good optimization using macros, which we will use. However, it also draws then directly to the framebuffer from the engine layer, which means the code won't work on X11 or other systems not using direct fb access. I am still considering exactly how to speed this up. The right way is to merge the DrawArea, Blit, and DrawImage engine routines with the screen driver DrawArea and Blit routines, but that's a lot of work, and we need a case that works when the screen driver doesn't have these entry points as well. Regards, Greg --------------------------------------------------------------------- To unsubscribe, e-mail: nanogui-unsubscr...@linuxhacker.org For additional commands, e-mail: nanogui-h...@linuxhacker.org