[Bug] Trimmed Sprite Sheets does not work on all devices

I have spend a lot of time with this issue and I can see that it is something that has been discussed earlier but it’s a long time ago, so maybe this is a different issue.

It seems that if I create a spritesheet (for animation) that is NPOT and trimmed, then the animation will look scaled and “wobbly” on some devices. To make it work on all devices I found out that the sprite atlas has to be POT, so for instance 16 images that’s 256x256 in a 1024 atlas and with trim off works fine.

It’s only a problem on some devices, PC seems to handle both trimmed, NPOT and POT textures just fine.
But when the same spritesheet animation is displayed on our Ipad2 (9.0.3) or Sony Experia Z3 it does no longer look correct. It looks scaled and wobbly. Strangely enough my Iphone 5c ios (9.0.3) has no issues.

Earlier threads (not sure if it’s 100% related):

  1. cocos2d-iphone - issue #1345
  2. enter link description here

That’s because of hardware limitatons of mobile GPUs most of them only support POT(power of two) and rather small-sized textures. So when you try to load big NPOT texture to GPU RAM (that’s what happens to your atlases), device scales it to a supported size. Then OpenGL kicks in and uses whatever texture is stored in GPU without asking any questions.
So it’s arguable whether it’s a bug or an unimplemented feature (to handle your spritesheets correcly on all devices)