Closed Bug 1516761 Opened 5 years ago Closed 4 years ago

Intermittent Assertion failure: [GFX1]: RGBX corner pixel at (0,0) in 1x1 surface, bounded by (0,0,1,1) is not opaque: 0,0,0,0, at /builds/worker/workspace/build/src/gfx/2d/Logging.h:747

Categories

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

defect

Tracking

()

RESOLVED FIXED
mozilla74
Tracking Status
firefox-esr68 --- wontfix
firefox67 --- wontfix
firefox71 --- wontfix
firefox72 --- wontfix
firefox73 --- fixed
firefox74 --- fixed

People

(Reporter: intermittent-bug-filer, Assigned: aosmond)

References

Details

(Keywords: assertion, intermittent-failure, testcase, Whiteboard: [stockwell unknown])

Attachments

(2 files)

Filed by: dvarga [at] mozilla.com

https://treeherder.mozilla.org/logviewer.html#?job_id=219188534&repo=mozilla-central

https://queue.taskcluster.net/v1/task/Hy6Z55EOSFCVrUBTtVxLnA/runs/0/artifacts/public/logs/live_backing.log

https://hg.mozilla.org/mozilla-central/raw-file/tip/layout/tools/reftest/reftest-analyzer.xhtml#logurl=https://queue.taskcluster.net/v1/task/Hy6Z55EOSFCVrUBTtVxLnA/runs/0/artifacts/public/logs/live_backing.log&only_show_unexpected=1

[task 2018-12-29T10:46:06.389Z] 10:46:06     INFO - [991, Main Thread] WARNING: A RasterImage's frames became invalid. Attempting to recover...: file /builds/worker/workspace/build/src/image/RasterImage.cpp, line 1276
[task 2018-12-29T10:46:06.391Z] 10:46:06     INFO - [GFX1]: RGBX corner pixel at (0,0) in 1x1 surface, bounded by (0,0,1,1) is not opaque: 0,0,0,0
[task 2018-12-29T10:46:06.394Z] 10:46:06     INFO - Assertion failure: [GFX1]: RGBX corner pixel at (0,0) in 1x1 surface, bounded by (0,0,1,1) is not opaque: 0,0,0,0, at /builds/worker/workspace/build/src/gfx/2d/Logging.h:747
[task 2018-12-29T10:46:06.397Z] 10:46:06     INFO - #01: mozilla::gfx::Log<1, mozilla::gfx::CriticalLogger>::WriteLog(std::string const&) [gfx/2d/Logging.h:747]
[task 2018-12-29T10:46:06.398Z] 10:46:06     INFO - 
[task 2018-12-29T10:46:06.399Z] 10:46:06     INFO - #02: mozilla::gfx::Log<1, mozilla::gfx::CriticalLogger>::Flush() [gfx/2d/Logging.h:0]
[task 2018-12-29T10:46:06.406Z] 10:46:06     INFO - 
[task 2018-12-29T10:46:06.407Z] 10:46:06     INFO - #03: mozilla::gfx::Log<1, mozilla::gfx::CriticalLogger>::~Log() [clang/include/c++/4.9.4/sstream:565]
[task 2018-12-29T10:46:06.408Z] 10:46:06     INFO - 
[task 2018-12-29T10:46:06.409Z] 10:46:06     INFO - #04: mozilla::gfx::GetSkImageForSurface(mozilla::gfx::SourceSurface*, mozilla::gfx::RectTyped<mozilla::gfx::UnknownUnits, float> const*, mozilla::gfx::BaseMatrix<float> const*) [gfx/2d/DrawTargetSkia.cpp:212]
[task 2018-12-29T10:46:06.410Z] 10:46:06     INFO - 
[task 2018-12-29T10:46:06.411Z] 10:46:06     INFO - #05: mozilla::gfx::SetPaintPattern(SkPaint&, mozilla::gfx::Pattern const&, float, SkMatrix const*, mozilla::gfx::RectTyped<mozilla::gfx::UnknownUnits, float> const*) [gfx/skia/skia/include/core/SkRefCnt.h:294]
[task 2018-12-29T10:46:06.411Z] 10:46:06     INFO - 
[task 2018-12-29T10:46:06.413Z] 10:46:06     INFO - #06: mozilla::gfx::AutoPaintSetup::AutoPaintSetup(SkCanvas*, mozilla::gfx::DrawOptions const&, mozilla::gfx::Pattern const&, mozilla::gfx::RectTyped<mozilla::gfx::UnknownUnits, float> const*, SkMatrix const*, mozilla::gfx::RectTyped<mozilla::gfx::UnknownUnits, float> const*) [gfx/2d/DrawTargetSkia.cpp:565]
[task 2018-12-29T10:46:06.413Z] 10:46:06     INFO - 
[task 2018-12-29T10:46:06.415Z] 10:46:06     INFO - #07: mozilla::gfx::DrawTargetSkia::FillRect(mozilla::gfx::RectTyped<mozilla::gfx::UnknownUnits, float> const&, mozilla::gfx::Pattern const&, mozilla::gfx::DrawOptions const&) [gfx/2d/DrawTargetSkia.cpp:775]
[task 2018-12-29T10:46:06.415Z] 10:46:06     INFO - 
[task 2018-12-29T10:46:06.416Z] 10:46:06     INFO - #08: gfxSurfaceDrawable::DrawInternal(mozilla::gfx::DrawTarget*, mozilla::gfx::CompositionOp, mozilla::gfx::AntialiasMode, mozilla::gfx::RectTyped<mozilla::gfx::UnknownUnits, double> const&, mozilla::gfx::IntRectTyped<mozilla::gfx::UnknownUnits> const&, mozilla::gfx::ExtendMode, mozilla::gfx::SamplingFilter, double, mozilla::gfx::BaseMatrix<double> const&) [gfx/thebes/gfxDrawable.cpp:86]
[task 2018-12-29T10:46:06.416Z] 10:46:06     INFO - 
[task 2018-12-29T10:46:06.417Z] 10:46:06     INFO - #09: gfxSurfaceDrawable::Draw(gfxContext*, mozilla::gfx::RectTyped<mozilla::gfx::UnknownUnits, double> const&, mozilla::gfx::ExtendMode, mozilla::gfx::SamplingFilter, double, mozilla::gfx::BaseMatrix<double> const&) [gfx/thebes/gfxDrawable.cpp:0]
[task 2018-12-29T10:46:06.418Z] 10:46:06     INFO - 
[task 2018-12-29T10:46:06.419Z] 10:46:06     INFO - #10: gfxUtils::DrawPixelSnapped(gfxContext*, gfxDrawable*, mozilla::gfx::SizeTyped<mozilla::gfx::UnknownUnits, double> const&, mozilla::image::ImageRegion const&, mozilla::gfx::SurfaceFormat, mozilla::gfx::SamplingFilter, unsigned int, double, bool) [gfx/thebes/gfxUtils.cpp:319]
[task 2018-12-29T10:46:06.420Z] 10:46:06     INFO - 
[task 2018-12-29T10:46:06.421Z] 10:46:06     INFO - #11: mozilla::image::imgFrame::Draw(gfxContext*, mozilla::image::ImageRegion const&, mozilla::gfx::SamplingFilter, unsigned int, float) [mfbt/RefPtr.h:45]
[task 2018-12-29T10:46:06.422Z] 10:46:06     INFO - 
[task 2018-12-29T10:46:06.423Z] 10:46:06     INFO - #12: mozilla::image::RasterImage::DrawInternal(mozilla::image::DrawableSurface&&, gfxContext*, mozilla::gfx::IntSizeTyped<mozilla::gfx::UnknownUnits> const&, mozilla::image::ImageRegion const&, mozilla::gfx::SamplingFilter, unsigned int, float) [image/RasterImage.cpp:1367]
[task 2018-12-29T10:46:06.424Z] 10:46:06     INFO - 
[task 2018-12-29T10:46:06.425Z] 10:46:06     INFO - #13: mozilla::image::RasterImage::Draw(gfxContext*, mozilla::gfx::IntSizeTyped<mozilla::gfx::UnknownUnits> const&, mozilla::image::ImageRegion const&, unsigned int, mozilla::gfx::SamplingFilter, mozilla::Maybe<mozilla::SVGImageContext> const&, unsigned int, float) [image/RasterImage.cpp:1429]
[task 2018-12-29T10:46:06.426Z] 10:46:06     INFO - 
[task 2018-12-29T10:46:06.427Z] 10:46:06     INFO - #14: DrawImageInternal(gfxContext&, nsPresContext*, imgIContainer*, mozilla::gfx::SamplingFilter, nsRect const&, nsRect const&, nsPoint const&, nsRect const&, mozilla::Maybe<mozilla::SVGImageContext> const&, unsigned int, mozilla::gfx::ExtendMode, float) [mfbt/Maybe.h:165]
[task 2018-12-29T10:46:06.428Z] 10:46:06     INFO - 
[task 2018-12-29T10:46:06.429Z] 10:46:06     INFO - #15: nsLayoutUtils::DrawBackgroundImage(gfxContext&, nsIFrame*, nsPresContext*, imgIContainer*, mozilla::gfx::IntSizeTyped<mozilla::CSSPixel> const&, mozilla::gfx::SamplingFilter, nsRect const&, nsRect const&, nsSize const&, nsPoint const&, nsRect const&, unsigned int, mozilla::gfx::ExtendMode, float) [layout/base/nsLayoutUtils.cpp:6823]
[task 2018-12-29T10:46:06.429Z] 10:46:06     INFO - 
[task 2018-12-29T10:46:06.430Z] 10:46:06     INFO - #16: mozilla::nsImageRenderer::Draw(nsPresContext*, gfxContext&, nsRect const&, nsRect const&, nsRect const&, nsPoint const&, nsSize const&, mozilla::gfx::IntRectTyped<mozilla::CSSPixel> const&, float) [layout/painting/nsImageRenderer.cpp:0]
[task 2018-12-29T10:46:06.431Z] 10:46:06     INFO - 
[task 2018-12-29T10:46:06.432Z] 10:46:06     INFO - #17: mozilla::nsImageRenderer::DrawLayer(nsPresContext*, gfxContext&, nsRect const&, nsRect const&, nsPoint const&, nsRect const&, nsSize const&, float) [layout/painting/nsImageRenderer.cpp:0]
[task 2018-12-29T10:46:06.435Z] 10:46:06     INFO - 
[task 2018-12-29T10:46:06.436Z] 10:46:06     INFO - #18: nsCSSRendering::PaintStyleImageLayerWithSC(nsCSSRendering::PaintBGParams const&, gfxContext&, mozilla::ComputedStyle*, nsStyleBorder const&) [layout/painting/nsCSSRendering.cpp:2606]
[task 2018-12-29T10:46:06.438Z] 10:46:06     INFO - 
[task 2018-12-29T10:46:06.439Z] 10:46:06     INFO - #19: PaintMaskSurface(nsSVGIntegrationUtils::PaintFramesParams const&, mozilla::gfx::DrawTarget*, float, mozilla::ComputedStyle*, nsTArray<nsSVGMaskFrame*> const&, mozilla::gfx::BaseMatrix<float> const&, nsPoint const&) [layout/svg/nsSVGIntegrationUtils.cpp:494]
[task 2018-12-29T10:46:06.440Z] 10:46:06     INFO - 
[task 2018-12-29T10:46:06.441Z] 10:46:06     INFO - #20: CreateAndPaintMaskSurface(nsSVGIntegrationUtils::PaintFramesParams const&, float, mozilla::ComputedStyle*, nsTArray<nsSVGMaskFrame*> const&, nsPoint const&) [layout/svg/nsSVGIntegrationUtils.cpp:569]
[task 2018-12-29T10:46:06.442Z] 10:46:06     INFO - 
[task 2018-12-29T10:46:06.443Z] 10:46:06     INFO - #21: nsSVGIntegrationUtils::PaintMaskAndClipPath(nsSVGIntegrationUtils::PaintFramesParams const&) [layout/svg/nsSVGIntegrationUtils.cpp:912]
[task 2018-12-29T10:46:06.444Z] 10:46:06     INFO - 
[task 2018-12-29T10:46:06.445Z] 10:46:06     INFO - #22: nsDisplayMasksAndClipPaths::PaintAsLayer(nsDisplayListBuilder*, gfxContext*, mozilla::layers::LayerManager*) [layout/painting/nsDisplayList.cpp:8876]
[task 2018-12-29T10:46:06.447Z] 10:46:06     INFO - 
[task 2018-12-29T10:46:06.447Z] 10:46:06     INFO - #23: 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) [layout/painting/FrameLayerBuilder.cpp:4134]
[task 2018-12-29T10:46:06.449Z] 10:46:06     INFO - 
[task 2018-12-29T10:46:06.450Z] 10:46:06     INFO - #24: 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*) [layout/painting/FrameLayerBuilder.cpp:7197]
[task 2018-12-29T10:46:06.451Z] 10:46:06     INFO - 
[task 2018-12-29T10:46:06.453Z] 10:46:06     INFO - #25: mozilla::layers::ClientPaintedLayer::RenderLayerWithReadback(mozilla::layers::ReadbackProcessor*) [gfx/layers/client/ClientPaintedLayer.cpp:150]
[task 2018-12-29T10:46:06.454Z] 10:46:06     INFO - 
[task 2018-12-29T10:46:06.456Z] 10:46:06     INFO - #26: non-virtual thunk to mozilla::layers::ClientPaintedLayer::RenderLayerWithReadback(mozilla::layers::ReadbackProcessor*) [gfx/layers/client/ClientPaintedLayer.cpp:0]
[task 2018-12-29T10:46:06.457Z] 10:46:06     INFO - 
[task 2018-12-29T10:46:06.458Z] 10:46:06     INFO - #27: mozilla::layers::ClientContainerLayer::RenderLayer() [gfx/layers/client/ClientContainerLayer.h:128]
[task 2018-12-29T10:46:06.460Z] 10:46:06     INFO - 
[task 2018-12-29T10:46:06.463Z] 10:46:06     INFO - #28: non-virtual thunk to mozilla::layers::ClientContainerLayer::RenderLayer() [gfx/layers/client/ClientContainerLayer.h:0]
[task 2018-12-29T10:46:06.464Z] 10:46:06     INFO - 
[task 2018-12-29T10:46:06.466Z] 10:46:06     INFO - #29: mozilla::layers::ClientLayer::RenderLayerWithReadback(mozilla::layers::ReadbackProcessor*) [gfx/layers/client/ClientLayerManager.h:368]
[task 2018-12-29T10:46:06.466Z] 10:46:06     INFO - 
[task 2018-12-29T10:46:06.468Z] 10:46:06     INFO - #30: mozilla::layers::ClientContainerLayer::RenderLayer() [gfx/layers/client/ClientContainerLayer.h:128]
[task 2018-12-29T10:46:06.469Z] 10:46:06     INFO - 
[task 2018-12-29T10:46:06.474Z] 10:46:06     INFO - #31: non-virtual thunk to mozilla::layers::ClientContainerLayer::RenderLayer() [gfx/layers/client/ClientContainerLayer.h:0]
[task 2018-12-29T10:46:06.475Z] 10:46:06     INFO - 
[task 2018-12-29T10:46:06.476Z] 10:46:06     INFO - #32: mozilla::layers::ClientLayer::RenderLayerWithReadback(mozilla::layers::ReadbackProcessor*) [gfx/layers/client/ClientLayerManager.h:368]
[task 2018-12-29T10:46:06.477Z] 10:46:06     INFO - 
[task 2018-12-29T10:46:06.478Z] 10:46:06     INFO - #33: mozilla::layers::ClientContainerLayer::RenderLayer() [gfx/layers/client/ClientContainerLayer.h:128]
[task 2018-12-29T10:46:06.479Z] 10:46:06     INFO - 
[task 2018-12-29T10:46:06.480Z] 10:46:06     INFO - #34: non-virtual thunk to mozilla::layers::ClientContainerLayer::RenderLayer() [gfx/layers/client/ClientContainerLayer.h:0]
[task 2018-12-29T10:46:06.481Z] 10:46:06     INFO - 
[task 2018-12-29T10:46:06.482Z] 10:46:06     INFO - #35: 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) [gfx/layers/client/ClientLayerManager.cpp:324]
[task 2018-12-29T10:46:06.483Z] 10:46:06     INFO - 
[task 2018-12-29T10:46:06.484Z] 10:46:06     INFO - #36: 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) [gfx/layers/client/ClientLayerManager.cpp:373]
[task 2018-12-29T10:46:06.486Z] 10:46:06     INFO - 
[task 2018-12-29T10:46:06.487Z] 10:46:06     INFO - #37: nsDisplayList::PaintRoot(nsDisplayListBuilder*, gfxContext*, unsigned int) [layout/painting/nsDisplayList.cpp:2725]
[task 2018-12-29T10:46:06.490Z] 10:46:06     INFO - 
[task 2018-12-29T10:46:06.491Z] 10:46:06     INFO - #38: nsLayoutUtils::PaintFrame(gfxContext*, nsIFrame*, nsRegion const&, unsigned int, nsDisplayListBuilderMode, nsLayoutUtils::PaintFrameFlags) [layout/base/nsLayoutUtils.cpp:3786]
[task 2018-12-29T10:46:06.492Z] 10:46:06     INFO - 
[task 2018-12-29T10:46:06.493Z] 10:46:06     INFO - #39: mozilla::PresShell::Paint(nsView*, nsRegion const&, unsigned int) [layout/base/PresShell.cpp:6027]
[task 2018-12-29T10:46:06.494Z] 10:46:06     INFO - 
[task 2018-12-29T10:46:06.496Z] 10:46:06     INFO - #40: nsViewManager::ProcessPendingUpdatesPaint(nsIWidget*) [gfx/src/nsRegion.h:479]
[task 2018-12-29T10:46:06.496Z] 10:46:06     INFO - 
[task 2018-12-29T10:46:06.498Z] 10:46:06     INFO - #41: nsViewManager::ProcessPendingUpdatesForView(nsView*, bool) [xpcom/ds/nsTArray.h:344]
[task 2018-12-29T10:46:06.498Z] 10:46:06     INFO - 
[task 2018-12-29T10:46:06.500Z] 10:46:06     INFO - #42: nsViewManager::ProcessPendingUpdates() [mfbt/RefPtr.h:45]
[task 2018-12-29T10:46:06.500Z] 10:46:06     INFO - 
[task 2018-12-29T10:46:06.501Z] 10:46:06     INFO - #43: nsRefreshDriver::Tick(mozilla::layers::BaseTransactionId<mozilla::VsyncIdType>, mozilla::TimeStamp) [layout/base/nsRefreshDriver.cpp:1959]
[task 2018-12-29T10:46:06.503Z] 10:46:06     INFO - 
[task 2018-12-29T10:46:06.503Z] 10:46:06     INFO - #44: mozilla::RefreshDriverTimer::TickRefreshDrivers(mozilla::layers::BaseTransactionId<mozilla::VsyncIdType>, mozilla::TimeStamp, nsTArray<RefPtr<nsRefreshDriver> >&) [xpcom/ds/ArrayIterator.h:61]
[task 2018-12-29T10:46:06.504Z] 10:46:06     INFO - 
[task 2018-12-29T10:46:06.505Z] 10:46:06     INFO - #45: mozilla::RefreshDriverTimer::Tick(mozilla::layers::BaseTransactionId<mozilla::VsyncIdType>, mozilla::TimeStamp) [layout/base/nsRefreshDriver.cpp:323]
[task 2018-12-29T10:46:06.506Z] 10:46:06     INFO - 
[task 2018-12-29T10:46:06.507Z] 10:46:06     INFO - #46: mozilla::VsyncRefreshDriverTimer::RefreshDriverVsyncObserver::TickRefreshDriver(mozilla::layers::BaseTransactionId<mozilla::VsyncIdType>, mozilla::TimeStamp) [mfbt/RefPtr.h:75]
[task 2018-12-29T10:46:06.508Z] 10:46:06     INFO - 
[task 2018-12-29T10:46:06.509Z] 10:46:06     INFO - #47: mozilla::VsyncRefreshDriverTimer::RefreshDriverVsyncObserver::ParentProcessVsyncNotifier::Run() [layout/base/nsRefreshDriver.cpp:487]
[task 2018-12-29T10:46:06.510Z] 10:46:06     INFO - 
[task 2018-12-29T10:46:06.510Z] 10:46:06     INFO - #48: nsThread::ProcessNextEvent(bool, bool*) [xpcom/threads/nsThread.cpp:1144]
[task 2018-12-29T10:46:06.512Z] 10:46:06     INFO - 
[task 2018-12-29T10:46:06.513Z] 10:46:06     INFO - #49: NS_ProcessNextEvent(nsIThread*, bool) [xpcom/threads/nsThreadUtils.cpp:468]
[task 2018-12-29T10:46:06.514Z] 10:46:06     INFO - 
[task 2018-12-29T10:46:06.515Z] 10:46:06     INFO - #50: mozilla::ipc::MessagePump::Run(base::MessagePump::Delegate*) [ipc/glue/MessagePump.cpp:89]
[task 2018-12-29T10:46:06.516Z] 10:46:06     INFO - 
[task 2018-12-29T10:46:06.517Z] 10:46:06     INFO - #51: MessageLoop::RunInternal() [ipc/chromium/src/base/message_loop.cc:314]
[task 2018-12-29T10:46:06.518Z] 10:46:06     INFO -
Attached file testcase.html

The attached test case requires "gfx.webrender.all=true"

Flags: in-testsuite?
Keywords: assertion, testcase
Status: NEW → RESOLVED
Closed: 5 years ago
Resolution: --- → INCOMPLETE
Status: RESOLVED → REOPENED
Resolution: INCOMPLETE → ---
Blocks: wr-72
Component: Graphics → Graphics: WebRender
Flags: needinfo?(jmuizelaar)
Priority: -- → P3

Tyson, the pernosco session expried because of the holidays. Can we get a new one?

Flags: needinfo?(jmuizelaar) → needinfo?(twsmith)
Blocks: wr-73
No longer blocks: wr-72

(In reply to Jeff Muizelaar [:jrmuizel] from comment #16)

Tyson, the pernosco session expried because of the holidays. Can we get a new one?

The database from the session has been rebuild. The link is good to go.

Flags: needinfo?(twsmith)

I had a quick look at the pernsoco trace. The 0 alpha pixels are coming from:

:SurfacePipeFactory::CreateSurfacePipe () at /SurfacePipeFactory.h:555
mozilla::image::SurfacePipeFactory::MakePipe<> () at /SurfacePipeFactory.h:587
mozilla::image::BlendAnimationFilter<>::Configure<> () at /SurfaceFilters.h:682
::SurfaceFilter::ConfigureFilter () at /SurfacePipe.h:508::SurfaceFilter::ResetToFirstRow () at /SurfacePipe.h:114
::BlendAnimationFilter<>::DoResetToFirstRow () at /SurfaceFilters.h:714
::BlendAnimationFilter<>::WriteBaseFrameRow ()__memset_avx2_unaligned_erms at /memset-vec-unaligned-erms.S:259

Andrew is probably a better person to reason about what's supposed to be happening here.

Flags: needinfo?(aosmond)

It appears it is a corrupted GIF that doesn't write any pixels. The BlendAnimationFilter memset clears the initial memset to 0xFF we do because it is BGRX. Then the assert trips.

Assignee: nobody → aosmond
Component: Graphics: WebRender → ImageLib
Flags: needinfo?(aosmond)
Pushed by aosmond@mozilla.com:
https://hg.mozilla.org/integration/autoland/rev/56970f0e6942
Only use OS_RGBA for the first frame of animated GIFs. r=tnikkel
Status: REOPENED → RESOLVED
Closed: 5 years ago4 years ago
Resolution: --- → FIXED
Target Milestone: --- → mozilla74

Is there a real-world impact for this bug which would make us want to consider uplifting this fix to Beta for 73 or can this ride 74 to release?

Comment on attachment 9118883 [details]
Bug 1516761 - Only use OS_RGBA for the first frame of animated GIFs.

Beta/Release Uplift Approval Request

  • User impact if declined: May experience content process crash in Skia due to malformed GIFs.
  • Is this code covered by automated tests?: Yes
  • Has the fix been verified in Nightly?: Yes
  • Needs manual test from QE?: No
  • If yes, steps to reproduce:
  • List of other uplifts needed: None
  • Risk to taking this patch: Low
  • Why is the change risky/not risky? (and alternatives if risky): It makes us use alpha surfaces more. Those support all the same situations as opaque surfaces, but more, with a minor performance cost. Given it is an animated GIF, most of the frames will be marked as containing alpha anyways, the first was just an exception.
  • String changes made/needed: N/A
Flags: needinfo?(aosmond)
Attachment #9118883 - Flags: approval-mozilla-beta?

Comment on attachment 9118883 [details]
Bug 1516761 - Only use OS_RGBA for the first frame of animated GIFs.

Simple crash fix, approved for 73.0b6.

Attachment #9118883 - Flags: approval-mozilla-beta? → approval-mozilla-beta+
QA Whiteboard: [qa-73b-p2]
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Created:
Updated:
Size: