by Johan » Jan 29, 2004 @ 11:40am
I'm quite familiar with the performance differences.
PocketHAL is faster on the final blit to the display when running on some PocketPC hardware. You will find the performance differences on the PocketHAL web page. If you are mostly doing low-level surface access (i.e. doing your own blitting or effects, movie playback, or creating a 3D engine) you will get the best performance with PocketHAL on Pocket PCs. It is also easier to access the back buffer using PocketHAL since it is always aligned in portrait mode.
PocketFrog is slower than GapiDraw due to the below listed reasons. When PocketFrog and PocketHAL is finally integrated, the performance increase of using PocketHAL somewhat compensates for these differences. I would say that in many (most?) cases PocketFrog+PocketHAL will be equal in performance to GapiDraw when running on a Pocket PC.
1. In GapiDraw, BltFast is written in ARM Assembler and operates on two pixels simultaneously. PocketFrog always operates on one pixel at a time.
2. All opacity operations in GapiDraw use only one multiplication for each pixel (when blitting to even coordinates) due to the multiple pixel optimizations. PocketFrog uses two multiplications per pixel.
3. On Stationary PCs GapiDraw uses a bridge to DirectDraw for the final blit to display. This is much faster than the GDI BltStretch used in PocketFrog. You can also write full screen applications using video hardware acceleration on Stationary PCs with GapiDraw. Of course, if you only plan to release a PocketPC game then this is not an issue.
I didn't list AlphaBltFast to the list above, since the PocketFrog 0.6 does not have such a function (i.e. blit an image with variable alpha). GapiDraw provides two versions of AlphaBlt/AlphaBltFast and both operates on 32-bits simultaneously.
I guess I could also add that the optimizations in PocketHAL are not valid on any Microsoft Smartphone, but that might change in a future release. So on Microsoft Smartphones GapiDraw is currently a bit faster (and also much less memory-hungry in the image loaders until libpng gets merged into PocketFrog).
I believe we have quite a good bridge for hardware-acceleration already built into GapiDraw, and once the Palm release is out we will give the DirectX8 / OpenGL ES devices a go for hardware acceleration... While we may not be able to compete with PocketHAL for performance on the older IPAQ series, we will try to do so for all the cool new hardware-accelerated devices.
Last edited by
Johan on Jan 29, 2004 @ 5:20pm, edited 1 time in total.
Johan Sanneblad, M.Sc, Ph.D
GapiDraw Systems Architect
[]