History log of /frameworks/native/libs/vr/libdvr/include/dvr/dvr_buffer_queue.h
Revision Date Author Comments (<<< Hide modified files) (Show modified files >>>)
0262d6035ed6a382b2b3c5582fe6c38a2130fd63 11-Apr-2018 Jiwen 'Steve' Cai <jwcai@google.com> Deprecate legacy and unused DVR API

Bug: 65469368
Test: Build system and run VrHome; dvr_api-test
Change-Id: I366549319e96ed936815f100f8e64e6a1c4f52bb
/frameworks/native/libs/vr/libdvr/include/dvr/dvr_buffer_queue.h
638b7f747df50374d1e91c2496da41f293394e19 08-Sep-2017 Jiwen 'Steve' Cai <jwcai@google.com> Overhual DvrBuffer and DvrBufferQueue API: Step 1

Adding new APIs:

dvrWriteBufferQueueGainBuffer
dvrWriteBufferQueuePostBuffer
dvrReadBufferQueueAcquireBuffer
dvrReadBufferQueueReleaseBuffer

Those new APIs streamlines DVR buffer operations:
1/ It allows static Dvr{Read,Write}Buffer objects to be statically
allocated with the queue.
2/ Symentric Gain/Post on WriteBufferQueue and Acquire/Release on
ReadBufferQueue.
3/ Use fixed buffer metadata.
4/ This is also a prerequisite to using shared memory based metadata and
async buffer IPC.

More details and discussion at: go/gvr-async-bufferhub

Special note regarding DVR API order in this CL: The new buffer queue
API entries are inserted before new PoseClient API as the PoseClient is
still blocked from being released and the new BufferQueue APIs are
expected to be released sooner than that.

Bug: 65455724
Bug: 65468551
Bug: 65458332
Bug: 65165821
Test: dvr_api-test
Change-Id: Iae8e7787d696d72ebf7457df9f98f4467cd20932
/frameworks/native/libs/vr/libdvr/include/dvr/dvr_buffer_queue.h
5b5d4e11949ae5fbd370927e721480f91c079857 30-Aug-2017 Jiwen 'Steve' Cai <jwcai@google.com> Rename WriteBufferQueueGetExternalSurface: Step 1

Add new API WriteBufferQueueGetANativeWindow and forward all calls to
the old one with a warning.

Bug: 65133502
Test: dvr_api-test
Change-Id: I6787bc5d341f7e36a8a35102a5ce651c3aa296f8
/frameworks/native/libs/vr/libdvr/include/dvr/dvr_buffer_queue.h
d741b3dfbb60eadaa2c1835e347825e18c19a802 15-Aug-2017 Jiwen 'Steve' Cai <jwcai@google.com> Add dvr API to create write queue locally

Currently, this API is mostly for testing purpose. But also note that
this API might eventually deemed useful if BufferHub-based ANativeWindow
becomes binder parseable.

Bug: 37517761, 64723700
Test: dvr_api-test --gtest_filter='DvrBufferQueueTest.*'
Change-Id: I9429079a4936d474fabb0026c38d3a1a4dcab92e
/frameworks/native/libs/vr/libdvr/include/dvr/dvr_buffer_queue.h
97274870fc8229b507fc71566c0502eb322655cf 21-Jul-2017 Jiwen 'Steve' Cai <jwcai@google.com> Add dvrReadBufferQueueGetEventFd

We need to expose the read queue's event fd, so that a caller can epoll
on a set of queues' fd for efficient buffer acquisition.

Bug: 62359843
Test: dvrapi-test

Change-Id: I1b9271afed9ee6c6675551402cd3f5a66e98ebe2
/frameworks/native/libs/vr/libdvr/include/dvr/dvr_buffer_queue.h
42c6f3adbc8473efb0d375e1d564d1522723c6be 01-Jul-2017 Jiwen 'Steve' Cai <jwcai@google.com> dvrReadBufferQueueDequeue: allow empty metadata

Currently, when there is no metadata on the read buffer queue, we have
to pass in dummy out_metadata; otherwise the API always return
-EINVAL. This CL allows (nullptr, 0) as legit input and add test to
cover that.

Bug: 62958474
Test: Ran the updated DvrBufferQueueTest
Change-Id: I0ad666006a5d93b67a48b9c34f27e325dfa9a419
/frameworks/native/libs/vr/libdvr/include/dvr/dvr_buffer_queue.h
0b80155bf5c27b47c160d1904ad442842dc8f0c5 24-May-2017 Jiwen 'Steve' Cai <jwcai@google.com> DvrBufferQueue: Add basic event callbacks

Currently, there is no guarantee of thread safty and on which thread
those callbacks are going to be fired.

Three new DVR APIs introduced:
1/ dvrReadBufferQueueSetBufferAvailableCallback
2/ dvrReadBufferQueueSetBufferRemovedCallback
3/ dvrReadBufferQueueHandleEvents

Bug: 36748012
Test: buffer_hub_queue-test, dvr_api-test
Change-Id: I79900c9d205f1808b02400b379c79adb366a1104
/frameworks/native/libs/vr/libdvr/include/dvr/dvr_buffer_queue.h
656f406fcb0c45fd3c729a513bdd3f353cc6ec1f 22-May-2017 Jiwen 'Steve' Cai <jwcai@google.com> DvrWriteBufferQueue: support buffer resizing

Currently, the buffer resising is implemented at the C API's
implementation level, i.e. it's a pure client side logic out of the core
BufferHubQueue C++/PDX implementation. The logic is similar to
BufferHubQueueProducer's buffer resizing logic.

Other minor changes:
1/ Use ProducerQueueConfig in DisplaySurface as well, and plumb default
width, height, and format to bufferhubd when a BufferHubQueue is created
through a Display Surface.
2/ Added detailed dvr_buffer_queue comments.
3/ Since we now have more and more logic in dvr_buffer_queue, refactored
Dvr{Read,Write}BufferQueue to be C++-styled class.

Bug: 38324405
Test: buffer_hub_queue_producer-test, buffer_hub_queue-test, dvr_api-test
Change-Id: I7186fc04e84eafda46eca316a94739bb3b5c07ca
/frameworks/native/libs/vr/libdvr/include/dvr/dvr_buffer_queue.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/libdvr/include/dvr/dvr_buffer_queue.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/libdvr/include/dvr/dvr_buffer_queue.h
19ef01c88daa165279c3555fe35d896e8b6336a5 29-Mar-2017 Jiwen 'Steve' Cai <jwcai@google.com> Return jobject when getting android Java Surface

This logic is originally borrowed from similar API from shim_gvr API
where we cannot explicity deps on JNI.h in the public header. This
constrain no longer exists as libdvr is an Android platform library.

Bug: 2013449
Test: Built libdvr
Change-Id: Ide72f5fb706cd24e13507749216d7708f1f40fcc
/frameworks/native/libs/vr/libdvr/include/dvr/dvr_buffer_queue.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/libdvr/include/dvr/dvr_buffer_queue.h