eb7980c224a54f860b7af5ecf30cbc633ae41289 |
28-Jun-2016 |
Pablo Ceballos <pceballos@google.com> |
BQ: Add and expose a unique id Bug 29422927 Change-Id: I80eab94f073ebc378302f00fa86a740c3643657e
irtualDisplaySurface.cpp
irtualDisplaySurface.h
|
5cf424bc129f01ee12c7a4fbea1664276d29f970 |
20-May-2016 |
Dan Stoza <stoza@google.com> |
HWC2: Fix breakage from header change Updates the shim and adapter to handle the header changes introduced by "HWC2: Add format to VD create, surface damage" in libhardware. Bug: 22767098 Change-Id: I8142301c121d9b5602a4455f3fbadefefd685cf0
WC2.cpp
WC2.h
WC2On1Adapter.cpp
WC2On1Adapter.h
WComposer.cpp
WComposer.h
|
076ac670262e448c531e6db7727cfade325866ca |
14-Mar-2016 |
Dan Stoza <stoza@google.com> |
HWC2: Add support for color modes Adds support for setting color modes through HWC2On1Adapter and the HWC2 C++ shim Bug: 22767098 Change-Id: I0b7300093ab427be7105a2535fc9db4953b8af1c
WC2.cpp
WC2.h
WC2On1Adapter.cpp
WC2On1Adapter.h
|
5df2a86063c6a83813fc1aa3d8938a82f7ff8f14 |
25-Mar-2016 |
Dan Stoza <stoza@google.com> |
HWC2: Hook up setColorTransform/setLayerDataspace Plumbs the setColorTransform and setLayerDataspace calls through the HWC2 C++ shim and implements a trivial versions in the adapter, which drops non-HAL_DATASPACE_UNKNOWN layers to client composition, and which drops all layers to client composition if a color transform is applied. Bug: 22767098 Change-Id: Ifffd19b77cf3b33ec86fde3f72257f6b97b4dd79
WC2.cpp
WC2.h
WC2On1Adapter.cpp
WC2On1Adapter.h
|
1a61da5e28fa16ad556a58193c8bbeb32a5f636d |
28-Apr-2016 |
John Reck <jreck@google.com> |
Return the transform to apply in getLastQueuedBuffer Bug: 28428955 Change-Id: Id48f7d3bf3f5deb074cf0a6a52a41caac875db41
irtualDisplaySurface.cpp
irtualDisplaySurface.h
|
50101d02a8eae555887282a5f761fdec57bdaf30 |
08-Apr-2016 |
Dan Stoza <stoza@google.com> |
libgui: Add getLastQueuedBuffer to BufferQueue Adds the ability to get the last buffer queued to a BufferQueue plus its acquire fence. Bug: 27708453 Change-Id: Iee39475740b40c854a5f46178b2934fd930e61b8
irtualDisplaySurface.cpp
irtualDisplaySurface.h
|
12402e34ad453f58e2c9d39fa65772f6cb09a0b6 |
15-Apr-2016 |
Dan Stoza <stoza@google.com> |
Merge "SF: Fix the delivery of visible and damage rects to HWC" into nyc-dev
|
f5abc7801eb008708d31c8f349d4301881c51c89 |
15-Apr-2016 |
Gary Smith <gary.k.smith@intel.com> |
SF: Fix the delivery of visible and damage rects to HWC The storage space for the visible and damage regions was inside the HWCLayerVersion1 class, which is temporarily allocated while using an iterator. As such, the storage has been deleted by the time the HWC gets a pointer to it sometime later and hence the HWC reads garbage in all layers. This commit moves the storage into the DisplayData structure and hence it persists until the next frame. Bug 28200888 Change-Id: If7cc8d2de49e3e66e9d17cc45934d8e544576026
WComposer_hwc1.cpp
WComposer_hwc1.h
|
8bf556ec85af8d4d47aad5a19a0633cf8b0fa17e |
15-Apr-2016 |
Dan Stoza <stoza@google.com> |
Merge "HWC2: Change version detection scheme" into nyc-dev
|
355f60461b1ec4f0035fcb5e73d36e662352cd18 |
14-Apr-2016 |
Dan Stoza <stoza@google.com> |
HWC2: Change version detection scheme SurfaceFlinger now checks hardware composer module numbers by looking at device.version, the high byte of which corresponds to the HWC major version (0x01... for HWC 1.x and 0x02... for HWC 2.0). Bug: 28161397 Change-Id: I4560bf60c35bdb97629fda1aa1256b03122688ad
WComposer.cpp
|
09e7a27fabde3da99ba6dfd2fd20be7d1425a9ad |
14-Apr-2016 |
Dan Stoza <stoza@google.com> |
HWC2: Check SidebandStream capability on load Checks whether the HWC2 device has the SidebandStream capability before attempting to load the corresponding function pointer Bug: 28161394 Change-Id: I6407d61a1b23138781e57213bcb868be46609018
WC2.cpp
WC2.h
|
c4f471e75a8ec64ec34e3f2944a5a756215d0bec |
24-Mar-2016 |
Dan Stoza <stoza@google.com> |
Plumb HDR capabilities up to SurfaceComposerClient Plumbs HDR capabilities up from HWC2 through SurfaceFlinger and ISurfaceComposer to SurfaceComposerClient. Bug: 25684127 Change-Id: I0f07043ff42bfc7a159f785fee3e84936dc3c280
WComposer.cpp
WComposer.h
|
7d7ae7345abfb91be55c4aed6c9be9d09a144e4c |
16-Mar-2016 |
Dan Stoza <stoza@google.com> |
HWC2: Add getHdrCapabilities to C++ shim Adds support for the getHdrCapabilities call to the HWC2 C++ shim. Bug: 25684127 Change-Id: Ib4635ee437a06b48945e7f0328492c1e74e27aaa
WC2.cpp
WC2.h
|
ed40eba4c1264806a1b795bf45b0dea366ee9975 |
16-Mar-2016 |
Dan Stoza <stoza@google.com> |
HWC2: Add getHdrCapabilities stub to adapter Adds a minimal getHdrCapabilities stub to the HWC2On1Adapter, which always returns 0 supported HDR types (as per the HWC2 spec). Bug: 25684127 Change-Id: I472ad9f08d1b97d5de69d044790badf3af60da72
WC2On1Adapter.cpp
WC2On1Adapter.h
|
59d12e90ae09171fc8b50fd8fd02e3247c04840c |
28-Mar-2016 |
Pablo Ceballos <pceballos@google.com> |
Merge "Rename single buffer mode to shared buffer mode" into nyc-dev
|
40845df1285b387bcbf8f43ac72228eee2606d80 |
26-Jan-2016 |
Pablo Ceballos <pceballos@google.com> |
SF: Add FenceTracker FenceTracker tracks all fences in SurfaceFlinger. These timestamps could be used for debugging, profiling, or be exposed to the application. Change-Id: I4297a661c0a7530e744168ac7a2a66c4bca92fd5
isplaySurface.h
ramebufferSurface.cpp
ramebufferSurface.h
irtualDisplaySurface.cpp
irtualDisplaySurface.h
|
3559fbf93801e2c0d9d8fb246fb9b867a361b464 |
17-Mar-2016 |
Pablo Ceballos <pceballos@google.com> |
Rename single buffer mode to shared buffer mode Change-Id: Id43d0737d9367981644e498942ebc0077d61038c
irtualDisplaySurface.cpp
irtualDisplaySurface.h
|
9e56aa0fdb5f7121b9b975c6c16db103ea4d2fe9 |
02-Nov-2015 |
Dan Stoza <stoza@google.com> |
Switch SurfaceFlinger to HWC 2.0 Enables SurfaceFlinger to speak to version 2.0 of the Hardware Composer HAL instead of version 1.x (also removing support for the framebuffer HAL). By default, however, this functionality is disabled. In order to enable it, USE_HWC2 must be set to true in Android.mk. Change-Id: I4589e02ac2165236b10ff2f7cb772f87e0d3daab
isplaySurface.h
ramebufferSurface.cpp
ramebufferSurface.h
WComposer.cpp
WComposer.h
WComposer_hwc1.cpp
WComposer_hwc1.h
irtualDisplaySurface.cpp
irtualDisplaySurface.h
|
fc4e202b33d33b5e11181f09a2229d3ef7ae925a |
23-Feb-2016 |
Dan Stoza <stoza@google.com> |
HWC2On1Adapter: Initialize variables and fix mutex Initializes a few variables that had been missed before, and switches the Adapter state mutex to be recursive, since it is held during the call into HWC1 prepare, which can call back into the Adapter to perform an invalidate. Change-Id: Id300e8b23403f5339562fd860c2ce9d0f2b72f27
WC2On1Adapter.cpp
WC2On1Adapter.h
|
a4c2c3ba1ed2d741edfa652bf8f2bab229389e8e |
23-Feb-2016 |
Dan Stoza <stoza@google.com> |
Merge changes I8cc3ce7d,Ie1a7bfd2,Id472ed4e into nyc-dev * changes: libgui: Allow for pending releases in GLConsumer SF: HWC2 C++ shim SF: HWC2On1Adapter
|
651bf314a6a1a77e4cbb66ffb81221200f918290 |
24-Oct-2015 |
Dan Stoza <stoza@google.com> |
SF: HWC2 C++ shim Provides an object-based C++ interface to the HWC 2.0 HAL Change-Id: Ie1a7bfd2f6faa548bc45da845a4f50f1915b5806
loatRect.h
WC2.cpp
WC2.h
|
c6998d2391e6e54cf0664bb664e0fba2f2fce1da |
25-Sep-2015 |
Dan Stoza <stoza@google.com> |
SF: HWC2On1Adapter This provides an adapter from HWC 2.0, which SurfaceFlinger will be converted to speak, to HWC 1.x, which all current implementations support. It requires at least HWC 1.1. Change-Id: Id472ed4eef0f816403cdf2d40a56177cc7f65930
WC2On1Adapter.cpp
WC2On1Adapter.h
|
ff95aabbcc6e8606acbd7933c90eeb9b8b382a21 |
14-Jan-2016 |
Pablo Ceballos <pceballos@google.com> |
Add interface for controlling single buffer auto refresh - Adds a boolean to BufferQueue that controls whether or not auto refresh is enabled in SurfaceFlinger when in single buffer mode. - Adds plumbing up to ANativeWindow. - When enabled, it will cache the shared buffer slot in Surface in order to prevent the Binder transaction with SurfaceFlinger. Bug 24940410 Change-Id: I83142afdc00e203f198a32288f071d926f8fda95
irtualDisplaySurface.cpp
irtualDisplaySurface.h
|
127fc63e8a15366b4395f1363e8e18eb058d1709 |
30-Jun-2015 |
Dan Stoza <stoza@google.com> |
libgui: Add dequeue/attach timeout Adds the ability to specify the timeout when dequeueBuffer or attachBuffer block due to the lack of a free buffer/slot. By default, these will block indefinitely (which is signified by a timeout of -1). When a timeout (other than -1) is specified, non-blocking mode is disabled and the given timeout will be used instead. Bug: 25196773 Change-Id: I17fdbeebccb7c8d878703d758ac1209608258e61
irtualDisplaySurface.cpp
irtualDisplaySurface.h
|
ccdfd60d79a8b7f1ed6401d0f2e8e29166a10584 |
08-Oct-2015 |
Pablo Ceballos <pceballos@google.com> |
BQ: Add support for single buffer mode - Adds a single buffer mode to BufferQueue. In this mode designate the first dequeued buffer as the shared buffer. All calls to dequeue() and acquire() will then return the shared buffer, allowing the producer and consumer to share it. - Modify the buffer slot state tracking. Add a new SHARED state for the shared buffer in single buffer mode. Also track how many times a buffer has been dequeued/queued/acquired as it's possible for a shared buffer to be both dequeued and acquired at the same time, or dequeued/acquired multiple times. This tracking is needed to know when to drop the buffer out of the SHARED state after single buffer mode has been disabled. - Add plumbing for enabling/disabling single buffer mode from Surface. Bug 24940410 Change-Id: I3fc550c74bacb5523c049a227111356257386853
irtualDisplaySurface.cpp
irtualDisplaySurface.h
|
b0c8d787040974128dc7c7c2e484da66a2437815 |
29-Oct-2015 |
Rob Carr <racarr@google.com> |
Merge "Support SurfaceView synchronization."
|
7dde599bf1a0dbef7390d91c2689d506371cdbd7 |
22-May-2015 |
Dan Stoza <stoza@google.com> |
Support SurfaceView synchronization. Add API for fetching the next frame number to be produced by a given buffer producer. Add an API to SurfaceComposer to defer execution of the current transaction until a given frame number. Together these may be used to synchronize app drawing and surface control updates. Change-Id: I8e0f4993332ac0199c768c88581a453fefbaff1d
irtualDisplaySurface.cpp
irtualDisplaySurface.h
|
f133d003aaac80a0932a2d8f9efd8493e56f7814 |
23-Oct-2015 |
Pablo Ceballos <pceballos@google.com> |
SF: Connect the VDS scratch surface producer - VirtualDisplaySurface has a BufferQueue for producing scratch buffers when doing mixed composition for a virtual display. - Connect/disconnect the producer end of this BufferQueue in the VirtualDisplaySurface constructor/destructor to avoid using it in a disconnected state. Bug 24733179 Change-Id: I87dab9ff4f46d422b7796670b0b4d17b7fd09165
irtualDisplaySurface.cpp
|
567dbbb6dd42be5013fcde0dadb3316d85f2fa0d |
27-Aug-2015 |
Pablo Ceballos <pceballos@google.com> |
BQ: get rid of async in producer interface - Get rid of the async flag in dequeueBuffer, allocateBuffers, waitForFreeSlotThenRelock, and QueueBufferInput. - Instead use the persistent flags mDequeueBufferCannotBlock and mAsyncMode to determine whether to use the async behavior. Bug 13174928 Change-Id: Ie6f7b9e46ee3844ee77b102003c84dddf1bcafdd
irtualDisplaySurface.cpp
irtualDisplaySurface.h
|
583b1b32191992d6ada58b3c61c71932a71c0c4b |
04-Sep-2015 |
Pablo Ceballos <pceballos@google.com> |
BQ: Prevent operations on disconnected BQs - Update unit tests to match Bug 23763412 Change-Id: I77e59bf6b57b328433c3835450455f80a8fa454b
irtualDisplaySurface.cpp
irtualDisplaySurface.h
|
ff12cba77b5b88f3978070bb970d7721225271ee |
16-Sep-2015 |
Pablo Ceballos <pceballos@google.com> |
Merge "BQ: Modify consumer buffer count interfaces"
|
e1b63cc6d4e92b95d9d5e504035a44e3cb40b722 |
14-Sep-2015 |
Pablo Ceballos <pceballos@google.com> |
Merge "Remove usage of SharedBuffer"
|
4aa427b964f22e3cf10381f8fc27e7042c322b9c |
14-Sep-2015 |
Pablo Ceballos <pceballos@google.com> |
Merge "native: Rename mBuf to mSlot"
|
d814cf2a3e3a2fdb73efa80539fe8af0a93da1db |
11-Sep-2015 |
Pablo Ceballos <pceballos@google.com> |
Remove usage of SharedBuffer - Remove getSharedBuffer() from Region - Don't use SharedBuffer for memory management in HWCLayerVersion1, instead keep shallow copies of the Regions. Bug 23962051 Change-Id: I8fa17beed57936648c7b4defc9219dff1d5b337f
WComposer.cpp
|
71b2947cfd1be2795a2e1313f4b799c5588c3430 |
04-Sep-2015 |
Dan Stoza <stoza@google.com> |
am afdbddbe: am e5ce0db8: am f090d598: am 3e4c8ccc: Merge "SF: Add colorTransform to DisplayInfo" into mnc-dr-dev * commit 'afdbddbef57b3ffafa5b6a2107f37fda06dec9d4': SF: Add colorTransform to DisplayInfo
|
19e3e06e3c65a7c001a6fe0971744ba5ff536515 |
20-Aug-2015 |
Pablo Ceballos <pceballos@google.com> |
BQ: Modify consumer buffer count interfaces - 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
ramebufferSurface.cpp
irtualDisplaySurface.cpp
|
f2699fc3a8c12b2bf95120c068801e050168bd96 |
31-Aug-2015 |
Dan Stoza <stoza@google.com> |
SF: Add colorTransform to DisplayInfo Adds the colorTransform field, which defines a vendor-specific color transform (e.g., wide gamut, sRGB, etc.) to the DisplayInfo class, and populates it from the HWC interface. Bug: 20853317 Change-Id: I153edc36a361407656f3eb5082b96c2da2ecbec7
WComposer.cpp
WComposer.h
|
e5b755a045f4203fdd989047441259893c6fbe2d |
14-Aug-2015 |
Pablo Ceballos <pceballos@google.com> |
BQ: Get rid of setBufferCount - Remove setBufferCount from BufferQueueProducer and IGraphicsBufferQueueProducer. - Get rid of the unit tests for it. - In Surface, convert setBufferCount calls into calls to setMaxDequeuedBufferCount. - Change mOverrideMaxBufferCount to a boolean since it can now be derived from mMaxAcquiredBufferCount, mMaxDequeuedBufferCount, and mAsyncMode. Bug 13174928 Change-Id: Ia0adc737fae9e13f186df832b8428a0829041bf9
irtualDisplaySurface.cpp
irtualDisplaySurface.h
|
fa455354557f6283ff3a7d76979e52fd251c155f |
13-Aug-2015 |
Pablo Ceballos <pceballos@google.com> |
BQ: add setMaxDequeuedBufferCount Adds the new setMaxDequeuedBufferCount() function to BufferQueueProducer. This will eventually replace setBufferCount. Also add setAsyncMode. Bug 13174928 Change-Id: Iea1adcd5d74a75f67d8e9dde06d521695628ad5a
irtualDisplaySurface.cpp
irtualDisplaySurface.h
|
47650f4f66a49e1815ad08ca4fb12a661d133abc |
05-Aug-2015 |
Pablo Ceballos <pceballos@google.com> |
native: Rename mBuf to mSlot Remove the union in BufferItem. Bug: 19769719 Change-Id: I4e496b5aafce0fc5206dc7551a741f9c262c2cd0
ramebufferSurface.cpp
irtualDisplaySurface.cpp
|
53390e1e8c33ebee5bb8100e846f5263ba05ff73 |
04-Aug-2015 |
Pablo Ceballos <pceballos@google.com> |
libgui/SF: Fix some code warnings A couple of fixes to satisfy the Eclipse static code analysis tool. - Initialize all members in constructors - Remove unused forward declarations - Add parentheses when combining logical and bitwise operators - Fix a case statement with no break (it was intentional) Change-Id: Icecb8cc98c6f58b97ab33fffb621f0edc33a7d3c
loatRect.h
|
e04e4edcd1a852058775caa34cf73e2c20dc1066 |
11-Jun-2015 |
Manoj Kumar AVM <manojavm@codeaurora.org> |
sf: Fix incorrect state reporting in dumpsys Dumpsys utility accesses layer compositionType variable with out proper protection. These variables are modified during hwc_prepare call. Existing HAL lock protection is not sufficient to address this issue. Failure to do this will result in incorrect state reporting in dumpsys. A new displayLock mutex in HWComposer will be used in both dumpsys and draw calls to ensure correct state is accessed. Change-Id: I8a57de59525adc0e089b3bed95c067c01e42b666 (cherry picked from commit e54506b81a3b81683056ad48294e37d6b4b4e36b)
WComposer.cpp
WComposer.h
|
c6f30bdee1f634eb90d68cb76efe935b6535a1e8 |
08-Jun-2015 |
Dan Stoza <stoza@google.com> |
libgui/SurfaceFlinger: Add getConsumerName Adds a getConsumerName method to IGraphicBufferProducer and Surface. Currently, the name is cached inside of IGBP and is update on connect and dequeueBuffer, which should be good enough for most uses. Bug: 6667401 Change-Id: I22c7881d778e495cf8276de7bbcd769e52429915
irtualDisplaySurface.cpp
irtualDisplaySurface.h
|
812ed0644f8f8f71ca403f4e5793f0dbc1fcf9b2 |
03-Jun-2015 |
Dan Stoza <stoza@google.com> |
libgui: Add generation numbers to BufferQueue This change allows producers to set a generation number on a BufferQueue. This number will be embedded in any new GraphicBuffers created in that BufferQueue, and attempts to attach buffers which have a different generation number will fail. It also plumbs the setGenerationNumber method through Surface, with the additional effect that any buffers attached to the Surface after setting a new generation number will automatically be updated with the new number (as opposed to failing, as would happen on through IGBP). Bug: 20923096 Change-Id: I32bf726b035f99c3e5834beaf76afb9f01adcbc2
irtualDisplaySurface.cpp
irtualDisplaySurface.h
|
10613dc3b565e95d3d5f459ec70fd2f6a77f807a |
13-May-2015 |
Michael Lentine <mlentine@google.com> |
Add hotplug support for primary display. When the primary is connected/disconnected on tv devices HWComposer updates it's display parameters but doesn't destroy or recreate the display. Bug: 18698244 Change-Id: I759c8f75d3e3a7462b85eb51973fb5072b71a702
WComposer.cpp
|
4e3e30c2d5a2a6f7dc4ee8696b1ac2a52dffd5dc |
03-May-2015 |
Ajay Dudani <adudani@codeaurora.org> |
surfaceflinger: Fix range check for getFormat Fix potential buffer overflow error in getFormat with indices greater than MAX_HWC_DISPLAYS. Change-Id: I5e5b69d8d043e900f5e33ca9a62e94ae5f857b68
WComposer.cpp
|
9de7293b0a1b01ebe6fb1ab4a498f144adc8029f |
17-Apr-2015 |
Dan Stoza <stoza@google.com> |
libgui: Allow an IGBProducer to disable allocation Adds a new method IGBP::allowAllocation, which controls whether dequeueBuffer is permitted to allocate a new buffer. If allocation is disallowed, dequeueBuffer will block or return an error as it normally would (as controlled by *ControlledByApp). If there are free buffers, but they are not of the correct dimensions, format, or usage, they may be freed if a more suitable buffer is not found first. Bug: 19801715 Change-Id: I0d604958b78b2fd775c2547690301423f9a52165
irtualDisplaySurface.cpp
irtualDisplaySurface.h
|
ee44edd0acccbf5eaa918d75737c3b65ee04fff7 |
23-Mar-2015 |
Dan Stoza <stoza@google.com> |
SurfaceFlinger: Pass surface damage to HWC Passes the surface damage from the incoming SurfaceFlingerConsumer BufferQueue down to the hardware composer HAL interface, if the HWC version number is 1.5 or greater. Bug: 11239309 Change-Id: Ic4305210593874a8d6deba3319055b2b8c57e926
WComposer.cpp
WComposer.h
|
11611f9be590480d7ea27bf0153558573ddcded2 |
12-Mar-2015 |
Dan Stoza <stoza@google.com> |
DO NOT MERGE SurfaceFlinger: Stop using IGBC::BufferItem Switches all uses of IGraphicBufferConsumer::BufferItem (and BufferQueue::BufferItem) to the BufferItem in libgui. Depends on frameworks/native I699ed0a6837076867ca756b28d1ffb2238f7a0d9. Cherry pick of I187b3a7d05196b6289596afac8fb9a9d4aebff76 Change-Id: I5bc79fb96b6cba6021af64b20890967aa3b7fcbf
ramebufferSurface.cpp
irtualDisplaySurface.cpp
|
82c6bcc9705eabcaf5b9e45bc81867b0e2d61a02 |
20-Feb-2015 |
Eino-Ville Talvala <etalvala@google.com> |
DO NOT MERGE Add dataSpace to buffer queues; remove old format enums. - Wire up new dataSpace parameter through buffer queue stack - Update tests to include the parameter - Switch eglApi to using dataSpace to indicate sRGB gamma/linear difference - Remove RAW_SENSOR in favor of RAW16 - Remove use of sRGB format enums - Add default dataspace to buffer queue core - Add query for default dataspace Cherry pick of I070bd2e7c56506055c419004c29e2e3feac725df Change-Id: I461952389c18051176c6b75e664f20ad369f5760
WComposer.cpp
irtualDisplaySurface.cpp
|
3be1c6b60a188dc10025e2ce156c11fac050625d |
18-Nov-2014 |
Dan Stoza <stoza@google.com> |
libgui: Enable -Weverything and -Werror Enables -Weverything and -Werror, with just a few exceptions for warnings we can't (or shouldn't need to) work around. Cherry pick of I034abec27bf4020d84af60d7acc1939c59986dd6 plus a couple of minor changes to CpuConsumer.cpp to make it work with a prior change: Uncomment CC_LOGV on line 46 Change C-style cast to static_cast on line 71 Change-Id: Iaec610477ea0122317b0578fb74caf2383d4cf08
irtualDisplaySurface.cpp
irtualDisplaySurface.h
|
753011461964c5a610c12d4dfc9ab85ab20b6977 |
05-Dec-2014 |
Dan Albert <danalbert@google.com> |
am 5588d900: Merge "Enable clang for libui/libgui/surfaceflinger" * commit '5588d9000cd1ef217185c9001d6b5ecd84db9741': Enable clang for libui/libgui/surfaceflinger
|
01049c8321aab30cd431e2febeddd79242ae5a4f |
11-Nov-2014 |
Dan Stoza <stoza@google.com> |
Enable clang for libui/libgui/surfaceflinger Enables clang and C++11 for libui/libgui/surfaceflinger, and eliminates all compile-time warnings. Change-Id: Ie237fdb5ae44f2bfcddaa884f9c65ec3f08ae50f (cherry picked from commit f10c46ef855b6410b20ebd8b1351d4d78d8eca8e)
isplaySurface.h
ramebufferSurface.cpp
ramebufferSurface.h
irtualDisplaySurface.cpp
irtualDisplaySurface.h
|
4037c458a7594cb3cd81a14e7e974abc28180187 |
13-Nov-2014 |
Andreas Gampe <agampe@google.com> |
resolved conflicts for merge of 07dffa18 to lmp-mr1-dev-plus-aosp Change-Id: I42d8bc291f4f48f3098754b076889159c4b20e41
|
89fd4f7fa6bd17ce5400979c3b9e5ba0bf7e919e |
13-Nov-2014 |
Andreas Gampe <agampe@google.com> |
Frameworks/native: Wall Werror in surfaceflinger Turn on -Wall -Werror in services/surfaceflinger. Fix warnings. Change-Id: Ifef830300d9d4bc657d8f1257c02bfe8c2b4d9c5
ramebufferSurface.cpp
irtualDisplaySurface.h
|
8dc55396fc9bc425b5e2c82e76a38080f2a655ff |
04-Nov-2014 |
Dan Stoza <stoza@google.com> |
Add a BufferItem parameter to onFrameAvailable Passes the BufferItem for the queued buffer to the onFrameAvailable callback so the consumer can track the BufferQueue's contents. Also adds an onFrameReplaced callback, which is necessary if the consumer wants to do anything more than simple queue length tracking. Bug: 18111837 Change-Id: If9d07229c9b586c668e5f99074e9b63b0468feb0
ramebufferSurface.cpp
ramebufferSurface.h
|
7cd85979e81cd632c37852f7ca716089dc52e899 |
08-Aug-2014 |
Jesse Hall <jessehall@google.com> |
surfaceflinger: fix -Wunused-parameter warning warning: unused parameter 'mustRecompose' [-Wunused-parameter] Change-Id: I6b8c671189639d851bfa5548742de988d6fa2687 (cherry picked from d2e514f71709e6af3dbc754e59686129737f2300)
ramebufferSurface.cpp
|
1495ceb88594bf3c5963ef65ee12953dc0354546 |
08-Aug-2014 |
Jesse Hall <jessehall@google.com> |
surfaceflinger: fix -Wmismatched-tags warnings warning: struct 'HWComposer' was previously declared as a class [-Wmismatched-tags] warning: class 'DisplayInfo' was previously declared as a struct [-Wmismatched-tags] Change-Id: I13db9f8aab3a957ce8ff8d64598dae1807d6fe7e (cherry picked from commit 646f54105018e99ef4a30ee41f01f7d1ab66c38e)
WComposer.h
|
2a8ae4ef70f2a3e0239a4df9bf33b4ff141594fe |
29-Sep-2014 |
Jesse Hall <jessehall@google.com> |
am bacc28ef: surfaceflinger: Use landscape resolution for default dpi * commit 'bacc28ef1df329f4dc21bae44b09a6c5018af908': surfaceflinger: Use landscape resolution for default dpi
|
bacc28ef1df329f4dc21bae44b09a6c5018af908 |
28-Sep-2014 |
Jesse Hall <jessehall@google.com> |
surfaceflinger: Use landscape resolution for default dpi When HWC doesn't provide DPI values for a display, we pick a default DPI based on resolution. The intent was that 1080p and higher displays would get XHIGH density, and lower resolutions would get TV density. In KK (and possibly forever) we had a bug that we'd always use TV density. That was fixed in L, but that fix exposed a pre-existing bug that we always used the display's height in its native orientation, rather than in landscape orientation. So an 800x1280 tablet like N7v1 started getting XHIGH density instead of the intended TV density. Bug: 17461633 Change-Id: Ia57fa49e61f36bdda63ce283ef62c9953297222c
WComposer.cpp
|
5746f1497814e105352214f1bba242317856605a |
10-Sep-2014 |
Dan Albert <danalbert@google.com> |
am fb017a4c: Merge "Fix clang warnings about struct vs. class." * commit 'fb017a4c3b23741f737093c3fcb78087bbe5e73c': Fix clang warnings about struct vs. class.
|
aeb8ab8c34343bd64a4b2247615ea3da97fa02f6 |
10-Sep-2014 |
Dan Albert <danalbert@google.com> |
Fix clang warnings about struct vs. class. Change-Id: I9f26cd01ac3153efa6d77a4133686842e2d63203
WComposer.h
|
4d407a0f05ad9ba3c232ff5b6742495660c0e4ab |
25-Aug-2014 |
Jesse Hall <jessehall@google.com> |
surfaceflinger: Trace HW vsync enable This makes it possible to tell whether two HW vsync signals are too far apart because one was late, or because we turned HW vsync off briefly between them. Bug: 17259382 Change-Id: If4fba2a8a6013568349949ce87c5c36f0468d2a2
WComposer.cpp
|
eb21986df0429d63f5e9678741730f07f17dcbad |
22-Aug-2014 |
Michael Lentine <mlentine@google.com> |
Merge "Update currentConfig variable when active display is changed." into lmp-dev
|
d3e6914ceaafebaee09b0095aad6d001b75e787a |
21-Aug-2014 |
Michael Lentine <mlentine@google.com> |
Update currentConfig variable when active display is changed. Bug: 17182607 Change-Id: I8631c105a9e0fa402a7d9670717becc9857af935
WComposer.cpp
|
949ea0868de1df7e2f28a32d777cc41f901d6770 |
20-Aug-2014 |
Naseer Ahmed <naseer@codeaurora.org> |
sf: Clear display configs when hot pluggable display is disconnected Display configs for external displays are stored in the framework everytime we receive a hot plug to connect. However, since the configs are not cleared on disconnect, framework will just assume that the configs are valid. This does not work for use cases when you connect/disconnect external displays with different resolutions. e.g. 1080p to 4K and vice-versa With this change we clear the display configs and repopulate when we receive a hot plug to connect. Change-Id: I2eeab186a8d8668a53390a2413b2ce5e044a1845 Acked-by: Tatenda Chipeperekwa <tatendac@codeaurora.org>
WComposer.cpp
|
b54ee7704e46529e02386cf39eba93a34a527c61 |
07-Aug-2014 |
Michael Lentine <mlentine@google.com> |
Change output format to not throw warning on volantis. Change-Id: Id66eb61bdb1ceccfb7aefa0aa70793dac807c257
WComposer.cpp
|
258ee43fbcbc752cb08c134a12c08d5d99c4a866 |
31-Jul-2014 |
Michael Lentine <mlentine@google.com> |
Build fix for printf with int64 and size_t Change-Id: I642584cce7dd43e6d491a49228b0bce047d53354
WComposer.cpp
|
fd9d183cd8c859ab8480dea572430398438ba8b5 |
31-Jul-2014 |
Michael Lentine <mlentine@google.com> |
Build fix to use the correct source. Change-Id: If36710be600dd0e15c31682e0343f281baa55627
irtualDisplaySurface.cpp
|
47e45405d1533aa73307014f7bf371e118695cf3 |
19-Jul-2014 |
Michael Lentine <mlentine@google.com> |
Allow for resizing of Virtual Displays. Modify SurfaceFlinger to use VirtualDisplaySurface in all cases when a virtual display is used. Add functionality in VirtualDisplaySurface to resize the buffers aquired in the QueueBufferOutput. Add transaction support in SurfaceFlinger for resize. Add the modification of the size in DisplayDevice. Change-Id: Iae7e3556dc06fd18d470adbbd76f7255f6e6dd6b Tested: None
isplaySurface.h
ramebufferSurface.h
irtualDisplaySurface.cpp
irtualDisplaySurface.h
|
6c9e34a98a63033b80bd1c24c7aa1304f912f10a |
14-Jul-2014 |
Michael Lentine <mlentine@google.com> |
Modified SurfaceFlinger to implment setActiveConfig and getActiveConfig. This can be used to change the current display mode of the device. Change-Id: Icdc3fb58389b861dc77b68102083da6f7a96eccb Tested: None (cherry picked from commit 2651fa94635a96d653038fb389a0dd827338f8d3)
WComposer.cpp
WComposer.h
|
03414a1cfe6c1222fd7723949bd622f9cba145aa |
01-Jul-2014 |
Riley Andrews <riandrews@google.com> |
Turn on support for async cursor update in surfaceflinger. If available, surfaceflinger will use the hwc setCursorPositionAsync() api to change the position of supported cursor layers outside of the usual prepare/set loop. Change-Id: Ib3fc5c0c390b3489ddbba202379840a1d2748917
WComposer.cpp
WComposer.h
|
24cd98eef88ac93f80c327f8d74f0a1ae0aceee4 |
13-Jul-2014 |
Jesse Hall <jessehall@google.com> |
Compile libsurfaceflinger with Clang and -std=c++11 [DO NOT MERGE] This is necessary to use C11/C++11 stdlib atomics, which the next change will do. This change also fixes a couple bits of syntax that both GCC and Clang refuse to compile in -std=c++11 mode. Change-Id: Ia14d9d6b537a3bb106c23e19a277e48be180754c
irtualDisplaySurface.cpp
|
dc56bf721a9f29621fd57e1d861142fa9b2d3663 |
30-Jun-2014 |
Dan Stoza <stoza@google.com> |
Merge "BufferQueue: Add allocateBuffers method"
|
29a3e90879fd96404c971e7187cd0e05927bbce0 |
20-Jun-2014 |
Dan Stoza <stoza@google.com> |
BufferQueue: Add allocateBuffers method This adds an allocateBuffers method to BufferQueue, which instructs it to allocate up to the maximum number of buffers allowed by the current configuration. The goal is that this method can be called ahead of render time, which will prevent dequeueBuffers from blocking in allocation and inducing jank. This interface is also plumbed up to the native Surface (and, in another change, up to the Java Surface and ThreadedRenderer). Bug: 11792166 Change-Id: I4aa96b4351ea1c95ed5db228ca3ef98303229c74
irtualDisplaySurface.cpp
irtualDisplaySurface.h
|
ef472ec40a0fbb0ef96b79bef846f20b73da4971 |
02-Apr-2014 |
Ruchi Kandoi <kandoiruchi@google.com> |
SurfaceFlinger: send VSYNC power hints to IPowerManager VSYNC power hints are now sent via binder to IPowerManager. SurfaceFlinger no longer loads a second copy of the PowerHAL. VSYNC power hints are sent in batches and not on per frame basis. Change-Id: Ia5a839ab3c857cffae7089f810b4315d4ed23fcf
owerHAL.cpp
owerHAL.h
|
2c9b11f0291210c9b9513a1a0cce6afebd361b3b |
25-May-2014 |
Prashant Malani <pmalani@google.com> |
surfaceflinger: Replace blank/unblank with setPowerMode We replace the blank/unblank calls in surfaceFlinger with a more generic setPowerMode() routine. Some displays support different power modes (for example, with reduced color palettes). Depending on the use case we should be able to toggle these modes, so as to achieve incremental power savings. Initially, three power modes will be supported: - HWC_POWER_MODE_OFF - HWC_POWER_MODE_DOZE - HWC_POWER_MODE_NORMAL HWC_POWER_MODE_OFF will correspond to blanking the display, while HWC_POWER_MODE_NORMAL will correspond to unblanking. HWC_POWER_MODE_DOZE will put the display into a low power setting, if it is supported in hardware. If such a low power mode is not supported, it should be treated as a call to set the mode to HWC_POWER_MODE_NORMAL. As a consequence of adding the mPowerMode field, the mScreenAcquired is no longer required, and thus references to it are removed and replaced equivalent references to mPowerMode. We also add the glue code to connect the services invocation of setting a power mode and the HAL implementation in HWComposer. Bug: 13472578 Change-Id: I431595ecf16d2f2c94259272db3dd42f29636204 Signed-off-by: Prashant Malani <pmalani@google.com>
WComposer.cpp
WComposer.h
|
f0058ca0e592485ac9e5a4aedb0dd8fa187625ef |
20-May-2014 |
Andy McFadden <fadden@android.com> |
Add IMPLEMENTATION_DEFINED to dump The "dumpsys SurfaceFlinger" output shows pixel formats in human-readable form now. Add IMPLEMENTATION_DEFINED. Change-Id: If567e34dad4b940fbfb4d0b70c65f6ab8cd5f5e7
WComposer.cpp
|
dd02391756dff240c178f7cba21d73d62821007e |
06-May-2014 |
Dan Stoza <stoza@google.com> |
Merge "Enable changing display configuration"
|
7f7da32569f8e0b3d383a40b95f8ac1d55afd801 |
03-May-2014 |
Dan Stoza <stoza@google.com> |
Enable changing display configuration This allows querying and switching display device configurations through the ISurfaceComposer/SurfaceComposerClient interface. Bug: 14320401 Change-Id: I8c22165698950e5da32204c1c4da92122f91a715
WComposer.cpp
WComposer.h
|
98e1ebc026726ba045cea69b1b8c371d95db9893 |
02-May-2014 |
Andy McFadden <fadden@android.com> |
Merge "Improve SurfaceFlinger PTS estimation"
|
41d67d7ab4da1c393497a620a116a854b3c618e7 |
26-Apr-2014 |
Andy McFadden <fadden@android.com> |
Improve SurfaceFlinger PTS estimation Get the next refresh time from DispSync instead of guessing based on the current time. Change-Id: I8dc72a3217bfd4e9b4c905034194d1a298cad69a
WComposer.cpp
WComposer.h
|
0b63cd105cae094c21aafaa2bac8322427e75827 |
30-Apr-2014 |
Jesse Hall <jessehall@google.com> |
Handle failed requestBuffer after successful dequeueBuffer If the virtual display consumer disconnects after the VirtualDisplaySurface dequeues a buffer but before it requests it, the request will fail. Previously the error was ignored, and the caller would get a success result but a NULL buffer. Now the dequeued buffer is cancelled and the error propagated to the caller. Bug: 14140551 Change-Id: I91547885c2cf6063dc7a8f02d97f2df282cdde2c
irtualDisplaySurface.cpp
|
466954565be8cac018e86e3bddad4e1f4850fa70 |
25-Apr-2014 |
Andy McFadden <fadden@android.com> |
Merge "Update HWC dump format"
|
4df87bd1f6f68126e5e9081fc1365ae500e375db |
22-Apr-2014 |
Andy McFadden <fadden@android.com> |
Update HWC dump format Shortens a few fields. Displays the format as a string. Change-Id: Ib471f05603763e250bad165db610f8e173e8423a
WComposer.cpp
|
fb39827ebce4637dcba03770f6644cf67e932e06 |
21-Apr-2014 |
Dan Stoza <stoza@google.com> |
Merge "BufferQueue: Increase max slots from 32 to 64"
|
febd4f4f462444bfcb3f0618d07ac77e3fc1f6ad |
10-Apr-2014 |
Dan Stoza <stoza@google.com> |
BufferQueue: Increase max slots from 32 to 64 Increases NUM_BUFFER_SLOTS from 32 to 64 and changes the mask returned by IGBC::getReleasedBuffers from 32 to 64 bits. Bug: 13174352 Change-Id: Ie8ef0853916cfb91f83881c7241886bb1950f01a
irtualDisplaySurface.cpp
irtualDisplaySurface.h
|
d9822a3843017444364899afc3c23fb5be6b9cb9 |
28-Mar-2014 |
Dan Stoza <stoza@google.com> |
BufferQueueProducer: add detachNextBuffer Adds a new method, IGBP::detachNextBuffer, that effectively does dequeue + request + detach in a single call, but does not need to know anything about the dequeued buffer, and will not block on dequeue. This is mostly for the upcoming StreamSplitter to use in its onBufferReleased callback. Change-Id: Ie88a69de109003acebaa486a5b44c8a455726550
irtualDisplaySurface.cpp
irtualDisplaySurface.h
|
4098f03d5c9fb8522279ca04da70bec6793b2caa |
05-Apr-2014 |
Ruchi Kandoi <kandoiruchi@google.com> |
Revert "SurfaceFlinger: send VSYNC power hints to IPowerManager" This reverts commit d469a1c3285b974cf2637517cc25727da8f82668.
owerHAL.cpp
owerHAL.h
|
d469a1c3285b974cf2637517cc25727da8f82668 |
02-Apr-2014 |
Ruchi Kandoi <kandoiruchi@google.com> |
SurfaceFlinger: send VSYNC power hints to IPowerManager VSYNC power hints are now sent via binder to IPowerManager. SurfaceFlinger no longer loads a second copy of the PowerHAL. VSYNC power hints are sent in batches and not on per frame basis. Change-Id: Icc2eee5df56135bd24dc244a84e7c12dd5511fec
owerHAL.cpp
owerHAL.h
|
f0eaf25e9247edf4d124bedaeb863f7abdf35a3e |
21-Mar-2014 |
Dan Stoza <stoza@google.com> |
BufferQueue: Add producer buffer-released callback Add a callback to the producer side, onBufferReleased, which will be called every time the consumer releases a buffer back to the BufferQueue. This will enable a buffer stream splitter to work autonomously without having to block on dequeueBuffer. The binder object used for the callback replaces the generic IBinder token that was passed into IGraphicBufferProducer::connect to detect the death of the producer. If a producer does not wish to listen for buffer release events, it can pass in an instance of the DummyProducerListener class defined in IProducerListener.h, if it even cares about death events (BufferQueue doesn't enforce the token being non-NULL, though perhaps we should). Change-Id: I23935760673524abeafea2b58dccc3583b368710
irtualDisplaySurface.cpp
irtualDisplaySurface.h
|
b9b088375d33a87b201cdbe18be71802e2607717 |
13-Mar-2014 |
Dan Stoza <stoza@google.com> |
Remove deprecated BufferQueue constructor Bug: 13415624 Change-Id: I9fe15e45daa7351f1db34ee75bfee6f19cb347d3
irtualDisplaySurface.cpp
irtualDisplaySurface.h
|
993146092f8205d9747f082ccd63c09b536caa4e |
14-Mar-2014 |
Mark Salyzyn <salyzyn@google.com> |
am d4dabf87: am cdbf28b3: Merge "native frameworks: 64-bit compile issues" * commit 'd4dabf872ac0a12e12aebae9032f7d62762c2aeb': native frameworks: 64-bit compile issues
|
73ed82f809a40560fd3a6d53d18e5c846362d764 |
13-Mar-2014 |
Jesse Hall <jessehall@google.com> |
Merge "Add sideband streams to BufferQueue and related classes"
|
92dc3fc52cf097bd105460cf377779bdcf146d62 |
12-Mar-2014 |
Mark Salyzyn <salyzyn@google.com> |
native frameworks: 64-bit compile issues - Fix format (print/scanf) - Suppress unused argument warning messages (bonus) Change-Id: I05c7724d2aba6da1e82a86000e11f3a8fef4e728
ramebufferSurface.cpp
WComposer.cpp
|
88a459a9b37f3b4eb3c9a044ad7af30616ad66c9 |
12-Mar-2014 |
Dan Stoza <stoza@google.com> |
VirtualDisplaySurface: no attach/detach support Change-Id: I630dd6e352940318c33a4e072d2f33a6ec58c556
irtualDisplaySurface.cpp
|
399184a4cd728ea1421fb0bc1722274a29e38f4a |
04-Mar-2014 |
Jesse Hall <jessehall@google.com> |
Add sideband streams to BufferQueue and related classes Sideband streams are essentially a device-specific buffer queue that bypasses the BufferQueue system. They can be used for situations with hard real-time requirements like high-quality TV and video playback with A/V sync. A handle to the stream is provided by the source HAL, and attached to a BufferQueue. The sink HAL can read buffers via the stream handle rather than acquiring individual buffers from the BufferQueue. Change-Id: Ib3f262eddfc520f4bbe3d9b91753ed7dd09d3a9b
WComposer.cpp
WComposer.h
irtualDisplaySurface.cpp
irtualDisplaySurface.h
|
9f3053de78630815d60cf48a2cf2348cc5867c45 |
07-Mar-2014 |
Dan Stoza <stoza@google.com> |
BufferQueue: Allow detaching/reattaching buffers Adds detachBuffer and attachBuffer calls to both the producer and consumer sides of BufferQueue. Buffers may be detached while dequeued by the producer or acquired by the consumer, and when attached, enter the dequeued and acquired states, respectively. Bug: 13173343 Change-Id: Ic152692b0a94d99e0135b9bfa62747dab2a54220
irtualDisplaySurface.cpp
irtualDisplaySurface.h
|
7143316af216fa92c31a60d4407b707637382da1 |
05-Feb-2014 |
Dan Stoza <stoza@google.com> |
Fix virtual display nesting This fixes the cycling rendering loop caused by nesting virtual displays by preventing them from recomposing if their contents haven't changed. Bug: 12101046 Change-Id: I600365c0fd5d3ad93e04295d26cf9de177ffc79b
isplaySurface.h
ramebufferSurface.cpp
ramebufferSurface.h
irtualDisplaySurface.cpp
irtualDisplaySurface.h
|
ef11a6c887891be04c4ca9cc60bcad8d022189b3 |
28-Jan-2014 |
Jesse Hall <jessehall@google.com> |
am ade9a911: am f65ebc3b: am f5bcb391: Merge "SurfaceFlinger: mFbProducerSlot initailization" * commit 'ade9a911d04dbd4bfbd3e80a917ea67a581b4797': SurfaceFlinger: mFbProducerSlot initailization
|
fdfde88d0bcd0b293c9deb37f49254bdd97e4dac |
23-Jan-2014 |
mayank parshar <mayankp@broadcom.com> |
SurfaceFlinger: mFbProducerSlot initailization b/12487813 SurfaceFlinger crash is observed during simulation of Secondary display Note: change 14e8b01a761180250671f3d6494532d8bd04fa8e removed the initialization leading to the crash when simulating secondary display. Restore the initialization to solve the problem. Change-Id: Iae5845fb82735e01de5cc0dc582d13c27e3c614f Signed-off-by: mayank parshar <mayankp@broadcom.com> Signed-off-by: Pierre Couillaud <pierre@broadcom.com>
irtualDisplaySurface.cpp
|
467113c6fcb1f4714d84d6d097c5525ae0130d00 |
26-Jan-2014 |
Jesse Hall <jessehall@google.com> |
am 25f75c36: am 8c303f7e: am fcf9c1ba: Merge "SurfaceFlinger: mFbFence initialization" * commit '25f75c361098086ffa2b87dcc3f22ac5f64c05be': SurfaceFlinger: mFbFence initialization
|
b988f85fc44efd24f11f2e5ab8fb9b653916f666 |
10-Jan-2014 |
mayank parshar <mayankp@broadcom.com> |
SurfaceFlinger: mFbFence initialization MobC00383030 b/12487813 SurfaceFlinger crash is observed while connecting to Wi-Fi display. Note: change 14e8b01a761180250671f3d6494532d8bd04fa8e removed the initialization leading to the crash when running through the HWC composition path. Restore the initialization to solve the problem. Change-Id: I581defc7135ac512080c0da06a62b1dae7d218c4 Signed-off-by: mayank parshar <mayankp@broadcom.com> Signed-off-by: Pierre Couillaud <pierre@broadcom.com>
irtualDisplaySurface.cpp
|
524672571f1df138eb913e672aaa74e0257aa8c0 |
03-Jan-2014 |
Jesse Hall <jessehall@google.com> |
am 03691218: am e5f7bf74: am b6c21004: Merge "Implement per-display EGLConfig and configless EGLContext" * commit '03691218ada2fb7e084ad4ae7ddd54f9b28d5611': Implement per-display EGLConfig and configless EGLContext
|
19e872912af66c53a4350afcc333bbafaf6a2294 |
24-Dec-2013 |
Jesse Hall <jessehall@google.com> |
Implement per-display EGLConfig and configless EGLContext Bug: 12230666 Change-Id: Icca608b108cbdcab9cf01a9236d8cdbda000a836 Signed-off-by: Jesse Hall <jessehall@google.com>
WComposer.cpp
|
324c69b542cf051e86cead592ff6a103ce1dbb34 |
08-Nov-2013 |
Jesse Hall <jessehall@google.com> |
am 1ee45c2d: am 14e8b01a: Don\'t change the framebuffer target until we render a new one * commit '1ee45c2d2d816ee912624d81ff1b0aaa98e8fa74': Don't change the framebuffer target until we render a new one
|
14e8b01a761180250671f3d6494532d8bd04fa8e |
07-Nov-2013 |
Jesse Hall <jessehall@google.com> |
Don't change the framebuffer target until we render a new one Continuing to send the last-rendered framebuffer to HWC on subsequent frames allows the HWC to read partially-composed regions that haven't changed, instead of re-composing from scratch. Bug: 11573910 Change-Id: I8829877d2a06001f1e1b3f168cbba71c7b217b2d
irtualDisplaySurface.cpp
|
ad78055746c9b1b3f0563133971800812bfed1f6 |
07-Nov-2013 |
Jesse Hall <jessehall@google.com> |
am 2d32aa59: am 356c2386: Merge "Provide virtual display output buffer to HWC in prepare" into klp-dev * commit '2d32aa5918de1c12c54a32e8eb28bbc96d430796': Provide virtual display output buffer to HWC in prepare
|
356c23865d588659f1eea55bbe7e2b16b9cff08e |
07-Nov-2013 |
Jesse Hall <jessehall@google.com> |
Merge "Provide virtual display output buffer to HWC in prepare" into klp-dev
|
45c9c0477de6d376019d458fbe17c07cf64f72ca |
06-Nov-2013 |
Jesse Hall <jessehall@google.com> |
am f111ee13: am 49318631: Merge "Don\'t use implementation-defined format with CPU consumers" into klp-dev * commit 'f111ee13a6f5d8606c5dc7a5cc07cedf929e69a8': Don't use implementation-defined format with CPU consumers
|
f7a675837bdad03d398c9b6f0f593b9c51c679b5 |
06-Nov-2013 |
Jesse Hall <jessehall@google.com> |
Provide virtual display output buffer to HWC in prepare We were already making sure the HWComposer class had the handle before prepare, but it wasn't passing the handle along to HWC as intended. Partial fix for bug: 11430248 Change-Id: I25f672c4fdfaa6a81fe0acb24d9ad05153ee17dc
WComposer.cpp
|
497ba0e08503806571b52ebe27cc7eee4c0e71a7 |
05-Nov-2013 |
Jesse Hall <jessehall@google.com> |
Don't use implementation-defined format with CPU consumers If the virtual display surface is being consumed by the CPU, it can't be allowed with HAL_PIXEL_FORMAT_IMPLEMENTATION_DEFINED since there is no way for the CPU consumer to find out what format gralloc chose. So for CPU-consumer surfaces, just use the BufferQueue's default format, which can be set by the consumer. A better but more invasive change would be to let the consumer require a certain format (or set of formats?), and disallow the producer from requesting a different format. Bug: 11479817 Change-Id: I5b20ee6ac1146550e8799b806e14661d279670c0
irtualDisplaySurface.cpp
irtualDisplaySurface.h
|
45cb6ec7158939964f96a2a7ff6dc7591ebf9bb5 |
25-Oct-2013 |
Jesse Hall <jessehall@google.com> |
am 96002be4: am c354effe: Fix handling of undefined TARGET_FORCE_HWC_FOR_VIRTUAL_DISPLAYS * commit '96002be4bd4b8bbfecba2cc45bdf0b47f06464bc': Fix handling of undefined TARGET_FORCE_HWC_FOR_VIRTUAL_DISPLAYS
|
c354effe97be26638618e3bc0da81a3f8b384b20 |
25-Oct-2013 |
Jesse Hall <jessehall@google.com> |
Fix handling of undefined TARGET_FORCE_HWC_FOR_VIRTUAL_DISPLAYS related to b/8316155 - Implement HWComposer 1.3 w/ virtual display support Change-Id: I2dc8d65a74174aa833cc491264f97f1f2df49307
irtualDisplaySurface.cpp
|
6fdaaf5c7cf7c511a5e3cea8aaafdad7ff12e596 |
24-Oct-2013 |
Jesse Hall <jessehall@google.com> |
am a54a8b63: am 93fcb823: Merge "Add a boardconfig to force HWC composition of virtual displays" into klp-dev * commit 'a54a8b63d191d2c1c4669f89b32c4b8a9c04cd31': Add a boardconfig to force HWC composition of virtual displays
|
014dd9f0f28c3992f9fae62a62fa7e8bfe750a06 |
24-Oct-2013 |
Jesse Hall <jessehall@google.com> |
am 48775386: am c5807f90: Merge "Use implementation-defined format when HWC writes to output buffer" into klp-dev * commit '487753868aa86902f723dbdedd7083783701188d': Use implementation-defined format when HWC writes to output buffer
|
6a968462f9ce4d93d81fcc13672073e3e6eb2e0f |
04-Oct-2013 |
Naseer Ahmed <naseer@codeaurora.org> |
Add a boardconfig to force HWC composition of virtual displays When this boardconfig is defined, even when all virtual display composition is done by GLES, the HWC will be forced to copy from the GLES framebuffer to the output buffer. On some hardware this allows HWC to do format conversions that would otherwise have to be done by the consumer, with worse power and/or performance. Bug: 8316155 Change-Id: If980ecc589f138cef063eafa757f7f748196713e
irtualDisplaySurface.cpp
|
1e27ba234c5bfd4f6535ee221a6c20407a50f868 |
27-Sep-2013 |
Jesse Hall <jessehall@google.com> |
Use implementation-defined format when HWC writes to output buffer When GLES isn't writing to the output buffer directly, request an implementation-defined format with minimal usage flags, leaving the format choice up to gralloc. On some hardware this allows HWC to do format conversions during composition that would otherwise need to be done (with worse power and/or performance) by the consumer. Bug: 8316155 Change-Id: Iee6ee8404282036f9fd1833067cfe11dbadbf0bf
irtualDisplaySurface.cpp
irtualDisplaySurface.h
|
adbb3062e1a3d675531367c055572664fc46280d |
15-Oct-2013 |
Jesse Hall <jessehall@google.com> |
am a04fd39c: am 8e26b28b: Filter out vsync events from HWC with duplicate timestamps * commit 'a04fd39cb88bb6df5f639464f70795f58cd0aefa': Filter out vsync events from HWC with duplicate timestamps
|
8e26b28be62e7c0e093900540db5e5cdcf52a0ff |
14-Oct-2013 |
Jesse Hall <jessehall@google.com> |
Filter out vsync events from HWC with duplicate timestamps Bug: 11220224 Change-Id: I4efe0b66ea8969bf0ec3c4fcb325d354c8a0c315
WComposer.cpp
|
b85d2cf0a20e46261db8fee4839840f0ef715c68 |
09-Oct-2013 |
Jamie Gennis <jgennis@google.com> |
resolved conflicts for merge of 790b6d09 to master
|
faf77cce9d9ec0238d6999b3bd0d40c71ff403c5 |
31-Jul-2013 |
Jamie Gennis <jgennis@google.com> |
SurfaceFlinger: SW-based vsync events This change adds the DispSync class, which models the hardware vsync event times to allow vsync event callbacks to be done at an arbitrary phase offset from the hardware vsync. This can be used to reduce the minimum latency from Choreographer wake-up to on-screen image presentation. Bug: 10624956 Change-Id: I8c7a54ceacaa4d709726ed97b0dcae4093a7bdcf
WComposer.cpp
|
fee52e20b9fc9a02dbeeb75458972c14682c5400 |
02-Oct-2013 |
Jesse Hall <jessehall@google.com> |
am f3fa0712: am 93573e91: Merge "Treat composition frames with no layers as using GLES composition" into klp-dev * commit 'f3fa0712282e760c316f44cba05f884f9399b98f': Treat composition frames with no layers as using GLES composition
|
10a9ca1c6934092132bb7d5f0073dec68c017294 |
02-Oct-2013 |
Jesse Hall <jessehall@google.com> |
am 72d270c5: am b716e570: Set the outbuf acquire fence after we actually have it. * commit '72d270c5f0918d1dc7a6a1774b80469c9f28b7ea': Set the outbuf acquire fence after we actually have it.
|
93573e91c22ba8329222c69cd7f099f5703fb444 |
02-Oct-2013 |
Jesse Hall <jessehall@google.com> |
Merge "Treat composition frames with no layers as using GLES composition" into klp-dev
|
b716e57048e945d5bceda33c2434c65d06464dba |
02-Oct-2013 |
Jesse Hall <jessehall@google.com> |
Set the outbuf acquire fence after we actually have it. In GLES-only mode, we don't have the outbuf acquire fence until after GLES composition is done for the frame. We were setting the fence in HWC's state immediately after dequeueing the buffer from the consumer, before GLES had started. This fence got passed through HWC and on to the consumer, so the consumer was reading the buffer before GLES was done writing to it. Now we update HWC's state just before set(), when we know we have the right fence. Bug: 11000763 Change-Id: Iea9db4c69634c352dc2d600f0bdb6bef2a432636
irtualDisplaySurface.cpp
|
d05a17fbb3772051d287f1f8830a7f00964f7ec2 |
01-Oct-2013 |
Jesse Hall <jessehall@google.com> |
Treat composition frames with no layers as using GLES composition When there are no window layers for a display, SurfaceFlinger clears the undefined region using GLES. Some of the places that check for GLES composition weren't considering this special case, in particular: - We were skipping the eglSwapBuffers() on these frames. - We were putting VirtualDisplaySurface in HWC-only composition mode. This change centralizes the logic for this special case. Bug: 10957068 Change-Id: I2deaf2ed101e8ea76708862a6bb67751b6078794
WComposer.cpp
|
ff98f3e598cc5ccf8daaf18ba93600b5b1a61a26 |
26-Sep-2013 |
Mathias Agopian <mathias@google.com> |
am 338acd68: am 86206b41: Merge "fix initialization of framebuffer target crop rect on hwc 1.3" into klp-dev * commit '338acd6869532f2684cbd1e4f273eaffc6d4ef6d': fix initialization of framebuffer target crop rect on hwc 1.3
|
2b3d0c407987f6f47ccc2e9ebd6c61dbd0c37306 |
26-Sep-2013 |
Mathias Agopian <mathias@google.com> |
am 0ff4b283: am 6da15f46: fix crashers with wifi/virtual displays * commit '0ff4b28396d77a0ed2f191836895a891108a8b5b': fix crashers with wifi/virtual displays
|
86206b41b2ff000e086301c6bafb8da577e563b2 |
26-Sep-2013 |
Mathias Agopian <mathias@google.com> |
Merge "fix initialization of framebuffer target crop rect on hwc 1.3" into klp-dev
|
8f63c2049b93819c41d390fc4222b9307e3a61c7 |
26-Sep-2013 |
Mathias Agopian <mathias@google.com> |
fix initialization of framebuffer target crop rect on hwc 1.3 Bug: 10936771 Change-Id: If283e5e231ca34b93e0b1784bb4e8e4c7bfd75de
WComposer.cpp
|
6da15f46f5f8b38e31384d641f8d3db2c3c6ea30 |
26-Sep-2013 |
Mathias Agopian <mathias@google.com> |
fix crashers with wifi/virtual displays Bug: 10647742 Change-Id: I4b8ed9da52ef95af3a3b3a04b98514a3776a674d
irtualDisplaySurface.cpp
|
6de9653ac876a4cae03d32c1134c56c795b1b11c |
20-Sep-2013 |
Christopher Ferris <cferris@google.com> |
Merge "Remove unnecessary include."
|
d142f4b787abae7a5c392ded0dd2741574a0bce2 |
20-Sep-2013 |
Christopher Ferris <cferris@google.com> |
Remove unnecessary include. All these files are including utils/CallStack.h, but none of the code uses any CallStack objects. Change-Id: I38c3a346a3bd0ddbff368d0f7f8b3f3d78fc0432
WComposer.cpp
|
365857df8b94c959dea984a63013f6e7730ef976 |
12-Sep-2013 |
Mathias Agopian <mathias@google.com> |
Make sure do disconnect from a BQ when its client dies. Bug: 5679534 Change-Id: If447e8673df83fe0b1d6210641e0a48522501a53
irtualDisplaySurface.cpp
irtualDisplaySurface.h
|
8db92553e9e6263cd41eaf1a1ebc9e3f88f92b5f |
30-Aug-2013 |
Jesse Hall <jessehall@google.com> |
Force async behavior for the virtual display output BufferQueue Bug: 10551087 Change-Id: I40bbb2b87d64420939a0ea309254f281437dab56
irtualDisplaySurface.cpp
irtualDisplaySurface.h
|
bef42c50ebda2d63400f92611e1dd857c03bb38c |
22-Aug-2013 |
Mathias Agopian <mathias@google.com> |
handle several vsync signal correctly Change-Id: I34935d2197ce8e914fef2f110896e47b44225ad2
WComposer.cpp
WComposer.h
|
028dc8f2d72bc7cd4fbe7808781443125a742f78 |
21-Aug-2013 |
Jesse Hall <jessehall@google.com> |
Provide HWC prepare with a valid output buffer We weren't dequeing and setting the output buffer until just before set(). This didn't allow HWC to make decisions in prepare() based on the output buffer format, dimensions, etc. Now we dequeue the output buffer at the beginning of the composition loop and provide it to HWC in prepare. In GLES-only rendering, we may have to cancel the buffer and acquire a new one if GLES requests a buffer with properties different than the one we already dequeued. Bug: 10365313 Change-Id: I96b4b0a851920e4334ef05080d58097d46467ab8
isplaySurface.h
ramebufferSurface.cpp
ramebufferSurface.h
irtualDisplaySurface.cpp
irtualDisplaySurface.h
|
353ddc6e77816352107537c215dc8302f6e8587a |
21-Aug-2013 |
Jesse Hall <jessehall@google.com> |
Fix HWComposer dumping of float source crops Change-Id: I45a9344b5fab17ccb54bebd01382d738a03860e6
WComposer.cpp
|
90f59bf9eba79b27629505bc2709d84e7c811c8b |
19-Aug-2013 |
Andy McFadden <fadden@android.com> |
Merge "Re-enable frame dropping for non-auto timestamps" into klp-dev
|
3c25621ad7d13f64d3ab95a27fa970fbc9998f73 |
16-Aug-2013 |
Andy McFadden <fadden@android.com> |
Re-enable frame dropping for non-auto timestamps This change adds an entire field to note whether the timestamp was auto-generated by Surface or supplied by the application. The value is used when deciding whether or not to drop frames based on buffer presentation timestamps. If a desired presentation time was set explicitly, BufferQueue will use that value to decide if a frame should be dropped. If the timestamp was generated by Surface at the time the buffer was queued, the timestamp is ignored. Bug 10151804 Change-Id: Ibd571a7578351063b813cbdad2ddbeed70655ba5
irtualDisplaySurface.cpp
|
9e663de4fe1dcc872373ee530c60a375624671c3 |
16-Aug-2013 |
Jesse Hall <jessehall@google.com> |
Use new HWC display type/count constants. Change-Id: I774d0c68906ac6dc69268f708c30a6b0868b8816
WComposer.cpp
WComposer.h
|
db89edc94bd2a78226b407f9f7261e202e7fa325 |
02-Aug-2013 |
Mathias Agopian <mathias@google.com> |
All consumers now take an IGraphicBufferConsumer instead of a BufferQueue this means they only have access to the consumer end of the interface. we had a lot of code that assumed consumers where holding a BufferQueue (i.e.: both ends), so most of this change is untangling in fix that Bug: 9265647 Change-Id: Ic2e2596ee14c7535f51bf26d9a897a0fc036d22c
isplaySurface.h
ramebufferSurface.cpp
ramebufferSurface.h
irtualDisplaySurface.cpp
irtualDisplaySurface.h
|
ad678e18b66f495efa78dc3b9ab99b579945c9e2 |
24-Jul-2013 |
Mathias Agopian <mathias@google.com> |
single buffer mode for BufferQueue Bug: 9891035 Change-Id: Id1ab5f911a6dc4c1d8235e65775b3d3635231ad4
ramebufferSurface.cpp
|
7cdd786fa80cf03551291ae8feca7b77583be1c5 |
19-Jul-2013 |
Mathias Agopian <mathias@google.com> |
Make ANW.setSwapInterval(0) work again we can now queue/dequeue a buffer in asynchrnous mode by using the async parameter to these calls. async mode is only specified with those calls (it is not modal anymore). as a consequence it can only be specified when the buffer count is not overidden, as error is returned otherwise. Change-Id: Ic63f4f96f671cb9d65c4cecbcc192615e09a8b6b
irtualDisplaySurface.cpp
irtualDisplaySurface.h
|
595264f1af12e25dce57d7c5b1d52ed86ac0d0c9 |
17-Jul-2013 |
Mathias Agopian <mathias@google.com> |
BufferQueue improvements and APIs changes 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
ramebufferSurface.cpp
irtualDisplaySurface.cpp
irtualDisplaySurface.h
|
bce7611e8e4514026bf12f96baaf9168f6d5894e |
16-Jul-2013 |
Jesse Hall <jessehall@google.com> |
Fix build -- update for function signature change Change-Id: I9c2448d5853c69ec7e962847fdaba9a99906cc42
irtualDisplaySurface.cpp
|
3bc38408882487dc2a63ba036394addd839b0695 |
16-Jul-2013 |
Jesse Hall <jessehall@google.com> |
Merge "Rewrite VirtualDisplaySurface"
|
38efe86d9459cf5c96a24a34cc5cbf31fdba7e19 |
07-Apr-2013 |
Jesse Hall <jessehall@google.com> |
Rewrite VirtualDisplaySurface The previous implementation assumed that the HWC could read and write the same buffer on frames that involved both GLES and HWC composition. It turns out some hardware can't do this. The new implementation maintains a scratch buffer pool to use on these mixed frames, but on GLES-only or HWC-only frames still does composition directly into the output buffer. Bug: 8384764 Change-Id: I7a3addb34fad9bfcbdabbb8b635083e10223df69
isplaySurface.h
ramebufferSurface.cpp
ramebufferSurface.h
WComposer.cpp
irtualDisplaySurface.cpp
irtualDisplaySurface.h
|
c33f9a76b5dff1a9b4e4d0c76459c0d5b36a0d74 |
11-Jul-2013 |
Andy McFadden <fadden@android.com> |
Merge "Pay attention to buffer timestamps"
|
1585c4d9fbbba3ba70ae625923b85cd02cb8a0fd |
28-Jun-2013 |
Andy McFadden <fadden@android.com> |
Pay attention to buffer timestamps When acquiring a buffer, SurfaceFlinger now computes the expected presentation time and passes it to the BufferQueue acquireBuffer() method. If it's not yet time to display the buffer, acquireBuffer() returns PRESENT_LATER instead of a buffer. The current implementation of the expected-present-time computation uses approximations and guesswork. Bug 7900302 Change-Id: If9345611c5983a11a811935aaf27d6388a5036f1
ramebufferSurface.cpp
|
6b44267a3beb457e220cad0666c039d3a765cdb2 |
10-Jul-2013 |
Mathias Agopian <mathias@google.com> |
fix SF buffer cropping When a buffer had a crop (meaning its content is scaled to the window size) and a window crop was defined, the resulting crop couldn't be expressed properly because h/w composer's API was limited to integers, since this is fixed in h/w composer 1.3, we take adventage of this to make sure we get the correct crop. this bug could result in the buffer being scaled by an incorrect ratio and be slightly offset; moreover, it would produce different results from the GL code path, which is always correct. Change-Id: I8e20e00b6e26177d14f4ab4d2cd581e26c818892
loatRect.h
WComposer.cpp
WComposer.h
|
c5d7b7d323bba8772a9005f7d300ad983a04733a |
03-May-2013 |
Lajos Molnar <lajos@google.com> |
BufferQueue: track buffer-queue by instance vs. by reference Instead of representing the buffer-queue as a vector of buffer indices, represent them as a vector of BufferItems (copies). This allows modifying the buffer slots independent of the queued buffers. As part of this change, BufferSlot properties that are only been relevant in the buffer-queue have been removed. Also, invalid scalingMode in queueBuffer now returns an error. ConsumerBase has also changed to allow reuse of the same buffer slots by different buffers. Change-Id: If2a698fa142b67c69ad41b8eaca6e127eb3ef75b Signed-off-by: Lajos Molnar <lajos@google.com> Related-to-bug: 7093648
ramebufferSurface.cpp
|
2381033ad001960c606d13e3a4198e5da3672ec7 |
17-May-2013 |
Mathias Agopian <mathias@google.com> |
am e6eef6c1: am ea74d3b7: make the warning timout of Fence::waitForever() implicit and longer * commit 'e6eef6c136b007f3a7e1e19884875b855c0c5f95': make the warning timout of Fence::waitForever() implicit and longer
|
ea74d3b78d607cde17790a7bb83e6f68ffd34cfd |
17-May-2013 |
Mathias Agopian <mathias@google.com> |
make the warning timout of Fence::waitForever() implicit and longer - timeout is now 3 seconds instead of 1 - simplifies the API a bit - allows us to change/tweak this timeout globaly Bug: 8988871 Change-Id: I8d3c6ec43a372f602fb3f29856710339f86c0ec9
WComposer.cpp
|
c0db61966a172c953b4259bd0501c9b6781f0f31 |
09-May-2013 |
Jesse Hall <jessehall@google.com> |
am dda42952: am 64f3b2fd: Merge "Remove experimental HWC virtual display support" into jb-mr2-dev * commit 'dda4295221f831560ca9d554cd9b7be1c672d0b6': Remove experimental HWC virtual display support
|
e737c11cd83a449d9a544c5c6d4e0dfd42250a56 |
07-May-2013 |
Jesse Hall <jessehall@google.com> |
Remove experimental HWC virtual display support Bug: 8384764 Change-Id: I97b52ed83ad85466bd91cb9291308994048568a1
ufferQueueInterposer.cpp
ufferQueueInterposer.h
WComposer.cpp
irtualDisplaySurface.cpp
irtualDisplaySurface.h
|
74d211ae26a0257c6075a823812e40b55aa1e653 |
22-Apr-2013 |
Mathias Agopian <mathias@google.com> |
clean-up/simplify all dump() APIs remove the scratch buffer parameter and use String8::appendFormat() instead. Change-Id: Ib96c91617c8e7292de87433d15cf6232b7d591b0
ramebufferSurface.cpp
ramebufferSurface.h
WComposer.cpp
WComposer.h
|
1df59c93fea8bec21b8084c34aface086f1e0896 |
06-Apr-2013 |
Jesse Hall <jessehall@google.com> |
Merge "Tell HWComposer the dimensions of virtual displays" into jb-mr2-dev
|
d5e345b0cf5c1c5aaa5c10a1a4c759e74d77fb37 |
06-Apr-2013 |
Jesse Hall <jessehall@google.com> |
Merge "Actually set the virtual display output buffer." into jb-mr2-dev
|
1c569c4d45f89ec05abf8f8fe3a560e68bf39a8e |
05-Apr-2013 |
Jesse Hall <jessehall@google.com> |
Tell HWComposer the dimensions of virtual displays HWComposer queries the HWC for dimensions of physical displays, but can't do that for virtual displays. The dimensions are used to set the display frame of the framebuffer target layer passed to HWC, and implicitly the dimensions of the virtual display. Bug: 8316155 Change-Id: I9cbd2530d2fa878f86128a1472def520b5d694a5
WComposer.cpp
WComposer.h
|
6d5b8e600e77164d3b5e51b89bf9c940fd7b4ea2 |
05-Apr-2013 |
Jesse Hall <jessehall@google.com> |
Merge "Clean up HWC state when releasing a DisplayDevice" into jb-mr2-dev
|
2ba647e9f5249d9ed97739d29d879064e31ba34a |
04-Apr-2013 |
Jesse Hall <jessehall@google.com> |
Actually set the virtual display output buffer. Bug: 8316155 Change-Id: Ida1ac47e5a932fdaad3ec862e121cfe55d255699
irtualDisplaySurface.cpp
|
33ceeb32582739dd74e404593d9ddf8adf5100bb |
02-Apr-2013 |
Mathias Agopian <mathias@google.com> |
Fix include paths Change-Id: If5350a3de995cc0cb1afea067e7ce168bc00d3f5
ramebufferSurface.cpp
WComposer.cpp
|
02d86567d95b99e1142941ed7ec23a4465822813 |
25-Mar-2013 |
Jesse Hall <jessehall@google.com> |
Clean up HWC state when releasing a DisplayDevice DisplayDevices can be released when DisplayManager removes them from the display list, or (for virtual displays) when the surface is set to NULL. We were only cleaning up HWC resources associated with the display in the first case. Bug: 8384764 Change-Id: Id3d226dd7178fbe6d0a2ac4e2660b864ee073de3
WComposer.cpp
|
ffe1f19ca9707f84cb9fdb06209bf36cd8c2ef0a |
22-Mar-2013 |
Jesse Hall <jessehall@google.com> |
Fix virtual displays for HWC<=1.1 If we're using a HWC that doesn't support virtual displays, or we have more virtual displays than HWC supports concurrently, the VirtualDisplaySurface should simply be a passthrough from source (GLES) to sink. This change also tries to distinguish between display types and HWC display IDs a little better, though there's more to do here. Probably needs a higher-level rethink; it's too error-prone now. Bug: 8446838 Change-Id: I708d2cf262ec30177042304f174ca5b8da701df1
irtualDisplaySurface.cpp
irtualDisplaySurface.h
|
851cfe834295224cd64bdd499872b95b19c4de8c |
20-Mar-2013 |
Jesse Hall <jessehall@google.com> |
Isolate knowledge that fb target == output buffer HWComposer didn't allow the virtual display output buffer to be set directly, instead it always used the framebuffer target buffer. DisplayDevice was only providing the framebuffer release fence to DisplaySurfaces after a commit. This change fixes both of these, so both HWComposer and DisplayDevice should continue to work if VirtualDisplaySurface changes to use separate framebuffer and output buffers. It's also more correct since VirtualDisplaySurface uses the correct release fence when queueing the buffer to the sink. Bug: 8384764 Change-Id: I95c71e8d4f67705e23f122259ec8dd5dbce70dcf
isplaySurface.h
ramebufferSurface.cpp
ramebufferSurface.h
WComposer.cpp
WComposer.h
irtualDisplaySurface.cpp
irtualDisplaySurface.h
|
afaf14b9fbfe8943d845e2f01e8a401ad7a4d854 |
20-Mar-2013 |
Jesse Hall <jessehall@google.com> |
Use descriptive aliases instead of HWC_NUM_DISPLAY_TYPES Bug: 8384764 Change-Id: Ia2563fab19dbc6e4a95bed03445e609334841cca
WComposer.cpp
|
13f01cbdbd34779a234bc674df79e23672fd5c0b |
20-Mar-2013 |
Jesse Hall <jessehall@google.com> |
Pass sp<Fence>s around instead of file descriptors Change-Id: Iac70584a2207940730e8f803a543e4e9a4000c47
isplaySurface.h
ramebufferSurface.cpp
ramebufferSurface.h
WComposer.cpp
WComposer.h
irtualDisplaySurface.cpp
irtualDisplaySurface.h
|
8d8c75976171d194ca8f94727b22e3bf7676b9dd |
22-Mar-2013 |
Jesse Hall <jessehall@google.com> |
Merge "Release virtual display buffer immediately after HWC set" into jb-mr2-dev
|
70a6e88dbd52605f35f290eba52a05bdc6fc8042 |
22-Mar-2013 |
Mathias Agopian <mathias@google.com> |
initialize planeAlpha (to 0xFF) for the FB_TARGET Bug: 8422625 Change-Id: I7b72456c2e01ed92e675cc1bfa0cfd0d2ce5064e
WComposer.cpp
|
7414965606f82ac2bcace5d3e2c8a4810517bf1e |
20-Mar-2013 |
Jesse Hall <jessehall@google.com> |
Release virtual display buffer immediately after HWC set Previously we only queued a virtual display buffer to the sink when the next frame was about to be displayed. This may delay the "last" frame of an animation indefinitely. Now we queue the buffer as soon as HWC set() returns and gives us the release fence. Bug: 8384764 Change-Id: I3844a188e0f6ef6ff28f3e11477cfa063a924b1a
ufferQueueInterposer.cpp
ufferQueueInterposer.h
isplaySurface.h
ramebufferSurface.cpp
ramebufferSurface.h
irtualDisplaySurface.cpp
irtualDisplaySurface.h
|
ef64b75a936ffd194673dbce6766995f86b42ba9 |
18-Mar-2013 |
Jesse Hall <jessehall@google.com> |
Don't log an error on HWC1.1+ devices with no FB HAL Change-Id: I015e5a1a1f926181e51f82525f69beff71bd70cd
WComposer.cpp
WComposer.h
|
80e0a397a4712666661ecc629a64ec26e7f6aac3 |
15-Mar-2013 |
Jesse Hall <jessehall@google.com> |
Add BufferQueueInterposer and use it for virtual displays BufferQueueInterposer allows a client to tap into a IGraphicBufferProducer-based buffer queue, and modify buffers as they pass from producer to consumer. VirtualDisplaySurface uses this to layer HWC composition on top of GLES composition before passing the buffer to the virtual display consumer. Bug: 8384764 Change-Id: I61ae54f3d90de6a35f4f02bb5e64e7cc88e1cb83
ufferQueueInterposer.cpp
ufferQueueInterposer.h
WComposer.cpp
WComposer.h
irtualDisplaySurface.cpp
irtualDisplaySurface.h
|
99c7dbb24994df2f3e175f7b25dd2c9dd92a72f0 |
14-Mar-2013 |
Jesse Hall <jessehall@google.com> |
Add DisplaySurface abstraction DisplayDevice now has a DisplaySurface instead of using FramebufferSurface directly. FramebufferSurface implements DisplaySurface, and so does the new VirtualDisplaySurface class. DisplayDevice now always has a surface, not just for virtual displays. In this change VirtualDisplaySurface is just a stub; buffers still go directly from GLES to the final consumer. Bug: 8384764 Change-Id: I57cb668edbc6c37bfebda90b9222d435bf589f37
isplaySurface.h
ramebufferSurface.cpp
ramebufferSurface.h
WComposer.cpp
irtualDisplaySurface.cpp
irtualDisplaySurface.h
|
7adb0f8a9fdb961692ffd2f0c65cacb155143f64 |
07-Mar-2013 |
Jesse Hall <jessehall@google.com> |
Minor cleanups/fixes before virtual display refactoring None of these should change behavior, except for removing some incorrect log messages when using a virtual display. - HWComposer::getAndResetReleaseFenceFd() checks the HWC version, so no need to do that in the DisplayDevice::onSwapBuffersCompleted(). However, it should check that mFramebufferSurface is not NULL like it is for virtual displays. - Comment that FramebufferSurface::dump() overrides the non-virtual ConsumerBase::dump(), and fix it so the right thing happens regardless of the static type of the pointer/reference the callee has. FramebufferSurface::dump() could be removed right now, but I'd need to bring it back in a later change. - Use the right enum for validating display type ids. - Don't try to send hotplug events for virtual displays. - Mark virtual displays as connected so HWComposer::prepare() doesn't think something is wrong when it gets a non-NULL layer list. - Remove unused FramebufferSurface methods. Bug: 8384764 Change-Id: Id28a2f9be86b45f4bb7915fdf7752157035f4294
ramebufferSurface.cpp
ramebufferSurface.h
WComposer.cpp
|
13127d8921356dff794250e04208c3ed60b3a3df |
06-Mar-2013 |
Mathias Agopian <mathias@google.com> |
Get rid of LayerBase. The functionality of LayerBase and Layer is folded into Layer. There wasn't a need for this abstraction anymore. Change-Id: I66511c08cc3d89009ba4deabf47e26cd4cfeaefb
WComposer.cpp
WComposer.h
|
a9a1b006e48320f5c501473e51e6c4a5f7a17b88 |
28-Feb-2013 |
Jesse Hall <jessehall@google.com> |
Initialize DisplayData fences to NO_FENCE, not NULL Also fix another place that was checking for NULL fence rather than Fence::isValid(). Bug 8283950 Change-Id: Ie06db327eb416828d8dac139171d96d4470b2e35
WComposer.cpp
WComposer.h
|
e3c697fb929c856b59fa56a8e05a2a7eba187c3d |
15-Feb-2013 |
Mathias Agopian <mathias@google.com> |
Refactoring: Rename SurfaceTextureClient to Surface Change-Id: Ibed34175ae273608393aaa5f0a7df207dc40d709
ramebufferSurface.cpp
WComposer.cpp
|
1df8c345854155cbbcb9f80de9d12d66ea70ac08 |
20-Dec-2012 |
Jamie Gennis <jgennis@google.com> |
libgui: disallow NULL Fence pointers This change eliminates the uses of a NULL sp<Fence> indicating that no waiting is required. Instead we use a non-NULL but invalid Fence object for which the wait methods will return immediately. Bug: 7892871 Change-Id: I5360aebe3090422ef6920d56c99fc4eedc642e48
WComposer.cpp
|
5fe58b8ba6c5d78481730874236a1be48a90d61d |
08-Feb-2013 |
Mathias Agopian <mathias@google.com> |
only disable hwc when alpha < 1.0 Bug: 8149181 Change-Id: Ib3c7a44f04871e020adceeae16d002141ac758d4
WComposer.cpp
|
9f8386e1118c10dd4927f62637ec7162569bdbdc |
30-Jan-2013 |
Mathias Agopian <mathias@google.com> |
Add support for plane-alpha in HWC Change-Id: I218e7dd5f23de535aabce61e993002ab6cb46cdd
WComposer.cpp
WComposer.h
|
51d22007386f171e1c696786ddce957e78fc4a03 |
14-Jan-2013 |
Jesse Hall <jessehall@google.com> |
Remove unused HWCLayer::setPerFrameDefaultState() Bug: 7977590 Change-Id: Ic49c4e38ef2ee6beaeb268c406347c882135bdf0
WComposer.cpp
WComposer.h
|
800856a7b7f8d89c1a64955f152549b8f42cd3e0 |
14-Jan-2013 |
Jesse Hall <jessehall@google.com> |
am f3e9d5bd: am cbe51356: Merge "Remove support for legacy HWC version encoding" * commit 'f3e9d5bde57a41593a7dbc15e6f1fdb1ea64ea74': Remove support for legacy HWC version encoding
|
f3e9d5bde57a41593a7dbc15e6f1fdb1ea64ea74 |
14-Jan-2013 |
Jesse Hall <jessehall@google.com> |
am cbe51356: Merge "Remove support for legacy HWC version encoding" * commit 'cbe5135610cd3c919e6334fada72cc52238bb8b0': Remove support for legacy HWC version encoding
|
8f06a8c2c80491465e8742c1bf45315dab7017e3 |
11-Jan-2013 |
Andy McFadden <fadden@android.com> |
Reduce C++11 warnings A few typecasts to fix "narrowing conversion" complaints. Change-Id: Ib2118079a2ca33959c748d03d8c6f1722d62e8fe
WComposer.cpp
|
7296051995fbaea919480a6cc2dabb729dabc95b |
11-Jan-2013 |
Jesse Hall <jessehall@google.com> |
Remove support for legacy HWC version encoding Change-Id: If03ae1ebf10d15777310e1449a57473021390582
WComposer.cpp
|
dd9d192287bcd54b5aef68f201dacca26cfa850e |
20-Nov-2012 |
Mathias Agopian <mathias@google.com> |
workaround: don't reset compositionType to HWC_FRAMEBUFFER This workaround a HWC HAL issue in Nexus 7, which causes videos and live wallpapers to animate slowly. Bug: 7563862 Change-Id: I87803aaad9751b1fd8392b9732304d4bccec659a
WComposer.cpp
|
2adaf04fab35cf47c824d74d901b54094e01ccd3 |
18-Dec-2012 |
Andy McFadden <fadden@android.com> |
Rename ISurfaceTexture and SurfaceTexture The C++ class names don't match what the classes do, so rename ISurfaceTexture to IGraphicBufferProducer, and SurfaceTexture to GLConsumer. Bug 7736700 Change-Id: Ia03e468888025b5cae3c0ee1995434515dbea387
ramebufferSurface.h
|
392edd88cb63d71a21a86a02cf9c56ac97637128 |
30-Nov-2012 |
Jamie Gennis <jgennis@google.com> |
SurfaceFlinger: Move GraphicBufferAlloc to libgui This change moves the GraphicBufferAlloc class from SurfaceFlinger to libgui. Change-Id: Idf31d2004efa2651b60590733f73c4a7b831e8a9
ramebufferSurface.cpp
raphicBufferAlloc.cpp
raphicBufferAlloc.h
|
e64b38fad2cc6686fb6691aaf65c735f505a49a5 |
20-Nov-2012 |
Jamie Gennis <jgennis@google.com> |
Merge "SurfaceFlinger: track the HWC retire fences"
|
3e095b251503d71bea04d6b707e8188cd30034e2 |
20-Nov-2012 |
Mathias Agopian <mathias@google.com> |
workaround: don't reset compositionType to HWC_FRAMEBUFFER [DO NOT MERGE] This workaround a HWC HAL issue in Nexus 7, which causes videos and live wallpapers to animate slowly. Bug: 7563862 Change-Id: I16ad85317e3e7f47f005e7397357c14186b0a13d
WComposer.cpp
|
2ec3e0748bff8d75baade2ddda9fbfa21a3b7d3f |
12-Nov-2012 |
Jamie Gennis <jgennis@google.com> |
SurfaceFlinger: track the HWC retire fences This change adds functionality to the HWComposer class to track the retire fences returned by each hwc set call. It adds the HWComposer::getDisplayFence method to allow other parts of SurfaceFlinger to get a fence that will signal when the most recent flip takes effect on a display. Change-Id: I676e0f98440fc58ed70908aa1a1e2ee3e7bf9eb2
WComposer.cpp
WComposer.h
|
ee932d0ad1a16cc93b4bd9eaf9cb3cc756fb2dfc |
14-Nov-2012 |
Mathias Agopian <mathias@google.com> |
Reset compositionType to HWC_FRAMEBUFFER before calling prepare() Honor the documentation. this broke in JB-MR1. Change-Id: I841a93b409fc940374bc748c4e143d82a192669c
WComposer.cpp
WComposer.h
|
620685c2e684082c82657732d1e35cefd0c79006 |
19-Oct-2012 |
Andy McFadden <fadden@android.com> |
Fix emulator vsync The code that reserves display IDs was only run when a hardware composer was present. The eventControl() function, which handles enabling of vsync, was ignoring the request because the primary display didn't appear in its set of allocated IDs. This moves reservation of IDs for built-in displays outside the HWC-only block. Also, added a couple of warnings in eventControl(). Bug 7376568 Change-Id: I185ccdf817a25499b5c2668f8f6d594afb8c1568
WComposer.cpp
|
cdbaecb54152ce98789823420d426077d72aa1e7 |
12-Oct-2012 |
Jamie Gennis <jgennis@google.com> |
SurfaceFlinger: make the num FBs a board config Bug: 7283132 Change-Id: I38116f39fc18212f2daab94bbfc3daaf89439fc4
ramebufferSurface.cpp
ramebufferSurface.h
|
9e9689c11148521d2c16a121a0b87b062be0714c |
11-Oct-2012 |
Andy McFadden <fadden@android.com> |
Fix HDMI unblank behavior Two issues: (1) We were announcing the hotplug event before we were ready to handle blank/unblank events, so we were losing the initial unblank that power manager sends us when HDMI is first plugged in. This left the display blank until you toggled the device power off/on. (2) We were retaining fbTargetHandle for HDMI after the display was disconnected. The value didn't get updated when HDMI was reconnected because the display was blank, so we didn't go through that code path. So, when HDMI was re-connected, we passed stale data into the HWC. Bug 7323938 Change-Id: I2335d24fd7b0f00bb23fc63aa7bcf44cb8857c73
WComposer.cpp
|
cb55857bbde34a06c19dde3db5064d1717a0173e |
05-Oct-2012 |
Mathias Agopian <mathias@google.com> |
fix dumpsys Layer name when using multiple displays Bug: 7288401 Change-Id: I14beeef58fac5270cef3b611e18c163060efe6c3
WComposer.cpp
WComposer.h
|
5a8f9012ee8bb9dc1ad14432b96a821f08802ee3 |
05-Oct-2012 |
Andy McFadden <fadden@android.com> |
Tone down a fatal assert The new disconnectDisplay function doesn't handle virtual displays, but it may be called for them. Return without doing anything. Bug 7281786 Change-Id: I62607f2ae6073fa66b393f55932604aeb8e03566
WComposer.cpp
|
81cd5d3b94d21253a0be925f4ae58cc7f4afeef7 |
04-Oct-2012 |
Mathias Agopian <mathias@google.com> |
make sure we don't call into the HWC HAL when not needed when enabling/disabling vsync we now make sure to not call into the HAL if the state wouldn't change. Bug: 7274951 Change-Id: Ie24a6d68888a51b577acf9c2a973d85437cbacaf
WComposer.cpp
WComposer.h
|
27ec5739bc05330e08b02f25b62a8f597bad897a |
03-Oct-2012 |
Andy McFadden <fadden@android.com> |
Fix crashes after HDMI disconnect The display was being removed from SurfaceFlinger's list before we had a chance to reset HWComposer's layer list, so we were passing stale data into the hardware composer (which has its own per-display data). This resulted in "invalid gralloc handle" complaints. We now clear the layer list immediately after removing the display. The display was being removed while its EGLSurface was still "current", resulting in "cancelBuffer: BufferQueue has been abandoned" complaints. We now call makeCurrent on the primary display before removing the external display. Bug 7274254 Change-Id: Ia59e3a61d7ec46488b96bf93ec5e4ed3488b70e4
WComposer.cpp
WComposer.h
|
ba607d53c6a94ea8c4c12571980c4ad159af308b |
01-Oct-2012 |
Jesse Hall <jessehall@google.com> |
Add Fence::waitForever which logs a warning timeout, and use it Bug: 7217641 Change-Id: If0c1a613ead307c4045a47824174bf40c72bc7d7
WComposer.cpp
|
d30b36d1fd0c7ab80553e784a155266be9703e47 |
01-Oct-2012 |
Jamie Gennis <jgennis@google.com> |
SurfaceFlinger: reset the FB_TGT acquire fence This change makes SurfaceFlinger reset the acquire fence fd to -1 after each call to HWComposer::commit. The HWComposer implementation is resonsible for closing the fd, so SurfaceFlinger should make sure not to pass it to HWC multiple times. Change-Id: I79554d9f6d6ef2b77d632d40251516c1f5b16ddb Bug: 7258954
WComposer.cpp
|
c01a79d77b829e7de86ef137694e8ad708470ca1 |
28-Sep-2012 |
Andy McFadden <fadden@android.com> |
Pass display arg to blank/unblank This allows us to blank and unblank displays other than the built-in display (e.g. HDMI). Bug: 7240511 Change-Id: I89ea13f9e497be74c3e1231d0c62fb558e93e0f8
WComposer.cpp
WComposer.h
|
9e2463e71796964cfaa06bf09a880875ac3537bc |
22-Sep-2012 |
Mathias Agopian <mathias@google.com> |
add/remove displays properly on hotplug events Bug: 7191563 Change-Id: I8f0fbf3b29658c9479443141798e6f288a1f2d52
WComposer.cpp
|
b4d18ed34e3513f3a14ea0876c7e330bee72a529 |
21-Sep-2012 |
Mathias Agopian <mathias@google.com> |
fix an issue where hotplug events were not dispatched Change-Id: I527eec77f338cd6f1a9021aa4c9d384dbddd6d2a
WComposer.cpp
|
38e623bc5c2d7224ebd5b82efaea401bc8e5367a |
21-Sep-2012 |
Mathias Agopian <mathias@google.com> |
fix a typo preventing pre hwc-1.1 devices from booting Change-Id: Icf01254689633d04967872749ac947a671e47ed8
WComposer.cpp
|
f5a33928349bebc8eebc9f466618997e98c24e68 |
20-Sep-2012 |
Mathias Agopian <mathias@google.com> |
we now correctly set-up connected screens during boot Change-Id: Ie8b1a3b97ad1821cc970e43abe96c8cec7135b66
ramebufferSurface.cpp
ramebufferSurface.h
WComposer.cpp
WComposer.h
|
148994e5f33ce240ff24ceb5bc0500b7f2001959 |
20-Sep-2012 |
Mathias Agopian <mathias@google.com> |
We now report hotplug events to the framework Change-Id: I2d6b7787d39e5929485a551e4982498c5053c211
WComposer.cpp
WComposer.h
|
1604f777d11c40daae8ec91d8ea75625996bfbac |
19-Sep-2012 |
Mathias Agopian <mathias@google.com> |
one more step toward HDMI support getDisplayInfo() now returns proper information for HWC managed displays. hotplug is sitll not supported; so this is not fully correct as the information returned will be bogus if the HDMI screen is not plugged in. Bug: 7191563 Change-Id: If55d8e829fae0443571548155007f486cdf9bc9f
WComposer.cpp
WComposer.h
|
f33e4b6f13bc3ee2d2a4e1abd1ada171c70d3492 |
21-Sep-2012 |
Mathias Agopian <mathias@google.com> |
GraphicBufferAlloc class was declared twice this was confusing because the one in FramebufferSurface wasn't in fact being used Change-Id: Ied45aec20d804cfbe52440f9b2f2852a85c757cf
ramebufferSurface.cpp
raphicBufferAlloc.cpp
raphicBufferAlloc.h
|
6ab93290aeed63f139b0e77819ea889bbce9ec8b |
18-Sep-2012 |
Mathias Agopian <mathias@google.com> |
suppress superfluous log Change-Id: I838f2de4cf99e885833c4f42e2a69d6e3bb8eea5
WComposer.cpp
|
d3d35f18345c3ef93217313a583ace473b5a47ad |
18-Sep-2012 |
Jesse Hall <jessehall@google.com> |
Check that HWC exists before trying to use it Bug: 7185810 Change-Id: I1271d6ba397f3abf0ef166b8d03b9b26b72e28d7
WComposer.cpp
|
da27af9832a0170f1fc40ef3f21371c4d30d21b3 |
14-Sep-2012 |
Mathias Agopian <mathias@google.com> |
add support hwc 1.1 Bug: 7124069 Change-Id: I53d705105c4ad8954d3f50ee4f4c8b7ec936b871
ramebufferSurface.cpp
ramebufferSurface.h
WComposer.cpp
WComposer.h
|
cde87a3b9d3f8dc15232d927b56ee9e5e520f58d |
13-Sep-2012 |
Mathias Agopian <mathias@google.com> |
refactor things a bit - decouple GL and main display initialization - ensure that each "supported" display has its own FramebufferSurface - onScreenAcquired/Released now takes a display Change-Id: If34a05f3dea40f6c79db77f4dde283a2580daac4
WComposer.cpp
WComposer.h
|
ae2cfb5746e87f1bf17c446e20274c41ce0a57ce |
13-Sep-2012 |
Andy McFadden <fadden@android.com> |
Minor tweaks A couple of minor cleanups I stumbled over while looking at other things. Change-Id: I385ecfe1afefd577afbc59d7ef1d98d868073651
WComposer.cpp
|
db27621e22559a1b16414f890677ef04242fbc3b |
07-Sep-2012 |
Jesse Hall <jessehall@google.com> |
Initialize new HWC 1.2 fields Also rename resolution* to width/height. Change-Id: Ia5f0c50d3f0a349160f314a3257c3b985e13ef1d
ramebufferSurface.cpp
WComposer.cpp
WComposer.h
|
babba1868773eba5edf8a8e335b8e109a32292e0 |
12-Sep-2012 |
Andy McFadden <fadden@android.com> |
Fix emulator Emulator has no HWC. Change-Id: I7810b27034f6772823142e5bf877681db1c8ee49
WComposer.cpp
|
43601a2dc320a271ff8c3765ff61414a07221635 |
12-Sep-2012 |
Andy McFadden <fadden@android.com> |
Reduce failure uncertainty This adds a trivial workaround for a one-shot boot time crash, plus an explicit check and abort for a failure condition that currently presents as a less obvious failure. Bug: 7145521, 7147557 Change-Id: I548f6a9caa9f0bd5710aaecea0e1c6c7c8f2f281
WComposer.cpp
|
b0d1dd36f104c0b581674adc7f830cbf44b7db06 |
10-Sep-2012 |
Andy McFadden <fadden@android.com> |
Reshuffle FramebufferSurface FramebufferSurface no longer speaks directly to the FB HAL. Now everything goes through HWComposer (which may or may not be connected to a hardware composer). Added display index arg to some query methods. Change-Id: Id3e157d2d4e3555d33afbb703e518b6e92e2d6d5
ramebufferSurface.cpp
ramebufferSurface.h
WComposer.cpp
WComposer.h
|
b27254154642575dfb4bbfa79fbedde7d7ee23dd |
06-Sep-2012 |
Jamie Gennis <jgennis@google.com> |
libgui: move fence handling into ConsumerBase This change moves some common fence handling code into the base class for BufferQueue consumer classes. It also makes the ConsumerBase class initialize a buffer slot's fence with the acquire fence every time a buffer is acquired. Change-Id: I0bd88bc269e919653b659bfb3ebfb04dd61692a0
ramebufferSurface.cpp
|
55882dea1b1b305f15192b96ff7814f18babb212 |
06-Sep-2012 |
Mathias Agopian <mathias@google.com> |
fix a problem where all hwc layers would have the SKIP flags set the problem was that LayerBase::setPerFrameData() was always setting this flag. in fact there was no reason to do this at that point since the layer is initialized to a default state in setGeometry(). Bug: 7111259 Change-Id: Ib37b0dd7391a6163070e9aca025512159c1705f9
WComposer.cpp
|
e25d005d91344c500450f01d4a258ca9c3676627 |
05-Sep-2012 |
Jesse Hall <jessehall@google.com> |
Always reset layer acquireFenceFd after commit If SurfaceFlinger needs to refresh the screen but the dirty region is empty, it won't set the layer acquire fences, and stale file descriptors will be passed to HWC commit(). Now we make sure to clear the stale file descriptors for each layer right after commit(). Bug: 7078301 Change-Id: I6953ff91fc5488f105b30b07306f9c45a4c3f780
WComposer.cpp
|
c39736088398a9b4367b30fc307ed7de96ac342e |
01-Sep-2012 |
Mathias Agopian <mathias@google.com> |
the visible region sent to HWC was garbage we used to have a visibleRegion object per layer, but now it's per screen; so at somepoint the code got changed to calculate the per-screen visible region on the stack and that's what got passed to HWC. we're now setting the visibleRegionScreen at each frame and freeing at after the HWC set() call. We use the underlaying SharedBuffer so that in most cases we don't have to allocate, free or copy memory around. Bug: 7089478 Change-Id: I24fa556c76613a225d9fe7a6c6b727bb476144d8
WComposer.cpp
WComposer.h
|
f90883d6a50688081642855bba43bef0693d5020 |
31-Aug-2012 |
Jesse Hall <jessehall@google.com> |
Merge "HWC 1.1: hook up hotplug event, use new display config queries" into jb-mr1-dev
|
1bd20e0f9ecd27cc5ad2bdf08b01837ecc10c357 |
29-Aug-2012 |
Jesse Hall <jessehall@google.com> |
HWC 1.1: hook up hotplug event, use new display config queries Change-Id: I2fd359e5fc7e1948072c6bc6b6fe47ea5e8025c1
WComposer.cpp
WComposer.h
|
72f096fb1ad0a0deadbfac5f88627461905d38e8 |
28-Aug-2012 |
Jamie Gennis <jgennis@google.com> |
BufferQueue: use max acquired buffer count This change makes BufferQueue derive the min undequeued buffer count from a max acquired buffer count that is set by the consumer. This value may be set at any time that a producer is not connected to the BufferQueue rather than at BufferQueue construction time. Change-Id: Icf9f1d91ec612a079968ba0a4621deffe48f4e22
ramebufferSurface.cpp
|
2b9776982360a234803665cb79e8abcfeb0e3c79 |
31-Aug-2012 |
Jamie Gennis <jgennis@google.com> |
Merge "BufferQueue: clean up buffer counting" into jb-mr1-dev
|
31a353da225af5329735451c761b430d82dfda1b |
25-Aug-2012 |
Jamie Gennis <jgennis@google.com> |
BufferQueue: clean up buffer counting This change is a clean up of some of the handling of the maximum number of buffers that are allowed at once. It mostly renames a few member variables and methods, but it includes a couple small refactorings. Change-Id: I9959310f563d09583548d4291e1050a7bbc7d87d
ramebufferSurface.cpp
|
9eb1eb5bb55740982ceae9966fc536824edc302a |
29-Aug-2012 |
Jesse Hall <jessehall@google.com> |
Handle new device api version encoding Change-Id: I3d36058bd5d31c23b3cc4a7eb5aa033b6f3c1955
WComposer.cpp
|
13a082e160c2d1d8006b93a555a57035213d568b |
24-Aug-2012 |
Andy McFadden <fadden@android.com> |
Added display initialization method The primary display device was being configured to "blank" by default, which prevented the boot animation from appearing (unless you got lucky with the hardware composer state). Bug 6975688 Change-Id: I0fa52e9e719c6e997c5725a7baf15d9718461b78
WComposer.cpp
|
f435863467ab407f2a482604beed5fa6f0144c62 |
23-Aug-2012 |
Mathias Agopian <mathias@google.com> |
teach HWC about multiple displays Change-Id: I5e72a83d419a729835cb0e1ec45557b4d3fb56b1
WComposer.cpp
WComposer.h
|
30bcc61431d8e3bef779472dd52a7b156dcaba09 |
23-Aug-2012 |
Mathias Agopian <mathias@google.com> |
remove support for HWC < 1.0 Change-Id: If7e676a6e3524afeb9af3875125d2131d95db38b
WComposer.cpp
WComposer.h
|
e60b0687c8d49871d0c8786cabe6851f7a7783b5 |
22-Aug-2012 |
Mathias Agopian <mathias@google.com> |
HWComposer now has its own concept of display IDs HWComposer can now create IDs representing a display it can deal with. IDs MAIN and HDMI are reserved. SurfaceFlinger associate HWComposer IDs with a DisplayDevice and uses that when it talks to HWComposer. A DisplayDevice doesn't have to have a HWComposer ID, in that case it just can't use h/w composer composition. Change-Id: Iec3d7ac92e0c22bf975052ae2847402f58bade71
WComposer.cpp
WComposer.h
|
bbd164a3c790a0649dffd2f015e6f47692c72e1c |
21-Aug-2012 |
Jesse Hall <jessehall@google.com> |
Update for cleanups in hwc interface Change-Id: I363fd8b085167a1af6c14b68012bda5c62bfe59f
WComposer.cpp
WComposer.h
|
8f971ff6661c875e7adb3f14731e1579c3c80c62 |
22-Aug-2012 |
Jesse Hall <jessehall@google.com> |
Pass the correct number of displays based on HWC version Change-Id: I27372f5d3102ad56f6d67722d631ae18d37f8330
WComposer.cpp
WComposer.h
|
5f20e2d4462da3471f59152b32cd8640fa4a21da |
11-Aug-2012 |
Mathias Agopian <mathias@google.com> |
reimplement wifi display hack with new external display SF framework fix a few bugs with external displays - HWComposer doesn't really handle multiple displays yet so there is a lot of ugliness there - We also need to make sure that external displays are not blanked by default - due to some EGL limitations surfaces being swapped need to be current Change-Id: I82bff05b43bcebd8da863c7c76b4edbc3bc223a9
WComposer.cpp
|
8b736f138cfd9b239a2c7073347a13c489534ae1 |
14-Aug-2012 |
Mathias Agopian <mathias@google.com> |
xdpi / ydpi were reported as 0 Bug: 6975723 Change-Id: Ia7fa37ec11e2308804f5034959a37e508d292d31
ramebufferSurface.cpp
ramebufferSurface.h
WComposer.cpp
WComposer.h
|
748f3df66f6695681cde44461e2548e6e1dbc1bb |
10-Aug-2012 |
Mathias Agopian <mathias@google.com> |
avoid crashing when we don't have an h/w composer should fix the emulator Bug: 6956162 Change-Id: I38247b59d276b8db078c4dc2caba7d3fb545912c
WComposer.cpp
|
1e26087493ac0e7d7dc6dea8ad85cfef08b3271f |
09-Aug-2012 |
Mathias Agopian <mathias@google.com> |
Add a display parameter to HWComposer where needed - also replace C casts with C++ casts - only the interface is changed, HWComposer still doesn't fully handle multiple displays Change-Id: I48eb89bff2edb76bf1d4d41f46802b9b2a7166a8
WComposer.cpp
WComposer.h
|
b685c542836b93c99cd85053e07696406ea37adb |
31-Jul-2012 |
Jesse Hall <jessehall@google.com> |
Changes to support multi-display HWC Change-Id: I07efff54f2980dcb013935747b03e099b8f1181b
WComposer.cpp
WComposer.h
|
1a4d883dcc1725892bfb5c28dec255a233186524 |
03-Aug-2012 |
Jamie Gennis <jgennis@google.com> |
surfaceflinger: refactor FrambufferSurface This change refactors the FramebufferSurface class to inherit from the new ConsumerBase class. Bug: 6620200 Change-Id: I46ec942ddb019658e3c5e79465548b171b2261f2
ramebufferSurface.cpp
ramebufferSurface.h
WComposer.h
|
888c822c4cb6976aab9256c58bae9e17e3e55c5c |
05-Aug-2012 |
Mathias Agopian <mathias@google.com> |
remove a dependency of DisplayDevice on the refresh rate this remove a dependency (not all) on FramebufferSurface Change-Id: Ie07ce70760cdcedfb41b5b41bea8da45637bf474
WComposer.cpp
WComposer.h
|
d3ee231eddce0b69ec5e35188dbd0f4a2c3b9ac3 |
02-Aug-2012 |
Mathias Agopian <mathias@google.com> |
cleanups in preparation of bigger changes - fix typo drawForSreenshot misspelled - get rid of DisplayDeviceBase - removed unused or unneeded code - always pass a DisplayDevice to Layer methods that are called on a per-display basis (to make it clear that this could be called more than once per composition). Change-Id: Id948b7e09fe5c06db0e42d40d6ed75dd095c7f44
isplayDeviceBase.cpp
isplayDeviceBase.h
WComposer.cpp
WComposer.h
|
0f2f5ff75b7b48ceb64270655ee6b62d09bf4d00 |
01-Aug-2012 |
Mathias Agopian <mathias@google.com> |
rename DisplayHardware to DisplayDevice Change-Id: I3f7250cd914e0da4f9ec2c9403587bbe12f3cc62
isplayDeviceBase.cpp
isplayDeviceBase.h
isplayHardwareBase.cpp
isplayHardwareBase.h
|
34a09ba1efd706323a15633da5044b352988eb5f |
30-Jul-2012 |
Jesse Hall <jessehall@google.com> |
Move eglSwapBuffers out of HWComposer Commit 8630320 moved the eglSwapBuffers fallback (for devices with no HWC implementation) from DisplayHardware to HWComposer. But HWComposer only knows about the framebuffer EGL display and surface handles if there is a HWC, so it was always passing bogus handles. This change moves the eglSwapBuffers fallback up to SurfaceFlinger, which has access to the framebuffer EGL handles. Bug: 6886613 Change-Id: Iad3f5ff7c90ee48d7053999e6a4548d6794b6ebd
WComposer.cpp
WComposer.h
|
028508cad5ef63ef9fbd42c14e76658e4fd9ebf2 |
26-Jul-2012 |
Mathias Agopian <mathias@google.com> |
hopefully fixe a race condition in sf initialization if we received a vsync event during SF init, we could crash as not all objects were ready to go. Change-Id: Ie11b46e3eb1b37a709dd8757843d444f93dd0189
WComposer.cpp
|
8630320433bd15aca239522e54e711ef6372ab07 |
25-Jul-2012 |
Mathias Agopian <mathias@google.com> |
split HWComposer out of DisplayHardware we will only ever have a single instance of HWComposer, so it's now an attribute of SurfaceFlinger, instead of being part of DisplayHardware. DisplayHardware now just represents a "display" (it should be renamed). Change-Id: Iec191e57686868e1df6daa8b880a286c9fefde56
WComposer.cpp
|
921e6ac4b7610a178285898d191eb0e3afe906c0 |
24-Jul-2012 |
Mathias Agopian <mathias@google.com> |
SurfaceFlinger cleanup mostly refactored SurfaceFlinger.h, but also removed dead code. cleaned-up a few includes as well. Change-Id: Ib15f4ffe567912b61ee98aa076c6a283b72811b5
isplayHardwareBase.cpp
isplayHardwareBase.h
WComposer.cpp
WComposer.h
|
a49126087b4494f4ef50873f3a3f6727265f6621 |
12-Jul-2012 |
Mathias Agopian <mathias@google.com> |
factor EGL/GL and surface creation out of DisplayHardware Change-Id: Icd85a6a4caad06f056578008af3e21666fa8b1f4
ramebufferSurface.cpp
ramebufferSurface.h
|
10fbdb6059755f009e02f0ccc2b9d289beb6b086 |
13-Jul-2012 |
Colin Cross <ccross@android.com> |
surfaceflinger: call into hardware composer to blank screen Call into the new HWC blank operation to blank or unblank the screen. Legacy systems may have already blanked the screen via early suspend, and can choose to not implement the blank operation in their hardware composer implementation. Change-Id: Ib403c8c0e36367a2cfef3e1d124872fcfeb9e7cb
WComposer.cpp
WComposer.h
|
dc5b485f74edf2d2f31c62054eb6c180421a3ade |
30-Jun-2012 |
Jesse Hall <jessehall@google.com> |
Pass fence to HWC on first use of buffer Also do a CPU-wait on the fence before using it for GL composition. Change-Id: I0f645a42a44803276cae11b904e5a26d65871562
WComposer.cpp
WComposer.h
|
b42b1ac1587aebda5e2f334d95b620271fafba4e |
28-Jun-2012 |
Jesse Hall <jessehall@google.com> |
Return fence from acquireBuffer Change-Id: Iab22054c1dc4fd84affab3cc5bbdcd5a1e689666
ramebufferSurface.cpp
|
1b03149f3533db04e72e088d3fdd09d0087ca594 |
21-Jun-2012 |
Mathias Agopian <mathias@google.com> |
get rid of GraphicPlane its functionality is now folded into DisplayHardware there will be more changes in that area.
isplayHardware.cpp
isplayHardware.h
|
3094df359d1e6e2ae8ca4e935cc093f563804c96 |
19-Jun-2012 |
Mathias Agopian <mathias@google.com> |
First prototype atttempting to support an external display both API and implementation will change, this is just a prototype intended to show feasability. SurfaceFlinger is passed an ISurfaceTexture through a new callback, it is in turn used to create an EGLSurface which surfaceflinger will draw into in addition to the main screen. Change-Id: Id0bbb0b854bb7bae44d57246a90b65d4567f9a21
isplayHardware.cpp
isplayHardware.h
|
ef19414bd8b77a26f5751f3845be79025a8263fe |
14-Jun-2012 |
Jesse Hall <jessehall@google.com> |
Transfer HWC release fences to BufferQueue After a HWC set, each SurfaceFlinger Layer retrieves the release fence HWC returned and gives it to the layer's SurfaceTexture. The SurfaceTexture accumulates the fences into a merged fence until the next updateTexImage, then passes the merged fence to the BufferQueue in releaseBuffer. In a follow-on change, BufferQueue will return the fence along with the buffer slot in dequeueBuffer. For now, dequeueBuffer waits for the fence to signal before returning. The releaseFence default value for BufferQueue::releaseBuffer() is temporary to avoid transient build breaks with a multi-project checkin. It'll disappear in the next change. Change-Id: Iaa9a0d5775235585d9cbf453d3a64623d08013d9
ramebufferSurface.cpp
WComposer.cpp
WComposer.h
|
549646d29fccfb2366cc9ca4d894d39c55351fae |
19-Jun-2012 |
Jesse Hall <jessehall@google.com> |
Merge "Add support for HWC_DEVICE_API_VERSION_1_0"
|
d3076aca0f6106dbc6c5a1588f560c62567752a4 |
16-Jun-2012 |
Mathias Agopian <mathias@google.com> |
Merge "Implement SurfaceFlinger's ANW on top of BufferQueue"
|
5880cc573823148237eac9ab7bc586b8e4eb7160 |
06-Jun-2012 |
Jesse Hall <jessehall@google.com> |
Add support for HWC_DEVICE_API_VERSION_1_0 The acquire and release fences aren't yet used; this is just support for the new version and temporary backwards compatibility for older versions. Change-Id: Ia5ccc05a97c86f649042b9a35e11042fa0187e84
WComposer.cpp
WComposer.h
|
3e8b853d67c737abdb363f9c978e7d83eac4d888 |
14-May-2012 |
Mathias Agopian <mathias@google.com> |
refactor HWComposer to break dependency with the HAL headers HWComposer must abstract the HWC HAL entirely, so that the HAL can continue to evolve (and break binary compatibility) without breaking SurfaceFlinger. The HWC data structure had leaked outside of HWComposer, this is now fixed. We now have an abstract interface that provide all the needed functionality, HWCompose provides concrete implementations of it based on the the HWC version. Change-Id: I40c4676dc986b682ede5520a1c60efe64037b0bb
WComposer.cpp
WComposer.h
|
3e87601170141229d661df93e2f59e1ced73474b |
08-Jun-2012 |
Mathias Agopian <mathias@google.com> |
Implement SurfaceFlinger's ANW on top of BufferQueue SF now has its own implementation of ANW for the framebuffer and it uses BufferQueue. FramebufferNativeWindow is now only used by stand-alone apps. Change-Id: Iddeb24087df62bd92b0f78e391dda9b97ddc859c
isplayHardware.cpp
isplayHardware.h
ramebufferSurface.cpp
ramebufferSurface.h
|
8e533069e5721e55cb9768e140e16546c3a4a8b6 |
07-Jun-2012 |
Colin Cross <ccross@android.com> |
surfaceflinger: replace early suspend with binder call from PowerManager SurfaceFlinger will no longer directly synchronize with early suspend. Instead, PowerManagerService will synchronize with SurfaceFlinger to ensure that a black frame has been drawn on the display, and then trigger all early suspend handlers. Change-Id: I07acdd628440d23fdb69db94319ec5d65d3f4919
isplayHardwareBase.cpp
|
06e51a0aaf76fe53cef20c3345cf1ebda2b3461e |
27-Apr-2012 |
Mathias Agopian <mathias@google.com> |
don't actuate vsync hint when not needed Change-Id: I61c43dd76041816ab8cbe9aeaa55c11c1479ed03
owerHAL.cpp
owerHAL.h
|
03e407270c7ad76632f982c886d0776bed9e9b4c |
27-Apr-2012 |
Mathias Agopian <mathias@google.com> |
set vsync power hint Change-Id: I28c2faf9ff584df3e74392712971cbcf75eb9e98
isplayHardware.cpp
isplayHardware.h
WComposer.cpp
WComposer.h
owerHAL.cpp
owerHAL.h
|
a2f4e56fec0fb36c4a370eb23d6e9dc57f250b59 |
16-Apr-2012 |
Mathias Agopian <mathias@google.com> |
get rid off preserve backbuffer optimization in SF this optimization didn't improve performance and in fact seemed to hurt more than anything else. it also made things a lot more complex as it introduced edges cases when switching to/from h/w composer. Change-Id: Iaafc235e175f5740cd98bff914d706e02ab88bb8
isplayHardware.cpp
isplayHardware.h
|
22ffb117b0c2a906bd04aef9738a52223cdd1dce |
11-Apr-2012 |
Mathias Agopian <mathias@google.com> |
make sure to disable VSYNC while screen is off Change-Id: If1894c43b0a39a2851e1280a35ae77bccd6d9abd
WComposer.cpp
|
b60314a12f3336b27d73920805ab07cbc498d857 |
11-Apr-2012 |
Mathias Agopian <mathias@google.com> |
rework screen on/off code Change-Id: I13f71e850592a588bbd4805b1830c503bd4decb4
isplayHardwareBase.cpp
isplayHardwareBase.h
|
e2c4f4ec23b735dd2a03f4ea8b08b288a1bb04e8 |
11-Apr-2012 |
Mathias Agopian <mathias@google.com> |
Added vsync debugging information in dumpsys log Change-Id: I20ef05a73d89caaf6a70dc9ca25ada6e6a1f6ff9
WComposer.cpp
WComposer.h
|
3a77871383bc1a03cc866686d81628493d14de7c |
09-Apr-2012 |
Mathias Agopian <mathias@google.com> |
start VSYNC thread when HWC doesn't handle it Change-Id: I853a822ea9ec13870ae25af55a89ad9a8cc3936a
WComposer.cpp
|
2965b26022f95051f65b09d7eac47cbe923855c9 |
09-Apr-2012 |
Mathias Agopian <mathias@google.com> |
VSYNC handling cleanup Change-Id: I1376bf864c4e03c11fb6d1333a8b7cfdda08c9e4
WComposer.cpp
WComposer.h
|
1a3bf41b7165ba294af46bc32483eaad61e707ea |
06-Apr-2012 |
Erik Gilling <konkers@android.com> |
Fix SurfaceFlinger crash in HWC::eventControl eventControl was not checking if there was a hwc before callingi hwc->eventControl Change-Id: I4d739fc9c0d47da131f4ffc5d50e274de156d012
WComposer.cpp
|
3eb38cb33e41ce40dd1094bdec850f0fca9f8a53 |
04-Apr-2012 |
Mathias Agopian <mathias@google.com> |
SurfaceFlinger now uses the new VSYNC HAL API. If h/w composer doesn't support vsync (version < 0.3) we "fake" it with a timer. Change-Id: I1e3be79f43c9631d1293ad7d6cf52f9bfc42d65b
isplayHardware.cpp
isplayHardware.h
WComposer.cpp
WComposer.h
SyncBarrier.cpp
SyncBarrier.h
|
31d2843b45ebdb69ec3355111b7567363fd2a6b7 |
04-Apr-2012 |
Mathias Agopian <mathias@google.com> |
Add HWC vsync hook. Currently unused. Change-Id: I849d56f375813a044c5e2d0b25f791476a60fa01
WComposer.cpp
WComposer.h
|
b5dd9c0fee3b3d6d35035dfb992951ebea3e0e4e |
22-Mar-2012 |
Mathias Agopian <mathias@google.com> |
rewrite density calculation code so it's understandable Change-Id: I1016cd5fd75355abe4ab879d04f4849bd2dd4122
isplayHardware.cpp
|
6fc0a9bd4bdd3ae4a09ae033f68c04fecfc35991 |
22-Mar-2012 |
Dima Zavin <dima@android.com> |
displayhardware: fix not obeying ro.sf.lcd_density when specified Change-Id: I71efd6aebfdb0323b07327f5e448a5cb5eb0fad6 Signed-off-by: Dima Zavin <dima@android.com>
isplayHardware.cpp
|
1b15e1e26b3d410b6bd51feeb7077251a464fee0 |
15-Mar-2012 |
Dima Zavin <dima@android.com> |
surfaceflinger: use display dpi if not forced with ro.sf.lcd_nensity Change-Id: I52c4b872e0f2c088c2a6ada7a5bb15db071f0002 Signed-off-by: Dima Zavin <dima@android.com>
isplayHardware.cpp
|
90ac799241f077a7b7e6c1875fd933864c8dd2a7 |
26-Feb-2012 |
Mathias Agopian <mathias@google.com> |
fix libgui header location Change-Id: Iec71706cdd4f29c6904993648ce873e83ef9cafe
isplayHardware.cpp
isplayHardware.h
|
870b8aa15cb5c722b5d8eb7726eaa5f1a7c23d69 |
25-Feb-2012 |
Mathias Agopian <mathias@google.com> |
remove libui dependency on libEGL Change-Id: I1194f04085637d5c384e134967249430cc43b6ee
isplayHardware.cpp
|
f6de1c04ffc2c7a739578b7612944fddb7011ab7 |
05-Feb-2012 |
Mathias Agopian <mathias@google.com> |
fix a crasher when starting SF with the screen off SF could end-up in an infinite crash-loop during startup if it was stopped while the screen was off. This happened because the thread that manages screen blanking was started before other important pieces of SF were initialized. Change-Id: I0dded11dbf2395fdd57b673859a7aa0fa9eb32b6
isplayHardwareBase.cpp
isplayHardwareBase.h
|
67016af1e480a5f338555355638fc2a23e15c746 |
03-Feb-2012 |
Mathias Agopian <mathias@google.com> |
fix an issue where SF would spin if /sys/power/wait_for_fb_xxx don't exist we now exit the Display thread on any error happening on these files. also refactor the code and remove a lot of unused stuff. Change-Id: I8d080c35b211890ca20ae09fa36fbdccdf5669a8
isplayHardwareBase.cpp
isplayHardwareBase.h
|
82d7ab6c7e0cf971e515134ccf072682dd1a2cdb |
20-Jan-2012 |
Mathias Agopian <mathias@google.com> |
improve SurfaceFlinger dumpsys It is now possible to say: dumpsys SurfaceFlinger --latency to print latency information about all windows dumpsys SurfaceFlinger --latency window-name to print the latency stats of the specified window for instance: dumpsys SurfaceFlinger --latency SurfaceView The data consists of one line containing global stats, followed by 128 lines of tab separated timestamps in nanosecond. The first line currently contains the refresh period in nanosecond. Each 128 following line contains 3 timestamps, of respectively the app draw time, the vsync timestamp just prior the call to set and the timestamp of the call to set. Change-Id: Ib6b6da1d7e2e6ba49c282bdbc0b56a7dc203343a
isplayHardware.cpp
isplayHardware.h
|
55ef343331f5efbfe3e01bc9993d94faea236048 |
07-Jan-2012 |
Mathias Agopian <mathias@google.com> |
remove dead/usnused code Change-Id: I6fa2bc6ee01790abd2c1533f043d61a5e5c8d26e
isplayHardware.cpp
isplayHardware.h
|
e6f43ddce78d6846af12550ff9193c5c6fe5844b |
06-Jan-2012 |
Steve Block <steveblock@google.com> |
Rename (IF_)LOGE(_IF) to (IF_)ALOGE(_IF) DO NOT MERGE See https://android-git.corp.google.com/g/#/c/157220 Bug: 5449033 Change-Id: Ic9c19d30693bd56755f55906127cd6bd7126096c
isplayHardware.cpp
WComposer.cpp
|
32397c1cd3327905173b36baa6fd1c579bc328ff |
06-Jan-2012 |
Steve Block <steveblock@google.com> |
Rename (IF_)LOGW(_IF) to (IF_)ALOGW(_IF) DO NOT MERGE See https://android-git.corp.google.com/g/157065 Bug: 5449033 Change-Id: I00a4b904f9449e6f93b7fd35eac28640d7929e69
isplayHardware.cpp
isplayHardwareBase.cpp
WComposer.cpp
|
a19954ab377b46dbcb9cbe8a6ab6d458f2e32bca |
04-Jan-2012 |
Steve Block <steveblock@google.com> |
Rename (IF_)LOGI(_IF) to (IF_)ALOGI(_IF) DO NOT MERGE See https://android-git.corp.google.com/g/156801 Bug: 5449033 Change-Id: Ib08fe86d23db91ee153e9f91a99a35c42b9208ea
isplayHardware.cpp
|
9d4536835248525f32f1504a3d28d5bbfa0a2910 |
20-Dec-2011 |
Steve Block <steveblock@google.com> |
Rename (IF_)LOGD(_IF) to (IF_)ALOGD(_IF) DO NOT MERGE See https://android-git.corp.google.com/g/156016 Bug: 5449033 Change-Id: I4c4e33bb9df3e39e11cd985e193e6fbab4635298
isplayHardwareBase.cpp
|
d0566bc26fcf6ca396118701fa11900b627f2c09 |
18-Nov-2011 |
Mathias Agopian <mathias@google.com> |
Add support for sending VSYNC events to the framework use gui/DisplayEvent to receive the events. Events are dispatched through a unix pipe, so the API is compatible with utils/Looper. see gui/DisplayEvent.h for more info. Bug: 1475048 Change-Id: Ia720f64d1b950328b47b22c6a86042e481d35f09
isplayHardware.cpp
isplayHardware.h
SyncBarrier.cpp
SyncBarrier.h
|
439cf8576d3b846c0aa0944d84372259bf075d51 |
29-Nov-2011 |
Mathias Agopian <mathias@google.com> |
Fix build. Revert "Add support for sending VSYNC events to the framework" This reverts commit f3918c5bd4bc9f02f74da42995564150ca2dd382. Change-Id: I998e3e1aa3fa310829ae973b64fe11b01f6f468f
isplayHardware.cpp
isplayHardware.h
|
461afeb9fde149f9455acbadf1257d08d33e8eb3 |
18-Nov-2011 |
Mathias Agopian <mathias@google.com> |
Add support for sending VSYNC events to the framework use gui/DisplayEvent to receive the events. Events are dispatched through a unix pipe, so the API is compatible with utils/Looper. see gui/DisplayEvent.h for more info. Bug: 1475048 Change-Id: If4126023fc9c067e56087ec7d16a8fd542ce1794
isplayHardware.cpp
isplayHardware.h
|
4b9511c16195a646242eff833b0af212933b6eca |
14-Nov-2011 |
Mathias Agopian <mathias@google.com> |
rework a bit how we manage EGL extensions - don't advertise extensions that are not supported by any implementation - remove EGL_ANDROID_swap_rectangle which is not implemented by anybody and confuses people - add some comments about mandatory extensions Bug: 5428001 Change-Id: Id8dc48116ac1d1eb79ec9ef55d03e29d4257c1f3
isplayHardware.cpp
|
385977f6d6c4e76379df384d50695a10cb3757f2 |
05-Nov-2011 |
Mathias Agopian <mathias@google.com> |
workaround to set the WM refresh rate to 48 Hz for tuna devices only this is TEMPORARY until we can do this properly. Bug: 5572464 Change-Id: I6537706d636a83a4a50e2900d6b829dd89b6f245
isplayHardware.cpp
|
f7cdd053fe1fee093f6b0973ad5723765f98a48d |
11-Oct-2011 |
Mathias Agopian <mathias@google.com> |
fix an issue where the screen could stay off this would happen when toggling on/off/on very fast, the screen could stay black (while the panel is on). Bug: 5429724 Change-Id: Ic8aa6aff066e6267923c0d47ef65e314e7bb6d41
isplayHardwareBase.cpp
isplayHardwareBase.h
|
e2c2f9213f936f98db604dc9c126ff22f725a824 |
06-Oct-2011 |
Mathias Agopian <mathias@google.com> |
Force a repaint when hwc invalidate hook is called without this prepare() would be called but not set() since the dirty region is empty. Change-Id: I038acfbdad4c16015357ccde4d1949391d6f989d
WComposer.cpp
|
aebac5f34a098f733f887c993bd617a393e10db8 |
30-Sep-2011 |
Mathias Agopian <mathias@google.com> |
improve hwc log output we now print the handle of each buffer Change-Id: I70884ae458a9dcf10cfc403258d48eaa4618b7f4
WComposer.cpp
|
fc60b94db9081adb4835bd44eacdd0573fc4d644 |
23-Sep-2011 |
Mathias Agopian <mathias@google.com> |
fix dumpsys wording for h/w composer Change-Id: Iaa1094964f2fb83da491e23b9309f7690079c17e
WComposer.cpp
|
9c6e297271ec9af9d974242d89cfa08cb6ceaa0a |
21-Sep-2011 |
Mathias Agopian <mathias@google.com> |
fix transition from full overlays to fb we need to clear the whole framebuffer in that situation because we can't trust the content of the FB when partial (fb preserving) updates are used. Bug: 5318492 Change-Id: I3f0e01b0fb665a34e44d88ad9f0f54a5d990060b
isplayHardware.h
WComposer.cpp
WComposer.h
|
fb4d5d5726c172adbe62341d99a2148685a98379 |
21-Sep-2011 |
Mathias Agopian <mathias@google.com> |
improve hwc dumpsys we now log the buffer's format Change-Id: I9d3ad8018e884240a153de3baefb6331cb014d0f
WComposer.cpp
|
22da60c3e64cd57535cbba063c07127814a2b52f |
09-Sep-2011 |
Mathias Agopian <mathias@google.com> |
Improve SF dumpsys output wrt HWC Change-Id: Ibdb7930fa3b521bfd3f44750ed98cfd75f9a01fe
WComposer.cpp
WComposer.h
|
7ee4cd5556cef1878e1d4729f1b389f186311027 |
02-Sep-2011 |
Mathias Agopian <mathias@google.com> |
fix a bug that caused the off animation to not show sometimes this happened when the overlays were in use, since the animation is rendered in the FB and the FB is not used. we now have a way to turn hwc off temporarily. Change-Id: I3385f0c25bb9cc91948e7b26e7cd31ed18c36ace
WComposer.cpp
WComposer.h
|
c7d14e247117392fbd44aa454622778a25c076ae |
02-Aug-2011 |
Mathias Agopian <mathias@google.com> |
Add a h/w composer API to allow the HAL to trigger a redraw This is useful in various situations, for instance if the HAL wants to change its compositing strategy. Bug: 4488017 Change-Id: I5afc14e5917c6db7926d7417d48677d5aba50caa
isplayHardware.cpp
isplayHardware.h
isplayHardwareBase.h
WComposer.cpp
WComposer.h
|
6163091a2c366f8311fc3ee627dc7deb9681236e |
07-Jul-2011 |
Mathias Agopian <mathias@google.com> |
Fix EGLUtils::selectConfigForPixelFormat() - renderscript now calls EGL directly instead of relying on this function - surfaceflinger also does its own EGLConfig selection - selectConfigForPixelFormat stays for legacy reason (many tests use it) but it now only tries to match the alpha channel of the format rather than the format itself. this will allow implementations who don't support the exact formats defined in the HAL to work properly. Bug: 4998223 Change-Id: Ic664dfc14d5072a514b6f77a115d1521bfc1578f
isplayHardware.cpp
|
1f339ff3875afad128a8e16ee6395c5fad295826 |
02-Jul-2011 |
Mathias Agopian <mathias@google.com> |
don't kill surfaceflinger when system process dies Change-Id: I2d3ed87b590f9ccea3fa4af41d92911de070b315
isplayHardware.cpp
|
d9071ad304b20e6d0ddf8473bc1f12ce3d7feb11 |
20-Apr-2011 |
Mathias Agopian <mathias@google.com> |
Merge "remove support for console in SurfaceFlinger"
|
3d031507e9fe249ca9f51314fe9613ff5ed262bf |
19-Apr-2011 |
Mathias Agopian <mathias@google.com> |
remove support for console in SurfaceFlinger the only supported screen management api now is /sys/power/wait_for_fb_{sleep|wake} Change-Id: I6c7d8d54843da4980b1b38ee3d46cf19be275240
isplayHardwareBase.cpp
isplayHardwareBase.h
|
3d64e738b91b2a4a9d81fae1991e6f6eae9ac8c8 |
19-Apr-2011 |
Mathias Agopian <mathias@google.com> |
fix memory corruption when retriving GL_MAX_VIEWPORT_DIMS Change-Id: I2e0b1eac6dbc6a4ecbbaf31013aa02cf2369fce2
isplayHardware.cpp
isplayHardware.h
|
a5529c8778c2f407f482fc12165aeb76c0f505c2 |
08-Dec-2010 |
Mathias Agopian <mathias@google.com> |
remove support for PUSH_BUFFER surfaces and overlays the same functionality is now supported through the h/w composer HAL, and YUV support in the GPU. Change-Id: I8146605449954b8e8fd7f78810b7d873c2d8f5bf
isplayHardware.cpp
isplayHardware.h
|
1d21a9cafc534c34a2f28c985c4c7aa176d0e67b |
02-Dec-2010 |
Erik Gilling <konkers@android.com> |
surfaceflinger: add support for gralloc dump hooks Change-Id: Ib6f539ed0132b70d040d653c03d52cc04249ac3c
isplayHardware.cpp
isplayHardware.h
WComposer.cpp
|
47a79466a72715d57934016a3cad19444dad0642 |
21-Oct-2010 |
Mathias Agopian <mathias@google.com> |
am fb31036f: am 583fefc8: Merge "Use the context_priority extension when present." into gingerbread Merge commit 'fb31036fd844444c395a2ae9c97439eec9f774e4' * commit 'fb31036fd844444c395a2ae9c97439eec9f774e4': Use the context_priority extension when present.
|
3c85e4ad5a14a49fffcd458886cf7519276daed5 |
21-Oct-2010 |
Mathias Agopian <mathias@google.com> |
Merge "Use the context_priority extension when present." into gingerbread
|
e33a35f02576b482a5ac4891a78f6e72fb4c0dea |
15-Oct-2010 |
Mathias Agopian <mathias@google.com> |
am 5bfa3a34: am 011b5bcc: Merge "implement part of [3094280] New animation for screen on and screen off add support for screen on animation" into gingerbread Merge commit '5bfa3a34eaef759c3ec4def76f646eb1c0bf997f' * commit '5bfa3a34eaef759c3ec4def76f646eb1c0bf997f': implement part of [3094280] New animation for screen on and screen off
|
503d2d4a08370209dc83330bd00997ba9512f46f |
14-Oct-2010 |
Joe Onorato <joeo@google.com> |
am 9a12a3c8: am ba799098: Merge changes I76513387,I335fb671 into gingerbread Merge commit '9a12a3c8d4bb20042cf69e07d268e3a04ac71f96' * commit '9a12a3c8d4bb20042cf69e07d268e3a04ac71f96': Remove dead code, and make the animation a setting. turn off the electron beam
|
9daa5c9b9dd286cbbf5d43f7e45a5e9e4048e855 |
13-Oct-2010 |
Mathias Agopian <mathias@google.com> |
implement part of [3094280] New animation for screen on and screen off add support for screen on animation Change-Id: If50cf52ae04b95b42da7d74cf7fa96d5cb54d238
isplayHardwareBase.cpp
|
59119e658a12279e8fff508f8773843de2d90917 |
11-Oct-2010 |
Mathias Agopian <mathias@google.com> |
turn off the electron beam Change-Id: I335fb6719f1d5a3f1c6f37a046fd1c2c4ed2bbc6
isplayHardwareBase.cpp
isplayHardwareBase.h
|
67226814e1b6d1c02079635608444e73ec658837 |
12-Oct-2010 |
Mathias Agopian <mathias@google.com> |
Use the context_priority extension when present. Change-Id: I12eadf1e32d576de5d811fba44afa73263e13eef
isplayHardware.cpp
|
58959343dbdb6157fa5f5463262d4842b8954353 |
07-Oct-2010 |
Mathias Agopian <mathias@google.com> |
Fix a null dereference Change-Id: I3df446b90c1607782778749de7ba0f8c00698c33
WComposer.cpp
|
8372785879d329f592f6883620b5a32d80d74691 |
24-Sep-2010 |
Mathias Agopian <mathias@google.com> |
dump HWC state in dumpsys Change-Id: Ifbb38ca1ac9685776250e01c8d02021b35af72cf
WComposer.cpp
WComposer.h
|
c479e18db0216f7096fefe85ffa71ab00329aef3 |
15-Sep-2010 |
Mathias Agopian <mathias@google.com> |
resolved conflicts for merge of 48a86240 to master Change-Id: I2305fef9f4dd46183337217d822df3c675b6b6e5
|
35b48d10bc9e064201d3d54d2d476314684a7a05 |
14-Sep-2010 |
Mathias Agopian <mathias@google.com> |
Add logging of various important graphics events There are 16 events logged in the event log: SF_APP_DEQUEUE_BEFORE SF_APP_DEQUEUE_AFTER SF_APP_LOCK_BEFORE SF_APP_LOCK_AFTER SF_APP_QUEUE SF_REPAINT SF_COMPOSITION_COMPLETE SF_UNLOCK_CLIENTS SF_SWAP_BUFFERS SF_REPAINT_DONE SF_FB_POST_BEFORE SF_FB_POST_AFTER SF_FB_DEQUEUE_BEFORE SF_FB_DEQUEUE_AFTER SF_FB_LOCK_BEFORE SF_FB_LOCK_AFTER all events log the buffer conserned and a timestamp in microseconds. by default the logging is not enabled, to turn it on: adb shell service call SurfaceFlinger 1006 i31 1 adb shell setprop debug.graphic_log 1 The effect is immediate in SurfaceFlinger, but applications need to be restarted. Change-Id: Ifc2e31f7aed072d9a7dede20ff2ce59231edbec1
isplayHardware.cpp
isplayHardware.h
|
f5f2712854599b4970643c6000fe6ae950a08ba9 |
09-Sep-2010 |
Antti Hatala <ahatala@nvidia.com> |
surfaceflinger: give hwcomposer a chance to release buffers Change-Id: I605fa779702022865dd58df3b36f37c2644ade36
isplayHardware.cpp
WComposer.cpp
WComposer.h
|
000ca8fa9a1a92aa2f132ba41d11ece6d01cdadd |
18-Aug-2010 |
Mathias Agopian <mathias@google.com> |
revert hwcomposer HAL changes. DO NOT MERGE. This reverts commit: 94364b91a2894bf037b8beb027132fbb812e1434 f8e705dea48f77f1c2532fdbadd4997dd1851af0 b59beb5ca68d0228f60dda60d85e2d0226b33215 e0d5f5bcf5a8b26f4ad75f549cbf380b2c9faf20
isplayHardware.cpp
isplayHardware.h
WComposer.cpp
WComposer.h
|
45721773e1a68e96da4b6cc04cef276bae7ca3e9 |
13-Aug-2010 |
Mathias Agopian <mathias@google.com> |
Fix a couple issues with the new hwcomposer HAL - we now clear the framebuffer upon request from the HAL - the HAL list size could get out of sync with reality - there was also an issue where sometime we could run past the list Change-Id: Ic3a34314aed24181f2d8cc787096af83c046ef27
WComposer.cpp
WComposer.h
|
f1352df47fe20aed23c216a78923c7d248f2bb91 |
12-Aug-2010 |
Mathias Agopian <mathias@google.com> |
should fix sim build, hopefully Change-Id: I5390bd34dcca36fef43b5169386fff1b04cc842b
WComposer.cpp
|
a350ff98692b3a50cad5cc93f9f83221242ca86a |
11-Aug-2010 |
Mathias Agopian <mathias@google.com> |
call into hwcomposer HAL when present Change-Id: I70f31c69a9436a43860e78977442863ecba6d27b
isplayHardware.cpp
isplayHardware.h
WComposer.cpp
WComposer.h
|
81bac09fa6b01dd1495644d9c825c3666762fced |
15-Jul-2010 |
Mathias Agopian <mathias@google.com> |
move native services under services/ moved surfaceflinger, audioflinger, cameraservice all native services should now reside in this location. Change-Id: Iee42b83dd2a94c3bf5107ab0895fe2dfcd5337a8
isplayHardware.cpp
isplayHardware.h
isplayHardwareBase.cpp
isplayHardwareBase.h
|