Merge "Move dvr config data from display manager to display service"
diff --git a/cmds/atrace/atrace.rc b/cmds/atrace/atrace.rc
index 8201d7e..1e0f6f8 100644
--- a/cmds/atrace/atrace.rc
+++ b/cmds/atrace/atrace.rc
@@ -128,11 +128,6 @@
write /sys/kernel/debug/tracing/tracing_on 0
write /sys/kernel/tracing/tracing_on 0
- # Set the trace clock to boot; falling back to mono or boot
- write /d/tracing/trace_clock global
- write /d/tracing/trace_clock mono
- write /d/tracing/trace_clock boot
-
# Allow only the shell group to read and truncate the kernel trace.
chown root shell /sys/kernel/debug/tracing/trace
chown root shell /sys/kernel/tracing/trace
diff --git a/include/ui b/include/ui
new file mode 120000
index 0000000..2fb3147
--- /dev/null
+++ b/include/ui
@@ -0,0 +1 @@
+../libs/ui/include/ui
\ No newline at end of file
diff --git a/libs/gui/Surface.cpp b/libs/gui/Surface.cpp
index 94d8578..83ebbe8 100644
--- a/libs/gui/Surface.cpp
+++ b/libs/gui/Surface.cpp
@@ -1231,7 +1231,7 @@
for (int i = 0; i < NUM_BUFFER_SLOTS; i++) {
if (mSlots[i].buffer != NULL &&
- mSlots[i].buffer->handle == buffer->handle) {
+ mSlots[i].buffer->getId() == buffer->getId()) {
if (mReportRemovedBuffers) {
mRemovedBuffers.push_back(mSlots[i].buffer);
}
diff --git a/libs/ui/Android.bp b/libs/ui/Android.bp
index 8795322..d9cfed7 100644
--- a/libs/ui/Android.bp
+++ b/libs/ui/Android.bp
@@ -91,6 +91,8 @@
"libnativebase_headers",
],
+ export_include_dirs: ["include"],
+
export_static_lib_headers: [
"libarect",
"libmath",
diff --git a/include/ui/ANativeObjectBase.h b/libs/ui/include/ui/ANativeObjectBase.h
similarity index 100%
rename from include/ui/ANativeObjectBase.h
rename to libs/ui/include/ui/ANativeObjectBase.h
diff --git a/include/ui/BufferQueueDefs.h b/libs/ui/include/ui/BufferQueueDefs.h
similarity index 100%
rename from include/ui/BufferQueueDefs.h
rename to libs/ui/include/ui/BufferQueueDefs.h
diff --git a/include/ui/ColorSpace.h b/libs/ui/include/ui/ColorSpace.h
similarity index 100%
rename from include/ui/ColorSpace.h
rename to libs/ui/include/ui/ColorSpace.h
diff --git a/include/ui/DebugUtils.h b/libs/ui/include/ui/DebugUtils.h
similarity index 100%
rename from include/ui/DebugUtils.h
rename to libs/ui/include/ui/DebugUtils.h
diff --git a/include/ui/DisplayInfo.h b/libs/ui/include/ui/DisplayInfo.h
similarity index 100%
rename from include/ui/DisplayInfo.h
rename to libs/ui/include/ui/DisplayInfo.h
diff --git a/include/ui/DisplayStatInfo.h b/libs/ui/include/ui/DisplayStatInfo.h
similarity index 100%
rename from include/ui/DisplayStatInfo.h
rename to libs/ui/include/ui/DisplayStatInfo.h
diff --git a/include/ui/Fence.h b/libs/ui/include/ui/Fence.h
similarity index 100%
rename from include/ui/Fence.h
rename to libs/ui/include/ui/Fence.h
diff --git a/include/ui/FenceTime.h b/libs/ui/include/ui/FenceTime.h
similarity index 100%
rename from include/ui/FenceTime.h
rename to libs/ui/include/ui/FenceTime.h
diff --git a/include/ui/FloatRect.h b/libs/ui/include/ui/FloatRect.h
similarity index 100%
rename from include/ui/FloatRect.h
rename to libs/ui/include/ui/FloatRect.h
diff --git a/include/ui/FrameStats.h b/libs/ui/include/ui/FrameStats.h
similarity index 100%
rename from include/ui/FrameStats.h
rename to libs/ui/include/ui/FrameStats.h
diff --git a/include/ui/Gralloc2.h b/libs/ui/include/ui/Gralloc2.h
similarity index 100%
rename from include/ui/Gralloc2.h
rename to libs/ui/include/ui/Gralloc2.h
diff --git a/include/ui/GraphicBuffer.h b/libs/ui/include/ui/GraphicBuffer.h
similarity index 100%
rename from include/ui/GraphicBuffer.h
rename to libs/ui/include/ui/GraphicBuffer.h
diff --git a/include/ui/GraphicBufferAllocator.h b/libs/ui/include/ui/GraphicBufferAllocator.h
similarity index 100%
rename from include/ui/GraphicBufferAllocator.h
rename to libs/ui/include/ui/GraphicBufferAllocator.h
diff --git a/include/ui/GraphicBufferMapper.h b/libs/ui/include/ui/GraphicBufferMapper.h
similarity index 100%
rename from include/ui/GraphicBufferMapper.h
rename to libs/ui/include/ui/GraphicBufferMapper.h
diff --git a/include/ui/HdrCapabilities.h b/libs/ui/include/ui/HdrCapabilities.h
similarity index 100%
rename from include/ui/HdrCapabilities.h
rename to libs/ui/include/ui/HdrCapabilities.h
diff --git a/include/ui/PixelFormat.h b/libs/ui/include/ui/PixelFormat.h
similarity index 100%
rename from include/ui/PixelFormat.h
rename to libs/ui/include/ui/PixelFormat.h
diff --git a/include/ui/Point.h b/libs/ui/include/ui/Point.h
similarity index 100%
rename from include/ui/Point.h
rename to libs/ui/include/ui/Point.h
diff --git a/include/ui/Rect.h b/libs/ui/include/ui/Rect.h
similarity index 100%
rename from include/ui/Rect.h
rename to libs/ui/include/ui/Rect.h
diff --git a/include/ui/Region.h b/libs/ui/include/ui/Region.h
similarity index 100%
rename from include/ui/Region.h
rename to libs/ui/include/ui/Region.h
diff --git a/include/ui/UiConfig.h b/libs/ui/include/ui/UiConfig.h
similarity index 100%
rename from include/ui/UiConfig.h
rename to libs/ui/include/ui/UiConfig.h
diff --git a/libs/vr/libdisplay/include/private/dvr/shared_buffer_helpers.h b/libs/vr/libdisplay/include/private/dvr/shared_buffer_helpers.h
index 249f410..ed06515 100644
--- a/libs/vr/libdisplay/include/private/dvr/shared_buffer_helpers.h
+++ b/libs/vr/libdisplay/include/private/dvr/shared_buffer_helpers.h
@@ -49,6 +49,9 @@
// If we just own the IonBuffer outright, it's here.
std::unique_ptr<IonBuffer> owned_buffer_ = nullptr;
+ // The last time we connected to the display service.
+ int64_t last_display_service_connection_ns_ = 0;
+
// If we do not own the IonBuffer, it's here
IonBuffer* buffer_ = nullptr;
diff --git a/libs/vr/libdisplay/shared_buffer_helpers.cpp b/libs/vr/libdisplay/shared_buffer_helpers.cpp
index 00bad88..6ebf487 100644
--- a/libs/vr/libdisplay/shared_buffer_helpers.cpp
+++ b/libs/vr/libdisplay/shared_buffer_helpers.cpp
@@ -1,7 +1,13 @@
+#include <private/dvr/clock_ns.h>
#include <private/dvr/shared_buffer_helpers.h>
namespace android {
namespace dvr {
+namespace {
+
+// We will not poll the display service for buffers more frequently than this.
+constexpr size_t kDisplayServiceTriesPerSecond = 2;
+} // namespace
CPUMappedBuffer::CPUMappedBuffer(DvrGlobalBufferKey key, CPUUsageMode mode)
: buffer_key_(key), usage_mode_(mode) {
@@ -30,8 +36,16 @@
void CPUMappedBuffer::TryMapping() {
// Do we have an IonBuffer for this shared memory object?
if (buffer_ == nullptr) {
+ // Has it been too long since we last connected to the display service?
+ const auto current_time_ns = GetSystemClockNs();
+ if ((current_time_ns - last_display_service_connection_ns_) <
+ (1e9 / kDisplayServiceTriesPerSecond)) {
+ // Early exit.
+ return;
+ }
+ last_display_service_connection_ns_ = current_time_ns;
+
// Create a display client and get the buffer.
- // TODO(okana): We might want to throttle this.
auto display_client = display::DisplayClient::Create();
if (display_client) {
auto get_result = display_client->GetGlobalBuffer(buffer_key_);
@@ -39,8 +53,8 @@
owned_buffer_ = get_result.take();
buffer_ = owned_buffer_.get();
} else {
- ALOGW("Could not get named buffer from pose service : %s(%d)",
- get_result.GetErrorMessage().c_str(), get_result.error());
+ // The buffer has not been created yet. This is OK, we will keep
+ // retrying.
}
} else {
ALOGE("Unable to create display client for shared buffer access");