History log of /frameworks/native/libs/vr/libdvr/dvr_buffer.cpp
Revision Date Author Comments (<<< Hide modified files) (Show modified files >>>)
d15ec65de8b9b4b2bb7e926f1d140bdee386e34c 16-Apr-2018 Jiwen Cai <jwcai@google.com> Merge "Deprecate legacy and unused DVR API" into pi-dev
b53da4fdf32337382175800ce89ca9ad0962a6e4 13-Apr-2018 Jiwen 'Steve' Cai <jwcai@google.com> dvr_read_buffer_queue: don't stop releasing buffer

We used to abort ReleaseBuffer logic if we cannot verify that the buffer
being released is in the target queue. However, in certain edge case,
this could be true and we still want to release the buffer. One example
is when a ProducerQueue closes and triggers its ConsumerQueue to remove
all its buffers. In this case, ConsumerQueue::ReleaseBuffer() should
still function properly.

Bug: 77982072
Test: dvr_buffer_queue-test
Change-Id: I6d8e2525470c8e3d78862d3f0753c8735d528b53
/frameworks/native/libs/vr/libdvr/dvr_buffer.cpp
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/dvr_buffer.cpp
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/dvr_buffer.cpp
0cb04d33d529af1c49725efbe7770f81422ceafa 31-May-2017 Okan Arikan <okana@google.com> Add dvrBufferGlobalLayoutVersion which returns the version number for
the global buffers.

Bug: 62228826
Test: dvrBufferGlobalLayoutVersion == kSharedBufferLayoutVersion
Change-Id: I08eaca128ea5c84739924ab839651088e10c65bc
/frameworks/native/libs/vr/libdvr/dvr_buffer.cpp
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/dvr_buffer.cpp
b1325574324a7b35f21cdf477bd114dc2ef357d9 19-Apr-2017 TreeHugger Robot <treehugger-gerrit@google.com> Merge "DVRBuffer functions should acquire AHardwareBuffer" into oc-dev
a5d404d8d4f6bb4efa95eaf6d857bc03224606fb 19-Apr-2017 Hendrik Wagenaar <hendrikw@google.com> DVRBuffer functions should acquire AHardwareBuffer

Bug: 37488135
Test: Updated DVR buffer tests
Change-Id: Ia255aca571e7162382e7be3c13be8ea192adbc90
/frameworks/native/libs/vr/libdvr/dvr_buffer.cpp
28b58bfdcce253358120d1554755d71c2226f8fd 18-Apr-2017 John Bates <jbates@google.com> [vr] Add DVR API to get native handle for buffers

This is required to support GPU late latching features in
VRCore. This can be removed once vendors support using
AHardwareBuffer instead of int fd for shared memory
buffer objects.

Bug: b/37472908
Test: builds and runs
Change-Id: I2a957723c4025773181071491a45a53b83e5ba64
/frameworks/native/libs/vr/libdvr/dvr_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
/frameworks/native/libs/vr/libdvr/dvr_buffer.cpp
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/dvr_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
/frameworks/native/libs/vr/libdvr/dvr_buffer.cpp