Closed Bug 1503749 Opened 6 years ago Closed 6 years ago

Skia m71 (Firefox 65 branch) asserts on launch on big endian platforms: SkBlitter_ARGB32.cpp:167: fatal error: "assert(fSrcA != 0xFF)"

Categories

(Core :: Graphics, defect, P5)

65 Branch
Desktop
Linux
defect

Tracking

()

RESOLVED FIXED
mozilla65
Tracking Status
firefox65 --- fixed

People

(Reporter: awilfox, Assigned: lsalzman)

Details

(Whiteboard: [gfx-noted])

Attachments

(1 file)

After applying patches to fix Bug 1503733 and Bug 1503747, now we're presented with a new issue:


/var/clean/mozppc/mozilla-unified/gfx/skia/skia/src/core/SkBlitter_ARGB32.cpp:167: fatal error: "assert(fSrcA != 0xFF)"
Abort from sk_abort
Hit MOZ_CRASH() at /var/clean/mozppc/mozilla-unified/memory/mozalloc/mozalloc_abort.cpp:35



#0  0x000000013c4bb2b0 in mozalloc_abort(char const*) (msg=<optimized out>) at /var/clean/mozppc/mozilla-unified/memory/mozalloc/mozalloc_abort.cpp:35
#1  0x00003fff85ab36c4 in sk_abort_no_print() () at /var/clean/mozppc/mozilla-unified/gfx/skia/skia/src/ports/SkMemory_mozalloc.cpp:24
#2  0x00003fff857cab18 in SkARGB32_Blitter::<lambda()>::operator() (__closure=<optimized out>) at /var/clean/mozppc/mozilla-unified/gfx/skia/skia/src/core/SkBlitter_ARGB32.cpp:167
#3  0x00003fff857cab18 in SkARGB32_Blitter::blitMask(SkMask const&, SkIRect const&) (this=0x3fffcbfc91e8, mask=..., clip=...) at /var/clean/mozppc/mozilla-unified/gfx/skia/skia/src/core/SkBlitter_ARGB32.cpp:167
#4  0x00003fff85a59de0 in SkDraw::<lambda(const SkMask&, const SkGlyph&, SkPoint)>::operator() (mask=..., __closure=0x15d2f75e0) at /var/clean/mozppc/mozilla-unified/gfx/skia/skia/src/core/SkDraw_text.cpp:104
#5  0x00003fff85a59de0 in std::_Function_handler<void(const SkMask&, const SkGlyph&, SkPoint), SkDraw::drawOneMaskCreator(const SkPaint&, SkArenaAlloc*) const::<lambda(const SkMask&, const SkGlyph&, SkPoint)> >::_M_invoke(const std::_Any_data &, const SkMask &, const SkGlyph &, SkPoint &&) (__functor=..., __args#0=..., __args#1=..., __args#2=...) at /usr/include/c++/6.4.0/functional:1731
#6  0x00003fff85b76530 in std::function<void (SkMask const&, SkGlyph const&, SkPoint)>::operator()(SkMask const&, SkGlyph const&, SkPoint) const (__args#2=..., __args#1=..., __args#0=..., this=0x3fffcbfc8fc8) at /usr/include/c++/6.4.0/functional:2127
#7  0x00003fff85b76530 in SkGlyphRunListPainter::drawGlyphRunAsFullpixelMask(SkGlyphCache*, SkGlyphRun const&, SkPoint, SkMatrix const&, std::function<void (SkMask const&, SkGlyph const&, SkPoint)>)
    (this=0x15c4cfda0, cache=0x15d2f7010, glyphRun=..., origin=..., deviceMatrix=..., perMask=...) at /var/clean/mozppc/mozilla-unified/gfx/skia/skia/src/core/SkGlyphRunPainter.cpp:190
#8  0x00003fff85b76668 in SkGlyphRunListPainter::drawUsingMasks(SkGlyphCache*, SkGlyphRun const&, SkPoint, SkMatrix const&, std::function<void (SkMask const&, SkGlyph const&, SkPoint)>)
    (this=0x15c4cfda0, cache=0x15d2f7010, glyphRun=..., origin=..., deviceMatrix=..., perMask=...) at /var/clean/mozppc/mozilla-unified/gfx/skia/skia/src/core/SkGlyphRunPainter.cpp:236
#9  0x00003fff85b7692c in SkGlyphRunListPainter::drawForBitmapDevice(SkGlyphRunList const&, SkMatrix const&, std::function<std::function<void (SkMask const&, SkGlyph const&, SkPoint)> (SkPaint const&, SkArenaAlloc*)>, std::function<std::function<void (SkPath const*, SkGlyph const&, SkPoint)> (SkPaint const&, float, SkArenaAlloc*)>) (this=0x15c4cfda0, glyphRunList=..., deviceMatrix=..., perMaskCreator=..., perPathCreator=...) at /var/clean/mozppc/mozilla-unified/gfx/skia/skia/src/core/SkGlyphRunPainter.cpp:225
#10 0x00003fff85a55e60 in SkDraw::drawGlyphRunList(SkGlyphRunList const&, SkGlyphRunListPainter*) const (this=0x3fffcbfca0c0, glyphRunList=..., glyphPainter=0x15c4cfda0) at /var/clean/mozppc/mozilla-unified/gfx/skia/skia/src/core/SkDraw_text.cpp:139
#11 0x00003fff85914eac in SkBitmapDevice::drawGlyphRunList(SkGlyphRunList const&) (this=0x15c4cf820, glyphRunList=...) at /var/clean/mozppc/mozilla-unified/gfx/skia/skia/src/core/SkBitmapDevice.cpp:585
#12 0x00003fff85932fb8 in SkCanvas::onDrawPosText(void const*, unsigned long, SkPoint const*, SkPaint const&) (this=0x15ad5b140, text=0x3fffcbfca530, byteLength=14, pos=0x3fffcbfca770, paint=...)
    at /var/clean/mozppc/mozilla-unified/gfx/skia/skia/src/core/SkCanvas.cpp:2447
#13 0x00003fff85927c5c in SkCanvas::drawPosText(void const*, unsigned long, SkPoint const*, SkPaint const&) (this=0x15ad5b140, text=0x3fffcbfca530, byteLength=14, pos=0x3fffcbfca770, paint=...)
    at /var/clean/mozppc/mozilla-unified/gfx/skia/skia/src/core/SkCanvas.cpp:2531
#14 0x00003fff8304e6d4 in mozilla::gfx::DrawTargetSkia::DrawGlyphs(mozilla::gfx::ScaledFont*, mozilla::gfx::GlyphBuffer const&, mozilla::gfx::Pattern const&, mozilla::gfx::StrokeOptions const*, mozilla::gfx::DrawOptions const&)
    (this=<optimized out>, aFont=<optimized out>, aBuffer=..., aPattern=..., aStrokeOptions=<optimized out>, aOptions=...) at /var/clean/mozppc/mozilla-unified/gfx/2d/DrawTargetSkia.cpp:1477
#15 0x00003fff833b7dec in GlyphBufferAzure::FlushGlyphs() (this=0x3fffcbfcabe8) at /var/clean/mozppc/mozilla-unified/gfx/thebes/gfxFont.cpp:1829
#16 0x00003fff833adf68 in GlyphBufferAzure::~GlyphBufferAzure() (this=0x3fffcbfcabd8, __in_chrg=<optimized out>) at /var/clean/mozppc/mozilla-unified/gfx/thebes/gfxFont.cpp:1710
#17 0x00003fff833adf68 in gfxFont::Draw(gfxTextRun const*, unsigned int, unsigned int, mozilla::gfx::PointTyped<mozilla::gfx::UnknownUnits, float>*, TextRunDrawParams const&, mozilla::gfx::ShapedTextFlags)
    (this=<optimized out>, aTextRun=0x15b9415a0, aStart=<optimized out>, aEnd=<optimized out>, aPt=0x3fffcbfcc238, aRunParams=..., aOrientation=<optimized out>) at /var/clean/mozppc/mozilla-unified/gfx/thebes/gfxFont.cpp:2413
#18 0x00003fff833cc5f0 in gfxTextRun::DrawGlyphs(gfxFont*, gfxTextRun::Range, mozilla::gfx::PointTyped<mozilla::gfx::UnknownUnits, float>*, gfxTextRun::PropertyProvider*, gfxTextRun::Range, TextRunDrawParams&, mozilla::gfx::ShapedTextFlags) const
    (this=0x15b9415a0, aFont=0x15c684640, aRange=..., aPt=0x3fffcbfcc238, aProvider=0x3fffcbfcc690, aSpacingRange=..., aParams=..., aOrientation=<optimized out>) at /var/clean/mozppc/mozilla-unified/gfx/thebes/gfxTextRun.cpp:440
#19 0x00003fff833d3a44 in gfxTextRun::Draw(gfxTextRun::Range, mozilla::gfx::PointTyped<mozilla::gfx::UnknownUnits, float>, gfxTextRun::DrawParams const&) const (this=0x15b9415a0, aRange=..., aPt=..., aParams=...)
    at /var/clean/mozppc/mozilla-unified/gfx/thebes/gfxTextRun.cpp:688
#20 0x00003fff852872e0 in DrawTextRun(gfxTextRun const*, mozilla::gfx::Point const&, gfxTextRun::Range, nsTextFrame::DrawTextRunParams const&, nsTextFrame*) (aTextRun=0x15b9415a0, aTextBaselinePt=..., aRange=..., aParams=..., aFrame=0x15cb9e240)
    at /var/clean/mozppc/mozilla-unified/layout/generic/nsTextFrame.cpp:7165
#21 0x00003fff85297edc in nsTextFrame::DrawTextRun(gfxTextRun::Range, mozilla::gfx::PointTyped<mozilla::gfx::UnknownUnits, float> const&, nsTextFrame::DrawTextRunParams const&) (this=0x15cb9e240, aRange=..., aTextBaselinePt=..., aParams=...)
    at /var/clean/mozppc/mozilla-unified/layout/generic/nsTextFrame.cpp:7176
#22 0x00003fff85298930 in nsTextFrame::DrawText(gfxTextRun::Range, mozilla::gfx::PointTyped<mozilla::gfx::UnknownUnits, float> const&, nsTextFrame::DrawTextParams const&) (this=0x15cb9e240, aRange=..., aTextBaselinePt=..., aParams=...)
    at /var/clean/mozppc/mozilla-unified/layout/generic/nsTextFrame.cpp:7409
#23 0x00003fff852a4cc4 in nsTextFrame::PaintText(nsTextFrame::PaintTextParams const&, nsCharClipDisplayItem const&, float) (this=0x15cb9e240, aParams=..., aItem=..., aOpacity=1) at /var/clean/mozppc/mozilla-unified/layout/generic/nsTextFrame.cpp:7102
#24 0x00003fff852a5268 in nsDisplayText::RenderToContext(gfxContext*, nsDisplayListBuilder*, bool) (this=0x15d2f9220, aCtx=0x15bd825a0, aBuilder=0x3fffcbfcdc08, aIsRecording=false) at /var/clean/mozppc/mozilla-unified/layout/generic/nsTextFrame.cpp:5204
#25 0x00003fff852a53b8 in nsDisplayText::Paint(nsDisplayListBuilder*, gfxContext*) (this=0x15d2f9220, aBuilder=0x3fffcbfcdc08, aCtx=0x15bd825a0) at /var/clean/mozppc/mozilla-unified/layout/generic/nsTextFrame.cpp:5113
#26 0x00003fff854422ac in mozilla::FrameLayerBuilder::PaintItems(std::vector<mozilla::AssignedDisplayItem, std::allocator<mozilla::AssignedDisplayItem> >&, mozilla::gfx::IntRectTyped<mozilla::gfx::UnknownUnits> const&, gfxContext*, nsDisplayListBuilder*, nsPresContext*, mozilla::gfx::IntPointTyped<mozilla::gfx::UnknownUnits> const&, float, float) (this=0x15bd8b300, aItems=..., aRect=..., aContext=0x15bd825a0, aBuilder=0x3fffcbfcdc08, aPresContext=0x15bcee6a0, aOffset=..., aXScale=<optimized out>, aYScale=1)
    at /var/clean/mozppc/mozilla-unified/layout/painting/FrameLayerBuilder.cpp:7448
#27 0x00003fff85442a28 in mozilla::FrameLayerBuilder::DrawPaintedLayer(mozilla::layers::PaintedLayer*, gfxContext*, mozilla::gfx::IntRegionTyped<mozilla::gfx::UnknownUnits> const&, mozilla::gfx::IntRegionTyped<mozilla::gfx::UnknownUnits> const&, mozilla::layers::DrawRegionClip, mozilla::gfx::IntRegionTyped<mozilla::gfx::UnknownUnits> const&, void*) (aLayer=0x15d2fa700, aContext=0x15bd825a0, aRegionToDraw=..., aDirtyRegion=..., aClip=<optimized out>, aRegionToInvalidate=..., aCallbackData=0x3fffcbfcdc08)
    at /var/clean/mozppc/mozilla-unified/layout/painting/FrameLayerBuilder.cpp:7628
#28 0x00003fff8329d9d8 in mozilla::layers::ClientPaintedLayer::RenderLayerWithReadback(mozilla::layers::ReadbackProcessor*) (this=0x15d2fa700, aReadback=<optimized out>) at /var/clean/mozppc/mozilla-unified/gfx/layers/client/ClientPaintedLayer.cpp:166
#29 0x00003fff832a903c in mozilla::layers::ClientContainerLayer::RenderLayer() (this=0x15bc1eac0) at /var/clean/mozppc/mozilla-unified/gfx/layers/client/ClientContainerLayer.h:58
#30 0x00003fff832972d8 in mozilla::layers::ClientLayerManager::EndTransactionInternal(void (*)(mozilla::layers::PaintedLayer*, gfxContext*, mozilla::gfx::IntRegionTyped<mozilla::gfx::UnknownUnits> const&, mozilla::gfx::IntRegionTyped<mozilla::gfx::UnknownUnits> const&, mozilla::layers::DrawRegionClip, mozilla::gfx::IntRegionTyped<mozilla::gfx::UnknownUnits> const&, void*), void*, mozilla::layers::LayerManager::EndTransactionFlags)
    (this=0x15aac4d20, aCallback=0x3fff8544256c <mozilla::FrameLayerBuilder::DrawPaintedLayer(mozilla::layers::PaintedLayer*, gfxContext*, mozilla::gfx::IntRegionTyped<mozilla::gfx::UnknownUnits> const&, mozilla::gfx::IntRegionTyped<mozilla::gfx::UnknownUnits> const&, mozilla::layers::DrawRegionClip, mozilla::gfx::IntRegionTyped<mozilla::gfx::UnknownUnits> const&, void*)>, aCallbackData=0x3fffcbfcdc08) at /var/clean/mozppc/mozilla-unified/gfx/layers/client/ClientLayerManager.cpp:331
#31 0x00003fff832a4160 in mozilla::layers::ClientLayerManager::EndTransaction(void (*)(mozilla::layers::PaintedLayer*, gfxContext*, mozilla::gfx::IntRegionTyped<mozilla::gfx::UnknownUnits> const&, mozilla::gfx::IntRegionTyped<mozilla::gfx::UnknownUnits> const&, mozilla::layers::DrawRegionClip, mozilla::gfx::IntRegionTyped<mozilla::gfx::UnknownUnits> const&, void*), void*, mozilla::layers::LayerManager::EndTransactionFlags)
    (this=0x15aac4d20, aCallback=0x3fff8544256c <mozilla::FrameLayerBuilder::DrawPaintedLayer(mozilla::layers::PaintedLayer*, gfxContext*, mozilla::gfx::IntRegionTyped<mozilla::gfx::UnknownUnits> const&, mozilla::gfx::IntRegionTyped<mozilla::gfx::UnknownUnits> const&, mozilla::layers::DrawRegionClip, mozilla::gfx::IntRegionTyped<mozilla::gfx::UnknownUnits> const&, void*)>, aCallbackData=0x3fffcbfcdc08, aFlags=<optimized out>) at /var/clean/mozppc/mozilla-unified/gfx/layers/client/ClientLayerManager.cpp:389
#32 0x00003fff85447fe0 in nsDisplayList::PaintRoot(nsDisplayListBuilder*, gfxContext*, unsigned int) (this=0x3fffcbfcda58, aBuilder=0x3fffcbfcdc08, aCtx=<optimized out>, aFlags=<optimized out>) at /var/clean/mozppc/mozilla-unified/layout/painting/nsDisplayList.cpp:2881
#33 0x00003fff8514f35c in nsLayoutUtils::PaintFrame(gfxContext*, nsIFrame*, nsRegion const&, unsigned int, nsDisplayListBuilderMode, nsLayoutUtils::PaintFrameFlags)
    (aRenderingContext=0x0, aFrame=0x15c5f9440, aDirtyRegion=..., aBackstop=<optimized out>, aBuilderMode=<optimized out>, aFlags=(nsLayoutUtils::PaintFrameFlags::PAINT_WIDGET_LAYERS | nsLayoutUtils::PaintFrameFlags::PAINT_EXISTING_TRANSACTION | nsLayoutUtils::PaintFrameFlags::PAINT_NO_COMPOSITE)) at /var/clean/mozppc/mozilla-unified/layout/base/nsLayoutUtils.cpp:3912
#34 0x00003fff850f4780 in mozilla::PresShell::Paint(nsView*, nsRegion const&, unsigned int) (this=0x15afe7660, aViewToPaint=0x15bcef680, aDirtyRegion=..., aFlags=<optimized out>) at /var/clean/mozppc/mozilla-unified/layout/base/PresShell.cpp:6369
#35 0x00003fff84e75528 in nsViewManager::ProcessPendingUpdatesPaint(nsIWidget*) (this=0x15bcef5c0, aWidget=0x15bbe77a0) at /var/clean/mozppc/mozilla-unified/view/nsViewManager.cpp:480
#36 0x00003fff84e75838 in nsViewManager::ProcessPendingUpdatesForView(nsView*, bool) (this=0x15bcef5c0, aView=<optimized out>, aFlushDirtyRegion=true) at /var/clean/mozppc/mozilla-unified/view/nsViewManager.cpp:412
#37 0x00003fff84e75940 in nsViewManager::ProcessPendingUpdates() (this=0x15bcef5c0) at /var/clean/mozppc/mozilla-unified/view/nsViewManager.cpp:1102
#38 0x00003fff850c044c in nsRefreshDriver::Tick(mozilla::TimeStamp) (this=0x15bcef0a0, aNowTime=...) at /var/clean/mozppc/mozilla-unified/layout/base/nsRefreshDriver.cpp:2048
#39 0x00003fff850c7e98 in mozilla::RefreshDriverTimer::TickDriver(nsRefreshDriver*, mozilla::TimeStamp) (now=..., driver=<optimized out>) at /var/clean/mozppc/mozilla-unified/layout/base/nsRefreshDriver.cpp:326
#40 0x00003fff850c7e98 in mozilla::RefreshDriverTimer::TickRefreshDrivers(mozilla::TimeStamp, nsTArray<RefPtr<nsRefreshDriver> >&) (aNow=..., aDrivers=nsTArray<RefPtr<nsRefreshDriver> > & = {...}, this=0x15ba4eee0)
    at /var/clean/mozppc/mozilla-unified/layout/base/nsRefreshDriver.cpp:301
#41 0x00003fff850c7f7c in mozilla::RefreshDriverTimer::Tick(mozilla::TimeStamp) (this=0x15ba4eee0, now=...) at /var/clean/mozppc/mozilla-unified/layout/base/nsRefreshDriver.cpp:319
#42 0x00003fff850c8190 in mozilla::VsyncRefreshDriverTimer::RunRefreshDrivers(mozilla::TimeStamp) (aTimeStamp=..., this=<optimized out>) at /var/clean/mozppc/mozilla-unified/layout/base/nsRefreshDriver.cpp:760
#43 0x00003fff850c8190 in mozilla::VsyncRefreshDriverTimer::RefreshDriverVsyncObserver::TickRefreshDriver(mozilla::TimeStamp) (this=0x15ba5e6a0, aVsyncTimestamp=...) at /var/clean/mozppc/mozilla-unified/layout/base/nsRefreshDriver.cpp:676
#44 0x00003fff850c8630 in mozilla::VsyncRefreshDriverTimer::RefreshDriverVsyncObserver::ParentProcessVsyncNotifier::Run() (this=0x15d316220) at /var/clean/mozppc/mozilla-unified/layout/base/nsRefreshDriver.cpp:514
#45 0x00003fff82497ccc in nsThread::ProcessNextEvent(bool, bool*) (this=0x15aa6a160, aMayWait=<optimized out>, aResult=0x3fffcbfd1327) at /var/clean/mozppc/mozilla-unified/xpcom/threads/nsThread.cpp:1245
#46 0x00003fff82490354 in NS_ProcessNextEvent(nsIThread*, bool) (aThread=0x15aa6a160, aMayWait=<optimized out>) at /var/clean/mozppc/mozilla-unified/xpcom/threads/nsThreadUtils.cpp:530
#47 0x00003fff8293b724 in mozilla::ipc::MessagePump::Run(base::MessagePump::Delegate*) (this=0x15aa68b00, aDelegate=0x15aa68160) at /var/clean/mozppc/mozilla-unified/ipc/glue/MessagePump.cpp:125
#48 0x00003fff828fd514 in MessageLoop::RunInternal() (this=0x15aa68160) at /var/clean/mozppc/mozilla-unified/ipc/chromium/src/base/message_loop.cc:325
#49 0x00003fff828fd5c8 in MessageLoop::RunHandler() (this=0x15aa68160) at /var/clean/mozppc/mozilla-unified/ipc/chromium/src/base/message_loop.cc:318
#50 0x00003fff828fd5c8 in MessageLoop::Run() (this=0x15aa68160) at /var/clean/mozppc/mozilla-unified/ipc/chromium/src/base/message_loop.cc:298
#51 0x00003fff84eb7330 in nsBaseAppShell::Run() (this=0x15b040940) at /var/clean/mozppc/mozilla-unified/widget/nsBaseAppShell.cpp:158
#52 0x00003fff861bd0d8 in nsAppStartup::Run() (this=0x15b040880) at /var/clean/mozppc/mozilla-unified/toolkit/components/startup/nsAppStartup.cpp:290
#53 0x00003fff86294c24 in XREMain::XRE_mainRun() (this=0x3fffcbfd1810) at /var/clean/mozppc/mozilla-unified/toolkit/xre/nsAppRunner.cpp:4777
#54 0x00003fff86295478 in XREMain::XRE_main(int, char**, mozilla::BootstrapConfig const&) (this=0x3fffcbfd1810, argc=4, argv=0x3fffcbfd2b98, aConfig=...) at /var/clean/mozppc/mozilla-unified/toolkit/xre/nsAppRunner.cpp:4922
#55 0x00003fff862957c0 in XRE_main(int, char**, mozilla::BootstrapConfig const&) (argc=<optimized out>, argv=0x3fffcbfd2b98, aConfig=...) at /var/clean/mozppc/mozilla-unified/toolkit/xre/nsAppRunner.cpp:5014
#56 0x00003fff862a3bf4 in mozilla::BootstrapImpl::XRE_main(int, char**, mozilla::BootstrapConfig const&) (this=<optimized out>, argc=<optimized out>, argv=<optimized out>, aConfig=...) at /var/clean/mozppc/mozilla-unified/toolkit/xre/Bootstrap.cpp:49
#57 0x000000013c4bac10 in do_main(int, char**, char**) (argc=<optimized out>, argv=0x3fffcbfd2b98, envp=<optimized out>) at /var/clean/mozppc/mozilla-unified/browser/app/nsBrowserApp.cpp:237
#58 0x000000013c4ba470 in main(int, char**, char**) (argc=<optimized out>, argv=0x3fffcbfd2b98, envp=0x3fffcbfd2bc0) at /var/clean/mozppc/mozilla-unified/browser/app/nsBrowserApp.cpp:329


Have not yet had a chance to triage this.  Suspecting something in the font layer is non-endian aware and we were just getting away with it before due to lack of assertions in Skia (while rare, I have seen some text show up in the wrong colours on Firefox 64).
Flags: needinfo?(lsalzman)
Priority: -- → P3
Flags: needinfo?(lsalzman)
Priority: P3 → P5
If you can look into this, it would help. Otherwise, given that this only reproduces on big-endian hardware, I have no way to reproduce or investigate myself. My suspicion is that this may be a case of inappropriate rounding of the color values inside SkPaint so that SkPaint::setAlpha is producing an alpha values slightly less than 1.0, which when queried with SkPaint::getAlpha produces 254 instead of 255. This should be easy to check on your end.
Flags: needinfo?(AWilcox)
Logging the setAlpha calls:

awilcox on gwyn [pts/12 Sun 4 2:09] mozilla-unified: LD_LIBRARY_PATH=/var/clean/mozppc/mozilla-unified/obj-powerpc64-foxkit-linux-musl/dist/bin CC=gcc CXX=g++ ./mach run
 0:00.37 /var/clean/mozppc/mozilla-unified/obj-powerpc64-foxkit-linux-musl/dist/bin/firefox -no-remote -profile /var/clean/mozppc/mozilla-unified/obj-powerpc64-foxkit-linux-musl/tmp/profile-default
++DOCSHELL 0x1699dbe00 == 1 [pid = 13868] [id = {050e4e66-3ff7-4c4a-9998-7c374dd1863f}]
++DOMWINDOW == 1 (0x169a53d20) [pid = 13868] [serial = 1] [outer = 0]
++DOMWINDOW == 2 (0x169af7be0) [pid = 13868] [serial = 2] [outer = 0x169a53d20]
++DOCSHELL 0x169d84040 == 2 [pid = 13868] [id = {6974a495-8bb5-4ffb-aecb-9622251d7556}]
++DOMWINDOW == 3 (0x169d84a40) [pid = 13868] [serial = 3] [outer = 0]
++DOMWINDOW == 4 (0x169d88d60) [pid = 13868] [serial = 4] [outer = 0x169d84a40]
++DOMWINDOW == 5 (0x169573560) [pid = 13868] [serial = 5] [outer = 0x169a53d20]
++DOCSHELL 0x16a6167c0 == 3 [pid = 13868] [id = {34cf7392-43d5-45af-9608-827c7ff70b80}]
++DOMWINDOW == 6 (0x16a616e60) [pid = 13868] [serial = 6] [outer = 0]
++DOCSHELL 0x16b034540 == 4 [pid = 13868] [id = {8d32ca13-8af9-4f9b-b73d-d3dae1873840}]
++DOMWINDOW == 7 (0x16b034dc0) [pid = 13868] [serial = 7] [outer = 0]
++DOMWINDOW == 8 (0x16a021aa0) [pid = 13868] [serial = 8] [outer = 0x16b034dc0]
++DOMWINDOW == 9 (0x16af24b60) [pid = 13868] [serial = 9] [outer = 0x16a616e60]
Couldn't convert chrome URL: chrome://branding/locale/brand.properties
++DOCSHELL 0x122944600 == 1 [pid = 13920] [id = {78b220f7-0645-4cfc-a69e-d3ca52d8dd66}]
SkPaint::setAlpha: 255 => 1.000000
SkPaint::setAlpha: 255 => 1.000000
SkPaint::setAlpha: 255 => 1.000000
SkPaint::setAlpha: 255 => 1.000000
SkPaint::setAlpha: 255 => 1.000000
SkPaint::setAlpha: 255 => 1.000000
SkPaint::setAlpha: 255 => 1.000000
SkPaint::setAlpha: 255 => 1.000000
SkPaint::setAlpha: 255 => 1.000000
SkPaint::setAlpha: 255 => 1.000000
SkPaint::setAlpha: 255 => 1.000000
SkPaint::setAlpha: 255 => 1.000000
SkPaint::setAlpha: 255 => 1.000000
SkPaint::setAlpha: 255 => 1.000000
SkPaint::setAlpha: 255 => 1.000000
SkPaint::setAlpha: 255 => 1.000000
SkPaint::setAlpha: 255 => 1.000000
SkPaint::setAlpha: 255 => 1.000000
SkPaint::setAlpha: 255 => 1.000000
SkPaint::setAlpha: 255 => 1.000000
SkPaint::setAlpha: 255 => 1.000000
SkPaint::setAlpha: 255 => 1.000000
SkPaint::setAlpha: 255 => 1.000000
SkPaint::setAlpha: 255 => 1.000000
SkPaint::setAlpha: 255 => 1.000000
SkPaint::setAlpha: 255 => 1.000000
SkPaint::setAlpha: 255 => 1.000000
SkPaint::setAlpha: 255 => 1.000000
SkPaint::setAlpha: 255 => 1.000000
SkPaint::setAlpha: 255 => 1.000000
SkPaint::setAlpha: 255 => 1.000000
SkPaint::setAlpha: 255 => 1.000000
SkPaint::setAlpha: 255 => 1.000000
SkPaint::setAlpha: 102 => 0.400000
SkPaint::setAlpha: 255 => 1.000000
SkPaint::setAlpha: 255 => 1.000000
SkPaint::setAlpha: 102 => 0.400000
SkPaint::setAlpha: 255 => 1.000000
SkPaint::setAlpha: 255 => 1.000000
SkPaint::setAlpha: 255 => 1.000000
SkPaint::setAlpha: 255 => 1.000000
SkPaint::setAlpha: 102 => 0.400000
SkPaint::setAlpha: 255 => 1.000000
SkPaint::setAlpha: 255 => 1.000000
SkPaint::setAlpha: 255 => 1.000000
SkPaint::setAlpha: 255 => 1.000000
SkPaint::setAlpha: 255 => 1.000000
SkPaint::setAlpha: 255 => 1.000000
SkPaint::setAlpha: 255 => 1.000000
SkPaint::setAlpha: 255 => 1.000000
SkPaint::setAlpha: 255 => 1.000000
SkPaint::setAlpha: 255 => 1.000000
SkPaint::setAlpha: 255 => 1.000000
/var/clean/mozppc/mozilla-unified/gfx/skia/skia/src/core/SkBlitter_ARGB32.cpp:167: fatal error: "assert(fSrcA != 0xFF)"



Forcing abort on the first non-255 value:

awilcox on gwyn [pts/12 Sun 4 2:19] mozilla-unified: LD_LIBRARY_PATH=/var/clean/mozppc/mozilla-unified/obj-powerpc64-foxkit-linux-musl/dist/bin CC=gcc CXX=g++ ./mach run
 0:00.37 /var/clean/mozppc/mozilla-unified/obj-powerpc64-foxkit-linux-musl/dist/bin/firefox -no-remote -profile /var/clean/mozppc/mozilla-unified/obj-powerpc64-foxkit-linux-musl/tmp/profile-default
++DOCSHELL 0x14dc12140 == 1 [pid = 18832] [id = {06af10d4-58b1-480f-b744-5f8346f098bc}]
++DOMWINDOW == 1 (0x14dc014e0) [pid = 18832] [serial = 1] [outer = 0]
++DOMWINDOW == 2 (0x14dcbbea0) [pid = 18832] [serial = 2] [outer = 0x14dc014e0]
++DOCSHELL 0x14df481e0 == 2 [pid = 18832] [id = {b146a424-567f-4ec6-bb78-350ca487c74a}]
++DOMWINDOW == 3 (0x14df48c00) [pid = 18832] [serial = 3] [outer = 0]
++DOMWINDOW == 4 (0x14df4cf20) [pid = 18832] [serial = 4] [outer = 0x14df48c00]
++DOMWINDOW == 5 (0x14d7317e0) [pid = 18832] [serial = 5] [outer = 0x14dc014e0]
++DOCSHELL 0x14e6d4da0 == 3 [pid = 18832] [id = {169a10ef-47c6-4a87-82dd-19eb21dd9bdd}]
++DOMWINDOW == 6 (0x14e6d5440) [pid = 18832] [serial = 6] [outer = 0]
GLib-GIO-Message: 02:40:27.959: Using the 'memory' GSettings backend.  Your settings will not be saved or shared with other applications.
++DOCSHELL 0x14f18d400 == 4 [pid = 18832] [id = {85d7e3da-dc9d-4b75-bf6f-8bc3c80f6f35}]
++DOMWINDOW == 7 (0x14f18dcc0) [pid = 18832] [serial = 7] [outer = 0]
++DOMWINDOW == 8 (0x14e201de0) [pid = 18832] [serial = 8] [outer = 0x14f18dcc0]
++DOMWINDOW == 9 (0x14f44d760) [pid = 18832] [serial = 9] [outer = 0x14e6d5440]
SkPaint::setAlpha: 255 => 1.000000
SkPaint::setAlpha: 255 => 1.000000
SkPaint::setAlpha: 255 => 1.000000
SkPaint::setAlpha: 255 => 1.000000
SkPaint::setAlpha: 255 => 1.000000
SkPaint::setAlpha: 255 => 1.000000
SkPaint::setAlpha: 255 => 1.000000
SkPaint::setAlpha: 255 => 1.000000
SkPaint::setAlpha: 255 => 1.000000
SkPaint::setAlpha: 255 => 1.000000
SkPaint::setAlpha: 255 => 1.000000
SkPaint::setAlpha: 255 => 1.000000
SkPaint::setAlpha: 255 => 1.000000
SkPaint::setAlpha: 255 => 1.000000
SkPaint::setAlpha: 255 => 1.000000
SkPaint::setAlpha: 255 => 1.000000
SkPaint::setAlpha: 255 => 1.000000
SkPaint::setAlpha: 255 => 1.000000
SkPaint::setAlpha: 255 => 1.000000
SkPaint::setAlpha: 255 => 1.000000
SkPaint::setAlpha: 255 => 1.000000
SkPaint::setAlpha: 255 => 1.000000
SkPaint::setAlpha: 255 => 1.000000
SkPaint::setAlpha: 255 => 1.000000
SkPaint::setAlpha: 255 => 1.000000
SkPaint::setAlpha: 255 => 1.000000
SkPaint::setAlpha: 255 => 1.000000
SkPaint::setAlpha: 255 => 1.000000
SkPaint::setAlpha: 255 => 1.000000
SkPaint::setAlpha: 255 => 1.000000
SkPaint::setAlpha: 255 => 1.000000
SkPaint::setAlpha: 255 => 1.000000
SkPaint::setAlpha: 255 => 1.000000
SkPaint::setAlpha: 102 => 0.400000
/var/clean/mozppc/mozilla-unified/gfx/skia/skia/src/core/SkPaint.cpp:269: fatal error: "Transparency!"
Abort from sk_abort
Hit MOZ_CRASH() at /var/clean/mozppc/mozilla-unified/memory/mozalloc/mozalloc_abort.cpp:35

Thread 1 "firefox" received signal SIGSEGV, Segmentation fault.
0x00000001325bd2b0 in mozalloc_abort (msg=<optimized out>) at /var/clean/mozppc/mozilla-unified/memory/mozalloc/mozalloc_abort.cpp:35
35          MOZ_CRASH();
(gdb) bt
#0  0x00000001325bd2b0 in mozalloc_abort(char const*) (msg=<optimized out>) at /var/clean/mozppc/mozilla-unified/memory/mozalloc/mozalloc_abort.cpp:35
#1  0x00003fffb7723fc0 in sk_abort_no_print() () at /var/clean/mozppc/mozilla-unified/gfx/skia/skia/src/ports/SkMemory_mozalloc.cpp:24
#2  0x00003fffb77f64bc in SkPaint::setAlpha(unsigned int) (this=0x3fffc0e91b58, a=<optimized out>) at /var/clean/mozppc/mozilla-unified/gfx/skia/skia/src/core/SkPaint.cpp:269
#3  0x00003fffb4cba3e8 in mozilla::gfx::DrawTargetSkia::PushLayerWithBlend(bool, float, mozilla::gfx::SourceSurface*, mozilla::gfx::BaseMatrix<float> const&, mozilla::gfx::IntRectTyped<mozilla::gfx::UnknownUnits> const&, bool, mozilla::gfx::CompositionOp) (this=
    0x14eabf7e0, aOpaque=<optimized out>, aOpacity=<optimized out>, aMask=0x0, aMaskTransform=..., aBounds=..., aCopyBackground=<optimized out>, aCompositionOp=<optimized out>) at /var/clean/mozppc/mozilla-unified/gfx/2d/DrawTargetSkia.cpp:2111
#4  0x00003fffb4cb3da8 in mozilla::gfx::DrawTargetSkia::PushLayer(bool, float, mozilla::gfx::SourceSurface*, mozilla::gfx::BaseMatrix<float> const&, mozilla::gfx::IntRectTyped<mozilla::gfx::UnknownUnits> const&, bool)
    (this=<optimized out>, aOpaque=<optimized out>, aOpacity=<optimized out>, aMask=<optimized out>, aMaskTransform=..., aBounds=..., aCopyBackground=<optimized out>) at /var/clean/mozppc/mozilla-unified/gfx/2d/DrawTargetSkia.cpp:2098
#5  0x00003fffb5001afc in gfxContext::PushGroupForBlendBack(gfxContentType, float, mozilla::gfx::SourceSurface*, mozilla::gfx::BaseMatrix<float> const&) (this=<optimized out>, content=<optimized out>, aOpacity=<optimized out>, aMask=<optimized out>, aMaskTransform=...)
    at /var/clean/mozppc/mozilla-unified/gfx/thebes/gfxContext.cpp:769
#6  0x00003fffb70af2d8 in mozilla::PushOpacity (aItem=..., aContext=<optimized out>) at /var/clean/mozppc/mozilla-unified/layout/painting/FrameLayerBuilder.cpp:7250
#7  0x00003fffb70af2d8 in mozilla::FrameLayerBuilder::PaintItems(std::vector<mozilla::AssignedDisplayItem, std::allocator<mozilla::AssignedDisplayItem> >&, mozilla::gfx::IntRectTyped<mozilla::gfx::UnknownUnits> const&, gfxContext*, nsDisplayListBuilder*, nsPresContext*, mozilla::gfx::IntPointTyped<mozilla::gfx::UnknownUnits> const&, float, float) (this=0x14d5a3cc0, aItems=..., aRect=..., aContext=0x14f3e8c00, aBuilder=0x3fffc0e92de0, aPresContext=0x14e043fe0, aOffset=..., aXScale=<optimized out>, aYScale=1)
    at /var/clean/mozppc/mozilla-unified/layout/painting/FrameLayerBuilder.cpp:7428
#8  0x00003fffb70b0748 in mozilla::FrameLayerBuilder::DrawPaintedLayer(mozilla::layers::PaintedLayer*, gfxContext*, mozilla::gfx::IntRegionTyped<mozilla::gfx::UnknownUnits> const&, mozilla::gfx::IntRegionTyped<mozilla::gfx::UnknownUnits> const&, mozilla::layers::DrawRegionClip, mozilla::gfx::IntRegionTyped<mozilla::gfx::UnknownUnits> const&, void*) (aLayer=0x14e0f2f00, aContext=0x14f3e8c00, aRegionToDraw=..., aDirtyRegion=..., aClip=<optimized out>, aRegionToInvalidate=..., aCallbackData=0x3fffc0e92de0)
    at /var/clean/mozppc/mozilla-unified/layout/painting/FrameLayerBuilder.cpp:7688
#9  0x00003fffb4f0a28c in mozilla::layers::ClientPaintedLayer::RenderLayerWithReadback(mozilla::layers::ReadbackProcessor*) (this=0x14e0f2f00, aReadback=<optimized out>) at /var/clean/mozppc/mozilla-unified/gfx/layers/client/ClientPaintedLayer.cpp:166
#10 0x00003fffb4f158f0 in mozilla::layers::ClientContainerLayer::RenderLayer() (this=0x14ec3e460) at /var/clean/mozppc/mozilla-unified/gfx/layers/client/ClientContainerLayer.h:58
#11 0x00003fffb4f03b8c in mozilla::layers::ClientLayerManager::EndTransactionInternal(void (*)(mozilla::layers::PaintedLayer*, gfxContext*, mozilla::gfx::IntRegionTyped<mozilla::gfx::UnknownUnits> const&, mozilla::gfx::IntRegionTyped<mozilla::gfx::UnknownUnits> const&, mozilla::layers::DrawRegionClip, mozilla::gfx::IntRegionTyped<mozilla::gfx::UnknownUnits> const&, void*), void*, mozilla::layers::LayerManager::EndTransactionFlags)
    (this=0x14f2d3ee0, aCallback=0x3fffb70b028c <mozilla::FrameLayerBuilder::DrawPaintedLayer(mozilla::layers::PaintedLayer*, gfxContext*, mozilla::gfx::IntRegionTyped<mozilla::gfx::UnknownUnits> const&, mozilla::gfx::IntRegionTyped<mozilla::gfx::UnknownUnits> const&, mozilla::layers::DrawRegionClip, mozilla::gfx::IntRegionTyped<mozilla::gfx::UnknownUnits> const&, void*)>, aCallbackData=0x3fffc0e92de0) at /var/clean/mozppc/mozilla-unified/gfx/layers/client/ClientLayerManager.cpp:331
#12 0x00003fffb4f10a14 in mozilla::layers::ClientLayerManager::EndTransaction(void (*)(mozilla::layers::PaintedLayer*, gfxContext*, mozilla::gfx::IntRegionTyped<mozilla::gfx::UnknownUnits> const&, mozilla::gfx::IntRegionTyped<mozilla::gfx::UnknownUnits> const&, mozilla::layers::DrawRegionClip, mozilla::gfx::IntRegionTyped<mozilla::gfx::UnknownUnits> const&, void*), void*, mozilla::layers::LayerManager::EndTransactionFlags)
    (this=0x14f2d3ee0, aCallback=0x3fffb70b028c <mozilla::FrameLayerBuilder::DrawPaintedLayer(mozilla::layers::PaintedLayer*, gfxContext*, mozilla::gfx::IntRegionTyped<mozilla::gfx::UnknownUnits> const&, mozilla::gfx::IntRegionTyped<mozilla::gfx::UnknownUnits> const&, mozilla::layers::DrawRegionClip, mozilla::gfx::IntRegionTyped<mozilla::gfx::UnknownUnits> const&, void*)>, aCallbackData=0x3fffc0e92de0, aFlags=<optimized out>) at /var/clean/mozppc/mozilla-unified/gfx/layers/client/ClientLayerManager.cpp:389
#13 0x00003fffb70b5d38 in nsDisplayList::PaintRoot(nsDisplayListBuilder*, gfxContext*, unsigned int) (this=0x3fffc0e92c30, aBuilder=0x3fffc0e92de0, aCtx=<optimized out>, aFlags=<optimized out>) at /var/clean/mozppc/mozilla-unified/layout/painting/nsDisplayList.cpp:2833
#14 0x00003fffb6dbcb20 in nsLayoutUtils::PaintFrame(gfxContext*, nsIFrame*, nsRegion const&, unsigned int, nsDisplayListBuilderMode, nsLayoutUtils::PaintFrameFlags) (aRenderingContext=0x0, aFrame=
    0x14ebc6e60, aDirtyRegion=..., aBackstop=<optimized out>, aBuilderMode=<optimized out>, aFlags=(nsLayoutUtils::PaintFrameFlags::PAINT_WIDGET_LAYERS | nsLayoutUtils::PaintFrameFlags::PAINT_EXISTING_TRANSACTION | nsLayoutUtils::PaintFrameFlags::PAINT_NO_COMPOSITE))
    at /var/clean/mozppc/mozilla-unified/layout/base/nsLayoutUtils.cpp:3974
#15 0x00003fffb6d61dc0 in mozilla::PresShell::Paint(nsView*, nsRegion const&, unsigned int) (this=0x14e047920, aViewToPaint=0x14e044ec0, aDirtyRegion=..., aFlags=<optimized out>) at /var/clean/mozppc/mozilla-unified/layout/base/PresShell.cpp:6369
#16 0x00003fffb6ae2d08 in nsViewManager::ProcessPendingUpdatesPaint(nsIWidget*) (this=0x14e044e00, aWidget=0x14df37980) at /var/clean/mozppc/mozilla-unified/view/nsViewManager.cpp:480
#17 0x00003fffb6ae3018 in nsViewManager::ProcessPendingUpdatesForView(nsView*, bool) (this=0x14e044e00, aView=<optimized out>, aFlushDirtyRegion=true) at /var/clean/mozppc/mozilla-unified/view/nsViewManager.cpp:412
#18 0x00003fffb6ae3120 in nsViewManager::ProcessPendingUpdates() (this=0x14e044e00) at /var/clean/mozppc/mozilla-unified/view/nsViewManager.cpp:1102
#19 0x00003fffb6d2da14 in nsRefreshDriver::Tick(mozilla::TimeStamp) (this=0x14e0448e0, aNowTime=...) at /var/clean/mozppc/mozilla-unified/layout/base/nsRefreshDriver.cpp:2048
#20 0x00003fffb6d35460 in mozilla::RefreshDriverTimer::TickDriver(nsRefreshDriver*, mozilla::TimeStamp) (now=..., driver=<optimized out>) at /var/clean/mozppc/mozilla-unified/layout/base/nsRefreshDriver.cpp:326
#21 0x00003fffb6d35460 in mozilla::RefreshDriverTimer::TickRefreshDrivers(mozilla::TimeStamp, nsTArray<RefPtr<nsRefreshDriver> >&) (aNow=..., aDrivers=nsTArray<RefPtr<nsRefreshDriver> > & = {...}, this=0x14ddb6a00)
    at /var/clean/mozppc/mozilla-unified/layout/base/nsRefreshDriver.cpp:301
#22 0x00003fffb6d35544 in mozilla::RefreshDriverTimer::Tick(mozilla::TimeStamp) (this=0x14ddb6a00, now=...) at /var/clean/mozppc/mozilla-unified/layout/base/nsRefreshDriver.cpp:319
#23 0x00003fffb6d35758 in mozilla::VsyncRefreshDriverTimer::RunRefreshDrivers(mozilla::TimeStamp) (aTimeStamp=..., this=<optimized out>) at /var/clean/mozppc/mozilla-unified/layout/base/nsRefreshDriver.cpp:760
#24 0x00003fffb6d35758 in mozilla::VsyncRefreshDriverTimer::RefreshDriverVsyncObserver::TickRefreshDriver(mozilla::TimeStamp) (this=0x14ddb6a80, aVsyncTimestamp=...) at /var/clean/mozppc/mozilla-unified/layout/base/nsRefreshDriver.cpp:676
#25 0x00003fffb6d35bf8 in mozilla::VsyncRefreshDriverTimer::RefreshDriverVsyncObserver::ParentProcessVsyncNotifier::Run() (this=0x14ecc7f00) at /var/clean/mozppc/mozilla-unified/layout/base/nsRefreshDriver.cpp:514
#26 0x00003fffb40fd8f8 in nsThread::ProcessNextEvent(bool, bool*) (this=0x14cdd8fc0, aMayWait=<optimized out>, aResult=0x3fffc0e96517) at /var/clean/mozppc/mozilla-unified/xpcom/threads/nsThread.cpp:1246
#27 0x00003fffb40f5ee8 in NS_ProcessNextEvent(nsIThread*, bool) (aThread=0x14cdd8fc0, aMayWait=<optimized out>) at /var/clean/mozppc/mozilla-unified/xpcom/threads/nsThreadUtils.cpp:530
#28 0x00003fffb45a2cf0 in mozilla::ipc::MessagePump::Run(base::MessagePump::Delegate*) (this=0x14cdd7940, aDelegate=0x14cdd6f80) at /var/clean/mozppc/mozilla-unified/ipc/glue/MessagePump.cpp:97
#29 0x00003fffb4564b84 in MessageLoop::RunInternal() (this=0x14cdd6f80) at /var/clean/mozppc/mozilla-unified/ipc/chromium/src/base/message_loop.cc:325
#30 0x00003fffb4564c38 in MessageLoop::RunHandler() (this=0x14cdd6f80) at /var/clean/mozppc/mozilla-unified/ipc/chromium/src/base/message_loop.cc:318
#31 0x00003fffb4564c38 in MessageLoop::Run() (this=0x14cdd6f80) at /var/clean/mozppc/mozilla-unified/ipc/chromium/src/base/message_loop.cc:298
#32 0x00003fffb6b248e0 in nsBaseAppShell::Run() (this=0x14d3aeae0) at /var/clean/mozppc/mozilla-unified/widget/nsBaseAppShell.cpp:158
#33 0x00003fffb7e2b168 in nsAppStartup::Run() (this=0x14d3aea20) at /var/clean/mozppc/mozilla-unified/toolkit/components/startup/nsAppStartup.cpp:290
#34 0x00003fffb7f05120 in XREMain::XRE_mainRun() (this=0x3fffc0e96a00) at /var/clean/mozppc/mozilla-unified/toolkit/xre/nsAppRunner.cpp:4784
#35 0x00003fffb7f05974 in XREMain::XRE_main(int, char**, mozilla::BootstrapConfig const&) (this=0x3fffc0e96a00, argc=4, argv=0x3fffc0e97d88, aConfig=...) at /var/clean/mozppc/mozilla-unified/toolkit/xre/nsAppRunner.cpp:4929
#36 0x00003fffb7f05cbc in XRE_main(int, char**, mozilla::BootstrapConfig const&) (argc=<optimized out>, argv=0x3fffc0e97d88, aConfig=...) at /var/clean/mozppc/mozilla-unified/toolkit/xre/nsAppRunner.cpp:5021
#37 0x00003fffb7f140f0 in mozilla::BootstrapImpl::XRE_main(int, char**, mozilla::BootstrapConfig const&) (this=<optimized out>, argc=<optimized out>, argv=<optimized out>, aConfig=...) at /var/clean/mozppc/mozilla-unified/toolkit/xre/Bootstrap.cpp:49
#38 0x00000001325bcc10 in do_main(int, char**, char**) (argc=<optimized out>, argv=0x3fffc0e97d88, envp=<optimized out>) at /var/clean/mozppc/mozilla-unified/browser/app/nsBrowserApp.cpp:237
#39 0x00000001325bc470 in main(int, char**, char**) (argc=<optimized out>, argv=0x3fffc0e97d88, envp=0x3fffc0e97db0) at /var/clean/mozppc/mozilla-unified/browser/app/nsBrowserApp.cpp:329
(gdb) frame 6
#6  0x00003fffb70af2d8 in mozilla::PushOpacity (aItem=..., aContext=<optimized out>) at /var/clean/mozppc/mozilla-unified/layout/painting/FrameLayerBuilder.cpp:7250
7250        aContext->PushGroupForBlendBack(gfxContentType::COLOR_ALPHA, opacity);
(gdb) p aItem
$1 = (mozilla::AssignedDisplayItem &) @0x14e6c9e58: {mItem = 0x14ecd97c0, mLayerState = mozilla::LAYER_NONE, mDisplayItemData = 0x0, mContentRect = {<mozilla::gfx::BaseRect<int, nsRect, nsPoint, nsSize, nsMargin>> = {x = 2340, y = 2340, width = 1680, height = 1680}, <No data fields>}, mInactiveLayerManager = [(mozilla::layers::LayerManager *) 0x0], mTransform = [(mozilla::TransformClipNode *) 0x0], mType = mozilla::DisplayItemEntryType::PUSH_OPACITY, mReused = false, mMerged = false, mHasOpacity = false, mHasTransform = false, mHasPaintRect = false}
(gdb) p *aItem.mItem
$2 = (nsDisplayOpacity) {<nsDisplayWrapList> = {<nsDisplayHitTestInfoItem> = {<nsDisplayItem> = {<nsDisplayItemLink> = {mAbove = 0x14ecd9dc0}, _vptr.nsDisplayItem = 0x3fffbbf803a8 <vtable for nsDisplayOpacity+16>, mFrame = 0x14ef96a48, 
        mClipChain = [(const mozilla::DisplayItemClipChain *) 0x0], mClip = 0x0, mActiveScrolledRoot = [(const mozilla::ActiveScrolledRoot *) 0x0], mReferenceFrame = 0x14ebc6e60, mAnimatedGeometryRoot = [(AnimatedGeometryRoot *) 0x14e705ca0], 
        mToReferenceFrame = {<mozilla::gfx::BasePoint<int, nsPoint, int>> = {{{x = 2220, y = 1980}, components = {2220, 1980}}}, <No data fields>}, mDisplayItemData = 0x14f18f5f0, mDisplayItemDataLayerManager = 0x14f2d3ee0, 
        mBuildingRect = {<mozilla::gfx::BaseRect<int, nsRect, nsPoint, nsSize, nsMargin>> = {x = 0, y = 1980, width = 74280, height = 2400}, <No data fields>}, mPaintRect = {<mozilla::gfx::BaseRect<int, nsRect, nsPoint, nsSize, nsMargin>> = {x = 2340, y = 2340, 
            width = 1680, height = 1680}, <No data fields>}, mOldListKey = 0, mOldNestingDepth = 0, mMergedItem = false, mPreProcessedItem = false, mOldListIndex = {val = 0}, mOldList = 0, mForceNotVisible = false, mDisableSubpixelAA = false, mReusedItem = false, 
        mBackfaceHidden = false, mPaintRectValid = true, mPainted = false, mState = {mClipChain = [(const mozilla::DisplayItemClipChain *) 0x14ecd8fc0], mClip = 0x14ecd8fc0}}, mHitTestInfo = [(HitTestInfo *) 0x14e6d11a0]}, mList = {<nsDisplayList> = {
        _vptr.nsDisplayList = 0x3fffbbf4acd0 <vtable for RetainedDisplayList+16>, mSentinel = {mAbove = 0x14ecd96c0}, mTop = 0x14ecd96c8, mLength = 1, mIsOpaque = false, mForceTransparentSurface = false}, mDAG = {
        mNodesInfo = nsTArray<DirectedAcyclicGraph<MergedListUnits>::NodeInfo>, mDirectPredecessorList = nsTArray<Index<MergedListUnits> >}, mOldItems = nsTArray<OldItemInfo>}, mListPtr = 0x14ecd9878, 
    mFrameActiveScrolledRoot = [(const mozilla::ActiveScrolledRoot *) 0x0], mMergedFrames = nsTArray<nsIFrame*>, mBounds = {<mozilla::gfx::BaseRect<int, nsRect, nsPoint, nsSize, nsMargin>> = {x = 2340, y = 2340, width = 1680, height = 1680}, <No data fields>}, 
    mBaseBuildingRect = {<mozilla::gfx::BaseRect<int, nsRect, nsPoint, nsSize, nsMargin>> = {x = 0, y = 1980, width = 74280, height = 2400}, <No data fields>}, mOverrideZIndex = 0, mIndex = 0, mHasZIndexOverride = false, mClearingClipChain = true}, 
  mOpacity = 0.400000006, mForEventsAndPluginsOnly = false, mNeedsActiveLayer = false, mChildOpacityState = nsDisplayOpacity::ChildOpacityState::Deferred, mState = {mOpacity = 0.400000006}}
(gdb) 



This all looks legitimate to me.


Now, let's see the getAlpha calls too:

awilcox on gwyn [pts/12 Sun 4 2:59] mozilla-unified: LD_LIBRARY_PATH=/var/clean/mozppc/mozilla-unified/obj-powerpc64-foxkit-linux-musl/dist/bin CC=gcc CXX=g++ ./mach run
 0:00.37 /var/clean/mozppc/mozilla-unified/obj-powerpc64-foxkit-linux-musl/dist/bin/firefox -no-remote -profile /var/clean/mozppc/mozilla-unified/obj-powerpc64-foxkit-linux-musl/tmp/profile-default
++DOCSHELL 0x13f129240 == 1 [pid = 37022] [id = {bd96c7e6-ccad-478d-9839-3e50ad4d016a}]
++DOMWINDOW == 1 (0x13f17c000) [pid = 37022] [serial = 1] [outer = 0]
++DOMWINDOW == 2 (0x13f26c880) [pid = 37022] [serial = 2] [outer = 0x13f17c000]
++DOCSHELL 0x13f4f8080 == 2 [pid = 37022] [id = {abca46fc-55bf-4833-be1b-03aa8a1a72af}]
++DOMWINDOW == 3 (0x13f4f85a0) [pid = 37022] [serial = 3] [outer = 0]
++DOMWINDOW == 4 (0x13f4f92a0) [pid = 37022] [serial = 4] [outer = 0x13f4f85a0]
++DOMWINDOW == 5 (0x13ecfb300) [pid = 37022] [serial = 5] [outer = 0x13f17c000]
++DOCSHELL 0x13fd8a4a0 == 3 [pid = 37022] [id = {94c6d402-8693-48b1-b2aa-b67a5b2098b0}]
++DOMWINDOW == 6 (0x13fd8ab40) [pid = 37022] [serial = 6] [outer = 0]
++DOCSHELL 0x14079f120 == 4 [pid = 37022] [id = {625c8897-11b2-4e30-952a-ca2f36139ddf}]
++DOMWINDOW == 7 (0x14079f5a0) [pid = 37022] [serial = 7] [outer = 0]
++DOMWINDOW == 8 (0x13f7c0540) [pid = 37022] [serial = 8] [outer = 0x14079f5a0]
++DOMWINDOW == 9 (0x140691740) [pid = 37022] [serial = 9] [outer = 0x13fd8ab40]
Couldn't convert chrome URL: chrome://branding/locale/brand.properties
++DOCSHELL 0x132573cc0 == 1 [pid = 37071] [id = {2608108f-45c0-45da-84f1-68ae9666589d}]
++DOMWINDOW == 1 (0x132e251e0) [pid = 37071] [serial = 1] [outer = 0]
++DOMWINDOW == 2 (0x132bfb6c0) [pid = 37071] [serial = 2] [outer = 0x132e251e0]
SkPaint::setAlpha: 255 => 1.000000
getAlpha => 250
getAlpha => 250
SkPaint::setAlpha: 255 => 1.000000
getAlpha => 196
getAlpha => 196
SkPaint::setAlpha: 255 => 1.000000
getAlpha => 39
getAlpha => 39
SkPaint::setAlpha: 255 => 1.000000
getAlpha => 255
getAlpha => 255
getAlpha => 255
SkPaint::setAlpha: 255 => 1.000000
getAlpha => 0
SkPaint::setAlpha: 255 => 1.000000
getAlpha => 241
getAlpha => 241
SkPaint::setAlpha: 255 => 1.000000
getAlpha => 255
getAlpha => 255
getAlpha => 255
SkPaint::setAlpha: 255 => 1.000000
getAlpha => 0
SkPaint::setAlpha: 255 => 1.000000
getAlpha => 0
SkPaint::setAlpha: 255 => 1.000000
getAlpha => 255
getAlpha => 255
SkPaint::setAlpha: 255 => 1.000000
getAlpha => 255
getAlpha => 255
SkPaint::setAlpha: 255 => 1.000000
getAlpha => 255
getAlpha => 255
SkPaint::setAlpha: 255 => 1.000000
getAlpha => 255
getAlpha => 255
SkPaint::setAlpha: 255 => 1.000000
getAlpha => 255
SkPaint::setAlpha: 255 => 1.000000
getAlpha => 255
SkPaint::setAlpha: 255 => 1.000000
getAlpha => 255
SkPaint::setAlpha: 255 => 1.000000
getAlpha => 255
SkPaint::setAlpha: 255 => 1.000000
getAlpha => 252
getAlpha => 252
SkPaint::setAlpha: 255 => 1.000000
getAlpha => 233
getAlpha => 233
SkPaint::setAlpha: 255 => 1.000000
getAlpha => 255
getAlpha => 255
getAlpha => 255
SkPaint::setAlpha: 255 => 1.000000
getAlpha => 39
getAlpha => 39
SkPaint::setAlpha: 255 => 1.000000
getAlpha => 255
getAlpha => 255
getAlpha => 255
SkPaint::setAlpha: 255 => 1.000000
getAlpha => 39
getAlpha => 39
SkPaint::setAlpha: 255 => 1.000000
getAlpha => 255
getAlpha => 255
getAlpha => 255
SkPaint::setAlpha: 255 => 1.000000
getAlpha => 39
getAlpha => 39
SkPaint::setAlpha: 255 => 1.000000
getAlpha => 255
getAlpha => 255
getAlpha => 255
SkPaint::setAlpha: 255 => 1.000000
getAlpha => 39
getAlpha => 39
SkPaint::setAlpha: 255 => 1.000000
getAlpha => 255
getAlpha => 255
getAlpha => 255
SkPaint::setAlpha: 255 => 1.000000
getAlpha => 39
getAlpha => 39
SkPaint::setAlpha: 255 => 1.000000
getAlpha => 39
getAlpha => 39
SkPaint::setAlpha: 255 => 1.000000
getAlpha => 255
getAlpha => 255
getAlpha => 255
SkPaint::setAlpha: 255 => 1.000000
getAlpha => 39
getAlpha => 39
SkPaint::setAlpha: 255 => 1.000000
getAlpha => 255
getAlpha => 255
getAlpha => 255
SkPaint::setAlpha: 102 => 0.400000
getAlpha => 102
SkPaint::setAlpha: 255 => 1.000000
getAlpha => 39
getAlpha => 39
SkPaint::setAlpha: 255 => 1.000000
getAlpha => 255
getAlpha => 255
getAlpha => 255
getAlpha => 102
getAlpha => 102
getAlpha => 102
SkPaint::setAlpha: 102 => 0.400000
getAlpha => 102
SkPaint::setAlpha: 255 => 1.000000
getAlpha => 39
getAlpha => 39
SkPaint::setAlpha: 255 => 1.000000
getAlpha => 255
getAlpha => 255
getAlpha => 255
getAlpha => 102
getAlpha => 102
getAlpha => 102
SkPaint::setAlpha: 255 => 1.000000
getAlpha => 39
getAlpha => 39
SkPaint::setAlpha: 102 => 0.400000
getAlpha => 102
SkPaint::setAlpha: 255 => 1.000000
getAlpha => 255
getAlpha => 255
getAlpha => 255
SkPaint::setAlpha: 255 => 1.000000
getAlpha => 13
getAlpha => 13
SkPaint::setAlpha: 255 => 1.000000
getAlpha => 39
getAlpha => 39
SkPaint::setAlpha: 255 => 1.000000
getAlpha => 255
getAlpha => 255
getAlpha => 102
getAlpha => 102
getAlpha => 102
SkPaint::setAlpha: 255 => 1.000000
getAlpha => 0
SkPaint::setAlpha: 255 => 1.000000
getAlpha => 241
getAlpha => 241
SkPaint::setAlpha: 255 => 1.000000
getAlpha => 255
getAlpha => 255
getAlpha => 255
SkPaint::setAlpha: 255 => 1.000000
getAlpha => 0
SkPaint::setAlpha: 255 => 1.000000
getAlpha => 233
getAlpha => 233
SkPaint::setAlpha: 255 => 1.000000
getAlpha => 255
getAlpha => 255
getAlpha => 255
SkPaint::setAlpha: 255 => 1.000000
getAlpha => 39
getAlpha => 39
/var/clean/mozppc/mozilla-unified/gfx/skia/skia/src/core/SkBlitter_ARGB32.cpp:167: fatal error: "assert(fSrcA != 0xFF)"
Abort from sk_abort


The thing is, the assertion is "alpha != 255", which means it is failing because alpha *is* 255.  So isn't that what we should actually be poking at?  The cases where it *is* 255?

I'll continue poking, but further guidance is welcome.
Flags: needinfo?(AWilcox) → needinfo?(lsalzman)
Oops, a misreading on my part. That would then rather imply that SkBlitter::Choose is somehow getting bad color values.
Flags: needinfo?(lsalzman)
Try this patch and let me know if it fixes the issue. This code, as far as I can see, was just flat out wrong or rather not accounting for big-endian at all. It does not seem like upstream is effectively testing against big-endian platforms when they make changes.
Attachment #9022478 - Flags: review?(AWilcox)
Comment on attachment 9022478 [details] [diff] [review]
fix SkColor4f to SkColor conversion on big-endian

Looks good and fixes this bug entirely.  Thank you so much!
Attachment #9022478 - Flags: review?(AWilcox) → review+
Pushed by lsalzman@mozilla.com:
https://hg.mozilla.org/integration/mozilla-inbound/rev/5d4e3be63538
fix SkColor4f to SkColor conversion on big-endian. r=awilfox
Assignee: nobody → lsalzman
Status: UNCONFIRMED → ASSIGNED
Ever confirmed: true
Whiteboard: [gfx-noted]
https://hg.mozilla.org/mozilla-central/rev/5d4e3be63538
Status: ASSIGNED → RESOLVED
Closed: 6 years ago
Resolution: --- → FIXED
Target Milestone: --- → mozilla65
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Created:
Updated:
Size: