"Assertion failure: mContext->mBoundFramebuffer == this" (it's null instead)

RESOLVED FIXED in mozilla26

Status

()

Core
Canvas: WebGL
RESOLVED FIXED
5 years ago
5 years ago

People

(Reporter: dbaron, Assigned: jgilbert)

Tracking

Trunk
mozilla26
x86_64
Linux
Points:
---

Firefox Tracking Flags

(Not tracked)

Details

(URL)

Attachments

(1 attachment)

(Reporter)

Description

5 years ago
While using the new google maps (I've opted in to the new version) in a 64-bit Linux debug build of revision db5e3bb3205d plus my patch queue as of Sat Jul 20 12:14:24 2013 -0700, I hit the following fatal assertion:

Assertion failure: mContext->mBoundFramebuffer == this, at /home/dbaron/builds/ssd/mozilla-central/mozilla/content/canvas/src/WebGLFramebuffer.cpp:227

#5  0x00007f404c3cdac3 in mozilla::WebGLFramebuffer::FramebufferTexture2D (
    this=<optimized out>, target=<optimized out>, attachment=36064,
    textarget=3553, wtex=0x4427c6b0, level=<optimized out>)
    at /home/dbaron/builds/ssd/mozilla-central/mozilla/content/canvas/src/WebGLFramebuffer.cpp:227
#6  0x00007f404c3b85db in ReattachTextureToAnyFramebufferToWorkAroundBugs (
    level=0, tex=0x4427c6b0, this=0x623a8bb0)
    at /home/dbaron/builds/ssd/mozilla-central/mozilla/content/canvas/src/WebGLContextGL.cpp:5476
#7  mozilla::WebGLContext::ReattachTextureToAnyFramebufferToWorkAroundBugs (
    this=0x623a8bb0, tex=0x4427c6b0, level=0)
    at /home/dbaron/builds/ssd/mozilla-central/mozilla/content/canvas/src/WebGLContextGL.cpp:5452
#8  0x00007f404c3bd465 in TexImage2D_base (srcPremultiplied=false,
    srcFormat=mozilla::WebGLTexelConversions::RGBA8, jsArrayType=-1,
    byteLength=0, data=0x0, type=5121, format=6408, border=0,
    srcStrideOrZero=0, height=1142, width=1920, internalformat=<optimized out>,
    level=0, target=3553, this=0x623a8bb0)
    at /home/dbaron/builds/ssd/mozilla-central/mozilla/content/canvas/src/WebGLContextGL.cpp:5041
#9  mozilla::WebGLContext::TexImage2D_base (this=0x623a8bb0, target=3553,
    level=0, internalformat=<optimized out>, width=1920, height=1142,
    srcStrideOrZero=0, border=0, format=6408, type=5121, data=0x0,
    byteLength=0, jsArrayType=-1,
    srcFormat=mozilla::WebGLTexelConversions::RGBA8, srcPremultiplied=false)
    at /home/dbaron/builds/ssd/mozilla-central/mozilla/content/canvas/src/WebGLContextGL.cpp:4900
#10 0x00007f404c3bd609 in mozilla::WebGLContext::TexImage2D (this=0x623a8bb0,
    target=<optimized out>, level=<optimized out>,
    internalformat=<optimized out>, width=<optimized out>,
    height=<optimized out>, border=0, format=6408, type=5121, pixels=0x0,
    rv=...)
    at /home/dbaron/builds/ssd/mozilla-central/mozilla/content/canvas/src/WebGLContextGL.cpp:5057
#11 0x00007f404bcd0281 in mozilla::dom::WebGLRenderingContextBinding::texImage2D
    (cx=0x54e5c030, obj=..., self=0x623a8bb0, args=...)
    at /home/dbaron/builds/ssd/mozilla-central/obj/firefox-debugopt/dom/bindings/---Type <return> to continue, or q <return> to quit---
WebGLRenderingContextBinding.cpp:8685
#12 0x00007f404bccc000 in mozilla::dom::WebGLRenderingContextBinding::genericMethod (cx=0x54e5c030, argc=<optimized out>, vp=0x7fff91433670)
    at /home/dbaron/builds/ssd/mozilla-central/obj/firefox-debugopt/dom/bindings/WebGLRenderingContextBinding.cpp:11060
#13 0x00007f402d5682ae in ?? ()


(gdb) f 5
#5  0x00007f404c3cdac3 in mozilla::WebGLFramebuffer::FramebufferTexture2D (
    this=<optimized out>, target=<optimized out>, attachment=36064,
    textarget=3553, wtex=0x4427c6b0, level=<optimized out>)
    at /home/dbaron/builds/ssd/mozilla-central/mozilla/content/canvas/src/WebGLFramebuffer.cpp:227
227         MOZ_ASSERT(mContext->mBoundFramebuffer == this);
(gdb) p mContext->mBoundFramebuffer
value has been optimized out
(gdb) p mContext
value has been optimized out
(gdb) p this
$1 = <optimized out>
(gdb) up
#6  0x00007f404c3b85db in ReattachTextureToAnyFramebufferToWorkAroundBugs (
    level=0, tex=0x4427c6b0, this=0x623a8bb0)
    at /home/dbaron/builds/ssd/mozilla-central/mozilla/content/canvas/src/WebGLContextGL.cpp:5476
warning: Source file is more recent than executable.
(gdb) l
Line number 5476 out of range; /home/dbaron/builds/ssd/mozilla-central/mozilla/content/canvas/src/WebGLContextGL.cpp has 5314 lines.
(gdb) p framebuffer
$2 = (mozilla::WebGLFramebuffer *) 0x4d67bfb0
(gdb) p framebuffer->mContext
$3 = (mozilla::WebGL1Context *) 0x623a8bb0
(gdb) p framebuffer->mContext->mBoundFramebuffer
$4 = {
  mRawPtr = 0x0
}


So mContext->mBoundFramebuffer is null rather than (as asserted) this.
This is the assertion added in http://hg.mozilla.org/mozilla-central/rev/8f0aee7807f9, which fails just because ScopedBindFramebuffer doesn't know about WebGLContext objects.
Blocks: 880734
(Assignee)

Comment 2

5 years ago
(In reply to Karl Tomlinson (:karlt) from comment #1)
> This is the assertion added in
> http://hg.mozilla.org/mozilla-central/rev/8f0aee7807f9, which fails just
> because ScopedBindFramebuffer doesn't know about WebGLContext objects.

Ah, I see.
Assignee: nobody → jgilbert
(Assignee)

Comment 3

5 years ago
Created attachment 785967 [details] [diff] [review]
mesa-temp-fb-bind
Attachment #785967 - Flags: review?(bjacob)
Comment on attachment 785967 [details] [diff] [review]
mesa-temp-fb-bind

Review of attachment 785967 [details] [diff] [review]:
-----------------------------------------------------------------

Hah, I should have caught that when I reviewed that patch. Sorry.
Attachment #785967 - Flags: review?(bjacob) → review+
https://hg.mozilla.org/mozilla-central/rev/807e3285ff64
Status: NEW → RESOLVED
Last Resolved: 5 years ago
Resolution: --- → FIXED
Target Milestone: --- → mozilla26
You need to log in before you can comment on or make changes to this bug.