Commit Graph

212 Commits

Author SHA1 Message Date
Mathias Agopian
e2fc756f7d am 48294b0d: am e7d3ee9d: Revert "merge various SF fixes from gingerbread to honeycomb-mr2" (DO NOT MERGE)
* commit '48294b0d9388cff632f0e6ae5220305d342c76fb':
  Revert "merge various SF fixes from gingerbread to honeycomb-mr2" (DO NOT MERGE)
2011-06-16 18:15:19 -07:00
Mathias Agopian
debc234c24 Revert "merge various SF fixes from gingerbread to honeycomb-mr2" (DO NOT MERGE)
Also revert all dependent changes:
This reverts commit 8e18668d14adf601cbe5973030c310ec23d88461.
This reverts commit 69b4587bfbb3e98f793959d9123340360fa233a2.
This reverts commit a9c9a4baf24700e8817d47d8ea8da1742caea0b5.
This reverts commit 2c0042b666a969091c931614f2fc0dce2f1cfac8.
This reverts commit f6c8206735e7e078461e5f2aef6e1a1446fdd075.
This reverts commit 24855c09173a6caaec7dcedd0c2d7ce15121d39b.

Change-Id: I33e699640f3f59e42fa03c99a9a1b7af0d27d4d8
2011-06-16 17:22:28 -07:00
Mathias Agopian
e397ce2880 am 0887b8c2: am 8e18668d: revert surfaceflinger leak fix as it uncovered a crasher on xoom (DO NOT MERGE)
* commit '0887b8c2e583e682cd2c1bc909cb3fdbec704004':
  revert surfaceflinger leak fix as it uncovered a crasher on xoom (DO NOT MERGE)
2011-06-15 22:42:52 -07:00
Mathias Agopian
dbe60ddd85 am d5244e0a: am 52a43990: Revert "revert surfaceflinger leak fix as it uncovered a crasher on xoom"
* commit 'd5244e0a88ed2f843651aa5ffdc71a45c968e0f3':
  Revert "revert surfaceflinger leak fix as it uncovered a crasher on xoom"
2011-06-15 22:12:32 -07:00
Mathias Agopian
1b2c2a9ea0 revert surfaceflinger leak fix as it uncovered a crasher on xoom (DO NOT MERGE)
This reverts commit 52a43990880b27808bcf562afcc4209d34728e6e.

Change-Id: I1856a48f863b051395b8091ddfd1e01292fa1b1e
2011-06-15 20:45:32 -07:00
Mathias Agopian
63ad28fb53 Revert "revert surfaceflinger leak fix as it uncovered a crasher on xoom"
This reverts commit af6edba59e250adbdfa5b3c3be134f70d8c38a16.

Change-Id: I7793d3ca8a4d20a2b188364f47854328ab5f586d
2011-06-15 20:42:25 -07:00
Mathias Agopian
e776586a08 am 7ecdeb6e: am d20d72d1: Merge "revert surfaceflinger leak fix as it uncovered a crasher on xoom" into honeycomb-mr2
* commit '7ecdeb6e548ff71d4f70b343e30136e89eaa3e33':
  revert surfaceflinger leak fix as it uncovered a crasher on xoom
2011-06-15 20:21:31 -07:00
Mathias Agopian
3790e7997a revert surfaceflinger leak fix as it uncovered a crasher on xoom
Bug: 4600244
Change-Id: Ia68ebf0f243a051ff6a21b3863e3e5d259bbf7ac
2011-06-15 19:31:04 -07:00
Mathias Agopian
7794b30589 am 77079399: am a9c9a4ba: fix RefBase so it retains binary-compatibility with gingerbread (DO NOT MERGE)
* commit '77079399fca3e9c71e2ac06f3da26934e1c278b9':
  fix RefBase so it retains binary-compatibility with gingerbread (DO NOT MERGE)
2011-06-13 14:15:00 -07:00
Mathias Agopian
867740df05 fix RefBase so it retains binary-compatibility with gingerbread (DO NOT MERGE)
Bug: 4595257
Change-Id: I1db83149107d7dab1f0b7e73c684e0ff82e17e62
2011-06-13 13:44:28 -07:00
Mathias Agopian
13b37b896b am a6a4a9ed: am f6c82067: fix a surface leak introduced by a failed merge (DO NOT MERGE)
* commit 'a6a4a9ed46d02ec0c6493a97cd1d3351bdcced63':
  fix a surface leak introduced by a failed merge (DO NOT MERGE)
2011-06-07 15:02:53 -07:00
Mathias Agopian
36ca5e7217 fix a surface leak introduced by a failed merge (DO NOT MERGE)
Bug: 4558502
Change-Id: Ibf889d03caa806c34603ad45f135b78c3851f55c
2011-06-07 14:52:22 -07:00
Mathias Agopian
f3d939c5e5 merge various SF fixes from gingerbread to honeycomb-mr2 (DO NOT MERGE)
Fix a race that could cause GL commands to be executed from the wrong thread.
  RefBase subclasses can now decide how they want to be destroyed.
  Fix a race in SurfaceFlinger that could cause layers to be leaked forever.
  Fix a race-condtion in SurfaceFlinger that could lead to a crash.

initial cherry-pick:
resolved conflicts for merge of b9783b49 to honeycomb-plus-aosp

Change-Id: I2a335e03fff219e35c18a7b0089b3a11d636576f
2011-06-06 15:14:25 -07:00
Marco Nelissen
0129f1a27f resolved conflicts for merge of b9783b49 to honeycomb-plus-aosp
Change-Id: I1d86ea56b3d1d1b69f6671e5b0df0ca3f0c79643
2011-06-06 09:55:15 -07:00
Simon Wilson
be93983384 am c9cd2387: Merge changes I37f0f315,I8cbf6044,Ibb598931,I5262bf11 into gingerbread
* commit 'c9cd2387b6938a6fbefc731d2177902266f2a130':
  Fix a race that could cause GL commands to be executed from the wrong thread.
  RefBase subclasses can now decide how they want to be destroyed.
  Fix a race in SurfaceFlinger that could cause layers to be leaked forever.
  Fix a race-condtion in SurfaceFlinger that could lead to a crash.
2011-05-24 17:29:12 -07:00
Mathias Agopian
b4081bb52a Fix a race that could cause GL commands to be executed from the wrong thread.
Bug: 4483050
Change-Id: I37f0f3156059c208c6168ee6131d0e267d823188
2011-05-23 16:14:10 -07:00
Mathias Agopian
34cd9b72f1 Fix a race in SurfaceFlinger that could cause layers to be leaked forever.
The transaction flags were atomically read-and-cleared to determine if
a transaction was needed, in the later case, mStateLock was taken to
keep the current state still during the transaction. This left a small
window open, where a layer could be removed after the transaction flags
were checked but before the transaction was started holding the lock.
In that situation eTraversalNeeded would be set but only seen during the
next transaction cycle; however, because we're handling this transaction
(because of another flag) it will be commited, "loosing" the information
about the layer being removed -- so when the next transaction cycle due
to eTraversalNeeded starts, it won't notice that layers have been removed
and won't populated the ditchedLayers array.

Bug: 4483049

Change-Id: Ibb5989312f871339928ee1aa3f9567770d72969b
2011-05-23 16:13:20 -07:00
Mathias Agopian
02cf75e0ca Fix a race-condtion in SurfaceFlinger that could lead to a crash.
Client::mLayers could be accessed from different threads.
On one side from Client::attachLayer() which is currently
called from a binder thread; on the other side from
Client::detachLayer() which is always called from the main
thread.

This could lead to a corruption of Client::mLayers.

We fix this issue by adding an internal lock to Client.

Bug: 4483046

Change-Id: I5262bf1124d9a65ec6f8ffd8e367356fc33a7536
2011-05-23 16:12:02 -07:00
Conley Owens
7badf9c5e8 am a47c0d29: am 58e4a5e2: Merge "Fixed to draw texture when loadTexture() is called at first time"
* commit 'a47c0d29bec7c242fb8d5ffe206c4c6ff85a178a':
  Fixed to draw texture when loadTexture() is called at first time
2011-04-29 17:15:35 -07:00
Conley Owens
e85e4d4ed2 Merge "Fixed to draw texture when loadTexture() is called at first time" 2011-04-29 10:00:12 -07:00
Conley Owens
56b79aa816 Merge "Fixed to call computeVisibleRegions() when transparent value changed" 2011-04-29 09:59:30 -07:00
Conley Owens
ddc25bb92e am ac505b86: am f0556bb9: am 86d1d747: Merge "Add lock before calling initEglImage"
* commit 'ac505b86b45462d9883f9c36fad0ef85e0885ee4':
  Add lock before calling initEglImage
2011-04-27 13:41:12 -07:00
Conley Owens
a97b487178 am 86d1d747: Merge "Add lock before calling initEglImage"
* commit '86d1d74762e65b6f64c2d4758aa5fd4af6275696':
  Add lock before calling initEglImage
2011-04-27 12:43:19 -07:00
Kobi Cohen Arazi
0d11baf889 Add lock before calling initEglImage
Without that lock, there is a chance of race condition
where while composing a specific index, requestBuf with
the same index can be executed and touch the
same data that is being used in initEglImage.
(e.g. dirty flag in texture)
2011-04-15 10:38:33 -07:00
Ichitaro Kohara
dcab18c9c1 Fixed to draw texture when loadTexture() is called at first time
SW renderer of Stagefright reaches loadTexture() to draw image.
The first time loadTexture() is called, it just initializes OGL
texture, then returns. Thus, the first time call doesn't draw.
This patch fixes to move on to draw stage after the initialization.

Change-Id: I3ec1ad68fb8d376a4ad7aefded1c18a002d175c4
2011-04-05 08:58:44 +02:00
Jamie Gennis
d32a694a0c Merge "SurfaceFlinger: Fix a typo." into honeycomb-mr1 2011-03-18 17:32:25 -07:00
Jamie Gennis
5fd799dab6 SurfaceFlinger: Fix a typo.
This change makes Layer skip its cleanup of its old shared memory region
when the UserClient object that owned the memory has been freed.

Bug: 3429357
Change-Id: I9e4d8eb190f6914dc043674b9bb8dd28e959901b
2011-03-18 16:35:13 -07:00
James Dong
5f7204cb66 Fix missing AOSP copyright headers for more files
o Update the copyright date on InputDispatcher_test.cpp and InputReader_test.cpp
  because these two files were moved from other places to the current location,
  and were actually created in 2010.

bug - 4119349

Change-Id: Ic93b81ddafb58e9e72a2e9e02ca3d9f173d6dca7
2011-03-17 14:43:12 -07:00
Mathias Agopian
d0b55c011a fix [4093196] Device lock up - log spam with SharedBufferStack: waitForCondition(LockCondition) timed out
a memory corruption happned when the buffer pool was resized
(like when playing a video or using camera) and there was
no current active buffer. In this case, the faulty code
would index into an array at position -1 which corrupted
24 bytes of data.

also improved region validation code (ifdef'ed out by default)

Bug: 4093196
Change-Id: I915c581d131148959d720e00e3892e9186ab733d
2011-03-17 00:04:42 -07:00
Jamie Gennis
7a4d0dfd43 SurfaceFlinger: Respect the PROTECTED gralloc bit.
This change makes SurfaceFlinger treat layers for which the active
buffer has the GRALLOC_USAGE_PROTECTED bit set as if they have the
'secure' flag set.

Change-Id: Ic60b6513a63e4bb92ec6ce9fd12fd39b4ba5f674
Bug: 4081304
2011-03-10 16:25:48 -08:00
Mathias Agopian
18570db84e am 33029221: Merge "revert the surface purgatory list and dependent changes." into gingerbread
* commit '33029221619f14577bd0d0e7c2f815abc8f1b8ea':
  revert the surface purgatory list and dependent changes.
2011-03-09 17:11:10 -08:00
Mathias Agopian
f7662afb76 revert the surface purgatory list and dependent changes.
6d0f6cb Revert "Fix [3513017] in lockscreen but showing empty launcher (live wallpaper) only"
6154412 Revert "partially fix [3306150] HTML5 video with H/W acceleration blackout (DO NOT MERGE)"
37c2a37 fix [3408713] Dialog window invisible sometimes

It looks like there is a surface leak, it's unclear where it is.
Without those reverts, this would cause a leak of the associated buffers
which is far more problematic. this change might hide the surface leak.

Bug: 4078032
Change-Id: Iedcda3ffcdd2f69d41047b5c3134c1e867ff90d7
2011-03-09 17:00:41 -08:00
Jamie Gennis
134f042286 ANativeWindow: add queues-to-window-composer check.
This change adds a new 'method' to the ANativeWindow interface to check
whether buffers queued to the window will be sent directly to the system
window compositor.

Change-Id: I4d4b199e328c110b68b250029aea650f03c8724d
Bug: 3495535
2011-03-08 16:49:51 -08:00
Mathias Agopian
5f1e78d730 am df6410dc: Merge "Fix [3513017] in lockscreen but showing empty launcher (live wallpaper) only" into gingerbread
* commit 'df6410dce3dae0bdb7e13118b3878079a1dcce03':
  Fix [3513017] in lockscreen but showing empty launcher (live wallpaper) only
2011-03-07 18:04:06 -08:00
Mathias Agopian
ee65ac8a71 Fix [3513017] in lockscreen but showing empty launcher (live wallpaper) only
37c2a37 fix [3408713] Dialog window invisible sometimes
d35c666 fix [3385504] Surface flinger hang when adding dim surface
1723b04 fix [3389263] OMX.Nvidia.h264.decode fails to shutdown
1b0114f fix a surface leak in SurfaceFlinger

Bug: 3513017

Change-Id: Ia13ed8c9cdcb1f484e177cdcaff687e7c88a10c3
2011-03-07 16:56:16 -08:00
Mathias Agopian
1c71a47a6d remove some logs
Change-Id: Ia476184048ee419e19330a56dc8e6553189f6a24
2011-03-02 18:45:50 -08:00
Jamie Gennis
e7809762e1 am 0dc5fdb9: am e630e5f4: am 919853ce: Merge "Prevent SurfaceFlinger from using layer token 31." into gingerbread
* commit '0dc5fdb9b2fd3b3e2ede5e9607bc21423f357a01':
  Prevent SurfaceFlinger from using layer token 31.
2011-02-27 16:04:42 -08:00
Jamie Gennis
d1ad86f66b am e630e5f4: am 919853ce: Merge "Prevent SurfaceFlinger from using layer token 31." into gingerbread
* commit 'e630e5f49ba15005172dceeda7299569b2d2351f':
  Prevent SurfaceFlinger from using layer token 31.
2011-02-27 15:55:21 -08:00
Jamie Gennis
db7b742f65 am 919853ce: Merge "Prevent SurfaceFlinger from using layer token 31." into gingerbread
* commit '919853ce244f853966817d4adb2f3b7b6e4bbe74':
  Prevent SurfaceFlinger from using layer token 31.
2011-02-27 15:44:36 -08:00
Eric Hassold
ab0225e330 Merge "Correctly handle translucency of device-specific pixel formats" 2011-02-23 14:10:04 -08:00
Ichitaro Kohara
2168e2de24 Fixed to call computeVisibleRegions() when transparent value changed
When some Surfaces are overlapping and one of them changed to
transparent or opaque, the back Surfaces should appear or
disappear. This patch calls SurfaceFlinger::computeVisibleRegions()
to re-calculate region of each Surface to implement the behavior.

Change-Id: Iffb1caf1b4ce28dff252e114fe5b9b07d9c84a6f
2011-02-17 12:31:23 +01:00
Mathias Agopian
a1f47b90ab fix a surface leak in SurfaceFlinger
SF kept a strong reference to ISurface until the
window manager removed the surface from the screen.
This fell appart when running standalone tests, that is
when the window manager wasn't involved.

When the window manager is around, it would clean-up surfaces
even when an application died.

with this change, SF is able to do its own cleanup without
relying on the window manager.

the change is very simple, we simply don't keep a reference
to ISurface and make sure no more than one of them can
be created.

Change-Id: I61f2d7473bf8d4aa651549a846c34cdbb0d0c85a
2011-02-16 15:31:07 -08:00
Eric Hassold
ac45e6bff1 Correctly handle translucency of device-specific pixel formats
Check requested format for device-specific formats, and assume (as
documented in libhardware/include/hardware/hardware.h) this is opaque
layer so no blending is necessary.

Bug: 3215931
Change-Id: Ib4dff8060ac522d201ff1e74807ac340c17d3fa7
2011-02-15 16:20:03 -08:00
Jamie Gennis
8a08392833 Prevent SurfaceFlinger from using layer token 31.
Bug: 2964479
Change-Id: I81e948924bff35b8b300d409f2c09f3779bcdeec
2011-02-10 16:18:36 -08:00
Mathias Agopian
48840800f4 am 50b029d5: am 7ba35f5a: Merge "[3418265] apply layer transformations to the DimLayer." into honeycomb
* commit '50b029d578fa06cd0733dcc7c69cb94f5f824908':
  [3418265] apply layer transformations to the DimLayer.
2011-02-02 16:46:46 -08:00
Mathias Agopian
bce26daaaf [3418265] apply layer transformations to the DimLayer.
with this change DimLayers will behave just like any other layer,
in particular they'll respect the layer transformations.

Change-Id: Icb4a1275e8bca9e3deb5f57c9f9219aaa69f9877
2011-02-02 16:05:39 -08:00
Jamie Gennis
79676ac8e6 am 09443aeb: am 62884505: Merge "Reset ANativeWindow crop on buffer geometry changes." into honeycomb
* commit '09443aeb6470d66f5bc1938b70d74b3e2f9bbbb9':
  Reset ANativeWindow crop on buffer geometry changes.
2011-01-30 15:05:42 -08:00
Jamie Gennis
da04384f18 Merge "Reset ANativeWindow crop on buffer geometry changes." into honeycomb 2011-01-30 15:00:44 -08:00
Mathias Agopian
3cbe436bfd am 8d778b37: am 231da079: Merge "fix [3389263] OMX.Nvidia.h264.decode fails to shutdown" into honeycomb
* commit '8d778b375ccb4945cdcd7cc93272a6d36466ad00':
  fix [3389263] OMX.Nvidia.h264.decode fails to shutdown
2011-01-28 18:43:08 -08:00
Mathias Agopian
3cc2677efc fix [3389263] OMX.Nvidia.h264.decode fails to shutdown
We were still destroying an ANativeWindow's buffer pretty soon
after it was removed from the window manager. This time
we really wait for the ISurace to go away.

Change-Id: I329273fedaeef76ee92836f6180c2c3808389330
2011-01-28 18:23:24 -08:00