1732 Commits

Author SHA1 Message Date
Tom Hudson
984162fb7e Replace StatefulBaseRenderer inheritance with CanvasState member
Incrementally disentangles DisplayListRenderer and OpenGLRenderer.
Introduces abstract CanvasStateClient class to share three functions
between the two.

Design doc at https://docs.google.com/a/google.com/document/d/1PY1JF7AfPEF2UOUAnETS5j_4_tnJShTAMExvpCJfP8o/edit?usp=sharing.

BUG:15672762
R=djsollen@google.com,ccraik@google.com,jreck@google.com

Change-Id: Ic9fdffe18808e7d921ad06d01ea1ca25b2ad6f23
2014-11-04 17:16:36 -05:00
Tom Hudson
107843de45 Remove status return from all uirenderer::Renderer functions
This moves the interface closer to android::Canvas. The only use of
return values was in the OpenGLRenderer subclass; that is replaced
with an internal dirty flag: returned from finish(), checked by
CanvasContext.

This is part of a series of CLs to refactor the Graphics JNI bindings.

BUG:15672762
R=djsollen@google.com,ccraik@google.com

Change-Id: Ifd533eb8839a254b0d3a5d04fc5a2905afdfc89e
2014-11-04 15:49:44 -05:00
Rob Tsuk
0d00b27ecf am 6bd8d825: am c4aea977: am e6c0bda5: Merge "Make points drawn with default paint visible" into lmp-mr1-dev
* commit '6bd8d825b29fa4db3046644f36c2256a5d0600e0':
  Make points drawn with default paint visible
2014-11-04 15:32:41 +00:00
Rob Tsuk
6bd8d825b2 am c4aea977: am e6c0bda5: Merge "Make points drawn with default paint visible" into lmp-mr1-dev
* commit 'c4aea977cd35c423132382cf0ae1f3238e2c7d10':
  Make points drawn with default paint visible
2014-11-04 15:29:10 +00:00
Rob Tsuk
e6c0bda5dd Merge "Make points drawn with default paint visible" into lmp-mr1-dev 2014-11-04 15:20:00 +00:00
Rob Tsuk
b7c26562d0 Make points drawn with default paint visible
When no stroke width is set, use 0.5 instead of 0.25 to make
sure the resulting rectangle spans at least one pixel.

Bug: 15455111
Change-Id: Id0a4b6d014c542ffc98b13a032f88ae0ce69b3a1
2014-11-04 00:31:45 +00:00
John Reck
6398d2d42e am 8a8a4055: am 541641d0: Merge "Fix counting" into lmp-mr1-dev automerge: 5c8d135
* commit '8a8a40556ea3b0fb4cc8cd1ec063fb9988db497f':
  Fix counting
2014-11-03 18:50:10 +00:00
John Reck
8a8a40556e am 541641d0: Merge "Fix counting" into lmp-mr1-dev
automerge: 5c8d135

* commit '5c8d135920896af42de8d8b91975abe3fa871cd9':
  Fix counting
2014-11-03 18:42:30 +00:00
John Reck
88f5fc7c5a Fix counting
Change-Id: I9a3568908a7223d69430c1765fb5a4db96d7ac9c
2014-11-03 10:32:24 -08:00
Nick Kralevich
bfed827028 partially fix build.
Addresses the following compile time errors:

  In file included from frameworks/base/libs/hwui/LayerRenderer.cpp:24:0:
  frameworks/base/libs/hwui/RenderState.h:77:24: error: 'VirtualLightRefBase' has not been declared
       void postDecStrong(VirtualLightRefBase* object);
                        ^
  In file included from frameworks/base/libs/hwui/LayerCache.h:21:0,
                   from frameworks/base/libs/hwui/LayerRenderer.cpp:25:
  frameworks/base/libs/hwui/Layer.h:55:42: error: expected class-name before '{' token
   class Layer : public VirtualLightRefBase {
                                          ^
  In file included from frameworks/base/libs/hwui/RenderState.cpp:16:0:
  frameworks/base/libs/hwui/RenderState.h:77:24: error: 'VirtualLightRefBase' has not been declared
       void postDecStrong(VirtualLightRefBase* object);
                        ^

Change-Id: I2be439b373ea356b861f413ff6ce323e8d9baf2d
2014-11-01 18:37:39 -07:00
John Reck
9481684560 am e05575e9: am a8d83d63: Merge "Layer changes" into lmp-mr1-dev automerge: a51fba0
* commit 'e05575e9c36850d8cfe49396ac9a1372511b12bf':
  Layer changes
2014-10-31 23:30:57 +00:00
John Reck
e05575e9c3 am a8d83d63: Merge "Layer changes" into lmp-mr1-dev
automerge: a51fba0

* commit 'a51fba0bf037844bcb911e69e8af733e6d2cccf6':
  Layer changes
2014-10-31 23:25:44 +00:00
John Reck
0e89e2b7bc Layer changes
Bug: 17208461

* Switch Layer to be VirtualLightRefBase instead of
  Caches' side-channel ref-counting
* Include active layers in gfxinfo dump
* Run gfxinfo dump on the correct thread
* Dump gfxinfo on Layer creation failure

Change-Id: I28d195699e2334518e215ab28c7a17355aee9678
2014-10-31 15:30:10 -07:00
John Reck
eaab65f49d am 97054254: am 141823ec: Merge "Be more conservative about current buffer" into lmp-mr1-dev automerge: a27e1a3
* commit '97054254d4c8eef66538814e1d5def776ceba97a':
  Be more conservative about current buffer
2014-10-30 19:20:17 +00:00
John Reck
97054254d4 am 141823ec: Merge "Be more conservative about current buffer" into lmp-mr1-dev
automerge: a27e1a3

* commit 'a27e1a366a2d83165e71b68669fbd21ced6a4b08':
  Be more conservative about current buffer
2014-10-30 19:16:14 +00:00
Narayan Kamath
fd79e9f3c3 am 3cad510e: am 4ed472ab: resolved conflicts for merge of 3028394c to stage-aosp-master
* commit '3cad510e271d4e9510d0f15560c4979071c8436c':
  Suppress Clang compilation warnings.
2014-10-29 19:42:18 +00:00
Narayan Kamath
3cad510e27 am 4ed472ab: resolved conflicts for merge of 3028394c to stage-aosp-master
* commit '4ed472ab33e78391c0b084ed3908019e06b7dfe5':
  Suppress Clang compilation warnings.
2014-10-29 19:34:32 +00:00
John Reck
141823ec63 Merge "Be more conservative about current buffer" into lmp-mr1-dev 2014-10-29 14:40:02 +00:00
Narayan Kamath
4ed472ab33 resolved conflicts for merge of 3028394c to stage-aosp-master
Change-Id: I980e4c95cdc6a4778cef3298338692656d23e7c6
2014-10-29 12:12:37 +00:00
John Reck
a8f1bce008 am c7c8b069: Merge "Cleanup debug options" into lmp-mr1-dev automerge: b0aeaad automerge: 49a01fc
* commit 'c7c8b069407236bcc04c086912c73002d48419ef':
  Cleanup debug options
2014-10-28 07:17:03 +00:00
John Reck
c7c8b06940 Merge "Cleanup debug options" into lmp-mr1-dev automerge: b0aeaad
automerge: 49a01fc

* commit '49a01fc7dc8d2b9cc7591a94d19f3c209e470aea':
  Cleanup debug options
2014-10-28 00:35:14 +00:00
John Reck
950ff1b88c Be more conservative about current buffer
Bug: 18065565
Change-Id: I0b9c85ecf384ebe525e3a38803ab77d7ee37f33a
2014-10-27 13:23:20 -07:00
John Reck
23d307c8d8 Cleanup debug options
Bug: 18138852
Bug: 18065434
Change-Id: Ibb07b73b147c2a8b287fe8aee3f6624582f21b00
2014-10-27 12:43:25 -07:00
Chih-Hung Hsieh
d3448e437a Suppress Clang compilation warnings.
Ignore warnings about unused parameters and initialization of static
constant float data members.

Change one potential error of allocating variable length
array of non-POD element type on stack.

Fix mismatch of class and struct declaration tags.

BUG: 17512760
Change-Id: I3a09c945fb1c17f27aff74a7e439dd4c35d1fb32
2014-10-24 15:42:14 -07:00
John Reck
675a518d5a am b64e4372: am 82572cc4: am badac04d: Merge "Add some free zoom to lockHardwareCanvas" into lmp-mr1-dev
* commit 'b64e4372bb60bdce75e2af7d0b94efe92d94ac6a':
  Add some free zoom to lockHardwareCanvas
2014-10-23 22:23:10 +00:00
John Reck
b64e4372bb am 82572cc4: am badac04d: Merge "Add some free zoom to lockHardwareCanvas" into lmp-mr1-dev
* commit '82572cc458053e8cec292a708e18d0de7cfbead2':
  Add some free zoom to lockHardwareCanvas
2014-10-23 22:15:46 +00:00
John Reck
badac04dfd Merge "Add some free zoom to lockHardwareCanvas" into lmp-mr1-dev 2014-10-23 21:59:26 +00:00
John Reck
1125d1fa92 Add some free zoom to lockHardwareCanvas
Bug: 18099195

Don't use EGL_SWAP_BUFFER_PRESERVED on surfaces that will
never benefit. Also clean up some confusing naming

Change-Id: I674ca64e0464a3282cff79e5ecd350d08f47c014
2014-10-23 13:59:47 -07:00
John Reck
945701126b am 41707d01: am ebcfd24b: am 68335df6: Merge "Fix damage bug" into lmp-mr1-dev
* commit '41707d01e9e950ebd00642ef3564edcff8c539e7':
  Fix damage bug
2014-10-23 20:48:43 +00:00
John Reck
41707d01e9 am ebcfd24b: am 68335df6: Merge "Fix damage bug" into lmp-mr1-dev
* commit 'ebcfd24b8f1fc8e000a08c0bbce3a4215083ae8a':
  Fix damage bug
2014-10-23 20:41:07 +00:00
John Reck
5c9d717d3e Fix damage bug
Bug: 18087374
Change-Id: Ie183392122c73f93010fb3f4be071c924b352966
2014-10-22 11:32:27 -07:00
Derek Sollenberger
425cc668a9 Merge "Refactor HWUI to better handle Canvas DrawFilters." 2014-10-22 15:59:28 +00:00
John Reck
c54a20d9c5 am a2590d59: am 733bb3bc: Merge "Fix memory corruption in test" into lmp-mr1-dev automerge: a91c5ca
* commit 'a2590d595fbf688e7bcff5014c1d442ca4243e79':
  Fix memory corruption in test
2014-10-22 14:36:31 +00:00
John Reck
a2590d595f am 733bb3bc: Merge "Fix memory corruption in test" into lmp-mr1-dev
automerge: a91c5ca

* commit 'a91c5ca78a0e9b24445126895a0070d399506849':
  Fix memory corruption in test
2014-10-22 14:29:45 +00:00
John Reck
733bb3bc78 Merge "Fix memory corruption in test" into lmp-mr1-dev 2014-10-22 14:18:21 +00:00
John Reck
7ab73f1e98 am e73a54f3: am bf463af2: Merge "Surface:lockHardwareCanvas" into lmp-mr1-dev
automerge: 76f24bd

* commit '76f24bde7816dd97ed2375ec41c9817be0330d9f':
  Surface:lockHardwareCanvas
2014-10-21 23:34:46 +00:00
John Reck
76f24bde78 am e73a54f3: am bf463af2: Merge "Surface:lockHardwareCanvas" into lmp-mr1-dev
* commit 'e73a54f33c029552469fcf1cda46eed2f360a38e':
  Surface:lockHardwareCanvas
2014-10-21 21:39:36 +00:00
John Reck
bb2d0cc7e1 Surface:lockHardwareCanvas
Bug: 17440886

Change-Id: I1f2d98c63ec1a2814c2258cf7e0096139263770a
2014-10-21 13:23:56 -07:00
Derek Sollenberger
1383d1e60f Remove error case
bug: 18051326
Change-Id: I4f2f4abf80b89e540a91251ce55cd65375f6ca65
2014-10-20 16:59:27 -04:00
Derek Sollenberger
5865172542 Add back include that ensures RENDER_TEXT_AS_GLYPHS is set consistently.
bug: 18051326
Change-Id: I1ee9f8acb25fb1684e156c61e2cf2669d15a99cb
2014-10-20 16:26:24 -04:00
Derek Sollenberger
09c2d4fe15 Refactor HWUI to better handle Canvas DrawFilters.
First, this CL removes the need to decompose the DrawFilters
in Java and instead passes the SkDrawFilter to HWUI directly.
This also allows the removal of duplicated logic between HWUI
and other Canvas implementations regarding Paint filter levels.

Second, the DrawFilter is now stored in the DisplayListRenderer
where we apply it to every paint BEFORE it is stored in the
DisplayList.  This eliminates the need to filter all Paints on
playback and removes additional complexity at playback.

Finally, as a result of storing the filtered paint we can now
do a better job caching the paints.  This takes advantage of
recent changes in Skia to quickly enable quick hashing and
comparison of paint objects.

Change-Id: Iec507a2d894827975cc4f1d22241542bb0534b4e
2014-10-17 10:44:29 -04:00
John Reck
af608319f2 Fix memory corruption in test
Bug: 18012918
Change-Id: I8d69624e9be9f0399ddba10ce3903f93177d5930
2014-10-16 09:18:11 -07:00
Tom Hudson
b4b7f64921 Merge "Fix build breakage in HWUI JNI" 2014-10-16 13:15:16 +00:00
Tom Hudson
73edbfeed0 Fix build breakage in HWUI JNI
R=djsollen@google.com

Change-Id: Iaa4e7f22bec8e15748beab1b25d307c48d277c59
2014-10-16 09:10:41 -04:00
Tom Hudson
07c05e38a1 Merge "Clean up physical coupling" 2014-10-16 11:57:16 +00:00
Tom Hudson
2dc236b2ba Clean up physical coupling
Narrow the use of #include directives in hwui, replacing with forward
declarations where straightforward. Speeds compiles; doesn't do any
restructuring of code.

Change-Id: Icac2baffb5896f55d8c6718e9bd9d4bfa02d3ca0
2014-10-15 15:51:39 -04:00
Derek Sollenberger
413995e0be Change in Skia APIs require update to HWUI font implementation
Change-Id: Ib89a27381f740499e26706716f39ad62fa10778c
2014-10-15 14:29:46 +00:00
John Reck
cc1b97965d am 1467c54d: am f3259620: am 94c40fe9: CARD LAND!
* commit '1467c54d857fbfc03fb52b9ba95db72c6acbae32':
  CARD LAND!
2014-10-14 19:04:29 +00:00
John Reck
1467c54d85 am f3259620: am 94c40fe9: CARD LAND!
* commit 'f325962096663a5264f2ec613293818f7f3ea2f9':
  CARD LAND!
2014-10-14 17:51:07 +00:00
John Reck
94c40fe921 CARD LAND!
Bug: 16712006

Initial work towards benchmarking HWUI systems
Currently this will just create a screen full of
"cards" to simulate a high load scenario for
shadows and clipping

Change-Id: Ie9f9a9570844e136db8053e8fc62fe06cb922a5f
2014-10-14 09:02:04 -07:00