We tracked the issue down to fill rate performance caused by alpha channels. Our project uses SM2.
Switching from the Vertex Coloured to the Sprite Cutout (treats alpha as either 0 or 1 from what I can tell) totally cleared the problem and we quickly made a change that forced the relevant managers to use the cut-out sharder in non HD mode.
Does anyone have any experience or knowledge on what exactly it is in the Desire architecture that causes this? I’m betting the answer will be the GPU…
We’re trying to get a feel for how many handsets will be hampered by this (and thus deduce whether to run HD mode as the default or not).
The Galaxy S and the HTC Desire have not even remotely the same capabilities actually.
Technically they have the similar standards they support, but thats where it unhappily ends.
GPU are both OpenGL ES 2.0 but the performance delta from Adreno 200 and SGX540 is worlds appart (the SGX540 is the fastest GPU aside of the one used in DualCore devices, even significantly faster than anything iOS is using outside the iPad2, its the successor of the iOS used chip SGX535), on the CPU end its a matter of A7 on the Snapdragon 1 (HTC Desire) vs a Cortex A8 on the Galaxy S (performance wise comparable to the Snapdragon 2, 20-40% faster depending on usage case)
In addition its not just the HW that makes performance, unhappily the HTC drivers are not game optimized, so independent of what the gpu could do theoretically, practically it loses another 30%+
Due to this its to expect that the performance will suffer quite seriously … I’ve myself a HTC Desire so I feel the pain and I see it all the time with games which stutter like hell.