Gamua / Sparrow-Framework

The Open Source Game Engine for iOS
http://www.sparrow-framework.org
Other
294 stars 83 forks source link

Head revision Program #0 doesn't exist issue. #34

Closed TwoPints closed 10 years ago

TwoPints commented 10 years ago

When doing an analyse within Xcode I started seeing the following GL Error for all draw calls.

The captured frame of OpenGL ES contained an OpenGL ES error. You should correct this before analysing performance to receive accurate results.

Program #0 was set to be used for this draw call, but it does not exist. Ensure this program has not been deleted.

Also when running instrument I see three more GL errors upon start up, to do with glGetIntegerv and two glPixelStorei complaining of invalid enum 0x8a16, just a case of uninitialised vars?

PrimaryFeather commented 10 years ago

Thanks a lot for the heads-up!

Hm, I just tried it with the current head revision, and I didn't get that error from the OpenGL Analyzer. What was the exact revision you used? Just yesterday, I merged a pull request from Robert with lots of OpenGL changes / fixes. Maybe you used the version before that merge? Or did it happen after it?

If it's still happening in the latest version: what's your test program? I tried the Sparrow Demo, nothing else (yet).

TwoPints commented 10 years ago

I'm all synced up from yesterday which has all the new stuff from Robert. The is happening on my project for my custom renderer and all the sparrow SPQuads / textured quads that I also use.

Oddly enough the error doesn't occur for the stats, just a warning for lack of VAO for those two batches.

And the program my stuff (which is the same program as SPQuad) is program #2 so no idea were program #0 comes in to play. I shall keep digging to find the cause.

TwoPints commented 10 years ago

Also this isn't something that shows up in Instruments analyser, you need to take a snap shot from within Xcode under debug navigator while running.

TwoPints commented 10 years ago

Ok it's the change in commit 7829a9b from the 27th May, version before this is fine, but the change in SPViewController.m causes the prog #0 issue.

PrimaryFeather commented 10 years ago

Thanks for the further updates!

I still can't reproduce it though. When you say "take a snap shot from ... debug navigator": I started the app on the device, then in the debug navigator, entered "OpenGL ES" / FPS and hit "Analyze". The warnings I received then are the typical ones (redundant calls, etc.), but I didn't find any warning about a non-existing program. Again, I used the Sparrow demo for the tests; and I tried both release and debug mode.

Am I doing something wrong? Where exactly does the error occur? Perhaps you can explain it in a little more detail. Thanks a lot in advance!!! I really want to get to the root of this. :-)

HexTank commented 10 years ago

It doesn't appear to do it on the menu of the Sparrow Demo, but it does appear when you run the performance test. I'll not have access to my Mac until later so if you fail to repro it by then I'll take a screenshot of what you should see.

PrimaryFeather commented 10 years ago

You mean the benchmark scene in the demo, right? I couldn't reproduce it there, either, unfortunately. :-( Yes, a screenshot would be great! Maybe I'm just looking at the wrong place.

TwoPints commented 10 years ago

Hopefully this shows what I'm on about.

screen shot 2014-06-02 at 18 12 24

TwoPints commented 10 years ago

screen shot 2014-06-02 at 18 15 55

TwoPints commented 10 years ago

Hrm, I thought I'd test on my iPad and it doesn't occur, so maybe this is an iPod / iOS 6 thing? My iPod can't / won't upgrade to 7.

screen shot 2014-06-02 at 18 18 54

TwoPints commented 10 years ago

But in hindsight, iOS 7 has a lot more debugger type stuff, seeing the render textures is a great help. :)

PrimaryFeather commented 10 years ago

Hm, it could be that the Xcode analyze has some problems with iOS 6 — it was only added very recently, with iOS 7, so it's not unlikely. Since it works with iOS 7 and there's nothing wrong with performance or drawing quality on iOS 6, I'd leave it at that for now. (Since I'm somewhat out of ideas what to do about it, anyway.)

If it turns out to cause a real-life problem, please be sure to open up the issue again, and I'll continue investigation.

I hope you're fine with that! Again, thanks for digging into that issue.