by j.edwards » Oct 28, 2009 @ 6:49am
Hi Kak,
In my opinion it's not great. Most of the devices from HTC over the past two years or so like the Diamond, Pro, X1 etc have some 3D support, plus there are other random devices that have 3D drivers or you can download something off XDA for instance to make them work. It sounds like there should be a lot of capable devices but there is a lot of inconsistency. I have two Diamonds - a CDMA and a GSM one - the GSM one runs at half the framerate of the other and has terrible screen tearing. No idea why. I could mess with drivers but can't be bothered all that much at the moment. Actually, just on screen tearing, it looks like none of the devices actually have vsync support, so no matter what framerate you get it looks awful - I hate tearing.
Even if you were to assume consistency across devices, the actual capability of them is terrible. If you already have expectations from the iPhone then the WM devices don't come close to that. I tried recently to build a UI based on OpenGL for use on these devices and it was immediately after investigating the iPhone so I had expectations of 60fps, and all the goodies it offers.
The reality ... unfortunately some bright spark thought it would be a good idea to provide HW 3D capabilities but with no video mem to store textures, vertex data etc. All of it has to be stored in system memory and transferred every frame because there actually isn't any physical HW mem available.
From memory on the X1 (800x480) it started around 90fps just clearing the bg with a solid color using glClear(). A simple colored rectangle that only took about an eighth of the screen in pixels and it was around 60fps, a few more of those and it was down to 30 fps. If you render the entire screen with pixels it would be lucky to make 30fps, and if you have e.g. 50 colored rects each taking about half the screen in pixels then it would be under 10fps. That was with zbuffer.
Anyhow, don't quote me on those numbers - do your own tests to be sure, but basically I found very rapid decline in framerate, and when I put a scene together with the type of complexity I required for the UI I was attempting to build it was between 8-12fps. I could have almost got away with it using enough fades, but it just was such a disappointment, so stuck with 2D for the moment.
Let us know how you go though.
WM7 no doubt will have much better support from the start. I really hope they take control of that aspect and don't leave it up to the manufacturers like HTC to do though, otherwise it will be the same mess it is now, and there is no way WM could survive if they stuff something like that up.