you know the memory is used almost doubled. Because of the metadata!
I tested Xcode5,iOS 6,iPhonn4s. Opengles2
I’m working on the optimization of our game(launching soon).
I used pvr format(ARGB8888) in my game UI.
pvr format(ARGB8888) has Meta data always 15byte by PVRTexTool
in PVRTTextureLoadFromPointer API.
for (PVRTuint32 uiFace=0; uiFace<psTempHeader->u32NumFaces; ++uiFace)<br />
{<br />
glCompressedTexImage2D(...<br />
glTexImage2D(...<br />
}<br />
```<br />
<br />
<br />
if 1024x1024(ARGB8888)<br />
uiMipLevel == 0 about 4MB Increase in memory usage.<br />
uiMIPLevel == 1 about 5MB Increase in memory usage.<br />
uiMIPLevel == 2 about 1MB Increase in memory usage.<br />
...<br />
so totally about 10MB Increase in memory usage per 1024x1024(ARGB8888)<br />
<br />
The solution is Edit->Align texture data->Align 4byte boundary by PVRTexTool. (if you did, totally about 5.6MB Increase in memory usage )<br />
I solved the batch execution too many textures .(make an utility)<br />
Most of metadata size is not aligned 4byte.<br />
This happens to be in any format.(pvrtc,pvrtcII,rgbxxxx,etc..)<br />
Most people do not know will be used.<br />
so metadata default size must be aligne 4 or 8byte.<br />
<br />
Thanks Regards,<br />