Incorrect source stride setting for software YUV buffer copy causes
the software converter used by apps like Video Telephony app to
crash. Correct the source stride setting passed to YUV buffer memcpy.
CRs-Fixed: 346928
(cherry picked from commit db92bedc081365e447233bbdd6e070e88a5cbc19)
Change-Id: I5edf7ff4d38e8b55eece9e856adeeab972e80fa0
Premultiplied alpha is now supported on MDP3.x.
Enable it from userspace.
Also make flags as int since values are exceeding 255(uint8_t).
CRs-fixed: 347803
(cherry picked from commit 3dcbcb1f8672067f85e2f53e6321c27df6d6fbe6)
Change-Id: I865379b368726e95cab7aa669fbf27d5207240c5
- Fix the copybit source rect calculation for 180 and 270
degrees rotation. Calculate blit rects based on the source crop.
CRs-fixed: 337366
(cherry picked from commit 06aa97757bd7023234d3852801e05e077aaa1d2f)
Change-Id: Iba2e230acd84271fc5649e06918824752aa90670
Fix the software conversion from YV12 to YUV_420_SP
by reading the chroma based on chroma padding involved.
CRs-fixed: 333784
(cherry picked from commit b22b6b191644e3ef618d122d30cef4bb9f87019d)
Change-Id: Ie84c1cbb2635a6197c5a907dac1e720c29a66e6c
Use a temporary buffer to replace inplace conversion
CRs-fixed: 333784
(cherry picked from commit 927542660e4c6106f8062c79bd6461c7fef55b4a)
Change-Id: I044bdaa31faea98552e35267bb78318317d68866
The x and y coordinates are derived properly from clip and dest rect with this fix.
- Even if rotation is involved, we need to start reading from the same point.
- Do scaling operation on the delta, and then add the source left and top values.
- If we scale the result of addition, we will not be reading source correctly.
CRs-fixed: 324782
Change-Id: I2876c6a8e48acbf03f80713338f9a17c57863aaa
Assign the correct blending value
for MDP 3.0, earlier it was
incorrectly assigned to zero
for cases where blending was not needed.
Change-Id: Icec6541616c8a9dc6ffc0e99c5b2936389799656
Add the following optimizations for the temporary buffer:
- Initialize the temp buffer only when required.
- The temp buffer is not deallocated/released unless there is a
change in size of the temporary buffer.
Change-Id: I833851b1feff0a7457ad6847f18a988e002d61d5
CRs-fixed: 319337
Android YUV formats are aligned to 16pixels, while C2D requires 32pixel
aligned. Use a temp buffer to do the conversion.
Change-Id: Iff93b56e152460255d480dc703dabbcdb3697995
Add support to set the framebuffer width and height in the copybit
context. This parameter will be set for composition using c2d where
the c2d target is calculated based on the framebuffer width and height.
Change-Id: Ica0f7622bed305c0f56dd0a16b35406c28600fd8
Add the copybit header file in the libcopybit directory. Modify the
copybit source files to read from the correct header file.
Change-Id: I8d2f6758c7d1fbbb6ffc513d899b62b3c0013f5e
The patch sets the status as COPYBIT_FAILURE in case of an error in
open_copybit() as it needs to return the correct status. It also sets
the copybit device handle as NULL.
Change-Id: I3c35d163049763427ad92030cb1d88d72f7680fb
Set the premultiplied format for the source and destination formats if
COPYBIT_PREMULTIPLIED_ALPHA has been enabled
Change-Id: I89113a1f1160b921d8e49b5dd6fc01001307648f
CRs-fixed: 279449
When performing the copybit blit operation, do a blind blit of the
surfaces. The blending operation should be done when the stretch operation
is invoked.
Add the exported sanitized kernel headers to include path in C2D/
copybit, gralloc and overlay HAL libraries.
(cherry picked from commit a70f426e8695cc5bbf8a45b987b5715784f7e924)
Change-Id: I1dbb79a086e9cb062e1264c1c354ac5ce1a05f27
Gralloc buffers which have the PRIV_FLAGS_USES_PMEM_ADSP
flag are allocated from a pmem region.
Set the kgsl memory type to PMEM to reflect this change.
Change-Id: Id5b84277ddec5cc9550aa97d2789df4d1bc2b2b5
up until now we relied on the EBI region map_offset being zero, which
prevented us to use SMI for surfaces, as their map_offset is different.
the copybit hal needs the map_offset to figure out which region to use.
Change-Id: I920b31ecb77a7b0943dfcd8e3362e2c38ac83297
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.
The kernel will only do it for images with an alpha plane.
Change-Id: Idcba41945ed7d17daae0a5bcc48c64a82a49dded
Signed-off-by: Dima Zavin <dima@android.com>