Commit Graph

53246 Commits

Author SHA1 Message Date
Christopher N. Hesse
8befd14c4a sensor: Allow devices to skip the permission request
This is needed by Samsung devices with pre-M sensor
blobs which have support for SENSOR_TYPE_HEART_RATE
or body sensors in general.
These HALs somehow segfault on the flagged code.

Change-Id: I698f4129e71b683f6f063f00da79f32a5f521149
2015-12-18 15:21:53 -08:00
Christian Poetzsch
31ab17fb0c Fix the execution point of onFrameAvailable/onFrameReplaced callbacks
In a4650a5 the concept of a maximum frame number allowance for the consumer was
introduced. A call to acquireBuffers will only return buffers when their frame
number is less-than-or-equal-to this maximum frame number. When SurfaceFlinger
is the consumer, this maximum  frame number is calculated in the
onFrameAvailable/onFrameReplaced callbacks. These callbacks are called when a
new buffer is dequeued by the application. The problem is that these callbacks
are called _after_ the fence wait which is used to throttle the frame
production of client apps. When the previous frame needs a long time to draw,
those waits can potentially be a long time. As a result SurfaceFlinger won't do
any composition with the new frame until the wait is over.

Normally this isn't a big problem because there is a queue of buffers for
SurfaceFlinger to work with. However, this changes massively when a client app
is using a swap interval of zero. In this case, a new frame will instantly
replace the previous queued frame. However, SurfaceFlinger doesn't know this
until the onFrameReplaced callback gets called - which is delayed by the fence
wait. If the timing is bad, SurfaceFlinger never gets a chance to pick up a new
frame to do the composition with.

We see this behaviour on our TC development system (slow GPU) with legacy
on-screen benchmarks. Such apps are using a swap interval of zero and sometimes
frames don't get updated for several seconds. This behaviour can be also seen
on a Nexus5, although it isn't as obvious as on our TC.

The fix in this cl is to move the EGL throttling to the end of the queueBuffers
function. This ensures that if a frame gets replaced in the queue, all
consumers who installed the callbacks, get called in a timely fashion.

Change-Id: I36e9ecda162150f41e97d4fb7437963a3d86b371
Signed-off-by: Christian Poetzsch <christian.potzsch@imgtec.com>
2015-12-16 18:46:53 -08:00
radhakrishna
5934c292ab SF: Fix invalid reduction of transparent region from a layer.
Reduce transparent region from a layer only if the transparent
region has valid intersection with the layer. Otherwise, reducing
a transparent region lying completely outside of the layer leads to
invalid sourcecrop values for the layer.

Change-Id: Iee9ba53a8072c21c9ba8a6d58cb14ca30f8600ba
CRs-Fixed: 620973
2015-12-16 00:16:12 -05:00
Ramakant Singh
bea57f312d sf : Fix vertices & texture coordinates computation.
Compute crop and display frame for GPU composition also
in the same way it's done for HWC and compute vertices
and texture coordinates for GPU composition. This avoids
pixel shifts in output of GPU composition & overlays.

Change-Id: I0d31b1e4a81049fff72109d1a210e7cbd945cfe9
2015-12-16 00:16:04 -05:00
forkbomb
7cacf26abb libbinder: allow devices to disable ashmem size tracking
The addition of ashmem size tracking can lead to parcel objects
overwriting other values on the stack in old binary blobs.

Change-Id: Ife8514be1ba639c4061de38b59794c46bcc2d7f8
2015-12-10 10:15:49 +11:00
james.zhang
d40a35f61d bug#460672 framebuffer surface can't keep triple buffer if define NUM_FRAMEBUFFER_SURFACE_BUFFERS := 3
[root cause  ] framebuffer surface is in the same process of surface flinger
[changes     ] call IGraphicBufferProducer::allocateBuffers on producer inside the DisplayDevice constructor to force-allocate all three buffers.
[side effects] none
[self test   ]<tshark, enter and exit mainmenu>: ok
[reviewers   ] zhongjun.chen
[change_type ] AOB --> google_original
[tag_product ] common

Change-Id: Ideb75d3aa1ed23b2fa4d263a120ea3ca39d01361
2015-12-08 01:13:54 -08:00
Baldev Sahu
21145beae7 SurfaceFlinger: Add support for MDP3
This change is porting of below commits related to MDP3

In MDP3 we are using the widevine level3 for secure content
display. And this should applicable only for primary display
not for screen shot or screen recording
- CRs-Fixed: 595469
- Change-Id: I99be2d81287ab746d5c4a2375c3106c59e61a8fc

Change-Id: Ie7ac95e1c03eb7ad6f71098ecf09a1e25e69760f
2015-12-08 01:13:54 -08:00
Steve Kondik
4951bcc16e Android 6.0.1 release 3
-----BEGIN PGP SIGNATURE-----
 Version: GnuPG v1
 
 iEYEABECAAYFAlZmBAkACgkQ6K0/gZqxDnhgbQCdFLtubCHWtlKUuIEKAVwzv2M3
 2jMAoI4UhN3nLb2Nf6BizcMSF3xo1pKO
 =NS5T
 -----END PGP SIGNATURE-----

Merge tag 'android-6.0.1_r3' of https://android.googlesource.com/platform/frameworks/native into cm-13.0

Android 6.0.1 release 3

Change-Id: I437aaf148d440a8144afe1454948980fc3b40cca
2015-12-07 17:07:16 -08:00
forkbomb
53602ffde5 libbinder: allow devices to disable ashmem size tracking
The addition of ashmem size tracking can lead to parcel objects
overwriting other values on the stack in old binary blobs.

Change-Id: Ida52cec851a6f9d5a57c8f9130a5875c03dcb094
2015-12-04 15:42:51 +11:00
Caio Schnepper
8c39282e31 libgui: Don't assign handle to NULL after free is common
Reportedly Mali and PowerVR GPUs are crashing when setting handle to NULL
So we will set a flag for the devices that might need this aswell

Set BOARD_EGL_NEEDS_HANDLE_VALUE=true in BoardConfig.mk to use

Change-Id: I6c967f62dc6adced7583d7b2045d11cf5b25fc80
2015-11-25 17:51:30 -02:00
Caio Schnepper
eed845539a libgui: Don't assign handle to NULL after free
This reverts c784dfc39f for exynos4 devices
with Mali 400 GPUs, which causes a fatal signal (SIGSEGV) and death of
the graphics subsystem

Change-Id: I6dbf8f8664fca01baf63fece7c64016609fe3e1c
2015-11-23 18:39:58 -02:00
Steve Kondik
05e03ad508 Merge branch 'LA.BF64.1.2.2_rb4.7' of git://codeaurora.org/platform/frameworks/native into cm-13.0
Change-Id: Ib29f744a0f7baac5d5ad8a7e9c5c14303b6aeec1
2015-11-16 14:36:34 -08:00
Ramakant Singh
2bb57a8bc3 sf : Apply user defined panel orientation to blur layer
Blur layer need to capture screen shot to create to blur
effect. Hence need to take care any user defined orientation
as well.

Change-Id: I1c0478810d12661edf2586293bbed342a5b4dc7e
2015-11-16 14:00:25 -08:00
Steve Kondik
af9298115c Revert "surfaceflinger: Consolidate display orientation compensation hooks"
* This is completely breaking graphics.

This reverts commit f8e2372ad7.

Change-Id: I1d694f4228199891a191ce3fb924cec71a6100f0
2015-11-10 23:58:46 +01:00
Ricardo Cerqueira
f8e2372ad7 surfaceflinger: Consolidate display orientation compensation hooks
Dedupe rotation calculation code and make rotation a statically
available property in the DisplayDevice

Change-Id: Ic517ab0d2c05026cd6fa46d664aab7926be17b62
2015-11-10 10:56:31 -08:00
Hashcode
3904525bce surfaceflinger: odd hw rotation (90/270) patch for swapping width/height
This patch works in addition to the following commit
re-implementing ro.sf.hwrotation:
7d283431ef

When using values of 90 and 270 for ro.sf.hwrotation the
LCD width and height also need to be swapped to display properly.

Change-Id: I2874fdb8f8d8b855df6d62d338c9a22360491973
NOTE: This patch does not fix the initial startup of bootanimation
2015-11-10 10:55:55 -08:00
Byunghun Jeon
987034b563 SurfaceFlinger: Native changes to add blur effect
Native changes to add blur-behind and blur mask effect

Change-Id: I54faf82d750e8299de6d261f6a893ab26d08df84

SurfaceFlinger: Adding template for LayerBlur files

Change-Id: I444009113b7bdd6c5284863fd1f56358e67d9fe6

SurfaceFlinger: Featurize libuiblur module for OSS build

Change-Id: Ifdc176e699434125d17b111c044b8ba954cf717c
2015-11-08 01:07:13 -08:00
Ethan Chen
b53d92c3eb sensorservice: Don't replace HAL orientation sensor
* Previously HAL orientation sensor would always be replaced if the HAL
  did not provide a rotation vector sensor as well. Practically no HAL
  does, so the virtual sensor would always replace it.
* Add the virtual sensor only if the HAL does not provide it.

Change-Id: I50ad2cd6c60b53eddc4c6854997ec2e3dbff0d1a
2015-11-07 19:17:27 -08:00
Steve Kondik
911c7f3338 installd: Consider bundled app dir as a valid apk path
Change-Id: I92db56f21bf91e0816b63faffcfbb270ca2d8fca
2015-11-07 17:54:10 -08:00
Arne Coucheron
4cf9742078 sensorservice: Register orientation sensor if HAL doesn't provide it
* In KitKat and on most Samsung devices, the orientation sensor is
   not getting registered, and makes the compass non-working in a lot
   of apps. This patch enables the sensor for such devices.

Change-Id: I0ebba72ec4aa2cfa02c21a6daff0c356c6793fd0
(cherry picked from commit 98fa6f1152da759ef3eaf36cb16e0aaf2013376a)
2015-11-07 13:49:06 -08:00
Ricardo Cerqueira
c77679141d sensorservice: Fix init sequence for pre-1.1 API sensor HALs
The sensors API introduced a new flush() method that older binaries
won't have. For those, replace the firstFlush invocation with a
setDelay call since a lot of implementations interpreted that as
the initialization step.
We also don't want any kind of call to flush() to happen when it
isn't there, since it'll either hit a random OEM extension or
a memory address we really don't want to execute.

Change-Id: I26ce923fe385751fed7d1c483a53c074249f0620

sensorservice: Set the rate for pre-1.1 HALs _after_ activation

We want to be sure these are applied in the same sequence they
used to be...

Change-Id: Ied2ba08ed3c4bed3a80bac6ab5471fcea9ba2c09
2015-11-07 13:48:42 -08:00
Clyde Tan
5b6a10373e Fix boot animation rotation problem when ro.sf.hwrotation is set to 90 or 270
Change-Id: I7ad3c83e23ce38280818ec5283d173d50c889531
2015-11-07 13:45:41 -08:00
Ricardo Cerqueira
94d724071d surfaceflinger: Reimplement hwrotation
Change-Id: Ia26bb36b5b6de132af49c272c4472ad2703afbda
2015-11-07 13:45:19 -08:00
Naseer Ahmed
b9127bdbe3 surfaceflinger: Set max acquired buffer count
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
2015-11-07 01:21:36 -08:00
Linux Build Service Account
ea9f37a30c Merge "native: add ambient temperature & relative humidity sensor features" 2015-11-06 07:35:38 -08:00
Ricardo Cerqueira
1cdd1b5ad2 Android 6.0.0 release 26
-----BEGIN PGP SIGNATURE-----
 Version: GnuPG v1
 
 iEYEABECAAYFAlYxAgIACgkQ6K0/gZqxDnjCqACfbBT6VOiUFQvRn7w1SAa+4rjF
 1IwAn2rBUqWo0dOKVwF1DDfFmGZXc8SB
 =1BqV
 -----END PGP SIGNATURE-----

Merge tag 'android-6.0.0_r26' into HEAD

Android 6.0.0 release 26

Conflicts:
	include/android/input.h

Change-Id: Ifa374c6d3055be3b8a5d60967f8b4c0043da739b
2015-11-05 01:41:42 +00:00
Satya Durga Srinivasu Prabhala
84f1b431b2 native: add ambient temperature & relative humidity sensor features
Adding ambient temperature & relative humidity hardware sensor
features as they are missing and causing CTS failures.

Change-Id: I4f07db8e77cb77c5b2c1bb7ed80a26f68c91c23e
2015-11-04 12:28:21 -08:00
Steve Kondik
5e78568dab Merge branch 'LA.BF64.1.2.2_rb4.6' of git://codeaurora.org/platform/frameworks/native into cm-13.0 2015-11-04 10:26:51 -08:00
Ricardo Cerqueira
60c26d1f27 Android 6.0.0 release 5
-----BEGIN PGP SIGNATURE-----
 Version: GnuPG v1
 
 iEYEABECAAYFAlYyZAgACgkQ6K0/gZqxDng/ZgCfUJK3qqr1BvYmWlGZsQ4+taVP
 6NEAnRLWjoF9kSyraCa/VG+w2tUrS80Y
 =xUfb
 -----END PGP SIGNATURE-----

Merge tag 'android-6.0.0_r5' into cm-13.0

Android 6.0.0 release 5
2015-11-03 23:27:50 +00:00
Roman Birg
4dcf7868e3 update app ops
Change-Id: Id189866c1868e6340b1b01ca94c06983fbcc242d
Signed-off-by: Roman Birg <roman@cyngn.com>
2015-11-02 11:51:17 -08:00
Christopher N. Hesse
f3f3949b32 binder: MemoryHeapIon: fix unused parameters
Using the __attribute__((unused)) preprocessor directive

Change-Id: I29d27fd7eacb962ffa06ccd81ee48b48f3743243
(cherry picked from commit 047c69bb8e17eab6f3432fae200fe94f7e119755)
2015-11-02 17:30:14 +01:00
codeworkx
af2d946f2d binder: Squashed commit of MemoryHeapBaseIon
Source:
http://git.insignal.co.kr/samsung/exynos/android/platform/frameworks/native/commit/?h=exynos-jb&id=dc4cd25cc41e4358debd0c7d1a2706d208a58df6

Change-Id: Ib06cc37a2a25c78a061ee2bad48eec2d01b07833

binder: update MemoryHeapIon

* Update from ODROID-XU 09232013 BSP release

Change-Id: I5245c8a9f783e8902bf91a0ee23e60ebeb335b27

binder: update MemoryHeapIon

* Update from ODROID-XU 04212014 BSP

Change-Id: Ifc2664bcde37a71d855e05e7c9e50288a4508892

binder: Fixed new CM SLSI build variant

Change-Id: Icfff592cf705af660c7318b08fce75dbbf42103c
(cherry picked from commit 014ad5eee0a7de70c4a9f66e8f5ce7b32f4ecb16)
2015-11-02 17:29:40 +01:00
Manoj Kumar AVM
f8ea9b5796 sf: vds: Avoid HWC for certain scenarios
Reserve HWC for VDS for WFD use case. During WFD usecase, sink usage
will contain GRALLOC_USAGE_PRIVATE_WFD flag.

When HWC is avoided, all virtual displays are composed using GLES.
This means that GLES composes directly into the sink buffer and
signals the consumer. Furthermore, it is expected that any color
conversion will be handled on the consumer side.

CRs-Fixed: 908380
Change-Id: I93ff54c79ece788b6caf3f4172835d8ac1362f62
2015-11-02 08:15:21 -08:00
Praveen Chavan
c784dfc39f libgui: assign handle to NULL after free
to avoid use-after-free situations

Change-Id: If9c09f509bc55795856302e5ca34470df019c622
2015-10-31 03:19:42 -07:00
Ricardo Cerqueira
d15d2252b0 installd: Run all of the appt setup operations in the child process
Change-Id: Ifc18741380d7f922540d04ef622f17edfd87dbdf
2015-10-30 18:36:57 +00:00
d34d
716c2cf34a installd: Call pipe() before forking
Change-Id: Ideef9387c503a25dadb2afb4e4b394a2e61cd8e9
2015-10-28 18:35:09 -07:00
d34d
66a1d0d715 installd: Use -f (force overwrite) for aapt
When re-creating resource apks for themes, aapt will fail if the
apk already exists unless we use -f

Change-Id: If2c3a634aa3ca061009aa6892530d643f8f67e9f
2015-10-28 14:11:01 -07:00
Peng Xu
a78c2e65e1 Merge "Avoiding flush on-change sensors at subscription" into mnc-dr-dev 2015-10-27 22:23:21 +00:00
Peng Xu
20483c4937 Avoiding flush on-change sensors at subscription
Initial sensor flush at subscription is a mechanism to avoid sensors
to get stale samples before subscription happens. However, there is a
slight chance that a most recent sample will be lost during the flush
process. This is OK for continuous sensors but problematic in
on-change sensor as on-change event does not come continuously and
a lost event can cause inconsistent state in client. Flush at
subscription of on-change sensor is disabled in this CL to avoid new
important on-change event to be discarded during the initial flush
process.

Bugs: b/24647069
      b/25241873
      b/24804819
     
Change-Id: Ibda099c6b9f5fb6e200f13cf13a850b0026e9e7c
2015-10-27 21:46:40 +00:00
d34d
2a7b426c03 Themes: Restructure resource cache [2/2]
Change-Id: Ib62081e0551e572680b92c0a587bdc7bbee9b62b
2015-10-26 18:34:55 -07:00
Clark Scheff
ea0c03875f Themes: Port to CM13 [2/3]
Themes: Forward port installd

Id: I5c03bdca30d55f252d486ddac0355f41623ba8d5

Themes: Remove legacy theme support

Id: I6823a6f2735f07f8e4a25a9c0f6f297577a554ab

Access Themed ResTables from compiled theme apk [2/2]

Before this patch the ResTable for a theme/app was created and
accessed seperate from the compiled APK. Since the compiled APK
has its own copy of the resources.arsc, we can just reuse the table
in the APK instead

Id: Ib7916eba5663db5d077d33fc02623748e8a9f10c

Send target sdk version to aapt [2/2]

If vector drawables are used in a theme we must have a minSdkVersion of 21 passed
to aapt or else aapt will Segfault.

Id: Ib5ffa6d12c91d465f3a603e03b09ab03b02715c7
Change-Id: Ie14322b7efb40b270abd3d4ca1b7c5f97bf4b5ca
2015-10-26 16:00:55 -07:00
Arun Kumar K.R
81c57b3149 SurfaceFlinger: Disable rotation animation on Secondary displays
- 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
2015-10-26 14:20:43 -07:00
Ethan Chen
846c7e9329 input: Disable debug again
Change-Id: I3adadd69b8b3a42bcb384cac7ccff98ef0ca9c65
2015-10-26 13:58:49 -07:00
Nick Kralevich
574145ea31 DO NOT MERGE: fix build try #2 am: 778b6f4902 am: 034bc1799c -s ours am: dbc9a47831 -s ours am: a2685ebb1e am: 1d94a1d036 -s ours
am: bce101e79b

* commit 'bce101e79b5ee9715a8329db8fd760f7ba829de1':
  DO NOT MERGE: fix build try #2
2015-10-23 21:22:14 +00:00
Adrian Roos
cf33d50d25 Merge changes from topic 'parcel-v2' into mnc-dr-dev
* changes:
  Maintain Parcel ABI
  Revert "Revert "Track ashmem memory usage in Parcel""
2015-10-23 17:21:23 +00:00
Nick Kralevich
bce101e79b DO NOT MERGE: fix build try #2 am: 778b6f4902 am: 034bc1799c -s ours am: dbc9a47831 -s ours am: a2685ebb1e
am: 1d94a1d036  -s ours

* commit '1d94a1d036cb4bc8d9b178f56fa3bbddc81b7f10':
  DO NOT MERGE: fix build try #2
2015-10-23 04:36:16 +00:00
Nick Kralevich
1d94a1d036 DO NOT MERGE: fix build try #2 am: 778b6f4902 am: 034bc1799c -s ours am: dbc9a47831 -s ours
am: a2685ebb1e

* commit 'a2685ebb1ec5ed523fb4800d2593f2ae0c10ed22':
  DO NOT MERGE: fix build try #2
2015-10-23 04:32:47 +00:00
Nick Kralevich
a2685ebb1e DO NOT MERGE: fix build try #2 am: 778b6f4902 am: 034bc1799c -s ours
am: dbc9a47831  -s ours

* commit 'dbc9a478311e8728c8148a80abb103fca697891d':
  DO NOT MERGE: fix build try #2
2015-10-23 04:26:03 +00:00
Nick Kralevich
18e7c64ea8 resolve merge conflicts of 834ac204ce to klp-modular-dev. am: 7f1ea80d65 am: fa632f6ad7 am: 9ec978732f am: 1b28b05d2e
am: 0370a03b6e

* commit '0370a03b6e74e40d5110b83fed2243bf072aee73':
  DO NOT MERGE: fix build breakage
2015-10-23 04:19:58 +00:00
Nick Kralevich
dbc9a47831 DO NOT MERGE: fix build try #2 am: 778b6f4902
am: 034bc1799c  -s ours

* commit '034bc1799cbbc4184aa507eba181573c0a3b9b35':
  DO NOT MERGE: fix build try #2
2015-10-23 04:19:51 +00:00