diff options
| -rw-r--r-- | libs/vr/libbufferhub/Android.bp | 1 | ||||
| -rw-r--r-- | libs/vr/libbufferhub/ion_buffer.cpp | 17 | ||||
| -rw-r--r-- | services/vr/hardware_composer/impl/vr_hwc.cpp | 2 |
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; |