r147 - WebGL error, Assertion Failed

  • Link to .capx file (required!):

    My account is too new to post link, but you can download the capx at:

    dropbox dot com/s/56j7pje4tipzgrs/r147_webgl_bug.capx

    Steps to reproduce:

    1. Create an empty project, add a sprite.

    2. Give it the effect "set color".

    3. Give it the effect "water background"

    4. Make sure "water background" is the second effect.

    5. Run the project and observe crash.

    Not all effects cause the bug, but it seems like if a distortion effect is second on the list and a color effect is first, it happens. Sphere and Water Background are the two distortions I got the bug with, when combined with nearly any other effect.

    Observed result:

    Error message at runtime stating: "Assertion failure: Warning: set rendering to current texture 1"

    Expected result:

    Effects applied and no error message appears.

    Browsers affected:

    Chrome: yes

    Firefox: yes

    Internet Explorer: No? I have IE10, doesn't appear to apply any WebGL effects.

    Operating system & service pack:

    Win7x64 home prem, sp1

    Construct 2 version:

    r147 beta

  • Since r147, I've got that error too when my game load a layout. (and I use several webGL fx)

  • Same issue as of r147.

  • Got the same thing here, only noticed it in the latest build (r147)though. Also when I export to my Galaxy Note 8.0, the effects stop working, but they work fine in Chrome (31.0.1650.16 beta-m), but still give me the error message.

  • FYI just in case you're trying to reproduce them

    these errors appeared ussing r0j0hound's paster plugin v0.3

    he fixed it in v0.4

    these were the errors:

    Assertion failure: Warning: set rendering to current texture 0
    
    Stack trace: 
    assert2@http://localhost:50000/preview_prelude.js:12
    GLWrap_.prototype.setRenderingToTexture@http://localhost:50000/glwrap.js:1503
    Acts.prototype.ClearColor@http://localhost:50000/rojoPaster_plugin.js:353
    Action.prototype.run_object@http://localhost:50000/eveng.js:1644
    EventBlock.prototype.run_actions_and_subevents@http://localhost:50000/eveng.js:846
    EventBlock.prototype.retrigger@http://localhost:50000/eveng.js:1001
    SysCnds.prototype.ForEach@http://localhost:50000/system.js:600
    Condition.prototype.run_system@http://localhost:50000/eveng.js:1172
    EventBlock.prototype.run@http://localhost:50000/eveng.js:785
    EventSheet.prototype.run@http://localhost:50000/eveng.js:187
    Runtime.prototype.logic@http://localhost:50000/preview.js:1838
    Runtime.prototype.tick@http://localhost:50000/preview.js:1517
    Runtime.prototype.go_textures_done@http://localhost:50000/preview.js:1402
    Runtime.prototype.go@http://localhost:50000/preview.js:1255
    Runtime.prototype.go/</<@http://localhost:50000/preview.js:1324
    
    Assertion failure: Warning: set rendering to current texture 0
    
    Stack trace: 
    assert2@http://localhost:50000/preview_prelude.js:12
    GLWrap_.prototype.setRenderingToTexture@http://localhost:50000/glwrap.js:1503
    Acts.prototype.ClearColor@http://localhost:50000/rojoPaster_plugin.js:353
    Action.prototype.run_object@http://localhost:50000/eveng.js:1644
    EventBlock.prototype.run_actions_and_subevents@http://localhost:50000/eveng.js:846
    EventBlock.prototype.run@http://localhost:50000/eveng.js:805
    EventSheet.prototype.run@http://localhost:50000/eveng.js:187
    Runtime.prototype.logic@http://localhost:50000/preview.js:1838
    Runtime.prototype.tick@http://localhost:50000/preview.js:1517
    @http://localhost:50000/preview.js:430
    
    
  • ghost Ashley

    My error was a bit different. It was caused by trying to render to the current texture used for drawing. It may have been a false positive as everything worked fine apart from the assert. I corrected it by using glw.setTexture(null); before setting the render target.

    Oh, and in the case of my plugin the situation was easy to recreate. If the plugin was the last object to be drawn then any actions that draw to a texture would cause the assert.

    For what I can tell "texture 1" is a bit different but I think it may be a false positive as well since the texture will be changed to something different anyway and won't be used for drawing.

  • Try Construct 3

    Develop games in your browser. Powerful, performant & highly capable.

    Try Now Construct 3 users don't see these ads
  • You're probably right; the bug appears only in preview mode for me.

  • This is fixed in the next build.

    @R0J0hound - note the new assert checks are because in those cases IE11's WebGL stops rendering. It's complaint with the standards, since having the same render texture and current texture set has undefined behavior according to the OpenGL ES spec; it worked in Chrome and Firefox but we shouldn't have relied on it, and those new asserts are automatically checking you're not doing that.

  • Ashley

    Ok, cool, that's good to know. I was unaware of the spec.

Jump to:
Active Users
There are 1 visitors browsing this topic (0 users and 1 guests)