summaryrefslogtreecommitdiff
path: root/libs/nativedisplay
AgeCommit message (Collapse)Author
2025-02-27Use refcounts to manage lifetime of AChoreographer*. Anton Ivanov
This is more robust then existing new/delete. In particular, current code has a leak in AChoreographer_create in case initialize() is not successful. Bug: 393217449 Test: presubmit Flag: EXEMPT_refactor Change-Id: Ib3d84ee58d953a332b14fd852b53b3507defe74f
2025-02-17Construct Choreographer with sp<>::make(). Anton Ivanov
The instance consructed in this way is passed to call sites expecting sp<>, so it must be constructed as such. Bug: 393217449 Test: presubmit Flag: EXEMPT_refactor Change-Id: I34d5be7c6abf5b37472a79be80ac10cd07dd731c
2025-01-09bufferqueues: Entirely remove support for passing GL fences into BQs Jim Shargo
There are very few if any real clients (i.e. non goldfish) that use these fences with bufferqueues. We can simplify the overall API by just removing it and doing explicit sync (which is what would happen anyway) where we would have passed them into the bufferqueue. Bug: 339705065 Flag: com.android.graphics.libgui.flags.bq_gl_fence_cleanup Test: old tests Change-Id: I1f3973c78aafe278708f203ef46a2b91b138eba7
2024-11-15bufferqueues: Simplify calls that don't use GL fences Jim Shargo
We wanna get rid of this API, and we can simplify all these calls to just avoid the argument. Bug: 339705065 Flag: EXEMPT refactor Test: old tests Change-Id: I4e94e66003cdcdc197254435e5a815dd53e67a20
2024-09-18nativedisplay: Fix types in ADisplay.cpp Jim Shargo
Some types in loops were misasligned. Bug: n/a Flag: EXEMPT refactor Test: presubmits Change-Id: I2701966df15064b32ae60c9d7b0e586face711f4
2024-08-24nativedisplay: ConsumerBase-based classes now create their own BufferQueues Jim Shargo
Using ConsumerBase-based classes is now the recommended way to create BufferQueues. This is an important step for go/warren-buffers, because it consolidates usages of BufferQueues to supported APIs and reduces the libgui API surface that exposes IGBP/IGBC. BYPASS_IGBP_IGBC_API_REASON: this CL is part of the migration. Bug: 340933754 Flag: com.android.graphics.libgui.flags.wb_consumer_base_owns_bq Test: atest, presubmit, compiles Change-Id: I7592bec02a7fd7b1712dfd3bf47a61852136438f
2024-03-08Merge "Add types for native Choreographer to ensure ordering" into main Treehugger Robot
2024-02-29Add types for native Choreographer to ensure ordering Chavi Weingarten
For now, added type CALLBACK_INPUT and CALLBACK_ANIMATION. The default callback type will be CALLBACK_ANIMATION for the public APIs. CALLBACK_INPUT will always run before CALLBACK_ANIMATION. Test: ChoreographerTest Bug: 324271765 Change-Id: I25c92b788bb83778d5b0608a47efe9756d42e32f
2024-02-26Enable header libraries for host builds Jerome Gaillard
The host build of libhwui requires access to the headers of nativedisplay and nativewindow. Bug: 322360037 Test: N/A Change-Id: I1deefdaa42c8756914451c8642fff83199d25e70
2024-02-21Add default_teams John Reck
Test: n/a Change-Id: I6c2426303194df4b94f6181f4b5c71970bc5f7fd
2023-10-27libgui: use flag MACRO for BQ_SETFRAMERATE Ady Abraham
Bug: 281695725 Test: presubmit Change-Id: I644dadbfc72cd50d80c50d36da96078253bbc009
2023-10-20Rename DisplayMode::refreshRate to peakRefreshRate Alec Mouri
Peak refresh rate is a more clear name Bug: 301462354 Test: builds, boots Test: dumpsys display Change-Id: I2f7f98859ae2a1d9191b1e377921eb7a04e784bf
2023-09-26libnativedisplay: plumb setFrameRate to SurfaceTexure Ady Abraham
Bug: 281695725 Test: manual using a test app Change-Id: I2d18c843d9e0771cef4378f58f1197f974163fa0
2023-09-26libnativedisplay: Introduce SurfaceTextureListener Ady Abraham
This is a tiny refactoting needed for the next CL. Bug: 281695725 Test: manual using a test app Change-Id: I0635325717073b528dadb712a843aabb4efddd3b
2023-08-17Use String8/16 c_str [graphics] Tomasz Wasilczyk
Bug: 295394788 Test: make checkbuild Change-Id: I69aa06b109c2f40ecf40441cbbb0dfa3e1aa99a1
2023-05-02Rename const to kFrameTimelinesCapacity Rachel Lee
From `kFrameTimelinesLength`. Bug: 270612751 Test: build Change-Id: I83e61a19254ab4a63479a2004124cfd2c082da35
2023-05-02Fix Choreographer affecting ASurfaceControlTest Rachel Lee
Fixes `testSurfaceTransaction_setFrameTimeline_notPreferredIndex` case on devices that do not have high refresh rates (e.g. max 60Hz). This occurred because the transaction-ready logic in SF does not consider transactions to be too early if the expected presentation time is over 100ms in the future, so the frame would just be deemed ready and presented asap. Thus, no longer provide frame timelines that are far into the future, which are not useful as well. Test: atest ASurfaceControlTest Test: atest ChoreographerTest Test: atest ChoreographerNativeTest Test: atest DisplayEventStructLayoutTest Test: atest ParcelableVsyncEventData Test: atest libsurfacefligner_unittest Fixes: 270612751 Change-Id: Ic05717bc153a9b07409b8d7912a1c40e1e31a57e
2022-12-13Move Choreographer to libgui. Rachel Lee
For Attached Choreographer, we want to store, access, and set attributes on a Choreographer from the SurfaceControl it is attached to. SurfaceControl is in libgui, so move Choreographer from libnativedisplay into libgui as well. The Android.bp dep chain: libandroid includes< libhwui < libnativedisplay < libgui Bug: 255838011 Test: atest ChoreographerNativeTest (no regression) Test: make and flash Test: presubmit Change-Id: Ie9f8cac93a888127ffa48d7061a467649e0ca694
2022-12-07Add security check to getPhysicalDisplayToken binder function. Sally Qi
- There is a possible way to take over the screen display and swap the display content due to a missing permission check. - Add a short-term fix for WCG checking failure because of new permission check added to SF::getPhysicalDisplayToken: change two function signatures (getStaticDisplayInfo and getDynamicDisplayInfo). - To make short-term fix workable, split getDynamicDisplayInfo binder call into two, one is to take display id, one is to take display token as old codes show to avoid huge modification on other callees. Bug: 248031255 Test: test using displaytoken app manually on the phone, test shell screenrecord during using displaytoken; atest android.hardware.camera2.cts.FastBasicsTest Change-Id: Id9d9012d4ede9c8330f0ce1096bcb78e51b7c5df
2022-11-28Move Choreographer impl to new file. Rachel Lee
Separates implementation from the API so it is neater. Bug: 255838011 Test: make, flash, atest ChoreographerNativeTest Change-Id: I8ac97ed4ebc1a4ed9d6315a473e178bf3d655252
2022-09-26Remove internal display related methods Huihong Luo
SurfaceFlinger and SurfaceComposerClient simply return the first connected display as internal display, which is not really correct. In particular,in the case of dual display for foldable devices, both displays are marked as Internal determined by calling into HWC2 IComposerClient::getDisplayConnectionType(). Therefore, the concept of internal/external/primary displays is removed from SurfaceFlinger, and the display manager is the better place to handle the logics. flatland is modified to take an extra argument to specify display id, and error occurs if no display is specified in case of multi-display. Bug: 241285477 Bug: 242763577 Bug: 74619554 Test: atest libgui_test libsurfaceflinger_unittest SurfaceFlinger_test Change-Id: Ib6c7e502ef3269c2c60a4e5388e5ac75275f87ed
2022-07-19Replace #apex with #systemapi Jiyong Park
Currently, for an API symbol to be accessible to APEXes, it needs to be marked as either # systemapi or # apex. It was originally just # apex, but we added # systemapi to clearly identify the origin of the APIs. The intended use is * #apex is for APEX-visible symbols that are defined in an APEX * #systemapi is for APEX-visible symbols that are defined in the platform (the non-updatable part) This intention is documented build/soong/docs/map_files.md, but isn't enforced at all. With b/239274367, this is now enforced and therefore the #apex tags in the platform library are replaced with `#systemapi` This change does not alter any functionality. Bug: 239274367 Test: m Change-Id: I14d0586223c24c302bb4d5a81a8240da77fb947a
2022-06-01Merge "remove clang property from Android.bp files" am: 0b4f27e34f am: ↵ Alix Espino
ba82cddd67 am: 432b5ce247 am: 79846ae39a am: d126fe2b6b Original change: https://android-review.googlesource.com/c/platform/frameworks/native/+/2105444 Change-Id: I2ce89ed4d480306db791a373bd45a4b30e1b2fa7 Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
2022-05-31Merge "remove clang property from Android.bp files" am: 0b4f27e34f am: ↵ Alix Espino
ba82cddd67 Original change: https://android-review.googlesource.com/c/platform/frameworks/native/+/2105444 Change-Id: Ifa81121be2dd65451d0d72b0f29284d91c086e60 Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
2022-05-31Merge "auto formatting from bpfmt" am: d836dd4440 am: d1a2b88b2e Alix Espino
Original change: https://android-review.googlesource.com/c/platform/frameworks/native/+/2086623 Change-Id: Ic7314cbe3efa3e9ceb9b06777bc13e5f26b4c7dc Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
2022-05-24remove clang property from Android.bp files Alix
Bug: 208980553 Test: treehugger Change-Id: Ia081e8db56d261f9075d6df339ca453bf588d8d7
2022-05-03auto formatting from bpfmt Alix
Test: Treehugger Change-Id: Iecf537174dd17032355a28166cf4a04822931621
2022-04-19Migrate bootFinished of ISurfaceComposer to AIDL Huihong Luo
And createDisplayEventConnection is migrated too. Bug: 221898546 Bug: 211009610 Test: atest libsurfaceflinger_unittest libgui_test SurfaceFlinger_test Change-Id: I2d0968262b86829b4cce13158446f1c85a4e55e4
2022-03-31Migrate getSupportedFrameTimestamps() to AIDL Huihong Luo
Note that FrameEvent is converted to AIDL enum and some external projects are updated to reflect the changes, refer to the topic for other CLs. Bug: 220935835 Test: atest libgui_test Change-Id: I576360ad0684b1b010b773a2287050c9ba2f62f
2022-02-26Add Choreo method for vsync callback start time. Rachel Lee
Currently store the start times globally. Bug: 210043506 Test: perfetto log of with & w/o CL, using Chromium apk, bug 198192946 Change-Id: I33bd31adf72e3cb6c9979bf9e9a5518a03a03237
2022-02-15Rename to VsyncCallback & presentation time. Rachel Lee
Bug: 217370454 Test: atest ChoreographerNativeTest Change-Id: Id26497b0f94845e392778954039996b9bbab834f
2022-02-14Use VsyncEventData in DisplayEventReceiver::Event. Rachel Lee
Clean-up that re-uses VsyncEventData so it's easier to maintain. The ParcelableVsyncEventData is used in AIDL. It is separated from VsyncEventData because of the union in DisplayEventReceiver::Event and Parcelable has non-trivial constructors. Bug: 218563993 Test: atest ChoreographerNativeTest Test: atest libsurfaceflinger_unittest Test: atest libgui_test Change-Id: I3ebeb1c7826300c27c4a12d4dba6fbd16305e9e1
2022-02-11Merge sc-v2-dev-plus-aosp-without-vendor@8084891 Xin Li
Bug: 214455710 Merged-In: I10fd54544bee940313f3987247c1841101a9d03a Change-Id: Iec868d5230dbcf81bb6f4af7cf3bc42d57d6b84d
2022-02-07Split VsyncEventData from DisplayEventDispatcher. Rachel Lee
Bug: 205721584 Test: atest libsurfaceflinger_unittest Change-Id: I51b18ed356ae7a29f8a88634346c0025321dbe08
2022-02-02Merge "[surfacetexture] Add patch to release current EglImage" am: ↵ Treehugger Robot
4334485270 am: 20934502e7 am: 5838e98c61 am: d1347913f1 Original change: https://android-review.googlesource.com/c/platform/frameworks/native/+/1956042 Change-Id: I0b5448aff4c4578b72dff6a209babba1180974b3
2022-02-02Merge "[surfacetexture] Add patch to release current EglImage" am: ↵ Treehugger Robot
4334485270 am: 20934502e7 am: 5838e98c61 Original change: https://android-review.googlesource.com/c/platform/frameworks/native/+/1956042 Change-Id: I81da86d18bf68b9656d2ab950b28bba981b6dad7
2022-02-02Merge "[surfacetexture] Add patch to release current EglImage" Treehugger Robot
2022-01-24Merge "Improve ASurfaceTransaction_setFrameTimeline docs." Rachel Lee
2022-01-24Merge "Remove unused ADisplay_getDensity" TreeHugger Robot
2022-01-21[surfacetexture] Add patch to release current EglImage Alvin.Liu
[Description] Add test patch to release current texture image when freeing the corresponding buffer, in order to prevent EglImage reference leak which would result in destructor not called. Bug: 214353180 [Test Report] Test Platform: palmer 1. AC ON/OFF: PASS 2. Launcher UI: PASS 3. CTS: PASS 4. CTS Command: run cts -m CtsMediaTestCases -t android.media.cts.DecodeEditEncodeTest run cts -m CtsMediaTestCases -t android.media.cts.EncodeDecodeTest Change-Id: I4a02d62fe72e2b3013e7c352b77977a3b6b515ae
2022-01-17Remove unused ADisplay_getDensity Brian Lindahl
Test: presubmit passed Bug: 207331905 Change-Id: Idf30898141172596b62f53d2b02786cff7a57b01
2022-01-14Improve ASurfaceTransaction_setFrameTimeline docs. Rachel Lee
Also use a new typedef AVsyncId shared in AChoreographer and ASurfaceControl. Test: atest ASurfaceControlTest; atest ChoreographerNativeTest Bug: 214063411 Change-Id: If24f144404038064de2ba72cca44572aca507e44
2022-01-12Rename AChoreographer frame timeline methods. Rachel Lee
Test: atest ChoreographerNativeTest Bug: 214303753 Change-Id: Id7c6ddcf7e0d46fb0b6eff35e46b4f937b59a058
2021-11-24Plumb HDR metadata through ASurfaceTexture Alec Mouri
This is just used for hwui's usage - HDR metadata on SurfaceTexture is not publicly exposed. Bug: 200309590 Test: builds, boots Change-Id: I373e50ee2d2000cb46c6a73d01e58b965c168311
2021-11-05Merge changes Ib9d8df90,I15c693c2 Rachel Lee
* changes: Send multiple scheduler frame timelines (fix). Revert "Revert "Send multiple scheduler frame timelines.""
2021-11-04Revert "Revert "Send multiple scheduler frame timelines."" Rachel Lee
This reverts commit caaa47d60b83670206dcd3c34382719b1f247ab5. Reason for revert: Fix the reverted CL in 2nd CL. Bug: 198192508 Bug: 204941507 Test: See 2nd CL. Change-Id: I15c693c2e0a82ef81a490319da11871bd74298b3
2021-11-02Merge "GLConsumer: add HW_TEXTURE usage when create texture" am: 9c8c3be733 ↵ Treehugger Robot
am: 14c911b484 am: 5ebe49f0b4 am: f1c39b6e99 am: fbd70a162e Original change: https://android-review.googlesource.com/c/platform/frameworks/native/+/1842093 Change-Id: Ic859f5498f0a32c43b125b9b5a7dcb46d071bf21
2021-11-02Merge "GLConsumer: add HW_TEXTURE usage when create texture" am: 9c8c3be733 ↵ Treehugger Robot
am: 14c911b484 am: 5ebe49f0b4 am: f1c39b6e99 Original change: https://android-review.googlesource.com/c/platform/frameworks/native/+/1842093 Change-Id: Ie32009e70d65aca53967ff4e536bbe6a36be2143
2021-11-02Merge "GLConsumer: add HW_TEXTURE usage when create texture" Treehugger Robot
2021-10-29Revert "Send multiple scheduler frame timelines." Rachel Lee
This reverts commit 6b1807002ebd198f51cdb70c3fee79645bd25fe8. Reason for revert: b/204492891 Change-Id: I292c11a0c54c57d97d112d9cec16b27acaa7b6a6