New issue
Advanced search Search tips

Issue 597958 link

Starred by 1 user

Issue metadata

Status: WontFix
Owner: ----
Closed: Mar 2016
Cc:
Components:
EstimatedDays: ----
NextAction: ----
OS: Android
Pri: 1
Type: Bug



Sign in to add a comment

Android webview hardware rendering broken

Project Member Reported by boliu@chromium.org, Mar 25 2016

Issue description

Bisected to https://codereview.chromium.org/1745903002

All textures are just being renderered as black. Loads of logs error logs like this:
03-25 16:25:18.095 21574 21899 E chromium: [ERROR:gles2_cmd_decoder.cc(7835)] [GroupMarkerNotSet( crbug.com/242999 )!:54271E90]RENDER WARNING: texture bound to texture unit 0 is not renderable. It maybe non-power-of-2 and have incompatible texture filtering.

looking more..
 

Comment 1 by boliu@chromium.org, Mar 25 2016

Components: Mobile>WebView

Comment 2 by boliu@chromium.org, Mar 25 2016

Chrome on android not unaffected

Comment 3 by sgu...@chromium.org, Mar 25 2016

Labels: ReleaseBlock-Dev

Comment 4 by boliu@chromium.org, Mar 25 2016

more relevant error message:
03-25 16:43:37.398 23319 23349 E chromium: [ERROR:gles2_cmd_decoder.cc(14640)] [GroupMarkerNotSet( crbug.com/242999 )!:54220A98]GL ERROR :GL_INVALID_OPERATION : glCreateAndConsumeTextureCHROMIUM: invalid mailbox name

This would be on the parent compositor, android render thread end

Comment 5 by boliu@chromium.org, Mar 25 2016

Broken only for component build I think o_O

My regular local build with gn:
is_component_build=true
is_clang=true
use_goma=false

I flipped these three, and the resulting apk works.

I'm suspecting that the globals in MailboxManagerSync somehow isn't global anymore o_O

Comment 6 by boliu@chromium.org, Mar 25 2016

Labels: -ReleaseBlock-Dev
Yeah, the static MailboxManagerSync::TextureGroup::mailbox_to_group_ variable has different address on the producer and receiver ends.

How this can actually happen and the build is still successful is beyond me..

Comment 7 by boliu@chromium.org, Mar 25 2016

For webview, two MailboxManagerSyncs are created from two different components:
content/common/gpu/gpu_channel_manager.cc
gpu/command_buffer/service/in_process_command_buffer.cc

So then my theory is that gpu sources (including MailboxManagerSyncs) is now built twoce, into the content shared lib, and whatever shared lib in_process_command_buffer.cc happens to be in.
Labels: OS-Android

Comment 9 by boliu@chromium.org, Mar 25 2016

Yeah, afaict gpu/command_buffer/service and gpu/config was built twice in component build. Once into the content shared lib, and once into the gpu shared lib.

I'm not sure why original CL had to depend on the source targets rather than the targets themselves. Latter seem to work for me fine: https://codereview.chromium.org/1838493002

Comment 10 by boliu@chromium.org, Mar 25 2016

Status: WontFix (was: Untriaged)
Original CL revert by brettw

Sign in to add a comment