New issue
Advanced search Search tips

Issue 911240 link

Starred by 1 user

Issue metadata

Status: Fixed
Owner:
Closed: Dec 10
Cc:
Components:
EstimatedDays: ----
NextAction: ----
OS: Chrome
Pri: 2
Type: Bug



Sign in to add a comment

window-service: A single viz::GpuClient should be used for a client

Project Member Reported by sadrul@chromium.org, Dec 3

Issue description

ws::Gpu creates two separate requests for mojom.Gpu implementation: one for setting up the gpu-channel (etc.), and another for gpu-memory allocation. For renderers (in classic mode), both requests are serviced by the same instance of viz::GpuClient [1]. When using the window-service, however, each request ends up creating a new instance of viz::GpuClient (for single-process mash: [2], for multi-process mash: [3]). This means these two interfaces are using different client-ids, for the same client. The fix would be to make sure that a single viz::GpuClient instance is used for the same client.

Tentatively assigning to mohsen@.

[1] All mojom.Gpu requests are attached to the same GpuClient instance: https://cs.chromium.org/chromium/src/content/browser/renderer_host/render_process_host_impl.cc?l=2187

[2] https://cs.chromium.org/chromium/src/content/browser/gpu/gpu_client.cc?g=0&l=24

[3] https://cs.chromium.org/chromium/src/ash/ws/ash_gpu_interface_provider.cc?targetos=chromium-chromeos&g=0&l=55
 
To note, the problem with having 2 client ids for the same client is that it means GL/etc. can't import GpuMemoryBuffers created for that client.
Owner: sky@chromium.org
Status: Started (was: Assigned)
Labels: -Pri-3 Pri-2
Project Member

Comment 4 by bugdroid1@chromium.org, Dec 10

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

commit a2a7d8beece0d148176aba38b3884fd02c823cad
Author: Scott Violet <sky@chromium.org>
Date: Mon Dec 10 19:06:48 2018

gpu: changes ws::Gpu to use the same mojom::GpuPtr for creating memory buffer

Previously ws::Gpu created two requests for mojom::GpuPtr. This resulted in
two distinct viz::GpuClients (on the server) and limited sharing. This uses
a single mojom::GpuPtr.

BUG= 911240 
TEST=none

Change-Id: I9db9852d675c6cdc1b399887d211c233b3e6a1b1
Reviewed-on: https://chromium-review.googlesource.com/c/1368307
Reviewed-by: Mohsen Izadi <mohsen@chromium.org>
Commit-Queue: Scott Violet <sky@chromium.org>
Cr-Commit-Position: refs/heads/master@{#615193}
[modify] https://crrev.com/a2a7d8beece0d148176aba38b3884fd02c823cad/services/ws/public/cpp/gpu/client_gpu_memory_buffer_manager.cc
[modify] https://crrev.com/a2a7d8beece0d148176aba38b3884fd02c823cad/services/ws/public/cpp/gpu/client_gpu_memory_buffer_manager.h
[modify] https://crrev.com/a2a7d8beece0d148176aba38b3884fd02c823cad/services/ws/public/cpp/gpu/gpu.cc
[modify] https://crrev.com/a2a7d8beece0d148176aba38b3884fd02c823cad/services/ws/public/cpp/gpu/gpu.h
[modify] https://crrev.com/a2a7d8beece0d148176aba38b3884fd02c823cad/services/ws/public/cpp/tests/gpu_unittest.cc

Status: Fixed (was: Started)

Sign in to add a comment