Age | Commit message (Collapse) | Author |
|
Currently, fromValue() would run a tryCast() check before returning
an object, otherwise returning a nullopt. This is now an issue because
tryCast() is reading the bits in the ID value, which is something we are
trying to eliminate.
Remove the tryCast() checks from fromValue(), thus relaxing it and
turning it into a simple wrapper. Since fromValue() can no longer fail,
make it always return the requested type. It is now up to SF to validate
given DisplayIds via its different APIs.
Flag: com.android.graphics.surfaceflinger.flags.stable_edid_ids
Bug: 393193354
Test: Display{Id | Identification}Test && libsurfaceflinger_unittest
Change-Id: I0858567a1769bd94609919bd64bc471f4310ae55
|
|
Adds logic to fabricate a display ID that is based solely on a given,
pre-parsed EDID data.
It does so by concatenating the EDID's generic fields, such as
manufacturer ID, product ID, etc. as a string, and hash-combine them
with the hashed values of the display serial numbers.
All hash functions are stable in order to consistently reproduce display
IDs when the same information is fed via the EDID blob.
Flag: com.android.graphics.surfaceflinger.flags.stable_edid_ids
Bug: 366042891
Test: N/A
Change-Id: I7693d4b0ca9fee5ed190c3530a69300a8a530cd2
|
|
There are currently no clients of DisplayId who use getManufacturerId().
This CL removes the parsing and serving of the manufacturer's ID from
DisplayID's API, together with the only client
getPnpId(PhysicalDisplayId), which also isn't use in real use cases
(only tests).
See: go/edid-display-ids-al13
Flag: com.android.graphics.surfaceflinger.flags.stable_edid_ids
Bug: 390689046
Test: Display{Id|Identification} & libsurfaceflinger_unittest
Change-Id: I03db2f6d71b32fcb387e99d9bc2730ab21760012
|
|
In order to be able to remove direct dependencies on a DisplayId's int
value, we have to find alternatives for the API it provides. One such
piece of data is a display port, which is encoded directly in the ID int
value.
Cache the port as it is retrieved from HWC into DisplayIdentification so
it can be served later via alternative ISurfaceComposer APIs.
Bug: 374163881
Bug: 377307639
Flag: EXEMPT refactor
Test: libsurfaceflinger_unittest
Change-Id: If255418ed4047531417004c4a1fd710061d93685
|
|
More EDID fields are required as a part of migrating to EDID-based
display IDs. This CL parses the device's serial number from the serial
number descriptor bloc, (depicted by the FF marker), hashes it using a
stable hash, and serves it as a part of the Edid struct.
Later, amongst others, this value will be used to fabricate a unique
display ID that is based on the display's EDID.
See:
1. EDID spec: https://glenwing.github.io/docs/VESA-EEDID-A2.pdf
2. https://en.wikipedia.org/wiki/Extended_Display_Identification_Data#Structure,_version_1.4
Flag: com.android.graphics.surfaceflinger.flags.stable_edid_ids
Bug: 378923759
Test: DisplayIdentification_test
Change-Id: If9c9358b0d0850337496740d15419fd0ed330a02
|
|
More EDID fields are required as a part of migrating to EDID-based
display IDs. This CL parses the device's serial number from bytes 12-15
of block 0 in the EDID blob, hashes it using a stable hash, and serves
it as a part of the Edid struct.
Later, amongst others, this value will be used to fabricate a unique
display ID that is based on the display's EDID.
See:
1. EDID spec: https://glenwing.github.io/docs/VESA-EEDID-A2.pdf
2. https://en.wikipedia.org/wiki/Extended_Display_Identification_Data#Structure,_version_1.4
Flag: com.android.graphics.surfaceflinger.flags.stable_edid_ids
Bug: 378923334
Test: DisplayIdentification_test
Change-Id: I8e5c79f2f51c2fd2085dfaba7f5c45fbc698cbcb
|
|
More EDID fields are required as a part of migrating to EDID-based
display IDs. This CL parses the physical display size in CM from bytes
21-22 of block 0 in the EDID blob and serves it as a part of the Edid
struct.
Later, amongst others, this value will be used to fabricate a unique
display ID that is based on the display's EDID.
See:
1. EDID spec: https://glenwing.github.io/docs/VESA-EEDID-A2.pdf
2. https://en.wikipedia.org/wiki/Extended_Display_Identification_Data#Structure,_version_1.4
Flag: com.android.graphics.surfaceflinger.flags.stable_edid_ids
Bug: 378922658
Test: DisplayIdentification_test
Change-Id: I0bb27f267421941aa56f6147082a05ea3b13f33f
|
|
The first DTD in an edid is the preferred timing which allows to get
a more precise and more often correct physical size for a display. This
can be used to estimate or correct the dpi in case the edid reports the
wrong size and hwc is not providing the right value.
See edid spec: https://glenwing.github.io/docs/VESA-EEDID-A2.pdf
Flag: com.android.graphics.surfaceflinger.flags.correct_dpi_with_display_size
Bug: 361413340
Test: DisplayIdentification_test
Test: HWComposerTest
Test: manual - see bug and doc
Change-Id: I0bb85dcf8039f923f1ac892c4a1d6bda771dbf4f
|
|
data" into main am: c683bc5b94 am: 7685c4073f
Original change: https://android-review.googlesource.com/c/platform/frameworks/native/+/3101643
Change-Id: Ia40ad82c648cdf318ac04d55d820983cb7b656a9
Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
|
|
data
Test: system boots with no display identification error logs
Bug: 220045335
Change-Id: I6efa1daf523b17ea56f4a4b9e842d663804e1c15
|
|
Replace cityHash64Len0To16 with ftl::stable_hash which can handle up to
64 bytes string instead of just up to 16.
Bug: 185536303
Bug: 194863377
Test: DisplayIdentification_test
Change-Id: I90056145033ed5798dd5f5d99884028749d5d879
|
|
These functions intentionally overflows integers. The upcoming compiler
update, clang-r522817, will start complaining about these overflows.
Test: boot with new compiler
Bug: 325934863
Change-Id: I5e83a55e880f4e78a7de5a7b01ee99e64f601ca7
|
|
The string classes are only defined for character types, and
std::basic_string_view<uint8_t> has been removed now. See
https://discourse.llvm.org/t/deprecating-std-string-t-for-non-character-t/66779.
Cast std::span<T>::size() to size_t because the WIP std::span::size()
has a ptrdiff_t return type instead of size_t.
Bug: 175635923
Test: m MODULES-IN-frameworks-native-libs-ui
Change-Id: I156f1032191c74cc7c3f6b0cdb7dc0393e9e906f
|
|
This is so that the logic can be shared with VTS, as stable display IDs
are generated from edid information or port information.
Bug: 213493262
Test: VtsHalGraphicsComposer3_TargetTest
Change-Id: Id74a2c646558d61bb1a8ae80b038f7108e54e636
|