summaryrefslogtreecommitdiffstats
path: root/services/surfaceflinger/DisplayHardware
Commit message (Collapse)AuthorAgeFilesLines
* SF: Add support to draw S3D framebuffer targetfeifanz2016-07-311-0/+1
| | | | | | | | Add support to draw S3D framebuffer target in case HWC driver can not handle due to resource or capability issue. Change-Id: I536fa4a03e246d51891045b692d5dc5be88f2adf CRs-fixed: 999055
* surfaceflinger: Add support for Exynos BGRA mixerChristopher N. Hesse2016-04-271-0/+16
| | | | Change-Id: Ibc9f784b35a7bd6d8cc6b13ff68b12418cce98c5
* vds: Allocate Framebuffer target bufferManoj Kumar AVM2016-03-131-1/+9
| | | | | | | | | | Increase frame buffer surface buffers to 3. Call allocateBuffers from the producer so that buffers are allocated. With out this, BufferQueue implementation will only allocate 1 buffer CRs-Fixed: 930504 @Buganizer: 26778657 Change-Id: Id0cadeb78957273d670d63f9956a09454b45eb69
* SurfaceFlinger: Move Extended SF classes to same repositoryArun Kumar K.R2016-01-081-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Move the ExSurfaceFlinger, ExLayer, etc., classes to this repository, to avoid dependency accross projects with static linking The following commits are included in this: commit 04f501b31f627e47ae540b5160b2f86b7adbd921 Author: Baldev Sahu <bsahu@codeaurora.org> Date: Wed Nov 25 18:05:51 2015 +0530 display-fw: Properly initialise mIsGPUAllowedForProtected flag - This flag need to be initialize to false when layer is created. Change-Id: Ie3df40ffc4240c33883f19ecbef6428f7c539b07 CRs-fixed: 942102 commit 09032188751356db295bc5467133ec484dc536cd Author: Arun Kumar K.R <akumarkr@codeaurora.org> Date: Tue Oct 20 10:22:51 2015 -0700 display-fw: Enable checking for INTERNAL_ONLY private flag Check for INTERNAL_ONLY private flag and return correct values from the function isIntOnly Change-Id: I61b44f636412e0ad93e1b3ff18e4accdf90eeafe CRs-fixed: 927880 commit f687ac25b3482b92da3c252d29b65e850cca3ce1 Author: Arun Kumar K.R <akumarkr@codeaurora.org> Date: Thu Oct 15 16:37:11 2015 -0700 display-frameworks: Include libqdutils only for target builds Featurize including libqdutils for targets which uses QCOM_BSP, helps in resolving compilation for emulator builds Change-Id: I39639c3100eb20dd24d2a875bb0e9bc82d2b2d1f commit 4ec765e01be506a8083980fc746a1737bbac4bf2 Author: Arun Kumar K.R <akumarkr@codeaurora.org> Date: Wed Oct 7 18:33:34 2015 -0700 display-fw: Disable rotation animation on secondary displays - Set the animating flag on layer during animation which is used as hint to disable rotation animation on secondary displays. - Set sys.disable_ext_animation to enable the feature - Remove unused definitions in the extended hwc header Change-Id: I7b72c7b605930ea189e047fec17ed18b17d46fdf CRs-fixed: 922304 commit 6998bbdfd7af3126b64897b16b6961e84952601b Author: Baldev Sahu <bsahu@codeaurora.org> Date: Thu Jul 30 16:01:15 2015 +0530 display-frameworks: Extend support for MDP3 - Add support for HWC_BLIT - Allow GPU to compose widevine level 3 Change-Id:I11e03ccd0842d019e85d0c29bc5b7be559fccbaa commit 2fa7aa1684c0162b8226c4327c86c6eaf6b76101 Author: Manoj Kumar <manoj@codeaurora.org> Date: Thu Aug 20 13:52:15 2015 -0700 display-frameworks: Override mOutputUsage with sink Usage flags mOutputUsage flags contain default usage flags and doesnt reflect sink usage flags. Override mOutputUsage with sink usage flags. This change is needed to support WFD Secure usecase. Change-Id: I14d8812049f635a8ebe6a944783e0ec7f8f80b1f commit 09da768794c8c6acd786d73239ed5a739695b8cb Author: Raj Kamal <rkamal@codeaurora.org> Date: Mon Jul 20 10:46:27 2015 +0530 display-frameworks: Extend the classes defined in SF Add support for custom classes ExSurfaceFlinger, ExLayer, ExHWComposer and ExVirtualDisplaySurface Change-Id: Iab8c4835faaad9b436bbd34d38702741eb0cf12d Change-Id: Ie400c94ccc77fc379ffa256af03a9e42ba5decaa
* Merge branch 'LA.BF64.1.2.2_rb4.7' of ↵Steve Kondik2015-11-162-3/+19
|\ | | | | | | | | | | git://codeaurora.org/platform/frameworks/native into cm-13.0 Change-Id: Ib29f744a0f7baac5d5ad8a7e9c5c14303b6aeec1
| * SurfaceFlinger: Disable rotation animation on Secondary displaysArun Kumar K.R2015-10-262-3/+19
| | | | | | | | | | | | | | | | | | - Add support to set animating layer for HWCLayers - After hwc_prepare, dont override the compType of a layer to HWC_FRAMEBUFFER if its for non-primary displays Change-Id: Iac462778ce5fb9016290846146e62f80dcfafd5c CRs-fixed: 922304
* | surfaceflinger: Set max acquired buffer countNaseer Ahmed2015-11-071-0/+1
| | | | | | | | | | | | | | | | | | If triple framebuffers are enabled, the number of acquired buffers isn't increased by default. Set the count to one less than the max buffers to make sure all three buffers come into play. Change-Id: I8fae1b5564fbea598e415a86b0a21c3449c92d87
* | Merge tag 'android-6.0.0_r26' into HEADRicardo Cerqueira2015-11-052-3/+25
|\ \ | | | | | | | | | | | | | | | | | | | | | | | | Android 6.0.0 release 26 Conflicts: include/android/input.h Change-Id: Ifa374c6d3055be3b8a5d60967f8b4c0043da739b
| * | SF: Add colorTransform to DisplayInfoDan Stoza2015-08-312-3/+25
| | | | | | | | | | | | | | | | | | | | | | | | | | | 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
* | | Merge branch 'm' of git://codeaurora.org/platform/frameworks/native into cm-13.0Steve Kondik2015-10-212-2/+8
|\ \ \ | | |/ | |/| | | | Change-Id: I7830f596b2e7da809a759491d8115ff158c43734
| * | SurfaceFlinger: Add support for MDP3Baldev Sahu2015-10-072-2/+8
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This change is porting of following commits related to MDP3 1) SurfaceFlinger: Change to support framebuffer flip for 2D blitters - Surfaceflinger does not flip framebuffers when there are no layers marked for HWC_FRAMEBUFFER - This change checks for the HWC_BLIT flag and will request a flip to a new FB_TARGET buffer even if there are no FRAMEBUFFER layers "Change-Id: I1cb44389a05c9ec049d7f0d39c288feccb11a91c" 2) SF: Avoid wormhole clear for BLIT calls - Do not call GPU clear from SF when composition type is BLIT as it'll be taken care in HAL. "Change-Id: Ia613eb9b824c6484ecc8c8fa4ee883545d8541b8" 3) surfaceflinger: Allow gpu to render widevine level3 - Allow gpu to render widevine level3 but keep blocking screen shots. "Change-Id: I914232a062acbb7b17901dbf2b414973230e59d9" Change-Id: I35eef9eb1597af21c195e07d5fe4c0c73ab3a269
* | | surfaceflinger: Clean up use of QC extended APISteve Kondik2015-10-121-0/+2
|/ / | | | | | | Change-Id: I1256605e63e90f3baaa213453246fb0e44e0c770
* | SurfaceFlinger: Add dim layer information into HWC layer.Dileep Marchya2015-10-062-0/+15
| | | | | | | | | | | | | | - Set dim layer flag = 0x80000000 to send dim layer hint to HWC. - Clear HWC_SKIP_LAYER flag when dim layer flag is set. Change-Id: I56904c65fb487e6e89d4c057015443730d727299
* | SurfaceFlinger: Add support for DisplayUtilsRaj Kamal2015-10-063-3/+15
| | | | | | | | | | | | | | | | Add DisplayUtils class which uses the custom implementations of ExLayer, ExSurfaceFlinger, ExHWComposer, and ExVirtualDisplaySurface classes if needed Change-Id: Ibdd8da5d3d0d602f42b76a15d0994c6aa98bee3f
* | SurfaceFlinger: Support get/set ActiveConfigsTatenda Chipeperekwa2015-10-062-3/+27
|/ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This includes the following two changes squashed into one and retaining the change I182f41edbaf9226fc62d6d17ee964998cd9f21f7 sf: Fixes for resolution change in SurfaceFlinger 1. Use active config from HWC when querying display attributes When we query the display attributes we should use the active config as reported by HWC in cases where HWC version is 1.4. In all other cases we should revert to the default config, config 0, as the active config. 2. Set/update the display config if HWC config change was successful The new config should only be applied if HWC succeeded in changing the active config. This would otherwise cause failure or undefined behavior if the client sets an invalid/unsupported display config. 3. Set the active config at display creation time When a new display device is added update the active config by querying HWC. Change-Id: I182f41edbaf9226fc62d6d17ee964998cd9f21f7 sf: Initialize active config for non-virtual displays at boot time When a non-virtual display device is added at boot time, update the active config by querying HWC otherwise the default config (config 0) will be used. Change-Id: I90f42fa1d20ed6176c4be464a10ae69a2f6a6d55 Change-Id: I182f41edbaf9226fc62d6d17ee964998cd9f21f7
* sf: Fix incorrect state reporting in dumpsysManoj Kumar AVM2015-06-122-0/+4
| | | | | | | | | | | | | | 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)
* libgui/SurfaceFlinger: Add getConsumerNameDan Stoza2015-06-082-0/+5
| | | | | | | | | 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
* libgui: Add generation numbers to BufferQueueDan Stoza2015-06-032-0/+6
| | | | | | | | | | | | | | | 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
* Add hotplug support for primary display.Michael Lentine2015-05-221-2/+5
| | | | | | | | | 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
* surfaceflinger: Fix range check for getFormatAjay Dudani2015-05-071-1/+1
| | | | | | | Fix potential buffer overflow error in getFormat with indices greater than MAX_HWC_DISPLAYS. Change-Id: I5e5b69d8d043e900f5e33ca9a62e94ae5f857b68
* libgui: Allow an IGBProducer to disable allocationDan Stoza2015-04-232-0/+5
| | | | | | | | | | | | | | 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
* SurfaceFlinger: Pass surface damage to HWCDan Stoza2015-04-152-0/+28
| | | | | | | | | 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
* DO NOT MERGE SurfaceFlinger: Stop using IGBC::BufferItemDan Stoza2015-03-192-3/+6
| | | | | | | | | | 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
* DO NOT MERGE Add dataSpace to buffer queues; remove old format enums.Eino-Ville Talvala2015-03-192-4/+4
| | | | | | | | | | | | | | | - 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
* libgui: Enable -Weverything and -WerrorDan Stoza2015-03-182-7/+7
| | | | | | | | | | | | | 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
* am 5588d900: Merge "Enable clang for libui/libgui/surfaceflinger"Dan Albert2014-12-055-25/+5
|\ | | | | | | | | * commit '5588d9000cd1ef217185c9001d6b5ecd84db9741': Enable clang for libui/libgui/surfaceflinger
| * Enable clang for libui/libgui/surfaceflingerDan Stoza2014-12-045-25/+5
| | | | | | | | | | | | | | | | Enables clang and C++11 for libui/libgui/surfaceflinger, and eliminates all compile-time warnings. Change-Id: Ie237fdb5ae44f2bfcddaa884f9c65ec3f08ae50f (cherry picked from commit f10c46ef855b6410b20ebd8b1351d4d78d8eca8e)
* | resolved conflicts for merge of 07dffa18 to lmp-mr1-dev-plus-aospAndreas Gampe2014-11-131-0/+1
|\ \ | |/ | | | | Change-Id: I42d8bc291f4f48f3098754b076889159c4b20e41
| * Frameworks/native: Wall Werror in surfaceflingerAndreas Gampe2014-11-132-1/+2
| | | | | | | | | | | | Turn on -Wall -Werror in services/surfaceflinger. Fix warnings. Change-Id: Ifef830300d9d4bc657d8f1257c02bfe8c2b4d9c5
| * am bacc28ef: surfaceflinger: Use landscape resolution for default dpiJesse Hall2014-09-291-5/+13
| |\ | | | | | | | | | | | | * commit 'bacc28ef1df329f4dc21bae44b09a6c5018af908': surfaceflinger: Use landscape resolution for default dpi
| * \ am fb017a4c: Merge "Fix clang warnings about struct vs. class."Dan Albert2014-09-101-1/+1
| |\ \ | | | | | | | | | | | | | | | | * commit 'fb017a4c3b23741f737093c3fcb78087bbe5e73c': Fix clang warnings about struct vs. class.
| | * | Fix clang warnings about struct vs. class.Dan Albert2014-09-091-1/+1
| | | | | | | | | | | | | | | | Change-Id: I9f26cd01ac3153efa6d77a4133686842e2d63203
* | | | Add a BufferItem parameter to onFrameAvailableDan Stoza2014-11-072-2/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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
* | | | surfaceflinger: fix -Wunused-parameter warningJesse Hall2014-10-311-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | warning: unused parameter 'mustRecompose' [-Wunused-parameter] Change-Id: I6b8c671189639d851bfa5548742de988d6fa2687 (cherry picked from d2e514f71709e6af3dbc754e59686129737f2300)
* | | | surfaceflinger: fix -Wmismatched-tags warningsJesse Hall2014-10-311-1/+1
| |_|/ |/| | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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)
* | | surfaceflinger: Use landscape resolution for default dpiJesse Hall2014-09-281-5/+13
|/ / | | | | | | | | | | | | | | | | | | | | | | | | | | 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
* | surfaceflinger: Trace HW vsync enableJesse Hall2014-08-251-0/+4
| | | | | | | | | | | | | | | | | | 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
* | Merge "Update currentConfig variable when active display is changed." into ↵Michael Lentine2014-08-221-0/+2
|\ \ | | | | | | | | | lmp-dev
| * | Update currentConfig variable when active display is changed.Michael Lentine2014-08-211-0/+2
| | | | | | | | | | | | | | | Bug: 17182607 Change-Id: I8631c105a9e0fa402a7d9670717becc9857af935
* | | sf: Clear display configs when hot pluggable display is disconnectedNaseer Ahmed2014-08-201-0/+3
|/ / | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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>
* | Change output format to not throw warning on volantis.Michael Lentine2014-08-071-1/+1
| | | | | | | | Change-Id: Id66eb61bdb1ceccfb7aefa0aa70793dac807c257
* | Build fix for printf with int64 and size_tMichael Lentine2014-07-301-2/+2
| | | | | | | | Change-Id: I642584cce7dd43e6d491a49228b0bce047d53354
* | Build fix to use the correct source.Michael Lentine2014-07-301-1/+1
| | | | | | | | Change-Id: If36710be600dd0e15c31682e0343f281baa55627
* | Allow for resizing of Virtual Displays.Michael Lentine2014-07-304-11/+46
| | | | | | | | | | | | | | | | | | | | 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
* | Modified SurfaceFlinger to implment setActiveConfig and getActiveConfig.Michael Lentine2014-07-292-0/+13
| | | | | | | | | | | | | | | | This can be used to change the current display mode of the device. Change-Id: Icdc3fb58389b861dc77b68102083da6f7a96eccb Tested: None (cherry picked from commit 2651fa94635a96d653038fb389a0dd827338f8d3)
* | Turn on support for async cursor update in surfaceflinger.Riley Andrews2014-07-282-0/+28
| | | | | | | | | | | | | | 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
* | Compile libsurfaceflinger with Clang and -std=c++11 [DO NOT MERGE]Jesse Hall2014-07-141-3/+3
| | | | | | | | | | | | | | | | 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
* | Merge "BufferQueue: Add allocateBuffers method"Dan Stoza2014-06-272-0/+8
|\ \
| * | BufferQueue: Add allocateBuffers methodDan Stoza2014-06-202-0/+8
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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
* | | SurfaceFlinger: send VSYNC power hints to IPowerManagerRuchi Kandoi2014-06-182-30/+20
|/ / | | | | | | | | | | | | | | 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