Before checking the service specific error
we need to check that getExceptionCode returns
EX_SERVICE_SPECIFIC error code. Added a method and
used that to do the two checks together for exceptionCode
and for the service specific error code, so that we don't
repeat two lines in all the tests that need them.
EXPECT_NO_FATAL_FAILURES print the correct line number of the test
or iteration of the test when used with helper functions, and
testing guidelines recommend it too here: go/gunitadvanced#propagating-fatal-failures
Test: atest VtsHalGraphicsComposer3_TargetTest
BUG: 205152739
Change-Id: I1d3c3aa9b34dcefb14be507ff61b73b6f08a5204
Plumbing this enum to RenderEngine requires knowledge of the intended
transfer function to apply the dimming stage in. Because this is
expected to be a contrained use-case and because apis are frozen,
document that RenderEngine is allowed to assume that the resulting
dimming matrix may be gamma corrected using a 2.2 power function.
Bug: 218954037
Test: builds
Change-Id: Ie7d357f8ce79295af017d80c62a2759dbccce5d2
This Capabiliy::BOOT_DISPLAY_CONFIG will make
the display boot display config optional on the HWC3.0
BUG: 216113429
Test: atest VtsHalGraphicsComposer3_TargetTest
Change-Id: I3be3383922fdd91e0bbccebd3c73e458753b749f
If validateDisplay returns an error, changed composition types are not
propagated back to the caller. Remove the expectation that they will be.
Fixes: 221406264
Test: this
Change-Id: I3e07e40b0c12a2cf6eaa685435647aab93172bb0
This change was missed while cherry-picking
I5675c16f0895f9958e3bee3ee4c85df8937ecdb7 due to merge conflicts.
So...actually merge this.
Bug: 218954037
Test: builds
Change-Id: Idb3a518f7dfd4f4fd598672ee709ccd5b1f3f06a
This is the error returned by cuttlefish, not EX_UNSUPPORTED_OPERATION.
This also matches other tests, e.g. SetDisplayBrightness.
Bug: 209458568
Test: this
Change-Id: I885767c4f1c42edfb11359b36852a863cbc8b0ed
* Add a DimmingStage to the client target configuration reported by HWC,
which may be used for some vendor color modes to configure when
dimming should occur during client composition
* Communicate the display brightness in nits, so that HWC
implementations do not need to parse the per-display xml to map from
display brightness to nits. Furthermore, this is more plausible for
extensibility for external displays.
Bug: 220396224
Bug: 218954037
Test: builds
Change-Id: I5675c16f0895f9958e3bee3ee4c85df8937ecdb7
An earlier patch replaced white point nits with a per-layer brightness.
This patch does the same for providing the brightness space of the
client target relative to the display brightness.
Bug: 217961164
Test: builds, boots
Change-Id: I1be65f7c511fefa239305e0735637126a1cd6622
Merged-In: I1be65f7c511fefa239305e0735637126a1cd6622
vts is moved from aidl/android/ to aidl/vts
functional, include & composer-vts directory is removed as well.
BUG: 220171967
Test: atest VtsHalGraphicsComposer3_TargetTest
Change-Id: I6cafbbd99374308a1cc06e27cc590e70618f7075
Allow getDisplayDecorationSupport to return an error, and treat that as
unsupported. This allows Cuttlefish, which, with
I91105fc3345dbd75aeb0b102f3f0138fa33120c0, returns Unsupported, to pass
the test.
Bug: 209458568
Test: this
Change-Id: I8e17d3c0ca0ac4eacb0b5e4c8ae540f271e68a23
aidl already have a dump funciton, so there is no need to
expose a custom dumpDebugInfo from IComposer.
Bug: 220171623
Test: atest VtsHalGraphicsComposer3_TargetTest
Test: adb shell dumpsys SurfaceFlinger
Test: adb shell dumpsys android.hardware.graphics.composer3.IComposer/default
Change-Id: I5036193c06ba9fdd8aa5f79cd756541d9edc146c
Check for support via getDisplayDecorationSupport. If it is supported,
verify that we can allocate a buffer of the correct format and that
Composition.DISPLAY_DECORATION can be used without error. If it's not
supported, expect an error of EX_UNSUPPORTED_OPERATION.
Bug: 209458568
Fixes: 209458568
Test: atest VtsHalGraphicsComposer3_TargetTest (this)
Change-Id: I0a62a0ce3f8fd3a2d6088f94ce1ad0840d9c6faa
When we have a fence created with GraphicBuffer
We don't need to wait on it in VTS tests,
the composer should be able to handle the
fence in this case
BUG: 219589185
Test: atest VtsHalGraphicsComposer3_TargetTest
Change-Id: I688d695bb562dd1fe86cdceb642e746cbafe8b30
For multi-display order of the hotplug matters, and vector
maintains the order that we need for the multi-display.
see: ag/1921760 for partner cl on HIDL.
BUG: 210920960
BUG: 209409863
Test: atest VtsHalGraphicsComposer3_TargetTest
Change-Id: I4f9a86413f20c860fc0bc3850a14335d62de881a
Client composition test was broken because there was a buffer
created at the test creation and this is not how
this test works for client composition trigger.
And for the fence that was used is different from what it
needs previously fence was acquired through gralloc but now
it's internal to the Graphic Buffer and we no longer
have to wait for the fence to signal it's taken care
by the graphicBuffer->unlock call, the unlock call waits
for us.
See for unlock https://source.corp.google.com/android/frameworks/native/libs/ui/GraphicBufferMapper.cpp;rcl=HEAD;l=139
BUG: 216170021
Test: atest VtsHalGraphicsComposer3_TargetTest
Change-Id: I8fa25d8910a4e2b1df2f0e2270445a658e3b1a39
HIDL tests don't have any buffer created when test execution starts and with GraphicBuffer that wasn't the case.
We only initialize the buffer when required the way gralloc implementation did.
BUG: 199413815
Test: atest VtsHalGraphicsComposer3_TargetTest
Change-Id: I3aeec5b00e30e636de2e58cf7e6ced5539ae19b6
There are several reasons for limiting the notion of white point nits in
the composer interface:
1. Some KMS apis exposed by drivers only expose a notion of a per-plane
brightness. While these are non-mobile drivers, e.g., nouveau, this
does indicate that white point is not directly going to be understood
by typical hardware
2. Changing the brightness without requiring a frame update introduces
implicit state in composer. If the brightness and white point nits
for a set of SDR layers are 200 nits, and the brightness changes to
205 nits to respond to ambient conditions, then composer must not dim
the layers, and in fact DisplayManager will tell SurfaceFlinger that
the SDR white point will be 205 nits. But SurfaceFlinger will not
tell composer that the SDR white point changed as that would
otherwise introduce a re-composition cycle, meaning that
HW Composer must track somehow that the layer white point changed
without a corresponding change on the layer data structure, which is
confusing.
3. It's poorly defined what the dimming ratio should be if
SurfaceFlinger provides the following inputs: Layer A has a white
point of 200 nits, Layer B has a white point of 400 nits, and display
brightness is 300 nits. Current implementations may clamp the
brightness of Layer B to be 300 nits and dim layer A by 2/3s, but
there is an equally valid interpretation which is just dim Layer A to
be 50% of Layer B's brightness.
4. The problem indicated by (2) and (3) suggests that layer white point is
really an up-stack concept, that SurfaceFlinger can be aware of for
properly computing the dimming ratios it can send to composer, but
the composer hal shouldn't really be speaking in terms of nits.
Note that this patch does not yet change the interface for
ClientTargetWithNits, which may be done in a follow-up patch.
Bug: 217961164
Test: builds, boots
Change-Id: I4a1b4e8c300d22599a5683bd44b7b8afa9a29425
In case a user fails to call setDimensions() prior to several
other methods on this class, we at least want to have consistent
behavior that's easy to debug.
Test: TreeHugger
BUG: 199413815
Change-Id: Iee7681ed855cf6ebf9e436e0d2864e0fc9cb4025
The test is removed from aosp so won't be required in HWC3.0
BUG: 200184776
Test: atest VtsHalGraphicsComposer3_TargetTest
Change-Id: I21f0ccf94d1d92a730a41b579bf111fa0553f609
Makes corrections to the code such as checking EXPECT_TRUE, ASSERT_TRUE in certain cases, test name corrections, consolidate layer configurations.
See comments in ag/16465080 for change refrences.
BUG: 199413815
Test: atest VtsHalGraphicsComposer3_TargetTest
Change-Id: I73c4621d8c525fdfbcd301d78a1ad97c142b2864
A wrapper helps with implementation details of IComposerClient and
improves re-usability with readback and base tests.
Changes from the original wrapper (ag/16578214):
Changed the createClient to return ScopedAStatus
as it helps more with the singleton test.
And updated getDisplays to go through all the configurations
and save it in the DisplayResources as we use
the properties like width, height, vsync later
in the test and we avoid querying to the composerClient for this.
With readback tests updated setReadbackBuffer method to use
const native_handle_t* buffer instead of const native_handle* buffer
BUG: 199413815
Test: atest VtsHalGraphicsComposer3_TargetTest
Change-Id: Ia33c9489bf15a52edcae55a91ec56666df3726c1