History log of /frameworks/native/libs/gui/view/Surface.cpp
Revision Date Author Comments (<<< Hide modified files) (Show modified files >>>)
c90a77f1e5b42d8fcf336d2b9bd2259280814df2 15-Jan-2018 Jiwen 'Steve' Cai <jwcai@google.com> Add BufferHub backend for android::view::Surface

This CL allows BufferHubProducer to be used as alternative backend of
parcelable Surface.

When sent over binder, BufferHubProducer serializes itself differently
from Binder-based IGBP objects. Instead of writing to a Parcel object as
strong binder object, BufferHubProducer asks libbufferhubqueue to
generate a BufferHubQueueParcelable object (which packs all the FDs
representing the BufferHub channel).

When received from a binder interface, BufferHubProducer object can be
reconstructed from the BufferHubQueueParcelable object. The newly
constructed object has all the FDs (i.e. UDS channels) directly
connected to bufferhubd. Thus, on going buffer transport operations can
happen directly between the receiving process and bufferhubd. This
elimates one extra binder hop.

Bug: 37517761
Bug: 70046255
Test: libgui_test, buffer_transport_benchmark,
buffer_hub_queue_producer-test, dvr_api-test,
SurfaceParcelable_test
Change-Id: I78bd879f36d3196f3d74c76c79d27467740792f7
/frameworks/native/libs/gui/view/Surface.cpp
05debe1d787b7471c2bc9c8f7569a338ca5c7ad4 09-Feb-2017 Mathias Agopian <mathias@google.com> Split view::Surface out of Surface.cpp

it’s moved into a new view/Surface.cpp, header in
gui/view/Surface.h

their entanglement also meant that code that needs
only view::Surface ended up with all of Surface
dependencies.

Test: built and booted device
Bug: treble
Change-Id: I1a350d258f124fbe0a7bc5a2ca165311dcb0d8e3
/frameworks/native/libs/gui/view/Surface.cpp