Open Bug 1584659 Opened 5 years ago Updated 2 years ago

Android OpenGL assert when running in a mac x86 emulator

Categories

(Core :: Graphics, defect, P3)

defect

Tracking

()

Tracking Status
firefox71 --- fix-optional

People

(Reporter: agi, Unassigned)

Details

(Keywords: regression, Whiteboard: [geckoview:p3])

Attachments

(2 files)

I consistently get an assert crash when running GeckoViewExample on an x86_64 emulator on mac (does not reproduce on linux).

I can reproduce consistently navigating to cnn.com, scrolling a little bit and waiting for a minute or so.

This makes working on a mac pretty much impossible for me :/ I've tried both the mach-vendored emulator and the latest emulator available on Android Studio.

mozilla::gfx::Log<1, mozilla::gfx::CriticalLogger>::WriteLog(std::__ndk1::basic_string<char, std::__ndk1::char_traits<char>, std::__ndk1::allocator<char> > const&) Logging.h:741
mozilla::gfx::Log<1, mozilla::gfx::CriticalLogger>::Flush() Logging.h:279
mozilla::gfx::Log<1, mozilla::gfx::CriticalLogger>::~Log() Logging.h:272
mozilla::gl::GLContext::AfterGLCall_Debug(char const*) const GLContext.cpp:2896
mozilla::gl::GLContext::fGetFloatv(unsigned int, float*) GLContext.h:1202
mozilla::WebGLContext::InitAndValidateGL(mozilla::WebGLContext::FailureReason*) WebGLContextValidate.cpp:481
mozilla::WebGLContext::CreateAndInitGL(bool, std::__ndk1::vector<mozilla::WebGLContext::FailureReason, std::__ndk1::allocator<mozilla::WebGLContext::FailureReason> >*) WebGLContext.cpp:645
mozilla::WebGLContext::SetDimensions(int, int) WebGLContext.cpp:866
mozilla::dom::CanvasRenderingContextHelper::UpdateContext(JSContext*, JS::Handle<JS::Value>, mozilla::ErrorResult&) CanvasRenderingContextHelper.cpp:221
mozilla::dom::CanvasRenderingContextHelper::GetContext(JSContext*, nsTSubstring<char16_t> const&, JS::Handle<JS::Value>, mozilla::ErrorResult&) CanvasRenderingContextHelper.cpp:179
mozilla::dom::HTMLCanvasElement::GetContext(JSContext*, nsTSubstring<char16_t> const&, JS::Handle<JS::Value>, mozilla::ErrorResult&) HTMLCanvasElement.cpp:910
mozilla::dom::HTMLCanvasElement_Binding::getContext(JSContext*, JS::Handle<JSObject*>, mozilla::dom::HTMLCanvasElement*, JSJitMethodCallArgs const&) HTMLCanvasElementBinding.cpp:288
bool mozilla::dom::binding_detail::GenericMethod<mozilla::dom::binding_detail::NormalThisPolicy, mozilla::dom::binding_detail::ThrowExceptions>(JSContext*, unsigned int, JS::Value*) BindingUtils.cpp:3250
CallJSNative(JSContext*, bool (*)(JSContext*, unsigned int, JS::Value*), js::CallReason, JS::CallArgs const&) Interpreter.cpp:458
js::InternalCallOrConstruct(JSContext*, JS::CallArgs const&, js::MaybeConstruct, js::CallReason) Interpreter.cpp:551
js::jit::DoCallFallback(JSContext*, js::jit::BaselineFrame*, js::jit::ICCall_Fallback*, unsigned int, JS::Value*, JS::MutableHandle<JS::Value>) BaselineIC.cpp:3229
<unknown> 0x0000287573f4f3e3

I see this as well, and in fact the emulator crashes for me. (So maybe I don't see exactly this, but something worse?) It's not related to the site, 'cuz I never visit cnn.com for testing. More often, example.com or reddit.com or google.ca.

I see many warnings/errors about missing GL features/flags/capabilities. I don't have a capture of the details right this moment.

Whiteboard: [geckoview]

Agi says this is a Gecko regression likely hitting an emulator bug. There was also a recent regression (bug 1582838) in the ARM emulator that prevents GV or Fennec from even launching.

Whiteboard: [geckoview] → [geckoview:p3]

In the adb logcat before the emulator goes down, I see:

device/generic/goldfish-opengl/system/GLESv2_enc/GL2Encoder.cpp:s_glBufferData:425 GL error 0x500

A screenshot of the emulator crash reporter will be attached. The details will be attached as well.

Interesting: I only see this when running under Browsertime with --video=true, which means when the Gecko Window Recorder is active. That means the issue is probably related to reading back from the OpenGL buffer. I wonder if anything can be done.

Barret, do you have any ideas on how we can narrow this down? It's very frustrating to not be able to test in the emulator!

Flags: needinfo?(brennie)

GL error 0x500 is invalid enum so it's possible the emulator doesn't support glBufferData with whatever we are giving it. However I'm far from an expert in OpenGL.

Flags: needinfo?(brennie)

The priority flag is not set for this bug.
:jbonisteel, could you have a look please?

For more information, please visit auto_nag documentation.

Flags: needinfo?(jbonisteel)
Flags: needinfo?(jbonisteel)
Priority: -- → P3

For the initial bug that Agi reported, I've filed an android bug a while ago:
https://issuetracker.google.com/issues/142738198 - Fetching LOCAL_GL_POINT_SIZE_RANGE in emulator with hardware acceleration fails.
Will update this thread if this gets addressed.

Removing the regressionwindow-wanted keyword since this issue is tracked on the android side.

Any updates on this? I am not able to debug Fenix issues because my GVE crushes on Android 6 due to this bug.

Severity: normal → S3
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Created:
Updated:
Size: