Add support for the userspace to make MDP
avoid flushing the source image buffer
This change is needed if we are using
cached video buffers. Since the MDP driver
used to flush the entire source buffer before
the blit, it was a huge overhead in terms of CPU
usage for cases where the entire buffer didn't
really need flushing. Any clients that modify
the video buffers with CPU should now ensure that
they flush the region that they modified (if the
memory is cached)
Change-Id: I94572644ed5aefac3184b45df05d10be0f2c7660
Modify the GRALLOC_MODULE_PERFORM_CREATE_HANDLE_FROM_BUFFER function
to take into account the memory region that the buffer has been
allocated from.
Change-Id: Ifac7b117956b39e54911b1b7693c0f4b959c630b
CRs-fixed: 284900
ashmem ioctl does not allow the ashmem region to be invalidated
anymore, so we have to flush the ashmem region instead of simply
invalidating it.
Change-Id: I912d2cf293e6ad39d40fb04fd0a1d21700a3907b
Update the gralloc HAL to match commit:
commit 4d3c9ca6fabf2b0111ef6b567df7d244e124b9c2
Author: Arun Kumar K.R <akkr@codeaurora.org>
Date: Fri Dec 17 13:14:58 2010 -0800
libgralloc-qsd8k: Add support for non-aligned width on HDMI
While creating overlay channel for HDMI consider the aligned
width and set the crop rectangle to the actual width and height.
Change-Id: I36183bf1fa68e5c8ed80f1efbb5c535a060e0db0
PRIV_FLAGS_NEEDS_FLUSH will trigger an ioctl call into the PMEM
driver in unlock(), so it makes not sense to set this flag for
non pmem buffers.
Change-Id: Ie1e077c10df86d3689b82fa6ce5d6c856fc95688
The purpose of this change is to add support for allocating gralloc buffers
from either /dev/pmem or /dev/pmem_adsp depending on the usage flags. It does
this by factoring out and abstracting the interactions with the pmem device.
For /dev/pmem allocations, the kernel allocator is not used, so a single master
fd is opened, and all the allocations are sub-allocated from that by gralloc.
For /dev/pmem_adsp the kernel allocator is used, so it simply opens a new fd
for each allocation.
A very basic unit test that can be run on the host is included. It requires
gtest, so to run it on a host system gtest must (currently) be compiled with
BUILD_WITH_ASTL=true.
Change-Id: If2ae0151698fad8107e18e808a3fa012a846263f
make sure to reject incompatible buffers in special function
GRALLOC_MODULE_PERFORM_CREATE_HANDLE_FROM_BUFFER
we use ioctl(PMEM_GET_SIZE) to validate that the given buffer is indeed
a pmem buffer.
add a way to convert a mapped "pushbuffer" buffer to a gralloc handle
which then can be safely used by surfaceflinger
also make sure to not send empty rectangles to the MDP.