Age | Commit message (Collapse) | Author |
|
composer Hal 3 adds screenPartStatus to the DisplayIdentification
parcelable. The struct used in the client side should be updated to
reflect this.
Flag: EXEMPT refactor
Test: th
Change-Id: I8fb7ee099b2c54f3a4708aa19b3169d74e403e4b
|
|
This allows for userspace logging for a buffer and read/write dependencies on the buffer.
Hook up SF to the dependency monitor.
Right now this _does_ emit logs in SF when the primary display is powered down, which is likely indicative of SF being sloppy about release fences in situations where tearing won't be noticeable, but I did verify that manually making screenshotting forget to merge GPU work into a layer's release fence, which has been one way SF's torn the screen, triggers logcat, which is ultimately what we want.
Bug: 360932099
Flag: com.android.graphics.surfaceflinger.flags.monitor_buffer_fences
Test: manually remove screenshot fence handling and check logs
Change-Id: Ica391dfa8a4f2924bb72664b9d9399e4ad9e1747
|
|
Work towards DisplayId opaqueness by eliminating call-sites to APIs that
parse the display ID values directly.
This CL removes PhysicalDisplayId::getPort from the PhysicalDislayId
interface entirely. The only call-sites that are dependant on port are
replaced with getting the port info via StaticDisplayInfo.
Flag: com.android.graphics.surfaceflinger.flags.stable_edid_ids
Bug: 390689635
Test: libsurfaceflinger_unittest
Change-Id: I92ea4850b158f9c49dff9166a9b61565ad4537d7
|
|
Work towards DisplayId opaqueness by eliminating call-sites to APIs that
parse the display ID values directly.
This CL removes *DisplayId::tryCast from the DislayId interface entirely
and replaces it with SF APIs that check for the existence of the
displays before casting. This removes direct dependency on ID value
bits. It also removes DisplayId::isVirtual().
Flag: com.android.graphics.surfaceflinger.flags.stable_edid_ids
Bug: 390690584
Bug: 390689313
Test: libsurfaceflinger_unittest
Change-Id: I918a6b361784e41165837234b82eed027dc46673
|
|
Work towards DisplayId opaqueness by eliminating call-sites to APIs that
parse the display ID values directly. One such site is
VirtualDisplaySurface.
Replace all calls to *DisplayId::tryCast with a VirtualDisplayIdVariant
guard.
Flag: com.android.graphics.surfaceflinger.flags.stable_edid_ids
Bug: 390690584
Test: libsurfaceflinger_unittest
Change-Id: I7ae9e838547c31ce09349e15f7d23e99f313646b
|
|
Work towards DisplayId opaqueness by eliminating call-sites to APIs that
parse the display ID values directly. One such site is
compositionengine::Output and its implementers, such as
compositionengine::Display.
Replace all calls to *DisplayId::tryCast with local calls to cached
display state at the time of Output creation.
Flag: com.android.graphics.surfaceflinger.flags.stable_edid_ids
Bug: 390690584
Test: libcompositionengine_test && libsurfaceflinger_unittest
Change-Id: I5524928e839e683184a878d08c2515e3d9d0593d
|
|
Stuff in libui or libgui or elsewhere upstack might want to use this.
Also remove PowerAdvisor's RingBuffer implementation, since it's basically the same thing.
Change-Id: I9d8d94fa0d7b8327b320ceed0d507b83979d033d
Bug: 360932099
Flag: EXEMPT refactor
Test: builds
|
|
|
|
|
|
When a HWC returns an invalid or duplicate port that collides with an
existing active port, the end result is display identification confusion
in higher layers of the stack. This is especially bad when the confusion
is with the internal/primary display and causes it to malfunction.
Reject hotplugs in which the reported port from HWC is already active.
Flag: EXEMPT bugfix
Bug: 383430671
Test: Display{Id | Identification}Test && libsurfaceflinger_unittest
Change-Id: Id3569ef1d973f4ace51d14c7e3cc9aef17630b22
|
|
am: 47effc89c3
Original change: https://android-review.googlesource.com/c/platform/frameworks/native/+/3205775
Change-Id: I961855534ef14cf907bb95f4ac27a05a31bc10bd
Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
|
|
|
|
|
|
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
|
|
...since 1.0 == SDR white, we can program these layers by sending
SDR/HDR as the dimmingRatio to map the degamma'd value at HDR/SDR
to the max panel lux.
It's a little counter-intuitive at first glance, because we're sending a
dimming ratio < 1.0 for an HDR layer which looks like we're intending to
dim the layer. But it makes sense just from the math: layer_luminance =
panel_luminance * srgb_EOTF(layer_input) * (SDR_white / panel_luminance) =
srgb_EOTF(layer_input) * SDR_white. For an entirely SDR layer, then the
layer luminance is capped by SDR_white as desired, and for a layer that
was rendered with an HDR/SDR ratio then the layer luminance cancels out
to HDR_white == panel_luminance. And, we *are* dimming the layer: since
for a full range layer 1.0 before this infrastructure was in place would
have mapped to the max panel luminance.
Now, the HDR/SDR ratio may have differed by the time we hit the panel
(the layer is slightly in the past), but assuming the ratio changed slowly:
* If HDR/SDR increased, then we dim the layer a bit more than the
application intended, but the user does not notice because the SDR
white point stayed the same; the application just used less headroom
than it could have.
* If HDR/SDR decreased, then we dim the layer less than the application
intended, but the panel can just clip
Bug: 236745178
Flag: com.android.graphics.surfaceflinger.flags.fp16_client_target
Test: builds
Test: courage
Change-Id: I85a0d978f994d495e34dfbdd9dc7b03bd64f293c
|
|
Shadows will continue to be drawn by surfaceflinger
Bug: 391428079, 375624570
Change-Id: Ic527a091e77d69c6e9529782d283379a2651dea8
Test: Shadows work in free form mode
Flag: com.android.window.flags.ignore_corner_radius_and_shadows
|
|
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
|
|
There are currently no clients of DisplayId who use isStable().
This CL removes the parsing and serving of "stableness" of a DisplayId
by removing the isStable() API, and all associated tests.
See: go/edid-display-ids-al13
Flag: com.android.graphics.surfaceflinger.flags.stable_edid_ids
Bug: 352320847
Test: Display{Id|Identification} & libsurfaceflinger_unittest
Change-Id: I903fae86085001d32f77f34286c9f03ee481093b
|
|
layer properties
Modify RoundedCornerState and ShadowSettings to account for client drawn corners and shadows. When equal to the requested values, SurfaceFlinger will not draw corners and shadows for the layer.
Bug: 375624570
Flag: com.android.window.flags.ignore_corner_radius_and_shadows
Test: atest SurfaceFlinger_test; manual test - PIP, freeform window, recents, app launch
Change-Id: Idde115b51a253a34cfadfbd1ff6c7b15c44518ef
|
|
|
|
|
|
* changes:
SF: Cache display port in physical DisplaySnapshot
SF: Cache display port in DisplayIdentification on onHotplugConnect
|
|
Original change: https://android-review.googlesource.com/c/platform/frameworks/native/+/3381868
Change-Id: I4f7f3cec8c4fc3bf7c4ea6a9ca7b1614a25596e5
Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
|
|
Original change: https://android-review.googlesource.com/c/platform/frameworks/native/+/3381868
Change-Id: I6c417016e3c8ecacd6c0636519a2df3b94e0ecdd
Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
|
|
* To PublicFormat
* To various checks in AHardwareBuffer
Bug: 294442993
Bug: 370458610
Flag: EXEMPT NDK
Change-Id: I7e82febd419bc9cd6cbd74ff6fef168d864eb784
Merged-In: I7e82febd419bc9cd6cbd74ff6fef168d864eb784
|
|
* To PublicFormat
* To various checks in AHardwareBuffer
Bug: 370458610
Flag: EXEMPT NDK
Change-Id: I7e82febd419bc9cd6cbd74ff6fef168d864eb784
|
|
|
|
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
|
|
If validating the size of the buffer fails during the flattening process of GraphicBuffer, fd leakage will occur; You can easily reproduce this problem when validating the size of the buffer fails or simply setting the error to non NOERROR.
Bug: 381504577
Test: Manual
Change-Id: I7e0ba4a889d6888cc5794a0f226f6638e104eb81
|
|
|
|
Source values for refresh rates from the RefreshRateSelector
through SurfaceComposerClient.
Test: atest android.display.cts.DisplayTest
BUG: 365163968
Flag: com.android.server.display.feature.flags.enable_get_supported_refresh_rates
Change-Id: I149e6e51b3b3718ef53e522f1fca5650dbbd8b7b
|
|
HLG is universally too bright on basically every single platform that
supports HDR. Fix this for Android.
Bug: 362510107
Flag: com.android.graphics.surfaceflinger.flags.begone_bright_hlg
Test: HLG playback
Change-Id: I5d464c016be62b11f6a3cc1ab228e14d198afb15
|
|
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
|
|
Flag: com.android.internal.camera.flags.camera_heif_gainmap
Bug: 362608343
Test: atest -c -d cts/tests/camera/src/android/hardware/camera2/cts/ImageReaderTest.java#testHeicUltraHdr
Change-Id: Icefca1f6e1676b776a0b083fc7f6f8224cb72762
|
|
Bug: 370570306
Merged-In: I9be1254c3e2685b0aa950b314c581824f40ce26c
Change-Id: I35bc501a2b1d9eb100aaab25cd660cf2e0542f99
|
|
Original change: https://android-review.googlesource.com/c/platform/frameworks/native/+/3342060
Change-Id: Id367b9f72b4be29d1b0c706f0a67f501389ef15a
Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
|
|
0034aef56f2ece07055bb4955a32df389a0334bc
Change-Id: I963afc7425e38bc6b7bdbacc262e89f4d5b16f72
|
|
Bug: 337330263
Test: build
Test: atest LayerSnapshotTest
Flag: com.android.graphics.libgui.flags.apply_picture_profiles
Change-Id: I1adb6069d0168084abf0a76d310abb4ffad5ce5f
|
|
Revert submission 3334193-no-llndk-versioning
Reason for revert: Droidmonitor created revert due to b/378038995. Will be verifying through ABTD before submission.
Reverted changes: /q/submissionid:3334193-no-llndk-versioning
Change-Id: I7c8262a79fe1f85f1f225a5421aab6126dc76175
|
|
Bug: 337330263
Test: atest OutputLayerWriteStateToHWCTest
Test: atest OutputUpdateAndWriteCompositionStateTest
Flag: com.android.graphics.libgui.flags.apply_picture_profiles
Change-Id: I082f4bc47c2d402e15fc3a3de5224889752272fa
|
|
Bug: 362658565
Test: m
Change-Id: I2fa5d366b591afa878f62ba39f2831e48a6df5cd
|
|
BUG: 361433796
Flag: com.android.server.display.feature.flags.enable_get_suggested_frame_rate
Test: atest android.display.cts.DisplayTest
Test: Check value of the frameRateCategoryRate in the `adb shell dumpsys display`
Change-Id: Iabd6040d09b3fdb5ec5aa42a8aeef01d02c2fd05
|
|
|
|
Flag: EXEMPT log only update
Test: Manual (test cases listed in https://paste.googleplex.com/4796169164423168)
Change-Id: Ia4e9823522dc06b14d27d762fa23a79477408509
|
|
BUG: 361433651
Test: Test: atest DisplayModeDirectorTest && atest BrightnessObserverTest && atest SettingsObserverTest
Flag: com.android.server.display.feature.flags.enable_has_arr_support
Change-Id: Ie9f16c229a22d404acd70ae9898fe3feacbcd6dc
|
|
Flag: EXEMPT bug fix
Fixes: 310950423
Test: presubmit
Change-Id: I05feb4881a95bc8caad90a3d632b3c7881909bf3
|
|
Current rounding logic does not handle negative values
correctly. FloatRect(-1080,...) is converted to Rect(-1079,...)
Fix this by using the standard rounding function.
Flag: EXEMPT build error (b/350967139)
Bug: 310950423
Test: presubmit
Change-Id: Ib8c5c393040149225e5b2bc858c21894e306a456
|