crash in mozilla::gl::GLBlitHelper::BlitImageToTexture(mozilla::layers::Image*, mozilla::gfx::IntSizeTyped<T> const&, unsigned int, unsigned int, mozilla::gl::OriginPos)

RESOLVED FIXED in Firefox 42

Status

()

defect
--
critical
RESOLVED FIXED
4 years ago
4 years ago

People

(Reporter: jujjyl, Assigned: jgilbert)

Tracking

({crash})

Trunk
mozilla42
Unspecified
Windows NT
Points:
---

Firefox Tracking Flags

(firefox41 affected, firefox42 fixed)

Details

(Whiteboard: gfx-noted, crash signature)

Attachments

(1 attachment, 2 obsolete attachments)

Reporter

Description

4 years ago
This bug was filed from the Socorro interface and is 
report bp-452fa123-a13b-4e4f-9e0c-b31452150618.
=============================================================

Visit https://www.khronos.org/registry/webgl/sdk/tests/conformance/extensions/oes-texture-half-float-with-video.html?webglVersion=1 to crash.

Tested on a HP OMEN - 15t Quad Touch Laptop with 64-bit Windows 10 Pro Insider Preview Build 10130, quad-core Core i7-4720HQ @ 2.60GHz CPU and 8GB of RAM. The laptop has a hybrid integrated Intel(R) HD Graphics 4600 plus a discrete NVIDIA Quadro K1100M GPU.
Jeff, this is an explicit MOZ_CRASH from the code added in bug 1127336.
Assignee: nobody → jgilbert
Flags: needinfo?(jgilbert)
Whiteboard: gfx-noted
This may end up being proposed for an uplift, so let's see how quickly we can have a fix.
Assignee

Comment 3

4 years ago
Sorry for dropping the ball here.
Let's try this.
Flags: needinfo?(jgilbert)
Attachment #8627395 - Flags: review?(dglastonbury)
Reporter

Comment 4

4 years ago
Tested to crash on the following configurations (before applying the above patch, hopefully that resolves the problem!):

SPARK
-----

Sony Xperia Z3 Compact (Z3C) Model 5803 (The Ignite initiative/foxfooding program Spark phone) (September 2014)
720x1280 pixels display
Chipset: Qualcomm MSM8974AC Snapdragon 801
CPU: Quad-core 2.5 GHz Qualcomm Krait 400 (ARMv7-A compatible)
2GB of RAM
GPU: Qualcomm Adreno 330
Firefox OS 3.0.0.0-prerelease
	- build eng.worker.20150619.224059
	- platform version 41.0a1
	- build identifier 20150619225606
	- git commit 4c06ed88

MACBOOK_AIR_WIN
---------------

The same hardware as MACBOOK_AIR_OSX, but running Windows 7 Home Premium 64-bit in dual-boot mode.
System DirectX version: DirectX 11.0

Intel HD Graphics 3000:
	- igdumd64.dll, igd10umd64.dll:
		- version 9.17.10.3517
		- date 3/20/2014
		- DDI Version 10.1, WDDM 1.1, WHQL approved
Firefox Nightly 41.0a1 (2015-06-29)

MACBOOK_PRO_WIN
---------------

The same hardware as MACBOOK_PRO_OSX, but running Windows 8.1 Pro 64-bit in dual-boot mode.
System DirectX version: DirectX 11.0

NVIDIA GeForce GT 650M
	- nvd3dumx.dll, nvwgf2umx.dll:
		- version 10.18.13.5330
		- 6/17/2015
		- D3D Version 11.0, WDDM 1.3, not WHQL certified
Firefox Nightly 41.0a1 (2015-06-29)

NEXUS-4
-------

LG Nexus 4 (October 2012)
768x1280 pixels display
Chipset: Qualcomm APQ8064 Snapdragon S4 Pro
CPU: Quad-core 1.5 GHz Qualcomm Krait (ARMv7-A compatible)
2GB of RAM
GPU: Qualcomm Adreno 320
	- OpenGL ES 3.0, driver version v95.0
Android 5.0.1
Firefox Nightly 41.0a1 (2015-06-29)

NEXUS-5
-------

LG Nexus 5 (November 2013)
1080x1920 pixels display
Chipset: Qualcomm MSM8974 Snapdragon 800
CPU: Quad-core 2.3 GHz Qualcomm Krait 400 (ARMv7-A compatible)
2GB of RAM
GPU: Qualcomm Adreno 330
	- OpenGL ES 3.0, driver version v104.0
Android 5.1.1
Firefox Nightly 41.0a1 (2015-06-29)

NEXUS-10
--------

Samsung Nexus 10 (October 2012)
2560x1600 pixels display
Chipset: Samsung Exynos 5250
CPU: Dual-core 1.7 GHz ARM Cortex-A15
2GB of RAM
GPU: ARM Mali-T604
	- OpenGL ES 3.0
Android 4.4.4
Firefox Nightly 41.0a1
	- build id 20150629030210

SAMSUNG-GT
----------

Samsung GT-I9500 (April 2013)
1080x1920 pixels display
Chipset: Samsung Exynos 5 Octa 5410
CPU: Quad-core 1.6 GHz Cortex-A15 & quad-core 1.2 GHz Cortex-A7
2GB of RAM
GPU: Imagination PowerVR SGX544MP3
	- OpenGL ES 2.0
Android 5.0.1
 - This is an important device because it is part of the Firefox Content Performance Program, https://wiki.mozilla.org/Firefox/Content_Performance_Program
Firefox Nightly 41.0a1 (2015-06-29)

SURFACE
-------

Microsoft Surface Pro 2
Windows 8.1 64-bit
Intel Core i5-4200U @ 1.60GHz
8 GB of RAM
1920x1080 pixels display
Intel HD Graphics 4400
	- igdumdim64.dll, igd10iumd64.dll:
		- version 10.18.14.4170
		- date 3/31/2015
		- D3D version 11.1, WDDM 1.3, WHQL approved
Firefox Nightly 41.0a1 (2015-06-29)

WINDBOX
-------

Custom built desktop PC
Windows 8.1 Pro
Intel Core 2 Quad Q9400 @ 2.66GHz
4GB of RAM
2560x1440 pixels
System DirectX version: DirectX 11.0

NVIDIA GeForce 9600 GT
	- nvd3dumx.dll, nvwgf2umx.dll:
		- version 9.18.13.4052
		- date 8/19/2014
		- D3D level 10.0, WDDM 1.2, WHQL approved
Firefox Nightly 41.0a1 (2015-06-29)

HASWELL
-------

Custom built desktop PC
Windows 8.1 64-bit
3.0 GHz Intel 8-Core i7-5960X
16GB of RAM
3840x2160 pixels display
System DirectX version: DirectX 11.0

NVIDIA GeForce GTX 980, 12GB of RAM, driver version 347.52
	- nvd3dumx.dll, nvwgf2umx.dll:
		- version 9.18.13.4752
		- date 2/6/3015
		- D3D Version 11.1, WDDM 1.3, WHQL approved
Firefox Nightly 41.0a1 (2015-06-29)

HPOMEN
------

HP OMEN Pro 15 Notebook
Windows 10 Pro Insider Preview Build 10130
Intel Core i7-4720HQ @ 2.60GHz
8GB of RAM
1920x1080 pixels display
System DirectX version: DirectX 12.0

Integrated Graphics: Intel HD Graphics 4600, 4GB
	- igdumdim64.dll, igd10iumd64.dll:
		- version 10.18.15.4235
		- date 6/25/1025
		- D3D11.1, WDDM 2.0, WHQL approved

Discrete Graphics: NVIDIA Quadro K1100M, 6GB
	- nvd3dumx.dll, nvwgf2umx.dll:
		- version 9.18.13.5284
		- date 5/21/2015
		- D3D11.0, WDDM 2.0, WHQL approved 
Firefox Nightly 41.0a1 (2015-06-29)
Reporter

Comment 5

4 years ago
Did not crash on

GIADA
-----

Giada MiniPC
Ubuntu 14.04.2 LTS 64-bit
Intel(R) Core(TM) i5-3317U CPU @ 1.70GHz
4GB of RAM
1920x1080 pixels display
Intel(R) HD Graphics 4000
	- VGA compatible controller: Intel Corporation 3rd Gen Core processor Graphics Controller (rev 09)
	- OpenGL vendor string: Intel Open Source Technology Center
	- /usr/lib/xorg/modules/drivers/intel_drv.so, compiled for 1.15.1, module version = 2.99.910
Firefox Nightly 41.0a1 (2015-06-29)

MACBOOK_AIR_OSX
---------------

MacBook Air (13-inch, Mid 2011)
OS X Lion 10.7.5
1.7GHz Intel Core i5
4GB 1333 MHz DDR3
1440x900 pixels display
Intel HD Graphics 3000 384MB
	- Vendor: Intel (0x8086)
	- Device ID: 0x0116
	- Revision ID: 0x0009
Firefox Nightly 41.0a1 (2015-06-29)

MACBOOK_PRO_OSX
---------------

MacBook Pro (Retina, 15-inch, Early 2013)
OS X Yosemite v10.10.2
2.7GHz Intel Core i7-3740QM
16 GB 1600MHz DDR3
2880x1800 pixels display resolution
Integrated Graphics: Intel HD Graphics 4000 1024MB
	- Vendor: Intel (0x8086)
	- Device ID: 0x0166
	- Revision ID: 0x0009
	- gMux Version: 3.2.19 [3.2.8]
Discrete Graphics: NVIDIA GeForce GT 650M
	- Vendor: NVIDIA (0x10de)
	- Device ID: 0x0fd5
	- Revision ID: 0x00a2
	- ROM Revision: 3688
	- gMux Version: 3.2.19 [3.2.8]
Firefox Nightly 41.0a1 (2015-06-29)
Comment on attachment 8627395 [details] [diff] [review]
0001-Complain-louder-and-safer.patch

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

::: dom/canvas/WebGLContext.cpp
@@ +1869,5 @@
>      if (!srcImage)
>          return false;
>  
> +    if (!srcImage->GetSize().width || !srcImage->GetSize().height) {
> +        GenerateWarning("Specified source image has null size.");

0 size, instead of null size.
Attachment #8627395 - Flags: review?(dglastonbury) → review+
Assignee

Comment 7

4 years ago
Jim
nney

Comment 8

4 years ago
If I turn off ANGLE in Windows and force WebGL I am getting this crash.
It seems that this framebuffer operation (FramebufferTexture2d) fails and makes the framebuffer incomplete, causing the crash:

>ScopedFramebufferForTexture::ScopedFramebufferForTexture(GLContext* aGL,
>                                                         GLuint aTexture,
>                                                         GLenum aTarget)
>    : ScopedGLWrapper<ScopedFramebufferForTexture>(aGL)
>    , mComplete(false)
>    , mFB(0)
>{
>    mGL->fGenFramebuffers(1, &mFB);
>    ScopedBindFramebuffer autoFB(aGL, mFB);
>    mGL->fFramebufferTexture2D(LOCAL_GL_FRAMEBUFFER,
>                               LOCAL_GL_COLOR_ATTACHMENT0,
>                               aTarget,
>                               aTexture,
>                               0);

The operation fails with GL_INVALID_ENUM, but is fine when run through ANGLE.
Jeff, would you happen to know why this happens? I believe this is the source of the crash on other systems.
Flags: needinfo?(jgilbert)

Updated

4 years ago
Flags: needinfo?(jgilbert)

Comment 10

4 years ago
Posted patch oes-hf-angle.patch (obsolete) — Splinter Review
Before, we were giving TexImage2D GL_HALF_FLOAT_OES, which OpenGL does not like, but ANGLE does not mind, so when using non-ANGLE, TexImage2D would fail, leading to the crash a little later.
Attachment #8636311 - Flags: review?(jgilbert)
Assignee

Comment 11

4 years ago
Comment on attachment 8636311 [details] [diff] [review]
oes-hf-angle.patch

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

::: dom/canvas/WebGLContext.cpp
@@ +1830,5 @@
>                                         GLenum format, GLenum type,
>                                         mozilla::dom::Element& elt)
>  {
> +    if (type == LOCAL_GL_HALF_FLOAT_OES && !gl->IsANGLE())
> +        type = LOCAL_GL_HALF_FLOAT;

This is the wrong criteria. We should use HALF_FLOAT_OES if we're using the OES_texture_half_float extension, and just HALF_FLOAT otherwise.
Attachment #8636311 - Flags: review?(jgilbert) → review-

Comment 12

4 years ago
Changed the condition to check if OES_texture_half_float extension is supported. If it is not supported, then we are not on an OES system and calling TexImage2D with LOCAL_GL_HALF_FLOAT_OES will fail, leading to the crash.
Attachment #8636311 - Attachment is obsolete: true
Attachment #8638647 - Flags: review?(jgilbert)
Assignee

Updated

4 years ago
Attachment #8638647 - Flags: review?(jgilbert) → review+

Updated

4 years ago
Keywords: checkin-needed
Attachment #8627395 - Attachment is obsolete: true
https://hg.mozilla.org/mozilla-central/rev/1de396008d5b
Status: NEW → RESOLVED
Last Resolved: 4 years ago
Resolution: --- → FIXED
Target Milestone: --- → mozilla42
You need to log in before you can comment on or make changes to this bug.