OpenGL errors on A7-devices in iOS 10 - ios

My image processing app behaves really strange on devices with an A7 chip (iPhone 5s and iPad Mini 2 tested) after the update to iOS 10:
Rendering takes extremely long and produces broken results. Instruments reveals that some of the glDrawElements calls return with GL_INVALID_OPERATION. I couldn't make out the cause for that, though.
The same code runs perfectly fine on newer devices (A8 and better) and on all devices in iOS 9. Did Apple change things I am not aware of?
Some more background info:
I'm partially using textures of GL_HALF_FLOAT_OES type
I make use of the EXT_color_buffer_half_float extension to render into those textures
I use the EXT_shader_framebuffer_fetch extension to process pixels in some of my filters in-place

As it turns out I was only partially assigning gl_FragColor in some of my shaders (e.g., gl_FragColor.rg = vec2(1.0, 0.0);), which caused the erroneous behavior in iOS 10. Possibly only in combination with a GL_HALF_FLOAT_OES-typed render target, though.
When I always assign the full vector (even though the other parts are unused…), it works like a charm.

Related

Xcode iOS Simulator Questions

I have two questions about the iOS Simulator in Xcode for my Unity game:
I am using latest version of all the software involved.
1) Why is it so slow? (I have tried the Cmd+T solution and it does
nothing. Note: The game runs smooth even on a real iPhone 4)
2) Why is the size of the iPad simulator screen bigger than my laptop screen? (I know you can
scale it, but just curious why Apple always tries to make our life
difficult)
When you run game on iOS simulator then your game image runs not completely running on your mobile hardware actually runs in compression mode so seems to be slow.
Having high resolutions Apple deceives have bigger number of pixels on their screen, so its not Screen size but it Screen pixels what we need to concern. And it is for creating more smooth effects on visuals for animation, it is to provide user better quality graphics, not to make your life difficult

WebGL texture red and flickering on Apple devices

I'm currently in the progress of writing a simple WebGL application, where multiple textures are blended on top of each other.
The application works fine in Chrome, Firefox and IE on Windows, and also works on Android phones.
On Apple devices, however, the textures are red and flickering in any browser. I tested this on Safari on iPhone or Chrome and Firefox on a MacBook.
For example, the desired result is a wooden texture:
However, on Apple devices, this is shown:
There are no errors and no warnings from WebGL. What could be the issue or a hint to the issue here?
In this case, the solution was to initialize all variables used inside the fragment shader, which was not done correctly.

Why does my app display differently on the iPad than simulator?

I'm fairly new to developing. My app is graphic heavy with some animation using timers. I am testing on a 4th gen iPad retina. In simulator (Xcode 5) the timers I have going for animations run slower than on the iPad, and some other graphic features (like things fading in and out) don't work the same in simulator as the iPad build. Should I trust the iPad's build and not the simulator? Should I also test on different iPad models to check if the graphic animations run correctly on different models or are they likely to run the same?
I focus on UI art & have experience with making graphics rather than dealing with the Xcode environment itself, so any info about how programmed animation views display on different devices or different environments would be really helpful.
Rule one of developing apps: Always test on a hardware device
The hardware device has a ARM CPU for dealing with normal stuff like calculations and a GPU to accelerate the graphics. The GPU's on iOS devices are pretty powerful and comparable with GPU's of desktop computers a few generations back. Your simulator does not have that and will have problems rendering some of the more heavy stuff because it simulates the device and does not run directly on actual hardware.
I would also suggest that you check out the slowest device possible for the iOS generation you will be targeting in hardware. For instance an iPhone 3GS will still run iOS 6 applications. So if you are targeting iOS 6 or better and it runs well on that device, it will be doing fine on all others in terms of performance.

Animation Lags on iOS devices for apps designed in Adobe Flash Pro

I am developing iOS app and android app using adobe AIR and Flash CS6.The app contains lots of animations. Since Bitmap images do not give a good quality, I have kept the images in Vector form only. It runs fine on android devices but when I publish it on iOS device many animation lags. How can I solve this without affecting the quality of my animations? I am using AIR SDK version 4.0 and GPU rendering method. Any help would be appreciated.
There might be a few things you could try:
use TweenMax/TweenLite for your animations as the GreenSock library is optimized for performance
try setting cacheAsBitmap to true on the vector you're animating
convert vectors to cached bitmap data (http://esdot.ca/site/2012/fast-rendering-in-air-cached-spritesheets)
try see if using "direct" mode for rendering yields better performance; from what I've experienced GPU is not well suited for vectors

iOS 7.0.3 - Awful performance on iPad 3 whilst excellent results in the Simulator

The program I am developing perform relatively well in the Simulator (I have a MBPR/15" with 4xcpu, 16GB Ram&500G SSD) but is awfully slow on my iPad3.
Xcode doesn't show some huge CPU activity and Memory usage stays at ~25MB.
What could cause this problem?
Thanks in advance for any help
Simulator, is a simulator, that means that your application will run with the hardware of your mac, and your mac is pretty on steroids :-) . Simulator behave very differently for the actual devices just few exaple:
sim is case insensitive
sim is not GPU accelerated (games performs better on device)
it lacks some hardware: camera, motion sensors, GPS
To check why your app is performing slow on iPad you have a lot of tools in instruments.
Time Profile
Allocations
Core animation performance
You've got also some tools on the simulator, like checking blending, not aligned pixels, off screen rendering... thay can make difference in general graphic performace

Resources