OSDN Git Service

libui: Apply GRALLOC_USAGE_ALLOC_MASK during alloc
authorDan Stoza <stoza@google.com>
Fri, 29 May 2015 19:48:04 +0000 (12:48 -0700)
committerDan Stoza <stoza@google.com>
Fri, 29 May 2015 19:52:43 +0000 (19:52 +0000)
Applies GRALLOC_USAGE_ALLOC_MASK to the incoming usage bits before
calling alloc on the gralloc module. This filters out the new flag
GRALLOC_USAGE_FOREIGN_BUFFERS, which is used to send a hint to the
producer, but which does not affect the allocation of buffers.

Bug: 19801661
Change-Id: Ia37a3eddba2e97598e50ac3e10877430adfa9247

libs/ui/GraphicBufferAllocator.cpp

index 85e9675..9b265af 100644 (file)
@@ -104,6 +104,9 @@ status_t GraphicBufferAllocator::alloc(uint32_t width, uint32_t height,
     // we have a h/w allocator and h/w buffer is requested
     status_t err;
 
+    // Filter out any usage bits that should not be passed to the gralloc module
+    usage &= GRALLOC_USAGE_ALLOC_MASK;
+
     int outStride = 0;
     err = mAllocDev->alloc(mAllocDev, static_cast<int>(width),
             static_cast<int>(height), format, static_cast<int>(usage), handle,