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
Some makefiles didn’t specify libui but included
headers from it directly, and they didn’t even
need them.
It works because these headers are on the global
include path. With this change, though, rect.h
is not anymore (albeit exported from libui).
Test: built and booted device
Bug: 35164655
Change-Id: Ib2de5e5a2f86bd857e12861bb6fc5e4739ff185a
The libc++ defines this (wrapped in ifndef, like this should have
been), so including a libc++ header and then defining this results in
a werror failure. Define this in common.mk so we can be sure it does
get defined, but also that it gets defined early enough that anyone
defining this in source wrapped with ifndef doesn't get broken.
Test: mma # on angler
Bug: http://b/34740564
Change-Id: Id7d70a6ad5e530390eb8b37e5e618312d1d7e6dc
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>
Revert this for shamu as the original feature this was needed for
is not available on shamu
Bug: 29880419
Change-Id: I041849bca75c042b05608709825f465f436d0269
am: 712d1ef449
* commit '712d1ef449f79d6e63de93844e1369ac027e7f22':
hwc: Start with ROI set to destination
Change-Id: Ieec92791015aa446778fe2defab7d6c1b03a372d
Some layers will not have surfaceDamage information,
like video and CPU rendered, so consider their destination
as the surfaceDamage. For other layers start with destination
will be calculated based on the surfaceDamage
Bug: 23218645
Bug: 28447536
Change-Id: Ic7308bf9dfb7d062596873963c738f644b1c1a84
Do not require the MM_HEAP flag for TZ protection. This is in
line with the gralloc spec.
Bug: 27536318
Change-Id: I0bc7346b0a40061600707d8c1881a9d405995b4f
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
(cherry picked from commit b360857e92)
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
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
Update the HWC version to HWC 1.5
surfaceDamage is passed as part of the layer, use this information
to determine if the layer is changing and handle cache.
The total dirty rectangle for a given layer will be the sum of all
the damageRectangles, use that to calculate the ROI
Bug: 11239309
Change-Id: Iddff278e716099d252e059aae02764f4b8630a6f
There could be buffers allocated in flexible YUV format that do
not have any camera usage flags. Default such buffers to NV21.
Change-Id: Id66076e02fe600890b7fcfcb038fa2e7a95be09c
Clang gives a warning:
invalid suffix on literal; C++11 requires a space between literal
and identifier [-Wreserved-user-defined-literal]
Change-Id: I5ef54e5a8ac4d329cbe7900bc543cdb69ad6d462
This makes sure pipes are detached from the primary display when
a virtual display comes in so that there is a chance of the
virtual display getting at least one pipe.
Bug: 18023015
Change-Id: I34e11a05385555ca18b7f2d16bd429819f4ca689