Closed Bug 804144 Opened 7 years ago Closed 7 years ago

startup crash in gfxContext::~gfxContext @ TextStageManager::AddStagesForSubrect with Intel HD graphics and driver versions and below


(Core :: Graphics, defect, critical)

Windows 8
Not set



Tracking Status
firefox19 - ---


(Reporter: scoobidiver, Assigned: milan)


(Blocks 1 open bug)


(Keywords: crash, Whiteboard: [Win8][startupcrash])

Crash Data


(1 file, 1 obsolete file)

Bug 711656 is back because there's no graphics blocklist for Intel GPUs on Windows 8.
The one for Windows 7 should be reused for Windows 8.

Signature 	malloc | TextStageManager::AddStagesForSubrect(IDWritePrivateGlyphRunAnalysis*, SubRectInfo const*) More Reports Search
UUID	2b61b78e-4ca6-4a06-8ff7-a26012121022
Date Processed	2012-10-22 13:23:06
Uptime	2
Last Crash	1.3 minutes before submission
Install Age	2.0 minutes since version was first installed.
Install Time	2012-10-22 13:17:57
Product	Firefox
Version	19.0a1
Build ID	20121021115746
Release Channel	nightly
OS	Windows NT
OS Version	6.2.9200
Build Architecture	x86
Build Architecture Info	GenuineIntel family 6 model 37 stepping 2
Crash Address	0x1
App Notes 	
AdapterVendorID: 0x8086, AdapterDeviceID: 0x0046, AdapterSubsysID: 17021043, AdapterDriverVersion:
D2D? D2D+ DWrite? DWrite+ D3D10 Layers? D3D10 Layers+ 
EMCheckCompatibility	True
Adapter Vendor ID	0x8086
Adapter Device ID	0x0046
Total Virtual Memory	2147352576
Available Virtual Memory	1845800960
System Memory Use Percentage	73
Available Page File	3144462336
Available Physical Memory	524791808

Frame 	Module 	Signature 	Source
0 	msvcrt.dll 	malloc 	
1 	d2d1.dll 	TextStageManager::AddStagesForSubrect 	
2 	d2d1.dll 	GlyphRunRenderer::IssueRenderingCommands 	
3 	d2d1.dll 	CHwSurfaceRenderTarget::DrawGlyphRun 	
4 	d2d1.dll 	CCommand_DrawGlyphRunAnalysis::Execute 	
5 	d2d1.dll 	_allrem 	
6 	d2d1.dll 	DrawingContext::Flush 	
7 	d2d1.dll 	D2DDeviceContextBase<ID2D1DCRenderTarget,ID2D1DCRenderTarget,ID2D1DeviceContext> 	
8 	gkmedias.dll 	mozilla::gfx::DrawTargetD2D::Flush 	gfx/2d/DrawTargetD2D.cpp:235
9 	xul.dll 	gfxContext::~gfxContext 	gfx/thebes/gfxContext.cpp:127
10 	xul.dll 	gfxContext::Release 	obj-firefox/dist/include/gfxContext.h:42
11 	xul.dll 	nsRefPtr<gfxContext>::~nsRefPtr<gfxContext> 	obj-firefox/dist/include/nsAutoPtr.h:874
12 	xul.dll 	mozilla::layers::ThebesLayerD3D10::DrawRegion 	gfx/layers/d3d10/ThebesLayerD3D10.cpp:452
13 	xul.dll 	mozilla::layers::ThebesLayerD3D10::Validate 	gfx/layers/d3d10/ThebesLayerD3D10.cpp:245
14 	xul.dll 	mozilla::layers::ContainerLayerD3D10::Validate 	gfx/layers/d3d10/ContainerLayerD3D10.cpp:413
15 	xul.dll 	mozilla::layers::LayerManagerD3D10::Render 	gfx/layers/d3d10/LayerManagerD3D10.cpp:723
16 	xul.dll 	mozilla::layers::LayerManagerD3D10::EndTransaction 	gfx/layers/d3d10/LayerManagerD3D10.cpp:381
17 	xul.dll 	nsDisplayList::PaintForFrame 	layout/base/nsDisplayList.cpp:1107
18 	xul.dll 	nsLayoutUtils::PaintFrame 	layout/base/nsLayoutUtils.cpp:1853
19 	xul.dll 	PresShell::Paint 	layout/base/nsPresShell.cpp:5338
20 	xul.dll 	nsViewManager::ProcessPendingUpdatesForView 	view/src/nsViewManager.cpp:436
21 	xul.dll 	nsViewManager::ProcessPendingUpdates 	view/src/nsViewManager.cpp:1213
22 	xul.dll 	nsRefreshDriver::Notify 	layout/base/nsRefreshDriver.cpp:431
23 	xul.dll 	nsTimerImpl::Fire 	xpcom/threads/nsTimerImpl.cpp:475
24 	xul.dll 	nsTimerEvent::Run 	xpcom/threads/nsTimerImpl.cpp:555
25 	xul.dll 	nsThread::ProcessNextEvent 	xpcom/threads/nsThread.cpp:612
26 	xul.dll 	mozilla::ipc::MessagePump::Run 	ipc/glue/MessagePump.cpp:117
27 	xul.dll 	MessageLoop::RunHandler 	ipc/chromium/src/base/
28 	xul.dll 	MessageLoop::Run 	ipc/chromium/src/base/
29 	xul.dll 	nsBaseAppShell::Run 	widget/xpwidgets/nsBaseAppShell.cpp:163
30 	xul.dll 	nsAppShell::Run 	widget/windows/nsAppShell.cpp:232
31 	xul.dll 	nsAppStartup::Run 	toolkit/components/startup/nsAppStartup.cpp:290
32 	xul.dll 	XREMain::XRE_mainRun 	toolkit/xre/nsAppRunner.cpp:3799
33 	xul.dll 	XREMain::XRE_main 	toolkit/xre/nsAppRunner.cpp:3866
34 	xul.dll 	XRE_main 	toolkit/xre/nsAppRunner.cpp:3941

More reports at:|+TextStageManager%3A%3AAddStagesForSubrect%28IDWritePrivateGlyphRunAnalysis*%2C+SubRectInfo+const*%29
More reports also at:|+TextStageManager%3A%3AMapTextureTransferSurface%28D2D_RECT_U+const%26%2C+unsigned+char**%2C+unsigned+int*%29
Crash Signature: [@ malloc | TextStageManager::AddStagesForSubrect(IDWritePrivateGlyphRunAnalysis*, SubRectInfo const*)] → [@ malloc | TextStageManager::AddStagesForSubrect(IDWritePrivateGlyphRunAnalysis*, SubRectInfo const*)] [@ _VEC_memzero | TextStageManager::MapTextureTransferSurface(D2D_RECT_U const&, unsigned char** unsigned int*)] [@ memset | TextStageManager::MapTex…
Hardware: x86 → All
Blocks: 605779
Now that Win8 has been announced, we don't need to be concerned about crashes that only occur ~16 times in a day. We'll focus on this bug (track it) when it becomes a more prevalent issue in our user population.

CC'ing more people from the gfx team, since we can still fix in an upcoming version without this bug being tracked. Sounds like a minor modification to Bug 711656.
Oh. Bug 711656. Epic.

Indeed, just like in bug 711656, the crash occurs in a driver version,, that is in principle blacklisted. And the AppNotes annotations that we now have show that the user did not force-enable (or else we would see a ! instead of a ? after the feature name: "D2D!")

Please, do ping me if I forget to look into this early next week.

If anyone else wants to take this (you're welcome) take a look at the comments in bug 711656. That one turned out to be caused by a change in gfxInfo symbolic constants values, that caused a cached blacklisting decision to become mis-interpreted as a non-blacklisting.
(In reply to Scoobidiver from comment #0)
> Bug 711656 is back because there's no graphics blocklist for Intel GPUs on
> Windows 8.
> The one for Windows 7 should be reused for Windows 8.

Dang! Thanks for this, you're of course right.

Good, at least it's an easy fix. Want to do it? It's going to happen around widget/windows/GfxInfo.*. Maybe also widget/xpwidget/GfxInfo*
(In reply to Benoit Jacob [:bjacob] from comment #5)
> Want to do it?
No, thanks.
Any news on the easy implementation of this?
No longer blocks: 846759
Blocks: 863683
I've seen bug 863683 and looked back at this, but I'm trying very hard *not* to be the only one person in Mozilla to edit the blocklists. I believe that this should be assigned to someone, but please pick someone else. I'm happy to explain code, old bugs, and answer questions.
Flags: needinfo?(milan)
Assignee: nobody → milan
I'll sort this out.
Flags: needinfo?(milan)
I think you should comply with the Windows 7 case where the threshold is It will fix bug 863683, a kind of bug 806786 for Windows 8.
On Scoobidiver's suggestion, go to 2302, hopefully fixing bug 863683 as well.
Attachment #744797 - Attachment is obsolete: true
Attachment #744797 - Flags: feedback?(bjacob)
Attachment #744830 - Flags: review?(bjacob)
Attachment #744830 - Flags: review?(bjacob) → review+
Closed: 7 years ago
Resolution: --- → FIXED
Target Milestone: --- → mozilla23
I've updated accordingly. It should have been done by the assignee.
(In reply to Scoobidiver from comment #15)
> I've updated
> accordingly. It should have been done by the assignee.

Thanks!  The assignee just learned something.
You need to log in before you can comment on or make changes to this bug.