by Kzinti » Jul 7, 2003 @ 5:41am
I just finished hooking a prototype version of the PocketHAL with PF v0.6. Basically, I get rid of the notion of "orientation" and replaced the GAPI layer with PocketHAL. Here are the preliminary results on my Maestro (ARM 206 mhz):
PocketFrog v0.6 - Blit (CW)...........: 110 FPS
PocketFrog v0.6 - Blit (CCW)..........: 110 FPS
PocketFrog v0.6 - Rotate (Normal).....: 80 FPS
PocketFrog v0.6 - Rotate (180 degrees): 80 FPS
Prototype HAL - Blit (CW)...........: 121 FPS
Prototype HAL - Blit (CCW)..........: 121 FPS
Prototype HAL - Rotate (Normal).....: 99 FPS
Prototype HAL - Rotate (180 degrees): 65 FPS
Analysis:
- Normal blits (straight copies) have been accelerated significantly as I was expecting them to be. (80 -> 99 FPS).
- Rotated blits have also been marginally accelerated (110 FPS -> 121 FPS). But consider that efficient use of the cache and write bursts allowed rotated blits to be even faster then your straight blits using memcpy().
- 180 degrees blits have been slowed down significantly (80 -> 65 FPS). As-is, this would be a problem for the iPAQ 38xx running in landscape mode and for landscape devices (e.g. iPAQ 36xx) running in inverted-landscape (almost never seen). I haven't spent any time yet on analysing cache usage for this blit.
- A significant advantage of PocketHAL is that there is no notion of "orientation" anymore. PF doesn't need to conduct any coordinates transforms anymore. There is also no need to rotate images while they are being loaded. This means a smaller memory footprint (no more intermediary buffer needed), but more importantly a significant speed up on loading time.
What is next:
- Optimizing the 180 degrees blit.
- Convert to assembly. This will affect all blits except the "normal" one. It is too soon to say how much speed I will get out of this.
- Conduct similar cache analysis on MIPS to optimize all blits. Although I don't expect a big speed increase (if any) on MIPS.
Also in the news: I have things to attend to in the next 2 weeks and won't be able to work on PF during that time. I will continue monitoring this forum and answering questions.
Thierry