Closed Bug 1336710 Opened 3 years ago Closed 3 years ago

Crash in rx::Blit9::initialize

Categories

(Core :: Canvas: WebGL, defect, critical)

50 Branch
x86
Windows XP
defect
Not set
critical

Tracking

()

RESOLVED FIXED
mozilla54
Tracking Status
firefox51 --- wontfix
firefox52 --- fixed
firefox-esr52 --- fixed
firefox53 --- fixed
firefox54 --- fixed

People

(Reporter: philipp, Assigned: cleu)

Details

(Keywords: crash, regression, Whiteboard: [gfx-noted])

Crash Data

Attachments

(1 file)

This bug was filed from the Socorro interface and is 
report bp-00248d30-e2fb-41a6-b5b5-096c32170204.
=============================================================
Crashing Thread (0)
Frame 	Module 	Signature 	Source
0 	libglesv2.dll 	rx::Blit9::initialize() 	gfx/angle/src/libANGLE/renderer/d3d/d3d9/Blit9.cpp:109
1 	libglesv2.dll 	rx::Renderer9::initializeDevice() 	gfx/angle/src/libANGLE/renderer/d3d/d3d9/Renderer9.cpp:366
2 	libglesv2.dll 	rx::Renderer9::resetDevice() 	gfx/angle/src/libANGLE/renderer/d3d/d3d9/Renderer9.cpp:2272
3 	d3d9.dll 	DdFlipToGDISurface 	
4 	libglesv2.dll 	rx::DisplayD3D::restoreLostDevice() 	gfx/angle/src/libANGLE/renderer/d3d/DisplayD3D.cpp:267
5 	libglesv2.dll 	egl::Display::restoreLostDevice() 	gfx/angle/src/libANGLE/Display.cpp:739
6 	libglesv2.dll 	egl::Display::createPbufferSurface(egl::Config const*, egl::AttributeMap const&, egl::Surface**) 	gfx/angle/src/libANGLE/Display.cpp:577
7 	libglesv2.dll 	egl::CreatePbufferSurface(void*, void*, int const*) 	gfx/angle/src/libGLESv2/entry_points_egl.cpp:304
8 	xul.dll 	mozilla::gl::GLContextEGL::CreatePBufferSurfaceTryingPowerOfTwo(void*, unsigned int, mozilla::gfx::IntSizeTyped<mozilla::gfx::UnknownUnits>&) 	gfx/gl/GLContextProviderEGL.cpp:577
9 	xul.dll 	mozilla::gl::GLContextEGL::CreateEGLPBufferOffscreenContext(mozilla::gl::CreateContextFlags, mozilla::gfx::IntSizeTyped<mozilla::gfx::UnknownUnits> const&, mozilla::gl::SurfaceCaps const&, nsACString_internal* const) 	gfx/gl/GLContextProviderEGL.cpp:972
10 	xul.dll 	mozilla::gl::GLContextProviderEGL::CreateOffscreen(mozilla::gfx::IntSizeTyped<mozilla::gfx::UnknownUnits> const&, mozilla::gl::SurfaceCaps const&, mozilla::gl::CreateContextFlags, nsACString_internal* const) 	gfx/gl/GLContextProviderEGL.cpp:1038
11 	xul.dll 	mozilla::PopulateCapFallbackQueue 	dom/canvas/WebGLContext.cpp:523
12 	ucrtbase.dll 	getenv_s 	
13 	ucrtbase.dll 	getenv

these crashes are increasing in frequency in release versions of firefox starting with 50.0. 
the crashes are all coming from users of windows xp with particular intel gpus:

Adapter device id facet
1 	0x2e32 	913 	33.62 %
2 	0x2a42 	719 	26.47 %
3 	0x0042 	438 	16.13 %
4 	0x0046 	358 	13.18 %
5 	0x2e22 	158 	5.82 %
6 	0x2e12 	130 	4.79 %

Adapter driver version facet
1 	6.14.10.5047 	897 	33.03 %
2 	6.14.10.5068 	678 	24.96 %
3 	6.14.10.5060 	309 	11.38 %
4 	6.14.10.5179 	301 	11.08 %
5 	6.14.10.5189 	246 	9.06 %
Whiteboard: [gfx-noted]
Hi Peter,
Can you help take a look at this one?
Flags: needinfo?(howareyou322)
These device IDs are all based on Intel GMA X4500, that is really old......

I think this crash is not hard to reproduce if we have a PC with GMA X4500.
It crashes in memcpy here
https://dxr.mozilla.org/mozilla-central/source/gfx/angle/src/libANGLE/renderer/d3d/d3d9/Blit9.cpp#109

I think it is because the driver fails to allocate correct memory space to copy.

Can we just blacklist GMA X4500 from using ANGLE?

Maybe that will solve the problem.
It looks like the address that got from IDirect3DVertexBuffer9::Lock had problem, but there was no error code for this. Jeff, any concern to disable ANGLE for users with GMA X4500 users?
Assignee: nobody → cleu
Flags: needinfo?(howareyou322) → needinfo?(jgilbert)
Sounds really broken. Let's block the driver.
Flags: needinfo?(jgilbert)
Just blacklist Intel GFX which may crash ANGLE under Windows XP.

ps. 0x0042 and 0x0046 are the first generation of Intel HD graphics which integrated inside CPU chip, but they share similar architecture with GMA X4500 which lies in northbridge in older platform like G41.
Attachment #8834770 - Flags: review?(howareyou322)
Comment on attachment 8834770 [details] [diff] [review]
Bug1336710 - Add blacklist from using ANGLE for particular Intel GFX under Windows XP.

Review of attachment 8834770 [details] [diff] [review]:
-----------------------------------------------------------------

LGTM, but I have one concern that why this only happened before FF52.
Attachment #8834770 - Flags: review?(howareyou322) → review+
Anthony, are you able to reproduce this?
Flags: needinfo?(anthony.s.hughes)
(In reply to Peter Chang[:pchang] from comment #8)
> Anthony, are you able to reproduce this?

I don't have a computer with theIntel GMA X4500 chipset but according to the inventory wiki there is one in Toronto, dubbed "Silly Box". Milan, can you try to track this system down?
Flags: needinfo?(anthony.s.hughes) → needinfo?(milan)
I will land this after we got this "Silly box" to test.

BTW, bug1153381 landed a similar blacklist for D3D11 ANGLE, I wonder if it has anything to do with this crash.
(In reply to Anthony Hughes (:ashughes) [GFX][QA][Mentor] from comment #9)
> (In reply to Peter Chang[:pchang] from comment #8)
> > Anthony, are you able to reproduce this?
> 
> I don't have a computer with theIntel GMA X4500 chipset but according to the
> inventory wiki there is one in Toronto, dubbed "Silly Box". Milan, can you
> try to track this system down?

I'm in Toronto and saw lots of machine there. But I'm not sure which one it is.
Flags: needinfo?(milan)
Ohoh, I just found the machine. I will give it a try later.
(In reply to Peter Chang[:pchang] from comment #12)
> Ohoh, I just found the machine. I will give it a try later.

Unfortunately, it uses window 7.
(In reply to Peter Chang[:pchang] from comment #13)
> (In reply to Peter Chang[:pchang] from comment #12)
> > Ohoh, I just found the machine. I will give it a try later.
> 
> Unfortunately, it uses window 7.

Oops...

In that case, maybe we can just land this blacklist since WebGL is a quite advanced function and XP+GMAX4500 has been a legacy platform for a long time, I don't think user with this hardware uses WebGL frequently.
(In reply to Michael Leu[:lenzak800](UTC+8) from comment #14)
> (In reply to Peter Chang[:pchang] from comment #13)
> > (In reply to Peter Chang[:pchang] from comment #12)
> > > Ohoh, I just found the machine. I will give it a try later.
> > 
> > Unfortunately, it uses window 7.
> 
> Oops...
> 
> In that case, maybe we can just land this blacklist since WebGL is a quite
> advanced function and XP+GMAX4500 has been a legacy platform for a long
> time, I don't think user with this hardware uses WebGL frequently.

Sound reasonable.
Keywords: checkin-needed
Pushed by cbook@mozilla.com:
https://hg.mozilla.org/integration/mozilla-inbound/rev/aeaa3e4a2351
Add blacklist from using ANGLE for particular Intel GFX under Windows XP. r=pchang
Keywords: checkin-needed
Do we really need this on inbound considering that Windows XP is not supported anymore?
https://hg.mozilla.org/mozilla-central/rev/aeaa3e4a2351
Status: NEW → RESOLVED
Closed: 3 years ago
Resolution: --- → FIXED
Target Milestone: --- → mozilla54
Please request Aurora/Beta approval on this when you get a chance.
Flags: needinfo?(cleu)
Comment on attachment 8834770 [details] [diff] [review]
Bug1336710 - Add blacklist from using ANGLE for particular Intel GFX under Windows XP.

Review of attachment 8834770 [details] [diff] [review]:
-----------------------------------------------------------------

[Feature/regressing bug #]: WindowsXP with GMA X4500 may encounter crash in rx::Blit9::initialize .
    [User impact if declined]: Crashes are bad.
    [Describe test coverage new/current, TBPL]: We have no XP box, but manual test OK under other Windows.
    [Risks and why]: Low risk since it just add a blacklist entry to prevent user with certain hardware configuration using ANGLE.
    [String/UUID change made/needed]: none
Attachment #8834770 - Flags: approval-mozilla-beta?
Attachment #8834770 - Flags: approval-mozilla-aurora?
Flags: needinfo?(cleu)
Comment on attachment 8834770 [details] [diff] [review]
Bug1336710 - Add blacklist from using ANGLE for particular Intel GFX under Windows XP.

blacklist some intel gfx devices on winxp, beta52+

Not sure how much sense this makes in m-c or m-a since winxp support was removed post 52.
Attachment #8834770 - Flags: approval-mozilla-beta? → approval-mozilla-beta+
Comment on attachment 8834770 [details] [diff] [review]
Bug1336710 - Add blacklist from using ANGLE for particular Intel GFX under Windows XP.

Fix a crash. Aurora53+.
Attachment #8834770 - Flags: approval-mozilla-aurora? → approval-mozilla-aurora+
You need to log in before you can comment on or make changes to this bug.