• Home
  • History
  • Annotate
  • only in /frameworks/native/libs/vr/libbufferhub/
History log of /frameworks/native/libs/vr/libbufferhub/
Revision Date Author Comments (<<< Hide modified files) (Show modified files >>>)
f5f36c75527b1924ef8cb5cb66eb745dd27a0fc6 02-May-2018 Jiwen 'Steve' Cai <jwcai@google.com> Remove libpdx*, libbufferhub* from VNDK

This is largely inspired by ag/3865679: dependencies from libui and
libgui to libpdx_default_transport and libbufferhubque are cut when
building libui and libgui for vendors. This is primarily to exclude
libpdx* and libbufferhubqueue from VNDK.

Bug: 79151096
Test: Build system and inspect bufferhub/pdx related libraries are no
longer in vendor partition.

Change-Id: Idcd524db2a9f6ec96262bcf590fc0f80a0bd26e7
Merged-In: Id4768162aeb72b71d63d7e4498980f276ef58e6b
ndroid.bp
0728fa93c12145c2337a0033eb69056520b7bcd8 25-Apr-2018 Jiwen 'Steve' Cai <jwcai@google.com> Implement DetachedBuffer::Promote

1/ This enables a BufferHub-backed DetachedBuffer to be promoted into
the ProducerBuffer.
2/ Add DetachedBuffer::IsConnected in addition to
DetachedBuffer::IsValid.
3/ Cleaned up some using pdx:: namespace statements.

Bug: 69982239
Bug: 69981968
Bug: 70046255
Test: buffer_hub-test
Change-Id: I6ee99507b190d142647455532cdce0c2c780b2b0
uffer_hub-test.cpp
etached_buffer.cpp
nclude/private/dvr/buffer_hub_client.h
nclude/private/dvr/detached_buffer.h
a8049a284ecf3eafddbacf5230b0fefe85de8446 29-Mar-2018 Jiwen 'Steve' Cai <jwcai@google.com> bufferhubd: Implement more DetachedBuffer logic

1/ Separate DetachedBuffer related logic into a dedicated subclass of
BufferHubRPC. This actually is the right thing to do as it utilizes
the PDX's client/service programming pattern better.
2/ Add IsValid() check for the DetachedBufferChannel object.
3/ Add BufferHubClient to handle general PDX operations.
4/ Add DetachedBuffer which composites a BufferHubClient.
5/ Fully functional logic of allocating a DetachedBuffer, converting it
to a BufferHub-backed GraphicBuffer, then converting it back to a
DetachedBuffer.

Bug: 38137191
Bug: 70046255
Bug: 70912269
Test: buffer_hub-test
Change-Id: I81bf9259cbbaeb29a6df2769363b5a03464e7864
ndroid.bp
uffer_hub-test.cpp
uffer_hub_client.cpp
etached_buffer.cpp
nclude/private/dvr/buffer_hub_client.h
nclude/private/dvr/bufferhub_rpc.h
nclude/private/dvr/detached_buffer.h
nclude/private/dvr/ion_buffer.h
fe924f35e25d1fc583be979ed7799cb922dd6675 27-Mar-2018 Jiwen 'Steve' Cai <jwcai@google.com> Fix broken BufferHubQueueTest.TestRemoveBuffer

Under certain condition, it's unsafe to nullify the consumer channel
within producer channel's destructor.

Bug: 38137191
Bug: 70046255
Bug: 70912269
Test: buffer_hub-test, buffer_hub_queue-tests, buffer_hub_queue_producer-tesst
Change-Id: Ifbed85e687e71340f6876e4e85c792ae1d6b06f6
uffer_hub-test.cpp
23c1a735b673a9310f05b893a3d01de38d8c1166 12-Mar-2018 Jiwen 'Steve' Cai <jwcai@google.com> bufferhubd: Add DetachedBufferChannel

1/ Introduces four new BufferHub RPC operations.
2/ Implements the ProducerBufferDetach with test case.
3/ Also fixes a bug that Hangup signal wasn't propogated to the client
when bufferhubd closes a producer channel.

Bug: 38137191
Bug: 70046255
Bug: 70912269
Test: buffer_hub-test
Change-Id: Ia2ba0e95abd3c1b960670c505c6fdb9c9de3a6dd
uffer_hub-test.cpp
uffer_hub_client.cpp
nclude/private/dvr/buffer_hub_client.h
nclude/private/dvr/bufferhub_rpc.h
06e6451bd9fcf3eac37d28091f19ba8391fdecc8 09-Nov-2017 Jiwen 'Steve' Cai <jwcai@google.com> Remove NativeBuffer from libbufferhub

This code is long dead and completely unused. Let's keep buffer hub
related code clean.

Bug: 70046255
Test: buffer_hub_queue-test, buffer_hub-test, build system
Change-Id: I106f1f339757a03af50c318de77199d01765093f
nclude/private/dvr/native_buffer.h
f01081742669b883c0e0c7b39ec527317d800fd5 09-Mar-2018 Jiwen 'Steve' Cai <jwcai@google.com> Deprecate producer/consumer usage in BufferHub

producer_usage and consuemr_usage were introduced in Android O
temporarily then removed not long after. BufferHub added those then we
also removed them, but there appeared to be some leftovers.

Bug: 37881101
Test: buffer_hub-test, buffer_hub_queue-test, libdvr-test, libgui-test
Change-Id: I8551627bc820ddd04f6d6d7250d631fa54a78b72
uffer_hub_client.cpp
nclude/private/dvr/buffer_hub_client.h
08300cf571a45404d712cb366b88f75b8841fff0 27-Feb-2018 Chih-hung Hsieh <chh@google.com> Merge "Revert "Use arm instruction set with clang 7.0 LTO""
9da3732eea7cf32fb12cc08f03e9b16a588d0d96 27-Feb-2018 Chih-hung Hsieh <chh@google.com> Revert "Use arm instruction set with clang 7.0 LTO"

This reverts commit 94574f271fe8730d841a286069c198c6e74fc9e5.
Clang 7.0 LTO shouldn't need arm instruction set,
if we revert one LLVM recent change.

Bug: 72619014
Change-Id: Ic1ee146b823602ae419891f5e0956640109dd397
ndroid.bp
2f260339e4b32f41db6699c69cf0d568c396bcf5 16-Feb-2018 Jiwen 'Steve' Cai <jwcai@google.com> Remove legacy persistent BufferHub use case

This CL cleans up unused BufferHub code path. The motivation of doing
this is multifold:

1. Reduces future maintainace cost (e.g. when moving to libgui, there
will be less code to rename and re-style).
2. Removes unnecessary code complexity so that the code base is easier
and cleaner for future new reader to understand.
3. Prepares future work for supporting standalone GraphicBuffer in
BufferHub by avoid future logical and naming conflicts between
legacy PersistentBuffer/Detach/Attach and newly proposed detached
GraphicBuffer in BufferHub.

Bug: 70046255
Bug: 70912269
Test: buffer_hub-test, buffer_hub_queue-test,
buffer_hub_queue_producer-test, dvr_api-test, libgui_test

Change-Id: Ie9a0f55e3f620769bac58c81439d840402451b82
uffer_hub-test.cpp
uffer_hub_client.cpp
nclude/private/dvr/buffer_hub_client.h
nclude/private/dvr/bufferhub_rpc.h
94574f271fe8730d841a286069c198c6e74fc9e5 08-Feb-2018 Chih-Hung Hsieh <chh@google.com> Use arm instruction set with clang 7.0 LTO

* surfaceflinger.so uses LTO.
clang 7.0 LTO inlined more code and some references
are too far away to use thumb instructions.

Bug: 72619014
Test: run Forrest
Change-Id: Ia09931e93a170ac58007f80da2d580bb9b9635a6
ndroid.bp
037f35aea612c0b4f3976e9e27cf68a0b8913e2f 26-Jan-2018 Jiwen 'Steve' Cai <jwcai@google.com> Build libbufferhubqueue and libpdx_default_transport as shared library

Now that we are moving BufferHub into libgui, these two libraries are
being linked into libgui.so and libdvr.so respectively as static
lib. This is cauing issues when a binary/app depends on both, i.e. two
copies of the static lib will live in the same binary. We can avoid this
issue by building these two as shared library.

Test: Build system
Bug: 72763929
Change-Id: I26ba18f2b84d43cbd62b26dbb9ee0574c2974f7d
ndroid.bp
0f950843530825907f8311b199b01c32899c2c92 17-Jan-2018 Jiwen 'Steve' Cai <jwcai@google.com> Move BufferHub-based IGBP into libgui

Currently the BufferHub based IGBP implementation lives inside
frameworks/libs/vr and libbufferhubqueue is depending on libgui. This CL
reverses the dependency and paves the way of future integration of
BufferHub into libgui.

Mirrors changes to make this work:
1/ Fix shared lib dependency of libpdx
2/ Allow implicit template instantiation in libgui
3/ Mute clang warnings caused by libpdx

Bug: 72051005
Bug: 70046255
Test: libgui-test, buffer_hub_queue_producer-test, dvr_api-test
Change-Id: I7541498f78aaeb4b15fc6cb6439a2e2d706b9e99
ndroid.bp
nclude/private/dvr/bufferhub_rpc.h
36b5a0f502068c17da3ae0d9855807863fbb23cf 15-Jan-2018 Jiwen 'Steve' Cai <jwcai@google.com> BufferHub: Clean up unnecessary DVR dependency

As we are upstreaming BufferHub to Android maintain, let's make sure
there is no unnecessary dependency on DVR.

Bug: 70046255
Test: buffer_hub-test, buffer_hub_queue-test
Change-Id: Idc3cb30c9629374ebbc94d6ff095447dc02928d5
ndroid.bp
2d89e6b3e82803083290ed0bb6de84e4512fff90 07-Dec-2017 Jiwen 'Steve' Cai <jwcai@google.com> Fix a flaky test in buffer_hub-test

UDS-based PDX guarantees commands execution on the same channel. However,
where there are incoming commands from different channels, the execution
order can no longer be guaranteed as the service basical holds a epoll
on sockets from different FDs.

The original test we put up is flaky for the following commands:

c1->ReleaseAsync
p->CreateConsumer

Not that the ReleaseAsync call may actually happen after a new consumer
gets created, which prevents the buffer from being fulling released back
to the producer.

To de-flaky the test, simplily poll the producer after the release to
confirm that the buffer is indeed released before moving on.

Bug: 70298522
Bug: 70046255
Test: buffer_hub-test
Change-Id: Ia3987642a40f62e7d151edbdf0f11dd9bee57223
uffer_hub-test.cpp
44d644466e5d9b1848d93f9b4792df1e51d67573 14-Nov-2017 Chih-Hung Hsieh <chh@google.com> Merge "Use -Werror in frameworks/native/libs/vr" am: 79ce1748ea am: 397c7d31db
am: de73ca4825

Change-Id: Icca8a42d838161bbba84dd87674185c69f60f03c
a88e3ee3a33a60e72bd976cfb5b9fc0bd15a1078 04-Nov-2017 Jiwen 'Steve' Cai <jwcai@google.com> Make BufferHubQueue binder parcelable

The goal of this CL is to enable sending BufferHubQueue clients over
binder, so that ANativeWindow/Surface backed by BufferHub can be send
over binder just like the current binder BufferQueue based
implementation.

To enable PDX clients to be binder parcelable, this CL introduced new
DPX interface: pdx::ChannelParcelable with UDS-backed
implementation. Note that the ChannelParcelable interface is only
exposed to each implementation of PDX client (BufferHubQueue clients in
this CL) through protected pdx::Client interface. The reason for doing
that is each client implementation may require different custom clean up
logic between the client can be safely exported to another
process. Thus, we don't want to expose this export-to-binder becomes a
pdx-Client level feature, but let each client implement their own. In
addition, there is no immediate need for all types of pdx::Client
implementation being binder parcelable, thus we only implemented the
logic for BufferHubQueue.

This is the first of a seriers of CLs to eventually enable binder
parcelable ANativeSurface backed by BufferHub.

Bug: 37517761
Bug: 63909629
Test: buffer_hub_queue-test
Change-Id: I41c8a710af3095312db823ff01bc5aa526775edd
ndroid.bp
de73ca4825ca1948cb20f991a026be7af55bfc9a 14-Nov-2017 Chih-Hung Hsieh <chh@google.com> Merge "Use -Werror in frameworks/native/libs/vr" am: 79ce1748ea
am: 397c7d31db

Change-Id: If99d869b0bd87a695c2683c676e06eaf02c9c847
e19008350e91367c3d18410dad5cedf369ea3258 05-Oct-2017 Chih-Hung Hsieh <chh@google.com> Use -Werror in frameworks/native/libs/vr

* Suppress/fix warnings of unused variable, parameter,
private-field, and function.
* Fix warnings about typedef missing declarator.
* Use -Wno-error to keep existing warnings, to fix later.

Bug: 66996870
Test: build with WITH_TIDY=1
Change-Id: Iae96af3f6a17623befe73a9db2c81275fee44fa6
ndroid.bp
30be1118bec14c42472d86f185bf377bf7f1a3a7 09-Nov-2017 Jiwen 'Steve' Cai <jwcai@google.com> Reduce buffer_hub-test flakiness

Increase the poll() timeout to 100ms to reduce test flakiness. Also
update to use glocal const kPollTimeoutMs so that we can easily tune it
in future. This also fix some compiler warnings around EXPECT_EQ.

Bug: 63909629
Bug: 68152849
Test: buffer_hub-test
Change-Id: I4e0e891125e0a1763b0f319bf47e71bc59213024
uffer_hub-test.cpp
9e7f303680b022ff6578b9824dad7146e78332c8 21-Oct-2017 Jiwen 'Steve' Cai <jwcai@google.com> Add more unit test for bufferhub

TestAsyncStateTransitions
TestZeroConsumer
TestMaxConsumers
TestCreateConsumerWhenBufferGained
TestCreateConsumerWhenBufferPosted
TestCreateConsumerWhenBufferReleased

This also renames the test to buffer_hub-test to match the name scheme
we are using elsewhere (i.e. buffer_hub_xxx instead of bufferhub_xxx and
yyy-test vs yyy_tests).

Bug: 68152849
Test: buffer_hub-test
Change-Id: I18ed32862bbee207e2751139599eff4f6f6e8618
ndroid.bp
uffer_hub-test.cpp
ufferhub_tests.cpp
nclude/private/dvr/buffer_hub_client.h
d14ee8e15ca7a8d1319a0965916b1b66c4cc19a2 12-Oct-2017 Chih-hung Hsieh <chh@google.com> Merge "Revert "Use -Werror in frameworks/native/libs/vr"" am: a6d2f5571c am: 4276e8a1e7
am: 3975700384

Change-Id: I20cdc3eb77519a45cd15e96118e5c6db0e818adb
4276e8a1e7d5f054afe57fd4fbfbbe560d9ff864 12-Oct-2017 Chih-hung Hsieh <chh@google.com> Merge "Revert "Use -Werror in frameworks/native/libs/vr""
am: a6d2f5571c

Change-Id: I1bb99bebeb4f1b27849f827e0a9a3f51d0eda2ec
d980f7a91d54da257a0b2d94a2d70263d11229e9 12-Oct-2017 Chih-hung Hsieh <chh@google.com> Revert "Use -Werror in frameworks/native/libs/vr"

This reverts commit 38a11928990e62b263abe2dada0ff1f43d878e7c.

Change-Id: I2315300d0c8d52e224907a4f8edcf0d53658a742
ndroid.bp
300cf20369e3bda20022c906036148cba01b19de 12-Oct-2017 Chih-hung Hsieh <chh@google.com> Merge "Use -Werror in frameworks/native/libs/vr" am: 8ad1b2872d am: 37e64c30af
am: 5e5014b84b

Change-Id: I55ed73815587aa773686ad60e4fda3bd65e8d032
37e64c30afae2bcf1a0a5fc54cca8a392a33421e 12-Oct-2017 Chih-hung Hsieh <chh@google.com> Merge "Use -Werror in frameworks/native/libs/vr"
am: 8ad1b2872d

Change-Id: I6b259336b1ecfa2564f4c2c2de9a5734a8666342
38a11928990e62b263abe2dada0ff1f43d878e7c 05-Oct-2017 Chih-Hung Hsieh <chh@google.com> Use -Werror in frameworks/native/libs/vr

* Suppress/fix warnings of unused variable, parameter,
private-field, and function.
* Fix warnings about typedef missing declarator.
* Use -Wno-error to keep existing warnings, to fix later.

Bug: 66996870
Test: build with WITH_TIDY=1
Change-Id: Ifb82fcd76fcb5d9c9d9f017f2541581661493bd5
ndroid.bp
3ab6cf9d67803671a22830ce9c1ec0716e113a09 11-Oct-2017 Chih-hung Hsieh <chh@google.com> Merge "Cherry pick -DATRACE_TAG=... from goog/master branch."
am: 6cfabaeb66

Change-Id: I4f25849a7bcd8d0b73d2fd9071f53afe9ae19b46
91f2522f5c0a64bd11b3ac27c4aa5775489db5a4 11-Oct-2017 Chih-Hung Hsieh <chh@google.com> Cherry pick -DATRACE_TAG=... from goog/master branch.

Test: normal build
Change-Id: I6410b9e99dab76cbfbc27041f461ba46f9abf539
ndroid.bp
52ea25cf06cef250ec73052611b48556b3fce4d5 14-Sep-2017 Corey Tabaka <eieio@google.com> Add shared memory based buffer metadata

This CLs reduces BufferHub CPU consumption by adding asynchronous
state transition so that out-of-process VR composition can run on 2016
pixel devices smoothly. In addition, this CL addresses a couple corner
cases in the existing bufferhub logic, which fixes various blackscreen
issues.

1/ Tracks buffer transition states (gained, posted, acquired, released)
from the client side via atomic shared memory and adds
PostAsync/AcquireAsync/ReleaseAsync/GainAsync with metadata and
fence support.
2/ Adds dequeue order guarantee for buffers enqueued with
dvrWriteBufferQueuePostBuffer.
3/ Synchronous BuffeHub operations are still supported.
4/ Bump up the bufferhubd's soft limit of open file descriptor.
5/ Handle orphaned consumer in acquired state. This is a corner case
that consumer process goes aways (most likely due to a crash) leaving
buffer stuck in acquired state with inconsistent buffer state.
6/ Fixes a race condition for released buffer to be Gain'ed and
Acquire'd when a new consumer is created in released state.
7/ Improve silent consumer queue efficiency: Silent queues no longer
import buffers or receive signals about new buffers and they are
limited to only spawning other consumers and notifications about
producers hanging up.
8/ Modify PDX/UDS channel event signaling to work around epoll
behavior. PDX UDS uses a combination of an eventfd and an epoll set
to simulate the original PDX transport channel events. An odd
behavior discovered in the kernel implementation of epoll was found
that causes the epoll fd to "unsignal" itself whenever epoll_wait()
is called on it, regardless of whether it should still be
pending. This breaks the edge triggerd behavior in nested epoll sets
that channel events depend on. Since this is unlikely to ever be
fixed in the kernel we work around the behavior by using the epoll
set only as a logical OR of two eventfds and never calling
epoll_wait() on it. When polling is required we use regluar poll()
with the eventfds and data fd to avoid the bad behavior in
epoll_wait().
9/ Keep reading data after PDX hangup signal. UDS will signal hangup
when the other end of the socket closes. However, data could still be
in the kerenl buffer and should be consumed. Fix an issue where the
service misses an impulse sent right before the socket is closed.

Bug: 65455724
Bug: 65458354
Bug: 65458312
Bug: 64027135
Bug: 67424527
Test: libpdx_uds_tests
bufferhub_tests
buffer_hub_queue-test
buffer_hub_queue_producer-test
dvr_api-test

Change-Id: Id07db1f206ccf4e06f7ee3c671193334408971ca
ndroid.bp
uffer_hub_client.cpp
ufferhub_tests.cpp
nclude/private/dvr/buffer_hub_client.h
nclude/private/dvr/bufferhub_rpc.h
d53870c58cbb3671c2efdae3cc53850b962aa9dc 07-Jul-2017 Corey Tabaka <eieio@google.com> Fix BufferHub state machine to return errors on invalid transitions.

The consumer side of the BufferHub flow did not have an adequate
state machine to track transitions and return errors when Acquire
or Release are requested from the wrong state. This bug allowed
other buggy usage to go unnoticed.

- Fix the consumer state machine to correctly validate all requests.
- Add tests to verify correctness of the fix.

Tested BufferHub with the new test before and after the fix and
verified that the test catches the problem and that the fix solves
the problem.

Bug: 62886596
Bug: 63149525
Test: bufferhub_tests passes.
Change-Id: I802679ed74c7f505b9243ba4048824350d4e37be
ufferhub_tests.cpp
26b7bd48940bd2cc808b72c46917edbd3debb99a 11-May-2017 Corey Tabaka <eieio@google.com> libbufferhub: Fix native buffer.

This class was broken during a clean up. Fix the code in preparation
for adding tools that will use it again.

Bug: None
Test: build; flash
Change-Id: I8e60c7ba316080a24ff8914807972886e21ebce9
nclude/private/dvr/native_buffer.h
bb701dbac7c9c9eb2a7d0ec48c5e020f1272de13 23-May-2017 Jiwen 'Steve' Cai <jwcai@google.com> BufferHubQueue rename DetachBuffer to RemoveBuffer

Test: buffer_hub_queue_producer-test, buffer_hub_queue-test, dvr_api-test
Bug: 37164481
Change-Id: I05ba0f9f96cf60b64cb8b76482301440d40aa82a
nclude/private/dvr/bufferhub_rpc.h
6bffc67cec8bd8ad086d5a6265dedb737073bdea 19-May-2017 Jiwen 'Steve' Cai <jwcai@google.com> Add more attribute when creating ProducerQueue

Add `is_async`, `default_width`, `default_height` and
`default_format`. Note that these attributes are currently treated as
immutable after queue gets created.

Bug: 38324405
Bug: 38430974
Bug: 36724099
Test: buffer_hub_queue_producer-test, buffer_hub_queue-test, dvr_api-test
Change-Id: Id242a15388a1f1457ad89d11336f5643685e8361
nclude/private/dvr/bufferhub_rpc.h
cbd32bfd3a8dbac30228acbaee1daaf2466d643f 19-May-2017 Jiwen 'Steve' Cai <jwcai@google.com> Simplify ProducerQueue::Create

This is a preparation CL that simplifies ProducerQueue's constructor,
Create(), and bufferhub_rpc::CreateProducerQueue prior to introducing
more queue attributes (is_async, width, height, max_capacity, etc) on
creation.

1/ Consolidate and/or remove unnecessary ProducerQueue::Create's
overloading (we had way too many overloads of the create function and I
figured it's awfully painful to introduce new attributes).
2/ Use UsagePolicy in ProducerQueue::Create. Also added default values
for UsagePolicy, so that empty uniform initialization gives us a default
policy. This helps us removing all ProducerQueue::Create overloading on
whether default usage policy is needed.
3/ Move |meta_size_bytes| into ProducerQueueConfig.

Bug: 38430974
Test: buffer_hub_queue_producer-test, buffer_hub_queue-test, dvr_api-test
Change-Id: Ieba9f4d1bce2162bd1e6063989985afc8d014dc7
nclude/private/dvr/bufferhub_rpc.h
5d67165bee53c5003d8661c9561574408e3ac185 12-May-2017 Hendrik Wagenaar <hendrikw@google.com> Merge "Remove QCom specific flags" into oc-dev am: cd43683371
am: 86b4423b58

Change-Id: Ia1251190bb8402279c26fe1c96357dfb103fab0e
cd43683371f158b77e934e7cb71a9fdc65a122ed 12-May-2017 TreeHugger Robot <treehugger-gerrit@google.com> Merge "Remove QCom specific flags" into oc-dev
a202147c9a69f9bbd4d6598cef61d2df8cf8a966 12-May-2017 Gaurav Shah <gauravsh@google.com> Merge "Remove libbufferhub mocks/" into oc-dev am: 68d36a3cbb
am: 7adb6b418f

Change-Id: If4ccf55048a0269871acf0c52777094aa4a5e87e
deb91680bac3cda4284cc5ffe96d76b32243868a 11-May-2017 Gaurav Shah <gauravsh@google.com> Remove libbufferhub mocks/

It is not used anywhere.

Bug: 36040117
Test: built. no code changes, only dead code removal.
Change-Id: Ia9c52379ac2dabf0179f92c0c2d5ffd4ff92d357
ocks/client/private/dvr/buffer_hub_client.h
ocks/gralloc/BUILD.gn
ocks/gralloc/gralloc.cpp
ocks/gralloc/gralloc_mock.h
ocks/ion_buffer/private/dvr/ion_buffer.h
4720c9db1fd7777af57fd25e375cd8a3e72ea305 11-May-2017 Hendrik Wagenaar <hendrikw@google.com> Remove QCom specific flags

* We can't have any device specific code on Android

Bug: 38207381
Test: Compiled
Change-Id: I0cab52d71c65ff401985b01140452c7901eef855
uffer_hub_client.cpp
nclude/private/dvr/buffer_hub_client.h
6a3c05bcfab588fd99dd8d619a53d15374e99507 28-Apr-2017 Mathias Agopian <mathias@google.com> fix circular dependency libnativewindow <-> libui

Bug: 37647680
Bug: 37648355
Test: compile, manual
Change-Id: I9631beea52e23ebb519411f943c6f5062aedd2e5
ndroid.bp
nclude/private/dvr/native_buffer.h
108e84f7e6a9117b66dba000dcf16c6d8c862e16 08-May-2017 Hendrik Wagenaar <hendrikw@google.com> dvrapi: Pass layer_count down

* We were missing layer count, which would prevent multiview
from working

Bug: 37245304
Test: MultiLayerBufferQueue
Change-Id: I88b41f1aa7665df01e89a7386cbc23b15c9a79b0
uffer_hub_client.cpp
nclude/private/dvr/bufferhub_rpc.h
nclude/private/dvr/ion_buffer.h
on_buffer.cpp
ocks/ion_buffer/private/dvr/ion_buffer.h
4d3590f3fd0fd65f4e8758d3228de9f55cf135d0 07-May-2017 Hendrik Wagenaar <hendrikw@google.com> Remove slices from buffers

* code no longer required, as it will be handled in vrcore

Bug: 38076195
Test: Manually ran testing
Change-Id: Id28918a3bf73b99cbb57aad4c21251b7a9623074
uffer_hub_client.cpp
nclude/private/dvr/buffer_hub_client.h
nclude/private/dvr/bufferhub_rpc.h
nclude/private/dvr/native_buffer.h
ec971362bc651d8c98febb8399981877da859c14 05-May-2017 Corey Tabaka <eieio@google.com> Revert "Deprecate producer/consumer usage: Step 3"

These changes are effectively handled as part of another, higher priority CL.

This reverts commit 7cab28591d5cdc26913a0882df1b28e3f5393066.

Change-Id: I4cf47eee219870b2758997fe5bd6019d83b82451
uffer_hub_client.cpp
nclude/private/dvr/buffer_hub_client.h
7cab28591d5cdc26913a0882df1b28e3f5393066 03-May-2017 Jiwen 'Steve' Cai <jwcai@google.com> Deprecate producer/consumer usage: Step 3

Remove all remaining client side reference to producer/consumer usage
and update dvr_xxx API.

Bug: 37881101
Test: Build, flash, ran particles.apk and dvr_api-test
Change-Id: I6a60b8f97264f131cd5b9a5de8db0ca178d55097
uffer_hub_client.cpp
nclude/private/dvr/buffer_hub_client.h
0057fddc71d1c3c3de8f9d0bd45a51bb293bfa3c 02-May-2017 Jiwen 'Steve' Cai <jwcai@google.com> Deprecate producer/consumer usage: Step 2

Clean up bufferhub_rpc, display_rpc and service side producer/consumer
usage reference.

Next (final) step is to remove all remaining client side reference to
producer/consumer usage and update dvr_xxx API.

This also fixes a minor typo in dvr_named_buffer-test

Bug: 37881101
Test: Build, flash, ran particles.apk and buffer_hub_queue-test
Change-Id: Ibae4376c1fd1ed964843d8b2ad2fb27204fe5e28
uffer_hub_client.cpp
nclude/private/dvr/bufferhub_rpc.h
044963e1dd0479035b6e5f2c6bd618bde7143710 02-May-2017 Jiwen 'Steve' Cai <jwcai@google.com> Deprecate producer/consumer usage: Step 1

Clean up producer/consumer usage from IonBuffer.

Bug: 37881101
Test: Build, flash, ran particles.apk
Change-Id: I66a8c4db2348b014a7b458b69157ed7c150112e1
ndroid.bp
nclude/private/dvr/buffer_hub_client.h
nclude/private/dvr/bufferhub_rpc.h
nclude/private/dvr/ion_buffer.h
on_buffer.cpp
73feb0676635da6c0f738c10e04052a8162a4095 20-Apr-2017 Chris Forbes <chrisforbes@google.com> vr: Adjust for libui gralloc flags change

Change-Id: I24dbe407ad9139ba1d206b9074c7c507537d198c
Bug: b/33350696
Test: Bullhead: booted to launcher, take photo, watch youtube
ndroid.bp
on_buffer.cpp
eaa5522feac452703a0836310047d4b15702487d 06-Apr-2017 Hendrik Wagenaar <hendrikw@google.com> Convert the pose buffer into a more generic named buffer

* It's likely that we'll have more than one pose buffer
* It's cleaner to separate the vsync info into a separate buffer

Bug: 37001881
Bug: 37240552
Test: Added and manually ran TestNamedBuffersSetup
Change-Id: I76621d3cfa8c21c9d5d1e6e648854067673be9ab
uffer_hub_client.cpp
nclude/private/dvr/bufferhub_rpc.h
cd52dd9f1b301854b4e1734e3741d9cef8f784b1 08-Apr-2017 Corey Tabaka <eieio@google.com> Update BufferHub service/client with support for gralloc1 usage.

- Add support for gralloc1 usage flags.
- Mimic how GraphicBuffer supports gralloc0 usage flags: (usage, usage).
- Move to using pdx::Status<T> since we're touching signatures everywhere.

Bug: 36401174
Test: bufferhub_tests; buffer_hub_queue-test
Change-Id: I0e5184197b21eda9806bbea44f63b546b030692a
uffer_hub_client.cpp
nclude/private/dvr/buffer_hub_client.h
nclude/private/dvr/bufferhub_rpc.h
nclude/private/dvr/ion_buffer.h
on_buffer.cpp
2655e1cd5498749381701aa1fa7f29c66364a7ef 04-Apr-2017 Corey Tabaka <eieio@google.com> Add additional accessors to IonBuffer and BufferHubBuffer.

- Add accessor to underlying GraphicBuffer in IonBuffer.
- Add const accessors to underlying IonBuffer(s) in BufferHubBuffer.

Bug: 36401174
Test: bufferhub_tests; buffer_hub_queue-test
Change-Id: I24a6c19b141bb50ffa06e861a4533e10d55b5b20
nclude/private/dvr/buffer_hub_client.h
nclude/private/dvr/ion_buffer.h
1db8a5d7e3b0565b976e77859e28d77f6a451a2b 22-Mar-2017 Corey Tabaka <eieio@google.com> Update BufferHubQueue in preparation for VrFlinger refactor.

- Expose buffer hub queue id to the client. This helpful as an id
in queue enumeration in the DisplayManager API.
- Address log convention deviations.
- Clean up BufferHub service error paths.
- Clean up queue importing logic to query the service for queue
parameters to avoid accidental abuse.
- Make spawning consumer queues more efficient in RPC only cases.
- Clean up ConsumerQueue constructor logic; move to pdx::Client
base class (through BufferHubQueue) instead of pdx::ClientBase.
ConsumerQueue::Create doesn't make sense as a ConsumerQueue can
only be created from another queue.

Bug: 36401174
Test: build; run buffer_hub_queue-test
Change-Id: I0530f64ecb514d0f37bb13f9ce201b6ff51502b6
nclude/private/dvr/bufferhub_rpc.h
b42f171a5a76985fde2689d90fd6d2d7e4920564 21-Mar-2017 Chia-I Wu <olv@google.com> libui: clean up GraphicBuffer interface

Other than transferring the ownership, some callers want to control
whether to register or to clone the handle when creating a
GraphicBuffer from a handle. Add a new constructor with
HandleWrapMethod for finer controls, to replace the one that has
only a boolean, keepOwnership.

The motivation is to enable users to construct GraphicBuffer without
fighting with GraphicBufferMapper::registerBuffer first. More
generally, GraphicBufferMapper::{registerBuffer,unregisterBuffer} is
tricky to use correctly. They should really be considered private
by most.

While at it, deprecate constructors that do not distinguish
producer/consumer usage. It turns out GraphicBuffer is used by some
proprietary libraries. I have to maintain the ABI and cannot remove
the deprecated constructors.

Bug: 36355756
Test: boots
Change-Id: Ieea618d8495f06a6233299d076fb821127cd6bf8
on_buffer.cpp
bdcee79b0d7e87cb48049907a7ba8201d0288f75 23-Mar-2017 Jiwen 'Steve' Cai <jwcai@google.com> Move DVR platform C API into libdvr

Introduce a new static library build with Android.mk. The reasoning
behind this is:
1/ This library is going to consolidate all C headers and implementation
of the DVR platform library.
2/ No other internal system components need to depend on this library.
3/ This library is build with Android.mk so that it has depend on other
system components (such as libandroid_runtime) without worrying about
that Android.bp-based libs cannot depent and Androib.mk-based libraries.
4/ This library defines dvr_api.h header as the official definition of
DVR platform library headers. The header is moved from
'vendor/unbundled_google/packages/PrebuiltGoogleVr', which is not an
ideal place to hold the platform library anyway.
5/ If we ever decide to move these C wrappers out of frameworks/native,
this makes it easier to do so by bundling things now.

TODO: C APIs from libvrsensor and libvirtualtouchpadclient are not moved
into this bundle as some functions are still used by internal system
components. Ideally, these will be moved either to Google3 or vendor projects.

Test: Built and flash
Bug: 36563654
Change-Id: Ie5ce89faa70f86ac934a77d8f7d4fca7e94112ee
ndroid.bp
vr_buffer.cpp
nclude/private/dvr/dvr_buffer.h
10e68eb8aa4db8b6f8cfbf2c3754e2677d7bf848 15-Mar-2017 Hendrik Wagenaar <hendrikw@google.com> Add dvr_buffer apis

Test: None
Bug: None
Change-Id: I234d7ef4dabb4453cdbc67d3112adf2ffbbadaf4
ndroid.bp
uffer_hub_client.cpp
vr_buffer.cpp
nclude/private/dvr/buffer_hub_client.h
nclude/private/dvr/dvr_buffer.h
8a71b13127f737a46c55ba94d31ba0262e7cbf8a 16-Mar-2017 Mark Urbanus <urbanus@google.com> Refactor IonBuffer to use GraphicBuffer

- Replace gralloc0 based implementation with GraphicBuffer implementation.
- Removed incompatible ion-buffer unit-tests.
- Added libui dependencies to dependants.

Bug: 34879523
Test: Tested on Lucid, validated graphics and poses are working
Change-Id: I49a129f269d54c81bda93b44d879d4b8dee2006a
uffer_hub_client.cpp
nclude/private/dvr/ion_buffer.h
on_buffer.cpp
ests/Android.mk
ests/ion_buffer/Android.mk
ests/ion_buffer/ion_buffer-test.cpp
e77dce28e5e9a7f078cb324a7b9320802fca8469 14-Mar-2017 Stephen Kiazyk <skiazyk@google.com> Force vrhwc/wm to report the native resolution

Due to some Yak-shaving, this also involved a partial conversion of our
libraries to soong.

Notes:
* I also changed the name of libsensor to libvrsensor to avoid a naming
clash with an existing library
* The remaining libraries will be soongified in a separate CL

Bug: 36139334
Test: Build and run vr apps.
Change-Id: Ib39687bd01e3d2e1c30adc54e18f362a85954ab9
ndroid.bp
ndroid.mk
89ed4c8cfd8ad64269dfcff9742e16bdd705b926 10-Feb-2017 Mathias Agopian <mathias@google.com> split libandroid.so

- ANativeWindow (native_window.h) and
AHardwareBuffer (hardware_buffer.h) now live
in libnativewindow.so, which is a vodka library.

- libandroid.so still provide those symbols
via a static library version (libnativewindow.a)

- removed libbinder dependency as well

Test: compiled & booted
Bug: 35164655
Change-Id: Ib4bc8e8fc9ec1891bcbee63c28fd0131d82edf29
ufferhub_tests.cpp
a9347647eca3101c014be902b713772de3977d87 14-Feb-2017 Mathias Agopian <mathias@google.com> Break a dependency of libui on libandroid

This was only a header dependency, but it still
created a circular dependency, which will cause
problems in another CL.

We fix this by creating a libarect static library
containing only that header. both libui and
libandroid now depend on it and reexport the
header.

We also make sure rect.h ends-up in the right
place.

Test: built and booted device
Bug: 35164655

Change-Id: Iba25b8b801b26b26ec1401c00caf367a06f197ca
nclude/private/dvr/native_buffer.h
3079cb7c32421099a73e1a774b228635eeb3f189 20-Jan-2017 Corey Tabaka <eieio@google.com> Use generic libpdx event bits facility in libvrflinger and bufferhubd.

Use the generic event bits abstraction to support UDS and ServiceFS
backends properly.

Bug: 34466748
Test: start/stop basicvr repeatedly; observe stable bufferhub counts.
Change-Id: I9f2ea67c25860ad7fb931938991a29a37f3391fc
nclude/private/dvr/buffer_hub_client.h
4fe60582f314e381098f8f3bc2e39c5880e9243a 02-Feb-2017 Alex Vakulenko <avakulenko@google.com> Remove references to libchrome

Removed dependencies on libchrome which was used mostly for logging
and switched over to standard Android log macros.

Bug: None
Test: `m -j32` still succeeds
Change-Id: I0a841c19c15c02f9a031af200e82837f9450d88a
ndroid.mk
uffer_hub_client.cpp
ufferhub_tests.cpp
nclude/private/dvr/native_buffer.h
on_buffer.cpp
e4eec20f6263f4a42ae462456f60ea6c4518bb0a 27-Jan-2017 Alex Vakulenko <avakulenko@google.com> Add DaydreamVR native libraries and services

Upstreaming the main VR system components from master-dreamos-dev
into goog/master.

Bug: None
Test: `m -j32` succeeds. Sailfish boots and basic_vr sample app works
Change-Id: I853015872afc443aecee10411ef2d6b79184d051
ndroid.mk
uffer_hub_client.cpp
uffer_hub_rpc.cpp
ufferhub_tests.cpp
nclude/private/dvr/buffer_hub_client.h
nclude/private/dvr/bufferhub_rpc.h
nclude/private/dvr/ion_buffer.h
nclude/private/dvr/native_buffer.h
on_buffer.cpp
ocks/client/private/dvr/buffer_hub_client.h
ocks/gralloc/BUILD.gn
ocks/gralloc/gralloc.cpp
ocks/gralloc/gralloc_mock.h
ocks/ion_buffer/private/dvr/ion_buffer.h
ests/Android.mk
ests/ion_buffer/Android.mk
ests/ion_buffer/ion_buffer-test.cpp