New issue
Advanced search Search tips

Issue 870116 link

Starred by 7 users

Issue metadata

Status: Assigned
Owner:
Cc:
Components:
EstimatedDays: ----
NextAction: ----
OS: ----
Pri: 1
Type: Task

Blocked on:
issue 900044
issue 887263
issue 887280
issue 887294
issue 887398
issue 891059
issue 905519

Blocking:
issue 829435
issue 897214



Sign in to add a comment

Create SharedImageInterface

Project Member Reported by piman@chromium.org, Aug 2

Issue description

Context: https://docs.google.com/document/d/12qYPeN819JkdNGbPcKBA0rfPXSOIE3aIaQVrAZ4I1lM/edit?ts=5b19cdeb

We want a new interface to create GPU resources for use with the various subsystems that is shareable without tying it to GL semantics. Among others:
1- operate directly on mailboxes (no GL texture id needed)
2- stateless
3- thread-safe
4- direct ownership
5- has enough information about API use of this resource to create the right underlying GPU resource (GL texture, GMB/GLImage, SkImage, Vulkan external resource)


 
Project Member

Comment 1 by bugdroid1@chromium.org, Aug 2

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

commit a36c7238867b1b3892da685335553beb995b511b
Author: Antoine Labour <piman@chromium.org>
Date: Thu Aug 02 04:31:02 2018

gpu: Introduce SharedImageFactory

This is a servce-side class that can create shared images in the form of
mailboxes. This is the service-side implementation of the upcoming
SharedImageInterface, which is a stateless and thread-safe API to create
such shared images from the client side (introduced in a follow-up).

Bug: 870116

Cq-Include-Trybots: luci.chromium.try:android_optional_gpu_tests_rel;luci.chromium.try:linux_optional_gpu_tests_rel;luci.chromium.try:mac_optional_gpu_tests_rel;luci.chromium.try:win_optional_gpu_tests_rel
Change-Id: Id0db4300a57e02ccbd46b5b328b534d8cd3f2dc8
Reviewed-on: https://chromium-review.googlesource.com/1159384
Reviewed-by: Victor Miura <vmiura@chromium.org>
Commit-Queue: Antoine Labour <piman@chromium.org>
Cr-Commit-Position: refs/heads/master@{#580065}
[modify] https://crrev.com/a36c7238867b1b3892da685335553beb995b511b/gpu/BUILD.gn
[modify] https://crrev.com/a36c7238867b1b3892da685335553beb995b511b/gpu/command_buffer/common/BUILD.gn
[add] https://crrev.com/a36c7238867b1b3892da685335553beb995b511b/gpu/command_buffer/common/shared_image_usage.h
[modify] https://crrev.com/a36c7238867b1b3892da685335553beb995b511b/gpu/command_buffer/service/BUILD.gn
[add] https://crrev.com/a36c7238867b1b3892da685335553beb995b511b/gpu/command_buffer/service/shared_image_factory.cc
[add] https://crrev.com/a36c7238867b1b3892da685335553beb995b511b/gpu/command_buffer/service/shared_image_factory.h
[add] https://crrev.com/a36c7238867b1b3892da685335553beb995b511b/gpu/command_buffer/service/shared_image_factory_unittest.cc
[modify] https://crrev.com/a36c7238867b1b3892da685335553beb995b511b/gpu/command_buffer/service/texture_manager.cc
[modify] https://crrev.com/a36c7238867b1b3892da685335553beb995b511b/gpu/command_buffer/service/texture_manager.h

Project Member

Comment 2 by bugdroid1@chromium.org, Aug 10

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

commit c94a51892cf1703c82484862a4a58352b1f95a43
Author: Antoine Labour <piman@chromium.org>
Date: Fri Aug 10 16:43:04 2018

Add SharedImageInterface, Proxy, and Stub.

SharedImageInterface is a minimal interface to allocate and destroy
mailbox resources. It is independent of GL, stateless, thread-safe and
expresses direct ownership of the resources.
SharedImageInterfaceProxy and SharedImageStub implement
SharedImageInterface over IPC.

Note: currently SharedImageInterfaceProxy sends an IPC for creating and
destroying shared images, but this will be merged into the multi-flush
IPC in a follow-up.

Bug: 870116
Cq-Include-Trybots: luci.chromium.try:android_optional_gpu_tests_rel;luci.chromium.try:linux_optional_gpu_tests_rel;luci.chromium.try:mac_optional_gpu_tests_rel;luci.chromium.try:win_optional_gpu_tests_rel
Change-Id: I8f0b86957fab34a1a93f0b2ada8590a048e81724
Reviewed-on: https://chromium-review.googlesource.com/1164168
Commit-Queue: Antoine Labour <piman@chromium.org>
Reviewed-by: Daniel Cheng <dcheng@chromium.org>
Reviewed-by: Victor Miura <vmiura@chromium.org>
Cr-Commit-Position: refs/heads/master@{#582203}
[modify] https://crrev.com/c94a51892cf1703c82484862a4a58352b1f95a43/components/viz/common/BUILD.gn
[modify] https://crrev.com/c94a51892cf1703c82484862a4a58352b1f95a43/gpu/command_buffer/client/BUILD.gn
[add] https://crrev.com/c94a51892cf1703c82484862a4a58352b1f95a43/gpu/command_buffer/client/shared_image_interface.h
[modify] https://crrev.com/c94a51892cf1703c82484862a4a58352b1f95a43/gpu/command_buffer/service/BUILD.gn
[modify] https://crrev.com/c94a51892cf1703c82484862a4a58352b1f95a43/gpu/ipc/client/BUILD.gn
[modify] https://crrev.com/c94a51892cf1703c82484862a4a58352b1f95a43/gpu/ipc/client/command_buffer_proxy_impl.cc
[modify] https://crrev.com/c94a51892cf1703c82484862a4a58352b1f95a43/gpu/ipc/client/gpu_channel_host.cc
[add] https://crrev.com/c94a51892cf1703c82484862a4a58352b1f95a43/gpu/ipc/client/shared_image_interface_proxy.cc
[add] https://crrev.com/c94a51892cf1703c82484862a4a58352b1f95a43/gpu/ipc/client/shared_image_interface_proxy.h
[modify] https://crrev.com/c94a51892cf1703c82484862a4a58352b1f95a43/gpu/ipc/common/BUILD.gn
[modify] https://crrev.com/c94a51892cf1703c82484862a4a58352b1f95a43/gpu/ipc/common/DEPS
[add] https://crrev.com/c94a51892cf1703c82484862a4a58352b1f95a43/gpu/ipc/common/command_buffer_id.h
[modify] https://crrev.com/c94a51892cf1703c82484862a4a58352b1f95a43/gpu/ipc/common/gpu_messages.h
[modify] https://crrev.com/c94a51892cf1703c82484862a4a58352b1f95a43/gpu/ipc/common/gpu_param_traits_macros.h
[modify] https://crrev.com/c94a51892cf1703c82484862a4a58352b1f95a43/gpu/ipc/service/BUILD.gn
[modify] https://crrev.com/c94a51892cf1703c82484862a4a58352b1f95a43/gpu/ipc/service/DEPS
[modify] https://crrev.com/c94a51892cf1703c82484862a4a58352b1f95a43/gpu/ipc/service/gpu_channel.cc
[modify] https://crrev.com/c94a51892cf1703c82484862a4a58352b1f95a43/gpu/ipc/service/gpu_channel.h
[add] https://crrev.com/c94a51892cf1703c82484862a4a58352b1f95a43/gpu/ipc/service/shared_image_stub.cc
[add] https://crrev.com/c94a51892cf1703c82484862a4a58352b1f95a43/gpu/ipc/service/shared_image_stub.h

Project Member

Comment 3 by bugdroid1@chromium.org, Aug 11

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

commit 14ff32c26823fa7aff03d2d74790d04acdfb59ab
Author: Antoine Labour <piman@chromium.org>
Date: Sat Aug 11 01:14:45 2018

Send SharedImage IPC with multi-flush

This generalizes the FlushParams to contain sync tokens + IPC::Message instead
of ad-hoc fields transformed into Messages on the receiving side. This allows
any Message (that doesn't have handles) to be included into the list, and
simplifies the service-side handling.
Existing AsyncFlush and DestroyTransferBuffer messages are now serialized
client-side, and CreateSharedImage/DestroySharedImage are converted to this
mechanism, to avoid extra IPCs per tile.

Bug: 870116
Cq-Include-Trybots: luci.chromium.try:android_optional_gpu_tests_rel;luci.chromium.try:linux_optional_gpu_tests_rel;luci.chromium.try:mac_optional_gpu_tests_rel;luci.chromium.try:win_optional_gpu_tests_rel
Change-Id: Ib11298c03e249f49aec8e710a3db4195aea33e81
Reviewed-on: https://chromium-review.googlesource.com/1168731
Reviewed-by: Daniel Cheng <dcheng@chromium.org>
Reviewed-by: Sunny Sachanandani <sunnyps@chromium.org>
Commit-Queue: Antoine Labour <piman@chromium.org>
Cr-Commit-Position: refs/heads/master@{#582412}
[modify] https://crrev.com/14ff32c26823fa7aff03d2d74790d04acdfb59ab/gpu/command_buffer/common/command_buffer.h
[modify] https://crrev.com/14ff32c26823fa7aff03d2d74790d04acdfb59ab/gpu/ipc/client/command_buffer_proxy_impl.cc
[modify] https://crrev.com/14ff32c26823fa7aff03d2d74790d04acdfb59ab/gpu/ipc/client/command_buffer_proxy_impl_unittest.cc
[modify] https://crrev.com/14ff32c26823fa7aff03d2d74790d04acdfb59ab/gpu/ipc/client/gpu_channel_host.cc
[modify] https://crrev.com/14ff32c26823fa7aff03d2d74790d04acdfb59ab/gpu/ipc/client/gpu_channel_host.h
[modify] https://crrev.com/14ff32c26823fa7aff03d2d74790d04acdfb59ab/gpu/ipc/client/shared_image_interface_proxy.cc
[modify] https://crrev.com/14ff32c26823fa7aff03d2d74790d04acdfb59ab/gpu/ipc/common/BUILD.gn
[delete] https://crrev.com/b092ae622b9ab3856d64d3eca543e4ecb243be77/gpu/ipc/common/flush_params.cc
[delete] https://crrev.com/b092ae622b9ab3856d64d3eca543e4ecb243be77/gpu/ipc/common/flush_params.h
[modify] https://crrev.com/14ff32c26823fa7aff03d2d74790d04acdfb59ab/gpu/ipc/common/gpu_messages.h
[modify] https://crrev.com/14ff32c26823fa7aff03d2d74790d04acdfb59ab/gpu/ipc/common/gpu_param_traits_macros.h
[modify] https://crrev.com/14ff32c26823fa7aff03d2d74790d04acdfb59ab/gpu/ipc/service/gpu_channel.cc
[modify] https://crrev.com/14ff32c26823fa7aff03d2d74790d04acdfb59ab/gpu/ipc/service/shared_image_stub.cc
[modify] https://crrev.com/14ff32c26823fa7aff03d2d74790d04acdfb59ab/gpu/ipc/service/shared_image_stub.h

Project Member

Comment 4 by bugdroid1@chromium.org, Aug 11

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

commit d9705adfc3b46aadcfca514de61b2f25429e335a
Author: Antoine Labour <piman@chromium.org>
Date: Sat Aug 11 08:27:21 2018

In-process SharedImageInterface

This adds a InProcessSharedImageInterface tear-off class linked to
InProcessCommandBuffer, that implements SharedImageInterface using the
same GLContext/GLSurface and TaskExecutor as the InProcessCommandBuffer.

Bug: 870116
Cq-Include-Trybots: luci.chromium.try:android_optional_gpu_tests_rel;luci.chromium.try:linux_optional_gpu_tests_rel;luci.chromium.try:mac_optional_gpu_tests_rel;luci.chromium.try:win_optional_gpu_tests_rel
Change-Id: I916a87a3ae6c1360e1e10766654b96455eb2e1ca
Reviewed-on: https://chromium-review.googlesource.com/1171782
Commit-Queue: Antoine Labour <piman@chromium.org>
Reviewed-by: Sunny Sachanandani <sunnyps@chromium.org>
Cr-Commit-Position: refs/heads/master@{#582441}
[add] https://crrev.com/d9705adfc3b46aadcfca514de61b2f25429e335a/gpu/ipc/DEPS
[modify] https://crrev.com/d9705adfc3b46aadcfca514de61b2f25429e335a/gpu/ipc/gl_in_process_context.cc
[modify] https://crrev.com/d9705adfc3b46aadcfca514de61b2f25429e335a/gpu/ipc/gl_in_process_context.h
[modify] https://crrev.com/d9705adfc3b46aadcfca514de61b2f25429e335a/gpu/ipc/in_process_command_buffer.cc
[modify] https://crrev.com/d9705adfc3b46aadcfca514de61b2f25429e335a/gpu/ipc/in_process_command_buffer.h
[modify] https://crrev.com/d9705adfc3b46aadcfca514de61b2f25429e335a/gpu/ipc/raster_in_process_context.cc
[modify] https://crrev.com/d9705adfc3b46aadcfca514de61b2f25429e335a/gpu/ipc/raster_in_process_context.h

Project Member

Comment 5 by bugdroid1@chromium.org, Sep 19

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

commit 1e9e40b75dd12a5d0d7a97f6ae5090d721d5e1f2
Author: Antoine Labour <piman@chromium.org>
Date: Wed Sep 19 15:59:06 2018

Use SharedImageInterface for gpu and OOP raster

This wires up SharedImageInterface all the way to cc, and uses it for OOP and GPU raster.
This also adds memory accounting in SharedImageFactory/SharedImageStub.

Bug: 870116
Cq-Include-Trybots: luci.chromium.try:android_optional_gpu_tests_rel;luci.chromium.try:linux_optional_gpu_tests_rel;luci.chromium.try:mac_optional_gpu_tests_rel;luci.chromium.try:win_optional_gpu_tests_rel;master.tryserver.blink:linux_trusty_blink_rel
Change-Id: I37eba221bc2aeb4d03b7d4d93bde772482dc681b
Reviewed-on: https://chromium-review.googlesource.com/1178977
Commit-Queue: Antoine Labour <piman@chromium.org>
Reviewed-by: Bo <boliu@chromium.org>
Reviewed-by: Sadrul Chowdhury <sadrul@chromium.org>
Reviewed-by: Eric Karl <ericrk@chromium.org>
Cr-Commit-Position: refs/heads/master@{#592419}
[modify] https://crrev.com/1e9e40b75dd12a5d0d7a97f6ae5090d721d5e1f2/android_webview/browser/aw_render_thread_context_provider.cc
[modify] https://crrev.com/1e9e40b75dd12a5d0d7a97f6ae5090d721d5e1f2/android_webview/browser/aw_render_thread_context_provider.h
[modify] https://crrev.com/1e9e40b75dd12a5d0d7a97f6ae5090d721d5e1f2/cc/DEPS
[modify] https://crrev.com/1e9e40b75dd12a5d0d7a97f6ae5090d721d5e1f2/cc/raster/gpu_raster_buffer_provider.cc
[modify] https://crrev.com/1e9e40b75dd12a5d0d7a97f6ae5090d721d5e1f2/cc/raster/gpu_raster_buffer_provider.h
[modify] https://crrev.com/1e9e40b75dd12a5d0d7a97f6ae5090d721d5e1f2/cc/raster/raster_buffer_provider_perftest.cc
[modify] https://crrev.com/1e9e40b75dd12a5d0d7a97f6ae5090d721d5e1f2/cc/test/test_in_process_context_provider.cc
[modify] https://crrev.com/1e9e40b75dd12a5d0d7a97f6ae5090d721d5e1f2/cc/test/test_in_process_context_provider.h
[modify] https://crrev.com/1e9e40b75dd12a5d0d7a97f6ae5090d721d5e1f2/components/viz/common/gl_scaler_unittest.cc
[modify] https://crrev.com/1e9e40b75dd12a5d0d7a97f6ae5090d721d5e1f2/components/viz/common/gpu/context_provider.h
[modify] https://crrev.com/1e9e40b75dd12a5d0d7a97f6ae5090d721d5e1f2/components/viz/common/gpu/raster_context_provider.h
[modify] https://crrev.com/1e9e40b75dd12a5d0d7a97f6ae5090d721d5e1f2/components/viz/service/display_embedder/viz_process_context_provider.cc
[modify] https://crrev.com/1e9e40b75dd12a5d0d7a97f6ae5090d721d5e1f2/components/viz/service/display_embedder/viz_process_context_provider.h
[modify] https://crrev.com/1e9e40b75dd12a5d0d7a97f6ae5090d721d5e1f2/components/viz/test/DEPS
[modify] https://crrev.com/1e9e40b75dd12a5d0d7a97f6ae5090d721d5e1f2/components/viz/test/test_context_provider.cc
[modify] https://crrev.com/1e9e40b75dd12a5d0d7a97f6ae5090d721d5e1f2/components/viz/test/test_context_provider.h
[modify] https://crrev.com/1e9e40b75dd12a5d0d7a97f6ae5090d721d5e1f2/gpu/command_buffer/common/BUILD.gn
[add] https://crrev.com/1e9e40b75dd12a5d0d7a97f6ae5090d721d5e1f2/gpu/command_buffer/common/shared_image_trace_utils.cc
[add] https://crrev.com/1e9e40b75dd12a5d0d7a97f6ae5090d721d5e1f2/gpu/command_buffer/common/shared_image_trace_utils.h
[modify] https://crrev.com/1e9e40b75dd12a5d0d7a97f6ae5090d721d5e1f2/gpu/command_buffer/service/shared_image_factory.cc
[modify] https://crrev.com/1e9e40b75dd12a5d0d7a97f6ae5090d721d5e1f2/gpu/command_buffer/service/shared_image_factory.h
[modify] https://crrev.com/1e9e40b75dd12a5d0d7a97f6ae5090d721d5e1f2/gpu/command_buffer/service/texture_manager.cc
[modify] https://crrev.com/1e9e40b75dd12a5d0d7a97f6ae5090d721d5e1f2/gpu/ipc/client/gpu_channel_host.cc
[modify] https://crrev.com/1e9e40b75dd12a5d0d7a97f6ae5090d721d5e1f2/gpu/ipc/client/gpu_channel_host.h
[modify] https://crrev.com/1e9e40b75dd12a5d0d7a97f6ae5090d721d5e1f2/gpu/ipc/gl_in_process_context.cc
[modify] https://crrev.com/1e9e40b75dd12a5d0d7a97f6ae5090d721d5e1f2/gpu/ipc/gl_in_process_context.h
[modify] https://crrev.com/1e9e40b75dd12a5d0d7a97f6ae5090d721d5e1f2/gpu/ipc/service/shared_image_stub.cc
[modify] https://crrev.com/1e9e40b75dd12a5d0d7a97f6ae5090d721d5e1f2/gpu/ipc/service/shared_image_stub.h
[modify] https://crrev.com/1e9e40b75dd12a5d0d7a97f6ae5090d721d5e1f2/services/ws/public/cpp/gpu/context_provider_command_buffer.cc
[modify] https://crrev.com/1e9e40b75dd12a5d0d7a97f6ae5090d721d5e1f2/services/ws/public/cpp/gpu/context_provider_command_buffer.h
[modify] https://crrev.com/1e9e40b75dd12a5d0d7a97f6ae5090d721d5e1f2/ui/compositor/test/in_process_context_provider.cc
[modify] https://crrev.com/1e9e40b75dd12a5d0d7a97f6ae5090d721d5e1f2/ui/compositor/test/in_process_context_provider.h

Blockedon: 887263
Blockedon: 887398
Project Member

Comment 8 by bugdroid1@chromium.org, Sep 20

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

commit 4d16eea563d0243af6ec119dcf0f611452556273
Author: Antoine Labour <piman@chromium.org>
Date: Thu Sep 20 17:26:43 2018

Revert "Use SharedImageInterface for gpu and OOP raster"

This reverts commit 1e9e40b75dd12a5d0d7a97f6ae5090d721d5e1f2.

Reason for revert: crbug.com/887263 and crbug.com/887398

Original change's description:
> Use SharedImageInterface for gpu and OOP raster
> 
> This wires up SharedImageInterface all the way to cc, and uses it for OOP and GPU raster.
> This also adds memory accounting in SharedImageFactory/SharedImageStub.
> 
> Bug: 870116
> Cq-Include-Trybots: luci.chromium.try:android_optional_gpu_tests_rel;luci.chromium.try:linux_optional_gpu_tests_rel;luci.chromium.try:mac_optional_gpu_tests_rel;luci.chromium.try:win_optional_gpu_tests_rel;master.tryserver.blink:linux_trusty_blink_rel
> Change-Id: I37eba221bc2aeb4d03b7d4d93bde772482dc681b
> Reviewed-on: https://chromium-review.googlesource.com/1178977
> Commit-Queue: Antoine Labour <piman@chromium.org>
> Reviewed-by: Bo <boliu@chromium.org>
> Reviewed-by: Sadrul Chowdhury <sadrul@chromium.org>
> Reviewed-by: Eric Karl <ericrk@chromium.org>
> Cr-Commit-Position: refs/heads/master@{#592419}

TBR=sadrul@chromium.org,boliu@chromium.org,piman@chromium.org,ericrk@chromium.org

# Not skipping CQ checks because original CL landed > 1 day ago.

Bug: 870116
Change-Id: Ie4fbd60787c6fc3cefbc695595bc80234be6cfc1
Cq-Include-Trybots: luci.chromium.try:android_optional_gpu_tests_rel;luci.chromium.try:linux_optional_gpu_tests_rel;luci.chromium.try:mac_optional_gpu_tests_rel;luci.chromium.try:win_optional_gpu_tests_rel;master.tryserver.blink:linux_trusty_blink_rel
Reviewed-on: https://chromium-review.googlesource.com/1236457
Reviewed-by: Antoine Labour <piman@chromium.org>
Commit-Queue: Antoine Labour <piman@chromium.org>
Cr-Commit-Position: refs/heads/master@{#592850}
[modify] https://crrev.com/4d16eea563d0243af6ec119dcf0f611452556273/android_webview/browser/aw_render_thread_context_provider.cc
[modify] https://crrev.com/4d16eea563d0243af6ec119dcf0f611452556273/android_webview/browser/aw_render_thread_context_provider.h
[modify] https://crrev.com/4d16eea563d0243af6ec119dcf0f611452556273/cc/DEPS
[modify] https://crrev.com/4d16eea563d0243af6ec119dcf0f611452556273/cc/raster/gpu_raster_buffer_provider.cc
[modify] https://crrev.com/4d16eea563d0243af6ec119dcf0f611452556273/cc/raster/gpu_raster_buffer_provider.h
[modify] https://crrev.com/4d16eea563d0243af6ec119dcf0f611452556273/cc/raster/raster_buffer_provider_perftest.cc
[modify] https://crrev.com/4d16eea563d0243af6ec119dcf0f611452556273/cc/test/test_in_process_context_provider.cc
[modify] https://crrev.com/4d16eea563d0243af6ec119dcf0f611452556273/cc/test/test_in_process_context_provider.h
[modify] https://crrev.com/4d16eea563d0243af6ec119dcf0f611452556273/components/viz/common/gl_scaler_unittest.cc
[modify] https://crrev.com/4d16eea563d0243af6ec119dcf0f611452556273/components/viz/common/gpu/context_provider.h
[modify] https://crrev.com/4d16eea563d0243af6ec119dcf0f611452556273/components/viz/common/gpu/raster_context_provider.h
[modify] https://crrev.com/4d16eea563d0243af6ec119dcf0f611452556273/components/viz/service/display_embedder/viz_process_context_provider.cc
[modify] https://crrev.com/4d16eea563d0243af6ec119dcf0f611452556273/components/viz/service/display_embedder/viz_process_context_provider.h
[modify] https://crrev.com/4d16eea563d0243af6ec119dcf0f611452556273/components/viz/test/DEPS
[modify] https://crrev.com/4d16eea563d0243af6ec119dcf0f611452556273/components/viz/test/test_context_provider.cc
[modify] https://crrev.com/4d16eea563d0243af6ec119dcf0f611452556273/components/viz/test/test_context_provider.h
[modify] https://crrev.com/4d16eea563d0243af6ec119dcf0f611452556273/gpu/command_buffer/common/BUILD.gn
[delete] https://crrev.com/6df8fe9ece39c7e064fd2b040d7b7d3ee7fd21d3/gpu/command_buffer/common/shared_image_trace_utils.cc
[delete] https://crrev.com/6df8fe9ece39c7e064fd2b040d7b7d3ee7fd21d3/gpu/command_buffer/common/shared_image_trace_utils.h
[modify] https://crrev.com/4d16eea563d0243af6ec119dcf0f611452556273/gpu/command_buffer/service/shared_image_factory.cc
[modify] https://crrev.com/4d16eea563d0243af6ec119dcf0f611452556273/gpu/command_buffer/service/shared_image_factory.h
[modify] https://crrev.com/4d16eea563d0243af6ec119dcf0f611452556273/gpu/command_buffer/service/texture_manager.cc
[modify] https://crrev.com/4d16eea563d0243af6ec119dcf0f611452556273/gpu/ipc/client/gpu_channel_host.cc
[modify] https://crrev.com/4d16eea563d0243af6ec119dcf0f611452556273/gpu/ipc/client/gpu_channel_host.h
[modify] https://crrev.com/4d16eea563d0243af6ec119dcf0f611452556273/gpu/ipc/gl_in_process_context.cc
[modify] https://crrev.com/4d16eea563d0243af6ec119dcf0f611452556273/gpu/ipc/gl_in_process_context.h
[modify] https://crrev.com/4d16eea563d0243af6ec119dcf0f611452556273/gpu/ipc/service/shared_image_stub.cc
[modify] https://crrev.com/4d16eea563d0243af6ec119dcf0f611452556273/gpu/ipc/service/shared_image_stub.h
[modify] https://crrev.com/4d16eea563d0243af6ec119dcf0f611452556273/services/ws/public/cpp/gpu/context_provider_command_buffer.cc
[modify] https://crrev.com/4d16eea563d0243af6ec119dcf0f611452556273/services/ws/public/cpp/gpu/context_provider_command_buffer.h
[modify] https://crrev.com/4d16eea563d0243af6ec119dcf0f611452556273/ui/compositor/test/in_process_context_provider.cc
[modify] https://crrev.com/4d16eea563d0243af6ec119dcf0f611452556273/ui/compositor/test/in_process_context_provider.h

Blockedon: 887294
Blockedon: 887280
Project Member

Comment 11 by bugdroid1@chromium.org, Sep 27

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

commit 6283c799ca8e416c3ee6fb7d195191601bb5663b
Author: Antoine Labour <piman@chromium.org>
Date: Thu Sep 27 16:59:28 2018

Reland "Use SharedImageInterface for gpu and OOP raster"

This wires up SharedImageInterface all the way to cc, and uses it for OOP and GPU raster.
This also adds memory accounting in SharedImageFactory/SharedImageStub.

TBR=boliu@chromium.org,sadrul@chromium.org

Bug: 870116
Cq-Include-Trybots: luci.chromium.try:android_optional_gpu_tests_rel;luci.chromium.try:linux_optional_gpu_tests_rel;luci.chromium.try:mac_optional_gpu_tests_rel;luci.chromium.try:win_optional_gpu_tests_rel;master.tryserver.blink:linux_trusty_blink_rel
Change-Id: I7cb3837f2082c5a4d03a9bc71e91dc265cbd0e82
Reviewed-on: https://chromium-review.googlesource.com/1242080
Commit-Queue: Antoine Labour <piman@chromium.org>
Reviewed-by: Jonathan Backer <backer@chromium.org>
Cr-Commit-Position: refs/heads/master@{#594755}
[modify] https://crrev.com/6283c799ca8e416c3ee6fb7d195191601bb5663b/android_webview/browser/aw_render_thread_context_provider.cc
[modify] https://crrev.com/6283c799ca8e416c3ee6fb7d195191601bb5663b/android_webview/browser/aw_render_thread_context_provider.h
[modify] https://crrev.com/6283c799ca8e416c3ee6fb7d195191601bb5663b/cc/DEPS
[modify] https://crrev.com/6283c799ca8e416c3ee6fb7d195191601bb5663b/cc/raster/gpu_raster_buffer_provider.cc
[modify] https://crrev.com/6283c799ca8e416c3ee6fb7d195191601bb5663b/cc/raster/gpu_raster_buffer_provider.h
[modify] https://crrev.com/6283c799ca8e416c3ee6fb7d195191601bb5663b/cc/raster/raster_buffer_provider_perftest.cc
[modify] https://crrev.com/6283c799ca8e416c3ee6fb7d195191601bb5663b/cc/resources/resource_pool.cc
[modify] https://crrev.com/6283c799ca8e416c3ee6fb7d195191601bb5663b/cc/test/test_in_process_context_provider.cc
[modify] https://crrev.com/6283c799ca8e416c3ee6fb7d195191601bb5663b/cc/test/test_in_process_context_provider.h
[modify] https://crrev.com/6283c799ca8e416c3ee6fb7d195191601bb5663b/components/viz/common/gl_scaler_unittest.cc
[modify] https://crrev.com/6283c799ca8e416c3ee6fb7d195191601bb5663b/components/viz/common/gpu/context_cache_controller.cc
[modify] https://crrev.com/6283c799ca8e416c3ee6fb7d195191601bb5663b/components/viz/common/gpu/context_provider.h
[modify] https://crrev.com/6283c799ca8e416c3ee6fb7d195191601bb5663b/components/viz/common/gpu/raster_context_provider.h
[modify] https://crrev.com/6283c799ca8e416c3ee6fb7d195191601bb5663b/components/viz/service/display_embedder/viz_process_context_provider.cc
[modify] https://crrev.com/6283c799ca8e416c3ee6fb7d195191601bb5663b/components/viz/service/display_embedder/viz_process_context_provider.h
[modify] https://crrev.com/6283c799ca8e416c3ee6fb7d195191601bb5663b/components/viz/test/DEPS
[modify] https://crrev.com/6283c799ca8e416c3ee6fb7d195191601bb5663b/components/viz/test/test_context_provider.cc
[modify] https://crrev.com/6283c799ca8e416c3ee6fb7d195191601bb5663b/components/viz/test/test_context_provider.h
[modify] https://crrev.com/6283c799ca8e416c3ee6fb7d195191601bb5663b/gpu/command_buffer/common/BUILD.gn
[add] https://crrev.com/6283c799ca8e416c3ee6fb7d195191601bb5663b/gpu/command_buffer/common/shared_image_trace_utils.cc
[add] https://crrev.com/6283c799ca8e416c3ee6fb7d195191601bb5663b/gpu/command_buffer/common/shared_image_trace_utils.h
[modify] https://crrev.com/6283c799ca8e416c3ee6fb7d195191601bb5663b/gpu/command_buffer/service/shared_image_factory.cc
[modify] https://crrev.com/6283c799ca8e416c3ee6fb7d195191601bb5663b/gpu/command_buffer/service/shared_image_factory.h
[modify] https://crrev.com/6283c799ca8e416c3ee6fb7d195191601bb5663b/gpu/command_buffer/service/texture_manager.cc
[modify] https://crrev.com/6283c799ca8e416c3ee6fb7d195191601bb5663b/gpu/ipc/client/gpu_channel_host.cc
[modify] https://crrev.com/6283c799ca8e416c3ee6fb7d195191601bb5663b/gpu/ipc/client/gpu_channel_host.h
[modify] https://crrev.com/6283c799ca8e416c3ee6fb7d195191601bb5663b/gpu/ipc/gl_in_process_context.cc
[modify] https://crrev.com/6283c799ca8e416c3ee6fb7d195191601bb5663b/gpu/ipc/gl_in_process_context.h
[modify] https://crrev.com/6283c799ca8e416c3ee6fb7d195191601bb5663b/gpu/ipc/service/shared_image_stub.cc
[modify] https://crrev.com/6283c799ca8e416c3ee6fb7d195191601bb5663b/gpu/ipc/service/shared_image_stub.h
[modify] https://crrev.com/6283c799ca8e416c3ee6fb7d195191601bb5663b/services/ws/public/cpp/gpu/context_provider_command_buffer.cc
[modify] https://crrev.com/6283c799ca8e416c3ee6fb7d195191601bb5663b/services/ws/public/cpp/gpu/context_provider_command_buffer.h
[modify] https://crrev.com/6283c799ca8e416c3ee6fb7d195191601bb5663b/ui/compositor/test/in_process_context_provider.cc
[modify] https://crrev.com/6283c799ca8e416c3ee6fb7d195191601bb5663b/ui/compositor/test/in_process_context_provider.h

Blocking: 829435
Blockedon: 891059
Project Member

Comment 14 by bugdroid1@chromium.org, Oct 19

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

commit ebdc72fd7b26780550c311455accbfc45f043985
Author: Antoine Labour <piman@chromium.org>
Date: Fri Oct 19 17:01:47 2018

Simplify internalformat handling for GpuMemoryBuffer

For any given BufferFormat, there is a single internal format that it is
compatible with (note, the converse isn't true), as defined by
gpu::IsImageFormatCompatibleWithGpuMemoryBufferFormat.

Rather than leaving guess-work to the client, instead expose it via a
gpu::InternalFormatForGpuMemoryBufferFormat. This in turns simplifies
quite a few things, and in particular we don't need to send redundant
information in IPC (BufferFormat vs internalformat) that we then need to
validate.

Bug: 870116
Cq-Include-Trybots: luci.chromium.try:android_optional_gpu_tests_rel;luci.chromium.try:linux_layout_tests_slimming_paint_v2;luci.chromium.try:linux_optional_gpu_tests_rel;luci.chromium.try:mac_optional_gpu_tests_rel;luci.chromium.try:win_optional_gpu_tests_rel;master.tryserver.blink:linux_trusty_blink_rel
Change-Id: I34a12c71c252ba2a5199f47ce983a02307df351b
Reviewed-on: https://chromium-review.googlesource.com/c/1290192
Reviewed-by: Zhenyao Mo <zmo@chromium.org>
Reviewed-by: Tom Sepez <tsepez@chromium.org>
Reviewed-by: Fernando Serboncini <fserb@chromium.org>
Commit-Queue: Antoine Labour <piman@chromium.org>
Cr-Commit-Position: refs/heads/master@{#601193}
[modify] https://crrev.com/ebdc72fd7b26780550c311455accbfc45f043985/components/viz/service/display_embedder/buffer_queue.cc
[modify] https://crrev.com/ebdc72fd7b26780550c311455accbfc45f043985/gpu/command_buffer/client/client_test_helper.h
[modify] https://crrev.com/ebdc72fd7b26780550c311455accbfc45f043985/gpu/command_buffer/client/gles2_implementation.cc
[modify] https://crrev.com/ebdc72fd7b26780550c311455accbfc45f043985/gpu/command_buffer/client/gpu_control.h
[modify] https://crrev.com/ebdc72fd7b26780550c311455accbfc45f043985/gpu/command_buffer/client/raster_implementation.cc
[modify] https://crrev.com/ebdc72fd7b26780550c311455accbfc45f043985/gpu/command_buffer/common/gpu_memory_buffer_support.cc
[modify] https://crrev.com/ebdc72fd7b26780550c311455accbfc45f043985/gpu/command_buffer/common/gpu_memory_buffer_support.h
[modify] https://crrev.com/ebdc72fd7b26780550c311455accbfc45f043985/gpu/command_buffer/tests/decoder_perftest.cc
[modify] https://crrev.com/ebdc72fd7b26780550c311455accbfc45f043985/gpu/command_buffer/tests/gl_manager.cc
[modify] https://crrev.com/ebdc72fd7b26780550c311455accbfc45f043985/gpu/command_buffer/tests/gl_manager.h
[modify] https://crrev.com/ebdc72fd7b26780550c311455accbfc45f043985/gpu/gles2_conform_support/egl/context.cc
[modify] https://crrev.com/ebdc72fd7b26780550c311455accbfc45f043985/gpu/gles2_conform_support/egl/context.h
[modify] https://crrev.com/ebdc72fd7b26780550c311455accbfc45f043985/gpu/ipc/client/command_buffer_proxy_impl.cc
[modify] https://crrev.com/ebdc72fd7b26780550c311455accbfc45f043985/gpu/ipc/client/command_buffer_proxy_impl.h
[modify] https://crrev.com/ebdc72fd7b26780550c311455accbfc45f043985/gpu/ipc/common/gpu_messages.h
[modify] https://crrev.com/ebdc72fd7b26780550c311455accbfc45f043985/gpu/ipc/in_process_command_buffer.cc
[modify] https://crrev.com/ebdc72fd7b26780550c311455accbfc45f043985/gpu/ipc/in_process_command_buffer.h
[modify] https://crrev.com/ebdc72fd7b26780550c311455accbfc45f043985/gpu/ipc/service/command_buffer_stub.cc
[modify] https://crrev.com/ebdc72fd7b26780550c311455accbfc45f043985/gpu/ipc/service/gpu_channel.cc
[modify] https://crrev.com/ebdc72fd7b26780550c311455accbfc45f043985/gpu/ipc/service/gpu_channel.h
[modify] https://crrev.com/ebdc72fd7b26780550c311455accbfc45f043985/ppapi/proxy/ppapi_command_buffer_proxy.cc
[modify] https://crrev.com/ebdc72fd7b26780550c311455accbfc45f043985/ppapi/proxy/ppapi_command_buffer_proxy.h
[modify] https://crrev.com/ebdc72fd7b26780550c311455accbfc45f043985/third_party/blink/renderer/platform/graphics/canvas_resource_provider.cc

Blocking: 897214
Project Member

Comment 16 by bugdroid1@chromium.org, Oct 23

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

commit 75dd22b6abb40eb2c1719e8c32c656e1412e8ad6
Author: Antoine Labour <piman@chromium.org>
Date: Tue Oct 23 23:00:57 2018

Use GLImage's internal_format for LevelInfo

This is to be consistent with GLES2DecoderImpl and RasterDecoderImpl.

Bug: 870116
Change-Id: I07f7cf15db40046a3ada72bf3fa9621b252dd65e
Reviewed-on: https://chromium-review.googlesource.com/c/1297063
Reviewed-by: Eric Karl <ericrk@chromium.org>
Commit-Queue: Antoine Labour <piman@chromium.org>
Cr-Commit-Position: refs/heads/master@{#602153}
[modify] https://crrev.com/75dd22b6abb40eb2c1719e8c32c656e1412e8ad6/gpu/command_buffer/service/shared_image_backing_factory_gl_texture.cc
[modify] https://crrev.com/75dd22b6abb40eb2c1719e8c32c656e1412e8ad6/gpu/command_buffer/service/shared_image_backing_factory_gl_texture_unittest.cc

Blockedon: 900044
Labels: Proj-Vulkanize
Project Member

Comment 19 by bugdroid1@chromium.org, Nov 3

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

commit eb2367e5a47405142ee80d1227476087842ce183
Author: Antoine Labour <piman@chromium.org>
Date: Sat Nov 03 01:57:10 2018

Properly check handle type in GpuMemoryBufferFactory*

Calling code (CommandBufferStub via GpuChannel) doesn't check that the
GMB handle type corresponds to the correct platform-specific handle
(indeed it doesn't have a way to). So check in the
GpuMemoryBufferFactory* classes and fail if the handle type is invalid.

Bug: 870116
Change-Id: I78b574439350bee3dccda569e53eae7f74c7d0a7
Reviewed-on: https://chromium-review.googlesource.com/c/1316168
Reviewed-by: Victor Miura <vmiura@chromium.org>
Commit-Queue: Antoine Labour <piman@chromium.org>
Cr-Commit-Position: refs/heads/master@{#605127}
[modify] https://crrev.com/eb2367e5a47405142ee80d1227476087842ce183/gpu/ipc/service/gpu_memory_buffer_factory_android_hardware_buffer.cc
[modify] https://crrev.com/eb2367e5a47405142ee80d1227476087842ce183/gpu/ipc/service/gpu_memory_buffer_factory_io_surface.cc
[modify] https://crrev.com/eb2367e5a47405142ee80d1227476087842ce183/gpu/ipc/service/gpu_memory_buffer_factory_native_pixmap.cc

Project Member

Comment 20 by bugdroid1@chromium.org, Nov 6

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

commit 0f9bee79b8c2b2ff807227491a9eb42a55700ec6
Author: Antoine Labour <piman@chromium.org>
Date: Tue Nov 06 07:35:43 2018

Explicitly expose supported GMB formats in gpu::Capabilities

Instead of trying to derive GMB support from extension bits, explicitly
expose the set of supported GMB formats.
A compact representation (bitfield) is introduced to easily and cheaply
pass the set around.
In later CLs this will be used in other contexts (shared images).

Bug: 870116
Change-Id: I393b98dda067dba0c41d74e6de390ae478f50520
Reviewed-on: https://chromium-review.googlesource.com/c/1313549
Commit-Queue: Antoine Labour <piman@chromium.org>
Reviewed-by: Fernando Serboncini <fserb@chromium.org>
Reviewed-by: Tom Sepez <tsepez@chromium.org>
Reviewed-by: Zhenyao Mo <zmo@chromium.org>
Cr-Commit-Position: refs/heads/master@{#605624}
[modify] https://crrev.com/0f9bee79b8c2b2ff807227491a9eb42a55700ec6/gpu/command_buffer/common/capabilities.h
[modify] https://crrev.com/0f9bee79b8c2b2ff807227491a9eb42a55700ec6/gpu/command_buffer/common/gpu_memory_buffer_support.cc
[modify] https://crrev.com/0f9bee79b8c2b2ff807227491a9eb42a55700ec6/gpu/command_buffer/common/gpu_memory_buffer_support.h
[modify] https://crrev.com/0f9bee79b8c2b2ff807227491a9eb42a55700ec6/gpu/command_buffer/service/feature_info.cc
[modify] https://crrev.com/0f9bee79b8c2b2ff807227491a9eb42a55700ec6/gpu/command_buffer/service/feature_info.h
[modify] https://crrev.com/0f9bee79b8c2b2ff807227491a9eb42a55700ec6/gpu/command_buffer/service/gles2_cmd_decoder.cc
[modify] https://crrev.com/0f9bee79b8c2b2ff807227491a9eb42a55700ec6/gpu/command_buffer/service/gles2_cmd_decoder_passthrough.cc
[modify] https://crrev.com/0f9bee79b8c2b2ff807227491a9eb42a55700ec6/gpu/command_buffer/service/raster_decoder.cc
[modify] https://crrev.com/0f9bee79b8c2b2ff807227491a9eb42a55700ec6/gpu/ipc/common/gpu_command_buffer_traits_multi.h
[modify] https://crrev.com/0f9bee79b8c2b2ff807227491a9eb42a55700ec6/third_party/blink/renderer/platform/graphics/canvas_2d_layer_bridge_test.cc

Project Member

Comment 21 by bugdroid1@chromium.org, Nov 6

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

commit 827d7ca44819c61df92de523660c51bbc28aeeaa
Author: Antoine Labour <piman@chromium.org>
Date: Tue Nov 06 21:52:43 2018

Add GpuMemoryBuffer import in SharedImageInterface

This adds 2 entrypoints:
- CreateSharedImage, which takes a GpuMemoryBuffer to wrap into a shared
image (equivalent to CreateImageCHROMIUM+BindTexImage2DCHROMIUM)
- UpdateSharedImage, which updates the binding after CPU/external writes
to the GMB (equivalent to ReleaseTexImage2DCHROMIUM+BindTexImage2DCHROMIUM).

This is only plumbed to SharedImageBackingFactoryGLTexture in this CL.

Bug: 870116
Change-Id: Ie7645b65649b0f34d5431fc00f62da9d5661c570
Reviewed-on: https://chromium-review.googlesource.com/c/1316250
Reviewed-by: Chris Palmer <palmer@chromium.org>
Reviewed-by: Eric Karl <ericrk@chromium.org>
Commit-Queue: Antoine Labour <piman@chromium.org>
Cr-Commit-Position: refs/heads/master@{#605832}
[modify] https://crrev.com/827d7ca44819c61df92de523660c51bbc28aeeaa/components/viz/test/test_context_provider.cc
[modify] https://crrev.com/827d7ca44819c61df92de523660c51bbc28aeeaa/gpu/command_buffer/client/shared_image_interface.h
[modify] https://crrev.com/827d7ca44819c61df92de523660c51bbc28aeeaa/gpu/command_buffer/service/gles2_cmd_decoder_passthrough_unittest_textures.cc
[modify] https://crrev.com/827d7ca44819c61df92de523660c51bbc28aeeaa/gpu/command_buffer/service/gles2_cmd_decoder_unittest_textures.cc
[modify] https://crrev.com/827d7ca44819c61df92de523660c51bbc28aeeaa/gpu/command_buffer/service/shared_image_backing.h
[modify] https://crrev.com/827d7ca44819c61df92de523660c51bbc28aeeaa/gpu/command_buffer/service/shared_image_backing_factory.h
[modify] https://crrev.com/827d7ca44819c61df92de523660c51bbc28aeeaa/gpu/command_buffer/service/shared_image_backing_factory_ahardwarebuffer.cc
[modify] https://crrev.com/827d7ca44819c61df92de523660c51bbc28aeeaa/gpu/command_buffer/service/shared_image_backing_factory_ahardwarebuffer.h
[modify] https://crrev.com/827d7ca44819c61df92de523660c51bbc28aeeaa/gpu/command_buffer/service/shared_image_backing_factory_gl_texture.cc
[modify] https://crrev.com/827d7ca44819c61df92de523660c51bbc28aeeaa/gpu/command_buffer/service/shared_image_backing_factory_gl_texture.h
[modify] https://crrev.com/827d7ca44819c61df92de523660c51bbc28aeeaa/gpu/command_buffer/service/shared_image_backing_factory_gl_texture_unittest.cc
[modify] https://crrev.com/827d7ca44819c61df92de523660c51bbc28aeeaa/gpu/command_buffer/service/shared_image_factory.cc
[modify] https://crrev.com/827d7ca44819c61df92de523660c51bbc28aeeaa/gpu/command_buffer/service/shared_image_factory.h
[modify] https://crrev.com/827d7ca44819c61df92de523660c51bbc28aeeaa/gpu/command_buffer/service/shared_image_manager_unittest.cc
[modify] https://crrev.com/827d7ca44819c61df92de523660c51bbc28aeeaa/gpu/command_buffer/service/shared_image_representation.h
[modify] https://crrev.com/827d7ca44819c61df92de523660c51bbc28aeeaa/gpu/command_buffer/service/wrapped_sk_image.cc
[modify] https://crrev.com/827d7ca44819c61df92de523660c51bbc28aeeaa/gpu/command_buffer/service/wrapped_sk_image.h
[modify] https://crrev.com/827d7ca44819c61df92de523660c51bbc28aeeaa/gpu/ipc/client/shared_image_interface_proxy.cc
[modify] https://crrev.com/827d7ca44819c61df92de523660c51bbc28aeeaa/gpu/ipc/client/shared_image_interface_proxy.h
[modify] https://crrev.com/827d7ca44819c61df92de523660c51bbc28aeeaa/gpu/ipc/common/gpu_messages.h
[modify] https://crrev.com/827d7ca44819c61df92de523660c51bbc28aeeaa/gpu/ipc/in_process_command_buffer.cc
[modify] https://crrev.com/827d7ca44819c61df92de523660c51bbc28aeeaa/gpu/ipc/in_process_command_buffer.h
[modify] https://crrev.com/827d7ca44819c61df92de523660c51bbc28aeeaa/gpu/ipc/service/shared_image_stub.cc
[modify] https://crrev.com/827d7ca44819c61df92de523660c51bbc28aeeaa/gpu/ipc/service/shared_image_stub.h

Project Member

Comment 22 by bugdroid1@chromium.org, Nov 9

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

commit ce2f42188182d792fd79b8eca99476b51c7a444a
Author: Antoine Labour <piman@chromium.org>
Date: Fri Nov 09 02:21:09 2018

Fix data race in in-process SharedImageInterface

WeakPtrFactory::GetWeakPtr is not thread-safe, but SharedImageInterface
is expected to be called from multiple threads (without locks). Instead,
grab a single WeakPtr for the GPU thread at construction time. It's more
efficient anyway.

Bug: 870116
Change-Id: Ie550b788a4569e0ff8ed62a690e21ae52e0a1e0c
Reviewed-on: https://chromium-review.googlesource.com/c/1325566
Reviewed-by: Sunny Sachanandani <sunnyps@chromium.org>
Commit-Queue: Antoine Labour <piman@chromium.org>
Cr-Commit-Position: refs/heads/master@{#606697}
[modify] https://crrev.com/ce2f42188182d792fd79b8eca99476b51c7a444a/gpu/ipc/in_process_command_buffer.cc

Blockedon: 905519
Project Member

Comment 24 by bugdroid1@chromium.org, Dec 14

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

commit 6a2c0a87208cdc837f960c96a9c188dfdfa9ee34
Author: Sunny Sachanandani <sunnyps@chromium.org>
Date: Fri Dec 14 00:08:01 2018

Enqueue destroy shared image message under lock

Fix a potential bug where last_flush_id_ could be set out of order if
two threads call DestroySharedImage.

R=ericrk@chromium.org
TBR=piman@chromium.org

Bug: 870116,  914976 , 882591
Change-Id: I974bff506211cafdc49440306203d6523cf614e5
Reviewed-on: https://chromium-review.googlesource.com/c/1376852
Reviewed-by: Eric Karl <ericrk@chromium.org>
Commit-Queue: Sunny Sachanandani <sunnyps@chromium.org>
Cr-Commit-Position: refs/heads/master@{#616512}
[modify] https://crrev.com/6a2c0a87208cdc837f960c96a9c188dfdfa9ee34/gpu/ipc/client/shared_image_interface_proxy.cc

Sign in to add a comment