Change current GPU process design to use ProtectedBufferAllocator to allocate protected buffer. Verify this on ARC++N
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
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
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
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
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 1 by hiroh@chromium.org
, Feb 26 2018