Closed Bug 1379545 Opened 7 years ago Closed 7 years ago

Start up crash with combination of WR.enable, WR.force-angle=false

Categories

(Core :: Graphics: WebRender, defect, P3)

56 Branch
defect

Tracking

()

VERIFIED DUPLICATE of bug 1372880

People

(Reporter: ananuti, Assigned: vliu)

References

(Blocks 1 open bug)

Details

(Keywords: crash)

Crash Data

Attachments

(2 files)

Attached file graphics.txt
Steps: 
set gfx.webrender.enabled=true;
    gfx.webrender.force-angle=false and restart.

Reports:
bp-cf63fa96-3b41-408d-b652-1b3f70170710
bp-6b537357-791d-4fed-a24c-858a70170710

It would be better if we had a smarter way of handle that combination rather than crash.
Attached file crash.log
I tried to reproduce this issue and the crash I saw was attached. The issue I saw was lots of gl symbols could be found and than hit GraphicsCriticalError. 


[GPU 5688] WARNING: GLContext::InitWithPrefix failed!: file c:/mozilla-source/mozilla-central-wr/gfx/gl/GLContext.cpp, line 336
Crash Annotation GraphicsCriticalError: |[G0][GFX1-]: Failed GL context creation for WebRender: 0000000000000000 (t=70.6079) [GFX1-]: Failed GL context creation for WebRender: 0000000000000000

I am not sure if I saw the same with reporter. Ekanan, did you also see error message I saw? Thanks
Flags: needinfo?(ananuti)
> Ekanan, did you also see error message I saw?

I didn't cuz I don't run debug build.

> I am not sure if I saw the same with reporter.

That log and bp-cf63fa96-3b41-408d-b652-1b3f70170710 are alike, yes?
Flags: needinfo?(ananuti)
Assignee: nobody → vliu
A deeper look into it. The crash was hit in [1] since it got invalid api. The root cause for this invalid return was losing necessary gl symbols listed in the attached file in Comment 1. 

To get glContext, it called CreateForWidget() in [2]. I would like to find other similar case to find more clues.

[1]: https://searchfox.org/mozilla-central/rev/cef8389c687203085dc6b52de2fbd0260d7495bf/gfx/layers/ipc/CompositorBridgeParent.cpp#1700

[2]: https://searchfox.org/mozilla-central/rev/31311070d9860b24fe4a7a36976c14b328c16208/gfx/gl/GLContextProviderWGL.cpp#425
I found it should be a driver issue. When I used internal graphic card(Intel), the start up crash happens. But when I changed to NVIDIA graphic card, it won't hit the crash. 

Intel:
Intel(R) HD Graphics
Vendor ID	0x8086
Device ID	0x0102
Driver Version	9.17.10.4459
Driver Date	5-19-2016 

Nvidia:
NVIDIA Corporation -- GeForce GT 440/PCIe/SSE2
WebGL 1 Driver Version	4.5.0 NVIDIA 376.53

NVIDIA Corporation -- GeForce GT 440/PCIe/SSE2
WebGL 2 Driver Version	4.5.0 NVIDIA 376.53
In Gecko, if we forced return OPENGL as compositor backend(see [1]), we also lose necessary gl symbols I mentioned in Comment 3.

[1]: https://searchfox.org/mozilla-central/rev/3a3af33f513071ea829debdfbc628caebcdf6996/gfx/thebes/gfxWindowsPlatform.cpp#1911

But even so, gecko still didn't hit Startup crash because it would fallback to BasicCompositor. With webrender enabled case, to build up wr API, it needs glContext to create WrRenderer(see [2]). At this point of view, I don't see any fallback mechanism with webrender enabled case.


[2]: https://searchfox.org/mozilla-central/rev/3a3af33f513071ea829debdfbc628caebcdf6996/gfx/webrender_bindings/WebRenderAPI.cpp#74
I will lower the priority because the startup crash only happens in some version of Intel driver.
Severity: critical → normal
Priority: -- → P3
Note: 
A. **the crash goes away with patch in bug 1372880.** :)
B. GL symbols still missing.

./firefox -no-remote -profile ../profile
Can't find symbol 'wglCreatePbufferARB'.
Can't find symbol 'wglDestroyPbufferARB'.
Can't find symbol 'wglGetPbufferDCARB'.
Can't find symbol 'wglBindTexImageARB'.
Can't find symbol 'wglReleaseTexImageARB'.
Can't find symbol 'wglChoosePixelFormatARB'.
Can't find symbol 'wglGetPixelFormatAttribivARB'.
Can't find symbol 'wglGetExtensionsStringARB'.
Can't find symbol 'ActiveTexture'.
Can't find symbol 'AttachShader'.
Can't find symbol 'BindAttribLocation'.
Can't find symbol 'BindBuffer'.
Can't find symbol 'BlendColor'.
Can't find symbol 'BlendEquation'.
Can't find symbol 'BlendEquationSeparate'.
Can't find symbol 'BlendFuncSeparate'.
Can't find symbol 'BufferData'.
Can't find symbol 'BufferSubData'.
Can't find symbol 'CompressedTexImage2D'.
Can't find symbol 'CompressedTexSubImage2D'.
Can't find symbol 'DetachShader'.
Can't find symbol 'DisableVertexAttribArray'.
Can't find symbol 'EnableVertexAttribArray'.
Can't find symbol 'GetActiveAttrib'.
Can't find symbol 'GetActiveUniform'.
Can't find symbol 'GetAttachedShaders'.
Can't find symbol 'GetAttribLocation'.
Can't find symbol 'GetBufferParameteriv'.
Can't find symbol 'GetProgramiv'.
Can't find symbol 'GetProgramInfoLog'.
Can't find symbol 'GetUniformfv'.
Can't find symbol 'GetUniformiv'.
Can't find symbol 'GetUniformLocation'.
Can't find symbol 'GetVertexAttribfv'.
Can't find symbol 'GetVertexAttribiv'.
Can't find symbol 'GetVertexAttribPointerv'.
Can't find symbol 'IsBuffer'.
Can't find symbol 'IsProgram'.
Can't find symbol 'IsShader'.
Can't find symbol 'LinkProgram'.
Can't find symbol 'SampleCoverage'.
Can't find symbol 'StencilFuncSeparate'.
Can't find symbol 'StencilMaskSeparate'.
Can't find symbol 'StencilOpSeparate'.
Can't find symbol 'Uniform1f'.
Can't find symbol 'Uniform1fv'.
Can't find symbol 'Uniform1i'.
Can't find symbol 'Uniform1iv'.
Can't find symbol 'Uniform2f'.
Can't find symbol 'Uniform2fv'.
Can't find symbol 'Uniform2i'.
Can't find symbol 'Uniform2iv'.
Can't find symbol 'Uniform3f'.
Can't find symbol 'Uniform3fv'.
Can't find symbol 'Uniform3i'.
Can't find symbol 'Uniform3iv'.
Can't find symbol 'Uniform4f'.
Can't find symbol 'Uniform4fv'.
Can't find symbol 'Uniform4i'.
Can't find symbol 'Uniform4iv'.
Can't find symbol 'UniformMatrix2fv'.
Can't find symbol 'UniformMatrix3fv'.
Can't find symbol 'UniformMatrix4fv'.
Can't find symbol 'UseProgram'.
Can't find symbol 'ValidateProgram'.
Can't find symbol 'VertexAttribPointer'.
Can't find symbol 'VertexAttrib1f'.
Can't find symbol 'VertexAttrib2f'.
Can't find symbol 'VertexAttrib3f'.
Can't find symbol 'VertexAttrib4f'.
Can't find symbol 'VertexAttrib1fv'.
Can't find symbol 'VertexAttrib2fv'.
Can't find symbol 'VertexAttrib3fv'.
Can't find symbol 'VertexAttrib4fv'.
Can't find symbol 'CompileShader'.
Can't find symbol 'GetShaderiv'.
Can't find symbol 'GetShaderInfoLog'.
Can't find symbol 'GetShaderSource'.
Can't find symbol 'ShaderSource'.
Can't find symbol 'VertexAttribPointer'.
Can't find symbol 'GenBuffers'.
Can't find symbol 'CreateProgram'.
Can't find symbol 'CreateShader'.
Can't find symbol 'DeleteBuffers'.
Can't find symbol 'DeleteProgram'.
Can't find symbol 'DeleteShader'.
[GFX1-]: Failed GL context creation for WebRender: 00000000
[Child 10012] WARNING: pipe error: 109: file z:/build/build/src/ipc/chromium/src/chrome/common/ipc_channel_win.cc, line 346
[Child 10012] WARNING: pipe error: 109: file z:/build/build/src/ipc/chromium/src/chrome/common/ipc_channel_win.cc, line 346
WebGL(216E8800)::ForceLoseContext
[Child 6540] WARNING: pipe error: 109: file z:/build/build/src/ipc/chromium/src/chrome/common/ipc_channel_win.cc, line 346
[Child 6540] WARNING: pipe error: 109: file z:/build/build/src/ipc/chromium/src/chrome/common/ipc_channel_win.cc, line 346
[Child 4068] WARNING: pipe error: 109: file z:/build/build/src/ipc/chromium/src/chrome/common/ipc_channel_win.cc, line 346
[Child 4068] WARNING: pipe error: 109: file z:/build/build/src/ipc/chromium/src/chrome/common/ipc_channel_win.cc, line 346

###!!! [Child][RunMessage] Error: Channel closing: too late to send/recv, messages will be lost


###!!! [Child][RunMessage] Error: Channel closing: too late to send/recv, messages will be lost

*** UTM:SVC TimerManager:registerTimer called after profile-before-change notification. Ignoring timer registration for id: telemetry_modules_ping

###!!! [Child][MessageChannel::SendAndWait] Error: Channel error: cannot send/recv
(In reply to Ekanan Ketunuti from comment #7)
> Note: 
> A. **the crash goes away with patch in bug 1372880.** :)
> B. GL symbols still missing.
> 

Since the fix of bug 1372880 won't cause start up crash, I will set this bug as dup of bug 1372880. About GL symbols still missing case, Gecko also have this symptom. It should be driver issue I said in Comment 4. Reopen it if anyone has different opinion or still find crash. Thanks.
Status: NEW → RESOLVED
Closed: 7 years ago
Resolution: --- → DUPLICATE
Thanks for look into this, Vincent.

Verify+
Status: RESOLVED → VERIFIED
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Created:
Updated:
Size: