Jump to content
  • entries
    943
  • comments
    5,899
  • views
    923,768

iOS 6 Blues


Josh

3,959 views

 Share

Apple's problems in iOS 6 aren't limited to maps. Their OpenGL drivers in iOS 6 are absolutely non-functional.

 

First I was experiencing a BAD_EXC_ACCESS error when rendering certain surfaces. Feedback on the Apple dev forum suggests I am not alone in this. I took a guess and switched my position vertex buffers to use vec4s instead of vec3s, and it appears to have solved that problem (even though both should be fine).

 

Second, all 3D objects just stopped appearing, completely. I've debugged it to the point of absolute barebones, and still can't get anything to show up...but only on the iPad 3 device itself. My iPhone 4 (also running iOS 6.01), the iOS simulator, and even my HTC Evo all appear fine, running the same code.

 

My guess is that the Apple driver team was given a directive to get the speed of their graphics chip up to be competitive with the latest 12-core NVidia Tegra, and that they gained speed by fine-tuning the drivers for specific applications they were testing with, at the expense of compliance with the OpenGL ES specification.

 

In a world where the graphics device performance between all targeted hardware can vary by 1000x, compliance with the OpenGL spec is paramount. Performance at the cost of reliability is not an option.

 

I also have come to the conclusion that OpenGL is just a fundamentally flawed API. Programmable shaders have been around since 2003-ish, and the vendors still can't write drivers that work. I take this as an indication that the OpenGL specification is just too complicated.

 

Anyways, this is one of my more emo blogs, and I will solve the problem, but that's where I'm at today. Considering the amount of non-working **** we deal with on both Android and iOS, it's clear to me that for most developers, cross-platform development is just infeasible. I'm glad we can figure this stuff all out for you, so you can just use our API and not worry about all the mistakes third parties make with their APIs, drivers, and tools.

 Share

14 Comments


Recommended Comments

The sad thing is, the Apple fans don't care about critics and facts, they just demand that every app should work fine. So far S2 has worked very well for me, very fast FPS with realtime shadows and hundreds of drawcalls. The mobile business is getting like the PC business, there are the GeForce 8800 phones (old, but highend), and there are the Intel GMA phones.

Link to comment

I'm really baffled. Lots of games run fine on my iPad 3. I've never seen anything like this on any graphics hardware.

Link to comment

Some guy left a comment on that stackoverflow link

 

The reason is probably that you're trying to read from the screen after the content has been presented using[context presentRenderbuffer:GL_RENDERBUFFER];. Unless you set the layer to use retained backing, as you do above, you're not guaranteed to have this content stick around after it has been presented. It appears that iOS 6.0 is more aggressive in removing this content after it is no longer needed. The above will result in a performance hit, so you might be better off performing a glFinish() operation and capturing the screen after that, then presenting the render buffer.
Link to comment

The problem has to do with the lighting equation in the fragment shader. If I comment out the lighting code, the box appears. :P

 

Now to figure out exactly what is wrong...

Link to comment
Guest Red Ocktober

Posted

i'm getting the feeling that you're really liking this kinda stuff :) the investigative problem solving aspect...

 

way to go...

 

--Mike

Link to comment

I think this should help us developers appreciate what we had for so long in the Windows desktop world. Much can be said about having a platform that is able to get vendors to make good drivers for it to make things easy on us. All that is changing with mobile and it's all over the place. I'm starting to get more into javascript and HTML 5 for work and it has it's browser issues as well, but I'm really thinking it's the future of all apps. They are working on giving more and more access to these languages and it's a common language that runs on any device that has a browser.

Link to comment
Guest Red Ocktober

Posted

"..and look forward to paying you handsomely for it."

 

uuuhhh, hold on there a sec... :)

 

--Mike

Link to comment

"..and look forward to paying you handsomely for it."

 

uuuhhh, hold on there a sec... smile.png

 

--Mike

No wonder Josh liked that status. :)

Link to comment
Guest
Add a comment...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...