New issue
Advanced search Search tips

Issue 804687 link

Starred by 1 user

Issue metadata

Status: Fixed
Owner:
Closed: Apr 2018
Cc:
Components:
EstimatedDays: ----
NextAction: ----
OS: Chrome
Pri: 2
Type: Feature

Blocking:
issue 816327



Sign in to add a comment

Migrate protected buffer flow to allocator-based design

Project Member Reported by johnylin@chromium.org, Jan 23 2018

Issue description

Change current GPU process design to use ProtectedBufferAllocator to allocate protected buffer.
Verify this on ARC++N

 

Comment 1 by hiroh@chromium.org, Feb 26 2018

Blocking: 816327

Comment 2 by hiroh@chromium.org, Mar 12 2018

Blockedon: 820881

Comment 3 by hiroh@chromium.org, Mar 14 2018

Blockedon: -820881
Project Member

Comment 4 by bugdroid1@chromium.org, Mar 24 2018

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

commit c6dac9f66217a9e76a8ff74ecc2d11a2e0693c43
Author: Hirokazu Honda <hiroh@chromium.org>
Date: Sat Mar 24 02:07:06 2018

GpuArcVideoDecodeAccelerator Allocates/Deallocates protected buffers by ProtectedBufferAllocator

This introduces ProtectedBufferAllocator. ProtectedSharedMemory or
ProtectedNativePixmap can be allocated/deallocated by using ProtectedBufferAllocator.
By now, GpuArcVideoDecodeAccelerator allocates/dealllcates directly calling
ProtectedBufferManager.
It instead allocates/deallocates by ProtectedBufferAllocator which is provided
by ProtectedBufferManager.
ProtectedBufferHandle can deprecated thanks to ProtectedBufferAllocator.

BUG=b:72354215
BUG= chromium:804687 
TEST=Play Secure video using EXO Player.
TEST=CtsMediaTestCases
TEST=GtsMediaTestCases

Cq-Include-Trybots: luci.chromium.try:android_optional_gpu_tests_rel
Change-Id: Id54f4099f5cc1f494d5c9946e1f8cc859819bf7f
Reviewed-on: https://chromium-review.googlesource.com/963877
Reviewed-by: Kenneth Russell <kbr@chromium.org>
Reviewed-by: Pawel Osciak <posciak@chromium.org>
Commit-Queue: Hirokazu Honda <hiroh@chromium.org>
Cr-Commit-Position: refs/heads/master@{#545662}
[modify] https://crrev.com/c6dac9f66217a9e76a8ff74ecc2d11a2e0693c43/chrome/gpu/chrome_content_gpu_client.cc
[modify] https://crrev.com/c6dac9f66217a9e76a8ff74ecc2d11a2e0693c43/chrome/gpu/chrome_content_gpu_client.h
[modify] https://crrev.com/c6dac9f66217a9e76a8ff74ecc2d11a2e0693c43/components/arc/video_accelerator/gpu_arc_video_decode_accelerator.cc
[modify] https://crrev.com/c6dac9f66217a9e76a8ff74ecc2d11a2e0693c43/components/arc/video_accelerator/gpu_arc_video_decode_accelerator.h
[add] https://crrev.com/c6dac9f66217a9e76a8ff74ecc2d11a2e0693c43/components/arc/video_accelerator/protected_buffer_allocator.h
[modify] https://crrev.com/c6dac9f66217a9e76a8ff74ecc2d11a2e0693c43/components/arc/video_accelerator/protected_buffer_manager.cc
[modify] https://crrev.com/c6dac9f66217a9e76a8ff74ecc2d11a2e0693c43/components/arc/video_accelerator/protected_buffer_manager.h
[modify] https://crrev.com/c6dac9f66217a9e76a8ff74ecc2d11a2e0693c43/components/arc/video_accelerator/protected_buffer_manager_proxy.cc
[modify] https://crrev.com/c6dac9f66217a9e76a8ff74ecc2d11a2e0693c43/components/arc/video_accelerator/protected_buffer_manager_proxy.h
[modify] https://crrev.com/c6dac9f66217a9e76a8ff74ecc2d11a2e0693c43/components/viz/service/gl/gpu_service_impl.cc
[modify] https://crrev.com/c6dac9f66217a9e76a8ff74ecc2d11a2e0693c43/components/viz/service/gl/gpu_service_impl.h

Project Member

Comment 5 by bugdroid1@chromium.org, Mar 27 2018

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

commit 1f6dc1b828444773409f0cd1d8b3399d888040fc
Author: Hirokazu Honda <hiroh@chromium.org>
Date: Tue Mar 27 03:26:56 2018

Set the limitation to the number of concurrent allocated protected buffers

The limitation of the number of concurrent allocated protected buffers in a
single ProtectedBufferAllocator is set to 48, expecting 16 for protected input
buffers and 32 for protected output buffers.
This is helpful to retain ARC++ container from allocating many protected buffers
without deallocating previouly allocated protected buffers.

BUG=b:72354215
BUG= chromium:804687 
TEST=Play Secure video using EXO Player.
TEST=GtsMediaTestCases

Change-Id: Idabae800a7e87796d83b5bd132f8d6a5fba01bcf
Reviewed-on: https://chromium-review.googlesource.com/979673
Commit-Queue: Hirokazu Honda <hiroh@chromium.org>
Reviewed-by: Pawel Osciak <posciak@chromium.org>
Cr-Commit-Position: refs/heads/master@{#545965}
[modify] https://crrev.com/1f6dc1b828444773409f0cd1d8b3399d888040fc/components/arc/video_accelerator/protected_buffer_manager.cc
[modify] https://crrev.com/1f6dc1b828444773409f0cd1d8b3399d888040fc/components/arc/video_accelerator/protected_buffer_manager.h

Project Member

Comment 6 by bugdroid1@chromium.org, Mar 31 2018

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

commit 8412836b92fac2ca5276f013c64afe4fa2a3fb3f
Author: Hirokazu Honda <hiroh@chromium.org>
Date: Sat Mar 31 05:14:28 2018

GpuArcVideoProtectedBufferAllocator: Allocate/Deallocate protected buffers

GpuArcVideoDecodeAccelerator (GAVDA) allocates/deallocates protected buffers
by usingt ProtectedBufferAllocator.
In new design, GpuArcVideoProtectedBufferAllocator (GAVPBAllocator)
allocates/deallocates protected buffers, instead of GAVDA.
This CL is a middle point between old design and the new design.
GAVDA works rightly regardless of whether GAVPBAllocator is used or not.

BUG=b:72354215
BUG= chromium:804687 
TEST=Play Secure video using EXO Player.
TEST=CtsMediaTestCases
TEST=GtsMediaTestCases

Cq-Include-Trybots: luci.chromium.try:android_optional_gpu_tests_rel
Change-Id: I2f1010c987565a7258d6a434cf05b884870e6b46
Reviewed-on: https://chromium-review.googlesource.com/883381
Commit-Queue: Hirokazu Honda <hiroh@chromium.org>
Reviewed-by: Luis Hector Chavez <lhchavez@chromium.org>
Reviewed-by: Hidehiko Abe <hidehiko@chromium.org>
Reviewed-by: Pawel Osciak <posciak@chromium.org>
Reviewed-by: Daniel Cheng <dcheng@chromium.org>
Cr-Commit-Position: refs/heads/master@{#547375}
[modify] https://crrev.com/8412836b92fac2ca5276f013c64afe4fa2a3fb3f/chrome/browser/chrome_content_gpu_manifest_overlay.json
[modify] https://crrev.com/8412836b92fac2ca5276f013c64afe4fa2a3fb3f/chrome/browser/chromeos/arc/video/gpu_arc_video_service_host.cc
[modify] https://crrev.com/8412836b92fac2ca5276f013c64afe4fa2a3fb3f/chrome/gpu/chrome_content_gpu_client.cc
[modify] https://crrev.com/8412836b92fac2ca5276f013c64afe4fa2a3fb3f/chrome/gpu/chrome_content_gpu_client.h
[modify] https://crrev.com/8412836b92fac2ca5276f013c64afe4fa2a3fb3f/components/arc/common/BUILD.gn
[modify] https://crrev.com/8412836b92fac2ca5276f013c64afe4fa2a3fb3f/components/arc/common/video.mojom
[modify] https://crrev.com/8412836b92fac2ca5276f013c64afe4fa2a3fb3f/components/arc/common/video_decode_accelerator.mojom
[add] https://crrev.com/8412836b92fac2ca5276f013c64afe4fa2a3fb3f/components/arc/common/video_protected_buffer_allocator.mojom
[modify] https://crrev.com/8412836b92fac2ca5276f013c64afe4fa2a3fb3f/components/arc/video_accelerator/BUILD.gn
[modify] https://crrev.com/8412836b92fac2ca5276f013c64afe4fa2a3fb3f/components/arc/video_accelerator/gpu_arc_video_decode_accelerator.cc
[modify] https://crrev.com/8412836b92fac2ca5276f013c64afe4fa2a3fb3f/components/arc/video_accelerator/gpu_arc_video_decode_accelerator.h
[add] https://crrev.com/8412836b92fac2ca5276f013c64afe4fa2a3fb3f/components/arc/video_accelerator/gpu_arc_video_protected_buffer_allocator.cc
[add] https://crrev.com/8412836b92fac2ca5276f013c64afe4fa2a3fb3f/components/arc/video_accelerator/gpu_arc_video_protected_buffer_allocator.h

Project Member

Comment 7 by bugdroid1@chromium.org, Mar 31 2018

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

commit 0526850c9e6b77b489eac72914099d5a9f230781
Author: Hirokazu Honda <hiroh@chromium.org>
Date: Sat Mar 31 05:18:39 2018

Implement CreateProtectedBufferAllocator for Viz

VideoProtectedBufferAllocator is a newly introduced mojo interface.
This implements its factory function, CreateProtectedBufferAllocator, for Viz.

BUG=b:72354215
BUG= chromium:804687 
TEST=Play Secure video using EXO Player
TEST=CtsMediaTestCases
TEST=GtsMediaTestCases

Cq-Include-Trybots: luci.chromium.try:android_optional_gpu_tests_rel
Change-Id: I570a9c6778bbaa3447fbf17ed2acbf5ff2b582ee
Reviewed-on: https://chromium-review.googlesource.com/983200
Commit-Queue: Hirokazu Honda <hiroh@chromium.org>
Reviewed-by: Daniel Cheng <dcheng@chromium.org>
Reviewed-by: Sadrul Chowdhury <sadrul@chromium.org>
Reviewed-by: David Reveman <reveman@chromium.org>
Reviewed-by: Luis Hector Chavez <lhchavez@chromium.org>
Cr-Commit-Position: refs/heads/master@{#547376}
[modify] https://crrev.com/0526850c9e6b77b489eac72914099d5a9f230781/chrome/browser/chromeos/arc/video/gpu_arc_video_service_host.cc
[modify] https://crrev.com/0526850c9e6b77b489eac72914099d5a9f230781/components/viz/host/server_gpu_memory_buffer_manager_unittest.cc
[modify] https://crrev.com/0526850c9e6b77b489eac72914099d5a9f230781/components/viz/service/gl/gpu_service_impl.cc
[modify] https://crrev.com/0526850c9e6b77b489eac72914099d5a9f230781/components/viz/service/gl/gpu_service_impl.h
[modify] https://crrev.com/0526850c9e6b77b489eac72914099d5a9f230781/services/ui/public/interfaces/arc.mojom
[modify] https://crrev.com/0526850c9e6b77b489eac72914099d5a9f230781/services/ui/ws/arc_client.cc
[modify] https://crrev.com/0526850c9e6b77b489eac72914099d5a9f230781/services/ui/ws/arc_client.h
[modify] https://crrev.com/0526850c9e6b77b489eac72914099d5a9f230781/services/viz/privileged/interfaces/gl/gpu_service.mojom

Project Member

Comment 8 by bugdroid1@chromium.org, Apr 10 2018

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

commit 14d82a8f5b0259f3c9e6aee1760fbc1151d01455
Author: Hirokazu Honda <hiroh@chromium.org>
Date: Tue Apr 10 04:20:20 2018

Extend the limitation of the number of protected buffers to 64 from 48

The original limitation, 48, is too small to pass following two CTS tests.
* android.media.cts.ResourceManagerTest#testReclaimResourceSecureVsSecure
* android.media.cts.MediaCodecCapabilitiesTest#testGetMaxSupportedInstances

Extend the limitation to 64 to pass thos tests.

TBR=posciak@chromium.org

BUG=b:72354215
BUG= chromium:804687 
TEST=android.media.cts.ResourceManagerTest#testReclaimResourceSecureVsSecure
TEST=android.media.cts.MediaCodecCapabilitiesTest#testGetMaxSupportedInstances

Change-Id: Ia0805d3248103b8205505ce56056c0fa6e951cb6
Reviewed-on: https://chromium-review.googlesource.com/1000994
Reviewed-by: Kuang-che Wu <kcwu@chromium.org>
Commit-Queue: Hirokazu Honda <hiroh@chromium.org>
Cr-Commit-Position: refs/heads/master@{#549416}
[modify] https://crrev.com/14d82a8f5b0259f3c9e6aee1760fbc1151d01455/components/arc/video_accelerator/protected_buffer_manager.cc

Comment 9 by hiroh@chromium.org, Apr 10 2018

Status: Fixed (was: Assigned)
Cc: rohi...@chromium.org

Sign in to add a comment