Do not use fb handle in prepare. Use displayFrame for dimensions,
align them and hardcode format.
b/8316155 - Implement HWComposer 1.3 w/ virtual display support
Change-Id: I5c494a74a807d3a52a1c88257494b58c583700f5
Signed-off-by: Daniel Jarai <jaraidaniel@gmail.com>
in frameworks/native deprecated the use
of retire fence, therefore retire fence
support has to be removed
depends:
hardware/qcom/msm8960: Ibe3200eb9e2d70fefbaa907089dbf4b4ce5809fe
android_kernel_google_msm: I19877296ac762e4d5c3162843ccaf5cc9a88ff1c
Change-Id: Iddb114b7752de38438fe6143a6f1798ecf844779
Validate the display ID before processing any calls from the
client. This is needed to handle only the displays which are
supported by HWC
Adapted from commit of the same title in CAF msm8974 tree.
Original author: Arun Kumar K.R <akumarkr@codeaurora.org>
Change-Id: Iebeeabf791b5c53e811e1f4bb3d777ab0e4d0f47
In order to build generic system image that is agnostic to SoC or
device, such HALs should be moved from system partition to vendor
partition.
HALs moved: copybit, gralloc, hwcomposer, light, memtrack, hdmi_cec
Bug: 34826389
Bug: 35232083
Test: build & run and check whether the HAL is loaded from
/vendor/lib[64]/hw.
$ su; lsof | grep hwcomposer
Change-Id: I2bb617ac71ab040a5b1ba306c194e8672ac84561
Hwc_sync is in the hotpath of display
rendering and gets called every ~17ms
during active rerendering.
Reading the property "debug.egl.swapinterval"
on every execution of hwc_sync causes a major
regression where the execution of hwc_sync
is much slower than it can be.
Doing I/O in hotpaths is inacceptable
and can cause an unnecessary constant
I/O load, additionally to the slowdown
in display rendering which was caused
in this case.
As solution, we condition this debugging
feature with "DISPLAY_DEBUG_SWAPINTERVAL",
so it can be enabled when explicitly needed.
Gralloc is not directly affected by the regression,
it was adjusted to match the conditioning
of the swapinterval debugging feature.
The HALs of msm8084,msm8226,msm8909,msm8960 and
msm8994 are affected by the regression and
get patched by this patch. Newer HALs
are not affected.
The stats contained in this patch were
collected using a Nextbit Robin (MSM8992),
which uses the msm8994 HAL.
Test: Manual testing for proper conditioning.
Test: Running full CTS suite without DISPLAY_DEBUG_SWAPINTERVAL set.
Change-Id: If08595d37ac0c1a19edd8d296289a21c9f95512a
Signed-off-by: Alex Naidis <alex.naidis@linux.com>
If these libraries are built, both BUILD_COPY_FILES and
BUILD_SHARED_LIBRARY would copy the headers. This would create a warning
because multiple rules would define the same target header file.
Bug: 27302058
Change-Id: If91bd70d2320aaaee9679642ff9ea48b99739cbd
Move the condition for checking maximum number of app layers
ourside the isFrameDoable function to avoid heap corruption while
updating hnd array in cacheAll function.
Bug: 24163261
Acked-by: Ramkumar Radhakrishnan <ramkumar@codeaurora.org>
Change-Id: Id4458fcadc7775a2d78b1849de6782857c6ac17f
Fix MDP comp array index access in case of High Res pipe allocation.
This is already correct in case of Low Res allocation routine.
Bug: 24163261
Acked-by: Saurabh Shah <saurshah@codeaurora.org>
Change-Id: I7eaa0711ef8998ea03edba18b74db80459daf4c7
- Check for MAX_NUM_APP_LAYERS before updating yuv indices array.
- Fall back to GPU composition when number of app layers exceeds
MAX_NUM_APP_LAYERS to avoid heap corruption.
Bug: 24163261
Acked-by: Ramkumar Radhakrishnan <ramkumar@codeaurora.org>
Change-Id: Ieb91b705a0a5f50ce2f8829d1f1ee048d44b7d2e
There could be buffers allocated in flexible YUV format that do
not have any camera usage flags. Default such buffers to NV21.
Bug: 21880984
Change-Id: Ieb659c05d0a69db815e6a3a0b1b574a746b3dc90
The flag is the last character in 'flags' field array. It was wrongly
indexed at flags[6] causing all entries to be marked as unaccounted.
The correct check should be for flags[5] to be equal to 'Y'.
Bug: 20447631
Change-Id: Ibe9b88387a87b2caf37f3b20f8fd702dbef322db
Video decoder advertizes standard NV12 format
(OMX_COLOR_FormatYUV420SemiPlanar) in place of TILE,
if the app requests for a linear color-format explicitly.
Accept this format keeping the size-aligment restrictions
same as NV12-TILE
Bug: 17906609
Change-Id: I9ec241608ae01a7e38f78d4dcfd66981795c2dc6
The code currently uses GNU initializers as opposed to C99 initializers.
Clang emits a warning about this, causing the -Werror build to fail.
Either variant works fine in gcc.
BUG: 18017604
Change-Id: I196b809e085637e097706557ce62462dba8b2c3d
Signed-off-by: Bernhard Rosenkraenzer <Bernhard.Rosenkranzer@linaro.org>
When an external display is connected, the primary display may be
using up both VG pipes. However, a VG pipe is necessary for
playing secure video on the external display. This needs a
padding round to transition the pipe to the external display's
mixer.
Bug: 17132088
Change-Id: Iecbc067cb79513a0a97f73812886277b83bb7107
Acked-by: Saurabh Shah <saurshah@codeaurora.org>
Instead of using useraddr from kgsl memory allocations to be
matched against proc/<pid>/smaps file to be used to determine
usermapping of a buffer, use the newly added flag which directly
indicates whether a given gpubuffer entry is usermapped or
not. The flag is the last character in the "flags" field.
CRs-fixed: 634962
b/16527585 msm graphics driver seems to be overcounting memory usage
Signed-off-by: Carter Cooper <ccooper@codeaurora.org>
Signed-off-by: Iliyan Malchev <malchev@google.com>
Change-Id: I66b577a00b146f28c53f28c150c43fddffa739bf
The reset code was only freeing MdpPipeInfos if numLayers>0, but on
every frame it was being called with numLayers==0 and then again with
numLayers>0. Since reset also memsets the structure to zero, it was
leaking the MdpPipeInfos on every frame.
I haven't confirmed reset(0) is called on these chips, only on
msm8974, and that's a necessary condition for the leak to occur. But
this change is safe either way.
Bug: 16601370
Change-Id: Ic24dc3c3546ecdb4e86f7ff3085b2665354e93cd
The system wide Graphics memory usage is inaccurate because some ION
buffers which are shared between processes are counted twice, once for
the buffer's consumer (surfaceflinger), and again for the producer.
These ION buffers appear in surfaceflinger's kgsl memory dump with
usage=egl_image, and in the producer's dump with usage=egl_surface.
Improve the accuracy of Graphics memory tracking by ignoring all ION
buffers with usage=egl_image in the surfaceflinger process, under the
assumption that the buffers will be accounted for when examining the
producer's process.
Change-Id: I764c610f226d41e2897d6e0c2247793b0e321ed0
Signed-off-by: Fred Fettinger <fred.fettinger@motorola.com>