Recently I worked on getting some benchmarks on Iphone 3GS and Ipad 1. Here are the results at the end of Memory warning Level 2 for each test.
1)I restarted the device and ran my benchmark application.Strangely it allowed up to the WHOLE available MAIN memory "248 MB" . (No other apps are running except mine)
2) I opened some applications and ran the benchmark again, It gave memory warning after 104 MB.
3) I increased the applications that are running in background. This time i got a Memory warning at 64MB.
And I have seen/heard a rumour/statement that Power VR SGX cards have a performance issue when the loaded texture memory crosses 24MB. Actually I felt this as well when working on my previous project a little bit, so at that time I used NPOT textures to reduce the texture memory not to cross 24MB.
Please correct me if i'm wrong in the results as well as the "belief" regarding texture limit for 'better' performance. (I'm confused why this can happen - as, every thing is shared with main memory!)
Some info : I used different 1024*1024 textures for all the benchmarks tests.
Pls explain , Up to how much memory i can use for textures with out any problems in worst conditions(lot of apps running in background,with out any lag).
Like most mobile platforms the iOS devices use a shared memory architecture. This means that the amount of texture data available is linked to the amount of general RAM still available on the device.
The 24MB values was relevant to earlier iOS devices that used an earlier graphics core and is not pertinent to working with SGX devices. While there is a maximum amount of texture memory that SGX can use I don’t believe this is the issue here, but rather how much memory is available after other applications that are running in the system.
I believe that iOS should page out/close down non-active applications if the frontmost application requires more memory, but that this process may not be instantaneous. If you re-attempt a texture load that fails after a pause does the texture load eventually succeed?
This issue is really more an iOS specific one than PowerVR-related so you may get a better answer through Apple’s own documentation and/or forums:
On the whole, for good performance you should try to keep texture data sizes as small as possible by using small dimensions and efficient formats (such as PVRTC). I recommend POT textures with mip-maps as this should also give you the most performance benefits.
I would only recommend NPOT textures for full-screen “background” textures or similar.
Thanks Gordon! So previous MBX lite had this issue but not SGX cards. Thanks for clarifying! (IOS will quit the other apps (first it will quit system apps like safari,mail) if we ran out of memory.). Thanks for the suggestions.Btw, Whats the reason for not recommending (other than mip-map reasons) NPOT textures.I thought they will reduce the memory bandwidth flow between RAM and GPU!