IPC plumbing for hardware-accelerated image decodes.
This CL creates a new GPU channel IPC message type, GpuChannelMsg_ScheduleImageDecode, which a renderer will eventually be able to use to request hardware-accelerated image decodes. Two classes are added and plumbed into the existing GPU channel architecture to help deal with this new message: 1) On the service side (GPU process), an ImageDecodeAcceleratorStub processes incoming messages. There is one such stub per GpuChannel, although it is owned by the GpuChannelMessageFilter because it expects to receive messages on the IO thread. 2) On the client side (renderer), an ImageDecodeAcceleratorProxy is associated with a GpuChannelHost. It's a thread-safe helper that allows components in the renderer to schedule image decodes and get back a SyncToken to synchronize on the completion of the decode. The processing of the new IPC message is guarded by the kVaapiJpegImageDecodeAcceleration feature flag: the stub refuses to handle that message if the feature is disabled. Bug: 868400 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: I5d24e661341b5744b30306aca22903f28a52d695 Reviewed-on: https://chromium-review.googlesource.com/c/1285610Reviewed-by:Robert Sesek <rsesek@chromium.org> Reviewed-by:
Sunny Sachanandani <sunnyps@chromium.org> Reviewed-by:
Antoine Labour <piman@chromium.org> Commit-Queue: Andres Calderon Jaramillo <andrescj@chromium.org> Cr-Commit-Position: refs/heads/master@{#603944}
Showing
Please register or sign in to comment