Open Bug 1305074 Opened 8 years ago Updated 2 years ago

sk_abort: SkRect.h: fatal error: ""!r.isEmpty()"" in GrAtlasTextBlob::appendGlyph

Categories

(Core :: Graphics, defect, P5)

x86_64
macOS
defect

Tracking

()

Tracking Status
firefox52 --- affected

People

(Reporter: truber, Unassigned)

References

Details

(Keywords: assertion, testcase, Whiteboard: [gfx-noted])

Attachments

(2 files)

Attached file testcase
Attached testcase triggers a skia abort in mozilla-central revision 60cc643978c7 (debug).
Attached file log.txt
Assertion: /builds/slave/m-cen-m64-d-000000000000000000/build/src/gfx/skia/skia/include/core/SkRect.h:744: fatal error: ""!r.isEmpty()"" Abort from sk_abort Hit MOZ_CRASH() at /builds/slave/m-cen-m64-d-000000000000000000/build/src/memory/mozalloc/mozalloc_abort.cpp:33 Stacktrace: 0|0|libmozglue.dylib|mozalloc_abort(char const*)|hg:hg.mozilla.org/mozilla-central:memory/mozalloc/mozalloc_abort.cpp:60cc643978c7|33|0x0 0|1|XUL|sk_abort_no_print()|hg:hg.mozilla.org/mozilla-central:gfx/skia/skia/src/ports/SkMemory_mozalloc.cpp:60cc643978c7|16|0xc 0|2|XUL|GrAtlasTextBlob::appendGlyph(int, SkRect const&, unsigned int, GrBatchTextStrike*, GrGlyph*, GrFontScaler*, SkGlyph const&, float, float, float, bool)|hg:hg.mozilla.org/mozilla-central:gfx/skia/skia/include/core/SkRect.h:60cc643978c7|744|0x26 0|3|XUL|GrTextUtils::BmpAppendGlyph(GrAtlasTextBlob*, int, GrBatchFontCache*, GrBatchTextStrike**, SkGlyph const&, int, int, unsigned int, GrFontScaler*)|hg:hg.mozilla.org/mozilla-central:gfx/skia/skia/src/gpu/text/GrTextUtils.cpp:60cc643978c7|152|0x30 0|4|XUL|SkFindAndPlaceGlyph::GlyphFindAndPlaceSubpixel<GrTextUtils::DrawBmpPosText(GrAtlasTextBlob*, int, GrBatchFontCache*, SkSurfaceProps const&, SkPaint const&, unsigned int, SkPaint::FakeGamma, SkMatrix const&, char const*, unsigned long, float const*, int, SkPoint const&)::$_1, (SkPaint::Align)0, (SkAxisAlignment)1>::findAndPositionGlyph(char const**, SkPoint, (GrTextUtils::DrawBmpPosText&&)(GrAtlasTextBlob*, int, GrBatchFontCache*, SkSurfaceProps const&, SkPaint const&, unsigned int, SkPaint::FakeGamma, SkMatrix const&, char const*, unsigned long, float const*, int, SkPoint const&)::$_1)|hg:hg.mozilla.org/mozilla-central:gfx/skia/skia/src/gpu/text/GrTextUtils.cpp:60cc643978c7|112|0x24 0|5|XUL|GrTextUtils::DrawBmpPosText(GrAtlasTextBlob*, int, GrBatchFontCache*, SkSurfaceProps const&, SkPaint const&, unsigned int, SkPaint::FakeGamma, SkMatrix const&, char const*, unsigned long, float const*, int, SkPoint const&)|hg:hg.mozilla.org/mozilla-central:gfx/skia/skia/src/core/SkFindAndPlaceGlyph.h:60cc643978c7|685|0x17 0|6|XUL|GrAtlasTextContext::CreateDrawPosTextBlob(GrTextBlobCache*, GrBatchFontCache*, GrShaderCaps const&, GrPaint const&, SkPaint const&, SkPaint::FakeGamma, SkMatrix const&, SkSurfaceProps const&, char const*, unsigned long, float const*, int, SkPoint const&)|hg:hg.mozilla.org/mozilla-central:gfx/skia/skia/src/gpu/text/GrAtlasTextContext.cpp:60cc643978c7|310|0x31 0|7|XUL|GrAtlasTextContext::drawPosText(GrContext*, GrDrawContext*, GrClip const&, GrPaint const&, SkPaint const&, SkMatrix const&, SkSurfaceProps const&, char const*, unsigned long, float const*, int, SkPoint const&, SkIRect const&)|hg:hg.mozilla.org/mozilla-central:gfx/skia/skia/src/gpu/text/GrAtlasTextContext.cpp:60cc643978c7|358|0x4d 0|8|XUL|GrDrawContext::drawPosText(GrClip const&, GrPaint const&, SkPaint const&, SkMatrix const&, char const*, unsigned long, float const*, int, SkPoint const&, SkIRect const&)|hg:hg.mozilla.org/mozilla-central:gfx/skia/skia/src/gpu/GrDrawContext.cpp:60cc643978c7|146|0x3a 0|9|XUL|SkGpuDevice::drawPosText(SkDraw const&, void const*, unsigned long, float const*, int, SkPoint const&, SkPaint const&)|hg:hg.mozilla.org/mozilla-central:gfx/skia/skia/src/gpu/SkGpuDevice.cpp:60cc643978c7|1797|0x42
Depends on: 1305151
This is mostly caused by numerical precision being stressed, mainly just triggers some debug code to assert in Skia but otherwise doesn't have any harmful consequence, and is not otherwise easy to fix. Ideally we should handle this via the mechanism in bug 1305151 rather than trying to fix directly.
Has STR: --- → yes
Priority: -- → P5
Whiteboard: [gfx-noted]
Has Regression Range: --- → irrelevant
Severity: normal → S3
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Created:
Updated:
Size: