GC triggering performance optimizations.

Copy the correct starting heap size at process init.
Interfaces to set GC/managed heap parameters.

Change-Id: Ia2b158aa28254d88f68c9534a0eef580aa811b10
(cherry picked from commit 60c25a585aaa81496e83fb134502594caa0dceb6)
(cherry picked from commit 8873acb0ffc224388eeadc7204ddb6bff4819c7f)
(cherry picked from commit 6ca5469d1fbfb432a945df49e276fc4edc1eff87)
due to surfaceflinger creating odd lines in display,
Revert remove support for glReadPixels screenshot path (commit 3ca76f4), and try dropping features from EGL config query before gving up
surfaceflinger: Allow gpu to render widevine level3.

Allow gpu to render widevine level3 but keep
blocking screen shots.

CRs-fixed: 428647,424769,421767
Change-Id: I914232a062acbb7b17901dbf2b414973230e59d9
frameworks/native: Add support for custom layers in Surfaceflinger.

  - Check for the EXT_ONLY layer and add only that layer to external
    list and do not add that layer to the primary list
  - Check for INT_ONLY layer and remove that layer from external list
  - These are added to support EXTERNAL_ONLY & INTERNAL_ONLY feature

Change-Id: I8f84eeacebf97d44446f319f69b8a73e56f2cb6d

Conflicts:
	services/surfaceflinger/Android.mk
Add support for custom buffer sizes..

Add native window properties NATIVE_WINDOW_SET_BUFFERS_SIZE to the
perform function of Surface to set the user defined size
of graphic buffers. This is needed for adding support for
the playback of interlaced content.

Change-Id: I8354c29d2ffcc03178fae86dfa449cbefd24ae55
sf: Override presentation layer with ext_only layer

Do not add presentation layer to the external list when external only
layer is present.

Change-Id: I46c8a85a572f88a2d4026c4026d99fd037b928be
Surface: Initialize variable and add a defensive check

Initialize buf variable and make sure to check for return
value of dequeueBuffer() before sending to the client.

Change-Id: I0569f2d45825fab0e5d0f38fc91a07990f57c7ab
Check fence is not NULL before dereferencing it

If the fence obtained in dequeueBuffer is NULL, don't dereference it.
This will avoid a crash in surfaceflinger.

CRs-fixed: 516300
Change-Id: I3054dc37087103f3addae7884bb03460484a1eec
SurfaceFlinger: Add support for virtual display.

- Creates a rendering surface when invoked via hybrid path
- Makes changes in HWC wrapper to handle virtual display via HWC

Change-Id: I86560b5009949b75c267249799a446b8279eff32
Fix for VirtualDisplay CTS issues.

Following CTS cases fails without the change
1. testEncodeVirtualDisplay
2. testMultipleVirtualDisplays
3. testSingleVirtualDisplay
4. testPrivatePresentationVirtualDisplay
5. testPrivateVirtualDisplay

Issue happens because displaySurface not being initialized
as its becoming local variable and loosing the context.

Change-Id: I54ce623f611faf7fc5d4d00b0d042f9943b57bbe