Closed Bug 626590 Opened 14 years ago Closed 14 years ago

[D2D] Crash [@ _cairo_dwrite_show_glyphs_on_d2d_surface(void*, _cairo_operator, _cairo_pattern const*, cairo_glyph_t*, int, _cairo_scaled_font*, _cairo_clip*) ]

Categories

(Core :: Graphics, defect)

x86_64
Windows 7
defect
Not set
critical

Tracking

()

RESOLVED WORKSFORME

People

(Reporter: raoul, Unassigned)

Details

(Keywords: crash)

Crash Data

Attachments

(2 files)

User-Agent: Mozilla/5.0 (Windows NT 6.1; Win64; x64; rv:2.0b10pre) Gecko/20110112 Firefox/4.0b10pre Build Identifier: Mozilla/5.0 (Windows NT 6.1; Win64; x64; rv:2.0b10pre) Gecko/20110112 Firefox/4.0b10pre after a recent update, minefield is now crashing upon startup. safe mode works fine though. i managed to create a stacktrace where i see some d2d related issues. i set gfx.direct2d.disabled to "true" and now, minefield is working again. Reproducible: Always
00000000`0031a0d8 000007fe`ee1499e8 msvcrt!memset+0xc2 00000000`0031a0e0 000007fe`ee14af82 d2d1!TextStageManager::AddStagesForSubrect+0x15c 00000000`0031a1e0 000007fe`ee134bc3 d2d1!HwGlyphRunRealizer::IssueRenderingCommands+0xc92 00000000`0031a530 000007fe`ee16ee21 d2d1!CHwSurfaceRenderTarget::DrawGlyphRunInternal+0x217 00000000`0031a640 000007fe`ee1369a0 d2d1!CCommand_DrawGlyphRun::Execute+0x29 00000000`0031a680 000007fe`ee16ea59 d2d1!CHwSurfaceRenderTarget::ProcessBatch+0x58 00000000`0031a6b0 000007fe`ee126eb4 d2d1!CBatchSerializer::FlushInternal+0x3d 00000000`0031a6f0 000007fe`ee124a01 d2d1!CBatchSerializer::StartCommandInternal+0x4c 00000000`0031a720 000007fe`ee11f8d7 d2d1!DrawingContext::DrawGlyphRun+0x1c1 00000000`0031a7b0 000007fe`e747117e d2d1!D2DRenderTargetBase<ID2D1DCRenderTarget>::DrawGlyphRun+0x11b 00000000`0031a850 000007fe`e746d3a1 xul!_cairo_dwrite_show_glyphs_on_d2d_surface(void * surface = 0x00000000`107b7b00, _cairo_operator op = CAIRO_OPERATOR_OVER (0n2), struct _cairo_pattern * source = 0x00000000`0031ac10, struct cairo_glyph_t * glyphs = 0x00000000`0031ad10, int num_glyphs = 0n17, struct _cairo_scaled_font * scaled_font = 0x00000000`00000000, struct _cairo_clip * clip = 0x00000000`0031ac00)+0x88e [e:\builds\moz2_slave\cen-win64-ntly\build\gfx\cairo\cairo\src\cairo-dwrite-font.cpp @ 1502] 00000000`0031aa10 000007fe`e750f8dd xul!_cairo_d2d_show_glyphs(void * surface = 0x00000000`0031c0b0, _cairo_operator op = CAIRO_OPERATOR_DARKEN (0n17), struct _cairo_pattern * source = 0x00000000`0031ad10, struct cairo_glyph_t * glyphs = 0x00690072`00003000, int num_glyphs = 0n17, struct _cairo_scaled_font * scaled_font = 0x00000000`0ffa8800, struct _cairo_clip * clip = 0x00000000`0031ac00, int * remaining_glyphs = 0x00000000`0031ab90)+0xf1 [e:\builds\moz2_slave\cen-win64-ntly\build\gfx\cairo\cairo\src\cairo-d2d-surface.cpp @ 3473] 00000000`0031aa70 000007fe`e753c00c xul!_cairo_surface_show_text_glyphs(struct _cairo_surface * surface = 0x000007fe`00000011, _cairo_operator op = 0n-409460144 (No matching enumerant), struct _cairo_pattern * source = 0x00000000`0031ac10, char * utf8 = 0x00000000`00000000 "", int utf8_len = 0n0, struct cairo_glyph_t * glyphs = 0x00000000`0031ad10, int num_glyphs = 0n17, struct cairo_text_cluster_t * clusters = 0x00000000`0031b510, int num_clusters = 0n0, _cairo_text_cluster_flags cluster_flags = 0n0 (No matching enumerant), struct _cairo_scaled_font * scaled_font = 0x00000000`0ffa8800, struct _cairo_clip * clip = 0x00000000`0031ac00)+0x20d [e:\builds\moz2_slave\cen-win64-ntly\build\gfx\cairo\cairo\src\cairo-surface.c @ 2634] 00000000`0031ab90 000007fe`e7511ff7 xul!_cairo_gstate_show_text_glyphs(struct _cairo_gstate * gstate = 0x00000001`44444444, char * utf8 = 0x00000000`02a61700 "???", int utf8_len = 0n44051326, struct cairo_glyph_t * glyphs = 0x00000000`2b7ee9b4, int num_glyphs = 0n17, struct cairo_text_cluster_t * clusters = 0x00000000`00000000, int num_clusters = 0n0, _cairo_text_cluster_flags cluster_flags = 0n0 (No matching enumerant))+0x32c [e:\builds\moz2_slave\cen-win64-ntly\build\gfx\cairo\cairo\src\cairo-gstate.c @ 1875] 00000000`0031bfa0 000007fe`e6b165d6 xul!_moz_cairo_show_glyphs(struct _cairo * cr = 0x00000008`00000000, struct cairo_glyph_t * glyphs = 0x00000000`05000003, int num_glyphs = 0n44440032)+0x67 [e:\builds\moz2_slave\cen-win64-ntly\build\gfx\cairo\cairo\src\cairo.c @ 3407] 00000000`0031bff0 000007fe`e6b16a9e xul!GlyphBuffer::Flush(struct _cairo * aCR = 0x00000000`106e7a80, int aDrawToPath = 0n280782208, int aReverse = 0n229415488, int aFinish = 0n1)+0xea [e:\builds\moz2_slave\cen-win64-ntly\build\gfx\thebes\gfxfont.cpp @ 1103] 00000000`0031c040 000007fe`e6b1b4af xul!gfxFont::Draw(class gfxTextRun * aTextRun = 0x00000000`10c83aa0, unsigned int aStart = 0x11, unsigned int aEnd = 0x11, class gfxContext * aContext = 0x00000000`0dac9a40, int aDrawToPath = 0n0, struct gfxPoint * aPt = 0x00000000`0031d6a0, struct gfxFont::Spacing * aSpacing = 0x00000000`00000000)+0x4ba [e:\builds\moz2_slave\cen-win64-ntly\build\gfx\thebes\gfxfont.cpp @ 1243] 00000000`0031c970 000007fe`e6b1bd0a xul!gfxTextRun::DrawGlyphs(class gfxFont * aFont = 0x00000000`106e7a80, class gfxContext * aContext = 0x00000000`00000011, int aDrawToPath = 0n17, struct gfxPoint * aPt = 0x00000000`0031d6a0, unsigned int aStart = 0, unsigned int aEnd = 0x11, class gfxTextRun::PropertyProvider * aProvider = 0x00000000`0031d8a0, unsigned int aSpacingStart = 0, unsigned int aSpacingEnd = 0x11)+0xcf [e:\builds\moz2_slave\cen-win64-ntly\build\gfx\thebes\gfxfont.cpp @ 3226] 00000000`0031d650 000007fe`e6cd8b3d xul!gfxTextRun::Draw(class gfxContext * aContext = 0x00000000`00000000, struct gfxPoint * aPt = 0x00000000`0031d7d0, unsigned int aStart = 0x11, unsigned int aLength = 0, class gfxTextRun::PropertyProvider * aProvider = 0x00000000`0031d8a0, double * aAdvanceWidth = 0x00000000`0031da60)+0x266 [e:\builds\moz2_slave\cen-win64-ntly\build\gfx\thebes\gfxfont.cpp @ 3439] 00000000`0031d790 000007fe`e6cd8a54 xul!nsTextFrame::DrawText(class gfxContext * aCtx = 0x00000000`0dac9a40, struct gfxPoint * aTextBaselinePt = 0x00000000`100ad2b0, unsigned int aOffset = 0, unsigned int aLength = 0x11, struct gfxRect * aDirtyRect = 0x00000000`0031d850, class PropertyProvider * aProvider = 0x00000000`0031d8a0, double * aAdvanceWidth = 0x00000000`0031da60, int aDrawSoftHyphen = 0n0)+0x69 [e:\builds\moz2_slave\cen-win64-ntly\build\layout\generic\nstextframethebes.cpp @ 5088] 00000000`0031d7f0 000007fe`e6cd5976 xul!nsTextFrame::PaintText(class nsIRenderingContext * aRenderingContext = 0x00000000`000000bf, struct nsPoint * aPt = 0x00000000`10dd3a88, struct nsRect * aDirtyRect = 0x00000000`00000004)+0x3dc [e:\builds\moz2_slave\cen-win64-ntly\build\layout\generic\nstextframethebes.cpp @ 5075]
Severity: major → critical
Component: General → Graphics
Keywords: crash
Product: Firefox → Core
QA Contact: general → thebes
Version: unspecified → Trunk
I'd love to know the regression-window for this, that stack trace is from before landing of bug 622482.
Status: UNCONFIRMED → NEW
Ever confirmed: true
Summary: minefield crashes with direct2d enabled → [D2D] Crash [@ _cairo_dwrite_show_glyphs_on_d2d_surface(void*, _cairo_operator, _cairo_pattern const*, cairo_glyph_t*, int, _cairo_scaled_font*, _cairo_clip*) ]
If the stack shown here is accurate, it seems strange that scaled_font is apparently NULL here: _cairo_dwrite_show_glyphs_on_d2d_surface(... scaled_font = 0x00000000`00000000 ...) ...even though a frame higher, it was non-NULL: _cairo_d2d_show_glyphs(... scaled_font = 0x00000000`0ffa8800 ...)
btw. i saw the same crashes on my thunderbird 3.3 alpha (nightly build). i did not debug it (because i have no 32bit windbg installed) but disabling d2d also helped. so i would assume that this is a core (gecko?) issue. cheers, raoul
Here is a crash report with this crash signature: bp-2543c7f6-f525-4b80-91f5-318422110117
so, i deleted gfx.direct2d.disabled and things work without any problem in: (means gfx.direct2d.disabled = false) minefield 4.012pre (2011-02-15) thunderbird/shredder: 3.3a3pre Mozilla/5.0 (Windows NT 6.1; WOW64; rv:2.0b12pre) Gecko/20110216 Thunderbird/3.3a3pre has this bug been fixed or has direct2d simply been globally disabled? thanks,
> has this bug been fixed or has direct2d simply been globally disabled? D2D/DW is now disabled with old versions of graphic drivers. Provide the graphic section from the about:support page to see if your issue has been fixed by that.
Graphics Adapter Description Mobile Intel(R) 4 Series Express Chipset Family Vendor ID 8086 Device ID 2a42 Adapter RAM Unknown Adapter Drivers igdumd64 igd10umd64 igdumdx32 igd10umd32 Driver Version 8.752.4.0 Driver Date 10-22-2010 Direct2D Enabled false DirectWrite Enabled false (6.1.7600.16699, font cache n/a) WebGL Renderer (WebGL unavailable) GPU Accelerated Windows 1/1 Direct3D 9
Intel GPUs are D2D block-listed when they are on computers with dual GPUs (see bug 628129). If you want HW acceleration enabled, use your ATI GPU (see bug 601079 for system requirement). I close this bug as "work for me".
Status: NEW → RESOLVED
Closed: 14 years ago
Resolution: --- → WORKSFORME
Crash Signature: [@ _cairo_dwrite_show_glyphs_on_d2d_surface(void*, _cairo_operator, _cairo_pattern const*, cairo_glyph_t*, int, _cairo_scaled_font*, _cairo_clip*) ]
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Creator:
Created:
Updated:
Size: