Commit Graph

51832 Commits

Author SHA1 Message Date
Dan Stoza 5d10894c9d am ef47c080: am 958f5011: Merge "libgui: Allow an IGBProducer to disable allocation"
* commit 'ef47c080fd0e7fb8bf1fc4b0ecadae277a22f2cf':
  libgui: Allow an IGBProducer to disable allocation
2015-04-24 16:12:30 +00:00
Dan Stoza 437fb850b0 am f96a7581: am fb6d43ff: Merge "libgui: Change BufferQueue to use free lists"
* commit 'f96a758139be0d5c298abad8e27083b0f0849818':
  libgui: Change BufferQueue to use free lists
2015-04-24 16:12:29 +00:00
Dan Stoza ef47c080fd am 958f5011: Merge "libgui: Allow an IGBProducer to disable allocation"
* commit '958f501189a29e53767f41bc8172e4af8d1ce2bf':
  libgui: Allow an IGBProducer to disable allocation
2015-04-24 16:00:22 +00:00
Dan Stoza f96a758139 am fb6d43ff: Merge "libgui: Change BufferQueue to use free lists"
* commit 'fb6d43ff44bb2b708494749a7f6037505ccd7bf6':
  libgui: Change BufferQueue to use free lists
2015-04-24 16:00:21 +00:00
Dan Stoza 958f501189 Merge "libgui: Allow an IGBProducer to disable allocation" 2015-04-24 15:50:10 +00:00
Dan Stoza fb6d43ff44 Merge "libgui: Change BufferQueue to use free lists" 2015-04-24 15:48:38 +00:00
Dan Stoza 65f68d5cb4 am fece8306: am 56f1f16c: Merge "libgui: Fix some bitrot/warnings in tests"
* commit 'fece83060e9640636f00a97fe236aff353d78c71':
  libgui: Fix some bitrot/warnings in tests
2015-04-23 23:13:56 +00:00
Dan Stoza 17df593eb3 am 9aae16a4: am 82e4d49b: Merge "libui/libgui: Fix errors in parceling"
* commit '9aae16a47d727a2650af0f0892657b41bd88215d':
  libui/libgui: Fix errors in parceling
2015-04-23 23:13:56 +00:00
Dan Stoza fece83060e am 56f1f16c: Merge "libgui: Fix some bitrot/warnings in tests"
* commit '56f1f16c7b01a53282d483259ae80d035cc6496b':
  libgui: Fix some bitrot/warnings in tests
2015-04-23 23:02:49 +00:00
Dan Stoza 9aae16a47d am 82e4d49b: Merge "libui/libgui: Fix errors in parceling"
* commit '82e4d49b0ecb205d49f02cc07496f7508c56443c':
  libui/libgui: Fix errors in parceling
2015-04-23 23:02:48 +00:00
Dan Stoza 56f1f16c7b Merge "libgui: Fix some bitrot/warnings in tests" 2015-04-23 22:56:37 +00:00
Dan Stoza 82e4d49b0e Merge "libui/libgui: Fix errors in parceling" 2015-04-23 22:51:01 +00:00
Dan Stoza 9de7293b0a libgui: Allow an IGBProducer to disable allocation
Adds a new method IGBP::allowAllocation, which controls whether
dequeueBuffer is permitted to allocate a new buffer. If allocation is
disallowed, dequeueBuffer will block or return an error as it
normally would (as controlled by *ControlledByApp).

If there are free buffers, but they are not of the correct dimensions,
format, or usage, they may be freed if a more suitable buffer is not
found first.

Bug: 19801715
Change-Id: I0d604958b78b2fd775c2547690301423f9a52165
2015-04-23 15:28:12 -07:00
Dan Stoza 0de7ea7529 libgui: Change BufferQueue to use free lists
BufferQueue used to choose free buffers by scanning through its array
of slots and picking one based on timestamp. This changes that
mechanism to use a pair of free lists: one with buffers attached and
one without. This makes it easier to choose either type of free slot
depending on the needs of the current operation.

Fixes an issue with the first version of this change, found in bugs
20482952, 20443314, and 20464549.

Bug: 13175420
Change-Id: I9b6e83cfe8f9b4329a976025cb8e291d51fb6d4a
2015-04-23 13:25:11 -07:00
Dan Stoza 423b40f7bd am 368270fd: am de5c15b8: Merge "SF: Always perform sideband transactions"
* commit '368270fd6d4681d2de5502ffc6194ade9a13e65a':
  SF: Always perform sideband transactions
2015-04-23 00:17:59 +00:00
Dan Stoza 368270fd6d am de5c15b8: Merge "SF: Always perform sideband transactions"
* commit 'de5c15b8bd12143829d043fa4ab457600e5682b3':
  SF: Always perform sideband transactions
2015-04-23 00:06:03 +00:00
Dan Stoza de5c15b8bd Merge "SF: Always perform sideband transactions" 2015-04-22 23:57:28 +00:00
Dan Stoza 9e9b044554 SF: Always perform sideband transactions
On normal Layers, we defer applying resize transactions until a buffer
of the correct size arrives. This breaks with sideband streams, because
buffers are not seen by SurfaceFlinger. This change applies
transactions immediately for Layers which have a sideband stream
attached to avoid that problem.

Bug: 20428254
Change-Id: I379d8aaef460d467cdf8432764b4a504928fb65a
(cherry picked from commit c300b8b506536e1bf94ffd8a3b75d46e776923e0)
2015-04-22 16:53:15 -07:00
Dan Stoza 41422980fa am d2c12e4c: am 7637e35d: Merge "Revert "libgui: Change BufferQueue to use free lists""
* commit 'd2c12e4cd394ab9ed642526f8bd0e1b3acd692ae':
  Revert "libgui: Change BufferQueue to use free lists"
2015-04-22 19:17:56 +00:00
Dan Stoza d2c12e4cd3 am 7637e35d: Merge "Revert "libgui: Change BufferQueue to use free lists""
* commit '7637e35d17e06d532b0d2d11c0eef60594726209':
  Revert "libgui: Change BufferQueue to use free lists"
2015-04-22 19:07:10 +00:00
Dan Stoza 7637e35d17 Merge "Revert "libgui: Change BufferQueue to use free lists"" 2015-04-22 18:59:02 +00:00
Dan Stoza 1fc9cc25a4 Revert "libgui: Change BufferQueue to use free lists"
This reverts commit 8dddc99010.

Change-Id: I0b0fed9f1394c6f6ae812f6c562ead4473a8226e
2015-04-22 18:57:39 +00:00
Dan Stoza 3805a00d6e am 91f16b1b: am e647ddde: Merge "libgui: Fix CPU rendering on Surface"
* commit '91f16b1b9c12e897d15198953684d9c7731ca47a':
  libgui: Fix CPU rendering on Surface
2015-04-22 00:30:31 +00:00
Dan Stoza 91f16b1b9c am e647ddde: Merge "libgui: Fix CPU rendering on Surface"
* commit 'e647dddebb11a383c0d95b6dfd0cbe0998d9b644':
  libgui: Fix CPU rendering on Surface
2015-04-22 00:17:33 +00:00
Dan Stoza e647dddebb Merge "libgui: Fix CPU rendering on Surface" 2015-04-22 00:07:52 +00:00
Dan Stoza c62acbd127 libgui: Fix CPU rendering on Surface
When the surface damage code went in, it incorrectly assumed that if
an application was doing CPU rendering, it would be using lock and
unlockAndPost instead of dequeue and queue, so it repurposed the dirty
region too aggressively. This change keeps it from clobbering the
dirty region if a CPU producer is attached.

Bug: 20431815
Change-Id: Id4dfd71378311ea822f0289f6de2d20a7bd84014
2015-04-21 16:56:52 -07:00
Dan Stoza aadb236d2e am 483c76dc: am ff5c1a6b: Merge "libgui: Change BufferQueue to use free lists"
* commit '483c76dcb855fe87adc670c0a0ea1e1ce237dd81':
  libgui: Change BufferQueue to use free lists
2015-04-20 20:35:50 +00:00
Dan Stoza 483c76dcb8 am ff5c1a6b: Merge "libgui: Change BufferQueue to use free lists"
* commit 'ff5c1a6b677d8d25630ffc3d1a868eb98a38ceab':
  libgui: Change BufferQueue to use free lists
2015-04-20 20:24:58 +00:00
Dan Stoza f8cebe5457 libgui: Fix some bitrot/warnings in tests
These tests hadn't been run in a while and had accumulated some rot.
This fixes most of the compile warnings and some tests which fail
incorrectly, but 2 failures remain on N6.

Change-Id: I7fee78cd058a32f4d7df40ec9f899ff767f68517
2015-04-20 13:17:23 -07:00
Dan Stoza eea6d682b8 libui/libgui: Fix errors in parceling
BufferItem and GraphicBuffer were not parceling correctly, which had
not been noticed because the libgui tests (specifically, one that
tests placing a BufferQueue in a separate process from the IGBP/C)
had not been run recently. This change fixes the errors found in
those classes.

Change-Id: Ie224361a534a79115a3481d83ff97f21d154d4f5
2015-04-20 13:17:22 -07:00
Dan Stoza ff5c1a6b67 Merge "libgui: Change BufferQueue to use free lists" 2015-04-20 20:14:14 +00:00
Dan Stoza 8dddc99010 libgui: Change BufferQueue to use free lists
BufferQueue used to choose free buffers by scanning through its array
of slots and picking one based on timestamp. This changes that
mechanism to use a pair of free lists: one with buffers attached and
one without. This makes it easier to choose either type of free slot
depending on the needs of the current operation.

Bug: 13175420
Change-Id: Ic8398e7511bd11a60a1c82e3ad2ee271c9822be1
2015-04-17 09:28:41 -07:00
Dan Stoza 66dc4ee372 am b47584f4: am 2e398e64: Merge "SF: Permit changing DispSync offsets at runtime"
* commit 'b47584f46bd850723679d9212f66df1951bbdf5d':
  SF: Permit changing DispSync offsets at runtime
2015-04-15 21:54:30 +00:00
Dan Stoza b47584f46b am 2e398e64: Merge "SF: Permit changing DispSync offsets at runtime"
* commit '2e398e64b3bc827ec8caaa1457442a8b3d546aed':
  SF: Permit changing DispSync offsets at runtime
2015-04-15 21:46:45 +00:00
Dan Stoza 2e398e64b3 Merge "SF: Permit changing DispSync offsets at runtime" 2015-04-15 21:37:19 +00:00
Dan Stoza 19f06de093 am 40b2a8b4: am e7d20eb0: Merge "SurfaceFlinger: Pass surface damage to HWC"
* commit '40b2a8b48c8b760699bde3f29e3dbee76015cc98':
  SurfaceFlinger: Pass surface damage to HWC
2015-04-15 20:57:33 +00:00
Dan Stoza db4ac3ce63 SF: Permit changing DispSync offsets at runtime
This modifies EventThread such that its phase offsets for both
Choreographer and SurfaceFlinger may be modified at runtime. It also
plumbs this functionality up to the SurfaceFlinger debug interface so
that it is possible to rapidly test different offsets without
restarting the framework.

Change-Id: I426873f8553f931250dfebc9a8a4a78e9f1f4309
2015-04-15 13:56:28 -07:00
Dan Stoza 40b2a8b48c am e7d20eb0: Merge "SurfaceFlinger: Pass surface damage to HWC"
* commit 'e7d20eb000c1d342c8f5f58011023c0eb7cea6d5':
  SurfaceFlinger: Pass surface damage to HWC
2015-04-15 20:46:35 +00:00
Dan Stoza 057a561afb am 57a9f5a0: am fd5f41be: Merge "libgui: Pass surface damage through BufferQueue"
* commit '57a9f5a05327de352896612caf85c991e65ca7be':
  libgui: Pass surface damage through BufferQueue
2015-04-15 20:45:44 +00:00
Dan Stoza 57a9f5a053 am fd5f41be: Merge "libgui: Pass surface damage through BufferQueue"
* commit 'fd5f41bee9bcb2df64c39ff0de7d684e43d90d9c':
  libgui: Pass surface damage through BufferQueue
2015-04-15 20:35:02 +00:00
Dan Stoza e7d20eb000 Merge "SurfaceFlinger: Pass surface damage to HWC" 2015-04-15 20:34:51 +00:00
Dan Stoza a161b6cee9 am c02377e6: am 4d769d8b: Merge "libui: Clean up Fence and Region flattening"
* commit 'c02377e6fd1e7380816ce5c4902330226f20721a':
  libui: Clean up Fence and Region flattening
2015-04-15 20:29:45 +00:00
Dan Stoza f5330845f9 am 0b2ac673: am 22412a34: Merge "libEGL: Add wrappers for partial update functions"
* commit '0b2ac673137128cd781ab304ab1cab20e9335f8e':
  libEGL: Add wrappers for partial update functions
2015-04-15 20:29:44 +00:00
Dan Stoza fd5f41bee9 Merge "libgui: Pass surface damage through BufferQueue" 2015-04-15 20:26:55 +00:00
Dan Stoza ee44edd0ac SurfaceFlinger: Pass surface damage to HWC
Passes the surface damage from the incoming SurfaceFlingerConsumer
BufferQueue down to the hardware composer HAL interface, if the
HWC version number is 1.5 or greater.

Bug: 11239309
Change-Id: Ic4305210593874a8d6deba3319055b2b8c57e926
2015-04-15 13:20:01 -07:00
Dan Stoza 5065a55291 libgui: Pass surface damage through BufferQueue
This change adds support for passing surface damage all of the way
down from the EGL interface through the consumer side of the
BufferQueue. Depends on system/core change
Ie645e6a52b37b5c1b3be19481e8348570d1aa62c

Bug: 11239309
Change-Id: I4457ea826e9ade4ec187f973851d855b7b93a31b
2015-04-15 13:19:38 -07:00
Dan Stoza c02377e6fd am 4d769d8b: Merge "libui: Clean up Fence and Region flattening"
* commit '4d769d8bdc2fd57d34ab0fa4b9208ac0eb67cd61':
  libui: Clean up Fence and Region flattening
2015-04-15 20:18:44 +00:00
Dan Stoza 0b2ac67313 am 22412a34: Merge "libEGL: Add wrappers for partial update functions"
* commit '22412a34c6d61394bad2c6e75105ea42a0c496cb':
  libEGL: Add wrappers for partial update functions
2015-04-15 20:18:43 +00:00
Dan Stoza 4d769d8bdc Merge "libui: Clean up Fence and Region flattening" 2015-04-15 20:13:53 +00:00
Dan Stoza 22412a34c6 Merge "libEGL: Add wrappers for partial update functions" 2015-04-15 20:08:36 +00:00