diff --git a/libgralloc/gpu.cpp b/libgralloc/gpu.cpp index 628494bb..60b57fe0 100644 --- a/libgralloc/gpu.cpp +++ b/libgralloc/gpu.cpp @@ -115,6 +115,10 @@ int gpu_context_t::gralloc_alloc_buffer(size_t size, int usage, flags |= private_handle_t::PRIV_FLAGS_CAMERA_READ; } + if (usage & GRALLOC_USAGE_HW_COMPOSER) { + flags |= private_handle_t::PRIV_FLAGS_HW_COMPOSER; + } + flags |= data.allocType; int eBaseAddr = int(eData.base) + eData.offset; private_handle_t *hnd = new private_handle_t(data.fd, size, flags, diff --git a/libgralloc/gralloc_priv.h b/libgralloc/gralloc_priv.h index c382a90a..eefda210 100644 --- a/libgralloc/gralloc_priv.h +++ b/libgralloc/gralloc_priv.h @@ -157,6 +157,7 @@ struct private_handle_t : public native_handle { PRIV_FLAGS_VIDEO_ENCODER = 0x00010000, PRIV_FLAGS_CAMERA_WRITE = 0x00020000, PRIV_FLAGS_CAMERA_READ = 0x00040000, + PRIV_FLAGS_HW_COMPOSER = 0x00080000, }; // file-descriptors