• 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
Attached to Project: Rockbox
Opened by tpdiffenbach - 2006-05-26

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.

Closed by  linuxstb
2006-07-19 17:47
Reason for closing:  Accepted

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…

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.


Available keyboard shortcuts


Task Details

Task Editing