- Status Closed
- Percent Complete
- Task Type Patches
- Category LCD
- Assigned To No-one
- Operating System iPod 5G
- Severity Low
- Priority Very Low
- Reported Version Daily build (which?)
- Due in Version Undecided
-
Due Date
Undecided
- Votes
- Private
FS#8041 - small speed-up for iPod Video's lcd_update ()
Small speed-up (+1%) for iPod Video’s lcd_update()-function, based upon #15344.
Changes:
- let x be even
- include the outer loop over y until heigth is reached into the asm-routine
Closed by amiconn
2007-11-02 17:57
Reason for closing: Out of Date
Additional comments about closing: Warning: Undefined array key "typography" in /home/rockbox/flyspray/plugins/dokuwiki/inc/parserutils.php on line 371 Warning: Undefined array key "camelcase" in /home/rockbox/flyspray/plugins/dokuwiki/inc/parserutils.php on line 407
2007-11-02 17:57
Reason for closing: Out of Date
Additional comments about closing: Warning: Undefined array key "typography" in /home/rockbox/flyspray/plugins/dokuwiki/inc/parserutils.php on line 371 Warning: Undefined array key "camelcase" in /home/rockbox/flyspray/plugins/dokuwiki/inc/parserutils.php on line 407
The update rectangle setup does indeed
need just the rectangle parameters, the
other 4 are unnecessary. Same goes for
reading 0x1FC. Both ideas are
implemented in svn now, as well as an
update scheme that make the update
functions never wait for the BCM (in
main rockbox).
Loading...
Available keyboard shortcuts
- Alt + ⇧ Shift + l Login Dialog / Logout
- Alt + ⇧ Shift + a Add new task
- Alt + ⇧ Shift + m My searches
- Alt + ⇧ Shift + t focus taskid search
Tasklist
- o open selected task
- j move cursor down
- k move cursor up
Task Details
- n Next task
- p Previous task
- Alt + ⇧ Shift + e ↵ Enter Edit this task
- Alt + ⇧ Shift + w watch task
- Alt + ⇧ Shift + y Close Task
Task Editing
- Alt + ⇧ Shift + s save task
Further work in cleaning up the code (not that much relevant and more like a personal smell) as well as removing unneeded calls (interesting).
1. Writing to E0004, E0014, E0018, E001C in lcd_bcm_setup_rect() seems to be not needed and there is no measurable impact when changing the written values or even removing these writes.
2. lcd_bcm_read32(0x1FC) right after lcd_bcm_setup_rect() and right before leaving lcd_update_rect() seems to be not needed
3. variable and check for finishup_needed can be removed as the check for register content 0x1F8 works for the first call of lcd_update_rect() as well
Another result of dumb testing:
1. The call of lcd_bcm_write32(0x1F8, 0xFFFA0005) can be moved to the end of lcd_bcm_setup_rect() without any measurable impact.
2. When placing the call of lcd_bcm_write32(0x1F8, 0xFFFA0005) at the very end of lcd_update_rect() the iPod will perform some screen updates after booting and then hang up. It displays the startup logom the menu and if you are very fast you might even scroll a few items. Seems like the iPod hangs up after a small amount of time.
Maybe we get closer to the 14ms phenomenon?
Sync'ed and adapted to amiconns big rework of 5G LCD driver. Will leave the performance of full screen updates untouched (still 101fps @80MHz), but will slightly increase the fps for non full screen updates (1/4 screen 391.5 → 399fps).
Changes:
- moved the outer loop (–height) into the asm-routine
- taking into account the special case "width==LCD_WIDTH"
Imho this makes the function lcd_update() better readable. But make up your mind for yourself ;o)
Btw, we could do similar things to the yuv_blit-helper function. For this function we still search for each percent of speed-up, don't we? ;o)