- 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
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.
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
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.
Thanks, Brandon!