Adding the ability for tests to add
"android.hardware.graphics.composer@2.1-resources" as
as static library.
Test: atest sffakehwc_test on cuttlefish on aosp-master
Bug: 160796914
Change-Id: I8cb80102bd836f8f211602cb36fd857757e8323c
On subsequent hotplug connected event for a display
SurfaceFlinger destroys the previous framebuffers and
recreates them. When the new buffers are created
ComposerClient still holds a handle to the old buffers and
they are not destroyed. This way the new framebuffers
may get allocated on non continuous memory causing garbled
screens for the user.
Bug: 160112047
Bug: 169255692
Test: 1. limit cma ion memory to 32 MB
2. flash device
3. plug hdmi out and in
4. verify that the display image is not garbled
Change-Id: Idf7cdf7a070ffc83ecec34ac24c8a7d696f68aa6
Add a TestCommandReader to composer 2.4 VTS to parse correctly the
new commands introduced in 2.4.
Test: adb shell /data/nativetest64/VtsHalGraphicsComposerV2_4TargetTest/VtsHalGraphicsComposerV2_4TargetTest
Bug: 149124892
Change-Id: Ide4f98fa3bfc771e4095cc672f59b87e1aa03427
All grahpics composer HAL tests have been converted to parameterized
gtest.
Bug: 147894326
Test: atest VtsHalGraphicsComposerV2_1TargetTest \
VtsHalGraphicsComposerV2_2TargetTest \
VtsHalGraphicsComposerV2_3TargetTest \
VtsHalGraphicsComposerV2_4TargetTest
Change-Id: I84515a5698035d7ceb299a5cc140ecd7bb28fe84
getClientTargetProperty will give hardware composer the ability to request some
properties of the client target that hardware composer wants. Prior to this
API, the client will does its best to produce the client target of which the
properties are pretty much fixed.
BUG: b/145968912
Test: mmma -j32 hardware/interfaces/graphics/composer/2.4/
Change-Id: I055f46b1eeba1d3e20d6a92a9d50a83e0f1ee694
Command engine always uses V2.1 CommandWriterBase, change the creation of
command writer inside command engine so that we can use the right version of
command writer.
BUG: b/147365206
Test: build and boot.
Change-Id: I61fbbce19a44244725621e9a1cef750bd4c78b4d
IMapper 4.0 does support lockYCbCr functionality through lock and
BufferMetadata getters. However, we will wait to add the support in
one central gralloc library. For now just stub out the call so
there aren't any compiler errors.
Bug: 141631415
Test: Compiles
Change-Id: I9d2f70c87412f8ac2114db85eb6dc01539876e2b
IEEE 754 single precision cannot precisely represent the value of large
32b integrals. Accept the imprecision from implicit casts by making the
casts explicit.
One case is comparing the value before and after converting a float to
an int32_t and back, the other is used when printing a value.
Bug: 139945549
Test: mm
Change-Id: I23375d73cd16be0741defc6395046bd3b22d1335
Merged-in: Id30edce2cd29c0f9c24cd52ba5fb33f7c56a3100
Signed-off-by: Nick Desaulniers <ndesaulniers@google.com>
IEEE 754 single precision cannot precisely represent the value of large
32b integrals. Accept the imprecision from implicit casts by making the
casts explicit.
One case is comparing the value before and after converting a float to
an int32_t and back, the other is used when printing a value.
Bug: 139945549
Test: mm
Change-Id: Id30edce2cd29c0f9c24cd52ba5fb33f7c56a3100
Signed-off-by: Nick Desaulniers <ndesaulniers@google.com>
If the HWC2 hotplug callback has not registered we buffer this event then
return, but do so too early leading to no display being created. Buffer
the event and return only after creating the display so when the callback
is registered we have a display for this hotplug event.
Test: Hotplug a display before the HWC2 hotplug callback is registered
Change-Id: I999e3fd7cbe87d12969fb2d2d82dbd956ee8d97b
Signed-off-by: Andrew F. Davis <afd@ti.com>
This warning was turned off globally but it is only needed for few
projects. Move the flag to the individual project blueprint files.
Test: presubmit
Change-Id: I55163067ac5038f1650ad12300bf72a48f179b8e
For reasons unknown, HWC2_CAPABILITY_SKIP_VALIDATE was never added to
the IComposer hal. However, we would like to tell the client that the
device has this capability when it is returned during a getCapabilities
query. We manually add it to the list of IComposer::Capability
(static_cast should be ok since the IComposer::Capability has a fixed
underlying type of int32_t, and HWC2_CAPABILITY_SKIP_VALIDATE = 4 is in
this range). Checking that device has skip validate functionality in
relevent test as well
Bug: 140813883
Test: build, boot, VtsHalGraphicsComposerV2_1TargetTest
Change-Id: I5f28268c4e6edeb2895502c5f4e009cebb566100
composer@2.x-hal is a header library. Any of the shared
libraries it depends on must also be included by anyone
who includes composer@2.x-hal. This means when we add a new
version of mapper, anyone who uses composer@2.x-hal must
also include the new version of the mapper. Vendors
that depend on composer@2.x-hal are broken every time we
add a new mapper.
This patch refactors ComposerResources into a seperate
shared library. ComposerResources contains all of the
mapper code. composer@2.x-hal will depend on the new
composer@2.x-resource hal. Everyone downstream must
also add the composer@2.x-resource file now. However,
they will not be broken again when we add a new mapper
version.
Bug: 136016160
Test: Compiles and boots
Change-Id: I208a954a941ed65938074cd3efb8a6893a2bc1eb
Properly export lib headers to avoid copying everything when upgrade composer
version. Minor: Remove VTS team as OWNERS of non-VTS directory.
BUG: 135929065
Test: build and boot
Change-Id: I4c3544490fcf043ff6bda2312a00aed015d0d5fc
Possible race condition where EventCallbacks are registered before
old implementation deregisters on destruction. Stems from fact that
strong pointer destruction does not mean the object has completely run
its destructor method
Bug: 135210708
Test: build, boot, VtsHalGraphicsComposerV2_1TargetTest
Change-Id: I0851f1197d8341854f5bdac5fbb08553fc32b710
This reverts commit 6f5a48f7af.
Reason for revert: Reinstating with fix
Below is the original commit message:
SET_LAYER_COLOR_TRANSFORM is an optional API, and thus when it's not
implemented. we want to make sure we follow the spec to mark those layers as
client composition and add them into changed layers list proactively.
BUG: 115554640
Test: Verify with setting color transform manually.
Change-Id: Ia2e8634b01ee1b5c99893e86ef451f90337ef90f
Change the error message that prints when IMapper 3.0 isn't present.
The old warning was causing unnecessary concerns.
Bug: 128013727
Test: compile
Change-Id: I197cd953d08a8e9f3bdee92cede973bf1b97dfe2
(cherry picked from commit ccbd24f633)
SET_LAYER_COLOR_TRANSFORM is an optional API, and thus when it's not
implemented. we want to make sure we follow the spec to mark those layers as
client composition and add them into changed layers list proactively.
BUG: 115554640
Test: Verify with setting color transform manually.
Change-Id: I53b4039eb63cccd1b174e3c6da3b6336b85e0321
Change composer 2.1's ComposerResources to support the new major versions
of IAllocator and IMapper.
Bug: 120493579
Test: vts
Change-Id: I888364d302ba8c7f7ad30070dcad3ed738b4c663
Comparators should be const. The libc++ update checks for this and
rejects non-const comparators.
Test: m
Bug: None
Change-Id: If2f76c020943b5bcb55803f0742990c9965afd6e
With olv@ no longer on the graphics team we need to update the
owners file to remove him and add new owners.
For composer the new owners are: lpy@ and vhau@
For allocator/mapper the new owner is: marissaw@
Test: N/A
Change-Id: Ied297e9446d480629155e1d9a96575ee518c2135
We never produce real present fences, so indicate this to the
compositor. This will prevent GOOGLE_display_timing & friends from being
exposed in the client APIs.
Similar to previous change in HWC2On1Adapter.
Bug: b/111505197
Change-Id: I601a7f5628d4b218431fc0f1abb4807c9941ce64
(cherry picked from commit 3fac35a98a)
ComposerResources allows a derived class to define specializations of
the ComposerDisplayResource and ComposerLayerResource classes, which are
returned by overrides of the createDisplayResources() and
createLayerResources() member functions. The pointers are wrapped using
a std::unique_ptr, which destroys the owned instance via the base class
destructor.
As the destructor was not virtual, this meant that only the base class
destructor functionality would be used. Any additional cleanup done by
the derived class destructor would not be run!
This impacts the composer-hal 2.2 utility code for example, which adds a
readback buffer cache as a display resource. Any readback buffers that
are imported there will not be released, effectively leaking graphic
buffer memory.
It also affected an ARC++ specialization where a similar per-layer buffer
resource cache was added, and where the leak was observable since layers
are created and destroyed much more often than displays.
Bug: 117877825
Test: No leaks for ARC++ devices
Change-Id: I6e604b415d3ed787c2e51729a77278594e41e7a9