• Status Closed
  • Percent Complete
  • Task Type Patches
  • Category
  • Assigned To No-one
  • Operating System
  • Severity Low
  • Priority Very Low
  • Reported Version
  • Due in Version Undecided
  • Due Date Undecided
  • Votes
  • Private
Attached to Project: Rockbox
Opened by lostlogic - 2005-12-28
Last edited by linusnielsen - 2005-12-28

FS#2871 - faster LCD update for H300 with ASM

using inline assembly, I’ve nearly halved the time
needed for lcd_update on the whole screen on the H340.
Thanks to amiconn for his help and tips on this. The
first 0-7 bytes and the last 0-7 bytes are still
transferred the same way they were before, but the bulk
of the data is transfered 8 words at a time using 4
registers for storage. Using a simple test plugin
which displays start and end times this showed 40s for
1000 updates vs. 21s for 1000 updates after the patch.

Further optimization suggested by amiconn was to
reverse the write order to avoid 1 swap per 2 words,
there is also space for improvement by writing more of
the function in assembly. I don’t think the gains
would be worth it to do the leading and trailing
unaligned bytes in assembly, but it is certainly an option.

Closed by  linusnielsen
2005-12-28 22:50
Reason for closing:  Accepted

Had the forumula for handling non-aligned data wrong.
Thanks again to amiconn for knowing memory math better than
me. Fortunately (maybe) it works either way, but will be
faster for certain rectangle updates the new way.

Project Manager

Thanks, Brandon!


Available keyboard shortcuts


Task Details

Task Editing