summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--libs/vr/libbufferhub/Android.bp1
-rw-r--r--libs/vr/libbufferhub/ion_buffer.cpp17
-rw-r--r--services/vr/hardware_composer/impl/vr_hwc.cpp2
3 files changed, 13 insertions, 7 deletions
diff --git a/libs/vr/libbufferhub/Android.bp b/libs/vr/libbufferhub/Android.bp
index 452bad0bce..68b9c811dc 100644
--- a/libs/vr/libbufferhub/Android.bp
+++ b/libs/vr/libbufferhub/Android.bp
@@ -25,6 +25,7 @@ localIncludeFiles = [
staticLibraries = [
"libdvrcommon",
"libpdx_default_transport",
+ "libgrallocusage",
]
sharedLibraries = [
diff --git a/libs/vr/libbufferhub/ion_buffer.cpp b/libs/vr/libbufferhub/ion_buffer.cpp
index df9ae81a38..0a6996edc1 100644
--- a/libs/vr/libbufferhub/ion_buffer.cpp
+++ b/libs/vr/libbufferhub/ion_buffer.cpp
@@ -2,6 +2,7 @@
#include <log/log.h>
#define ATRACE_TAG ATRACE_TAG_GRAPHICS
+#include <grallocusage/GrallocUsageConversion.h>
#include <utils/Trace.h>
#include <mutex>
@@ -99,9 +100,10 @@ int IonBuffer::Alloc(uint32_t width, uint32_t height, uint32_t format,
" consumer_usage=%" PRIx64,
width, height, format, producer_usage, consumer_usage);
- sp<GraphicBuffer> buffer =
- new GraphicBuffer(width, height, format, kDefaultGraphicBufferLayerCount,
- producer_usage, consumer_usage);
+ // TODO: forget about split producer/consumer usage
+ sp<GraphicBuffer> buffer = new GraphicBuffer(
+ width, height, format, kDefaultGraphicBufferLayerCount,
+ android_convertGralloc1To0Usage(producer_usage, consumer_usage));
if (buffer->initCheck() != OK) {
ALOGE("IonBuffer::Aloc: Failed to allocate buffer");
return -EINVAL;
@@ -144,9 +146,12 @@ int IonBuffer::Import(buffer_handle_t handle, uint32_t width, uint32_t height,
"producer_usage=%" PRIx64 " consumer_usage=%" PRIx64,
handle, width, height, stride, format, producer_usage, consumer_usage);
FreeHandle();
- sp<GraphicBuffer> buffer = new GraphicBuffer(
- handle, GraphicBuffer::TAKE_UNREGISTERED_HANDLE, width, height, format,
- kDefaultGraphicBufferLayerCount, producer_usage, consumer_usage, stride);
+ sp<GraphicBuffer> buffer =
+ new GraphicBuffer(handle, GraphicBuffer::TAKE_UNREGISTERED_HANDLE, width,
+ height, format, kDefaultGraphicBufferLayerCount,
+ static_cast<uint64_t>(android_convertGralloc1To0Usage(
+ producer_usage, consumer_usage)),
+ stride);
if (buffer->initCheck() != OK) {
ALOGE("IonBuffer::Import: Failed to import buffer");
return -EINVAL;
diff --git a/services/vr/hardware_composer/impl/vr_hwc.cpp b/services/vr/hardware_composer/impl/vr_hwc.cpp
index 29983a7c7f..504b26f696 100644
--- a/services/vr/hardware_composer/impl/vr_hwc.cpp
+++ b/services/vr/hardware_composer/impl/vr_hwc.cpp
@@ -46,7 +46,7 @@ sp<GraphicBuffer> CreateGraphicBuffer(
sp<GraphicBuffer> buffer = new GraphicBuffer(
handle, GraphicBuffer::CLONE_HANDLE, metadata.width, metadata.height,
static_cast<int32_t>(metadata.format), metadata.layerCount,
- metadata.usage, metadata.usage, metadata.stride);
+ metadata.usage, metadata.stride);
if (buffer->initCheck() != OK) {
ALOGE("Failed to create graphic buffer");
return nullptr;