Widget HTML Atas

You Accept To Know : Opengl Es Performance: The Iphone Four Functioning Gap

Now that we've shipped X-Plane 10 Mobile, I tin spider web log the occasional OpenGL ES functioning banknote without revealing a stealth project.

X-Plane 10 Mobile requires iOS 8.  One argue why Chris laid the OS requirement together with then high was to intentionally exclude the iPhone iv from our device set.

For most of the project, nosotros worked amongst the iPhone iv equally our minimum device, together with for the entire project, it suffered functioning problems that nosotros didn't run into inwards whatever of the newer devices.  The iPad ii together with iPhone 4S (the side past times side hardware up) both performed significantly better.

I don't know what caused the gap, but it wasn't a "this band is 20% slower" or "this ipad has 4x the shader units" sort of gap.  It was to a greater extent than similar "this code runs fine on newer devices together with nosotros tin but run into the iPhone iv trying to rhythm out itself to expiry amongst its old-style dock connecter together with then it doesn't accept to run to a greater extent than or less other frame of our top dog rendering loop".

I exercise non know what was going on nether the hood, but I tin portion a few observations too "If the iv is having functioning problems, it may last specific to the iPhone 4."

  • The iPhone iv was the alone device that would larn bottlenecked on vertex count.  This was a existent occupation for us because nosotros had models that nosotros couldn't cutting vertex count on without our artists spending a ton of time.  We had already LODed out everything expendable on the iv together with nosotros were nevertheless getting jammed inwards the 3-d cockpit.
  • The iPhone iv is real sensitive to the issue of varyings together with how they are packed!!!!  I flora that packing fog together with emissive low-cal bird into a 2-component varying significantly improved functioning compared to having them equally private scalers.  (Of course, cutting the issue of varyings made the biggest improvement.)
  • The iPhone iv seemed to last spending pregnant driver fourth dimension recycling the puddle of "orphaned" buffers - that is, VBOs that had been completely discarded together with respecified on a per-frame basis.
I can't nation what was going on within the driver, but I tin nation that all of these things were changes inwards the kinds of functioning problems nosotros were having, non but a thing of degree.

Once nosotros cutting the iPhone iv together with the 4S became the "runt of the litter" treatment the low-end became a lot easier.  The iPhone 4S is incredibly capable for an older-generation smart-phone, together with spell it is the starting fourth dimension to run out of CPU cycles or create amount rate, the losses were proportional to spec, non "fall on your appear upwards together with die."

I'm hoping to postal service a niggling chip to a greater extent than nearly functioning tuning OpenGL ES inwards hereafter posts, but from this indicate forward, whatever advice I accept volition apply to the 4S together with above.  Having cutting the iPhone iv from our product, I no longer accept fourth dimension to figure out what makes it larn fast.*

* One of the difficulties of OpenGL together with OpenGL ES is that spell the spec specifies what the APIs do, they don't specify how fast they exercise it.  Performance isn't guaranteed, deterministic, or oftentimes fifty-fifty published except inwards IHV presentations.  One of the large pluses of Metal (and maybe GLNext) is deterministic functioning - an API that tells yous what volition last expensive together with what won't be.