New issue
Advanced search Search tips
Note: Color blocks (like or ) mean that a user may not be available. Tooltip shows the reason.

Issue 905569 link

Starred by 1 user

Issue metadata

Status: Verified
Owner:
Closed: Nov 26
Cc:
Components:
EstimatedDays: ----
NextAction: ----
OS: Chrome
Pri: 1
Type: Bug



Sign in to add a comment

"View keyboard shortcuts" dialog totally black.

Project Member Reported by xiulingw@chromium.org, Nov 15

Issue description

Version 72.0.3606.0(platform 11256.0.0-18.11.12) dev-channel kevin test
Google_Input_Tools_Version:72.0.20181106.220280811

REPRO STEPS:
1.Go settings -> Device -> Keyboard, View keyboard shortcuts.


Actual result:
Black dialog pops up.

 
screencast-settings-2018.11.15-14-53-17.webm
841 KB View Download
Owner: msw@chromium.org
Status: Assigned (was: Untriaged)
Hi Mike, is the bug you were talking about in crbug.com/887649?
Cc: sky@chromium.org fsam...@chromium.org
Components: -UI>Input>Text>IME Internals>Services>Viz Internals>Services>WindowService
Labels: Needs-Feedback Proj-Mash-KSV
This is separate from Issue 887649. I have never seen this and can't repro on linux-chromeos nor eve.
xiulingw@, can you check another version (latest Dev is 72.0.3611.0) and/or another device? Any repro tips?
Scott and Fady, have you seen issues like this recently with any mojo apps or window service embeddings?
I have not seen anything like this. I wonder if this happens when close to the memory limit. Does a resize fix it?

I'll see if I can track down a kevin and reproduce.
Oshima had a Kevin, and I can repro. I will take a look to see if I can find out when this started happening.
On this device when I bring up the keyboard shortcut viewer I see a bunch of errors in the log file related to gles2_cmd_decoder. Specifically:

[shortcut:3818:3818:1119/091501.164805:ERROR:layer_tree_host_impl.cc(3157)] Forcing zero-copy tile initialization as worker context is missing
[shortcut:3818:3818:1119/091501.181873:ERROR:layer_tree_host_impl.cc(3157)] Forcing zero-copy tile initialization as worker context is missing
[3316:3316:1119/091501.310502:ERROR:gles2_cmd_decoder.cc(6334)] [.BrowserCompositor-0x143d5500]GL ERROR :GL_INVALID_OPERATION : glBindTexture: texture bound to more than 1 target.
[3316:3316:1119/091501.310752:ERROR:gles2_cmd_decoder.cc(9470)] [.BrowserCompositor-0x143d5500]GL ERROR :GL_INVALID_VALUE : glTexParameteri: unknown texture
[3316:3316:1119/091501.310900:ERROR:gles2_cmd_decoder.cc(9470)] [.BrowserCompositor-0x143d5500]GL ERROR :GL_INVALID_VALUE : glTexParameteri: unknown texture
[3316:3316:1119/091501.312271:ERROR:gles2_cmd_decoder.cc(10296)] [.BrowserCompositor-0x143d5500]RENDER WARNING: there is no texture bound to the unit 0
[3316:3316:1119/091501.312578:ERROR:gles2_cmd_decoder.cc(6334)] [.BrowserCompositor-0x143d5500]GL ERROR :GL_INVALID_OPERATION : glBindTexture: texture bound to more than 1 target.
[3316:3316:1119/091501.312763:ERROR:gles2_cmd_decoder.cc(9470)] [.BrowserCompositor-0x143d5500]GL ERROR :GL_INVALID_VALUE : glTexParameteri: unknown texture
[3316:3316:1119/091501.312874:ERROR:gles2_cmd_decoder.cc(9470)] [.BrowserCompositor-0x143d5500]GL ERROR :GL_INVALID_VALUE : glTexParameteri: unknown texture
[3316:3316:1119/091501.313026:ERROR:gles2_cmd_decoder.cc(10296)] [.BrowserCompositor-0x143d5500]RENDER WARNING: there is no texture bound to the unit 0

This is on 72.0.3612.0.
I don't see the same behavior on 71.0.3578.54, so this must be recent.
Oshima sees this on another device. The other device is arm and has the same gpu as kevin (mali-t860).
This may be the same as 906171.
Does this still happen if you disable gpu-raster for ui? https://cs.chromium.org/chromium/src/ui/compositor/compositor.cc?l=216
Disabling gpu-rasterization had no impact.
Owner: piman@chromium.org
I regressed this to https://chromium-review.googlesource.com/c/chromium/src/+/1316347 . Passing to Antoine.
I see mention of mash. Is this running under mash? Because there's https://bugs.chromium.org/p/chromium/issues/detail?id=906171
Cc: moh...@chromium.org
This isn't with mash. We moved the keyboard shortcut viewer into it's own process and using the window-service APIs, but chrome isn't using the window service. I IMd with Mohsen earlier to see if this was related and he thought 906171 was specific to multi-process mash.
"We moved the keyboard shortcut viewer into it's own process and using the window-service APIs" that's probably related to the failure if this is specific to the keyboard viewer.
Can someone explain how this works, in particular:
- how this process connects to the GPU process (establishes a GpuChannelHost)
- how this process allocates GPU memory buffers
- how/where command-line flags are passed to this process

Is there a design doc that explain these?
This was considered work on top of the window-service, so no design doc.

Fady and/or Sadrul, please correct me I'm wrong, but I believe the code that connects to the gpu from this process is here: https://chromium.googlesource.com/chromium/src/+/master/services/ws/public/cpp/gpu/gpu.cc . 

keyboard shortcut viewer lives in a utility process and is launched as a service. Here's the interesting parts for setting up command line args:
#0  ChromeContentBrowserClient::AdjustUtilityServiceProcessCommandLine (this=0x9a15e566da0, identity=..., command_line=0x9a1610be330) at ../../chrome/browser/chrome_content_browser_client.cc:2170
#1  0x00007ffff0fe000b in content::UtilityProcessHost::StartProcess (this=0x9a161cd0ca0) at ../../content/browser/utility_process_host.cc:409
#2  0x00007ffff0fe0a35 in content::UtilityProcessHost::Start (this=0x9a161cd0ca0) at ../../content/browser/utility_process_host.cc:244
#3  0x00007ffff0d0d291 in content::(anonymous namespace)::StartServiceInUtilityProcess()

I spoke with Antoine about this. There are at least two issues that need to be sorted out:
1. Make sure we copy flags to the utility processes. For the time being, I will add back the code that blindly copies all flags (ChromeContentBrowserClient::AdjustUtilityServiceProcessCommandLine).
2. WindowPortMus (by way of MusContextFactory) needs to supply a RasterContextProvider when it creates the AsyncLayerTreeFrameSink. I will send out a patch for this early next week.
https://chromium-review.googlesource.com/c/chromium/src/+/1345074 might fix this, but I haven't yet been able to verify on device.
Project Member

Comment 18 by bugdroid1@chromium.org, Nov 21

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/bd677da12372ee7d2ff4cfcb8fce4f185cc7fecc

commit bd677da12372ee7d2ff4cfcb8fce4f185cc7fecc
Author: Antoine Labour <piman@chromium.org>
Date: Wed Nov 21 16:47:00 2018

Use correct BufferUsage for picking texture target in zero-copy

We need to make sure we consistently pick the texture target, because
native GMBs may not be available for all usages.

Bug:  905569 
Change-Id: Ibc325a23494597fefab3e62da71656bae30a42df
Reviewed-on: https://chromium-review.googlesource.com/c/1345074
Reviewed-by: Jonathan Backer <backer@chromium.org>
Commit-Queue: Antoine Labour <piman@chromium.org>
Cr-Commit-Position: refs/heads/master@{#610105}
[modify] https://crrev.com/bd677da12372ee7d2ff4cfcb8fce4f185cc7fecc/cc/raster/zero_copy_raster_buffer_provider.cc

Project Member

Comment 19 by bugdroid1@chromium.org, Nov 21

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/3a4b161705cb3fb4cb55e521bb650dd109db4b01

commit 3a4b161705cb3fb4cb55e521bb650dd109db4b01
Author: Scott Violet <sky@chromium.org>
Date: Wed Nov 21 19:35:08 2018

chromeos: copy command line switches to ash services

Ash related services, such as shortcut-viewer, create various objects that
read command line flags (such as ui::Compositor). This makes such services
copy the command line flags from chrome. Long term we shold move to a whitelist,
but shorterm not copying all flags is causing display problems for some devices.

BUG=906954, 905569 
TEST=none

Change-Id: I408798f0c0a6145b84a926f464a6d76b3a116bb9
Reviewed-on: https://chromium-review.googlesource.com/c/1346690
Reviewed-by: John Abd-El-Malek <jam@chromium.org>
Commit-Queue: Scott Violet <sky@chromium.org>
Cr-Commit-Position: refs/heads/master@{#610164}
[modify] https://crrev.com/3a4b161705cb3fb4cb55e521bb650dd109db4b01/chrome/browser/chrome_content_browser_client.cc

Status: Fixed (was: Assigned)
Antoine, I verified this is fixed on tip of tree aaabc160f11b3396fea1ab6e2a19962550483e3f 610853 .
Project Member

Comment 21 by bugdroid1@chromium.org, Nov 28

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/ea7742fa46f63572a4223223ac88f0a8853c803e

commit ea7742fa46f63572a4223223ac88f0a8853c803e
Author: Scott Violet <sky@chromium.org>
Date: Wed Nov 28 07:29:46 2018

window-service: makes window-service clients create RasterContextProvider

Refactors code for creating RasterContextProvider out of content into
services/ws so that can be used by window-service clients as well as
content.

BUG= 905569 
TEST=covered by tests

Change-Id: Iec41d949ebd9819e597e14e194bd15ba54318527
Reviewed-on: https://chromium-review.googlesource.com/c/1347209
Commit-Queue: Scott Violet <sky@chromium.org>
Reviewed-by: Antoine Labour <piman@chromium.org>
Reviewed-by: Sadrul Chowdhury <sadrul@chromium.org>
Cr-Commit-Position: refs/heads/master@{#611588}
[modify] https://crrev.com/ea7742fa46f63572a4223223ac88f0a8853c803e/cc/raster/staging_buffer_pool.cc
[modify] https://crrev.com/ea7742fa46f63572a4223223ac88f0a8853c803e/chrome/browser/ui/ash/chrome_browser_main_extra_parts_ash.cc
[modify] https://crrev.com/ea7742fa46f63572a4223223ac88f0a8853c803e/content/browser/compositor/gpu_process_transport_factory.cc
[modify] https://crrev.com/ea7742fa46f63572a4223223ac88f0a8853c803e/content/browser/compositor/gpu_process_transport_factory.h
[modify] https://crrev.com/ea7742fa46f63572a4223223ac88f0a8853c803e/services/ws/public/cpp/gpu/BUILD.gn
[add] https://crrev.com/ea7742fa46f63572a4223223ac88f0a8853c803e/services/ws/public/cpp/gpu/shared_worker_context_provider_factory.cc
[add] https://crrev.com/ea7742fa46f63572a4223223ac88f0a8853c803e/services/ws/public/cpp/gpu/shared_worker_context_provider_factory.h
[modify] https://crrev.com/ea7742fa46f63572a4223223ac88f0a8853c803e/ui/aura/mus/DEPS
[modify] https://crrev.com/ea7742fa46f63572a4223223ac88f0a8853c803e/ui/aura/mus/mus_context_factory.cc
[modify] https://crrev.com/ea7742fa46f63572a4223223ac88f0a8853c803e/ui/aura/mus/mus_context_factory.h
[modify] https://crrev.com/ea7742fa46f63572a4223223ac88f0a8853c803e/ui/aura/mus/window_port_mus.cc
[modify] https://crrev.com/ea7742fa46f63572a4223223ac88f0a8853c803e/ui/aura/mus/window_port_mus.h
[modify] https://crrev.com/ea7742fa46f63572a4223223ac88f0a8853c803e/ui/aura/mus/window_tree_client.cc
[modify] https://crrev.com/ea7742fa46f63572a4223223ac88f0a8853c803e/ui/aura/mus/window_tree_client.h
[modify] https://crrev.com/ea7742fa46f63572a4223223ac88f0a8853c803e/ui/aura/window_unittest.cc

Status: Verified (was: Fixed)
Verified fixed on the latest version:
Version 73.0.3635.0(platform 11377.0.0-18.12.09) dev-channel kevin test
Google_Input_Tools_Version:72.0.20181203.223901082.

Sign in to add a comment