Gamua / Starling-Framework

The Cross Platform Game Engine
http://www.starling-framework.org
Other
2.85k stars 819 forks source link

Uncaught ArgumentError: Error #3672 at starling.display::QuadBatch/createBuffers() #676

Open neuronix opened 9 years ago

neuronix commented 9 years ago

Hi,

This error is a nightmare. Has been triggering randomly for ages, now in latest Android release (built with AIR 17), thousands of users are getting it on first launch... without any major change the in app code (and no issues on testing devices: Galaxy S4, Galaxy S3 mini...).

Uncaught ArgumentError: Error #3672 at starling.display::QuadBatch/createBuffers() at starling.display::QuadBatch/syncBuffers() at starling.display::QuadBatch/renderCustom() at starling.core::RenderSupport/finishQuadBatch() at starling.core::RenderSupport/batchQuad() at starling.display::Image/render() at starling.display::DisplayObjectContainer/render() at starling.display::Sprite/render() at starling.display::DisplayObjectContainer/render() at starling.display::Sprite/render() at starling.display::DisplayObjectContainer/render() at starling.core::Starling/render() at starling.core::Starling/nextFrame() at starling.core::Starling/onEnterFrame()

Impossible to debug and causes the app to crash.

I don't know if this is a Starling bug or an AIR / Flash bug but Starling is supposedly backed by Adobe. Is there no way of getting them to actually fix theses bugs?

Another one I reported that has been closed by adobe that still occurs thousands of times per day on our userbase (finally overrid starling & try catched the rendering..) : https://github.com/Gamua/Starling-Framework/issues/630

PrimaryFeather commented 9 years ago

Sorry to hear about those issues!

You say that it got much more common now that you've updated to AIR 17, right? It's still a beta, perhaps this is some problem with the new version. Could you also try again with AIR 16, or do you rely on some specific new feature?

In any case, I just recently talked to Adobe about this error again and emphasized that it's one of the most critical ones (especially since 'internal error' is too vage to do anything against it). I'll keep trying!!

When you say "thousands of users", can you say what a percentage of users is that? And what was it before, with AIR 16?

neuronix commented 9 years ago

I have already rolled back to AIR 16 and will see if the frequency drops in a day or so. I'll try and get you a good estimation of the errors/session in the next few days but basically this error and the textfield error I previously reported are the 2 most frequent errors that our app reports.

PrimaryFeather commented 9 years ago

Thanks a lot for the info! If I find out anything from Adobe, I'll post it here, as well.

neuronix commented 9 years ago

Well, 15min was enough : 12K logged sessions (not counting the ones that aren't logged due to the bug preventing login..):

740 Errors: ArgumentError: Error #3672 at starling.display::QuadBatch/createBuffers() at starling.display::QuadBatch/syncBuffers() at starling.display::QuadBatch/renderCustom() at starling.core::RenderSupport/finishQuadBatch() at starling.core::RenderSupport/batchQuad() at starling.display::Image/render() at starling.display::DisplayObjectContainer/render() at starling.display::Sprite/render() at starling.display::DisplayObjectContainer/render() at starling.display::Sprite/render() at starling.display::DisplayObjectContainer/render() at starling.core::Starling/render() at starling.core::Starling/nextFrame() at starling.core::Starling/onEnterFrame()

75 Errors: ArgumentError: Error #3672 at starling.display::QuadBatch/createBuffers() at starling.display::QuadBatch/syncBuffers() at starling.display::QuadBatch/renderCustom() at starling.core::RenderSupport/finishQuadBatch() at starling.core::RenderSupport/batchQuad() at starling.display::Image/render() at starling.display::DisplayObjectContainer/render() at starling.text::TextField/render() at starling.display::DisplayObjectContainer/render() at starling.display::Sprite/render() at starling.display::DisplayObjectContainer/render() at starling.display::Sprite/render() at starling.display::DisplayObjectContainer/render() at starling.display::Sprite/render() at starling.display::DisplayObjectContainer/render() at starling.display::Sprite/render() at starling.display::DisplayObjectContainer/render() at starling.core::Starling/render() at starling.core::Starling/nextFrame() at starling.core::Starling/onEnterFrame()

And about 40 more with various traces.. happens anytime, anywhere.. :(

PrimaryFeather commented 9 years ago

Wow ... so about 850 errors in 12k sessions, right? And that's with AIR 16? But it hasn't always been that way, has it?!

neuronix commented 9 years ago

No this is with AIR 17, the AIR 16 build is in the playstore release process. I'll need about 2 days to see if the number decreases again once the new (AIR 16) build has been dispatched.

PrimaryFeather commented 9 years ago

Aaah, okay. Phew. Thanks for the clarification! And sorry for the troubles ... I'll do all I can to help. :-/

neuronix commented 9 years ago

Thanks Daniel!

neuronix commented 9 years ago

Quick update, the issue was present on a friends device (Galaxy Tab 2) and once reverted to AIR 16, no more issue.

So there is definitely a major issue in AIR 17.

abhinavdhandh commented 9 years ago

Hi

We tried to reproduce this issue with AIR 17 based android application but the issue is not reproducible at our end.

Could you please share a sample application in which the issue is reproducible & the steps of viewing this error log in that application?

Regards Abhinav Adobe AIR Team

neuronix commented 9 years ago

Hi,

Thanks for following up on this issue. Here is a debug apk that was built with air 17: [Edited]

Please remember that it doesn't occur on all devices, it didn't occur on any of our test devices. One user that had the issue used a Galaxy Tab3 Lite.

abhinavdhandh commented 9 years ago

Hi

We tried reproducing this issue using the apk which you have shared above. We didn't see the error/crash during app launch on different Samsung tablets including Samsung Tab 3. The app launched & worked fine on all of these & we also didn't encounter anything problematic on fdb debugging.

Would it be possible for you to share a sample app on which the issue is reproducible?

Regards Abhinav Adobe AIR Team

neuronix commented 9 years ago

Hi,

Thanks for investigating the issue. Unfortunately I never experienced the issue myself but we experienced huge numbers of complaints and received the numerous error logs as detailed above when we went live with the release version.

I'll post here again if I manage to reproduce the issue in a reliable manner.

isBatak commented 9 years ago

Hi,

we have the same problem with SAMSUNG Galaxy Tab 2. On every launch app fails with an error.

ArgumentError: Error #3672: Buffer creation failed. Internal error.
    at flash.display3D::Context3D/createIndexBuffer()
    at starling.display::QuadBatch/createBuffers()[D:\D disk\Programiranje\Git\tmobile_d2d_android_1280x760\Starling-Framework\starling\src\starling\display\QuadBatch.as:178]
    at starling.display::QuadBatch/syncBuffers()[D:\D disk\Programiranje\Git\tmobile_d2d_android_1280x760\Starling-Framework\starling\src\starling\display\QuadBatch.as:204]
    at starling.display::QuadBatch/renderCustom()[D:\D disk\Programiranje\Git\tmobile_d2d_android_1280x760\Starling-Framework\starling\src\starling\display\QuadBatch.as:222]
    at starling.core::RenderSupport/finishQuadBatch()[D:\D disk\Programiranje\Git\tmobile_d2d_android_1280x760\Starling-Framework\starling\src\starling\core\RenderSupport.as:372]
    at starling.core::RenderSupport/batchQuad()[D:\D disk\Programiranje\Git\tmobile_d2d_android_1280x760\Starling-Framework\starling\src\starling\core\RenderSupport.as:340]
    at starling.display::Image/render()[D:\D disk\Programiranje\Git\tmobile_d2d_android_1280x760\Starling-Framework\starling\src\starling\display\Image.as:184]
    at starling.display::DisplayObjectContainer/render()[D:\D disk\Programiranje\Git\tmobile_d2d_android_1280x760\Starling-Framework\starling\src\starling\display\DisplayObjectContainer.as:351]
    at starling.display::Sprite/render()[D:\D disk\Programiranje\Git\tmobile_d2d_android_1280x760\Starling-Framework\starling\src\starling\display\Sprite.as:203]
    at feathers.controls.text::TextFieldTextRenderer/render()[D:\D disk\Programiranje\Git\tmobile_d2d_android_1280x760\feathers\source\feathers\controls\text\TextFieldTextRenderer.as:857]
    at starling.display::DisplayObjectContainer/render()[D:\D disk\Programiranje\Git\tmobile_d2d_android_1280x760\Starling-Framework\starling\src\starling\display\DisplayObjectContainer.as:351]
    at starling.display::Sprite/render()[D:\D disk\Programiranje\Git\tmobile_d2d_android_1280x760\Starling-Framework\starling\src\starling\display\Sprite.as:203]
    at starling.display::DisplayObjectContainer/render()[D:\D disk\Programiranje\Git\tmobile_d2d_android_1280x760\Starling-Framework\starling\src\starling\display\DisplayObjectContainer.as:351]
    at starling.display::Sprite/render()[D:\D disk\Programiranje\Git\tmobile_d2d_android_1280x760\Starling-Framework\starling\src\starling\display\Sprite.as:203]
    at starling.display::DisplayObjectContainer/render()[D:\D disk\Programiranje\Git\tmobile_d2d_android_1280x760\Starling-Framework\starling\src\starling\display\DisplayObjectContainer.as:351]
    at starling.display::Sprite/render()[D:\D disk\Programiranje\Git\tmobile_d2d_android_1280x760\Starling-Framework\starling\src\starling\display\Sprite.as:203]
    at starling.display::DisplayObjectContainer/render()[D:\D disk\Programiranje\Git\tmobile_d2d_android_1280x760\Starling-Framework\starling\src\starling\display\DisplayObjectContainer.as:351]
    at starling.display::Sprite/render()[D:\D disk\Programiranje\Git\tmobile_d2d_android_1280x760\Starling-Framework\starling\src\starling\display\Sprite.as:203]
    at starling.display::DisplayObjectContainer/render()[D:\D disk\Programiranje\Git\tmobile_d2d_android_1280x760\Starling-Framework\starling\src\starling\display\DisplayObjectContainer.as:351]
    at starling.display::Sprite/render()[D:\D disk\Programiranje\Git\tmobile_d2d_android_1280x760\Starling-Framework\starling\src\starling\display\Sprite.as:203]
    at starling.display::DisplayObjectContainer/render()[D:\D disk\Programiranje\Git\tmobile_d2d_android_1280x760\Starling-Framework\starling\src\starling\display\DisplayObjectContainer.as:351]
    at starling.display::Sprite/render()[D:\D disk\Programiranje\Git\tmobile_d2d_android_1280x760\Starling-Framework\starling\src\starling\display\Sprite.as:203]
    at starling.display::DisplayObjectContainer/render()[D:\D disk\Programiranje\Git\tmobile_d2d_android_1280x760\Starling-Framework\starling\src\starling\display\DisplayObjectContainer.as:351]
    at starling.display::Sprite/render()[D:\D disk\Programiranje\Git\tmobile_d2d_android_1280x760\Starling-Framework\starling\src\starling\display\Sprite.as:203]
    at starling.display::DisplayObjectContainer/render()[D:\D disk\Programiranje\Git\tmobile_d2d_android_1280x760\Starling-Framework\starling\src\starling\display\DisplayObjectContainer.as:351]
    at starling.core::Starling/render()[D:\D disk\Programiranje\Git\tmobile_d2d_android_1280x760\Starling-Framework\starling\src\starling\core\Starling.as:512]
    at starling.core::Starling/nextFrame()[D:\D disk\Programiranje\Git\tmobile_d2d_android_1280x760\Starling-Framework\starling\src\starling\core\Starling.as:467]
    at starling.core::Starling/onEnterFrame()[D:\D disk\Programiranje\Git\tmobile_d2d_android_1280x760\Starling-Framework\starling\src\starling\core\Starling.as:670]

With AIR 16 everything works fine but the problem is that our clients use automatic update and now everybody have AIR 17 on theirs SAMSUNG galaxy Tab 2. We need to know when this bug will be fixed? Thanks!

neuronix commented 9 years ago

Hey isBatak, are you using the non-beta AIR 17 release? (I haven't tested it so far)

abhinavdhandh commented 9 years ago

Hi isBatak,

As mentioned in earlier posts, we haven't been able to reproduce this issue locally at our end.

If possible, could you please share a sample app in which the issue is easily reproducible?

Thanks, Abhinav Adobe AIR Team

isBatak commented 9 years ago

yes, official non-beta AIR 17 downloaded from here

isBatak commented 9 years ago

Hi Abhinav, Currently i'm not at my office and don't have device so i can't make sample app. I'll make one tomorrow.

isBatak commented 9 years ago

Hi Abhinav, I've created a test app that reproduce this type of error. Link for download is here

On this picture you can see my device specification here And this is the preview of error in the sample app here

abhinavdhandh commented 9 years ago

Thanks for sharing the assets, @isBatak I'm assuming that you are encountering these errors on adb logcat or is it via FDB debugging?

Thanks, Abhinav

isBatak commented 9 years ago

@abhinavdhandh I'm encountering this error in both situations, either with release version of apk that I sent you, or while debugging with FlashBuilder. I can also give you old logcat output here, this is from my original app since I forgot to save logcat of TestApp, sorry :D

EDIT: If your question is referring to this picture here than it is inside app. I've put context.createVertexBuffer inside try catch and output error in flash TextField created on 2D stage.

EDIT 2: In the other hand, if you see a red square in top left corner than you are not getting the error. Maybe this error is device specific.

tushar2708 commented 9 years ago

Hi Sebastien,

Could you provide us a sample project ( not an apk ) in which this issue is reproducible so that we could understand the problem precisely ?

-Tushar Dwivedi Adobe Air Team

DryGinStudios commented 9 years ago

I have the same problem with a galaxy tab 3 LITE (not with normal galaxy tab 3). I was about to release my update today and had a problem with this tablet, so after much googling found your post. I'm going to rollback to air 16 for now and wait for adobe to fix this.

DryGinStudios commented 9 years ago

@tushar2708 : to reproduce the problem is easy, the problem is the device, not the code. You don't need any special code from us. You need to get a galaxy tab 3 lite from costco at 100 buck. The moment you try to render ANYTHING, it throw error in starling @ createBuffers().

I just tested and using adobe air 16 fix the problem.

It's a MAJOR problem and updating my app with the release version of adobe air 17 would have cost me thousands of dollars. Happy that i had a bad tab 3 lite (my son tablet) with me to catch it before it would be too late like for neuronix.

grosssmutttr commented 9 years ago

I'm getting this issue too with Adobe AIR 17, feathers 1.3.1 and starling 1.5.1. (Error #3675: Texture format mismatch. in Starling #680) On a Nexus 4 with Android 5.0 it is working on a Samsung Galaxy S2 the error occurs...

Also tested AIR 17 with the latest Starling 1.6 and feathers 2.1.1...same error and also only the S2 throws the error.

Update I Now also tested with AIR 16 and it is also not working...AIR 15 works.

Update II: AIR 16 seems to work when adding -swf-version=27 to the "Additional compiler arguments" in Flash Builder 4.7 AIR 17 doesn't work with -swf-version=28 on the Samsung Galaxy S2

crooksy88 commented 9 years ago

I also get the Texture Format mismatch with AIR 17.0.0.124 and Starling 1.6 on my Galaxy Tab 10.1 (GT-P7510) running Android 4.0.4.

The latest version of Flash Pro CC 2014 now prevents publishing with anything lower than AIR 17 as well so I can't revert to using AIR 16 which did function without the error.

PrimaryFeather commented 9 years ago

For reference, here is another report that is probably related: https://github.com/Gamua/Starling-Framework/issues/267#issuecomment-83900810

kavolorn commented 9 years ago

Samsung Galaxy Nexus GT-i9250, Android 4.3

Non of my apps works with this device after switching to latest AIR 17.

ArgumentError: Error #3675
        at starling.textures::ConcreteTexture/uploadBitmapData()
        at starling.textures::Texture$/fromBitmapData()
        at starling.textures::Texture$/fromData()
        at Function/process()
        at starling.utils::SystemUtil$/executeWhenApplicationIsActive()
        at Function/complete()
        at Function/onLoaderComplete()

This is definitely major issue to be solved. So many devices suffer from it.

shamruk commented 9 years ago

I get much less of this errors with AIR 15 ) Wow, they have released this ^$^% Looks like Adobe doesn't test there builds on android. Seriously, an app with lust 1000 DAU will reveal tuns of problems very quickly.

dmpanis commented 9 years ago

Same here, this is device related. Some devices that have this issue are:

HP Slate 10 Samsung galaxy 3 tablet POLAROID Tablette 10,1"

Very urgent!!!

shamruk commented 9 years ago

@dmpanis , I've rolled back to old AIR (15-16) for android builds. Recommend you to do the same

dmpanis commented 9 years ago

Thanks @shamruk it seems the only option at the moment. @abhinavdhandh is there a fix coming any time soon?

Mintonist commented 9 years ago

List of affected devices (form google dev console): Galaxy Tab4 7.0 (degas3g) Galaxy Tab2 10.1 (espresso10rf) Galaxy S Advance (GT-I9070) Galaxy Tab3 Lite (goya3g) ASUS Fonepad ME371MG (ME371MG) Galaxy Tab3 7.0 (lt023g) MediaPad 7 Lite (hws7930u)

Can we use AIR17 on iOS device? Or it be better to wait for fix.

graemelaws commented 9 years ago

I'm just updating our Android version, and I've spent the past 3 hours scratching my head, trying to hack out code that would be causing this error. Then I come here and see it's a common problem with Air 17. My device is a Samsung Galaxy Trend Plus. Luckily I caught it on the first device I used or it could have had serious consequences for us if it went live.

We submitted the iOS version yesterday, should I reject it and recompile with 16?

neuronix commented 9 years ago

I saw no issues on iOS but since I always publish live on Android first, I can't say for sure, only tested on iPad 4 & iPhone 4. Safest choice would be to reject & recompile.

@tushar2708 @abhinavdhandh is there any news on this issue ?

DryGinStudios commented 9 years ago

my IOS version is with air 17 and i, for now, don't have any problem. It seem it`s a problem only with andorid

PrimaryFeather commented 9 years ago

For reference, another error report with device details: #695

Mintonist commented 9 years ago

Does anybody create bug on https://bugbase.adobe.com ?

dmpanis commented 9 years ago

@Mintonist check https://bugbase.adobe.com/index.cfm?event=bug&id=3952617

tushar2708 commented 9 years ago

Hi guys

Thanks for the information provided by you. We have successfully reproduced the issue at our end. ( @DryGinStudios , @neuronix ) Our team will be looking into the issue.

-Tushar Dwivedi Adobe Air Team

Mintonist commented 9 years ago

We have two different bugs in AIR17:

ArgumentError: Error #3675: Texture format mismatch. at flash.display3D.textures::Texture/uploadFromBitmapData()

and

ArgumentError: Error #3672 at starling.display::QuadBatch/createBuffers()

But on https://bugbase.adobe.com/index.cfm?event=bug&id=3952617 there is only first of them.

PrimaryFeather commented 9 years ago

In the Starling forum, there was another one reported, observed on a Samsung Galaxy Note 4: "Error #3702: Context3D not available."

BugBase Entry, Forum Thread

quilombodigital commented 9 years ago

Hi, We have here exactly the same issue in a game we publish and did not changed it too much recently. We got "Uncaught ArgumentError: Error #3672 at starling.display::QuadBatch/createBuffers()" when initializing. It works using Debug in flashbuilder, but fails using Run. Galaxy Tab 3 Nexus 4 AIR16 Starling 1.5.1

Please find a solution ASAP, we need to deliver a new release of the game and we are blocked. ;(

DryGinStudios commented 9 years ago

I don't think it's the same problem as this problem is really related to air 17.

tushar2708 commented 9 years ago

Sure guys,

I will be looking into ArgumentError: Error #3672 as well. Meanwhile I would suggest you to also log a bug in adobe bugbase regarding this with a sample code snippet/sample project , to ensure quick resolution and proper tracking.

https://bugbase.adobe.com

-Tushar Dwivedi Adobe AIR team

tushar2708 commented 9 years ago

Hi @PrimaryFeather ,

Regarding the "Error #3702: Context3D not available." issue , I'm unable to understand the complete scenario. Just to make sure that we are on the same page, can you confirm if the user has used direct in the -app.xml file of the project ? It is not clear from the code snippet provided. . Moreover, the code that is provided, doesn't handles Event.CONTEXT3D_CREATE, so it will also generate "ArgumentError: Error #3688". I hope it is handled in the actual application code.

-Tushar Adobe AIR Team

PrimaryFeather commented 9 years ago

Hi Tushar, I don't know any more about Lorenzo's problem than you do, but I thought it might be connected; that's why I linked it here. However, I saw that you replied in the forum thread, too — I'm sure Lorenzo will get back to you asap! Perhaps his sample code was just incomplete. I'll keep an eye on the thread and will contact him if he doesn't respond in time.

In any case: thanks a lot for your support, Tushar! It's great to get such a direct response from you guys. :+1:

22Round commented 9 years ago

I'm waiting adobe's fix !!!!

tushar2708 commented 9 years ago

Hi @PrimaryFeather ,

I just needed to make sure that the error isn't due to such a simple reason. I'm following up with Lorenzo on a separate thread on bugbase, and it seems it's an error he's facing on a specific device. We are also looking into that issue now along with the Error#3672 issue mentioned above, thanks for bringing that to our notice, though.

-Tushar Adobe AIR Team

PrimaryFeather commented 9 years ago

I understand, @tushar2708! Thanks for looking into these issues, we all appreciate it! :smile: