- Status Closed
- Percent Complete
- Task Type Patches
- Category LCD
- Assigned To No-one
- Operating System iPod 5G
- Severity Low
- Priority Very Low
- Reported Version
- Due in Version Undecided
-
Due Date
Undecided
- Votes
- Private
FS#5432 - Ipod video lcd speed increase
Patch to increase lcd speed on the ipod video.
Decreases runtime of lcd_update_rect by an average of 0.1 ticks per call, or 1 millisecond; and up to three milliseconds max. This increases the maximum frame rate by about one to one-and-one-half frames per second.
Using the test_fps plugin, the results for the unmodified code, on my ipod, are:
1/1 21.5 fps, 1/4 44.5 fps, with CPU at 30MHz
1/1 37.0 fps, 1/4 57.0 fps, with CPU at 75MHz
With this patch, my results are:
1/1 22.5 fps, 1/4 46.0 fps, with CPU at 30MHz
1/1 38.5 fps, 1/4 58.0 fps, with CPU at 75 MHz
The patch uses Duff’s Device to unroll a loop.
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
Great work, man!
I didn’t know DD before and it’s cool.
I don’t have an ipod, but I implemented this for iaudio x5 as well, and got about the same speedups (CPU at 45MHz) – Original: 1/1 41.5 fps, 1/4 164.5 fps
Duff: 1/1 42.5 fps, 1/4 166.5 fps
Given that the x5 LCD’s size is 1/4 of the ipod’s, there’s obviously room for improvement…
Notes:
I didn’t submit a patch because
1. I could only unroll the loop once (=2 iters) because the IRAM is not big enough for twice (=4 iters) :)
2. There’s no use to submitting X5 specific patches until codefreeze is over;
3. And when it’s over, there’ll be lots of changes to CVS, so I’ll have to repatch anyway.
4. But the real reason is that my lcd-x5.c is already full of patches (contrast, brightness, …) that have to be uploaded in a different patch.