Commit Graph

46648 Commits

Author SHA1 Message Date
Mathias Agopian db403e8ff0 split-up Client.h out of SurfaceFlinger.h
Change-Id: I1993bf23e417163749d886283563a93d50b361b4
2012-06-18 16:47:56 -07:00
Jeff Brown d50fdb0209 am bbdad819: am 7c24b1d4: Merge "SF could get stuck waiting for vsync when turning the screen off" into jb-dev
* commit 'bbdad8193ea3a16e9f65f32f4469959577b400e9':
  SF could get stuck waiting for vsync when turning the screen off
2012-06-18 10:52:34 -07:00
Jeff Brown bbdad8193e am 7c24b1d4: Merge "SF could get stuck waiting for vsync when turning the screen off" into jb-dev
* commit '7c24b1d4da5e13329d2105cb2f8285715d920787':
  SF could get stuck waiting for vsync when turning the screen off
2012-06-18 10:32:32 -07:00
Mathias Agopian d3076aca0f Merge "Implement SurfaceFlinger's ANW on top of BufferQueue" 2012-06-15 15:34:55 -07:00
Jeff Brown 7c24b1d4da Merge "SF could get stuck waiting for vsync when turning the screen off" into jb-dev 2012-06-15 15:30:35 -07:00
Mathias Agopian 7d88647473 SF could get stuck waiting for vsync when turning the screen off
When turning the screen off we could have 2 waiters on the
vsync condition: The main vsync waiter as well as one in
onScreenReleased(). We were only signaling the condition though,
so it it would be possible to wake onScreenReleased() without waking
the main vsync thread which would then be stuck in .wait().

We fix this by just using broadcast() when receiving a vsync event.

We also add a broadcast() to signal when the state of
mUseSoftwareVSync changes.  This is important particularly for
the transition from hardware to software vsync because the main
vsync waiter might have observed mUseSoftwareVSync == false
and decided to block indefinitely pending a hardware vsync
signal that will never arrive.

Removed a potentially deadlocking wait for a signal in
onScreenReleased().  The function was trying to wait for the last
vsync event from the hardware to be delivered to clients but there
was no guarantee that another thread would signal it to wake up
again afterwards.  (As far as I can tell, the only other other
thread that might wake it up at this point would be a client
application issuing a vsync request.)  We don't really need to wait
here anyhow.  It's enough to set the mUseSoftwareVSync flag,
wake up the thread loop and go.  If there was a pending vsync
timestamp from the hardware, then the thread loop will grab
it and use it then start software vsync on the next iteration.

Bug: 6672102
Change-Id: I7c6abc23bb021d1dfc94f101bd3ce18e3a81a73e
2012-06-15 14:59:31 -07:00
Jeff Brown b6d00dcf3e am 0512af11: am 16272efb: Add ASSIST keycode.
* commit '0512af11f4b790fb032dc7c344dcdac527faf8ad':
  Add ASSIST keycode.
2012-06-15 12:00:28 -07:00
Jeff Brown 0512af11f4 am 16272efb: Add ASSIST keycode.
* commit '16272efb7af0692266fecdc53b2c6d995bf397b7':
  Add ASSIST keycode.
2012-06-15 11:57:37 -07:00
Jeff Brown 16272efb7a Add ASSIST keycode.
Bug: 6594275
Change-Id: I032b055207d16bfff93ee8a350c0dc52b9102926
2012-06-15 11:46:11 -07:00
Mathias Agopian 3e8b853d67 refactor HWComposer to break dependency with the HAL headers
HWComposer must abstract the HWC HAL entirely, so that the
HAL can continue to evolve (and break binary compatibility)
without breaking SurfaceFlinger. The HWC data structure had
leaked outside of HWComposer, this is now fixed.

We now have an abstract interface that provide all the
needed functionality, HWCompose provides concrete
implementations of it based on the the HWC version.

Change-Id: I40c4676dc986b682ede5520a1c60efe64037b0bb
2012-06-14 11:56:55 -07:00
Mathias Agopian 3e87601170 Implement SurfaceFlinger's ANW on top of BufferQueue
SF now has its own implementation of ANW for the
framebuffer and it uses BufferQueue. FramebufferNativeWindow
is now only used by stand-alone apps.

Change-Id: Iddeb24087df62bd92b0f78e391dda9b97ddc859c
2012-06-13 18:07:47 -07:00
Mathias Agopian fe6102f07c Merge "don't error out when eglTerminate()ing an already terminated display" 2012-06-13 16:27:54 -07:00
Mathias Agopian fe98127eaa don't error out when eglTerminate()ing an already terminated display
so says the EGL specification, section 3.2

Change-Id: Ice60530f8f6e47b4e14e06d2ab8eba799a7688a6
2012-06-13 15:21:21 -07:00
Mathias Agopian 4b3e4ae045 am 1d2eb663: am 2d15fcab: Merge "reduce PB size from 2MB to 512KB" into jb-dev
* commit '1d2eb663ef5cf69aa852045c8a1c1807dfa7039e':
  reduce PB size from 2MB to 512KB
2012-06-12 13:15:10 -07:00
Mathias Agopian 1d2eb663ef am 2d15fcab: Merge "reduce PB size from 2MB to 512KB" into jb-dev
* commit '2d15fcab3e3588cfddb6c7b180faecd3eccce2e5':
  reduce PB size from 2MB to 512KB
2012-06-12 12:42:38 -07:00
Mathias Agopian 2d15fcab3e Merge "reduce PB size from 2MB to 512KB" into jb-dev 2012-06-11 14:43:37 -07:00
Siva Velusamy 25f54e22cc Merge "gltrace: Fixup vertex attrib pointers only for GLES2" 2012-06-11 12:26:03 -07:00
Siva Velusamy 3ef9e9671c gltrace: Fixup vertex attrib pointers only for GLES2
Change-Id: Ibf280c2a4372ce6e598e164eef0d72b7c0a6d1c2
2012-06-11 11:16:56 -07:00
The Android Open Source Project c2a98439e0 am 7c94f9d8: Reconcile with jb-release
* commit '7c94f9d8e07d17803c2b45ac6e115da3fe8827a4':
2012-06-11 09:25:48 -07:00
The Android Open Source Project 7c94f9d8e0 Reconcile with jb-release
Change-Id: Iac1c88f2833e67e52af2bc22a17fa93d30cb44cc
2012-06-11 09:22:35 -07:00
The Android Automerger 7f92bf2bf9 merge in jb-release history after reset to jb-dev 2012-06-11 07:02:56 -07:00
Jeff Brown 04d7eaf138 am 4f0dfaa7: am 9be7caf3: Merge "Include stack traces for certain native processes in bugreport." into jb-dev
* commit '4f0dfaa7c338870eb58d96fe40234505734db728':
  Include stack traces for certain native processes in bugreport.
2012-06-08 15:33:30 -07:00
Jeff Brown 4f0dfaa7c3 am 9be7caf3: Merge "Include stack traces for certain native processes in bugreport." into jb-dev
* commit '9be7caf380b0e2fb29b8813fb8762c2ae417ce95':
  Include stack traces for certain native processes in bugreport.
2012-06-08 15:30:38 -07:00
Jeff Brown 9be7caf380 Merge "Include stack traces for certain native processes in bugreport." into jb-dev 2012-06-08 14:38:30 -07:00
Dianne Hackborn a39d01a79a am 66506eaa: am 49b97e20: I am having second thoughts about 512m for the large heap size.
* commit '66506eaacb8c419a4e5ce5f8de00a0b8fbe0b156':
  I am having second thoughts about 512m for the large heap size.
2012-06-08 14:23:45 -07:00
Dianne Hackborn 66506eaacb am 49b97e20: I am having second thoughts about 512m for the large heap size.
* commit '49b97e20f17af0ba98cdece2b7b93ab0a2199af4':
  I am having second thoughts about 512m for the large heap size.
2012-06-08 14:22:06 -07:00
Colin Cross 52cf768fc2 Merge "surfaceflinger: replace early suspend with binder call from PowerManager" 2012-06-08 14:14:18 -07:00
Dianne Hackborn 49b97e20f1 I am having second thoughts about 512m for the large heap size.
Let's go with 384 megs, half way between the large heap size on
Xoom and 512.

Change-Id: I4a7f2e5a8b2920b49fa53777725e24811145f5f2
2012-06-08 13:02:09 -07:00
Jeff Brown bf7f49238d Include stack traces for certain native processes in bugreport.
Bug: 6615693
Change-Id: I64c3b3ce0bba62d9c332a795f7d979fb753dc27b
2012-06-08 11:45:00 -07:00
Magnus Strandberg bd3ad5b23f am 1ba24574: Aligning native Parcel implementation to Java.
* commit '1ba24574b2debd3ca012adbbd77f12bed4f2d266':
  Aligning native Parcel implementation to Java.
2012-06-08 08:32:28 -07:00
Magnus Strandberg 1ba24574b2 Aligning native Parcel implementation to Java.
The Java implementation of writing the RPC response header
calculates the length of the header including the 4 bytes
specifying the header length but the native implementation
excludes the 4 bytes specifying the length from the header
length.
The native implementation has been aligned to the Java impl.

Change-Id: I325bf272a63152d8fded4cf4e51a906b5a9bfe19
2012-06-08 08:29:01 -07:00
The Android Automerger a38f794b0d merge in jb-release history after reset to jb-dev 2012-06-08 08:20:32 -07:00
Mathias Agopian af1cb83516 am b2c1cfbe: am 0cd545f1: sometimes we would incorrectly scale the content of a surface
* commit 'b2c1cfbe95bed419487455d1b82956f9c5b2a40c':
  sometimes we would incorrectly scale the content of a surface
2012-06-07 17:21:53 -07:00
Mathias Agopian b2c1cfbe95 am 0cd545f1: sometimes we would incorrectly scale the content of a surface
* commit '0cd545f14261d829513e0d6e8fa5e4e4f3372b3d':
  sometimes we would incorrectly scale the content of a surface
2012-06-07 17:16:52 -07:00
Mathias Agopian 0cd545f142 sometimes we would incorrectly scale the content of a surface
this would happen when a resize was pending (ie: we have received
and processed a resize transaction but have not received a buffer
with the right size) and a new transaction came in that didn't
involve a resize, for instance a translate-only transaction.

in this case, we would incorrectly update the drawing state
with the pending size, eventhough we still don't have a buffer
for it.

the solution is quite simple, we never allow the size to propagate
from current to drawing state during the regular transaction processing
(unless we are in fixed-size mode -- meaning we don't need to have
a matching size buffer), this propagation happens later once we
receive the buffer.

Bug: 6624163
Change-Id: I11a97e4b88a7f3a0571ddcfe99c86cb04ce01a4d
2012-06-07 17:12:20 -07:00
Colin Cross 8e533069e5 surfaceflinger: replace early suspend with binder call from PowerManager
SurfaceFlinger will no longer directly synchronize with early suspend.
Instead, PowerManagerService will synchronize with SurfaceFlinger to
ensure that a black frame has been drawn on the display, and then
trigger all early suspend handlers.

Change-Id: I07acdd628440d23fdb69db94319ec5d65d3f4919
2012-06-07 16:28:30 -07:00
The Android Open Source Project 05ef75e4a0 am d7749390: Reconcile with jb-release
* commit 'd77493907eca9cb5ddbe4c72fd758211901f73e1':
2012-06-07 07:55:24 -07:00
The Android Open Source Project d77493907e Reconcile with jb-release
Change-Id: I73f561b3fb9c76aa30ff7de8eab378a1ba5963cc
2012-06-07 07:51:00 -07:00
The Android Automerger ce786fca55 merge in jb-release history after reset to jb-dev 2012-06-07 07:03:01 -07:00
Nick Kralevich 1e339878c1 dumpstate: handle old style "adb bugreport"
When "adb bugreport" was run on previous adb releases, it
called "adb shell dumpstate". In later versions of Android,
this was changed to "adb shell bugreport", which starts
the dumpstate service.

Modify the dumpstate command so that it calls bugreport
when it's not running as root. This allows both
"adb shell dumpstate" and "adb shell bugreport" to have
the exact same output.

Bug: 6391938
Change-Id: Ia32bb9ebc579db3bee7caa0fe66dc3f124d60a12
2012-06-06 16:43:16 -07:00
Jamie Gennis a9a05d73f5 am ec07c8e9: am ba43e0a1: Merge "SurfaceFlinger: remove all GLES scissor calls." into jb-dev
* commit 'ec07c8e9576f6f455e281dc0b619100b29133c0e':
  SurfaceFlinger: remove all GLES scissor calls.
2012-06-06 15:51:16 -07:00
Jamie Gennis ec07c8e957 am ba43e0a1: Merge "SurfaceFlinger: remove all GLES scissor calls." into jb-dev
* commit 'ba43e0a1faee9629ca2d0beb53dd6c44bb9bfd05':
  SurfaceFlinger: remove all GLES scissor calls.
2012-06-06 15:47:29 -07:00
Jamie Gennis ba43e0a1fa Merge "SurfaceFlinger: remove all GLES scissor calls." into jb-dev 2012-06-06 15:45:10 -07:00
Dianne Hackborn acb320b864 am a586c9b1: am be502a02: Add new Dalvik memory limit definition.
* commit 'a586c9b18ad780e32b3c6f8a99d1e9432cc52639':
  Add new Dalvik memory limit definition.
2012-06-06 10:54:28 -07:00
Dianne Hackborn a586c9b18a am be502a02: Add new Dalvik memory limit definition.
* commit 'be502a02c8e0ea232e7339ed60b1754c929ecec1':
  Add new Dalvik memory limit definition.
2012-06-06 10:51:15 -07:00
Mathias Agopian d75f84d641 reduce PB size from 2MB to 512KB
this allows us to enable h/w acceleration on low-end
devices while keeping memory usage down.

Bug: 6557760
Change-Id: I8af2de3038dc2579360b8b73aa452cb7a0e506a9
2012-06-05 21:44:43 -07:00
Jamie Gennis a4c5b19dd7 SurfaceFlinger: remove all GLES scissor calls.
Bug: 6576505
Change-Id: I494b7627f2e271a234706bf49a9490f8ac56c77a
2012-06-05 19:14:44 -07:00
Dianne Hackborn be502a02c8 Add new Dalvik memory limit definition.
This is for a 7in hdpi/tvdpi tablet with 1G of RAM.

That sounds kind-of familiar.  I don't know.  Have I seen
such a thing before?  Maybe.

Bug: 6576049
Change-Id: Iabc245692d5106feec9199eb2b5a3d06e27a9b83
2012-06-05 18:23:11 -07:00
Mathias Agopian da9f3a5c97 am 4929e821: am 4824d40a: sometimes SF would not process a surface resize
* commit '4929e821ffad4e53192ad6d2aa65a6f040c295b8':
  sometimes SF would not process a surface resize
2012-06-05 09:21:56 -07:00
The Android Automerger 76b77c9312 merge in jb-release history after reset to jb-dev 2012-06-05 06:59:22 -07:00