summaryrefslogtreecommitdiffstats
path: root/services/surfaceflinger/SurfaceFlinger.h
Commit message (Collapse)AuthorAgeFilesLines
* Remove deprecated BufferQueue constructorDan Stoza2014-03-181-1/+1
| | | | | Bug: 13415624 Change-Id: I9fe15e45daa7351f1db34ee75bfee6f19cb347d3
* Revert "Implement video plane layer"Wonsik Kim2014-03-171-4/+0
| | | | | | This reverts commit f837c93a1b392dbc4f7099d0c4fb723e32ca438e. Change-Id: I6a1aa9ad0aca023267dc53d19c950b1535123ca7
* Implement video plane layerWonsik Kim2014-02-271-0/+4
| | | | | Binding with video source will follow. Change-Id: Ic14e9757f5b61f4055cbeda47c1bafae0a621abb
* Allow disabling layer rotation during screenshotsDan Stoza2014-02-141-3/+5
| | | | | | | | Add the ability to ignore layers' transformation matrices during screenshot capture, which will allow the window manager to capture unrotated images for recents during the device rotation animation. Bug: 11805195 Change-Id: I854d87bc84ca06ef9a054a454af1c080ee66fbb8
* am 4c37d088: am 6c7dcfa9: am 662d3134: Merge "Move EGLConfig selection to ↵Jesse Hall2014-01-031-6/+0
|\ | | | | | | | | | | | | RenderEngine" * commit '4c37d0886ca06c290e205cad2798406361bbbf53': Move EGLConfig selection to RenderEngine
| * Move EGLConfig selection to RenderEngineJesse Hall2013-12-231-6/+0
| | | | | | | | | | | | Bug: 12230666 Change-Id: I8d1111a7e0fd9d9e2525e6a80da8ce46d7dd085d Signed-off-by: Jesse Hall <jessehall@google.com>
* | am bbfbe93c: am 0a645cc5: SurfaceFlinger: give SF its own vsync phaseJamie Gennis2013-10-151-0/+1
|\ \ | |/ | | | | | | * commit 'bbfbe93c0d2d6c7818e23219d2925f02ddf5bd92': SurfaceFlinger: give SF its own vsync phase
| * SurfaceFlinger: give SF its own vsync phaseJamie Gennis2013-10-151-0/+1
| | | | | | | | | | | | | | | | This change allows SurfaceFlinger to run at a different vsync phase offset from that used by external listeners. Bug: 11175503 Change-Id: I561c53a5659fa6dc1e3e4ae30340f3c1a6adceb4
* | am 47c772e8: am d1700756: SurfaceFlinger: Add EventControlThreadJamie Gennis2013-10-151-1/+2
|\ \ | |/ | | | | | | * commit '47c772e8ec28eb0a3df9c8edd252f292c7c8e152': SurfaceFlinger: Add EventControlThread
| * SurfaceFlinger: Add EventControlThreadJamie Gennis2013-10-151-1/+2
| | | | | | | | | | | | | | | | | | | | This change adds a new thread for calling HWComposer's eventControl asynchronously. The DispSync-based vsync approach ends up enabling and disabling HWComposer's vsync callbacks at arbitrary times, and some HWComposer implementations do not have these calls optimized. Bug: 11175503 Change-Id: I719be82bd200b391c61d40863b991c7b59acdfd6
* | resolved conflicts for merge of e94d204a to masterJesse Hall2013-10-151-2/+3
|\ \ | |/ | | | | Change-Id: Idb2030dbb25a2e4b972492587558b25a305e68bd
| * Disable hardware vsync when blanking the screenJesse Hall2013-10-141-2/+3
| | | | | | | | | | Bug: 11220224 Change-Id: I99d0a42e1a6bb0aaf89706f6d100e9ef2a5deaa4
* | resolved conflicts for merge of 790b6d09 to masterJamie Gennis2013-10-081-0/+12
|\ \ | |/
| * SurfaceFlinger: SW-based vsync eventsJamie Gennis2013-10-071-0/+12
| | | | | | | | | | | | | | | | | | | | 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
* | am 92d7c3ee: am b65f32eb: Fix two EGLConfig selection bugsJesse Hall2013-10-011-2/+2
|\ \ | |/ | | | | | | * commit '92d7c3ee03109cf2d465a103b828b7d7d3ee9848': Fix two EGLConfig selection bugs
| * Fix two EGLConfig selection bugsJesse Hall2013-09-301-2/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | This fixes two bugs introduced by Change-Id: Ia8cc084c02a0e3de910def024da8a08d02bbd89d (a) There is no invalid EGLConfig value, in particular zero is valid. Checking return values of eglGetConfigs and eglChooseConfig is the only way to determine success. (b) The "simple" EGLConfig query used as the emulator fallback should not include EGL_RECORDABLE; the emulator doesn't have it. Bug: 10935622 Change-Id: Ib798a24e7cf06a679811c46eaa45d39174a715ec
* | am 754bad45: am d555684c: reinstate black-screenshot debugging codeMathias Agopian2013-09-201-1/+1
|\ \ | |/ | | | | | | * commit '754bad4534e9a2de8b4e3ecbe097993c71246f91': reinstate black-screenshot debugging code
| * reinstate black-screenshot debugging codeMathias Agopian2013-09-191-1/+1
| | | | | | | | | | | | | | turned off by default. Bug: 10809349 Change-Id: I3e6b8c7860e6b0e122b8f07de4020967cd1f005c
* | am f589dd29: am e2a3e872: Merge "Fix GLES context version selection" into ↵Mathias Agopian2013-09-201-1/+2
|\ \ | |/ | | | | | | | | | | klp-dev * commit 'f589dd2915587994d3dd36eff2191962fe0b71c0': Fix GLES context version selection
| * Fix GLES context version selectionMathias Agopian2013-09-181-1/+2
| | | | | | | | | | | | | | | | Explicitly selects an ES 2.0 config first, then an ES 1.x config, before attempting the fallback path for the emulator. Bug: 10820214 Change-Id: Ia8cc084c02a0e3de910def024da8a08d02bbd89d
* | Add API for pushing color transforms to SurfaceFlingerAlan Viverette2013-09-121-0/+4
|/ | | | | BUG: 9057596 Change-Id: Iea0953366eac875b7968897a75472c25a137edb5
* color blindness enhancementMathias Agopian2013-09-041-1/+3
| | | | | | | | | | | | | | | | | | | | | | | | | This is an attempt at improving the experience of users with color vision impairement. At this time this feature can only be enabled for debugging: adb shell service call SurfaceFlinger 1014 i32 PARAM with PARAM: 0 : disabled 1 : protanomaly/protanopia simulation 2 : deuteranomaly/deuteranopia simulation 3 : tritanopia/tritanomaly simulation 11, 12, 13: same as above w/ attempted correction/enhancement The enhancement algorithm tries to spread the "error" such that tones that would otherwise appear similar can be distinguished. Bug: 9465644 Change-Id: I860f7eed0cb81f54ef9cf24ad78155b6395ade48
* SurfaceFlinger now runs in the process's main threadMathias Agopian2013-08-201-8/+8
| | | | | | | | | | it used to spawn its own thread and return the main thread to the binder thread pool -- this was confusing the naming of things in the kernel. Bug: 10331839 Change-Id: I2d13a6d73409a38109300fcbe6a04b4c41cb5d00
* Use new HWC display type/count constants.Jesse Hall2013-08-161-1/+1
| | | | Change-Id: I774d0c68906ac6dc69268f708c30a6b0868b8816
* SurfaceFlinger now uses GLES 2.x when availableMathias Agopian2013-08-131-22/+15
| | | | | | Bug: 8679321 Change-Id: I2b152d01fb4e2de2ea9fe87f1ddbd6826d7520d7
* Add ISurfaceComposer::destroyDisplayJesse Hall2013-08-081-0/+1
| | | | | Bug: 10191053 Change-Id: Ia89286f95421344a60ffedaaca5825c4e3cd7f9e
* remove support for glReadPixels screenshot pathMathias Agopian2013-08-061-3/+2
| | | | | | | this was only needed on some chipset we're not supporting in KLP. Change-Id: I2e8fc07f135030bd61d2e241a8e426f1a4316425
* surfaceflinger: add frame duration loggingJamie Gennis2013-07-231-0/+6
| | | | Change-Id: Ib414a45e7e191f23a2726cbbbeb606e9ce68a3b5
* Merge "Refactor SF. Move all GL operations in their own class."Mathias Agopian2013-07-081-22/+7
|\
| * Refactor SF. Move all GL operations in their own class.Mathias Agopian2013-07-031-22/+7
| | | | | | | | | | | | | | | | | | | | this is the first step to add support for GLES 2.x, this change breaks the dependency of SF on GLES 1.x by moving all operation into their own class. Bug: 8679321 Change-Id: I0d2741eca2cefe67dfd9cf837cac10c4d126928b
* | Debug code for detecting all black pixels screenshotsMathias Agopian2013-07-081-0/+3
|/ | | | | Bug: 9120292 Change-Id: If60db32524db973bb1f905ba3cb415c2a1cd7e71
* Prevent opaque windows from making framebuffer translucentJesse Hall2013-05-241-0/+13
| | | | | | | | | To keep the code readable now that we have four different texenv configurations, this change separates the decisions about what configuration to use from the GL calls to set up the configuration. Bug: 8963244 Change-Id: Ia07a306a7809ba8f93493d0160ccbd509e948581
* make all libsurfaceflinger and libsensorservice symbols's visibility hiddenMathias Agopian2013-05-091-2/+2
| | | | | | | we only export the main entry-point. this saves about 150KB. Change-Id: I55eb2b6705386fdfa43860deb62f9cdd2a0982aa
* use a Framebuffer Object to render all screenshotsMathias Agopian2013-04-291-8/+2
| | | | | | | | | this allows us to render into a buffer with a pixelformat of our own choice; this is much faster on all platform. Bug: 8582615 Change-Id: I61298fc8e43fa6f92044c5123955cb5c7897dab7
* clean-up/simplify all dump() APIsMathias Agopian2013-04-221-4/+5
| | | | | | | remove the scratch buffer parameter and use String8::appendFormat() instead. Change-Id: Ib96c91617c8e7292de87433d15cf6232b7d591b0
* Improve screenshot performance on some devices (DO NOT MERGE)Mathias Agopian2013-04-111-0/+6
| | | | | | | | | | | | this affects devices that need a glReadPixels(). We use a FBO instead of a GlConsumer as an intermediate render target, this saves 2 calls to eglMakeCurrent(). On Galaxy Nexus this allows us to go from ~135ms to ~35ms for recent's screenshots. Bug: 8582615 Change-Id: I6b25291ecc235f1927579bbb2db3c731e985c6e8
* Clean up HWC state when releasing a DisplayDeviceJesse Hall2013-03-271-3/+3
| | | | | | | | | | 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
* Fix dump when virtual display existsJesse Hall2013-03-221-1/+1
| | | | | | | | SurfaceFlinger::getLayerSortedByZForHwcDisplay only worked for builtin displays. Bug: 8384764 Change-Id: I989275407fb2f06d166a6e70321c3211e27e562e
* make sure screenshot are in a format supported by Bitmap.javaMathias Agopian2013-03-221-0/+1
| | | | Change-Id: I0fb9cc4088f9c1fd27e6c017b0a7c5617adb4660
* only use glReadPixels() when needed when taking screenshotsMathias Agopian2013-03-211-0/+1
| | | | | | | | | some drivers don't support this yet, so we use a system property to enable the glReadPixels "workaround" for them: ro.bq.gpu_to_cpu_unsupported=1 Change-Id: I74d6a3a8f0cee8d5a507b72c760cf247e39195e0
* rework how we take screenshots for a CPU consumerMathias Agopian2013-03-191-10/+6
| | | | | | | | | | | | | | | | | | | | | | | | | | We're not using IMemoryHeap as a transport anymore, instead we're providing a CpuConsumer and use the IGraphicBufferProducer version of the screenshot API. However, some GPU drivers don't support properly a GPU to CPU path, to work around this, we use a temporary BufferQueue on the server side for the GL rendering, and we use glReadPixels into the CpuConsumer (we're now using a CPU to CPU path which is always supported). Currently this "wrapping" is always performed, but it can be bypassed on devices that support the GPU to CPU path. This also addresses a DoS attack vector on SurfaceFlinger, where an application could consume all of SF's filedescriptors by creating a lot of screenshots in a row. Bug: 8390553 Change-Id: I9e81514c2a7711b9bb393f74305be7d2abe08f1c
* get rid of purgatory and fix QueuesToWindowComposer queryMathias Agopian2013-03-141-8/+6
| | | | | | | | | | | | | the purgatory list wasn't needed anymore; in fact it had no effect as buffer life-time management is now handled by the BufferQueue. For QueuesToWindowComposer we keep a list of wp<> on the IBinder for IGraphicBufferProducers we hand over to clients so we can easily check if an IGraphicBufferProducer is ours. We clean-up the list when our IGraphicBufferProducer are destroyed. Bug: 8349142 Change-Id: I1aa06652ade8c72d0004a3f5e6c3d6e8a82fc2ae
* get rid of ISurfaceMathias Agopian2013-03-121-8/+12
| | | | | | | | | | | | ISurface was only used to get the IGraphicBufferProducer from a Layer. It's now replaced by a BBinder subclass / IBinder and is only used as a handle to the surface, to both refer to it and manage its life-time. Also cleaned-up a bit the ISurfaceComposer interface and "create layer" code path. Change-Id: I68d0e02d57b862cffb31d5168c3bc10cea0906eb
* Get rid of LayerBase.Mathias Agopian2013-03-051-12/+10
| | | | | | | | The functionality of LayerBase and Layer is folded into Layer. There wasn't a need for this abstraction anymore. Change-Id: I66511c08cc3d89009ba4deabf47e26cd4cfeaefb
* fold LayerBaseClient into LayerBaseMathias Agopian2013-03-051-4/+2
| | | | Change-Id: Ic745136522df59c42f0885fd969e75ea55d09f01
* Remove support for ScreenshotLayerMathias Agopian2013-03-051-5/+0
| | | | Change-Id: I5b571a4cf3faa77d2c4aca916fa4bd00a1065bb9
* rework screenshot API and implementationMathias Agopian2013-03-011-12/+16
| | | | | | | | | | | | | | | | | - SurfaceFlinger now supports to take a screenshot directly into an IGraphicBufferProducer - reimplement the IMemoryHeap screenshot on top of the above - reimplement LayerScreenshot such that its BufferQueue is directly used as the destination of the screenshot. LayerScreenshot is now a thin wrapper around Layer Bug: 6940974 Change-Id: I69a2096b44b91acbb99eba16f83a9c78d94e0d10
* Refactoring: Rename SurfaceTextureClient to SurfaceMathias Agopian2013-02-141-1/+1
| | | | Change-Id: Ibed34175ae273608393aaa5f0a7df207dc40d709
* get rid of Surface identity and tokenMathias Agopian2013-02-131-4/+3
| | | | | | we use the IBinder instead. Change-Id: I4aa0b58869ba43f19980013620051e5a261b062d
* SurfaceFlinger: add win anim frame time trackingJamie Gennis2013-02-081-2/+5
| | | | | | | | This change makes the 'dumpsys SurfaceFlinger --latency' command with no extra args dump the frame timestamp data for the most recent frames that SurfaceFlinger generated that included window animation transaction changes. Change-Id: I8bded1ea08a4cddefef0aa955401052bb9107c90