diff --git a/libgralloc/framebuffer.cpp b/libgralloc/framebuffer.cpp index 48f3bb0..9565127 100644 --- a/libgralloc/framebuffer.cpp +++ b/libgralloc/framebuffer.cpp @@ -270,6 +270,15 @@ int mapFrameBufferLocked(struct private_module_t* module) uint32_t line_length = (info.xres * info.bits_per_pixel / 8); info.yres_virtual = (size * numberOfBuffers) / line_length; + struct msmfb_metadata metadata; + + metadata.op = metadata_op_base_blend; + metadata.flags = 0; + metadata.data.blend_cfg.is_premultiplied = 1; + if(ioctl(fd, MSMFB_METADATA_SET, &metadata) == -1) { + ALOGW("MSMFB_METADATA_SET failed to configure alpha mode"); + } + uint32_t flags = PAGE_FLIP; if (ioctl(fd, FBIOPUT_VSCREENINFO, &info) == -1) { info.yres_virtual = size / line_length;