OSDN Git Service

Have the Surface class track the buffer age.
authorIan Elliott <ianelliott@google.com>
Tue, 18 Jul 2017 17:05:49 +0000 (11:05 -0600)
committerIan Elliott <ianelliott@google.com>
Mon, 31 Jul 2017 15:34:11 +0000 (15:34 +0000)
commita2eb34cfbe089deb9a519e9702e17d9dfe26f9e8
tree292e7d3fb3a109268e8e5304b789023b10ecbbbf
parent8cbab7c3c93c1bc9364a81726f02eeacc4a9356b
Have the Surface class track the buffer age.

Have the Surface class track the buffer age, so that Surface::query()
can return the buffer age without having to use a binder call to
BufferQueueProducer::query().  The idea is for
BufferQueueProducer::dequeueBuffer() to return the value, which the
Surface class will cache for later use by Surface::query().

Bug: b/27903668
Test: Use systrace to no ensure query binder call after dequeueBuffer.
Change-Id: I106a7bd27461d381f0bd84df70d804de56a128ab
(cherry picked from commit d11b044864be525a1646f93106ab496195bb8239)
20 files changed:
libs/gui/BufferQueueProducer.cpp
libs/gui/IGraphicBufferProducer.cpp
libs/gui/Surface.cpp
libs/gui/bufferqueue/1.0/H2BGraphicBufferProducer.cpp
libs/gui/include/gui/BufferQueueProducer.h
libs/gui/include/gui/IGraphicBufferProducer.h
libs/gui/include/gui/Surface.h
libs/gui/include/gui/bufferqueue/1.0/H2BGraphicBufferProducer.h
libs/gui/tests/BufferItemConsumer_test.cpp
libs/gui/tests/BufferQueue_test.cpp
libs/gui/tests/IGraphicBufferProducer_test.cpp
libs/gui/tests/Malicious.cpp
libs/gui/tests/StreamSplitter_test.cpp
libs/vr/libbufferhubqueue/buffer_hub_queue_producer.cpp
libs/vr/libbufferhubqueue/include/private/dvr/buffer_hub_queue_producer.h
libs/vr/libbufferhubqueue/tests/buffer_hub_queue_producer-test.cpp
services/surfaceflinger/DisplayHardware/VirtualDisplaySurface.cpp
services/surfaceflinger/DisplayHardware/VirtualDisplaySurface.h
services/surfaceflinger/MonitoredProducer.cpp
services/surfaceflinger/MonitoredProducer.h