5031 Commits

Author SHA1 Message Date
Romain Guy
6adbb90335 am 5ea0465d: am 8299f683: Merge "Use float textures to render gradients when possible" into jb-mr2-dev
* commit '5ea0465d4550944e2e5ac953a5c18ef31f31ec4d':
  Use float textures to render gradients when possible
2013-04-05 15:46:37 -07:00
Michael Wright
bdb706e48d Merge "Pipe through device resolution information" into jb-mr2-dev 2013-04-05 21:43:31 +00:00
Romain Guy
8299f683f3 Merge "Use float textures to render gradients when possible" into jb-mr2-dev 2013-04-05 21:31:57 +00:00
Romain Guy
b488004289 Use float textures to render gradients when possible
Float textures offer better precision for dithering.

In addition this change removes two uniforms from gradient shaders.
These uniforms were used to dither gradients but their value is
a build time constant. Instead we hardcode the value directly in
the shader source at compile time.

Change-Id: I05e9fd3eef93771843bbd91b453274452dfaefee
2013-04-05 14:17:17 -07:00
Jeff Brown
ae9d6aa6d9 am 4c2a7b23: am 4a706bc6: Merge "Correctly manage the lifecycle of IME InputChannels." into jb-mr2-dev
* commit '4c2a7b23f5f012cf00357035f840a32d4da20eb5':
  Correctly manage the lifecycle of IME InputChannels.
2013-04-05 14:09:41 -07:00
Jeff Brown
4a706bc6f1 Merge "Correctly manage the lifecycle of IME InputChannels." into jb-mr2-dev 2013-04-05 20:57:01 +00:00
Jeff Brown
1951ce86c2 Correctly manage the lifecycle of IME InputChannels.
InputChannels are normally duplicated when sent to a remote process
over Binder but this does not happen if the recipient is running within
the system server process.  This causes problems for KeyGuard because the
InputMethodManagerService may accidentally dispose the channel
that KeyGuard is using.

Fixed the lifecycle of InputChannels that are managed by the IME
framework.  We now return a duplicate of the channel to the application
and then take care to dispose of the duplicate when necessary.
In particular, InputBindResult disposes its InputChannel automatically
when returned through Binder (using PARCELABLE_WRITE_RETURN_VALUE).

Bug: 8493879
Change-Id: I08ec3d13268c76f3b56706b4523508bcefa3be79
2013-04-04 22:45:12 -07:00
Michael Wright
c6091c64c9 Pipe through device resolution information
Bug: 8424494
Change-Id: Iafeeee0d5cd29342c1cdc86b9616222aaa5d1b94
2013-04-04 18:10:37 -07:00
Romain Guy
f7648b7f24 am 21af446c: am a151ef8c: Merge "First OpenGL ES 3.0 based optimization" into jb-mr2-dev
* commit '21af446ce9704bdc465bf15755148c5de50ea019':
  First OpenGL ES 3.0 based optimization
2013-04-04 16:01:59 -07:00
Romain Guy
a151ef8c66 Merge "First OpenGL ES 3.0 based optimization" into jb-mr2-dev 2013-04-04 22:51:38 +00:00
Chris Craik
59f5015fc3 am 233f6730: am de4f8c38: Merge "Traverse layers in update order" into jb-mr2-dev
* commit '233f67302e7d35242613c5d4502459b085868595':
  Traverse layers in update order
2013-04-04 15:35:06 -07:00
Chris Craik
de4f8c3872 Merge "Traverse layers in update order" into jb-mr2-dev 2013-04-04 22:27:00 +00:00
Chris Craik
1206b9bba9 Traverse layers in update order
bug:8540150

Layers now require traversal in update order, as it will be child
first, then parent for layer-in-layer

Fixes issue with deferred layer playback not flushing in order, and
thus child not painting before parent

Also fixes DisplayList to only be cleared after flush in deferred list

Change-Id: I2f284d00079cdb20798aeef6a1c94e823940db40
2013-04-04 14:55:43 -07:00
Romain Guy
0908764b2b First OpenGL ES 3.0 based optimization
This change uses a new OpenGL ES 3.0 feature to upload less data when
the font cache needs to be update. This can result in significant
performance improvements on device with large textures or with locales
that use a lot of glyphs (CJK for instance.)

This change also fixes various unpack alignment issues. The unpack
alignment, as well as the unpack row length, is not texture specific
but a global state that affect all glTex/SubImage2D calls. Some of
them were missing the appropriate glPixelStorei() call. This could
result in corrupted textures.

Change-Id: Iefb429d4d0d0b4e0faeadf27daafee6d30a21d85
2013-04-04 12:27:54 -07:00
Romain Guy
2a54c185a6 am ae74f598: am eaadd123: Merge "Add internal API to query GL version number" into jb-mr2-dev
* commit 'ae74f59856d4f790c173857bb8024291d585861d':
  Add internal API to query GL version number
2013-04-04 11:03:19 -07:00
Romain Guy
eaadd123a7 Merge "Add internal API to query GL version number" into jb-mr2-dev 2013-04-04 17:53:06 +00:00
Romain Guy
df1dc28ba0 Add internal API to query GL version number
Change-Id: Idc02efc237b8e97445a9bab05c291bf193c7f279
2013-04-04 10:50:48 -07:00
Dan Morrill
e4d9a01bfc Phase 1 of refactoring SystemServer.
SystemServer is currently a monolithic class that brings up key system
services. This change is the first phase of refactoring it to be more
configurable. Specifically, it adds a set of on/off switches used to control
startup of individual services. Future plans include finer grained controls
and a more explicit and consistent startup sequence for these services.

Change-Id: I7299f5ce7d7b74a34eb56dffb788366fbc058532
2013-04-04 09:49:22 -07:00
Chris Craik
ff7ae2dccd Merge "Correct save/restore match up" into jb-mr2-dev 2013-04-03 20:31:49 +00:00
Chris Craik
e0b39fc18c Merge "Account for hairlines in quick rejection logic" into jb-mr2-dev 2013-04-03 19:43:47 +00:00
Chris Craik
1ed30c907f Correct save/restore match up
bug:8480642

With the additional save/restore around the operations in flush, the
stored restore batches weren't matching up to the correct saves.

Change-Id: I2f48f19009bd97289b6973283f43dc8d3e35affd
2013-04-03 12:37:35 -07:00
Chris Craik
e7c69c6fe3 Account for hairlines in quick rejection logic
bug:8531373
Change-Id: I35444014f23fc61da687694fccc0d13bce718793
2013-04-03 09:55:48 -07:00
Chris Craik
16ecda5317 Update view's alpha and layer docs
bug:8501661

Makes the performance issues and interaction with layer type/paint
more clear.

Additionally, corrects change from 47ab7d6612e2b5b8b66fb261dafef7c91264e173
to still allow displayList alpha to override layer paint

Change-Id: Ic94d75865700820489370461cd8ac9f9077a8d90
2013-04-01 17:21:35 -07:00
Romain Guy
02b49b70ed Prevent crash when a single layer is enqueued several times for updates
Bug #8504687

Change-Id: I9b01bbc4e3f37af23dfe5e68d3d03ad3d238b94a
2013-03-29 12:37:16 -07:00
Romain Guy
5399a5648f Merge "Update layers to clear them Bug #8489505" into jb-mr2-dev 2013-03-28 23:42:41 +00:00
Elliott Hughes
94eaab4a5d am 3ae30483: am a19647d3: Merge "Correct executable bit for source files [Take 2]"
* commit '3ae30483777708ff3a4f59a4fa75c6a76213cc30':
  Correct executable bit for source files [Take 2]
2013-03-28 14:29:21 -07:00
Chris Craik
dc1975ea71 Merge "Fix issues related to saveLayer/restore deferral" into jb-mr2-dev 2013-03-28 20:46:47 +00:00
Romain Guy
696dcf84a3 Update layers to clear them
Bug #8489505

A layer should be updated even with an empty deferred display list. It is
possible for a layer to request an update just to execute a clear which
will be handled by LayerRenderer::prepareDirty().

Change-Id: Iffb98bd71d6caa8d4a701df98197676f9423c0c2
2013-03-28 13:06:58 -07:00
Romain Guy
58f7689ac6 Merge "Don't crash when making a layer larger than supported dimensions Bug #8437401" into jb-mr2-dev 2013-03-28 18:50:53 +00:00
Chris Craik
7273daace9 Fix issues related to saveLayer/restore deferral
bug:8464795

Changes drawModifiers and alpha to be restored for all operations,
since saveLayer/restore use these values, not just draw operations

Also forces a renderer state restoration before a deferred restore op
is played back, in case it is associated with a saveLayer that
doesn't have the save_clip flag set

Change-Id: I9da5d44fefbfffdee164c98f4f139843dacf85df
2013-03-28 11:33:13 -07:00
Romain Guy
ce4a7dfc51 Don't crash when making a layer larger than supported dimensions
Bug #8437401

A misplaced ref count decrement was causing a crash when attempting to
resize a layer to dimensions larger than the max texture size supported
by the GPU.

This change fixes the crash and clarifies the warnings to make it more
obvious what's happening.

Change-Id: I632dc1b90aaa2605969e10523491a81c4922d3dc
2013-03-28 11:32:33 -07:00
Chris Craik
9cd6451215 Merge "Set ignore flag during deferred savelayer" into jb-mr2-dev 2013-03-27 19:47:59 +00:00
Chris Craik
408eb12631 Set ignore flag during deferred savelayer
bug:8471552

Additionally, add ignore check for draw functor

In deferred mode, if we don't set ignore, a 0 alpha displayList won't
be quickRejected, and not only would its contents be needlessly
deferred, but upon playback any functors would be drawn, ignoring the
state of the snapshot.

Change-Id: Ib1edb3252080f674254086edee6f965f0efcce78
2013-03-27 10:38:36 -07:00
Chirayu Desai
3e4a3ea2ff Correct executable bit for source files [Take 2]
Change Ieb51bafb46c895a21d2e83696f5a901ba752b2c5 left out some
files, this fixes them.

Change-Id: Ia949a8581668836ea0251602e048f09c852f5169
2013-03-27 16:52:35 +05:30
Romain Guy
4500a8d5d7 Path precaching creates duplicate cache entries
Bug #8478275

Change-Id: Ib541ea051e42e01cc0d277790e9c09de38ef72ee
2013-03-26 17:29:51 -07:00
Romain Guy
96885eb480 Avoid multiple font cache texture uploads
Bug #8378964

This change defers drawing into layers until after the renderer for FBO0
is ready to draw. At that point, all the precaching is done which means
all glyphs can be uploaded at once in the font caches.

Change-Id: Ie1f7a7ff30f76f06fb3dbc72c7d05e66207d1ecb
2013-03-26 15:25:07 -07:00
Chris Craik
a4e16c58c9 Restore final canvas state after deferred flush
bug:8450062

- Fixes overdraw indication with DeferredDisplayList
- Fixes drawHardwareLayer called after flush

Additionally changes drawLayer to pass its paint to native via setLayerPaint

Wrap flush in save/restore so that reordering doesn't affect final
transform

Change-Id: I08befa42c28500da6387699eefd4be28aedf9f4c
2013-03-22 11:54:51 -07:00
Chris Craik
741f6bb810 Merge "Isolate tiling clip state from snapshot" into jb-mr2-dev 2013-03-21 22:08:13 +00:00
Chris Craik
5f80362355 Isolate tiling clip state from snapshot
bug:8409891

Snapshots frequently have their clip overwritten due to applying
deferred state - now, store tiling clip information in a separate
rect, outside of the snapshot so it isn't overwritten.

Change-Id: I21ca4c45dcd802eae99e8de86f11525196777ccb
2013-03-21 14:39:04 -07:00
Romain Guy
c5cbee7d78 Stop worker threads on memory trim & fix bad pointer access
Change-Id: I6fe7e31aeb6dd41fa65ab952caed97bc2da510d7
2013-03-20 19:16:53 -07:00
Romain Guy
9eac52698b Merge "Optimize text GL setup" into jb-mr2-dev 2013-03-21 01:54:42 +00:00
Chris Craik
7564c716bb Merge "Use snapshot alpha in all layer drawing" into jb-mr2-dev 2013-03-21 01:17:29 +00:00
Chris Craik
e83569ca76 Use snapshot alpha in all layer drawing
Change-Id: Icc093390da2fc36b2b6693d0e5e4357b2f730bf9
2013-03-20 17:24:36 -07:00
Romain Guy
257ae3502c Optimize text GL setup
Only performs the GL setup steps when at least one glyph is drawn.
This change also skips various draw operations when the specified
paint draws with alpha = 0.

Change-Id: I9eda148b0503acffc552ee19196f5d52e958a1a2
2013-03-20 16:35:05 -07:00
Chris Craik
d90144db52 Update snapshot upon saveLayer deferral
bug:8409891

In order to defer fbo-targetting saveLayer operations, it's necessary
to update the snapshot at defer time so that deferred display state
(namely, clip and transform) are fbo relative.

Re-enables deferring, as the issues with saveLayer are fixed.

Change-Id: I74b0779bc732675c747208f0757c3ea85f6dfbed
2013-03-20 16:32:53 -07:00
Chris Craik
4494599e5a Merge "Use snapshot alpha for layers" into jb-mr2-dev 2013-03-20 22:22:44 +00:00
Romain Guy
ec3928bf09 Merge "Reduce number of glDraw calls when drawing text" into jb-mr2-dev 2013-03-20 02:29:47 +00:00
Romain Guy
661a87ec28 Reduce number of glDraw calls when drawing text
This change moves the mesh buffer from FontRenderer to CacheTexture
to help reduce the number of texture binds and glDraw calls when
drawing text that spans across multiple textures.

Change-Id: I7de574d88313ca3672879ca878c253ff5f131fc1
2013-03-19 17:24:13 -07:00
Romain Guy
df9d2ba9b0 Merge "Minimize texture binds when drawing text" into jb-mr2-dev 2013-03-19 18:56:19 +00:00
Romain Guy
115096f50a Minimize texture binds when drawing text
When several CacheTextures are used to draw text, sort the
draw batches by texture ID to minimize state changes in the
driver.

This change also tweaks the font cache size and renames
a property that was too long to be set using setprop.

Change-Id: I0a36dfffe58c9e75dd7384592d3343c192d042b1
2013-03-19 11:32:41 -07:00