Commit Graph

48168 Commits

Author SHA1 Message Date
Romain Guy
dbca4a0ee5 Merge "Add Thread::isRunning and Condition::signal(WakeUpType)" into jb-mr2-dev 2013-03-11 21:38:26 +00:00
Romain Guy
9447be65c3 Add Thread::isRunning and Condition::signal(WakeUpType)
The signal() method is useful to choose whether to wake up one or
all threads.

Change-Id: I062ab6d3ddd306a9fb735549ea140e2a76eed75a
2013-03-11 14:34:56 -07:00
Jean-Baptiste Queru
5c19de4d07 am 1d6e52d1: am 50d36d58: am 75bcd737: am 4ddcb758: (-s ours) am 9ef024ec: (-s ours) Reconcile with jb-mr1-release - do not merge
* commit '1d6e52d17e2df913e10925c5e3e652d3421ff320':
2013-03-11 13:44:33 -07:00
Jean-Baptiste Queru
1d6e52d17e am 50d36d58: am 75bcd737: am 4ddcb758: (-s ours) am 9ef024ec: (-s ours) Reconcile with jb-mr1-release - do not merge
* commit '50d36d58369cdf48bc6fcdba96b36c846be8587a':
2013-03-11 13:13:37 -07:00
Jean-Baptiste Queru
50d36d5836 am 75bcd737: am 4ddcb758: (-s ours) am 9ef024ec: (-s ours) Reconcile with jb-mr1-release - do not merge
* commit '75bcd737770f85114673c4411b8e2ecc0dd32bdf':
2013-03-11 13:00:44 -07:00
Jean-Baptiste Queru
75bcd73777 am 4ddcb758: (-s ours) am 9ef024ec: (-s ours) Reconcile with jb-mr1-release - do not merge
* commit '4ddcb75861cfb2835fcc20f2071222d2f55450ba':
2013-03-11 12:41:50 -07:00
jp abgrall
574d6902b7 am ba8abb51: Merge "Ensure dumpstate children die"
* commit 'ba8abb517d1eddebeda62bf907fa446e3c3b81f6':
  Ensure dumpstate children die
2013-03-11 12:28:06 -07:00
Jean-Baptiste Queru
4ddcb75861 am 9ef024ec: (-s ours) Reconcile with jb-mr1-release - do not merge
* commit '9ef024ec8ae0318c89cc65dc0591aa40695393fc':
2013-03-11 12:23:09 -07:00
Jean-Baptiste Queru
9ef024ec8a Reconcile with jb-mr1-release - do not merge 2013-03-11 12:19:30 -07:00
jp abgrall
ba8abb517d Merge "Ensure dumpstate children die" 2013-03-11 18:09:35 +00:00
John Michelau
e7b6cf13f9 Ensure dumpstate children die
Use prctl(PR_SET_PDEATHSIG, SIGKILL) in each forked child to ensure
it dies when dumpstate dies.

This is important for two cases:
- dumpstate runs a timer for each child process.  On expiration, it
  sends SIGTERM to kill the process.  Sometimes SIGTERM isn't enough
  to kill a hung process, so the child lives on.
- When dumpstate is killed by the user before completing, outstanding
  children continue to run and generate output.

Change-Id: I96e0dc918c26d56c9fee53611980ba2edd238712
2013-03-11 11:44:15 -05:00
Mathias Agopian
d577641411 make sure to call compositionComplete after taking a screenshot
older drivers which are doing implicit synchronization need this
or they could deadlock.

Bug: 8341885
Change-Id: Icd980a6be16071678d6151e34725b3c1c547d7ee
2013-03-08 13:54:46 -08:00
Mathias Agopian
7589b2a797 add two libgui tests
we check that the order in which we destroy GLConsumer wrt.
releasing the corresponding EGLSurface via eglMake(Un)Current
doesn't leak a buffer.

On at least 2 devices this test doesn't pass.

Change-Id: I63ab83951b4b0a977f38571158f948cbd9dc7cec
2013-03-08 13:22:03 -08:00
Mathias Agopian
6b2b700956 Merge changes Ibb3b6ff0,I2341e20c into jb-mr2-dev
* changes:
  rename binder services main thread to Binder_*
  limit number of extra binder threads in SF to 4
2013-03-08 20:28:43 +00:00
Jesse Hall
49385ec7c3 Merge "When disconnecting a surface, cancel don't queue the buffer" into jb-mr2-dev 2013-03-07 23:43:56 +00:00
Jesse Hall
86306b5876 Merge "Defer destroying surfaces until not current" into jb-mr2-dev 2013-03-07 23:41:45 +00:00
Mathias Agopian
e3e43b384e rename binder services main thread to Binder_*
When a binder service's main thread joins the thread pool
it retains its name (whatever the exec name was), which is
very confusing in systrace.

we now rename that thread just like its friends in the
thread pool.

Change-Id: Ibb3b6ff07304b247cfc6fb1694e72350c579513e
2013-03-07 15:34:28 -08:00
Mathias Agopian
649b976a00 limit number of extra binder threads in SF to 4
it should be enough and it makes debugging easier.

Bug: 6609290
Change-Id: I2341e20cfcfde184fe1ed9b925215f8fa3481ced
2013-03-07 15:32:47 -08:00
Jesse Hall
5f555569e7 When disconnecting a surface, cancel don't queue the buffer
This isn't really right either, but avoids having an extra buffer that
the consumer has to drain which it might not be expecting.

To be correct, disconnecting a surface from a context should retain
the current buffer and continue using it when reconnected. The buffer
should only be canceled when the surface is destroyed. That will wait
for a later change.

Bug: 8320762
Change-Id: I5efa39c741193ca4f5612ea9de001ccbb683b345
2013-03-07 15:21:26 -08:00
Jesse Hall
78141e3acc Defer destroying surfaces until not current
Bug: 8320762
Change-Id: I1320cf87923bcc5b795a86a13193363a49e29653
2013-03-07 15:10:59 -08:00
Jean-Baptiste Queru
6c337e7a66 resolved conflicts for merge of bfb2aa46 to jb-mr2-dev 2013-03-07 11:35:19 -08:00
Jean-Baptiste Queru
bfb2aa4652 Merge "Tweaks for forward compatibility" 2013-03-07 19:08:08 +00:00
Mathias Agopian
3cd153a033 another attempt to fix the build
Change-Id: Ie0245db97170cca9a2cd8783b0fd512daf0d30a6
2013-03-06 22:37:33 -08:00
Mathias Agopian
84b470d78f attempt to fix build
Change-Id: Ifb186d2f157ad02f593bf9b681aab53575f183ce
2013-03-06 21:34:39 -08:00
Mathias Agopian
1f758231c2 Merge changes I7f696e42,I51c6df3c into jb-mr2-dev
* changes:
  Make GraphicBuffer a RefBase
  Fix RefBase debugging. O_CREAT must specify the mode.
2013-03-07 04:52:24 +00:00
Mathias Agopian
2be4e8ff23 workaround to fix screenshot leak on N4
Bug: 8322020

Change-Id: Ie60af0eb431866b8d64b2674ae7bd8b5ee05f5d6
2013-03-06 20:44:16 -08:00
Mathias Agopian
e041716ba1 Make GraphicBuffer a RefBase
- this gives us access to RefBase's refcounting debugging
- it doesn't cost much because GraphicBuffer already has a vtable

Change-Id: I7f696e421fea14b14bfaeb83880689b83e96af4d
2013-03-06 18:50:52 -08:00
Mathias Agopian
dbf146f1d6 Fix RefBase debugging. O_CREAT must specify the mode.
Change-Id: I51c6df3cfd59b20ca73c3edee86bc2f74dbde1b1
2013-03-06 17:52:34 -08:00
Mathias Agopian
438ca07b6b Merge changes I66511c08,Ia051949f,Ic7451365,I5b571a4c into jb-mr2-dev
* changes:
  Get rid of LayerBase.
  Make LayerDim a regular Layer instead of a LayerBase
  fold LayerBaseClient into LayerBase
  Remove support for ScreenshotLayer
2013-03-07 01:47:34 +00:00
Jean-Baptiste Queru
d82bea798e Tweaks for forward compatibility
Change-Id: I136fcbbc14072ee5f5281d09445f28d083ed3ce1
2013-03-06 15:26:54 -08:00
Mathias Agopian
13127d8921 Get rid of LayerBase.
The functionality of LayerBase and Layer is folded
into Layer. There wasn't a need for this abstraction
anymore.

Change-Id: I66511c08cc3d89009ba4deabf47e26cd4cfeaefb
2013-03-05 19:52:30 -08:00
Mathias Agopian
2f73af9212 Make LayerDim a regular Layer instead of a LayerBase
this is in preparation to get rid of LayerBase entirely

Change-Id: Ia051949fc5205fd87371331145356ee11598a597
2013-03-05 19:52:30 -08:00
Mathias Agopian
b79f61d41e fold LayerBaseClient into LayerBase
Change-Id: Ic745136522df59c42f0885fd969e75ea55d09f01
2013-03-05 19:52:30 -08:00
Mathias Agopian
089a15298e Remove support for ScreenshotLayer
Change-Id: I5b571a4cf3faa77d2c4aca916fa4bd00a1065bb9
2013-03-05 19:52:29 -08:00
Jeff Sharkey
175264b09c Return NO_MEMORY when glReadPixels() fails.
Change-Id: Ic66134ef457e8442ae9135e9ec50e3d02932a253
2013-03-05 18:00:01 -08:00
Igor Murashkin
f082323c0d Merge "CpuConsumer_test: Extend test with new formats RGBA8888 and optional Y8/Y16" into jb-mr2-dev 2013-03-05 21:58:00 +00:00
Igor Murashkin
29e2047cb4 CpuConsumer_test: Extend test with new formats RGBA8888 and optional Y8/Y16
Change-Id: I0a0f6ce73516883bf50c749a1759abbdb3748e08
2013-03-05 13:55:31 -08:00
Andy McFadden
7284145d56 Add eglPresentationTimeANDROID
Added EGL extension to set a timestamp on a surface.

Also, fix JNI encoding of "long" in glgen.

Bug 8191230

Change-Id: I38b7334bade3f8ff02bffe600bb74469ef22c164
2013-03-05 10:10:59 -08:00
Mathias Agopian
306f18c5fb Merge "rework screenshot API and implementation" into jb-mr2-dev 2013-03-05 02:30:13 +00:00
Jesse Hall
eabe3140f1 Merge "Init displays to null layer stack" into jb-mr2-dev 2013-03-05 01:04:54 +00:00
Mathias Agopian
f59d2f9070 Merge changes I0e90b3f3,Ib7769bde,I4c25f34f,I1ec6400a into jb-mr2-dev
* changes:
  implement display projection clipping in h/w composer
  refactor the crop region for hwc is calculated/set
  apply the projection's viewport to the visibleregion passed to hwc
  set correct crop rectangle in LayerBase::setCrop
2013-03-04 22:12:24 +00:00
Jesse Hall
006a601f22 Fix reading NULL Surfaces from Parcels
Writing a NULL Surface was being read as a non-NULL Surface with NULL
mGraphicBufferProducer. Before the SurfaceTextureClient -> Surface
refactoring, you'd get a NULL Surface, and some code relies on that.

Bug: 8291161
Change-Id: I477bfe8882693e53a5f604a3d2c9e3cfe24473b4
2013-03-02 20:06:42 -08:00
Mathias Agopian
2a9fc493df rework screenshot API and implementation
- SurfaceFlinger now supports to take a screenshot
  directly into an IGraphicBufferProducer

- reimplement the IMemoryHeap screenshot on top
  of the above

- reimplement LayerScreenshot such that its
  BufferQueue is directly used as the destination
  of the screenshot. LayerScreenshot is now a thin
  wrapper around Layer

Bug: 6940974

Change-Id: I69a2096b44b91acbb99eba16f83a9c78d94e0d10
2013-03-01 22:53:39 -08:00
Dave Burke
bbb57f3331 Revert "Change SurfaceControl setPosition to take floats"
Temporary, to fix weekend build, until we get Nvidia code drop.

This reverts commit 9a867a8798

DO NOT MERGE

Change-Id: I7b5dbc4db46ef3d97dc8598057d5487d6971178b
2013-03-01 16:06:48 -08:00
Nick Kralevich
98ca63e6d1 am 22641851: Merge "dumpstate: use correct header file."
* commit '22641851c48fee6e79d01adcfab01c0b625cfb3c':
  dumpstate: use correct header file.
2013-03-01 18:05:56 +00:00
Nick Kralevich
5ec3e781c5 Merge "installd: use correct header file." into jb-mr2-dev 2013-03-01 17:42:32 +00:00
Nick Kralevich
22641851c4 Merge "dumpstate: use correct header file." 2013-03-01 16:39:58 +00:00
Jesse Hall
01e29054e6 Init displays to null layer stack
When a display is added, initialize it to use an empty layer stack, so
if it is somehow visible it will show black. It will be assigned the
real layer stack -- along with a projection and other properties -- by
window manager soon. Normally a display remains blanked until window
manager has decided what to show on it, but for HDMI connected at boot
that isn't currently the case.

Bug: 7258935
Change-Id: Ic9bb25f7a9b8d9d3772b097ab1d6fa03bc8780a1
2013-02-28 21:05:30 -08:00
Mathias Agopian
3da1672acb implement display projection clipping in h/w composer
- cropping to the projection's "viewport" is "simply"
  accomplished by intersecting it with the window crop
  expressed in layerstack space.

Bug: 7149437
Change-Id: I0e90b3f37945292314b5d78a8f134935967e8053
2013-02-28 18:43:04 -08:00
Mathias Agopian
a8bca8d84b refactor the crop region for hwc is calculated/set
- the crop region is now always calculated and set
  in LayerBase::setGeometry which uses new virtuals to
  access the "content" crop and transform (which are
  provided by the Layer subclass)

Change-Id: Ib7769bdec0917dd248f926600c14ddf9ea84897a
2013-02-28 18:43:04 -08:00