New issue
Advanced search Search tips

Issue 610204 link

Starred by 3 users

Issue metadata

Status: Duplicate
Merged: issue 576765
Owner:
Closed: May 2016
Cc:
Components:
EstimatedDays: ----
NextAction: ----
OS: Android
Pri: 2
Type: Bug



Sign in to add a comment

Black Screen instead of displaying webpage

Reported by ishantvi...@gmail.com, May 9 2016

Issue description

Example URL:
Any url(webpage)

Steps to reproduce the problem:
1. Open Browser
2. Load any webpage

What is the expected behavior?
Should Display webpage

What went wrong?
Black screen
Logs:
03-12 19:19:03.367 E/chromium(3741): [ERROR:gles2_cmd_decoder.cc(11333)] [GroupMarkerNotSet( crbug.com/242999 )!:9CA53A5E]GL ERROR :GL_INVALID_OPERATION : glConsumeTextureCHROMIUM: invalid mailbox name
03-12 19:19:03.368 E/chromium(3741): [ERROR:gles2_cmd_decoder.cc(6430)] [GroupMarkerNotSet( crbug.com/242999 )!:9CA53A5E]RENDER WARNING: texture bound to texture unit 0 is not renderable. It maybe non-power-of-2 and have incompatible texture filtering.

Does it occur on multiple sites: Yes

Is it a problem with a plugin? N/A 

Did this work before? N/A 

Does this work in other browsers? N/A 

Chrome version: 47.0.2526.83  Channel: stable
OS Version: 5.1.1
Flash Version:
 
GL_Vendor: Broadcom
GL_Renderer : Videocore IV HW
Results from chrome://gpu :
Graphics Feature Status
Canvas: Software only, hardware acceleration unavailable
Flash: Hardware accelerated
Flash Stage3D: Hardware accelerated
Flash Stage3D Baseline profile: Hardware accelerated
Compositing: Hardware accelerated
Multiple Raster Threads: Disabled
Rasterization: Software only, hardware acceleration unavailable
Video Decode: Hardware accelerated
Video Encode: Software only, hardware acceleration unavailable
WebGL: Hardware accelerated
Driver Bug Workarounds
clear_uniforms_before_first_program_use
scalarize_vec_and_mat_constructor_args
use_virtualized_gl_contexts
Problems Detected
MediaCodec is still too buggy to use for encoding (b/11536167)
Disabled Features: accelerated_video_encode
Blacklist GPU raster/canvas on all except known good GPUs and newer Android releases: 362779, 424970
Disabled Features: gpu_rasterization, accelerated_2d_canvas
Share groups are not working on (older?) Broadcom drivers: 179815
Applied Workarounds: use_virtualized_gl_contexts
Clear uniforms before first program use on all platforms: 124764, 349137
Applied Workarounds: clear_uniforms_before_first_program_use
Always rewrite vec/mat constructors to be consistent: 398694
Applied Workarounds: scalarize_vec_and_mat_constructor_args
Raster is using a single thread.
Disabled Features: multiple_raster_threads
Webview versions 39.x works fine with our gpu,40.x versions of webview display webpage but then force closed.
Log from Webview 40.x:
chromium: [ERROR:gl_fence_egl.cc(50)] Failed to wait for EGLSync. error:EGL_BAD_PARAMETER
chromium: [FATAL:gl_fence_egl.cc(52)] Check failed: g_ignore_egl_sync_failures.
Above 40.x , 42.x went black screen with same logs given in #1
From higher ver. of 42.x and later versions(e.g.47.x) of webview display black screen with log:
E/chromium( 9514): [ERROR:texture_definition.cc(165)] eglCreateImageKHR for cross-thread sharing failed: 0x3000
So this is the full summary of errors

Comment 3 by caseq@chromium.org, May 9 2016

Components: -Blink Internals>GPU
@caseq@chromium.org Who is going to look into it?
Labels: Needs-Feedback
Thanks for the report. Are you seeing this issue on latest chrome 50.0.2661.89?
Can you please provide device model for further triaging
Well black screen issue is not with chrome. It's with Stock android Browser or other apps which uses Android Webview. Yes black screen issue is also happening with latest 50.x Webview. My device Model is Samsung S7582. And gpu related stuffs i have already commented in comment 1 
Project Member

Comment 7 by sheriffbot@chromium.org, May 21 2016

Labels: -Needs-Feedback Needs-Review
Owner: rsgav...@chromium.org
Thank you for providing more feedback. Adding requester "rsgavara@chromium.org" for another review and adding "Needs-Review" label for tracking.

For more details visit https://www.chromium.org/issue-tracking/autotriage - Your friendly Sheriffbot
Components: Mobile>WebView
Labels: -Needs-Review
Owner: ----

Comment 9 by sgu...@chromium.org, May 25 2016

Cc: tobiasjs@chromium.org
Owner: satyavat...@chromium.org
Satya, do we have Samsung S7582 device to check this out?  

Comment 10 by boliu@chromium.org, May 31 2016

Mergedinto: 576765
Status: Duplicate (was: Unconfirmed)
broadcom chip that doesn't have egl fences
If you look onto provided logs above,you can see, egl fences error is only with 40.x webview,with webview after 42.x , we have some different issues, with different webviews.
eglCreateImageKHR seems like broken driver to me
But old versions work fine. And earlier version of 42.x, with ignore fence sync also works. But later versions of 42.x also have black screen issue. Log of 42.x is different from 47.x ,provided above.
@boliu eglCreateImageKHR is not broken completely, 0x3000 is actually egl success. Actually i installed webview version 42.0.2311.133,and this version don't have black screen issue. Though in logs, i have this error:
[ERROR:texture_definition.cc(165)] eglCreateImageKHR for cross-thread sharing failed: 0x3000
So that mean black screen isn't due to this but something else.
Browser crash is still there which is due to missing EGL_KHR_fence_sync.
But if eglCreateImageKHR is not the issue,then why it's showing black screen? Strange thing is that, i have also installed webview version 42.0.2311.68 and 42.0.2311.129, but these version has black screen issue. I mean to say old version and new version than 42.0.2311.133 have issue but not in 42.0.2311.133. Why so? Also latest versions(55.x) have black screen issue. 

Comment 15 by boliu@chromium.org, Sep 19 2016

> @boliu eglCreateImageKHR is not broken completely, 0x3000 is actually egl success.

It failed, yet set eglError success. That's broken on two different ways.
Yes but even with the error, version 42.0.2311.133 display webpage.(No black screen)

Comment 17 by boliu@chromium.org, Sep 19 2016

maybe that particular build did not rely on eglimage
I checked commits between other versions and that. I don't see anything/change related to it. Please help me out, my device is already landed with 7.0(Nougat) ,but due to webview it's incomplete.
Do this patch https://codereview.chromium.org/1697833002 , have anything to do with the issue i am facing?

Comment 20 by boliu@chromium.org, Sep 19 2016

Why don't you talk to broadcom to drivers with these bugs fixed instead?
My device is quite old, they won't update it unfortunately. Even their GPU driver(used on my phone) isn't open source.So in any case, i would have to fix webview.

Comment 22 by boliu@chromium.org, Sep 19 2016

then I think you can consider your device unsupported by android webview, there is no way to revert the dependency on egl image
> maybe that particular build did not rely on eglimage

Version 42.0.2311.129 is broken to me. Version 42.0.2311.133 works fine.
https://chromium.googlesource.com/chromium/src.git/+log/42.0.2311.129..42.0.2311.133
There is no such commit here^ which really makes egl fix?I am confused lil bit after checking the commits. I am still in doubt if it's egl issue. If we ignore this "eglCreateImageKHR failed", for a while, because in 42.0.2311.133, i still have this error in logs but page display fine(no black screen). What about this error? 
E/chromium(3741): [ERROR:gles2_cmd_decoder.cc(11333)] [GroupMarkerNotSet( crbug.com/242999 )!:9CA53A5E]GL ERROR :GL_INVALID_OPERATION : glConsumeTextureCHROMIUM: invalid mailbox name
03-12 19:19:03.368 E/chromium(3741): [ERROR:gles2_cmd_decoder.cc(6430)] [GroupMarkerNotSet( crbug.com/242999 )!:9CA53A5E]RENDER WARNING: texture bound to texture unit 0 is not renderable. It maybe non-power-of-2 and have incompatible texture filtering. 
I have this error from 42.0.2309.2 . Also now a day v42 is not compilable(some error while compiling),if it get complied i could try to build each webview to know which commit exactly breaks it.
Okay, so it's because of GPU thread it seems. On enabling GPU thread, i have black screen issue. On disabling, browser display webpage. GPU thread is connected to various other commits. So don't know which exactly broken it.
So anyway to disable gpu thread on latest webviews? V51,52,53,54 or 55? 

Comment 25 by boliu@chromium.org, Sep 22 2016

gpu thread added the egl image dependency
So there is no way to disable it? Like with some flag like --disable-gpu-thread or something like that? If you have some fix/idea, please help,i will do it locally and build a webview. 
BTW i think, you should remove Duplicate status flag from this report. As it's completely different bug from that.

No, there's no way to disable use of the GPU thread. EGL fence and image support are now hard requirements for WebView. There's no way to get around that.

As far as I can see, the Samsung S7582 didn't officially get Lollipop, so it's definitely not a device that we can spend time supporting. Your only option is to stick to WebView 41.
Okay i will try doing some experiment on my gpu or the source,and btw does m51 works with Android N? I saw some post that java codes it, haven't been ported yet. 
You won't be able to build an N version of m51, 55.0.2848.0 is the first release for which N specific code has been upstreamed.
Oh okay. But android provided webview differs from this? I mean on android source, they used webview version 51x.
https://android.googlesource.com/platform/external/chromium-webview/+/android-7.0.0_r6

Comment 31 by torne@chromium.org, Sep 23 2016

The prebuilt webview is built from the internal code, before the N release was public. Once N was released, we published this code to enable people to compile N-compatible webviews, but only to the current development branch, not for old releases. So, if you're building for an N device, you need to use 55.0.2848.0 or later, as earlier versions lack N-specific API changes.
> No, there's no way to disable use of the GPU thread. EGL fence and image support are now hard requirements for WebView. There's no way to get around that.

As far as I can see, the Samsung S7582 didn't officially get Lollipop, so it's definitely not a device that we can spend time supporting. Your only option is to stick to WebView 41.

If we discard talk of latest versions like m55,m54,m52 or m52. Even old versions like m49,m50 or even more older like m44, m45, can't have option or way to disable gpu thread dependency?
My device didn't get official lollipop,i know. And i even don't expect support (atleast with latest versions), but consider doing help/support to me with older versions at least. My gpu driver can't run on latest versions but with Android M(unofficial), i have a working webview.
So, at last, i request you to consider helping me with old versions of webview.

Comment 33 by boliu@chromium.org, Sep 28 2016

We really mean it when we say it's a *hard* requirement. It's not like you can flip a flag, or hack a bit of code, and go back to old world. The old world doesn't exist anymore.

If you want to get something working kinda working, it's probably easier to disable hardware acceleration for webview entirely. See FORCE_AUXILIARY_BITMAP_RENDERING where we do exactly that for emulators.
Yeah i understand it's not like a switch or hack a bit of code. I actually go through the commits/progress to try reverting things, but that's a lot. Lots of thing have been changed. So it's almost seems impossible for me/or anyone to do. So i clearly accepted that "the new world is not suitable". However i mean the most newest " old" version in which this is possible. 
Thanks anyway, i will try to do some research on disabling hardware acceleration. Hope this would work, and don't have any other side effects.

Comment 35 by boliu@chromium.org, Sep 28 2016

side effects is anything that require gpu won't work, webgl, video, also it's super slow

We enabled gpu thread in m42, so it probably had a switch back then. But that's totally not a good idea due to security bugs.
Now it's confusing for me really. In m42, when gpu thread was enabled, i had black screen, when it was disable, no black screen. After m42, if there is no such thing, then with what this black screen is related? Even the logs don't tell most much. In actual the page opens, i mean if some webpage is opened, it actual opens but instead of displaying page it's just display black. Suppose if i open Google.com, black is displayed but if clicked on text bar or something it is clicked. 
Also by disabling hardware rendering, you mean disabling it from whole android or just from webview? Because disabling from whole android isn't a good idea.

Sign in to add a comment