History log of /frameworks/native/libs/vr/libbufferhubqueue/include/private/dvr/buffer_hub_queue_client.h
Revision Date Author Comments (<<< Hide modified files) (Show modified files >>>)
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
/frameworks/native/libs/vr/libbufferhubqueue/include/private/dvr/buffer_hub_queue_client.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
/frameworks/native/libs/vr/libbufferhubqueue/include/private/dvr/buffer_hub_queue_client.h
2251d822dac2a96aad4184a6fdc2690f0a58af7c 21-Apr-2017 Corey Tabaka <eieio@google.com> Remove the VR compositor from the framework.

Remove the VR compositor framework and enable out-of-process VR composition
in VrCore.

This CL seems large due to the ripple effect of changing the VrFlinger
API and protocol types. There are three major modules that require
concurrent changes:
1. Protocol definitions and low-level VrFlinger API in libdisplay.
* Additional changes needed to keep old interfaces working for
a short time while replacing the dependent code (dvrGraphics*).
2. VrFlinger service implementation changes to support VrCore compositor
and the removal of the internal compositor.
3. Changes to libdvr platform library API due to changes in #1 and #2.

Because of the nature of the interdependence of types and other defs it is
difficult to break this CL into smaller chunks. However, review of the three
major modules (libdisplay, libdvr, and libvrflinger) may be done separately
to ease the mental burden on reviewers.

Change Summary:
- Remove obsolete screenshot service. VR screenshots will be implemented
by VrCore.
- Update display protocol definitions for changes in VrFlinger service
requirements. The majority of the changes in libdisplay are a
consequence of these protocol and service changes.
- Update VrFlinger to support two kinds of surfaces:
1. Application - use by VR apps.
2. Direct - used by VrCore (protected by permission check).
- Remove VrFlinger internal compositor and GL context.
- Remove obsolete debug console.
- Update VrFlinger hardware composer interface to handle direct
surfaces only, removing the concept of GPU (compositor) layers.
- Update display manager to expose access to application surface info
to VrCore (protected by permission check).
- Update libdvr platform library interfaces for changes to VrFlinger
API / protocol.
- Clean up libdvr API struct setup using a common include.
- Add C++ header-only helpers for DVR platform library opaque types.

Bug: 36401174
Test: Build; run VrFlinger display test tool.
Change-Id: I15abfde5f72dbb3725a3f58621486afba6b64902
/frameworks/native/libs/vr/libbufferhubqueue/include/private/dvr/buffer_hub_queue_client.h
2b99ee560ba14b617ebb4c1997e8b8004f2de22f 04-May-2017 Corey Tabaka <eieio@google.com> Support multiple consumer queues.

- Add support for importing posted buffers when spawing a new
consumer queue.
- Correctly handle adding signaled buffers to epoll with edge
triggered mode set.
- Add test for multi-consumer behavior.

Bug: 36401174
Test: buffer_hub_queue-test passes.
Change-Id: Id09f01502a1b18bf80a0ae465c2941b548cde2e4
/frameworks/native/libs/vr/libbufferhubqueue/include/private/dvr/buffer_hub_queue_client.h
9d8bd09569322f452fddf91e581904f1e8f6849c 26-Apr-2017 Corey Tabaka <eieio@google.com> Return pdx::Status<T> from BufferHubQueue::Dequeue.

Switch to using Status<T> to return buffers or meaningful errors
from BufferHubQueue::Dequeue. This enables determining whether an
error is normal (e.g. timeout) or abnormal (e.g. disconnect).

Bug: 36401174
Test: buffer_hub_queue-test passes.
Change-Id: Ifef5f737a5e737b70d19bdbffd7544a993438e1c
/frameworks/native/libs/vr/libbufferhubqueue/include/private/dvr/buffer_hub_queue_client.h
8a4e6a90e6b7edf73fa0d79dd5b439f8e52eb9f0 20-Apr-2017 Corey Tabaka <eieio@google.com> Add support for consumer queue initial import and hangup.

- Add support for consumer queues to import buffers that are created
before the consumer queue is created, making multi-consumer queue
patterns possible. This is essential for VrFlinger operation.
- Add support for notifying consumer queues when the producer queue
hangs up.
- Correct the epoll event loop to check for hangups even when buffers
are available.
- Add method to retrieve the event fd from a queue.
- Add trace logging and minor cleanup.
- Improve bufferhubd dump state output.

Bug: 36401174
Test: build; bufferhub tests pass.
Change-Id: Idd6f38a3341c048192062734e288d11de48bc4d4
/frameworks/native/libs/vr/libbufferhubqueue/include/private/dvr/buffer_hub_queue_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
/frameworks/native/libs/vr/libbufferhubqueue/include/private/dvr/buffer_hub_queue_client.h
cb4751c52a5625a22b6a11b4de537ff026d9bfe3 15-Apr-2017 Jiwen 'Steve' Cai <jwcai@google.com> Fix minor corner cases in BufferHubQueueProducer

1/ Set reasonable return value BufferHubQueueProducer::query.
2/ Don't error out for setSharedBufferMode(false),
setAutoRefresh(false), as they are just setting default values again.
3/ Supports addition buffer metadata: transformt, crop,
data_format (a.k.a. color_format).
4/ This also changes BufferHubQueueProducer to be based of
BnInterface<IGraphicBufferProducer> so that itself can be passed via Binder.

Bug: 37342387
Bug: 36907193
Test: exoplayer_demo
Change-Id: Ie00bb79f6a249e09905ae52f85a85a67744cc90d
/frameworks/native/libs/vr/libbufferhubqueue/include/private/dvr/buffer_hub_queue_client.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
/frameworks/native/libs/vr/libbufferhubqueue/include/private/dvr/buffer_hub_queue_client.h
5bbb45e038b42dba3550738ad6445527776e0861 07-Apr-2017 TreeHugger Robot <treehugger-gerrit@google.com> Merge changes from topic 'vrflinger-prep' into oc-dev

* changes:
libpdx: Decay variant types to correctly handle cv-reference types.
libpdx: Fix forward declarations using default template args.
Add additional accessors to IonBuffer and BufferHubBuffer.
Update BufferHubQueue in preparation for VrFlinger refactor.
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
/frameworks/native/libs/vr/libbufferhubqueue/include/private/dvr/buffer_hub_queue_client.h
960bcfffefa76d535c5aecd303d755be3fbc59f1 05-Apr-2017 Jiwen 'Steve' Cai <jwcai@google.com> dvr_api GetExternalSurface returns ANativeWindow

Now that we have a public NDK API to convert an ANativeWindow to a Java
Surface, we no longer need to mess with Jni and libandroid_runtime in
libdvr.

See more information at:
http://ag/#/q/topic:ANativeWindow_toSurface+(status:open+OR+status:merged)

Also, as a side effect, we are now free to convert this library to use
Android.bp (though we probably want to hold off for a while).

Bug: 36266201
Test: Built and ran dvr_buffer_queue-test
Change-Id: Ia0f6a8735c7d508195c30e3c7d040791e13a6ce3
/frameworks/native/libs/vr/libbufferhubqueue/include/private/dvr/buffer_hub_queue_client.h
1601bcfa9cdc07cea8f5980349608e1526690db5 24-Mar-2017 Jiwen 'Steve' Cai <jwcai@google.com> Harden BufferHubQueueProducerTest

This is a test that covers our implementation of bufferhubqueue-based
IGraphicBufferProducer, which eventually enables VrCore/VrFlinger to
access buffers produced from other Android compontents. Note that the
gtest itself is a (slightly) modified version of
IGraphicBufferProducer_test.cpp.

This also improves BufferHubQueue in the following way to support more
features of android::BufferQueue.
1/ Supports more buffer queue parameters that we query.
2/ BufferHubQueue (the PDX client) now supports default width, height,
and format configuration.
3/ Change default max_dequeue_buffer_count to 1 (which is the same
behavior current android::BufferQueue adopts).
4/ Fill in |QueueBufferOutput| during |enqueueBuffer|.

Bug: 34197998
Bug: 36266201
Test: build and run buffer_hub_queue_producer-test
Change-Id: I9d3e8bb66dbfb66e67ab7b0e5093e49a3f374e9c
/frameworks/native/libs/vr/libbufferhubqueue/include/private/dvr/buffer_hub_queue_client.h
2d82ceb8dc1bc9066bd5ad98ee0926289cb0b7cc 23-Mar-2017 Jiwen 'Steve' Cai <jwcai@google.com> Add dvr_buffer_queue C API

Bug: 36401767
Bug: 32213274
Bug: 36266201
Test: build and ran dvr_buffer_queue-test
Change-Id: Icd8d063bd8b7adb15bf67f7e543b87dad1c32a68
/frameworks/native/libs/vr/libbufferhubqueue/include/private/dvr/buffer_hub_queue_client.h
ed6543224138fd753eeea909918bb8d1d2efb1e6 14-Mar-2017 Jiwen 'Steve' Cai <jwcai@google.com> Expose acquire_fence though ConsumerQueue::Dequeue

The current compositor implementation will be refactored to use
BufferHubQueue instead of ad-hoc BufferHub operations. We need this to
expose release_fence to compositor so that it can wait for buffers
to become avaiable by checking fence properly.

Bug: 36033302
Bug: 36148608
Test: Built and ran buffer_hub_queue-test
Change-Id: I75cfcb02e06a4b9e7e89b89690ca2d92ee09a678
/frameworks/native/libs/vr/libbufferhubqueue/include/private/dvr/buffer_hub_queue_client.h
dc14e5bf86b6999a290b64deb44418a8f205296c 25-Jan-2017 Jiwen 'Steve' Cai <jwcai@google.com> BufferHubQueue: ClearAvailable on consumer import

This fixes the issue that ConsumerQueue keeps receiving
|OnBufferAllocated| events when using UDS based libpdx. It also hardens
error handling during consumer imports.

Bug: 34690159
Test: Build, flash, buffer_hub_queue-test pases
Change-Id: I4f739a2869df851ed836f39122b3eba95697f3f6
/frameworks/native/libs/vr/libbufferhubqueue/include/private/dvr/buffer_hub_queue_client.h
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
/frameworks/native/libs/vr/libbufferhubqueue/include/private/dvr/buffer_hub_queue_client.h