Hi list,

1. Currently each PutPixel costs 2 mem reads, 4 mem writes and some shifts
(all because of the 18-bit thingy).
Would double-buffering help?
i.e., keep another LCD buffer (in DRAM) representing the state of the LCD
/now/; 
whenever lcd_update() is called, we compare the 16-bit (32-bit?) pixel value
and only update it and the hardware if necessary.
Obvious con: memory.
How can this be profiled, btw?

2. I might be terribly wrong, but can we shut down all GUI code when the
backlight is off?
Yes, this means WPS refreshes, scrolling, etc.

3. GNU's memcpy() and memset() are not using all possible registers
(i.e. movem.l does only 16 bytes writes instead of the possible 48).
It also spends so much time on alignment (which is not necessary for
movem.l, IIRC).

The iAudio firmware contains smaller and faster versions, which *I* cannot
contribute to Rockbox -- as that would be considered code theft -- but you
can write as you only heard the general idea :)

Best,
R.

Reply via email to