Commit Graph

47873 Commits

Author SHA1 Message Date
Mathias Agopian
731e0331eb am e70fbe8b: am 02b95105: fix transitions from hwc to GLES composition
* commit 'e70fbe8b32687d9178e828d6023de599be5431c3':
  fix transitions from hwc to GLES composition
2012-11-05 18:17:18 -08:00
Mathias Agopian
e70fbe8b32 am 02b95105: fix transitions from hwc to GLES composition
* commit '02b95105754b1859a97e234b79f41489a4677c20':
  fix transitions from hwc to GLES composition
2012-11-05 18:15:56 -08:00
Mathias Agopian
02b9510575 fix transitions from hwc to GLES composition
If we switched from HWC to GLES but the dirty region was empty
(could happen if the dirty region is outside of the screen for instance), we
need to force a full screen composition.

In this change we ignore the dirty region for the purpose of
rejecting the whole update and we rely on the fact that it will later
be expanded to the whole screen. This was the least risky fix.

Bug: 7467760, 7452931
Change-Id: I2132f2f963b00a3ce7150adadb107b0367b3862e
2012-11-05 17:50:57 -08:00
Igor Murashkin
74284b9467 Merge "Change ConsumerBase's FrameAvailableListener to be a weak pointer" 2012-11-05 13:47:37 -08:00
Igor Murashkin
a4a3149a36 Change ConsumerBase's FrameAvailableListener to be a weak pointer
This prevents strong reference cycles when the listener implementation also
holds a strong pointer to the ConsumerBase

Bug: 7425644
Change-Id: I1514b13a32b18d421c902dddebec0765a989c55c
2012-11-05 13:39:02 -08:00
Colin Cross
5f7e348746 Merge "dumpstate: dump all threads in show_wchan" 2012-11-03 10:18:49 -07:00
Colin Cross
0c22e8b316 dumpstate: dump all threads in show_wchan
for_each_pid only finds processes and not their threads.  Add
for_each_tid and call it for show_wchan so we can see where all
threads are blocked in the kernel.

Change-Id: Iffb59f7c2933cecf51cdd358a36e19932c2f24c7
2012-11-02 23:57:43 -07:00
Jeff Brown
f3f7db6346 Allow global transactions to nest.
This change fixes a number of small glitches that can occur when
multiple components in the same process are updating surfaces.
One would expect that updates to disjoint sets of surfaces would
not collide but this is not the case.  The first component to
close the global transaction causes all pending updates to
be applied, including those that another component might not
have finished setting up if it also had an open transaction
at the same time.

Change-Id: I99345958581abbe0e1e325a5bcba37e8941a313a
2012-11-02 14:02:52 -07:00
Jason Simmons
7e25127388 Ensure that Vector::erase() returns a valid iterator
Vector::erase may reallocate the Vector's storage while removing an element.
However, erase() calls begin() before calling removeItemsAt(), thus caching
a pointer the the Vector's old storage.  If the storage is reallocated,
the iterator returned by erase() will be based on the old storage pointer
and will thus be invalid.

Bug: 7433283

Change-Id: I91980e0fcb5a2e0a55f1a78444a5958037afdbed
2012-11-01 16:33:50 -07:00
Mathias Agopian
446ba53792 Merge "rework a bit how we scissor the display" 2012-11-01 16:32:02 -07:00
Mathias Agopian
766dc49c17 rework a bit how we scissor the display
the scissor rect is now computed once by DisplayDevice
and is combined with the "undefined" region so that
the letter-boxed area of the screen get cleared in
drawWormhole.

Bug: 7149437
Change-Id: Id2f30516a5786f32eace7f876ff32028f954f357
2012-10-31 14:22:51 -07:00
The Android Open Source Project
89311db9e2 am e2d4cc28: (-s ours) Reconcile with jb-mr1-factory-release jb-mr1-release - do not merge
* commit 'e2d4cc28d72db0d49e61ed4ceeb878436cafb23a':
  partially implement external display clipping
  Always set vertex alpha when drawing screenshot layers
  SurfaceFlinger: add animation transactions
2012-10-31 09:22:29 -07:00
The Android Open Source Project
e2d4cc28d7 Reconcile with jb-mr1-factory-release jb-mr1-release - do not merge
Change-Id: I4f96bf28f6585ad8331daeab60e6d23e92cf0c5d
2012-10-31 09:16:58 -07:00
Colin Cross
13990bb4ca am 5b47c5c5: am 742801c6: am 2281af96: dumpstate: add kernel memory fragmentation unusable index
* commit '5b47c5c574d8d3bf8e73ea4fd7a08e0d881d461c':
  dumpstate: add kernel memory fragmentation unusable index
2012-10-30 10:11:27 -07:00
The Android Automerger
f9218b8591 merge in jb-mr1-release history after reset to jb-mr1-dev 2012-10-30 08:52:44 -07:00
Colin Cross
5b47c5c574 am 742801c6: am 2281af96: dumpstate: add kernel memory fragmentation unusable index
* commit '742801c625ecb09fbe14e717fa5d580b3957ed4a':
  dumpstate: add kernel memory fragmentation unusable index
2012-10-29 17:10:16 -07:00
Colin Cross
742801c625 am 2281af96: dumpstate: add kernel memory fragmentation unusable index
* commit '2281af967dd840aade7bc55b19ea7df0e6da36f2':
  dumpstate: add kernel memory fragmentation unusable index
2012-10-29 17:08:14 -07:00
Raph Levien
3bc7b27571 Merge "Add an LRU cache plus hashing primitives" 2012-10-29 08:59:54 -07:00
Colin Cross
2281af967d dumpstate: add kernel memory fragmentation unusable index
Dump /d/extfrag/unusable_index in bugreports.  It shows the
percentage of memory in each zone that is not available for
allocations for each order.

Change-Id: I2af6680cb609887ea7b3d6107d1aa88bd0206b52
2012-10-28 22:41:06 -07:00
Raph Levien
8185e47822 Add an LRU cache plus hashing primitives
This patch adds a hashtable-based LRU cache. This should be
significantly higher performance than the GenerationCache it is intended
to replace. It is a large part of the fix for bug 7271109
TextLayoutCache low-level performance issues.

We added a new method to BasicHashtable to detect when rehashing is
needed, because the internal linked list pointers would get invalidated
by that rehashing.

Also, the hash_type specialized to pointers had a small flaw.

Change-Id: I950c2083f96519777b851dbe157100e0a334caec
2012-10-26 16:09:22 -07:00
Mathias Agopian
1b10e25356 partially implement external display clipping
we perform external display clipping only on the GL
side (ie: not done on the h/w composer side, which is
harder and would be too risky). in practice this means
that WFD will be clipped properly, while HDMI *may* or
may not depending on how hwc is used.

Bug: 7149437
Change-Id: I92d4d04220db72b6ffb134c7fa7a93af569723a5
2012-10-25 21:42:41 -07:00
Jason Simmons
7e4eb72ad8 am 40cd4515: am 78b4977e: Merge "Ensure that Vector::erase() returns a valid iterator" into jb-mr1-aah-dev
* commit '40cd45151513ecc02c95e0cc1b40480dd816cdd4':
  Ensure that Vector::erase() returns a valid iterator
2012-10-25 18:08:03 -07:00
Jason Simmons
40cd451515 am 78b4977e: Merge "Ensure that Vector::erase() returns a valid iterator" into jb-mr1-aah-dev
* commit '78b4977efd365d2ad7c9227c3a89e65ab60c3260':
  Ensure that Vector::erase() returns a valid iterator
2012-10-25 18:06:06 -07:00
Jason Simmons
78b4977efd Merge "Ensure that Vector::erase() returns a valid iterator" into jb-mr1-aah-dev 2012-10-25 18:03:50 -07:00
Mathias Agopian
e8966b349f am c0384266: am f45c5100: partially implement external display clipping
* commit 'c0384266699aadd23a11bcdfd8a92f6dae8bf36c':
  partially implement external display clipping
2012-10-25 17:32:17 -07:00
Mathias Agopian
c038426669 am f45c5100: partially implement external display clipping
* commit 'f45c510009edab4a3e93f8d66b2e30aa26759fed':
  partially implement external display clipping
2012-10-25 17:29:41 -07:00
Jason Simmons
689925caf4 Ensure that Vector::erase() returns a valid iterator
Vector::erase may reallocate the Vector's storage while removing an element.
However, erase() calls begin() before calling removeItemsAt(), thus caching
a pointer the the Vector's old storage.  If the storage is reallocated,
the iterator returned by erase() will be based on the old storage pointer
and will thus be invalid.

Change-Id: I2450c55fd418e6b1c558a4ca7c024573abbaa098
2012-10-25 15:58:43 -07:00
The Android Automerger
faece69c18 merge in jb-mr1-release history after reset to jb-mr1-dev 2012-10-25 13:42:23 -07:00
Mathias Agopian
f45c510009 partially implement external display clipping
we perform external display clipping only on the GL
side (ie: not done on the h/w composer side, which is
harder and would be too risky). in practice this means
that WFD will be clipped properly, while HDMI *may* or
may not depending on how hwc is used.

Bug: 7149437
Change-Id: I92d4d04220db72b6ffb134c7fa7a93af569723a5
2012-10-25 12:42:42 -07:00
Dave Burke
0491524f83 am 296cd1cb: am 04075569: Revert "Revert "put back the unused virtuals in Vector<>""
* commit '296cd1cb9ac7b7ea201662860347755d0349a7de':
  Revert "Revert "put back the unused virtuals in Vector<>""
2012-10-25 11:48:40 -07:00
Dave Burke
296cd1cb9a am 04075569: Revert "Revert "put back the unused virtuals in Vector<>""
* commit '04075569b565c949a6db8b4e8a9f10d281de4d9c':
  Revert "Revert "put back the unused virtuals in Vector<>""
2012-10-25 11:45:41 -07:00
Dave Burke
04075569b5 Revert "Revert "put back the unused virtuals in Vector<>""
This reverts commit 225c66a48c

Change-Id: If31a04b81052cbc7dd7bf237c07107c33066d03d
2012-10-25 11:40:51 -07:00
Mike Lockwood
126d215667 More changes to fix PDK build:
move screencap back to frameworks/base
move libdiskusage over from frameworks/base

Change-Id: I8415716634a4cb5b0fae15ef15ff21ee0a08906a
2012-10-24 12:30:41 -07:00
Mike Lockwood
133ea73de0 Move app_process and system_server back to frameworks/base
due to dependency on libandroid_runtime

Change-Id: Ie30a76ebb57a07ab29dc1b553c0e2dc9ab8d271a
Signed-off-by: Mike Lockwood <lockwood@google.com>
2012-10-24 11:51:51 -07:00
Mike Lockwood
94afecf4b6 Move non-Java commands over from frameworks/base
Change-Id: I0571813c1cfcf66abd36eb9f178fc49b618e88a6
Signed-off-by: Mike Lockwood <lockwood@google.com>
2012-10-24 10:45:23 -07:00
The Android Automerger
12f2c395c6 merge in jb-mr1-release history after reset to jb-mr1-dev 2012-10-22 16:42:08 -07:00
Mathias Agopian
ba0b9cca69 am ef36f2a8: am d17e3b5f: prevent a client from crashing surfaceflinger
* commit 'ef36f2a84cb8478b0baa299d980922ce7824c0b3':
  prevent a client from crashing surfaceflinger
2012-10-22 15:38:00 -07:00
Mathias Agopian
ef36f2a84c am d17e3b5f: prevent a client from crashing surfaceflinger
* commit 'd17e3b5f6cf71eb52bc81f37719254ce08244b34':
  prevent a client from crashing surfaceflinger
2012-10-22 15:35:51 -07:00
Mathias Agopian
d17e3b5f6c prevent a client from crashing surfaceflinger
a misbehaving or malicious client could cause SF to crash
by providing a "fake" IInterface. we now check the
IInterface we get is our own and local.

Bug: 7278879
Change-Id: Ia19d05902d4b2385c5a16416148378d4998833fd
2012-10-22 14:54:23 -07:00
Jamie Gennis
7ee4aba226 am 3b6055a7: am ba7dc2db: Merge "SurfaceFlinger: add support for secure displays" into jb-mr1-dev
* commit '3b6055a7184a2da7bbdd94118a8c6af875bb28b1':
  SurfaceFlinger: add support for secure displays
2012-10-22 13:57:51 -07:00
Jamie Gennis
3b6055a718 am ba7dc2db: Merge "SurfaceFlinger: add support for secure displays" into jb-mr1-dev
* commit 'ba7dc2db6e93a2407c8c328f2838591b7b760658':
  SurfaceFlinger: add support for secure displays
2012-10-22 13:54:50 -07:00
Jamie Gennis
ba7dc2db6e Merge "SurfaceFlinger: add support for secure displays" into jb-mr1-dev 2012-10-22 13:50:19 -07:00
Jamie Gennis
dd3cb84cfb SurfaceFlinger: add support for secure displays
This change adds support for displays that are not allowed to display surfaces
with the eSecure flag set.  All non-virtual displays are considered secure,
while virtual displays have their secure-ness specified at creation time.

Bug: 7368436
Change-Id: I81ad535d2d1e5a7ff78269017e85b111f0098500
2012-10-22 13:41:21 -07:00
Jesse Hall
4ea5d656db Always set vertex alpha when drawing screenshot layers
The screenshot is a GL_RGB texture, and the GL_REPLACE texture env
mode uses vertex alpha for GL_RGB textures instead of alpha=1.0.

Bug: 7340077
Change-Id: I6fbb907023e48f9c422b15a33da79757d6726840
2012-10-22 10:37:22 -07:00
The Android Automerger
92f89bd1e0 merge in jb-mr1-release history after reset to jb-mr1-dev 2012-10-20 23:14:12 -07:00
Andy McFadden
42371e5e63 am 44c985ef: am 620685c2: Fix emulator vsync
* commit '44c985ef7d0b6d94fa9df3fd5ea718eca0ecdbd1':
  Fix emulator vsync
2012-10-19 16:17:41 -07:00
Andy McFadden
44c985ef7d am 620685c2: Fix emulator vsync
* commit '620685c2e684082c82657732d1e35cefd0c79006':
  Fix emulator vsync
2012-10-19 16:14:34 -07:00
Andy McFadden
620685c2e6 Fix emulator vsync
The code that reserves display IDs was only run when a hardware
composer was present.  The eventControl() function, which handles
enabling of vsync, was ignoring the request because the primary
display didn't appear in its set of allocated IDs.  This moves
reservation of IDs for built-in displays outside the HWC-only block.

Also, added a couple of warnings in eventControl().

Bug 7376568

Change-Id: I185ccdf817a25499b5c2668f8f6d594afb8c1568
2012-10-19 12:53:46 -07:00
The Android Automerger
7e7150fb81 merge in jb-mr1-release history after reset to jb-mr1-dev 2012-10-19 06:59:39 -07:00
Romain Guy
d991b40739 am f58475b5: am 60393d45: Merge "Add runtime debugging capabilities to OpenGL" into jb-mr1-dev
* commit 'f58475b5ae4ccb3a31c05c79da8b2914c62a3510':
  Add runtime debugging capabilities to OpenGL
2012-10-18 17:39:13 -07:00