MBX light (fixed point) and ARM float choices

Quick preface:

The iPhone’s ARM processor handles floating point about as fast as integers, but it seems that ‘fixed point’ math in the ARM is slightly slower in multiplications and divisions, probably due to shifting (division by 65536 usually).

Inquiry:

Since the iPhone’s MBX is a ‘light’ version, and uses fixed point math instead of floats, is it typically assumed that math within the CPU is performed in floating point, and vertex or other data is converted to fixed point when it’s submitted through OpenGL ES, or is performance generally better to work in fixed point throughout? Is there a typical convention on this point?

My own tests thus far are not conclusive, but tends to favor working in floating point within the ARM processor. It does seem to me a bit of a mismatch - to work in a format (fixed point) that’s slower on the ARM in order to provide compatible data to the GPU. Converting floating point data into fixed point also seems a bit of a squeeze, but what I’m seeing is that when there are significant transformations/multiplications/divisions performed in the CPU, using floating point there aids performance. It further seems there is a balance point - that is, if there are few(er) such operations in the CPU, the choice of using fixed point throughout isn’t a net loss.

Note: In general we don’t support the iPhone as Apple support it directly.





The MBX Lite (like the full MBX) does its calculation on 32-bit floats - in fact passing fixed point data requires it to convert these values to floating point before any processing can occur. When this is combined with the strong performance of the iPhone’s CPU with floating point calculation it leaves very little reason to use fixed point maths on the platform. I would advise against it: use floating point calculations for better performance and precision.

Many thanks.

Quote:

Note: In general we don't support the iPhone as Apple support it directly.



I understand, but it seems Apple's response to PowerVR oriented questions lacks detail, and I'll trend my inquiries here in the ARM/PowerVR combination theme.

JVene wrote:
Many thanks.

Quote:

Note: In general we don't support the iPhone as Apple support it directly.


I understand, but it seems Apple's response to PowerVR oriented questions lacks detail, and I'll trend my inquiries here in the ARM/PowerVR combination theme.
That is understated.  Apple has no clue.  Even if they did, they are so overwhelmed by the inrush of iPhone developers, they can't find the time to respond to even the most simple question.

I use your emulator es 1.1 on Symbian S60. there are some problem about the light when I put the example on the N95.

 

On the emulator, I open some spotlights  for lighting, they work very well.

but whe I put the example on the N95, there are some problem turn out. such as serval spotlights has no effect, or the effects is not own spotlight. they look like Directional-Light.

 

Can you help me? I can not fine the reason about it.

 

Hi Tandhi,

 

I do not remember any problem with spotlights on N95. I have to reckon that we have not tested them that much but we did compare fixed-pipeline lights with our own code for Vertex Program and they were ok. There might be a problem in the drivers. Could you give us more details?

 

Thanks.

 

Carlos.