This is the bug/patch tracker for Rockbox. Click here for more information.
Quick links: Bugs · Patches · Rockbox frontpage
FS#8075 - 5G LCD speed up
Attached to Project:
Rockbox
Opened by Andree Buschmann (Buschel) - Friday, 02 November 2007, 22:44 GMT+2
Last edited by Jens Arnold (amiconn) - Tuesday, 27 November 2007, 00:48 GMT+2
Opened by Andree Buschmann (Buschel) - Friday, 02 November 2007, 22:44 GMT+2
Last edited by Jens Arnold (amiconn) - Tuesday, 27 November 2007, 00:48 GMT+2
|
DetailsAs I am not sure if my last patch was closed by accident here the current update of the LCD-optimization for LCD/YUV based upon amiconns rework.
Changes: - include outer loop (--height) into asm routine for lcd_update_rect() - include two line updates into a single asm routine for lcd_yuv_blit() - use 32bit-access for chroma buffer, needs more space but is a lot faster through usage of stm/ldm Results (@80MHz): LCD 1/1 screen: 101fps (same) LCD 1/4 screen: 399fps (+2%) YUV 1/1 screen: 28.5fps (+4%) YUV 1/4 screen: 112.5fps (+4%) |
This task depends upon
Change:
- calculate the correct length of chroma buffer (width/2 * 3, and not width*3). btw, the buffer length is also false in trunk.
This one was tested on all available resolutions of elephants dream as well as via test_fps.
Changes:
- use pixel packing for each loop (2 pixels) and write them with one single str
Results (@80MHz) vs. trunk:
YUV 1/1 screen: 29.5fps (+8%)
YUV 1/4 screen: 117fps (+8%)
Speed of YUV-blit with this patch is ~+8% vs. svn:
30MHz -> 1/1: 11.0fps / 1:4: 43.5fps
80MHz -> 1/1: 29.5fps / 1:4: 117.0fps