Closed Bug 1652894 Opened 4 years ago Closed 4 years ago

Playing hardware-decoded video with SWGL crashes the browser [@ composite_TEXTURE_RECT_YUV_frag::sample_yuv ]

Categories

(Core :: Graphics: WebRender, defect, P3)

All
macOS
defect

Tracking

()

RESOLVED FIXED
81 Branch
Tracking Status
firefox-esr68 --- unaffected
firefox-esr78 --- unaffected
firefox79 --- disabled
firefox80 --- disabled
firefox81 --- fixed

People

(Reporter: mstange, Assigned: lsalzman)

References

(Blocks 1 open bug)

Details

(Keywords: crash)

Crash Data

Attachments

(5 files)

Seen when trying to play a video on cnn.com, with SWGL enabled on macOS.

Process 2145 stopped
* thread #29, name = 'Renderer', stop reason = EXC_BAD_ACCESS (code=1, address=0xfffffffffffffffc)
    frame #0: 0x0000000106ec510a XUL`composite_YUV_TEXTURE_RECT_frag::sample_yuv(int, glsl::mat3_scalar, float, glsl::vec3_scalar, glsl::vec2, glsl::vec2, glsl::vec2, glsl::vec4_scalar, glsl::vec4_scalar, glsl::vec4_scalar) [inlined] glsl::pixel_to_vec4(a=<unavailable>, b=<unavailable>, c=<unavailable>, d=<unavailable>) at glsl.h:2222:16 [opt]
   2219	float to_float(uint32_t x) { return x * (1.f / 255.f); }
   2220
   2221	vec4 pixel_to_vec4(uint32_t a, uint32_t b, uint32_t c, uint32_t d) {
-> 2222	  U32 pixels = {a, b, c, d};
   2223	  return vec4(cast((pixels >> 16) & 0xFF), cast((pixels >> 8) & 0xFF),
   2224	              cast(pixels & 0xFF), cast(pixels >> 24)) *
   2225	         (1.0f / 255.0f);
Target 0: (firefox) stopped.
(lldb) bt
error: need to add support for DW_TAG_base_type '()' encoded with DW_ATE = 0x7, bit_size = 0
error: need to add support for DW_TAG_base_type '()' encoded with DW_ATE = 0x7, bit_size = 0
* thread #29, name = 'Renderer', stop reason = EXC_BAD_ACCESS (code=1, address=0xfffffffffffffffc)
  * frame #0: 0x0000000106ec510a XUL`composite_YUV_TEXTURE_RECT_frag::sample_yuv(int, glsl::mat3_scalar, float, glsl::vec3_scalar, glsl::vec2, glsl::vec2, glsl::vec2, glsl::vec4_scalar, glsl::vec4_scalar, glsl::vec4_scalar) [inlined] glsl::pixel_to_vec4(a=<unavailable>, b=<unavailable>, c=<unavailable>, d=<unavailable>) at glsl.h:2222:16 [opt]
    frame #1: 0x0000000106ec510a XUL`composite_YUV_TEXTURE_RECT_frag::sample_yuv(int, glsl::mat3_scalar, float, glsl::vec3_scalar, glsl::vec2, glsl::vec2, glsl::vec2, glsl::vec4_scalar, glsl::vec4_scalar, glsl::vec4_scalar) [inlined] glsl::vec4 glsl::fetchOffsetsRGBA8<glsl::sampler2DRect_impl*>(offset=<unavailable>) at glsl.h:2246 [opt]
    frame #2: 0x0000000106ec50df XUL`composite_YUV_TEXTURE_RECT_frag::sample_yuv(int, glsl::mat3_scalar, float, glsl::vec3_scalar, glsl::vec2, glsl::vec2, glsl::vec2, glsl::vec4_scalar, glsl::vec4_scalar, glsl::vec4_scalar) [inlined] glsl::texelFetch(sampler=<unavailable>, P=<unavailable>) at glsl.h:2370 [opt]
    frame #3: 0x0000000106ec5084 XUL`composite_YUV_TEXTURE_RECT_frag::sample_yuv(int, glsl::mat3_scalar, float, glsl::vec3_scalar, glsl::vec2, glsl::vec2, glsl::vec2, glsl::vec4_scalar, glsl::vec4_scalar, glsl::vec4_scalar) at glsl.h:2824 [opt]
    frame #4: 0x0000000106ec507c XUL`composite_YUV_TEXTURE_RECT_frag::sample_yuv(this=0x0000000139f51010, format=<unavailable>, yuv_color_matrix=mat3_scalar @ 0x00007000063dce20, coefficient=1, yuv_layers=<unavailable>, in_uv_y=vec2 @ 0x00007000063dce50, in_uv_u=vec2 @ 0x00007000063dce70, in_uv_v=vec2 @ 0x00007000063dce90, uv_bounds_y=<unavailable>, uv_bounds_u=<unavailable>, uv_bounds_v=(x = -0.5, y = -0.5, z = -1.5, w = -1.5)) at composite_YUV_TEXTURE_RECT.h:262 [opt]
    frame #5: 0x0000000106ec3ca9 XUL`composite_YUV_TEXTURE_RECT_frag::run(composite_YUV_TEXTURE_RECT_frag*) [inlined] composite_YUV_TEXTURE_RECT_frag::main(this=0x0000000139f51010) at composite_YUV_TEXTURE_RECT.h:284:15 [opt]
    frame #6: 0x0000000106ec3bbd XUL`composite_YUV_TEXTURE_RECT_frag::run(self=0x0000000139f51010) at composite_YUV_TEXTURE_RECT.h:331 [opt]
    frame #7: 0x0000000106f03855 XUL`void draw_quad_spans<unsigned int>(int, glsl::vec2_scalar*, unsigned short, glsl::vec3*, Texture&, int, Texture&, ClipRect const&) [inlined] void glsl::FragmentShaderImpl::run<false>(this=<unavailable>) at program.h:139:5 [opt]
    frame #8: 0x0000000106f03852 XUL`void draw_quad_spans<unsigned int>(int, glsl::vec2_scalar*, unsigned short, glsl::vec3*, Texture&, int, Texture&, ClipRect const&) [inlined] void commit_output<false, false, unsigned int>(buf=0x0000000150501000) at gl.cc:2568 [opt]
    frame #9: 0x0000000106f03852 XUL`void draw_quad_spans<unsigned int>(int, glsl::vec2_scalar*, unsigned short, glsl::vec3*, Texture&, int, Texture&, ClipRect const&) [inlined] void draw_span<false, false, unsigned int, void draw_quad_spans<unsigned int>(int, glsl::vec2_scalar*, unsigned short, glsl::vec3*, Texture&, int, Texture&, ClipRect const&)::'lambda'()>(buf=0x0000000150501000, depth=<unavailable>, span=1072, z=<unavailable>)::'lambda'()) at gl.cc:2831 [opt]
    frame #10: 0x0000000106f0380c XUL`void draw_quad_spans<unsigned int>(nump=<unavailable>, p=0x00007000063dd920, z=0, interp_outs=0x00007000063dd400, colortex=0x0000000132061ba0, layer=1072, depthtex=0x000000012354a4c0, clipRect=0x00007000063dd6a0) at gl.cc:3128 [opt]
    frame #11: 0x0000000106efc2c0 XUL`draw_quad(nump=<unavailable>, colortex=0x0000000132061ba0, layer=0, depthtex=0x000000012354a4c0) at gl.cc:3594:5 [opt]
    frame #12: 0x0000000106e200fc XUL`::DrawElementsInstanced(GLenum, GLsizei, GLenum, void *, GLsizei) [inlined] void draw_elements<unsigned short>(count=6, instancecount=1, offset=0, v=<unavailable>, colortex=<unavailable>, layer=0, depthtex=<unavailable>) at gl.cc:3639:5 [opt]
    frame #13: 0x0000000106e2007c XUL`::DrawElementsInstanced(mode=<unavailable>, count=6, type=0, indicesptr=0x0000000000000000, instancecount=1) at gl.cc:3713 [opt]
    frame #14: 0x0000000106cf5d8b XUL`webrender::renderer::Renderer::draw_instanced_batch::h88b18593dc40c50c(self=0x0000000122daf000, data=&[webrender::gpu_types::CompositeInstance] @ 0x00007fe69c7eef40, vertex_array_kind=Composite, textures=<unavailable>, stats=0x00007000063de6e0) at renderer.rs:4073:13 [opt]
    frame #15: 0x0000000106cfdefc XUL`webrender::renderer::Renderer::draw_frame::h2dff79715adee0b9 at renderer.rs:4732:13 [opt]
    frame #16: 0x0000000106cfdb8f XUL`webrender::renderer::Renderer::draw_frame::h2dff79715adee0b9(self=<unavailable>, frame=<unavailable>, device_size=<unavailable>, frame_id=<unavailable>, results=<unavailable>, clear_framebuffer=<unavailable>) at renderer.rs:6001 [opt]
    frame #17: 0x0000000106bd5d65 XUL`webrender::profiler::TimeProfileCounter::profile::h2420081b4557df1f at renderer.rs:3511:17 [opt]
    frame #18: 0x0000000106bd5a58 XUL`webrender::profiler::TimeProfileCounter::profile::h2420081b4557df1f(self=0x00007000063de658, callback=<unavailable>) at profiler.rs:471 [opt]
    frame #19: 0x0000000106cf35c5 XUL`webrender::renderer::Renderer::render_impl::hc771cbca55c9c65b(self=<unavailable>, device_size=Option<euclid::size::Size2D<i32, webrender_api::units::DevicePixel>> @ 0x00007000063de828) at renderer.rs:3477:9 [opt]
    frame #20: 0x0000000106cf30c6 XUL`webrender::renderer::Renderer::render::h1b599c441e369131(self=0x0000000122daf000, device_size=<unavailable>) at renderer.rs:3255:22 [opt]
    frame #21: 0x0000000106af67f5 XUL`wr_renderer_render(renderer=<unavailable>, width=<unavailable>, height=<unavailable>, out_stats=0x00007000063deb50, out_dirty_rects=0x00007000063deaa0) at bindings.rs:606:11 [opt]
    frame #22: 0x0000000102c74abb XUL`mozilla::wr::RendererOGL::UpdateAndRender(this=0x0000000122d79f80, aReadbackSize=0x00007000063dec30, aReadbackFormat=0x00007000063dec0e, aReadbackBuffer=0x00007000063dec10, aOutStats=0x00007000063deb50) at RendererOGL.cpp:142:8 [opt]
    frame #23: 0x0000000102c7425a XUL`mozilla::wr::RenderThread::UpdateAndRender(this=0x000000010054baf0, aWindowId=<unavailable>, aStartId=0x00007000063dec48, aStartTime=0x00007000063dec40, aRender=<unavailable>, aReadbackSize=0x00007000063dec30, aReadbackFormat=0x00007000063dec0e, aReadbackBuffer=0x00007000063dec10) at RenderThread.cpp:478:31 [opt]
    frame #24: 0x0000000102c73c65 XUL`mozilla::wr::RenderThread::HandleFrameOneDoc(this=0x000000010054baf0, aWindowId=<unavailable>, aRender=<unavailable>) at RenderThread.cpp:356:3 [opt]
    frame #25: 0x0000000102c7ca4f XUL`mozilla::detail::RunnableMethodImpl<mozilla::wr::RenderThread*, void (mozilla::wr::RenderThread::*)(mozilla::wr::WrWindowId, bool), true, (mozilla::RunnableKind)0, mozilla::wr::WrWindowId, bool>::Run() [inlined] decltype(o=<unavailable>, m=<unavailable>, args=<unavailable>).*fp0(Get<0ul>(fp1).PassAsParameter(), Get<1ul>(fp1).PassAsParameter())) mozilla::detail::RunnableMethodArguments<mozilla::wr::WrWindowId, bool>::applyImpl<mozilla::wr::RenderThread, void (mozilla::wr::RenderThread::*)(mozilla::wr::WrWindowId, bool), StoreCopyPassByConstLRef<mozilla::wr::WrWindowId>, StoreCopyPassByConstLRef<bool>, 0ul, 1ul>(mozilla::wr::RenderThread*, void (mozilla::wr::RenderThread::*)(mozilla::wr::WrWindowId, bool), mozilla::Tuple<StoreCopyPassByConstLRef<mozilla::wr::WrWindowId>, StoreCopyPassByConstLRef<bool> >&, std::__1::integer_sequence<unsigned long, 0ul, 1ul>) at nsThreadUtils.h:1188:12 [opt]
    frame #26: 0x0000000102c7ca34 XUL`mozilla::detail::RunnableMethodImpl<mozilla::wr::RenderThread*, void (mozilla::wr::RenderThread::*)(mozilla::wr::WrWindowId, bool), true, (mozilla::RunnableKind)0, mozilla::wr::WrWindowId, bool>::Run() [inlined] _ZN7mozilla6detail23RunnableMethodArgumentsIJNS_2wr10WrWindowIdEbEE5applyINS2_12RenderThreadEMS6_FvS3_bEEEDTcl9applyImplfp_fp0_dtdefpT10mArgumentstlNSt3__116integer_sequenceImJLm0ELm1EEEEEEEPT_T0_(this=<unavailable>, o=<unavailable>, m=<unavailable>) at nsThreadUtils.h:1194 [opt]
    frame #27: 0x0000000102c7ca34 XUL`mozilla::detail::RunnableMethodImpl<mozilla::wr::RenderThread*, void (mozilla::wr::RenderThread::*)(mozilla::wr::WrWindowId, bool), true, (mozilla::RunnableKind)0, mozilla::wr::WrWindowId, bool>::Run(this=<unavailable>) at nsThreadUtils.h:1240 [opt]
    frame #28: 0x00000001021f1a5b XUL`MessageLoop::DeferOrRunPendingTask(MessageLoop::PendingTask&&) [inlined] MessageLoop::RunTask(this=0x00007000063dee00, aTask=<unavailable>) at message_loop.cc:465:9 [opt]
    frame #29: 0x00000001021f1a3c XUL`MessageLoop::DeferOrRunPendingTask(this=0x00007000063dee00, pending_task=0x00007000063decf0) at message_loop.cc:473 [opt]
    frame #30: 0x00000001021f1d5b XUL`MessageLoop::DoWork(this=0x00007000063dee00) at message_loop.cc:548:13 [opt]
    frame #31: 0x00000001021f24cc XUL`base::MessagePumpDefault::Run(this=0x00000001155f0970, delegate=0x00007000063dee00) at message_pump_default.cc:35:31 [opt]
    frame #32: 0x00000001021f1456 XUL`MessageLoop::Run() [inlined] MessageLoop::RunInternal(this=<unavailable>) at message_loop.cc:334:10 [opt]
    frame #33: 0x00000001021f144a XUL`MessageLoop::Run() [inlined] MessageLoop::RunHandler(this=<unavailable>) at message_loop.cc:327 [opt]
    frame #34: 0x00000001021f144a XUL`MessageLoop::Run(this=<unavailable>) at message_loop.cc:309 [opt]
    frame #35: 0x00000001021fb82b XUL`base::Thread::ThreadMain(this=0x000000011546eac0) at thread.cc:192:16 [opt]
    frame #36: 0x00000001021f7baa XUL`ThreadFunc(closure=<unavailable>) at platform_thread_posix.cc:40:13 [opt]
    frame #37: 0x00007fff69726109 libsystem_pthread.dylib`_pthread_start + 148
    frame #38: 0x00007fff69721b8b libsystem_pthread.dylib`thread_start + 15
Severity: -- → S4
Priority: -- → P3

I think this is because we're getting a WrExternalImageType::Invalid out of texture->Lock inside wr_renderer_lock_external_image.
That in turns seems to be because aGL is null in RenderMacIOSurfaceTextureHostOGL::Lock, I think because renderer->gl() ultimately falls through to the base RenderCompositor which returns null.

Is there a SWGL context we can pass here?
Or is there a way to make CreateTextureForPlane work without a GL context?
Or is the problem something else?

(In reply to Bert Peers [:bpeers] from comment #1)

Or is there a way to make CreateTextureForPlane work without a GL context?

There is a way to read back the IOSurface contents into main memory. And then that data needs to find its way into SWGL somehow.

Lee, is this already solved for e.g. hardware-decoded video on Windows?

Flags: needinfo?(lsalzman)

(In reply to Markus Stange [:mstange] from comment #2)

(In reply to Bert Peers [:bpeers] from comment #1)

Or is there a way to make CreateTextureForPlane work without a GL context?

There is a way to read back the IOSurface contents into main memory. And then that data needs to find its way into SWGL somehow.

Lee, is this already solved for e.g. hardware-decoded video on Windows?

I believe this is an unsolved problem for all platforms, not just mac, in that places where we have an external GL surface like WebGL, WebGPU, video, potentially Canvas2D, etc. need to have a readback or we just need to disable them with SWGL. Doing some general readback for to solve them all in one swoop is probably best for now.

Flags: needinfo?(lsalzman)

I see.

Video has the added complication that it can consist of multiple planes, for example NV12 video has a Y plane and a CbCr plane. So we'd also need to decide whether SWGL wants to have a texture per plane (like hardware GL) or whether we want to do the conversion to RGB outside of SWGL, like BasicCompositor.
And I'm not sure where a "general" place for readback would be.

For reference, here's where we get the data out of an IOSurface for BasicCompositor: https://searchfox.org/mozilla-central/rev/82c04b9cad5b98bdf682bd477f2b1e3071b004ad/gfx/layers/basic/MacIOSurfaceTextureHostBasic.cpp#44-50
We expose the contents as a SourceSurface that contains RGB data.

I experimented with returning a WrExternalImageType::RawData from Lock, the idea was to pass raw bytes from a locked surface; but ran into some resistance in WR. It's really set up to expect a valid GL texture handle.

Lacking a valid GLContext under SWGL, a low friction cheat is to directly call SWGL functions inside CreateTextureForPlane, to make said texture handle:

extern "C" {
    void GenTextures(int n, GLuint* result);
    void TexParameteri(GLenum target, GLenum pname, GLint param);
    // ...
}

if (!aGL) {
 ::GenTextures(1, aTexture); 
 ::ActiveTexture(LOCAL_GL_TEXTURE0);
 ::BindTexture(LOCAL_GL_TEXTURE_RECTANGLE_ARB, *aTexture);
 ::PixelStorei(GL_UNPACK_ROW_LENGTH, aSurface->GetBytesPerRow(aPlaneID));
 void* rgba_data = aSurface->GetBaseAddressOfPlane(aPlaneID);
 ::TexImage2D(LOCAL_GL_TEXTURE_RECTANGLE_ARB, 0, GL_RGBA,
        aSurface->GetWidth(), aSurface->GetHeight(), 0, GL_RGBA, GL_UNSIGNED_BYTE, rgba_data);
  // ...

This could work if the aSurface was guaranteed RGBA, eg. after baking YUV to RGBA on the CPU.

However,

  1. the plane locking is in webrender_bindings/ but SWGL is in wr/ so technically that API is not available, I think?
  2. same for CreateSourceSurfaceFromMacIOSurface if we wanted to use it for YUV->RGBA?
  3. the crash is in YUV compositor; giving it RGBA data won't work right, but giving it YUV data won't work either due to missing support for the right internal_formats ? I think? We'd have to decide which way we want to go, as Markus said.

I'll continue investigating.

Crash Signature: [@ composite_TEXTURE_RECT_YUV_frag::sample_yuv ]
Keywords: crash
Summary: Crash when playing video with SWGL on macOS → Playing hardware-decoded video with SWGL crashes the browser [@ composite_TEXTURE_RECT_YUV_frag::sample_yuv ]
Attached file Bug 1652894 - SWGL Mac video crash (deleted) —

Prototype two solutions for NV12 video playback on SWGL Mac.
Both work and play correct video, but both need work before landing.

Option 1 converts NV12 to RGB on the CPU.
Option 2 passes YCbCr to SWGL.

Option 1: calls CreateSourceSurfaceFromMacIOSurface and passes a single
RGB texture to SWGL.
Pro: all supported formats are already handled by the CPU conversion.
Con: the deferred resolve comes after we set up the YUV compositor, so
it's too late to communicate that the YUV data has in fact become
RGB (I think). So to render properly, a hack-change is needed in
composite.rs -- "if SWGL and Mac and YUV, set up for RGB anyway".
The patch just changes the code directly using /* ... */. By
default though it's set up for Option 2:

Option 2: detect NV12 and set up a proper GL_RED (plane 0) and GL_RG
(plane 1) texture for SWGL.
Pro: YUV is really YUV, no hackery needed
Con: will need to do this for every pixel format we care about: replicate
all of ::CGLTexImageIOSurface2D's magic.
Con: SWGL doesn't have support for GL_RG yet. This patch adds the bare
minimum to make the video play back properly (Rect only, no LERP).

Both Options share the need to set up a (SWGL) texture from C++, without
having a valid GLContext. The patch adds a minimal SWGLContext, the
C++ equivalent of the minimal Context in swgl_fns.rs.

Either this is fine and could be passed around where needed, perhaps as
part of a PerGpuData from D80771. Or, we pass a lightweight interface
around that both GLContext and SWGL implement (and pay virtual call cost);
or implement GLContext properly for SWGL.

Excellent! I think Option 2 is cleaner and maybe more maintainable. It's also likely to be slower, but once we use the OS compositor for video (bug 1653048 / bug 1623530), this will be a rarely-used codepath anyway.

Great, thanks :)

I agree Option 2 has the upper hand; I've added proper linear interpolation for RG8 sampling in SWGL (SIMD only for now) to the patch.

I think that leaves us with,
1/ tidying up the way I hack-added RG8 as a format to SWGL, and a non-SIMD code path for it; and
2/ inspecting CreateSourceSurfaceFromMacIOSurface and making sure that all pixel formats that it supports are handled in CreateTexturePlaneSWGL (unless just NV12 is good enough for now).

Depends on: 1655883
Assignee: nobody → lsalzman
Status: NEW → ASSIGNED

Depends on D86337

Depends on D86338

Depends on D86339

Pushed by lsalzman@mozilla.com: https://hg.mozilla.org/integration/autoland/rev/a8b850455c90 allow SWGL contexts to have multiple strong references. r=jimb https://hg.mozilla.org/integration/autoland/rev/2e4c7cced692 add SWGL utility bindings for managing textures. r=jimb https://hg.mozilla.org/integration/autoland/rev/ff5e4bffb497 fix SWGL code formatting. r=mattwoodrow https://hg.mozilla.org/integration/autoland/rev/0e0107226c9e add SWGL RenderTextureHosts. r=mattwoodrow

Backed out for bustages on RenderThread.cpp

backout: https://hg.mozilla.org/integration/autoland/rev/31ed26c41ba187d339ee9ff084fdb8f28836f405

push: https://treeherder.mozilla.org/#/jobs?repo=autoland&revision=0e0107226c9e046c77d98620c3562134de817b6c&group_state=expanded

failure log: https://treeherder.mozilla.org/#/jobs?repo=autoland&revision=0e0107226c9e046c77d98620c3562134de817b6c&group_state=expanded&selectedTaskRun=QNirEYIbQLyRsqAxogCB1Q.0

[task 2020-08-11T05:45:27.045Z] 05:45:27 INFO - In file included from Unified_cpp_webrender_bindings1.cpp:2:
[task 2020-08-11T05:45:27.045Z] 05:45:27 INFO - /builds/worker/checkouts/gecko/gfx/webrender_bindings/RenderThread.cpp(1005,24): error: no member named 'DefaultEglLibrary' in namespace 'mozilla::gl'
[task 2020-08-11T05:45:27.045Z] 05:45:27 INFO - const auto lib = gl::DefaultEglLibrary(&failureId);
[task 2020-08-11T05:45:27.045Z] 05:45:27 INFO - ~~~~^
[task 2020-08-11T05:45:27.045Z] 05:45:27 INFO - /builds/worker/checkouts/gecko/gfx/webrender_bindings/RenderThread.cpp(1029,17): error: no member named 'GLContextEGL' in namespace 'mozilla::gl'
[task 2020-08-11T05:45:27.045Z] 05:45:27 INFO - auto gl = gl::GLContextEGL::CreateEGLPBufferOffscreenContext(
[task 2020-08-11T05:45:27.045Z] 05:45:27 INFO - ~~~~^
[task 2020-08-11T05:45:27.045Z] 05:45:27 INFO - 2 errors generated.

also linting failure: https://treeherder.mozilla.org/logviewer.html#/jobs?job_id=312696286&repo=autoland&lineNumber=1156

[task 2020-08-11T05:51:09.746Z] Progress: 88% (997/1127)
[task 2020-08-11T05:51:09.746Z] ./swgl/src/swgl_fns.rs:320: space before } is not a multiple of 4
[task 2020-08-11T05:51:09.898Z]
[task 2020-08-11T05:51:09.899Z] Progress: 88% (998/1127)

Flags: needinfo?(lsalzman)
Pushed by lsalzman@mozilla.com: https://hg.mozilla.org/integration/autoland/rev/175df7659c3f allow SWGL contexts to have multiple strong references. r=jimb https://hg.mozilla.org/integration/autoland/rev/8abaf47071d8 add SWGL utility bindings for managing textures. r=jimb https://hg.mozilla.org/integration/autoland/rev/e3b4753fd09c fix SWGL code formatting. r=mattwoodrow https://hg.mozilla.org/integration/autoland/rev/714ad1b01cb2 add SWGL RenderTextureHosts. r=mattwoodrow
Flags: needinfo?(lsalzman)

Backed out for texture related crashes.

backout: https://hg.mozilla.org/integration/autoland/rev/8ee083a377a6726b1fcaf956d4819c450e8e13c1

push: https://treeherder.mozilla.org/#/jobs?repo=autoland&searchStr=linux%2C18.04%2Cx64%2Cwebrender%2Cdebug%2Creftests%2Cwith%2Csoftware%2Cwebrender%2Cenabled%2Ctest-linux1804-64-qr%2Fdebug-reftest-swr-e10s%2Cr6&revision=714ad1b01cb227f9cb9b5952d9adf3a098a87b2a&selectedTaskRun=X3PmwiU_TeCZHigYKVOMfQ.0

failure log: https://treeherder.mozilla.org/logviewer.html#/jobs?job_id=312719552&repo=autoland&lineNumber=11683

[task 2020-08-11T12:33:48.744Z] 12:33:48 INFO - REFTEST PROCESS-CRASH | image/test/reftest/downscaling/huge-1.html?32768x100.png,32768,100 | application crashed [@ glsl::vec4 glsl::textureLinearRGBA8<glsl::sampler2DRect_impl*>(glsl::sampler2DRect_impl*, glsl::vec2, int)]
[task 2020-08-11T12:33:48.744Z] 12:33:48 INFO - Crash dump filename: /tmp/tmpYdHK4t.mozrunner/minidumps/74aac713-a897-de23-38c3-3659892daf2e.dmp
[task 2020-08-11T12:33:48.744Z] 12:33:48 INFO - Operating system: Linux
[task 2020-08-11T12:33:48.744Z] 12:33:48 INFO - 0.0.0 Linux 4.4.0-1014-aws #14taskcluster1-Ubuntu SMP Tue Apr 3 10:27:00 UTC 2018 x86_64
[task 2020-08-11T12:33:48.744Z] 12:33:48 INFO - CPU: amd64
[task 2020-08-11T12:33:48.745Z] 12:33:48 INFO - family 6 model 85 stepping 7
[task 2020-08-11T12:33:48.745Z] 12:33:48 INFO - 2 CPUs
[task 2020-08-11T12:33:48.745Z] 12:33:48 INFO -
[task 2020-08-11T12:33:48.745Z] 12:33:48 INFO - GPU: UNKNOWN
[task 2020-08-11T12:33:48.745Z] 12:33:48 INFO -
[task 2020-08-11T12:33:48.745Z] 12:33:48 INFO - Crash reason: SIGSEGV /SEGV_MAPERR
[task 2020-08-11T12:33:48.745Z] 12:33:48 INFO - Crash address: 0x7fdcf2a6000c
[task 2020-08-11T12:33:48.745Z] 12:33:48 INFO - Process uptime: not available
[task 2020-08-11T12:33:48.745Z] 12:33:48 INFO -
[task 2020-08-11T12:33:48.746Z] 12:33:48 INFO - Thread 23 (crashed)
[task 2020-08-11T12:33:48.746Z] 12:33:48 INFO - 0 libxul.so!glsl::vec4 glsl::textureLinearRGBA8<glsl::sampler2DRect_impl*>(glsl::sampler2DRect_impl*, glsl::vec2, int) [glsl.h:714ad1b01cb227f9cb9b5952d9adf3a098a87b2a : 2565 + 0x2e]
[task 2020-08-11T12:33:48.746Z] 12:33:48 INFO - rax = 0x00007fdd17291da0 rdx = 0xffffffffffff8003
[task 2020-08-11T12:33:48.746Z] 12:33:48 INFO - rcx = 0x00007fdcf2a80000 rbx = 0x00007fdd17291da0
[task 2020-08-11T12:33:48.746Z] 12:33:48 INFO - rsi = 0xffffffffffff8001 rdi = 0xffffffffffff8002
[task 2020-08-11T12:33:48.746Z] 12:33:48 INFO - rbp = 0x00007fdd17291cd0 rsp = 0x00007fdd17291cd0
[task 2020-08-11T12:33:48.746Z] 12:33:48 INFO - r8 = 0xffffffffffff8000 r9 = 0x0000000000000000
[task 2020-08-11T12:33:48.746Z] 12:33:48 INFO - r10 = 0x0000000000000000 r11 = 0x0000000000000002
[task 2020-08-11T12:33:48.746Z] 12:33:48 INFO - r12 = 0x0000000000000400 r13 = 0x00007fdcf9172830
[task 2020-08-11T12:33:48.746Z] 12:33:48 INFO - r14 = 0x00007fdd17291e10 r15 = 0x00007fdd17291da0
[task 2020-08-11T12:33:48.746Z] 12:33:48 INFO - rip = 0x00007fdd2b6f396c
[task 2020-08-11T12:33:48.747Z] 12:33:48 INFO - Found by: given as instruction pointer in context
[task 2020-08-11T12:33:48.747Z] 12:33:48 INFO - 1 libxul.so!glsl::texture(glsl::sampler2DRect_impl*, glsl::vec2) [glsl.h:714ad1b01cb227f9cb9b5952d9adf3a098a87b2a : 2938 + 0x1b]
[task 2020-08-11T12:33:48.747Z] 12:33:48 INFO - rbx = 0x00007fdd17291da0 rbp = 0x00007fdd17291d50
[task 2020-08-11T12:33:48.747Z] 12:33:48 INFO - rsp = 0x00007fdd17291ce0 r12 = 0x0000000000000400
[task 2020-08-11T12:33:48.747Z] 12:33:48 INFO - r13 = 0x00007fdcf9172830 r14 = 0x00007fdd17291e10
[task 2020-08-11T12:33:48.747Z] 12:33:48 INFO - r15 = 0x00007fdd17291da0 rip = 0x00007fdd2b6f3653
[task 2020-08-11T12:33:48.747Z] 12:33:48 INFO - Found by: call frame info
[task 2020-08-11T12:33:48.747Z] 12:33:48 INFO - 2 libxul.so!brush_image_ALPHA_PASS_TEXTURE_RECT_frag::image_brush_fs() [brush_image_ALPHA_PASS_TEXTURE_RECT.h: : 888 + 0x47]
[task 2020-08-11T12:33:48.747Z] 12:33:48 INFO - rbx = 0x00007fdd0300f810 rbp = 0x00007fdd17291e00
[task 2020-08-11T12:33:48.747Z] 12:33:48 INFO - rsp = 0x00007fdd17291d60 r12 = 0x0000000000000400
[task 2020-08-11T12:33:48.747Z] 12:33:48 INFO - r13 = 0x00007fdcf9172830 r14 = 0x00007fdd17291e10
[task 2020-08-11T12:33:48.748Z] 12:33:48 INFO - r15 = 0x00007fdd17291da0 rip = 0x00007fdd2b73e793
[task 2020-08-11T12:33:48.748Z] 12:33:48 INFO - Found by: call frame info
[task 2020-08-11T12:33:48.748Z] 12:33:48 INFO - 3 libxul.so!brush_image_ALPHA_PASS_TEXTURE_RECT_frag::run(brush_image_ALPHA_PASS_TEXTURE_RECT_frag*) [brush_image_ALPHA_PASS_TEXTURE_RECT.h: : 960 + 0x2a]
[task 2020-08-11T12:33:48.748Z] 12:33:48 INFO - rbx = 0x00007fdd0300f810 rbp = 0x00007fdd17291e70
[task 2020-08-11T12:33:48.748Z] 12:33:48 INFO - rsp = 0x00007fdd17291e10 r12 = 0x0000000000000400
[task 2020-08-11T12:33:48.748Z] 12:33:48 INFO - r13 = 0x00007fdcf9172830 r14 = 0x00007fdd17291e10
[task 2020-08-11T12:33:48.748Z] 12:33:48 INFO - r15 = 0x00007fdcf8001000 rip = 0x00007fdd2b73bf13
[task 2020-08-11T12:33:48.748Z] 12:33:48 INFO - Found by: call frame info
[task 2020-08-11T12:33:48.748Z] 12:33:48 INFO - 4 libxul.so!void draw_quad_spans<unsigned int>(int, glsl::vec2_scalar*, unsigned short, glsl::vec3*, Texture&, int, Texture&, ClipRect const&) [gl.cc:714ad1b01cb227f9cb9b5952d9adf3a098a87b2a : 3189 + 0x9c]
[task 2020-08-11T12:33:48.748Z] 12:33:48 INFO - rbx = 0x00007fdd24ab1660 rbp = 0x00007fdd17292190
[task 2020-08-11T12:33:48.748Z] 12:33:48 INFO - rsp = 0x00007fdd17291e80 r12 = 0x0000000000000400
[task 2020-08-11T12:33:48.748Z] 12:33:48 INFO - r13 = 0x00007fdcf9172830 r14 = 0x0000000000000001
[task 2020-08-11T12:33:48.749Z] 12:33:48 INFO - r15 = 0x00007fdcf8001000 rip = 0x00007fdd2b7d510a
[task 2020-08-11T12:33:48.749Z] 12:33:48 INFO - Found by: call frame info
[task 2020-08-11T12:33:48.749Z] 12:33:48 INFO - 5 libxul.so!draw_quad(int, Texture&, int, Texture&) [gl.cc:714ad1b01cb227f9cb9b5952d9adf3a098a87b2a : 3651 + 0x22]
[task 2020-08-11T12:33:48.749Z] 12:33:48 INFO - rbx = 0x000000000000000f rbp = 0x00007fdd172929e0
[task 2020-08-11T12:33:48.749Z] 12:33:48 INFO - rsp = 0x00007fdd172921a0 r12 = 0x0000000000000000
[task 2020-08-11T12:33:48.749Z] 12:33:48 INFO - r13 = 0x00007fdd0a6a52e0 r14 = 0x0000000000000004
[task 2020-08-11T12:33:48.749Z] 12:33:48 INFO - r15 = 0x00007fdcf9172830 rip = 0x00007fdd2b7ce677
[task 2020-08-11T12:33:48.749Z] 12:33:48 INFO - Found by: call frame info
[task 2020-08-11T12:33:48.749Z] 12:33:48 INFO - 6 libxul.so!DrawElementsInstanced [gl.cc:714ad1b01cb227f9cb9b5952d9adf3a098a87b2a : 3770 + 0xb7]
[task 2020-08-11T12:33:48.749Z] 12:33:48 INFO - rbx = 0x00007fdcf952d000 rbp = 0x00007fdd17292a60
[task 2020-08-11T12:33:48.749Z] 12:33:48 INFO - rsp = 0x00007fdd172929f0 r12 = 0x00007fdd053f3210
[task 2020-08-11T12:33:48.749Z] 12:33:48 INFO - r13 = 0x0000000000000006 r14 = 0x00007fdcf9172830
[task 2020-08-11T12:33:48.750Z] 12:33:48 INFO - r15 = 0x0000000000000000 rip = 0x00007fdd2b6fde5f
[task 2020-08-11T12:33:48.750Z] 12:33:48 INFO - Found by: call frame info
[task 2020-08-11T12:33:48.750Z] 12:33:48 INFO - 7 libxul.so!<gleam::gl::ErrorReactingGl<F> as gleam::gl::Gl>::draw_elements_instanced [gl.rs:714ad1b01cb227f9cb9b5952d9adf3a098a87b2a : 98 + 0x1f]
[task 2020-08-11T12:33:48.750Z] 12:33:48 INFO - rbx = 0x00007fdd05911690 rbp = 0x00007fdd17292a90
[task 2020-08-11T12:33:48.750Z] 12:33:48 INFO - rsp = 0x00007fdd17292a70 r12 = 0x00007fdcf91fbd00
[task 2020-08-11T12:33:48.750Z] 12:33:48 INFO - r13 = 0x00007fdd06926000 r14 = 0x00007fdd19fae6e0
[task 2020-08-11T12:33:48.750Z] 12:33:48 INFO - r15 = 0x00007fdd2ca76698 rip = 0x00007fdd2b48e0dc
[task 2020-08-11T12:33:48.750Z] 12:33:48 INFO - Found by: call frame info
[task 2020-08-11T12:33:48.750Z] 12:33:48 INFO - 8 libxul.so!webrender::renderer::Renderer::draw_instanced_batch [renderer.rs:714ad1b01cb227f9cb9b5952d9adf3a098a87b2a : 4085 + 0x4d]
[task 2020-08-11T12:33:48.750Z] 12:33:48 INFO - rbx = 0x0000000000000001 rbp = 0x00007fdd17292b50
[task 2020-08-11T12:33:48.750Z] 12:33:48 INFO - rsp = 0x00007fdd17292aa0 r12 = 0x00007fdcf91fbd00
[task 2020-08-11T12:33:48.750Z] 12:33:48 INFO - r13 = 0x00007fdd06926000 r14 = 0x0000000000002000
[task 2020-08-11T12:33:48.751Z] 12:33:48 INFO - r15 = 0x0000000000000001 rip = 0x00007fdd2b5c4f69
[task 2020-08-11T12:33:48.751Z] 12:33:48 INFO - Found by: call frame info
[task 2020-08-11T12:33:48.751Z] 12:33:48 INFO - 9 libxul.so!webrender::renderer::Renderer::draw_alpha_batch_container [renderer.rs:714ad1b01cb227f9cb9b5952d9adf3a098a87b2a : 4536 + 0x13]
[task 2020-08-11T12:33:48.751Z] 12:33:48 INFO - rbx = 0x00007fdd06926000 rbp = 0x00007fdd17292d90
[task 2020-08-11T12:33:48.751Z] 12:33:48 INFO - rsp = 0x00007fdd17292b60 r12 = 0x00007fdd180c0000
[task 2020-08-11T12:33:48.751Z] 12:33:48 INFO - r13 = 0x00007fdd172932c0 r14 = 0x00007fdcf951e7c0
[task 2020-08-11T12:33:48.751Z] 12:33:48 INFO - r15 = 0x0000000000000002 rip = 0x00007fdd2b5c7893
[task 2020-08-11T12:33:48.751Z] 12:33:48 INFO - Found by: call frame info
[task 2020-08-11T12:33:48.751Z] 12:33:48 INFO - 10 libxul.so!webrender::renderer::Renderer::draw_frame [renderer.rs:714ad1b01cb227f9cb9b5952d9adf3a098a87b2a : 6189 + 0x656]
[task 2020-08-11T12:33:48.751Z] 12:33:48 INFO - rbx = 0x00007fdcf91ad820 rbp = 0x00007fdd172933e0
[task 2020-08-11T12:33:48.751Z] 12:33:48 INFO - rsp = 0x00007fdd17292da0 r12 = 0x00007fdd172932c0
[task 2020-08-11T12:33:48.751Z] 12:33:48 INFO - r13 = 0x00007fdd17293140 r14 = 0x00007fdd17293d20
[task 2020-08-11T12:33:48.752Z] 12:33:48 INFO - r15 = 0x00007fdcf91ad800 rip = 0x00007fdd2b5ce335
[task 2020-08-11T12:33:48.752Z] 12:33:48 INFO - Found by: call frame info
[task 2020-08-11T12:33:48.752Z] 12:33:48 INFO - 11 libxul.so!webrender::renderer::Renderer::render_impl [renderer.rs:714ad1b01cb227f9cb9b5952d9adf3a098a87b2a : 3485 + 0x1a83]
[task 2020-08-11T12:33:48.752Z] 12:33:48 INFO - rbx = 0x00007fdd06926000 rbp = 0x00007fdd17294490
[task 2020-08-11T12:33:48.752Z] 12:33:48 INFO - rsp = 0x00007fdd172933f0 r12 = 0x0000000041400000
[task 2020-08-11T12:33:48.752Z] 12:33:48 INFO - r13 = 0x00007fdd06926000 r14 = 0x00007fdd17293d80
[task 2020-08-11T12:33:48.752Z] 12:33:48 INFO - r15 = 0x00007fdd06926020 rip = 0x00007fdd2b5b7f73
[task 2020-08-11T12:33:48.752Z] 12:33:48 INFO - Found by: call frame info
[task 2020-08-11T12:33:48.752Z] 12:33:48 INFO - 12 libxul.so!webrender::renderer::Renderer::render [renderer.rs:714ad1b01cb227f9cb9b5952d9adf3a098a87b2a : 3262 + 0x1b]
[task 2020-08-11T12:33:48.752Z] 12:33:48 INFO - rbx = 0x00007fdd172945c0 rbp = 0x00007fdd17294570
[task 2020-08-11T12:33:48.752Z] 12:33:48 INFO - rsp = 0x00007fdd172944a0 r12 = 0x00007fdd17294788
[task 2020-08-11T12:33:48.753Z] 12:33:48 INFO - r13 = 0x00007fdd17294870 r14 = 0x00007fdd16f09080
[task 2020-08-11T12:33:48.753Z] 12:33:48 INFO - r15 = 0x00007fdd06926000 rip = 0x00007fdd2b5b59d6
[task 2020-08-11T12:33:48.753Z] 12:33:48 INFO - Found by: call frame info
[task 2020-08-11T12:33:48.753Z] 12:33:48 INFO - 13 libxul.so!wr_renderer_render [bindings.rs:714ad1b01cb227f9cb9b5952d9adf3a098a87b2a : 609 + 0x19]
[task 2020-08-11T12:33:48.753Z] 12:33:48 INFO - rbx = 0x00007fdd17294788 rbp = 0x00007fdd17294740
[task 2020-08-11T12:33:48.753Z] 12:33:48 INFO - rsp = 0x00007fdd17294580 r12 = 0x00007fdd17294788
[task 2020-08-11T12:33:48.753Z] 12:33:48 INFO - r13 = 0x00007fdd17294870 r14 = 0x00007fdd16f09080
[task 2020-08-11T12:33:48.753Z] 12:33:48 INFO - r15 = 0x00000000000003e8 rip = 0x00007fdd2b3f7336
[task 2020-08-11T12:33:48.753Z] 12:33:48 INFO - Found by: call frame info
[task 2020-08-11T12:33:48.753Z] 12:33:48 INFO - 14 libxul.so!mozilla::wr::RendererOGL::UpdateAndRender(mozilla::Maybe<mozilla::gfx::IntSizeTyped<mozilla::gfx::UnknownUnits> > const&, mozilla::Maybe<mozilla::wr::ImageFormat> const&, mozilla::Maybe<mozilla::Range<unsigned char> > const&, mozilla::wr::RendererStats*) [RendererOGL.cpp:714ad1b01cb227f9cb9b5952d9adf3a098a87b2a : 155 + 0x19]
[task 2020-08-11T12:33:48.753Z] 12:33:48 INFO - rbx = 0x00007fdd17294788 rbp = 0x00007fdd172947e0
[task 2020-08-11T12:33:48.754Z] 12:33:48 INFO - rsp = 0x00007fdd17294750 r12 = 0x00007fdd16f09088
[task 2020-08-11T12:33:48.754Z] 12:33:48 INFO - r13 = 0x00007fdd17294870 r14 = 0x00007fdd16f09080
[task 2020-08-11T12:33:48.754Z] 12:33:48 INFO - r15 = 0x00000000000003e8 rip = 0x00007fdd26f0471d
[task 2020-08-11T12:33:48.754Z] 12:33:48 INFO - Found by: call frame info
[task 2020-08-11T12:33:48.754Z] 12:33:48 INFO - 15 libxul.so!mozilla::wr::RenderThread::UpdateAndRender(mozilla::wr::WrWindowId, mozilla::layers::BaseTransactionId<mozilla::VsyncIdType> const&, mozilla::TimeStamp const&, bool, mozilla::Maybe<mozilla::gfx::IntSizeTyped<mozilla::gfx::UnknownUnits> > const&, mozilla::Maybe<mozilla::wr::ImageFormat> const&, mozilla::Maybe<mozilla::Range<unsigned char> > const&) [RenderThread.cpp:714ad1b01cb227f9cb9b5952d9adf3a098a87b2a : 482 + 0x17]
[task 2020-08-11T12:33:48.754Z] 12:33:48 INFO - rbx = 0x00007fdcfa02ca80 rbp = 0x00007fdd17294940
[task 2020-08-11T12:33:48.754Z] 12:33:48 INFO - rsp = 0x00007fdd172947f0 r12 = 0x00007fdd172948b0
[task 2020-08-11T12:33:48.754Z] 12:33:48 INFO - r13 = 0x0000000000000004 r14 = 0x00007fdd20d6f818
[task 2020-08-11T12:33:48.754Z] 12:33:48 INFO - r15 = 0x00007fdd172948a8 rip = 0x00007fdd26efd2f3
[task 2020-08-11T12:33:48.754Z] 12:33:48 INFO - Found by: call frame info
[task 2020-08-11T12:33:48.754Z] 12:33:48 INFO - 16 libxul.so!mozilla::wr::RenderThread::HandleFrameOneDoc(mozilla::wr::WrWindowId, bool) [RenderThread.cpp:714ad1b01cb227f9cb9b5952d9adf3a098a87b2a : 360 + 0x1b]
[task 2020-08-11T12:33:48.755Z] 12:33:48 INFO - rbx = 0x00007fdd059fba01 rbp = 0x00007fdd17294a30
[task 2020-08-11T12:33:48.755Z] 12:33:48 INFO - rsp = 0x00007fdd17294950 r12 = 0x00007fdd17be8600
[task 2020-08-11T12:33:48.755Z] 12:33:48 INFO - r13 = 0x00007fdd17294990 r14 = 0x00007fdd172949d0
[task 2020-08-11T12:33:48.755Z] 12:33:48 INFO - r15 = 0x00007fdd17294990 rip = 0x00007fdd26efcc9a
[task 2020-08-11T12:33:48.755Z] 12:33:48 INFO - Found by: call frame info
[task 2020-08-11T12:33:48.755Z] 12:33:48 INFO - 17 libxul.so!mozilla::detail::RunnableMethodImpl<mozilla::wr::RenderThread*, void (mozilla::wr::RenderThread::)(mozilla::wr::WrWindowId, bool), true, (mozilla::RunnableKind)0, mozilla::wr::WrWindowId, bool>::Run() [nsThreadUtils.h:714ad1b01cb227f9cb9b5952d9adf3a098a87b2a : 1240 + 0x1f]
[task 2020-08-11T12:33:48.755Z] 12:33:48 INFO - rbx = 0x00007fdd17294ac0 rbp = 0x00007fdd17294a40
[task 2020-08-11T12:33:48.755Z] 12:33:48 INFO - rsp = 0x00007fdd17294a40 r12 = 0x00007fdd17294a60
[task 2020-08-11T12:33:48.755Z] 12:33:48 INFO - r13 = 0x00007fdd17294b00 r14 = 0x0000000000000000
[task 2020-08-11T12:33:48.755Z] 12:33:48 INFO - r15 = 0x00007fdd17294ca8 rip = 0x00007fdd26f02e41
[task 2020-08-11T12:33:48.755Z] 12:33:48 INFO - Found by: call frame info
[task 2020-08-11T12:33:48.756Z] 12:33:48 INFO - 18 libxul.so!MessageLoop::RunTask(already_AddRefed<nsIRunnable>) [message_loop.cc:714ad1b01cb227f9cb9b5952d9adf3a098a87b2a : 465 + 0x11]
[task 2020-08-11T12:33:48.756Z] 12:33:48 INFO - rbx = 0x00007fdd17294ac0 rbp = 0x00007fdd17294ab0
[task 2020-08-11T12:33:48.756Z] 12:33:48 INFO - rsp = 0x00007fdd17294a50 r12 = 0x00007fdd17294a60
[task 2020-08-11T12:33:48.756Z] 12:33:48 INFO - r13 = 0x00007fdd17294b00 r14 = 0x0000000000000000
[task 2020-08-11T12:33:48.756Z] 12:33:48 INFO - r15 = 0x00007fdd17294ca8 rip = 0x00007fdd264cc0dd
[task 2020-08-11T12:33:48.756Z] 12:33:48 INFO - Found by: call frame info
[task 2020-08-11T12:33:48.756Z] 12:33:48 INFO - 19 libxul.so!MessageLoop::DeferOrRunPendingTask(MessageLoop::PendingTask&&) [message_loop.cc:714ad1b01cb227f9cb9b5952d9adf3a098a87b2a : 473 + 0x27]
[task 2020-08-11T12:33:48.756Z] 12:33:48 INFO - rbx = 0x00007fdd17294ac0 rbp = 0x00007fdd17294af0
[task 2020-08-11T12:33:48.756Z] 12:33:48 INFO - rsp = 0x00007fdd17294ac0 r12 = 0x00007fdd17294d78
[task 2020-08-11T12:33:48.756Z] 12:33:48 INFO - r13 = 0x00007fdd17294b00 r14 = 0x00007fdd17294ca8
[task 2020-08-11T12:33:48.756Z] 12:33:48 INFO - r15 = 0x00007fdd17294ac8 rip = 0x00007fdd264cc662
[task 2020-08-11T12:33:48.757Z] 12:33:48 INFO - Found by: call frame info
[task 2020-08-11T12:33:48.757Z] 12:33:48 INFO - 20 libxul.so!MessageLoop::DoWork() [message_loop.cc:714ad1b01cb227f9cb9b5952d9adf3a098a87b2a : 548 + 0xb]
[task 2020-08-11T12:33:48.757Z] 12:33:48 INFO - rbx = 0x00007fdd17294ca8 rbp = 0x00007fdd17294b50
[task 2020-08-11T12:33:48.757Z] 12:33:48 INFO - rsp = 0x00007fdd17294b00 r12 = 0x00007fdd17294d78
[task 2020-08-11T12:33:48.757Z] 12:33:48 INFO - r13 = 0x00007fdd17294b00 r14 = 0xaaaaaaaaaaaaaaaa
[task 2020-08-11T12:33:48.757Z] 12:33:48 INFO - r15 = 0x00007fdd17294cb8 rip = 0x00007fdd264cc9b2
[task 2020-08-11T12:33:48.757Z] 12:33:48 INFO - Found by: call frame info
[task 2020-08-11T12:33:48.758Z] 12:33:48 INFO - 21 libxul.so!base::MessagePumpDefault::Run(base::MessagePump::Delegate
) [message_pump_default.cc:714ad1b01cb227f9cb9b5952d9adf3a098a87b2a : 35 + 0x9]
[task 2020-08-11T12:33:48.758Z] 12:33:48 INFO - rbx = 0x00007fdd17294ca8 rbp = 0x00007fdd17294be0
[task 2020-08-11T12:33:48.758Z] 12:33:48 INFO - rsp = 0x00007fdd17294b60 r12 = 0x00007fdd17c8cf30
[task 2020-08-11T12:33:48.758Z] 12:33:48 INFO - r13 = 0x0000000000000000 r14 = 0x00007fdd17c8cf10
[task 2020-08-11T12:33:48.758Z] 12:33:48 INFO - r15 = 0x00007fdd17294b88 rip = 0x00007fdd264cd340
[task 2020-08-11T12:33:48.758Z] 12:33:48 INFO - Found by: call frame info
[task 2020-08-11T12:33:48.758Z] 12:33:48 INFO - 22 libxul.so!MessageLoop::RunInternal() [message_loop.cc:714ad1b01cb227f9cb9b5952d9adf3a098a87b2a : 334 + 0x17]
[task 2020-08-11T12:33:48.758Z] 12:33:48 INFO - rbx = 0x00007fdd17294ca8 rbp = 0x00007fdd17294c20
[task 2020-08-11T12:33:48.758Z] 12:33:48 INFO - rsp = 0x00007fdd17294bf0 r12 = 0x00007fdd17c8ccd0
[task 2020-08-11T12:33:48.758Z] 12:33:48 INFO - r13 = 0x0000000000000000 r14 = 0x00007fdd17294c30
[task 2020-08-11T12:33:48.759Z] 12:33:48 INFO - r15 = 0x00007fdd17c8ccf8 rip = 0x00007fdd264cbf43
[task 2020-08-11T12:33:48.759Z] 12:33:48 INFO - Found by: call frame info
[task 2020-08-11T12:33:48.759Z] 12:33:48 INFO - 23 libxul.so!MessageLoop::Run() [message_loop.cc:714ad1b01cb227f9cb9b5952d9adf3a098a87b2a : 309 + 0x8]
[task 2020-08-11T12:33:48.759Z] 12:33:48 INFO - rbx = 0x00007fdd17294ca8 rbp = 0x00007fdd17294c60
[task 2020-08-11T12:33:48.759Z] 12:33:48 INFO - rsp = 0x00007fdd17294c30 r12 = 0x00007fdd17c8ccd0
[task 2020-08-11T12:33:48.759Z] 12:33:48 INFO - r13 = 0x0000000000000000 r14 = 0x00007fdd17294c30
[task 2020-08-11T12:33:48.759Z] 12:33:48 INFO - r15 = 0x00007fdd17c8ccf8 rip = 0x00007fdd264cbe9d
[task 2020-08-11T12:33:48.759Z] 12:33:48 INFO - Found by: call frame info
[task 2020-08-11T12:33:48.759Z] 12:33:48 INFO - 24 libxul.so!base::Thread::ThreadMain() [thread.cc:714ad1b01cb227f9cb9b5952d9adf3a098a87b2a : 192 + 0x8]
[task 2020-08-11T12:33:48.759Z] 12:33:48 INFO - rbx = 0x00007fdd17bb2310 rbp = 0x00007fdd17294ea0
[task 2020-08-11T12:33:48.760Z] 12:33:48 INFO - rsp = 0x00007fdd17294c70 r12 = 0x00007fdd17c8ccd0
[task 2020-08-11T12:33:48.760Z] 12:33:48 INFO - r13 = 0x0000000000000000 r14 = 0x00007fdd17294ca8
[task 2020-08-11T12:33:48.760Z] 12:33:48 INFO - r15 = 0x00007fdd17c8ccf8 rip = 0x00007fdd264d6daa
[task 2020-08-11T12:33:48.760Z] 12:33:48 INFO - Found by: call frame info
[task 2020-08-11T12:33:48.760Z] 12:33:48 INFO - 25 libxul.so!ThreadFunc(void*) [platform_thread_posix.cc:714ad1b01cb227f9cb9b5952d9adf3a098a87b2a : 40 + 0x6]
[task 2020-08-11T12:33:48.760Z] 12:33:48 INFO - rbx = 0x0000000000000000 rbp = 0x00007fdd17294eb0
[task 2020-08-11T12:33:48.760Z] 12:33:48 INFO - rsp = 0x00007fdd17294eb0 r12 = 0x00007fdd17294f80
[task 2020-08-11T12:33:48.760Z] 12:33:48 INFO - r13 = 0x0000000000000000 r14 = 0x00007fdd17c8ccd0
[task 2020-08-11T12:33:48.760Z] 12:33:48 INFO - r15 = 0x00007ffdddb5b990 rip = 0x00007fdd264d2deb
[task 2020-08-11T12:33:48.760Z] 12:33:48 INFO - Found by: call frame info
[task 2020-08-11T12:33:48.761Z] 12:33:48 INFO - 26 libpthread.so.0 + 0x76db
[task 2020-08-11T12:33:48.761Z] 12:33:48 INFO - rbx = 0x0000000000000000 rbp = 0x0000000000000000
[task 2020-08-11T12:33:48.761Z] 12:33:48 INFO - rsp = 0x00007fdd17294ec0 r12 = 0x00007fdd17294f80
[task 2020-08-11T12:33:48.761Z] 12:33:48 INFO - r13 = 0x0000000000000000 r14 = 0x00007fdd17c8ccd0
[task 2020-08-11T12:33:48.761Z] 12:33:48 INFO - r15 = 0x00007ffdddb5b990 rip = 0x00007fdd3772e6db
[task 2020-08-11T12:33:48.761Z] 12:33:48 INFO - Found by: call frame info
[task 2020-08-11T12:33:48.761Z] 12:33:48 INFO - 27 libc.so.6 + 0x121a3f
[task 2020-08-11T12:33:48.761Z] 12:33:48 INFO - rsp = 0x00007fdd17294f80 rip = 0x00007fdd36914a3f
[task 2020-08-11T12:33:48.761Z] 12:33:48 INFO - Found by: stack scanning
[task 2020-08-11T12:33:48.761Z] 12:33:48 INFO -

Flags: needinfo?(lsalzman)
Flags: needinfo?(lsalzman)
Pushed by lsalzman@mozilla.com: https://hg.mozilla.org/integration/autoland/rev/96bca5729430 allow SWGL contexts to have multiple strong references. r=jimb https://hg.mozilla.org/integration/autoland/rev/8a1f8b9e2524 add SWGL utility bindings for managing textures. r=jimb https://hg.mozilla.org/integration/autoland/rev/97df16d3b738 fix SWGL code formatting. r=mattwoodrow https://hg.mozilla.org/integration/autoland/rev/d6786fcf717b add SWGL RenderTextureHosts. r=mattwoodrow
Regressions: 1658815
Pushed by lsalzman@mozilla.com: https://hg.mozilla.org/integration/autoland/rev/422ffc69f0c9 allow SWGL contexts to have multiple strong references. r=jimb https://hg.mozilla.org/integration/autoland/rev/108cb2f4c72c add SWGL utility bindings for managing textures. r=jimb https://hg.mozilla.org/integration/autoland/rev/08a8b2422765 fix SWGL code formatting. r=mattwoodrow https://hg.mozilla.org/integration/autoland/rev/fdda2e1419dd add SWGL RenderTextureHosts. r=mattwoodrow
Flags: needinfo?(lsalzman)
Regressions: 1670793
No longer blocks: sw-wr-correctness
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Created:
Updated:
Size: