Closed Bug 595154 Opened 9 years ago Closed 9 years ago

[D3D9] Crash [@ memcpy | mozilla::layers::CanvasLayerD3D9::Updated(nsIntRect const&) ]

Categories

(Core :: Graphics, defect, critical)

x86
Windows XP
defect
Not set
critical

Tracking

()

RESOLVED FIXED
mozilla2.0b7
Tracking Status
blocking2.0 --- betaN+

People

(Reporter: scoobidiver, Assigned: bas.schouten)

Details

(Keywords: crash, regression)

Crash Data

Attachments

(4 files)

Build : Mozilla/5.0 (Windows NT 5.1.2600 Service Pack 2; rv:2.0b6pre) Gecko/20100905 Firefox/4.0b6pre

Since this build, a new crash signature has appeared on Windows XP.
It is #8 top crasher for b6pre/20100909 build.
4 comments explains how it take place :
* after unlocking windows or,
* after changing screen resolution

Signature	memcpy | mozilla::layers::CanvasLayerD3D9::Updated(nsIntRect const&)
UUID	a7f07e5d-ae27-4e5d-b204-f51ee2100908
Time 	2010-09-08 07:24:30.922718
Uptime	72805
Last Crash	72830 seconds (20.2 hours) before submission
Install Age	72805 seconds (20.2 hours) since version was first installed.
Product	Firefox
Version	4.0b6pre
Build ID	20100907041859
Branch	2.0
OS	Windows NT
OS Version	5.1.2600 Service Pack 2
CPU	x86
CPU Info	GenuineIntel family 6 model 30 stepping 5
Crash Reason	EXCEPTION_ACCESS_VIOLATION
Crash Address	0x28cf49da
User Comments	
App Notes 	AdapterVendorID: 10de, AdapterDeviceID: 0ca3

Crashing Thread
Frame 	Module 	Signature [Expand] 	Source
0 	mozcrt19.dll 	memcpy 	memcpy.asm:259
1 	xul.dll 	mozilla::layers::CanvasLayerD3D9::Updated 	gfx/layers/d3d9/CanvasLayerD3D9.cpp:192
2 	xul.dll 	nsCanvasRenderingContext2D::GetCanvasLayer 	content/canvas/src/nsCanvasRenderingContext2D.cpp:4160
3 	xul.dll 	nsHTMLCanvasElement::GetCanvasLayer 	content/html/content/src/nsHTMLCanvasElement.cpp:545
4 	xul.dll 	nsHTMLCanvasFrame::BuildLayer 	layout/generic/nsHTMLCanvasFrame.cpp:253
5 	xul.dll 	nsDisplayCanvas::BuildLayer 	layout/generic/nsHTMLCanvasFrame.cpp:95
6 	xul.dll 	mozilla::`anonymous namespace'::ContainerState::ProcessDisplayItems 	layout/base/FrameLayerBuilder.cpp:1084
7 	xul.dll 	mozilla::FrameLayerBuilder::BuildContainerLayerFor 	layout/base/FrameLayerBuilder.cpp:1396
8 	xul.dll 	nsDisplayList::PaintForFrame 	layout/base/nsDisplayList.cpp:407
9 	xul.dll 	nsLayoutUtils::PaintFrame 	layout/base/nsLayoutUtils.cpp:1412
10 	xul.dll 	PresShell::Paint 	layout/base/nsPresShell.cpp:5934
11 	xul.dll 	nsViewManager::RenderViews 	view/src/nsViewManager.cpp:459
12 	xul.dll 	nsViewManager::Refresh 	view/src/nsViewManager.cpp:425
13 	xul.dll 	nsViewManager::DispatchEvent 	view/src/nsViewManager.cpp:940
14 	xul.dll 	HandleEvent 	view/src/nsView.cpp:161
15 	xul.dll 	nsWindow::DispatchEvent 	widget/src/windows/nsWindow.cpp:3546
16 	xul.dll 	nsWindow::DispatchWindowEvent 	widget/src/windows/nsWindow.cpp:3565
17 		@0x12d6f7
I believe I know why this is.
Assignee: nobody → bas.schouten
Status: NEW → ASSIGNED
This is the first work preparing to fix this. This generalizes cleaning layer resources allowing different layer types to register for having their resources cleaned on resets.
Attachment #474048 - Flags: review?(jmuizelaar)
This will clean the CanvasLayerD3D9 resources when needed. There's more patches coming to ensure the layer continues working.
Attachment #474052 - Flags: review?(jmuizelaar)
This will recreate our texture when it's needed. It will also call update to re-upload it if it's been destroyed on a device reset.
Attachment #474084 - Flags: review?(vladimir)
This is the last of the series of patches. I'm unsure however if it will work on Windows XP, as I haven't got a real hardware XP box to test on. But I believe it will.
Attachment #474087 - Flags: review?(vladimir)
Attachment #474087 - Attachment is patch: true
Attachment #474087 - Attachment mime type: application/octet-stream → text/plain
Attachment #474048 - Flags: review?(jmuizelaar) → review+
Attachment #474052 - Flags: review?(jmuizelaar) → review+
blocking2.0: --- → ?
blocking2.0: ? → betaN+
Keywords: checkin-needed
Crash Signature: [@ memcpy | mozilla::layers::CanvasLayerD3D9::Updated(nsIntRect const&) ]
You need to log in before you can comment on or make changes to this bug.