Commit Graph

52433 Commits

Author SHA1 Message Date
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
c7a3cd6228 am 423b40f7: am 368270fd: am de5c15b8: Merge "SF: Always perform sideband transactions"
* commit '423b40f7bd004a8ab5bca887e3855cd20c6bcc28':
  SF: Always perform sideband transactions
2015-04-23 02:17:42 +00: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
83e9f6e75e am 41422980: am d2c12e4c: am 7637e35d: Merge "Revert "libgui: Change BufferQueue to use free lists""
* commit '41422980fabb087390791d951c28fef072d93be1':
  Revert "libgui: Change BufferQueue to use free lists"
2015-04-22 22:18:58 +00: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
2bff43a912 am 3805a00d: am 91f16b1b: am e647ddde: Merge "libgui: Fix CPU rendering on Surface"
* commit '3805a00d6efef02535aaed96f412e0c55a9875f8':
  libgui: Fix CPU rendering on Surface
2015-04-22 00:47:35 +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
Wale Ogunwale
1c38c4192b Merge "Fixed build error with clang/llvm." 2015-04-22 00:27: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
Michael Wright
e893dddb3f Merge "Default to TOOL_TYPE_STYLUS for external stylus events." 2015-04-21 21:46:32 +00:00
Michael Wright
5e17a5de88 Increase stylus data timeout.
Temporarily increase the stylus timeout while we figure out where the
delay in BT information is coming from.

Change-Id: I27ab5a4db4ad14358c6e6803961612420371fce9
2015-04-21 22:45:13 +01:00
Michael Wright
45ccacf937 Default to TOOL_TYPE_STYLUS for external stylus events.
Change-Id: Ife6a7c4802e8b1ec1ff8445e639f8a6d90a00592
2015-04-21 22:41:15 +01:00
Michael Wright
e2434fecb9 Revert "Increase stylus data timeout."
This reverts commit 8b0673ce0c.
2015-04-21 22:37:02 +01:00
Michael Wright
671024b4cd Merge "Increase stylus data timeout." 2015-04-21 21:23:44 +00:00
Wale Ogunwale
a3206e690b Fixed build error with clang/llvm.
Change-Id: Ideacdc974ebad542df724464ccba9fcfb2b7ea91
2015-04-21 14:00:27 -07:00
Joseph Cooper
2fba96360e Merge "Introduces navigation keycodes." 2015-04-21 15:31:42 +00:00
Dan Sandler
8f91a6fb04 Merge "Add ashmem stats to Parcels" 2015-04-21 14:10:23 +00:00
Michael Wright
8b0673ce0c Increase stylus data timeout.
Sometimes stylus data will be delayed by 30 - 40ms. By increasing the
timeout we pretty much always pick up stylus data and the touch
latency feels surprisingly small.

Change-Id: I39f5b9037ce0444b1e957149d3f1c3a3137804cb
2015-04-21 15:06:43 +01:00
Michael Wright
3804378e6a Merge "Always update external stylus state." 2015-04-20 22:35:38 +00:00
Michael Wright
4af18b90c1 Always update external stylus state.
This prevents us from dropping any states (namely the pressure
transition from non-zero to zero) if we get the touch up before we
get the stylus data.

Change-Id: Ifc198628d35b7079dc5ec23d81f9681d122757a0
2015-04-20 22:03:54 +01:00
Dan Stoza
97ef903db1 am aadb236d: am 483c76dc: am ff5c1a6b: Merge "libgui: Change BufferQueue to use free lists"
* commit 'aadb236d2e944791c1e7600eae9439fcb8a6caa9':
  libgui: Change BufferQueue to use free lists
2015-04-20 20:59:55 +00: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
Michael Wright
b85401d4ba Mark all InputReaderContext methods as pure virtual
Also, fix the build.

Change-Id: I45d3daa8c0710b2f9421e8ffd011d2d39c05e030
2015-04-17 18:35:15 +01:00
Michael Wright
842500e146 Fuse stylus and touch screen data.
TODO: Ensure we dispatch new pressure and button data when stylus
is stationary.

Change-Id: I10a665a9b81ff4b9acd01bf72f0fc2e0c2abc203
2015-04-17 16:37:16 +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
Tim Kilbourn
e5364c8c02 Add method stubs for input device properties.
Change-Id: Icd785cb55ae2b225102fa249240837a91a41aae3
2015-04-16 11:12:49 -07:00
Joseph Cooper
e50376eef0 Introduces navigation keycodes.
These four new navigation keycodes are intended to be used to
navigate a tree hierarchy or list of items.  They should be used to
allow the user to advance forward or backward within a list of
sibling items, expand the currently selected item to navigate the
item's children, or back out from the current item to its parent
item or state.

Change-Id: I4781e9d7756ed00ca14d8d4c743da3cc0e68ea6c
2015-04-16 09:09:17 -07:00
Dan Sandler
aa5c2346c7 Add ashmem stats to Parcels
Requires change Ifaf115da in frameworks/base.

Bug: 20079551
Change-Id: Ifaf115dabd1a59cdb1b46e2d49c41f64ac107de4
2015-04-16 04:08:53 +00:00
Vinit Deshpande
b5b51bc4a6 Merge "am e06cba2..e06cba2 from mirror-m-wireless-internal-release" 2015-04-16 02:36:28 +00:00
Dan Stoza
d5296b342e am 66dc4ee3: am b47584f4: am 2e398e64: Merge "SF: Permit changing DispSync offsets at runtime"
* commit '66dc4ee3729c4e6fea624805a1e58843ce920477':
  SF: Permit changing DispSync offsets at runtime
2015-04-15 22:16:03 +00: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
91dea34652 am 19f06de0: am 40b2a8b4: am e7d20eb0: Merge "SurfaceFlinger: Pass surface damage to HWC"
* commit '19f06de0930e0f741ed113c37faf306fceee39bd':
  SurfaceFlinger: Pass surface damage to HWC
2015-04-15 21:42:44 +00:00
Dan Stoza
2992fcd0b2 am 057a561a: am 57a9f5a0: am fd5f41be: Merge "libgui: Pass surface damage through BufferQueue"
* commit '057a561afbf30ede99b5ec627deec7ee11701f6d':
  libgui: Pass surface damage through BufferQueue
2015-04-15 21:42:43 +00:00
Dan Stoza
45e51aedac am a161b6ce: am c02377e6: am 4d769d8b: Merge "libui: Clean up Fence and Region flattening"
* commit 'a161b6cee9253a17be6b8dc232b05a41fde0030a':
  libui: Clean up Fence and Region flattening
2015-04-15 21:42:36 +00:00
Dan Stoza
adb146d07a am f5330845: am 0b2ac673: am 22412a34: Merge "libEGL: Add wrappers for partial update functions"
* commit 'f5330845f9c4f03cd65296bd30e2ee00f77e0dcf':
  libEGL: Add wrappers for partial update functions
2015-04-15 21:42:35 +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