summaryrefslogtreecommitdiff
path: root/cmds/flatland/GLHelper.cpp
AgeCommit message (Collapse)Author
2025-03-17Harden construction sites of android::StrongPointer in frameworks/native Anton Ivanov
Test: presubmit Flag: EXEMPT refactor Bug: 393217449 Change-Id: I25857739af659a52d2e33fc0e05799959f4024ab
2025-02-25BufferQueues: clean up constructors for GLConsumer and CpuConsumer Jim Shargo
These currently use flags that muddy up client code. We've added nice new *::create methods, so lets use those and clean things up. BYPASS_IGBP_IGBC_API_REASON=warren buffers Bug: 398822412 Flag: EXEMPT refactor Test: builds, presubmit Change-Id: If86b22a6ddaed044afdaa06a2e2fb1c7a79ba941
2024-08-13flatland: 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: I9f366ef480f2039e4b550dae7854338a1a28b2f8
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
2021-02-05Rename DisplayConfig to DisplayMode Marin Shalamanov
This CL continues the raneming of display "configs" to display "modes". The goal of this is to have the same names as in the java code and the public display APIs. Additionally in this CL we move DisplayConfig (from libui) to the namespace android::ui. This is to prevent conflict with the SurfaceFlinger's internal android::DisplayMode. This is consistent with the neighboring classes which are also in the ui namespace. Also the type of the parameter defaultMode of {s,g}etDesiredDisplayModeSpecs is changed to size_t for consistency with the rest of the code. Appropriate error handling is added for this. Bug: 159590486 Bug: 179158858 Test: presubmit Change-Id: I31e5be1f2223a9ec9340789ce3dc5738eceaf40f
2020-01-29SF: Redesign API to query display information Dominik Laskowski
The DisplayInfo list returned by ISurfaceComposer for display configs contains display information/state redundant across configs. Extract config information to DisplayConfig, and repurpose DisplayInfo for immutable information about a physical display. In a future CL, SF will populate DisplayInfo with additional data (e.g. connection type, EDID fields) on initial connection. DisplayConfigs retain the ability to reload on subsequent connections. Introduce ui::DisplayState for transactional state applicable to both physical and virtual displays. Bug: 144601064 Test: dumpsys display Change-Id: I72003e8ef71483ef483d0de85d28b859a6c9f5fc
2019-02-02SF: Plumb physical display IDs to libgui Dominik Laskowski
This CL replaces ISurfaceComposer::{eDisplayIdMain,eDisplayIdHdmi} with the stable 64-bit display IDs generated by SF. Note that the 64-bit IDs fall back to the old values if the HWC API for display identification is not supported. Bug: 74619554 Test: LocalDisplayAdapter and Choreographer receive 64-bit IDs Test: 64-bit IDs fall back to 0 and 1 on HWC 2.2 and below Change-Id: I3c08eff6eb8bb179ecce596ab2820a2aa44c8649
2018-07-20[cmds] Modernize codebase by replacing NULL with nullptr Yi Kong
Fixes -Wzero-as-null-pointer-constant warning. Test: m Bug: 68236239 Change-Id: I73a0a82e3e32001f8ffb0880250c7023dd8290d3
2017-10-11SurfaceFlinger Transactions as distinct objects. Robert Carr
Essentially a process global singleton for transactions is not so useful once we make surface control public API as process isn't something an app developer is really thinking about. It's also nice that we get to delete two of the plumbing layers. Test: Boots Change-Id: I8864bd7e2f5865e3c0a425cf82f9928211911774
2017-04-13get rid of IGraphicBufferAlloc Mathias Agopian
Buffers can now be allocated directly through the graphic allocator HAL. Test: marlin: run full camera cts Test: angler: take screenshot, take photo w/ and w/o HDR, video, panorama, refocus, slo-mo Bug: 36462585 Bug: 36333314 Change-Id: Ie5222c53c3b9462e0ac7a41568718aad131eb328
2017-03-16Revert "Get rid of IGraphicBufferAlloc" Romain Guy
This reverts commit 78491c9f694cb0767996503c629776a8eda950d7. Change-Id: I78d5c0a30ab80265f697f681387872b6763b2d1e
2017-03-15Get rid of IGraphicBufferAlloc Mathias Agopian
This reverts commit 527747dce1ab4714bd424e5c1a25ebad3506c2cb. selinux policy allowing this change fixed. Test: took a screenshot Test: ran ImageReaderTest CTS Bug: 36194109 Change-Id: I72ac17b6c252750aa2a66cd1d94bd8b4e21b5e9d
2017-03-13Revert "get rid of IGraphicBufferAlloc" Chia-I Wu
This reverts commit 1da94dfed674e94edc37cdc8ef68530520edf169. Bug: 36176799 Bug: 36175706 Change-Id: I6dd5fe8df564f0efa4392a800fb316e27a05076e
2017-03-08get rid of IGraphicBufferAlloc Mathias Agopian
buffers can now be allocated in-process. Test: compile & run Bug: cleanup Change-Id: I3d4317a9bed20a6d8be2b7ac8fbb85738efb3657
2016-11-01Fix clang static analyzer warnings. Manoj Gupta
frameworks/native/cmds/flatland/GLHelper.cpp:366:9: warning: Potential leak of memory pointed to by 'src' Test: Warning no longer appears Change-Id: I2721d292cf1f387f34fb2e69f8370f1abff3f01f
2016-01-11Revert "libgui: Remove custom BufferQueue allocators" Dan Stoza
This reverts commit acd56150573d3a6d449c0de01f93c6f269d121e3. Change-Id: I877f63a57fbddb4dcff71b3909b460ecc05981eb
2016-01-08libgui: Remove custom BufferQueue allocators Dan Stoza
Removes the ability to set a custom GraphicBuffer allocator for a BufferQueue. Custom-allocated buffers may still be used through the attachBuffer call. Change-Id: I127bdfb496fc089a61c7e266c8bd2b906d41f32e
2015-09-02BQ: Modify consumer buffer count interfaces Pablo Ceballos
- Rename setDefaultMaxBufferCount() to setMaxBufferCount(). Modify it to be hard maximum on the number of buffers that can't be overwritten by the producer. - Enforce the maximum buffer count in setMaxAcquiredBufferCount(), setMaxDequeuedBufferCount(), and setAsyncMode(). - Remove mOverrideMaxBufferCount as it's no longer needed since overriding is no longer possible. - Expose setMaxAcquiredBufferCount() in GLConsumer. - Remove disableAsyncBuffer(), it was only being used for single buffer mode. Single buffer mode is now achievable with setMaxBufferCount(). Bug 13174928 Change-Id: Ia33799f42751272a711fbd8559f7602ce9f18e4f
2014-06-24GLConsumer: Stop using default constructor params Dan Stoza
Removes the dependency on default constructor parameters for GLConsumer so that a different constructor prototype can safely be added. Change-Id: I0da924bbd4c141edbf305598c1be8bc575654680
2014-03-17Merge "Remove deprecated BufferQueue constructor" Dan Stoza
2014-03-13Remove deprecated BufferQueue constructor Dan Stoza
Bug: 13415624 Change-Id: I1c17833511b5961af5a9bbb9cc3d627ce558d424
2014-03-12native frameworks: 64-bit compile issues Mark Salyzyn
- Fix format (print/scanf) - Suppress unused argument warning messages (bonus) Change-Id: I05c7724d2aba6da1e82a86000e11f3a8fef4e728
2013-08-14fix build. optional test broke. Mathias Agopian
Change-Id: I0ed5e2cd4c8945ee95673ed0eec5820d9def5097
2013-07-18BufferQueue improvements and APIs changes Mathias Agopian
this is the first step of a series of improvements to BufferQueue. A few things happen in this change: - setSynchronousMode() goes away as well as the SynchronousModeAllowed flag - BufferQueue now defaults to (what used to be) synchronous mode - a new "controlled by app" flag is passed when creating consumers and producers those flags are used to put the BufferQueue in a mode where it will never block if both flags are set. This is achieved by: - returning an error from dequeueBuffer() if it would block - making sure a buffer is always available by replacing the previous buffer with the new one in queueBuffer() (note: this is similar to what asynchrnous mode used to be) Note: in this change EGL's swap-interval 0 is broken; this will be fixed in another change. Change-Id: I691f9507d6e2e158287e3039f2a79a4d4434211d
2013-07-12always pass the BufferQueue explicitely to consumers Mathias Agopian
Change-Id: I883b0a7b19d8e722f9ab714ba6f49e658b02ca86
2013-02-14Refactoring: Rename SurfaceTextureClient to Surface Mathias Agopian
Change-Id: Ibed34175ae273608393aaa5f0a7df207dc40d709
2013-02-12flatland: remove an unneeded #include Jamie Gennis
Change-Id: I50831d4efd543664ff7df7aaef35d842aebf1bd6
2012-12-21flatland: add a GPU hardware benchmark Jamie Gennis
This change adds a GPU benchmark named 'flatland' that is intended to measure GPU performance of UI rendering and compositing scenarios at a fixed a clock frequency. This initial version includes only window compositing scenarios. Change-Id: I5577863aa3be5c6da8b49cb5d53cc49dec2f7081