summaryrefslogtreecommitdiffstats
path: root/include/gui
Commit message (Collapse)AuthorAgeFilesLines
* CpuConsumer: lock buffers that could be YUV as ycbcrLajos Molnar2015-01-281-2/+6
| | | | | Bug: 17906609 Change-Id: Ic71af69ec3b19ab1224ed3ad5e0a97c60e81cda6
* Frameworks/native: Fix unused parameter warningAndreas Gampe2014-11-081-1/+1
| | | | | | | Pulled in in hardware/, where -Werror is used. Change-Id: I13fc31d31fe2f623d39c84862b0c95a28813723d (cherry picked from commit a32900deec6284973100a29f7b399d061f82b3a8)
* Add a BufferItem parameter to onFrameAvailableDan Stoza2014-11-076-6/+32
| | | | | | | | | | 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 -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)
* Merge "BufferQueueProducer: Throttle EGL frame production." into lmp-mr1-devJesse Hall2014-10-081-0/+6
|\
| * BufferQueueProducer: Throttle EGL frame production.Eric Penner2014-10-031-0/+6
| | | | | | | | | | | | | | | | | | | | | | Throttling was previously controlled by a combination of the driver and the number of buffers in the queue. This patch makes a more consistent trade-off, which allows two GPU frames pending but not three. More buffering could improve throughput in the case of varying frame times, but this also increases latency. Bug: 17502897 Change-Id: I4ee68019ca94c635294c5959931a555a6c4ef2df
* | Fix sockfd leakage in SensorService.Aravind Akella2014-10-021-0/+1
|/ | | | | | | | | | | | i) Call removeFd() only if the fd in the BitTube has been previously added to the Looper. Use a flag to determine whether the fd has been previously added or not. ii) Increment mPendingFlushEventsToSend after holding a connectionLock. iii) Store the number of acks that are pending in SensorEventQueue and send them all at once. Bug: 17472228 Change-Id: I1ec834fea1112a9cfbd9cddd2198438793698502
* surfaceflinger: add getDisplayStats() methodLajos Molnar2014-09-181-0/+8
| | | | | | | | This is used by media service to schedule video frames at the proper time, based on precise vsync timings. Bug: 14659809 Change-Id: I1a90603f3dc09dca9aa4f90a3aa845fab56e0a5e
* SensorService fixesAravind Akella2014-09-101-1/+1
| | | | | | | | | | | | | | | i) Significant Motion multiple clients fix. Make a copy of mActiveConnections vector before cleaning up SensorEventConnections when one-shot sensors trigger. ii) Maintain a mapping between flush_complete_events and SensorEventConnections to accurately map flush() API calls and corresponding flush_complete_events iii) Remove all references to 1_1 and 1_2 HALs. iv) Dynamically allocate sensor_event buffers in SensorService main threadLoop. Bug: 17412359 Change-Id: If3c3986197660cafef2d2e0b4dc7582e229cf1c4
* Update ScreenshotClient to take advantage of rotation in surfaceflinger's ↵Riley Andrews2014-09-091-0/+4
| | | | | | screencap api Change-Id: I836649d9d5cd5958ce34e47f26f4a36d2d05d24c
* Add rotation to surfaceflingers screen cap.Riley Andrews2014-09-091-1/+9
| | | | | | | | + This is needed so that activity manager does not have to do cpu side rotations when capturing recents thumbnails. Change-Id: If998008e675ad01305db8399fd643cf4608b7025
* SensorService flush fixes.Aravind Akella2014-09-031-1/+1
| | | | | | | | | | i) Fix a possible race condition when adding a pending flush connection to mActiveSensors data structure. ii) Invalidate flush_complete_events as soon as they are consumed by a connection so that they are not used by other connections which are registered for the same sensor. Change-Id: I1491bea8c2081c4aab1feacc60add13b7aa26bb7
* GLConsumer: Fix eglTerminate/eglInit edge case.Eric Penner2014-08-271-1/+3
| | | | | | | | | If a display is terminated and then initialized, we can't detect this using the display itself (it has the same value), but all EglImages still become invalid for the display. This patch detects this during image binding and forces creation of a new EglImage. Bug: 10430249 Change-Id: I75101c50962f21263dca3ec6e241a2e5a3c23dad
* SensorService fixes.Aravind Akella2014-08-191-1/+1
| | | | | | | | | | | | | | | 1) Flush should only be received by the app calling flush(). Maintain a queue of all flush() calls and send flush_complete events in that order. 2) Log warnings for older HALs. Remove batch() calls with DRY_RUN flag. 3) Reallocate event cache when more sensors register and the desired maxCacheSize increases. Clear NEEDS_ACK flag in the buffer whenever there is a write() failure. 4) More dump information. Add wake-up flag, maxDelay and timestamps for sensor events. Bug: 16874778 Change-Id: I195646191059fd31f75f2f07886c0f98bf9b509a
* Tunneled Video Playback supportRachad2014-08-041-0/+1
| | | | | | | | | Added native_window_set_sideband_stream() method to Surface.[h|cpp] Added ConfigureVideoTunnelModeParams OMX configuration structure to HardwareAPI.h Bug: 16132368 Change-Id: I28fa1b9dbe858d93e353e0991098cad45c626bd9
* Have VirtualDisplays send SF resize messages when resizingMichael Wright2014-07-301-0/+1
| | | | Change-Id: I76d15b22099a659450ec875836c9bf2b6584838f
* Turn on support for async cursor update in surfaceflinger.Riley Andrews2014-07-281-0/+1
| | | | | | | 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
* Merge "SensorService performance improvements." into lmp-devAravind Akella2014-07-242-1/+3
|\
| * SensorService performance improvements.Aravind Akella2014-07-242-1/+3
| | | | | | | | | | | | | | | | | | i) Send ack for wake_up sensors on the socket connection instead of using Binder RPC. ii) Cache events per connection in case there are write failures. Compute cache size from FIFO counts of sensors. iii) Send FlushCompleteEvent only for apps that explicitly called flush(). Change-Id: I018969736b7794b1b930529586f2294a03ee8667
* | Merge "GLProducer: Reference count images rather than buffers." into lmp-devEric Penner2014-07-241-25/+58
|\ \ | |/ |/|
| * GLProducer: Reference count images rather than buffers.Eric Penner2014-07-211-25/+58
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | In most cases, EGLImages can be created one-to-one with graphic buffers in slots, but that was difficult due to some special cases: - ReleaseTexImage binds a custom 'unslotted' debug image. - When all slots are freed, we still need to hang on to one. These cases were handled by keeping an additional reference to the 'current' buffer (mCurrentTextureBuf), but we would create new images since we can't reference count them in the same way. This patch uses the same semantics, except that it reference counts the image (an EglImage wrapper class) rather than just buffer. The wrapper class also detects the cases when we need a new EGLImage, and only creates them in those rare cases. Change-Id: I2915761dbe49d2a9bda1f59e60f857543634636b
* | BufferQueue: release mutex while allocating. DO NOT MERGEAntoine Labour2014-07-221-0/+12
|/ | | | | | | | | | | | | | | | BufferQueueProducer::allocateBuffers used to keep the BufferQueueCore mutex while doing the buffer allocation, which would cause the consumer (which also needs the mutex) to block if the allocation takes a long time. Instead, release the mutex while doing the allocation, and grab it again before filling the slots. Keep a bool state and a condvar to prevent other producers from trying to allocate the slots while the mutex is released. Bug: 11792166 Change-Id: I4ab1319995ef892be2beba892f1fdbf50ce0416d (cherry picked from commit ea96044470a29133321c681080870b9d31f81a19)
* Add sticky transform to surfaceflinger.Ruben Brunk2014-07-143-4/+21
| | | | | | | | | | Bug: 15116722 - Adds a sticky transform field that can be set from a SurfaceFlinger client Surface. This transform is added to any transform applied to the Surface. Change-Id: Idaa4311dfd027b2d2b8ea5e2c6cba2da5779d753
* Merge "BufferQueue: Add allocateBuffers method"Dan Stoza2014-06-273-0/+27
|\
| * BufferQueue: Add allocateBuffers methodDan Stoza2014-06-203-0/+27
| | | | | | | | | | | | | | | | | | | | | | | | | | | | 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
* | GLConsumer: Allow creation in detached modeDan Stoza2014-06-251-17/+22
| | | | | | | | | | | | | | | | Adds a constructor that doesn't require a GLES texture name and sets up the GLConsumer in detached mode. Bug: 15616428 Change-Id: Idc9ea2e59baa24bbd959da9fffe0fb71c0aa9818
* | GLConsumer: Stop using default constructor paramsDan Stoza2014-06-241-4/+3
|/ | | | | | | | Removes the dependency on default constructor parameters for GLConsumer so that a different constructor prototype can safely be added. Change-Id: I0da924bbd4c141edbf305598c1be8bc575654680
* Merge "Surface reportingMode for Sensors."Aravind Akella2014-06-121-1/+3
|\
| * Surface reportingMode for Sensors.Aravind Akella2014-06-121-1/+3
| | | | | | | | Change-Id: Iac8dd3408c90eb7d285a2e8043131fab3a7e58fa
* | surfaceflinger: Replace blank/unblank with setPowerModePrashant Malani2014-06-052-15/+7
|/ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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>
* Merge "SurfaceFlinger: Add sourceCrop to screenshot"Dan Stoza2014-05-282-7/+12
|\
| * SurfaceFlinger: Add sourceCrop to screenshotDan Stoza2014-05-232-7/+12
| | | | | | | | | | | | | | | | | | Adds a sourceCrop Rect parameter to screenshot commands, which allows clients to capture only a portion of the screen instead of the whole screen. Bug: 15137922 Change-Id: I629447573cd34ffb96334cde7ba02490b9ea06d8
* | Surface maxDelay and isWakeUpSensor flag in Sensor.java.Aravind Akella2014-05-231-1/+2
|/ | | | Change-Id: Idd1e9045190beeca87b086b272e8cbf0bed05bae
* Enable changing display configurationDan Stoza2014-05-052-5/+29
| | | | | | | | This allows querying and switching display device configurations through the ISurfaceComposer/SurfaceComposerClient interface. Bug: 14320401 Change-Id: I8c22165698950e5da32204c1c4da92122f91a715
* Merge "Enable wakeup sensors."Aravind Akella2014-04-243-2/+7
|\
| * Enable wakeup sensors.Aravind Akella2014-04-233-2/+7
| | | | | | | | | | | | | | | | SensorService should hold a wakelock till the app reads events from a wakeup sensor. Currently drivers hold a wakelock with a timeout while delivering events from a wake up sensor like Significant Motion. This hack can be removed now. Bug: 9774884 Change-Id: If3b5acb99c9cf0cd29012fcfa9d6b04c74133d01
* | Remove deprecated BufferQueue constructorDan Stoza2014-04-221-302/+6
|/ | | | | | | | Finally remove the BufferQueue constructor itself. From now on, all BufferQueues must be created through the createBufferQueue method. Bug: 13415624 Change-Id: I192bf9430265bab761dcd59db1f02c9d0ac4feed
* Merge "BufferQueue: Increase max slots from 32 to 64"Dan Stoza2014-04-214-5/+5
|\
| * BufferQueue: Increase max slots from 32 to 64Dan Stoza2014-04-184-5/+5
| | | | | | | | | | | | | | | | 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
* | BufferQueue: Add StreamSplitterDan Stoza2014-04-152-0/+187
| | | | | | | | | | | | | | | | | | Adds a StreamSplitter class, that takes one IGraphicBufferConsumer interface and multiple IGraphicBufferProducer interfaces and implements a one-to-many broadcast of GraphicBuffers (while managing fences correctly). Change-Id: I38ecdf3e311ac521bc781c30dde0cc382a4376a3
* | BufferQueueProducer: add detachNextBufferDan Stoza2014-04-153-0/+29
| | | | | | | | | | | | | | | | | | | | 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
* | am ef89f763: am cf818ebb: Merge "Add stringType and requiredPermission to ↵Aravind Akella2014-04-111-0/+6
|\ \ | | | | | | | | | | | | | | | | | | sensors, effectively adding permission checking for sensors" into klp-modular-dev * commit 'ef89f7638c43ce5f73e32d487bf65c3375995e3b': Add stringType and requiredPermission to sensors, effectively adding permission checking for sensors
| * \ am cf818ebb: Merge "Add stringType and requiredPermission to sensors, ↵Aravind Akella2014-04-111-0/+6
| |\ \ | | | | | | | | | | | | | | | | | | | | | | | | effectively adding permission checking for sensors" into klp-modular-dev * commit 'cf818ebbf07c6a20ef48d71bf82f8d4bdf3a398c': Add stringType and requiredPermission to sensors, effectively adding permission checking for sensors
| | * | Add stringType and requiredPermission to sensors, effectively adding ↵Aravind Akella2014-04-111-0/+6
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | permission checking for sensors This reverts commit 4369a4ebd5ae7567e7075bc82830b83178099ed5. Change-Id: Ifa8619cc6873470a07a987763d818d78d4232610
| * | | am 4369a4eb: Revert "Add stringType and requiredPermission to sensors, ↵Etienne Le Grand2014-04-051-6/+0
| |\ \ \ | | |/ / | | | | | | | | | | | | | | | | | | | | effectively adding permission checking for sensors" * commit '4369a4ebd5ae7567e7075bc82830b83178099ed5': Revert "Add stringType and requiredPermission to sensors, effectively adding permission checking for sensors"
| | * | Revert "Add stringType and requiredPermission to sensors, effectively adding ↵Etienne Le Grand2014-04-051-6/+0
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | permission checking for sensors" This reverts commit c57a019e117117c5a76c772970b26cd0f5db8c6a. Change-Id: I3540565bc3e56a32cf3b176a29216cf68bb763b2
* | | | Merge "BufferQueue: Add producer buffer-released callback"Dan Stoza2014-04-115-17/+79
|\ \ \ \
| * | | | BufferQueue: Add producer buffer-released callbackDan Stoza2014-03-315-17/+79
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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
* | | | | Merge "Adding render stats APIs to UiAutomation (framework native)."Svetoslav2014-04-104-3/+43
|\ \ \ \ \ | |_|_|_|/ |/| | | |
| * | | | Adding render stats APIs to UiAutomation (framework native).Svetoslav2014-04-104-3/+43
| |/ / / | | | | | | | | | | | | | | | | | | | | bug:12927198 Change-Id: Ibb1c07f7d89e11281e5c1f27f412a29ac6f9c4ab