Commit graph

165 commits

Author SHA1 Message Date
ramindani
d575109c1e Check Exception Code for Service specific error
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
2022-04-25 20:44:04 +00:00
ramindani
c7585d9dc4 Set isOpaque For BlendMode::None
Test: atest VtsHalGraphicsComposer3_TargetTest
BUG: 216205298
BUG: 219576457

Change-Id: I479d8367e5abf8893b94ac64b7149a2f0e4cf75b
2022-04-22 16:25:39 +00:00
TreeHugger Robot
bce81ecc1e Merge "Move ComposerServiceWriter to composer3." into tm-dev 2022-04-19 21:32:21 +00:00
Alec Mouri
da91f729c1 Merge "Send brightness nits to composer" into tm-dev 2022-04-11 16:28:58 +00:00
Rachel Lee
d69c54a4e1 Move ComposerServiceWriter to composer3.
It can be reused more easily.

Bug: 216204575
Test: m; flashall
Change-Id: I76b8533ba16ad1d01fcd182bf72b65982dce7c20
2022-04-08 16:09:32 -07:00
Jiyong Park
703e97920e Freeze AIDL APIs for TM
Bug: 225941299
Test: m
Change-Id: Ie41cc0797710f813f92c65c387f247c7806d8394
2022-03-31 12:01:39 +09:00
Alec Mouri
03b6daac4a Send brightness nits to composer
Bug: 220396224
Test: builds, boots
Change-Id: I6866422130776ae25d791b3cfd0d1a754d2488b9
2022-03-31 01:12:34 +00:00
Alec Mouri
d48a5a9829 Clarify documentation for the dimming stage.
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
2022-03-24 15:54:05 +00:00
ramindani
476314cc54 [HWC3.0] Add capability BOOT_DISPLAY_CONFIG
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
2022-03-16 18:43:15 +00:00
Ady Abraham
261db780b4 composer: minor documentation fix
Bug: NA
Change-Id: I167f6a1224ceed48723f3af15a07d71fbde168cc
Test: NA
2022-03-08 23:22:37 +00:00
ramindani
a4e7636e62 Vts BlendMode tests skip for UNSUPPORTED ColorMode
BUG: 221887749
Test: atest VtsHalGraphicsComposer3_TargetTest
Change-Id: I6c0a35c64883333c70451c717f50cb84d85ce994
2022-03-02 04:14:18 +00:00
ramindani
44c952f69c Vts readback status check fixes
When we query for the getReadbackBufferAttributes
we can get EX_UNSUPPORTED error when not supported
and when this happens readback should not be supported.
EXPECT_TRUE for this failure case
was causing the test to fail when we received an EX_UNSUPPORTED
 for this.
See for documentation: https://source.corp.google.com/android/hardware/interfaces/graphics/composer/aidl/android/hardware/graphics/composer3/IComposerClient.aidl;rcl=e1f0950945f687ed374a45911e2d7786de724ca4;l=436

BUG: 221889462
Test: atest VtsHalGraphicsComposer3_TargetTest
Test link for the cf_x86_64_phone-userdebug  http://ab/I39800010022763398
All the other test failures are tracked else where.

Change-Id: Idf352761c5cc808540edfe2042c5ee4602b5e96b
2022-03-01 01:18:53 +00:00
Leon Scroggins III
68b9acc4fe DisplayDecoration VTS: remove expected changed composition types
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
2022-02-25 13:17:10 -05:00
TreeHugger Robot
a123e7688d Merge "Actually add DimmingStage to client target properties" into tm-dev 2022-02-24 22:51:17 +00:00
Leon Scroggins
5298f2c0e2 Merge "getDisplayDecorationSupport: expect IComposerClient::EX_UNSUPPORTED" into tm-dev 2022-02-24 21:27:42 +00:00
Alec Mouri
88e871b663 Actually add DimmingStage to client target properties
This change was missed while cherry-picking
I5675c16f0895f9958e3bee3ee4c85df8937ecdb7 due to merge conflicts.
So...actually merge this.

Bug: 218954037
Test: builds
Change-Id: Idb3a518f7dfd4f4fd598672ee709ccd5b1f3f06a
2022-02-24 12:18:37 -08:00
Jason Macnak
194a26f53d Merge "Minor spelling fix" into tm-dev 2022-02-24 18:16:50 +00:00
Leon Scroggins III
6455e797c6 getDisplayDecorationSupport: expect IComposerClient::EX_UNSUPPORTED
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
2022-02-24 12:21:11 -05:00
TreeHugger Robot
b4fa6d0138 Merge "Update the test directory structure" into tm-dev 2022-02-24 04:53:07 +00:00
TreeHugger Robot
6f62c70f4f Merge "Add composer API changes in accordance to partner feedback" into tm-dev 2022-02-24 04:41:53 +00:00
Alec Mouri
ca18b9661b Merge "Remove concept of nits from the client target properties" into tm-dev 2022-02-24 01:48:53 +00:00
Alec Mouri
8ff184b518 Add composer API changes in accordance to partner feedback
* 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
2022-02-24 01:45:41 +00:00
Alec Mouri
bf0bbc2db0 Remove concept of nits from the client target properties
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
2022-02-23 23:04:55 +00:00
ramindani
458e53e889 Update the test directory structure
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
2022-02-23 22:33:25 +00:00
Jason Macnak
6ee0f75051 Minor spelling fix
Change-Id: Ibcad1d80e09ff547c2935bbc362809431a4c3f14
2022-02-23 21:12:36 +00:00
TreeHugger Robot
a0fb8acaa5 Merge "getDisplayDecorationSupport test: allow errors" into tm-dev 2022-02-23 17:31:08 +00:00
Leon Scroggins III
915908797a getDisplayDecorationSupport test: allow errors
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
2022-02-23 09:51:21 -05:00
Ady Abraham
89d7270dcd composer: remove IComposer.dumpDebugInfo
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
2022-02-22 02:54:41 +00:00
TreeHugger Robot
b62a39242b Merge "Add a VTS test for DISPLAY_DECORATION" 2022-02-17 18:00:19 +00:00
Leon Scroggins III
de0575882c Add a VTS test for DISPLAY_DECORATION
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
2022-02-17 08:36:04 -05:00
Ram Indani
2d22f84671 Merge "[VTS] Removes wait on buffer fence" 2022-02-16 19:00:35 +00:00
Ram Indani
8af9317f42 Merge "[VTS] BlendMode::Coverage test" 2022-02-16 19:00:13 +00:00
ramindani
58ced4f54e [VTS] Removes wait on buffer fence
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
2022-02-16 18:58:14 +00:00
ramindani
07e6f8499b [VTS] BlendMode::Coverage test
Enable BlendMode::Coverage test.
Test pass: BlendMode/GraphicsBlendModeCompositionTest#Premultiplied/0: PASSED (930ms)
BlendMode/GraphicsBlendModeCompositionTest#Premultiplied/1: PASSED (933ms)

BUG: 219737571

Test: atest VtsHalGraphicsComposer3_TargetTest
Change-Id: I5f5bbf371c26933457eec0f3710d47ddadd06cdb
2022-02-16 18:58:14 +00:00
Ram Indani
170bcb8e69 Merge "Use Vector instead of unordered_map for hotplug displays" 2022-02-16 18:56:28 +00:00
Ram Indani
acd5739fd1 Merge "BlendMode VTS tests" 2022-02-16 18:56:13 +00:00
ramindani
7ce70fea34 Use Vector instead of unordered_map for hotplug displays
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
2022-02-15 15:13:02 +00:00
ramindani
b636af2820 BlendMode VTS tests
BlendMode::Coverage and BlendMode::Premultiplied test fix

HIDL only worked on SRGB for this test and
as HIDL this also passes just the Coverage and Premultiplied
with the colorMode SRGB
see: https://source.corp.google.com/android/hardware/interfaces/graphics/composer/2.2/vts/functional/VtsHalGraphicsComposerV2_2ReadbackTest.cpp;rcl=ddbbf784a80979fd0b2d926a1e3cdb68d0a49b61;l=938

BUG: 216172840

Test: atest VtsHalGraphicsComposer3_TargetTest
Change-Id: Iec16fc112d3ab6ee37e55ca9f3fa760a439e52eb
2022-02-15 15:13:02 +00:00
TreeHugger Robot
690a98e945 Merge "Provide dimming ratio instead of white point nits in composer" 2022-02-15 04:58:06 +00:00
ramindani
b1144219bf ClientComposition test fix
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
2022-02-14 21:34:58 +00:00
ramindani
0a2bee4eba Clean up the GraphicBuffer.
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
2022-02-14 21:33:08 +00:00
Alec Mouri
b1f16725cc Provide dimming ratio instead of white point nits in composer
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
2022-02-10 15:14:51 -08:00
Leon Scroggins
3ea6e39979 Merge "Add a more detailed HAL for DISPLAY_DECORATION" 2022-02-10 11:56:31 +00:00
TreeHugger Robot
f3eadf62a2 Merge "Assure width and height are always initialized" 2022-02-10 08:21:27 +00:00
Greg Kaiser
c20d70e09f Assure width and height are always initialized
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
2022-02-09 07:11:33 -08:00
Ady Abraham
fac5544455 Revert "composer: adds BufferAhead for the LayerCommand.aidl"
This reverts commit d40304b574.

Reason for revert: Punting hal changes to future release

Change-Id: I0980ac2d36962998472f46ece93f88f28fac4232
2022-02-08 19:03:44 -08:00
ramindani
8bb4ce13a2 Remove test GetDisplayAttributeConfigsInAGroupDifferOnlyByVsyncPeriod
The test is removed from aosp so won't be required in HWC3.0

BUG: 200184776

Test: atest VtsHalGraphicsComposer3_TargetTest
Change-Id: I21f0ccf94d1d92a730a41b579bf111fa0553f609
2022-02-08 19:44:07 +00:00
ramindani
dcecfd46a1 Use Wrapper in the readback tests.
BUG: 199413815

Test: atest VtsHalGraphicsComposer3_TargetTest
Change-Id: I3a7e81f8c04971b178ae703a3eb83de50ae0810f
2022-02-08 19:44:06 +00:00
ramindani
431aad4a65 Use VtsComposerClient in Base test
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
2022-02-08 19:44:06 +00:00
ramindani
edf3ef9f93 IComposerClient wrapper for VTS tests
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
2022-02-08 19:32:11 +00:00