)]}'
{
  "log": [
    {
      "commit": "1bcacfdcab0eaa0cee92bd7f5a1b5e271dd68e52",
      "tree": "4a1366cf2d1cf50b5ec4ed1a8cf0f437053cd0d7",
      "parents": [
        "30ec71c0fe194a551d2e4abaff2159e0730488e0"
      ],
      "author": {
        "name": "John Reck",
        "email": "jreck@google.com",
        "time": "Fri Nov 03 10:12:19 2017 -0700"
      },
      "committer": {
        "name": "John Reck",
        "email": "jreck@google.com",
        "time": "Fri Nov 03 10:57:44 2017 -0700"
      },
      "message": "Format the world (or just HWUI)\n\nTest: No code changes, just ran through clang-format\nChange-Id: Id23aa4ec7eebc0446fe3a30260f33e7fd455bb8c\n"
    },
    {
      "commit": "579317d4eb9648845f6f45bfbea2a98fa7813de4",
      "tree": "337ee0b9714502fef23f6d1451acd0ff5f5775a7",
      "parents": [
        "fbedb22745b1a6ca74990fa8e10dbbd62318c0a5"
      ],
      "author": {
        "name": "Derek Sollenberger",
        "email": "djsollen@google.com",
        "time": "Tue Aug 29 16:33:49 2017 -0400"
      },
      "committer": {
        "name": "Derek Sollenberger",
        "email": "djsollen@google.com",
        "time": "Wed Aug 30 12:47:08 2017 -0400"
      },
      "message": "Avoid performing the pathOp for clipped shadows if possible.\n\nBug: 64487466\nTest: SystemUiJankTests#testRecentAppsFling\nChange-Id: I2ca96bd6adba299cd31e12f005b2529c559740d2\n"
    },
    {
      "commit": "679e7f1dfc851f559c98ecfdfba7937dbc03c378",
      "tree": "bdde5accd47e59ae246c8c5b85fecef9653faf62",
      "parents": [
        "6ff61dbc5101fb066cdbb7efe3b4f26ac27ddf34"
      ],
      "author": {
        "name": "John Reck",
        "email": "jreck@google.com",
        "time": "Wed Aug 02 16:11:43 2017 -0700"
      },
      "committer": {
        "name": "John Reck",
        "email": "jreck@google.com",
        "time": "Wed Aug 02 16:15:24 2017 -0700"
      },
      "message": "Add check that layer size \u003c\u003d maxTextureSize\n\nEnsure that RenderNode fitsOnLayer() is true before assigning\nit a layer.\n\nBug: 63814070\nTest: repro steps in bug no longer crash\nChange-Id: I28bb2cb173a5efde24e2384f2606fea85b394ac8\n"
    },
    {
      "commit": "d21723704571dba7e69947d92856f22989d53dbf",
      "tree": "ca2992919e43c91960380e61ef5d96dff7b83070",
      "parents": [
        "570661486882ab2690b62176e83c23a4b2d6a796"
      ],
      "author": {
        "name": "Stan Iliev",
        "email": "stani@google.com",
        "time": "Thu Feb 09 16:59:27 2017 -0500"
      },
      "committer": {
        "name": "Stan Iliev",
        "email": "stani@google.com",
        "time": "Thu Feb 09 17:09:03 2017 -0500"
      },
      "message": "Implement \"dump displaylist\" button for skia pipelines\n\nImplement \"dump displaylist\" button in hierarchyviewer for skia\npipelines.\n\nTest: ran hierarchyviewer for all pipelines.\nbug: 34819877\nChange-Id: Ifeb578260f636cb67268f9f9259e7318bf7de453\n"
    },
    {
      "commit": "3afd63778e401651a7a6fd721d6d795690916ab8",
      "tree": "d9b6cf4a86e9f8473f29cab0c60b396194075933",
      "parents": [
        "fda076a12ed641d5ab53933c4aac9e8063c580d0"
      ],
      "author": {
        "name": "John Reck",
        "email": "jreck@google.com",
        "time": "Mon Jan 30 10:15:48 2017 -0800"
      },
      "committer": {
        "name": "John Reck",
        "email": "jreck@google.com",
        "time": "Mon Jan 30 13:29:26 2017 -0800"
      },
      "message": "Switch how destroyHardwareResources works\n\ndestroyHardwareResources will now only force-destroy\nthe specific node it was called on, which are only\never the root nodes. Rely on onRemovedFromTree()\nto clean up resources for all other nodes.\n\nBug: 34736819\n\nTest: RenderNode.multiTreeValidity passes, manually\nverified fixes b/34736819\n\nChange-Id: I1c275ad6a98b63bf50f265602f09bffe3e1f169b\n"
    },
    {
      "commit": "2de950d5a8b47c7b4648ada1b1260ce4b7342798",
      "tree": "d374208f819ffd994c51f258b9732b231ba7d9a1",
      "parents": [
        "df7f28352029766755a4187786db12351ce843c6"
      ],
      "author": {
        "name": "John Reck",
        "email": "jreck@google.com",
        "time": "Wed Jan 25 10:58:30 2017 -0800"
      },
      "committer": {
        "name": "John Reck",
        "email": "jreck@google.com",
        "time": "Wed Jan 25 12:24:40 2017 -0800"
      },
      "message": "Overhaul RenderNode\u0027s DisplayList management\n\n* Move mValid to native\n* Have destroyHardwareResources destroy everything\n* Remove flaky mParentCount checks in setStaging\n* All tree updates have an internal observer to\n  ensure onRemovedFromTree() is a reliable signal\n* onRemovedFromTree() immediately releases resources\n  to avoid displaylist \"leaks\"\n\nTest: Unit tests for validity added \u0026 pass, manually\nverified that b/34072929 doesn\u0027t repro\n\nBug: 34072929\n\nChange-Id: I856534b4ed1b7f009fc4b7cd13209b97fa42a71c\n"
    },
    {
      "commit": "f58cc92066903b900396f640159ea3ea992fc67d",
      "tree": "2f8f251cd47e99f937e15b30e03d1bcb3f1ca19e",
      "parents": [
        "a53e2bc3c0647dba586ac10214b1027334f0f8b0"
      ],
      "author": {
        "name": "Matt Sarett",
        "email": "msarett@google.com",
        "time": "Mon Nov 14 18:33:38 2016 -0500"
      },
      "committer": {
        "name": "Matt Sarett",
        "email": "msarett@google.com",
        "time": "Tue Nov 29 18:03:40 2016 -0500"
      },
      "message": "Add overdraw debugging feature to Skia pipelines\n\nTest: Compared to OpenGL pipeline and sanity checked\nwith understanding of the drawing pipeline.  Also\nwrote a unit test.\n\nBUG:32370375\n\nChange-Id: Iab397d21f0def725fa89551d48c764c67fd2bda8\n"
    },
    {
      "commit": "0df6209a02d0ea99d2dff3a46ed9febd5925df4b",
      "tree": "f0ae38776b4dc08456f111dd61076ba0a9394119",
      "parents": [
        "4306608707ad24af2b9a7c5764412e429329eab3"
      ],
      "author": {
        "name": "Derek Sollenberger",
        "email": "djsollen@google.com",
        "time": "Tue Sep 27 16:04:42 2016 -0400"
      },
      "committer": {
        "name": "Derek Sollenberger",
        "email": "djsollen@google.com",
        "time": "Wed Oct 05 15:28:27 2016 -0400"
      },
      "message": "Initial refactoring to enable the addition of the SkiaOpenGLPipeline.\n\nTest: existing and new HWUI unit tests all pass.\nChange-Id: I4f5c1dc839a2ed15d8b0f6245fe030684501b083\n"
    },
    {
      "commit": "6a21ca5a4c6b62ae277ae6dcb14bc187460321a0",
      "tree": "eb886e4b0fc727bafe15a600cdf1bc41d0fbfb56",
      "parents": [
        "c83f46dc834bd7342ab2be98f34889460ce74be4"
      ],
      "author": {
        "name": "Derek Sollenberger",
        "email": "djsollen@google.com",
        "time": "Wed Sep 28 13:39:55 2016 -0400"
      },
      "committer": {
        "name": "Derek Sollenberger",
        "email": "djsollen@google.com",
        "time": "Mon Oct 03 16:30:19 2016 -0400"
      },
      "message": "Move Layer creation/deletion into the RenderPipeline.\n\nTest: refactoring. existing tests still pass.\nChange-Id: I032c33896a0cb74c91e2a913a584373518466b88\n"
    },
    {
      "commit": "c3849aa786db65dbda254b90b7db3b13efd98e65",
      "tree": "7e6e254ea4d323196cc70effde94bcba42d8a5d5",
      "parents": [
        "1a61a0ae43acee586b7cb0f069f69b37342626d1"
      ],
      "author": {
        "name": "sergeyv",
        "email": "sergeyv@google.com",
        "time": "Mon Aug 08 13:22:06 2016 -0700"
      },
      "committer": {
        "name": "sergeyv",
        "email": "sergeyv@google.com",
        "time": "Tue Aug 09 16:29:44 2016 -0700"
      },
      "message": "HWUI: reimplement rendernode ouput for single stream\n\nbug: 26565102\nChange-Id: I90b449b2dce52683c50b48091354104d76a5e44a\n"
    },
    {
      "commit": "eba351df16c70970906c945acc7a134100e46346",
      "tree": "5a48405f581d03f9386d841da66e4f416a7338b5",
      "parents": [
        "ff990d2f630db70094651d3584974ae646baa5ea",
        "334d32137f3be1aa991c10dd986be1fe1d7de674"
      ],
      "author": {
        "name": "Doris Liu",
        "email": "tianliu@google.com",
        "time": "Wed Aug 03 19:46:26 2016 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Wed Aug 03 19:46:26 2016 +0000"
      },
      "message": "Ensure layer update include the dirty rect from AVD am: b51b2864e8 am: c0dccb9597\nam: 334d32137f\n\nChange-Id: I20bf02209a269d6bef3085ae07caade7680b065d\n"
    },
    {
      "commit": "b51b2864e8ee58cad1b1880a3424112587a6e9e9",
      "tree": "eab6df7b7ee52a20c73368d1848aad798c69ad6a",
      "parents": [
        "a2f247e6a63eefc70866202abbec0e3af3768695"
      ],
      "author": {
        "name": "Doris Liu",
        "email": "tianliu@google.com",
        "time": "Mon Aug 01 19:56:47 2016 -0700"
      },
      "committer": {
        "name": "Doris Liu",
        "email": "tianliu@google.com",
        "time": "Tue Aug 02 03:01:48 2016 +0000"
      },
      "message": "Ensure layer update include the dirty rect from AVD\n\nBUG: 30166063\nChange-Id: Ia14a2fe3c653e0172a28b4ef22f5171ccf7390c1\n"
    },
    {
      "commit": "56ad6ec42f814e9e61030ff819cac4e5d31def8b",
      "tree": "610b7d16969d959520f57185b0845f47dddb303b",
      "parents": [
        "e116bcf72a71f96c0c5bfcd79a329c7c77eabf34"
      ],
      "author": {
        "name": "Derek Sollenberger",
        "email": "djsollen@google.com",
        "time": "Fri Jul 22 12:13:32 2016 -0400"
      },
      "committer": {
        "name": "Derek Sollenberger",
        "email": "djsollen@google.com",
        "time": "Tue Jul 26 13:05:13 2016 -0400"
      },
      "message": "Remove LayerRenderer.\n\nThere is only one caller each for the static functions here so this\nCL moves the logic to the caller.  Also by moving some of the code\ninto the pipeline it makes it easier for future changes to configure\nhow a pipeline handles a layer.\n\nChange-Id: Ib735b5154325cbb658fd151f7a19dbf434ab44b7\n"
    },
    {
      "commit": "52c4eba143ce88a231e2691f65abd076f9e21c18",
      "tree": "24f0aaac06b23b38125a89f2e7b8781c7958c2b0",
      "parents": [
        "b334d64371440576285f98f87906bf2f066bb446",
        "ec83bd15c82d1983e764418139f65ef56761a52a"
      ],
      "author": {
        "name": "Chris Craik",
        "email": "ccraik@google.com",
        "time": "Tue Jul 12 02:16:05 2016 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Tue Jul 12 02:16:05 2016 +0000"
      },
      "message": "Merge \\\\\"Avoid throwing when 0 size layer requested\\\\\" into nyc-mr1-dev am: 272b827925\nam: ec83bd15c8\n\nChange-Id: If585ade667c888d2f5f8e90a76125971178a7ba5\n"
    },
    {
      "commit": "e3e481df762747c5f01bbd1503800fa29457fc1b",
      "tree": "d8aa5a01bcc5150999b472c0be25dcb1f98374d9",
      "parents": [
        "377a8dd1e4909aa78d57ae3eb4ce885a7bad61c0"
      ],
      "author": {
        "name": "Chris Craik",
        "email": "ccraik@google.com",
        "time": "Mon Jul 11 12:20:51 2016 -0700"
      },
      "committer": {
        "name": "Chris Craik",
        "email": "ccraik@google.com",
        "time": "Mon Jul 11 19:26:18 2016 +0000"
      },
      "message": "Avoid throwing when 0 size layer requested\n\nbug:30032790\n\nChange-Id: I8553af0d0b0d59fea6535d03479c4e7134a9f4f9\n"
    },
    {
      "commit": "5e00c7ce063116c11315639f0035aca8ad73e8cc",
      "tree": "6ca43728a401d92762fb5fd65cfd39afe9438571",
      "parents": [
        "32d9ae186733115802eafe241c2029a63794efc2"
      ],
      "author": {
        "name": "Chris Craik",
        "email": "ccraik@google.com",
        "time": "Wed Jul 06 16:10:09 2016 -0700"
      },
      "committer": {
        "name": "Chris Craik",
        "email": "ccraik@google.com",
        "time": "Thu Jul 07 15:53:50 2016 -0700"
      },
      "message": "Delete old rendering pipeline\n\nfixes: 30002246\n\nChange-Id: I45df0e924708526cee045b14c291bd23aa1a92db\n"
    },
    {
      "commit": "aa6e84f21ddf89ea649a3f00044bc23adfe86978",
      "tree": "b0654d9dfee0cfa15bad5f56835521f6191d1bc2",
      "parents": [
        "18c57b5cd546120ccbc9cce80758813244af6d37"
      ],
      "author": {
        "name": "John Reck",
        "email": "jreck@google.com",
        "time": "Thu Jun 16 15:36:13 2016 -0700"
      },
      "committer": {
        "name": "John Reck",
        "email": "jreck@google.com",
        "time": "Fri Jun 17 10:23:54 2016 -0700"
      },
      "message": "Move SurfaceView offscreen if the app stops drawing it\n\nBug: 29360411\nChange-Id: Iefb9d7a9dafb34a2b4f79130a2a8b5a7cf7de906\n"
    },
    {
      "commit": "07c056d627be315796d53bf07f8e06f449d92668",
      "tree": "38bb999499f0ded5be99992f5ec6665b1abe1d9f",
      "parents": [
        "a3d4baf43b22f205cc0b26af9eb25df25b5c9a3e"
      ],
      "author": {
        "name": "Doris Liu",
        "email": "tianliu@google.com",
        "time": "Mon Jun 13 12:52:44 2016 -0700"
      },
      "committer": {
        "name": "Doris Liu",
        "email": "tianliu@google.com",
        "time": "Mon Jun 13 12:52:44 2016 -0700"
      },
      "message": "Chcek for valid render content before damaging RenderNode for dirty VD\n\nBUG: 29320878\nChange-Id: I847d76467bad92c956a4bb7617627983d64e90f9\n"
    },
    {
      "commit": "bc640cb016133f6ca489504de851703b2e57fbfb",
      "tree": "81f0e943738b10c6736c810ea974f45776a7a844",
      "parents": [
        "0f8427773edec30f3bbe609ea0d0131c465fa78e",
        "4bcf66030d2c28dd307a0b03522f24a58b0e2084"
      ],
      "author": {
        "name": "Chris Craik",
        "email": "ccraik@google.com",
        "time": "Fri Jun 10 16:08:44 2016 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Fri Jun 10 16:08:44 2016 +0000"
      },
      "message": "Merge \\\"Fix framebuffer incomplete errors\\\" into nyc-dev\nam: 4bcf66030d\n\nChange-Id: If578de7d7ea10cceb0e19eb68e305432e4177d04\n"
    },
    {
      "commit": "d4fe4d3b30aaefcaaae6a6d1b8dc4bf59e034768",
      "tree": "4ae5c99ecc5a507f9851281f4cee907f877e6a78",
      "parents": [
        "fe089e3dc5683d98f327353bfacb9259d6acbf54"
      ],
      "author": {
        "name": "Chris Craik",
        "email": "ccraik@google.com",
        "time": "Thu Jun 09 16:57:11 2016 -0700"
      },
      "committer": {
        "name": "Chris Craik",
        "email": "ccraik@google.com",
        "time": "Thu Jun 09 17:05:27 2016 -0700"
      },
      "message": "Fix framebuffer incomplete errors\n\nbug:29127615\n\nPrimarily fixes case where 0 dimensioned layers could be\ncreated/updated. Additionally, adds more logging in incomplete\nframebuffer cases, if they still occur.\n\nChange-Id: Ib90dbbafd6905aca3c8f46e64064e13a308f713d\n"
    },
    {
      "commit": "718cd3eb70703c43f29ca37907bbf0e153d8cca0",
      "tree": "cf1d4ce2d7c0a2ca19289257d3a8538ecfbaf8cb",
      "parents": [
        "a2da20d3344010b8f3ca6cc5fea265984662959c"
      ],
      "author": {
        "name": "Doris Liu",
        "email": "tianliu@google.com",
        "time": "Tue May 17 16:50:31 2016 -0700"
      },
      "committer": {
        "name": "Doris Liu",
        "email": "tianliu@google.com",
        "time": "Thu Jun 09 10:27:59 2016 -0700"
      },
      "message": "Handle hidden RT VectorDrawable animators\n\nThis CL changes the target of VD specific animators to VectorDrawable,\ninstead of RenderNode. The benefit of doing so is that animators can\nnow detect whether the animation is meaningful by checking whether\ntheir VD target is in the display list. If not, that means the VD is\nnot drawing for the current frame, in which case we can be smarter\nand more power efficient by removing the animator from the list and\nposting a delayed onFinished listener callback.\n\nBy setting VD as the animation target, when an ImageView decides to\nupdate its drawable from one AVD to something else, we\u0027ll be able\nto detect that the previous AVD is no longer in the display list,\nand stop providing animation pulse to the stale AVD, which is\nsomething we couldn\u0027t do previously.  This change also\nhandles the case where one AVD instance could be drawn in two\ndifferent views.\n\nBug: 27441375\nChange-Id: Iaad1ed09cfd526276b95db0dd695275c28e074e8\n"
    },
    {
      "commit": "cd1c3eba69d044b551cededad75474038f919890",
      "tree": "e7ec0697f43ef8d23420732f620587f99c67475a",
      "parents": [
        "a4c0b1de1a33219b4f8ef1cdfc4e7641ac246f4b"
      ],
      "author": {
        "name": "John Reck",
        "email": "jreck@google.com",
        "time": "Thu Apr 14 10:38:54 2016 -0700"
      },
      "committer": {
        "name": "John Reck",
        "email": "jreck@google.com",
        "time": "Fri Apr 15 10:56:53 2016 -0700"
      },
      "message": "Add a callback for when a gl functor is released\n\nBug: 27709981\n\nChange-Id: Id5be3e8f88d6d84a9c59c7ed23e7e8862feefbe8\n"
    },
    {
      "commit": "51f2d606dcbfba3cc5b03dfea37c1304b91c232f",
      "tree": "110249f497eddafcb33ba8aed6989bd965b2a7da",
      "parents": [
        "3397c88f7900d8db677204cdbe9e7a5dc26e453a"
      ],
      "author": {
        "name": "John Reck",
        "email": "jreck@google.com",
        "time": "Wed Apr 06 07:50:47 2016 -0700"
      },
      "committer": {
        "name": "John Reck",
        "email": "jreck@google.com",
        "time": "Thu Apr 07 14:10:43 2016 -0700"
      },
      "message": "Fix some edge cases\n\nBug: 27709981\n\nThis desperately needs a refactor, but to keep\nthe current (really needed \u0026 nice) behavior of\ndispatching after sync finishes would be difficult\nto handle cleanly without lots of ripping so... #yolo\n\nChange-Id: I831a06c6ae7412a062720d68ecbe3085190f0258\n"
    },
    {
      "commit": "1d8e194661085f9a18ab1b3cd12f9e19d3a86be5",
      "tree": "b48053c21a27e6a8500b45f4cc8bf4a2b0c6676f",
      "parents": [
        "3942978af2314801379e807a3a913841c1f1481c"
      ],
      "author": {
        "name": "Doris Liu",
        "email": "tianliu@google.com",
        "time": "Wed Mar 02 15:16:28 2016 -0800"
      },
      "committer": {
        "name": "Doris Liu",
        "email": "tianliu@google.com",
        "time": "Mon Apr 04 14:40:17 2016 -0700"
      },
      "message": "Make AVD thread safe\n\nThis CL introduces staging properties to VectorDrawable, which holds\nproperties coming from UI thread. When staging properties are changed,\nthey are marked dirty, and the staging properties then get pushed to\nRenderThread at sync point. In cases where no staging property has\nbeen changed, at sync point we sync the render thread properties back\nto staging properties to reflect the latest render thread animation\nvalue change.\n\nAlso, update Vector Drawable bitmap only when it\u0027s dirty\n\nBug: 27343970\nBug: 27385912\nBug: 27263667\nBug: 27927674\nBug: 27774383\n\nChange-Id: Ia864f5400a53a08dbfb284fae581fb1aac4fff87\n"
    },
    {
      "commit": "44b49f070aafe8ad44efae87341121cce49ff11c",
      "tree": "d6be4f57d9b034657e69eb4bc39b2ed35cd5fb69",
      "parents": [
        "7492e75ba3a6785c183638392f23a92950498922"
      ],
      "author": {
        "name": "John Reck",
        "email": "jreck@google.com",
        "time": "Fri Mar 25 14:29:48 2016 -0700"
      },
      "committer": {
        "name": "John Reck",
        "email": "jreck@google.com",
        "time": "Thu Mar 31 08:36:50 2016 -0700"
      },
      "message": "Add a callback for rendernode parentcount\u003d0\n\nBug: 27709981\nFixes: 22565656\n\nChange-Id: I1cb4461baf9069dc4e7ca6de10d5862578c107f4\n"
    },
    {
      "commit": "91eff22b5d7f8fe551bae01331948858ce932a96",
      "tree": "3a6c850a68142c40bc0c3f1ea7b84a942d1c67e8",
      "parents": [
        "eabebc1539b7e8b412da33c9e462665087cb1bfc"
      ],
      "author": {
        "name": "Chris Craik",
        "email": "ccraik@google.com",
        "time": "Mon Feb 22 13:39:33 2016 -0800"
      },
      "committer": {
        "name": "Chris Craik",
        "email": "ccraik@google.com",
        "time": "Tue Feb 23 18:52:54 2016 +0000"
      },
      "message": "Support op dumping in new pipeline\n\nbug:26565102\n\nChange-Id: I266e420a2f18ba9ad62942b8a0de295dfa3a2a88\n"
    },
    {
      "commit": "8b083206aef627b6445a8c6be8bf5bb1d778a7f8",
      "tree": "3c4e5e18fbd6f1f6dd3400567b86e9e793fd2665",
      "parents": [
        "c4bb185d41cfb960ed9a3178a4f8974c351abdb0"
      ],
      "author": {
        "name": "Doris Liu",
        "email": "tianliu@google.com",
        "time": "Fri Feb 19 21:46:06 2016 +0000"
      },
      "committer": {
        "name": "Doris Liu",
        "email": "tianliu@google.com",
        "time": "Fri Feb 19 13:52:41 2016 -0800"
      },
      "message": "Revert \"Revert \"Check RenderNode\u0027s owning view before attaching animators\"\"\n\nThis reverts commit eb40178af3b7c8d925eaf6c1aa0bef739c8ea47e.\n\nChange-Id: I6838ecb35b50847746ee66ac204f14eb5f579b91\n"
    },
    {
      "commit": "eb40178af3b7c8d925eaf6c1aa0bef739c8ea47e",
      "tree": "4391aee82c9128353237465ef6ca9d1e0071d0f8",
      "parents": [
        "12abdeb3c7bffbc7c07b913595f6ea2cb66154d1"
      ],
      "author": {
        "name": "Doris Liu",
        "email": "tianliu@google.com",
        "time": "Thu Feb 18 18:34:59 2016 +0000"
      },
      "committer": {
        "name": "Doris Liu",
        "email": "tianliu@google.com",
        "time": "Thu Feb 18 18:34:59 2016 +0000"
      },
      "message": "Revert \"Check RenderNode\u0027s owning view before attaching animators\"\n\nThis reverts commit 12abdeb3c7bffbc7c07b913595f6ea2cb66154d1.\n\nChange-Id: I938deddf5f294127f87a0e70f940fe5b9a85e0b2\n"
    },
    {
      "commit": "12abdeb3c7bffbc7c07b913595f6ea2cb66154d1",
      "tree": "8770a4c0412b95902d5c49328f357e39eb3fba8e",
      "parents": [
        "0d20a275a5baf8579c8b9111cf2ce6615874a6b6"
      ],
      "author": {
        "name": "Doris Liu",
        "email": "tianliu@google.com",
        "time": "Thu Feb 11 20:08:10 2016 -0800"
      },
      "committer": {
        "name": "Doris Liu",
        "email": "tianliu@google.com",
        "time": "Tue Feb 16 14:25:48 2016 -0800"
      },
      "message": "Check RenderNode\u0027s owning view before attaching animators\n\n-Only add animators to a RenderNode when its owning view is attached\n-When changing animator\u0027s target RenderNode, remove the animator from\n the old target RenderNode that it\u0027s currently running on, if any.\nBug: 27141983\nBug: 27145149\nChange-Id: I9c9592382d64ecc0390f7ec743a59ce1ad7d9798\n"
    },
    {
      "commit": "f648108f83d4e74811919e9811efb8fcc184b8a3",
      "tree": "a7e20b3298846cd072499a921bfa59d244c717e0",
      "parents": [
        "15d21b3aca1c3eeb3932752194e9f196b546387b"
      ],
      "author": {
        "name": "John Reck",
        "email": "jreck@google.com",
        "time": "Tue Feb 02 15:18:23 2016 -0800"
      },
      "committer": {
        "name": "John Reck",
        "email": "jreck@google.com",
        "time": "Thu Feb 04 11:23:49 2016 -0800"
      },
      "message": "Have RT drive window positioning\n\nBug: 22802885\n\nChange-Id: I6beed5474d3a943b16e9097f7bd61ce3cbd37505\n"
    },
    {
      "commit": "eecff56fed5dd5206acfbc5007b4912081b36d3b",
      "tree": "5e9b0e3dcf6add0bde182a791d9ba9040c16dafa",
      "parents": [
        "36c297f426b2d1337658d781bc6cbd60b04ce4e8"
      ],
      "author": {
        "name": "Florin Malita",
        "email": "fmalita@google.com",
        "time": "Mon Dec 21 10:43:01 2015 -0500"
      },
      "committer": {
        "name": "Florin Malita",
        "email": "fmalita@google.com",
        "time": "Mon Jan 25 15:48:00 2016 -0500"
      },
      "message": "Add internal Canvas save flags\n\nSkia\u0027s SkCanvas::SaveFlags are being deprecated.  This CL introduces\nthe equivalent android::SaveFlags, converts all internal clients to\nthe new enum, and switches the saveLayer glue to the\nSaveLayerRec-based API.\n\nChange-Id: Icb1785f4e7c0f652b1f04b34a1e3ccb063c408f3\n"
    },
    {
      "commit": "8d1f2120fe80b23ab03c7168e3b6b2d13bafe2e7",
      "tree": "7c514201847e983de760f491c60f1bbed0b07bf6",
      "parents": [
        "95cdbd6f6d0fd8f4ec9d68a3ed8845a1ac6aa541"
      ],
      "author": {
        "name": "Chris Craik",
        "email": "ccraik@google.com",
        "time": "Tue Nov 24 16:40:09 2015 -0800"
      },
      "committer": {
        "name": "Chris Craik",
        "email": "ccraik@google.com",
        "time": "Wed Nov 25 14:09:24 2015 -0800"
      },
      "message": "Support projection in OpReorderer\n\nbug:22480459\n\nChange-Id: Iceb71732dc50957cfb47fa1ba9b8e18e6fc51132\n"
    },
    {
      "commit": "f559bd1e679cc268bfa796b3c46acbd4783755a2",
      "tree": "01dd7add0400603b0297835bc520dbbb47d95465",
      "parents": [
        "f91e74d9a945f59cdb714a80a2a87953d72dbd99"
      ],
      "author": {
        "name": "Chris Craik",
        "email": "ccraik@google.com",
        "time": "Wed Nov 18 14:42:00 2015 -0800"
      },
      "committer": {
        "name": "Chris Craik",
        "email": "ccraik@google.com",
        "time": "Wed Nov 18 14:42:00 2015 -0800"
      },
      "message": "Fix layer create properties\n\nbug:25753159\n\nChange-Id: Ifa64dbfd8057ae5b390ba0c177627a5325cdd769\n"
    },
    {
      "commit": "8ecf41c61a5185207a21d64681e8ebc2502b7b2a",
      "tree": "94592cbff1b686302433a68a74b01bdb3b44d487",
      "parents": [
        "b20dbf6c6a19d6f6f69791eba7492c4480e8f113"
      ],
      "author": {
        "name": "Chris Craik",
        "email": "ccraik@google.com",
        "time": "Mon Nov 16 10:27:59 2015 -0800"
      },
      "committer": {
        "name": "Chris Craik",
        "email": "ccraik@google.com",
        "time": "Tue Nov 17 14:50:49 2015 -0800"
      },
      "message": "Add temporary layer alpha fallback to OpReorderer\n\nAlso adds logic to clip temporary layers to viewport both for\nefficiency and to allow large ones (such as the fallback case) to fit\nin max texture size.\n\nChange-Id: Iee51495220f5ca1dc7e6f5fd3615db2e896efd74\n"
    },
    {
      "commit": "98787e6c9b2c10b1ab7820bdac168686025b924a",
      "tree": "4bc65070a5f3c460c3b2a6c358d990b300010457",
      "parents": [
        "9fded232a9548a304e0145011df8849fba0dcda7"
      ],
      "author": {
        "name": "Chris Craik",
        "email": "ccraik@google.com",
        "time": "Fri Nov 13 10:55:30 2015 -0800"
      },
      "committer": {
        "name": "Chris Craik",
        "email": "ccraik@google.com",
        "time": "Mon Nov 16 11:21:18 2015 -0800"
      },
      "message": "Finish shadow support in new reorderer/renderer\n\nNow passes alphas and light radius, and correctly transforms light\ncenter for layers.\n\nAlso fixes begin-frame/layer clears to be damage rect aware.\n\nChange-Id: I3b1415cd7bf1518c510145ebebdb745f494a2542\n"
    },
    {
      "commit": "9fded232a9548a304e0145011df8849fba0dcda7",
      "tree": "ffe48b03342817dd2681825498ecdf3799e01a0d",
      "parents": [
        "8b8be50c640a13b98d364b3f36962d9cf185d6d9"
      ],
      "author": {
        "name": "Chris Craik",
        "email": "ccraik@google.com",
        "time": "Wed Nov 11 16:42:34 2015 -0800"
      },
      "committer": {
        "name": "Chris Craik",
        "email": "ccraik@google.com",
        "time": "Thu Nov 12 13:05:35 2015 -0800"
      },
      "message": "Recycle OffscreenBuffers\n\nChange-Id: Ia2e219026f211a5308ecf8209c5f986bb888aadd\n"
    },
    {
      "commit": "76caecf421b42e9b8294a65f62ff2d90b55a337b",
      "tree": "74ff2357d77c6b831aa3723d9f38416b3cef0d67",
      "parents": [
        "429c5b93ff66e82fa3fd65475489fde133c66002"
      ],
      "author": {
        "name": "Chris Craik",
        "email": "ccraik@google.com",
        "time": "Mon Nov 02 19:17:45 2015 -0800"
      },
      "committer": {
        "name": "Chris Craik",
        "email": "ccraik@google.com",
        "time": "Thu Nov 05 15:25:12 2015 -0800"
      },
      "message": "Add more RenderNode property support in OpReorderer path\n\nChange-Id: I0163fe91d8145e33019739c191bbab0432a5f9aa\n"
    },
    {
      "commit": "8d2cf943d9c7292e54726399faefdec4a01c084b",
      "tree": "0b73f75520a8e0847b19b016af7bf3d87dc6c08c",
      "parents": [
        "4f16073556f7978708fb71c87628cfe1692412d5"
      ],
      "author": {
        "name": "Chris Craik",
        "email": "ccraik@google.com",
        "time": "Mon Nov 02 14:52:21 2015 -0800"
      },
      "committer": {
        "name": "Chris Craik",
        "email": "ccraik@google.com",
        "time": "Mon Nov 02 17:34:06 2015 -0800"
      },
      "message": "Add region-tracking to OffscreenBuffers\n\nChange-Id: I024c7219c080b9a89888517f5a89d49dfe8065ba\n"
    },
    {
      "commit": "0b7e8245db728d127ada698be63d78b33fc6e4da",
      "tree": "b7138962e159b3359cb08735098d34779a5ce78e",
      "parents": [
        "8462bad554c2c0f5639c00dd7f1f32e9567c8e04"
      ],
      "author": {
        "name": "Chris Craik",
        "email": "ccraik@google.com",
        "time": "Wed Oct 28 16:50:44 2015 -0700"
      },
      "committer": {
        "name": "Chris Craik",
        "email": "ccraik@google.com",
        "time": "Mon Nov 02 12:59:38 2015 -0800"
      },
      "message": "Initial HW layer support in new reorderer/renderer\n\nShares vast majority of clipped savelayer code, with only minor\ndifferences in lifecycle.\n\nDoesn\u0027t yet handle fill region, resize, or window transform.\n\nChange-Id: Iabdd71811590d2b937eb11e1b01ce556ade54a5a\n"
    },
    {
      "commit": "263e19bf46a40e3924ab9a7f374ecc420726fc9d",
      "tree": "dc3c94e21379c93676abf9f6b317941ee9180f64",
      "parents": [
        "02ed4a0e10522147425ea65704edd56f2aa6d061",
        "e2e53a7079733694bd52dbce665e9ceff21e9727"
      ],
      "author": {
        "name": "Chris Craik",
        "email": "ccraik@google.com",
        "time": "Thu Oct 29 19:49:22 2015 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Oct 29 19:49:22 2015 +0000"
      },
      "message": "Merge \"Simplify TreeInfo\""
    },
    {
      "commit": "e2e53a7079733694bd52dbce665e9ceff21e9727",
      "tree": "80dc4fae5d8c38c8bb4716593f90e25e34f379cc",
      "parents": [
        "37028137f25b298c00bf2d1e7e090b3b1ccbe633"
      ],
      "author": {
        "name": "Chris Craik",
        "email": "ccraik@google.com",
        "time": "Wed Oct 28 15:55:40 2015 -0700"
      },
      "committer": {
        "name": "Chris Craik",
        "email": "ccraik@google.com",
        "time": "Wed Oct 28 15:55:40 2015 -0700"
      },
      "message": "Simplify TreeInfo\n\nChange-Id: I8f05e9046236d607016b6c2bb77a333cfb47ba47\n"
    },
    {
      "commit": "3398abb25b6a8614f80f79efcf428a07185fe50f",
      "tree": "a5562847fd183fad7a51fdebb5aa36e4cfe5907b",
      "parents": [
        "9f091287b1a06986871faebffb0d72771ec99df6",
        "77c40109cf25d29f85ee6c13aeb96e22e55f33ab"
      ],
      "author": {
        "name": "John Reck",
        "email": "jreck@google.com",
        "time": "Wed Oct 28 19:21:17 2015 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Oct 28 19:21:17 2015 +0000"
      },
      "message": "Merge \"Cleanups\""
    },
    {
      "commit": "9dea0d53f598d8fa98d9b50899fc9c7559f7a1a1",
      "tree": "948831ab00192df553f10f9fad04a16d6b4b554d",
      "parents": [
        "5918519f972b4eedfc0e402b96cf8a288446deed"
      ],
      "author": {
        "name": "John Reck",
        "email": "jreck@google.com",
        "time": "Tue Oct 27 10:04:38 2015 -0700"
      },
      "committer": {
        "name": "John Reck",
        "email": "jreck@google.com",
        "time": "Wed Oct 28 12:20:20 2015 -0700"
      },
      "message": "Free DisplayListData for Views with GONE parents\n\nBug: 22565656\nChange-Id: I06060e6ae473482ec79feb891f9123c85706237f\n"
    },
    {
      "commit": "77c40109cf25d29f85ee6c13aeb96e22e55f33ab",
      "tree": "479c941dfbb94c36fb73dc86e03da8412636fcec",
      "parents": [
        "5918519f972b4eedfc0e402b96cf8a288446deed"
      ],
      "author": {
        "name": "John Reck",
        "email": "jreck@google.com",
        "time": "Mon Oct 26 15:49:47 2015 -0700"
      },
      "committer": {
        "name": "John Reck",
        "email": "jreck@google.com",
        "time": "Tue Oct 27 07:54:17 2015 -0700"
      },
      "message": "Cleanups\n\nChange-Id: I10001711afb2530c5dc19aebf2d055ae41f58c6a\n"
    },
    {
      "commit": "6fe991e5e76f9af9dab960100d5768d96d5f4daa",
      "tree": "20616f2c371e188492b48a9c759530b06047550a",
      "parents": [
        "387d1b25b58bb2bb80d983b7db7ddac22731a552"
      ],
      "author": {
        "name": "Chris Craik",
        "email": "ccraik@google.com",
        "time": "Tue Oct 20 09:39:42 2015 -0700"
      },
      "committer": {
        "name": "Chris Craik",
        "email": "ccraik@google.com",
        "time": "Wed Oct 21 18:19:37 2015 -0700"
      },
      "message": "Work to support saveLayer in new pipeline\n\nclipped SaveLayers will now be pulled to the beginning of the frame,\nprior to drawing FBO 0. This will remove the need for switching FBOs\nmid-frame.\n\nChange-Id: I4d8dc1f845e84e9b49d5acdf4f4703eef4a9cb06\n"
    },
    {
      "commit": "b36af87f8275f4b982906f88193ec27600f2746a",
      "tree": "e2523b8fdff8b73761869a0075ff6ca8d455ae71",
      "parents": [
        "5419280fb325eaf52102cf543deebb95a10a0871"
      ],
      "author": {
        "name": "Chris Craik",
        "email": "ccraik@google.com",
        "time": "Fri Oct 16 14:23:12 2015 -0700"
      },
      "committer": {
        "name": "Chris Craik",
        "email": "ccraik@google.com",
        "time": "Mon Oct 19 11:32:28 2015 -0700"
      },
      "message": "Use LinearStdAllocator in DisplayList\n\nbug:24300128\n\nThis removes most of the remaining calls to malloc when\nrecording DisplayLists.\n\nChange-Id: If928bd53dac0f145aadc436a62759086b67da0ed\n"
    },
    {
      "commit": "003cc3dec8e2a92e51086fbcd5ee1bb236efa701",
      "tree": "8259dbf89955c599183f241268ce7704d6f2fc93",
      "parents": [
        "e4436e325c7756b162d99b05ece3dd9c38ce3a44"
      ],
      "author": {
        "name": "Chris Craik",
        "email": "ccraik@google.com",
        "time": "Fri Oct 16 10:24:55 2015 -0700"
      },
      "committer": {
        "name": "Chris Craik",
        "email": "ccraik@google.com",
        "time": "Fri Oct 16 10:38:34 2015 -0700"
      },
      "message": "Rename DisplayListData to DisplayList\n\nChange-Id: I25f6bb88ffdf9baf7e8e4e2a294aa8c9d2a4605b\n"
    },
    {
      "commit": "10ed692118552a01ff97b095295852b631e51bee",
      "tree": "d8834c8d50f3bd91b4f1735aa228ec0b2cc1edf9",
      "parents": [
        "2eb4ca6114a9e36a965110090947ef2124a366b6"
      ],
      "author": {
        "name": "Chris Craik",
        "email": "ccraik@google.com",
        "time": "Thu Oct 15 10:55:15 2015 -0700"
      },
      "committer": {
        "name": "Chris Craik",
        "email": "ccraik@google.com",
        "time": "Thu Oct 15 10:55:15 2015 -0700"
      },
      "message": "Use typedefs to differentiate between flavors of DisplayLists\n\nChange-Id: Id3b0a5aa045f2343fb046ca0889b375a7d00e03f\n"
    },
    {
      "commit": "b565df13a9e5c7b1d7d93bdfa4a793752d66d3cc",
      "tree": "4a2dadd3b2c95663c23a626eff75962a0b8d4ce2",
      "parents": [
        "b08949151f8dfc7a72ea6696f2e6067c2b1643bb"
      ],
      "author": {
        "name": "Chris Craik",
        "email": "ccraik@google.com",
        "time": "Mon Oct 05 13:00:52 2015 -0700"
      },
      "committer": {
        "name": "Chris Craik",
        "email": "ccraik@google.com",
        "time": "Wed Oct 14 16:10:40 2015 -0700"
      },
      "message": "Initial commit of new Canvas operation recording / replay\n\nDone:\n- drawRect, drawBitmap, drawColor, drawPaint, drawRenderNode, drawRegion\n- Recording with new DisplayList format\n- batching \u0026 reordering\n- Stateless op reorder\n- Stateless op rendering\n- Frame lifecycle (clear, geterror, cleanup)\n\nNot done:\n- SaveLayer (clipped and unclipped)\n- HW layers\n- Complex clipping\n- Ripple projection\n- Z reordering\n- Z shadows\n- onDefer prefetching (text + task kickoff)\n- round rect clip\n- linear allocation for std collections\n- AssetAtlas support\n\nChange-Id: Iaf98c1a3aeab5fa47cc8f9c6d964420abc0e7691\n"
    },
    {
      "commit": "8d0ec389531d071529fb0a800f10733b057205d9",
      "tree": "f4d5aeffeae8ce2a0631cae1b5624abcd3aa9eb1",
      "parents": [
        "641736411b5387729bd2ef5e68ef3fd2d60c31f8"
      ],
      "author": {
        "name": "Teng-Hui Zhu",
        "email": "ztenghui@google.com",
        "time": "Thu Oct 01 16:49:16 2015 -0700"
      },
      "committer": {
        "name": "Teng-Hui Zhu",
        "email": "ztenghui@google.com",
        "time": "Fri Oct 02 10:23:32 2015 -0700"
      },
      "message": "Early return when the scale is 0.\n\nb/24534579\n\nChange-Id: Ib3581ec99387ca70ca036026f64857a49657d94b\n"
    },
    {
      "commit": "e248bd1b2c3fcf8088429507e73b31f45ee2544b",
      "tree": "11b5ca9ab43877438cc05101ca0c8c2c95bfb6bd",
      "parents": [
        "c0877bb0ff769f09e9e60f600bdd294f1aac8331"
      ],
      "author": {
        "name": "John Reck",
        "email": "jreck@google.com",
        "time": "Wed Aug 05 13:53:53 2015 -0700"
      },
      "committer": {
        "name": "John Reck",
        "email": "jreck@google.com",
        "time": "Wed Aug 26 16:29:15 2015 -0700"
      },
      "message": "Serializing display lists\n\nThis is a WIP prototype\n\nChange-Id: Id4bfcf2b7bf905221c3734b7b6887c9b2efd37e6\n"
    },
    {
      "commit": "71c10ee8be20be968b19a88f771077933f7cc155",
      "tree": "8ac555739ab17383aa881e313c561f778ff357b8",
      "parents": [
        "d7ba5795bed76d2b56be2ac2f1d548b90df162d7",
        "b9ce116dac378b4cf4490f265dcbd5704a1dd43c"
      ],
      "author": {
        "name": "Chris Craik",
        "email": "ccraik@google.com",
        "time": "Fri Aug 21 23:08:39 2015 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Aug 21 23:08:39 2015 +0000"
      },
      "message": "Merge \"Switch several enums to enum classes\""
    },
    {
      "commit": "b9ce116dac378b4cf4490f265dcbd5704a1dd43c",
      "tree": "359fda22ac4f3c659c1afe2542a8266b9278318b",
      "parents": [
        "e4a6f925621e9360238869ae28f7df1b4c2d97de"
      ],
      "author": {
        "name": "Chris Craik",
        "email": "ccraik@google.com",
        "time": "Thu Aug 20 15:14:06 2015 -0700"
      },
      "committer": {
        "name": "Chris Craik",
        "email": "ccraik@google.com",
        "time": "Fri Aug 21 23:05:44 2015 +0000"
      },
      "message": "Switch several enums to enum classes\n\nChange-Id: I00ecd0b61657196b51704f70ca31a9d1c1ac254e\n"
    },
    {
      "commit": "3aadd60521960be063ee06208562ccb63dc414e3",
      "tree": "fb909df4136900609d329517bec9be21b51faa53",
      "parents": [
        "999da7464aaff25e819498a86819407084acad7c"
      ],
      "author": {
        "name": "Chris Craik",
        "email": "ccraik@google.com",
        "time": "Thu Aug 20 12:41:40 2015 -0700"
      },
      "committer": {
        "name": "Chris Craik",
        "email": "ccraik@google.com",
        "time": "Fri Aug 21 10:33:02 2015 -0700"
      },
      "message": "Revert \"Revert \"Simplify TextureView draw path\"\"\n\nFixed build breakage\n\nThis reverts commit d35dcb13115ca1dd8c07e397f43a186cd7fd1a01.\n\nChange-Id: Id3a103fbaac15a05f558bce2161ce17b6e8d2ea3\n"
    },
    {
      "commit": "3b1c32eb5d96c9a13e101cc7207f27d045c6bd8b",
      "tree": "d4441f35ea4bdb5bfe68727a529601255e613400",
      "parents": [
        "36d4aaeb6edddc995620c491e8a2d61a0a700c59",
        "d35dcb13115ca1dd8c07e397f43a186cd7fd1a01"
      ],
      "author": {
        "name": "Bart Sears",
        "email": "bsears@google.com",
        "time": "Thu Aug 20 02:25:30 2015 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Aug 20 02:25:30 2015 +0000"
      },
      "message": "Merge \"Revert \"Simplify TextureView draw path\"\""
    },
    {
      "commit": "d35dcb13115ca1dd8c07e397f43a186cd7fd1a01",
      "tree": "4f2c4acd4e0df556f2d34529dcb85fac3815dc44",
      "parents": [
        "20a248934c67b19c8734362dba76a5cc94254686"
      ],
      "author": {
        "name": "Bart Sears",
        "email": "bsears@google.com",
        "time": "Thu Aug 20 02:23:39 2015 +0000"
      },
      "committer": {
        "name": "Bart Sears",
        "email": "bsears@google.com",
        "time": "Thu Aug 20 02:23:39 2015 +0000"
      },
      "message": "Revert \"Simplify TextureView draw path\"\n\nThis reverts commit 20a248934c67b19c8734362dba76a5cc94254686.\n\nChange-Id: Iaa3ebb1d868acbe184080087aec312b43e87e3c7\n"
    },
    {
      "commit": "87f9c42f5411d1b00f9babe7873b8200c3a25e60",
      "tree": "4e2bc4592d8549d1b61182f72e59473eb6a56a67",
      "parents": [
        "79a230f77737eba275b752f17ab0af8adf000a0a",
        "20a248934c67b19c8734362dba76a5cc94254686"
      ],
      "author": {
        "name": "Chris Craik",
        "email": "ccraik@google.com",
        "time": "Thu Aug 20 00:02:09 2015 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Aug 20 00:02:09 2015 +0000"
      },
      "message": "Merge \"Simplify TextureView draw path\""
    },
    {
      "commit": "20a248934c67b19c8734362dba76a5cc94254686",
      "tree": "4e85f51c30b3fb3d8fdafdbec40dc5a09947dcf9",
      "parents": [
        "e264f9a51ef2158df345c3c4b19dd6098e959141"
      ],
      "author": {
        "name": "Chris Craik",
        "email": "ccraik@google.com",
        "time": "Wed Aug 19 14:21:42 2015 -0700"
      },
      "committer": {
        "name": "Chris Craik",
        "email": "ccraik@google.com",
        "time": "Wed Aug 19 16:59:45 2015 -0700"
      },
      "message": "Simplify TextureView draw path\n\nbug:20461288\n\nChange-Id: I239fbd26ab2177481c84feb62a1da68faeb634ac\n"
    },
    {
      "commit": "e5e6f4837b27eefa542e65cdb89c796f28e11ec5",
      "tree": "98eb8edfeff44a9a076dd8347c2053326fa09a3c",
      "parents": [
        "c725313a77ebb6f9f40e4c57f7e43beeaed60443",
        "6daa13c5fa7577fa1d8371deca446f6ca911f38f"
      ],
      "author": {
        "name": "Chris Craik",
        "email": "ccraik@google.com",
        "time": "Wed Aug 19 22:38:07 2015 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Aug 19 22:38:07 2015 +0000"
      },
      "message": "Merge \"Change setMatrix behavior to only affect canvas-local matrix\""
    },
    {
      "commit": "7c85c54499994c687a833644f7f213e747fadb98",
      "tree": "42a87d7a8963fd633f988dc7900d69b6e1948ff1",
      "parents": [
        "e264f9a51ef2158df345c3c4b19dd6098e959141"
      ],
      "author": {
        "name": "Chris Craik",
        "email": "ccraik@google.com",
        "time": "Wed Aug 19 15:10:24 2015 -0700"
      },
      "committer": {
        "name": "Chris Craik",
        "email": "ccraik@google.com",
        "time": "Wed Aug 19 15:10:25 2015 -0700"
      },
      "message": "Remove Matrix4::load(Matrix4\u0026)\n\nbug:22320446\n\nChange-Id: Id6d1cc9b4aea828b0cdf622ad672064d72671f8d\n"
    },
    {
      "commit": "6daa13c5fa7577fa1d8371deca446f6ca911f38f",
      "tree": "fa5d3ed346371a41ea6335676f77750cb0f733fc",
      "parents": [
        "e264f9a51ef2158df345c3c4b19dd6098e959141"
      ],
      "author": {
        "name": "Chris Craik",
        "email": "ccraik@google.com",
        "time": "Wed Aug 19 13:32:12 2015 -0700"
      },
      "committer": {
        "name": "Chris Craik",
        "email": "ccraik@google.com",
        "time": "Wed Aug 19 13:32:15 2015 -0700"
      },
      "message": "Change setMatrix behavior to only affect canvas-local matrix\n\nbug:22189925\n\nThis makes setMatrix(getMatrix()) work as expected, and makes setMatrix()\nmuch more useful without changing behavior relative to a View\u0027s parent\nhierarchy.\n\nChange-Id: I608613bd27c1b9052ae583f8fd2119cf37a2f6d7\n"
    },
    {
      "commit": "3c9edc9fae8af8964a491a71217b09e3551fb417",
      "tree": "38eed740afdaf5bd07dd23af0140355dac92e0b1",
      "parents": [
        "b1870e922e9e149f632bddcd8b50fcc8220014d7",
        "f293259c0d7331892dfc87180f813ccfd0101c09"
      ],
      "author": {
        "name": "Derek Sollenberger",
        "email": "djsollen@google.com",
        "time": "Mon Aug 17 12:44:06 2015 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Aug 17 12:44:06 2015 +0000"
      },
      "message": "Merge \"Cleanup unused param in RenderNode::computeOrdering\""
    },
    {
      "commit": "f293259c0d7331892dfc87180f813ccfd0101c09",
      "tree": "61870f7b72297c881455c9eb46f67c28c12b5dfe",
      "parents": [
        "eff1b7175d2c32ff91cb766ea454ffee787bed9f"
      ],
      "author": {
        "name": "Derek Sollenberger",
        "email": "djsollen@google.com",
        "time": "Thu Aug 13 14:59:33 2015 -0400"
      },
      "committer": {
        "name": "Derek Sollenberger",
        "email": "djsollen@google.com",
        "time": "Fri Aug 14 15:11:23 2015 -0400"
      },
      "message": "Cleanup unused param in RenderNode::computeOrdering\n\nChange-Id: I4012ac7fce446770c5619dc149f6d62741237fc2\n"
    },
    {
      "commit": "25f8da9b6ae5ea721094c63235dca1d00498f2ac",
      "tree": "0aa3c99013f4a902137be6dd421ff7952532d9e1",
      "parents": [
        "48d520920b5fc6fab025705912b8f9beeacf1181",
        "149173d28c0843aba86b0810ce75b34be6a0d08f"
      ],
      "author": {
        "name": "John Reck",
        "email": "jreck@google.com",
        "time": "Thu Aug 13 15:26:55 2015 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Aug 13 15:26:55 2015 +0000"
      },
      "message": "Merge \"Support new EGL extensions\""
    },
    {
      "commit": "149173d28c0843aba86b0810ce75b34be6a0d08f",
      "tree": "b602af79dc1bb677a6fc504960cd27d4ac09ff6b",
      "parents": [
        "fb3a57d0c1044dedacabfaaa722f5ed4409067b9"
      ],
      "author": {
        "name": "John Reck",
        "email": "jreck@google.com",
        "time": "Mon Aug 10 09:52:29 2015 -0700"
      },
      "committer": {
        "name": "John Reck",
        "email": "jreck@google.com",
        "time": "Wed Aug 12 14:26:05 2015 -0700"
      },
      "message": "Support new EGL extensions\n\nBug: 21753739\n\nIncludes a revert of 13d1b4ab10fbee5e81a2ba1ac59cfae1e51d3ef0\nas that only supported EGL_EXT_buffer_age\n\nChange-Id: Ia86a47d19e3355c067934d7764c330b640c6958d\n"
    },
    {
      "commit": "c128823940fb0be96eda810fa9f0c75f66d944b0",
      "tree": "80acd00da3cf348f7af45ed1ebda6a1ea302e834",
      "parents": [
        "2d2ba516e6f1ea9e515f29cdf84e75a17e8fa60b"
      ],
      "author": {
        "name": "John Reck",
        "email": "jreck@google.com",
        "time": "Wed Aug 12 13:39:11 2015 -0700"
      },
      "committer": {
        "name": "John Reck",
        "email": "jreck@google.com",
        "time": "Wed Aug 12 13:52:01 2015 -0700"
      },
      "message": "Fix bug in calculating perspective damage\n\nChange-Id: Iacab98cf3525f891012087acf85e4205b5e8f0d0\n"
    },
    {
      "commit": "272a685f17cc4828257e521a6f62b7b17870f75e",
      "tree": "490cc3f92f5c50debc07421395ab54c3fd7f2fd6",
      "parents": [
        "c36df952292b69920d4764a8a37361073fcf4f2c"
      ],
      "author": {
        "name": "John Reck",
        "email": "jreck@google.com",
        "time": "Wed Jul 29 16:48:58 2015 -0700"
      },
      "committer": {
        "name": "John Reck",
        "email": "jreck@google.com",
        "time": "Thu Jul 30 09:51:52 2015 -0700"
      },
      "message": "Replace most usages of utils/Vector.h\n\nChange-Id: I540d1b3523244d6c71fc52d6fb30555271c25644\n"
    },
    {
      "commit": "c052a9a1bb1d0b7918f73166a36e96e0b1a9ed92",
      "tree": "c5efd992b399b9c5222d9ddf3c0918056804d048",
      "parents": [
        "a48c0304bfc72dbf422382ced0a5b2705a7bfd9f",
        "a2fd32348b06b22963fcc7c33179fddbd2394dbf"
      ],
      "author": {
        "name": "John Reck",
        "email": "jreck@google.com",
        "time": "Tue Jul 21 22:00:50 2015 +0000"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Tue Jul 21 22:00:50 2015 +0000"
      },
      "message": "am a2fd3234: am 3bfe4b47: am 1cd5afc1: am 9317d0b9: am 1fddd3ef: Merge \"Mark isInUse per-window\" into mnc-dev\n\n* commit \u0027a2fd32348b06b22963fcc7c33179fddbd2394dbf\u0027:\n  Mark isInUse per-window\n"
    },
    {
      "commit": "00e79c9947b741194ff6c0d08ede9b3befbf9c9d",
      "tree": "26098cf607eaef09a94855aec4ccdd9d8789fd55",
      "parents": [
        "29cf9aea5490c42b85aaaa98b6784daff82629f8"
      ],
      "author": {
        "name": "John Reck",
        "email": "jreck@google.com",
        "time": "Tue Jul 21 10:23:59 2015 -0700"
      },
      "committer": {
        "name": "John Reck",
        "email": "jreck@google.com",
        "time": "Tue Jul 21 10:46:54 2015 -0700"
      },
      "message": "Mark isInUse per-window\n\nBug: 22509159\nChange-Id: I0ae0f1fa582ee38dcb9f24ca20f0b4d0c57ccb32\n"
    },
    {
      "commit": "5a4690bf26932c0d6940e4af8516d920e09ae81a",
      "tree": "ab5782e75455e9752708d9400ffa15e022609f51",
      "parents": [
        "3aed7affdfb499018656edb78563368b9cbfce3c"
      ],
      "author": {
        "name": "Chris Craik",
        "email": "ccraik@google.com",
        "time": "Tue Jul 14 12:13:03 2015 -0700"
      },
      "committer": {
        "name": "Chris Craik",
        "email": "ccraik@google.com",
        "time": "Tue Jul 14 13:25:38 2015 -0700"
      },
      "message": "Clean up unncessary defines\n\nLOG_TAG and TRACE_TAG are already defined in the makefile\n\nChange-Id: I9e53e3dacbe018441edd74cb7c8c90846defee74\n"
    },
    {
      "commit": "0f6cb32c75d622d4ae0417eb29b34fc8c8a92598",
      "tree": "7d846f0c027bbf9e8673361c27b93cd12e1cd60e",
      "parents": [
        "e962f2c8fb5518f175b6141c7717699c26f04964",
        "a5e2946f5ab7618997fb317ad9f5f56c160ebee5"
      ],
      "author": {
        "name": "Tom Hudson",
        "email": "tomhudson@google.com",
        "time": "Fri Jul 10 13:35:27 2015 +0000"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Fri Jul 10 13:35:27 2015 +0000"
      },
      "message": "am a5e2946f: am b9d7bba5: am 434b577f: am 8ac76504: am 9613e9b7: Merge \"New setLocalMatrix() operation for HWUI\" into mnc-dev\n\n* commit \u0027a5e2946f5ab7618997fb317ad9f5f56c160ebee5\u0027:\n  New setLocalMatrix() operation for HWUI\n"
    },
    {
      "commit": "ac7b6d33d23cb0baaf61c723346198d41f012035",
      "tree": "9302223ad4dd2337f6e6b4524fe83032532c20a4",
      "parents": [
        "937edac8e8583023019b625dd426ebf65169e30d"
      ],
      "author": {
        "name": "Tom Hudson",
        "email": "tomhudson@google.com",
        "time": "Tue Jun 30 11:26:13 2015 -0400"
      },
      "committer": {
        "name": "Tom Hudson",
        "email": "tomhudson@google.com",
        "time": "Thu Jul 09 16:15:31 2015 -0400"
      },
      "message": "New setLocalMatrix() operation for HWUI\n\nConcats any matrix passed through from DisplayListCanvas with the\ninitialTransform of the containing RenderNode.\n\nBUG:22189925\n\nChange-Id: I5ea54a6e2a29520c79a8860bde7682694e8595d2\n"
    },
    {
      "commit": "02a26300fb129608eb1df8cf31c14a5a5d8bd6ed",
      "tree": "e1520c225c50d3671c4c94fdeedc9152a7b64874",
      "parents": [
        "0c83048b8ca0012451afda1778b5e7e9d41c962d"
      ],
      "author": {
        "name": "Tom Hudson",
        "email": "tomhudson@google.com",
        "time": "Wed Jun 24 11:32:42 2015 -0400"
      },
      "committer": {
        "name": "Tom Hudson",
        "email": "tomhudson@google.com",
        "time": "Wed Jun 24 16:56:43 2015 +0000"
      },
      "message": "Switch framework to new Skia enums\n\nAllow Skia to finish deprecating old path operation enumerations.\n\nChange-Id: I61e4489e639043acb78d47994ab62a31f18bd878\n"
    },
    {
      "commit": "3f725f0a5abd23833176bdc26fda964e923e75de",
      "tree": "6d043228a90695c33ba52f5a5cab69a80ce1e1c7",
      "parents": [
        "6138a43ca9b312014bc9f57c1802180dc88188b2"
      ],
      "author": {
        "name": "John Reck",
        "email": "jreck@google.com",
        "time": "Tue Jun 16 10:29:31 2015 -0700"
      },
      "committer": {
        "name": "John Reck",
        "email": "jreck@google.com",
        "time": "Tue Jun 16 10:29:31 2015 -0700"
      },
      "message": "Fix null deref\n\nBug: 21857172\n\nwillHaveFunctor was assuming that either mStagingDisplayList\nor mDisplayList would be non-null but this isn\u0027t true. Both\ncan be null in some scenarios (notably after a trimMemory)\n\nChange-Id: Ia2915b84cfc907ec9c7cbec54ed6dc26283ec998\n"
    },
    {
      "commit": "a766cb2bce5db9108c0266fbebea6aa18d5713ff",
      "tree": "2718003d7dc16d0a5f94aeda1acf40c5eaae8fad",
      "parents": [
        "4e9d9b2a590105035c29f12ecf0689333e6b55e7"
      ],
      "author": {
        "name": "Chris Craik",
        "email": "ccraik@google.com",
        "time": "Mon Jun 08 16:49:43 2015 -0700"
      },
      "committer": {
        "name": "Chris Craik",
        "email": "ccraik@google.com",
        "time": "Fri Jun 12 13:34:58 2015 -0700"
      },
      "message": "Put WebViews with on a HW layer if stencil/shader clipping is needed\n\nbug:17322378\nChange-Id: I0de574bf116b30e2ad4194366e19d47d49708902\n"
    },
    {
      "commit": "4e9d9b2a590105035c29f12ecf0689333e6b55e7",
      "tree": "250eea350d584e8d280d5923eb2a3ad092d2f3c7",
      "parents": [
        "cc87cfa29c4b38d1f119bdce652918565b0fed0f"
      ],
      "author": {
        "name": "Chris Craik",
        "email": "ccraik@google.com",
        "time": "Fri Jun 12 11:07:23 2015 -0700"
      },
      "committer": {
        "name": "Chris Craik",
        "email": "ccraik@google.com",
        "time": "Fri Jun 12 11:07:23 2015 -0700"
      },
      "message": "Revert to save-layer based alpha if layer would be too large\n\nbug:21011574\nChange-Id: I323f2398188ffc2bbed6a98578d25d7e5f6c337d\n"
    },
    {
      "commit": "bf72eb80d9e00fe2fa360dff0ef581ea27c8e965",
      "tree": "82c421ae436138b5eece8b2023af1b884a7635d0",
      "parents": [
        "72285e5600fad17c42730d6f84164d8425d4d43c"
      ],
      "author": {
        "name": "Chris Craik",
        "email": "ccraik@google.com",
        "time": "Mon Jun 08 11:30:44 2015 -0700"
      },
      "committer": {
        "name": "Chris Craik",
        "email": "ccraik@google.com",
        "time": "Mon Jun 08 11:39:02 2015 -0700"
      },
      "message": "Add projection info to RenderNode dumps\n\nbug:21502154\n\nAlso fixes several issues around DISPLAY_LIST_DEBUG\n\nChange-Id: I726f5bc071f8c037ffe1b224175fe5c1e2b1c5bd\n"
    },
    {
      "commit": "1cd7e4c3d0216cfb9a8a685ca8cf6f0d740a9dff",
      "tree": "2ae1662b8d6a4ff711e6ce621e690e4f6204c0f1",
      "parents": [
        "5cd795a9094eb02c983751ecabca6f24b0a01c58",
        "fca52b7583d1e5f5ff8ed06554875d2a30ef56fa"
      ],
      "author": {
        "name": "Chris Craik",
        "email": "ccraik@google.com",
        "time": "Thu May 28 22:03:06 2015 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu May 28 22:03:08 2015 +0000"
      },
      "message": "Merge \"Use path intersection instead of saveLayer+mesh to mask projected ripples\" into mnc-dev"
    },
    {
      "commit": "43a1d31a2837406a437937b340db85c1a05ed1ed",
      "tree": "0567a35635519a9aa7fa5e5db0e68121ac2bc434",
      "parents": [
        "aa1cd25db72297f13539928e8aa45ba992f2f230"
      ],
      "author": {
        "name": "Chris Craik",
        "email": "ccraik@google.com",
        "time": "Wed May 27 11:28:14 2015 -0700"
      },
      "committer": {
        "name": "Chris Craik",
        "email": "ccraik@google.com",
        "time": "Wed May 27 11:28:15 2015 -0700"
      },
      "message": "Fix assert when dumping view at 0 alpha\n\nbug:21461177\n\nChange-Id: Ib4aba7b9641254012471da44aa804813b9679423\n"
    },
    {
      "commit": "fca52b7583d1e5f5ff8ed06554875d2a30ef56fa",
      "tree": "e383a2db169421a722fa9c559dd01904e83fa504",
      "parents": [
        "aa1cd25db72297f13539928e8aa45ba992f2f230"
      ],
      "author": {
        "name": "Chris Craik",
        "email": "ccraik@google.com",
        "time": "Tue Apr 28 11:45:59 2015 -0700"
      },
      "committer": {
        "name": "Chris Craik",
        "email": "ccraik@google.com",
        "time": "Tue May 26 17:53:16 2015 -0700"
      },
      "message": "Use path intersection instead of saveLayer+mesh to mask projected ripples\n\nbug:14297149\n\nSaveLayer\u0027s performance cost is high, and proportional to the surface\nbeing projected onto. Since ripples (even unbounded ones) are now\nalways projected to the arbitrary background content behind them, this\ncost is especially important to avoid.\n\nThis removes the last semi-secret, saveLayer from the projected\nripple implementation.\n\nAlso fixes the HW test app to correctly demonstrate this projection\nmasking behavior.\n\nAdditionaly, alters PathTessellator to gracefully handle\ncounter-clockwise paths, and simplifies the work done by\nShadowTessellator to ensure all of its paths are counterclockwise.\n\nChange-Id: Ibe9e12812bd10a774e20b1d444a140c368cbba8c\n"
    },
    {
      "commit": "1a0808e64c170fa7b620b858fa5875f6f08a2b54",
      "tree": "6503695e18d11985a9a86257bd78ddced75e3e13",
      "parents": [
        "55e603ee9de06125751292c84f1b25fb9a78d4e4"
      ],
      "author": {
        "name": "Chris Craik",
        "email": "ccraik@google.com",
        "time": "Wed May 13 16:33:04 2015 -0700"
      },
      "committer": {
        "name": "Chris Craik",
        "email": "ccraik@google.com",
        "time": "Wed May 13 16:47:19 2015 -0700"
      },
      "message": "Add back alpha atrace log\n\nbug:20922838\n\nChange-Id: I70ccbffdd5f140cd1dd71fbf456fb5b085e74a4a\n"
    },
    {
      "commit": "8df5ffa9ae0667d9e0241adf4675753156fcef84",
      "tree": "5b59aa1d6cd6733a28bd316afff67091d9856db7",
      "parents": [
        "340b198ccbd1a05e67d586c345139617d4b84ce0"
      ],
      "author": {
        "name": "Chris Craik",
        "email": "ccraik@google.com",
        "time": "Tue Apr 28 17:47:20 2015 -0700"
      },
      "committer": {
        "name": "Chris Craik",
        "email": "ccraik@google.com",
        "time": "Tue Apr 28 17:47:20 2015 -0700"
      },
      "message": "Remove concept of layer alpha override\n\nbug:19412691\nChange-Id: I9e150fe4a1b2c0cf140519a33c02fd4771ef1c50\n"
    },
    {
      "commit": "856f0cc3e382206e67c1a62fe878627d7dd9ada5",
      "tree": "6836c06a66d3dc21d5ccfc6d819d6e5e0e5d8da0",
      "parents": [
        "580c30a63353f67433da25ef7b90913300e0372f"
      ],
      "author": {
        "name": "Chris Craik",
        "email": "ccraik@google.com",
        "time": "Tue Apr 21 15:13:29 2015 -0700"
      },
      "committer": {
        "name": "Chris Craik",
        "email": "ccraik@google.com",
        "time": "Mon Apr 27 18:12:07 2015 +0000"
      },
      "message": "Promote RenderProperties with an alpha to have a RenderLayer\n\nbug:20254728\nChange-Id: I0bd1d440fe46683b291d4c8ab07a630c34b2eadc\n"
    },
    {
      "commit": "182952f5eeefc2a21d76d4664ada0e2d78c1105c",
      "tree": "e2f1792de42f8d80d5843c3414cdfe7f1cd98c6a",
      "parents": [
        "be331a3809b9cf921c6ad65e1d671b24e97dded9"
      ],
      "author": {
        "name": "Chris Craik",
        "email": "ccraik@google.com",
        "time": "Mon Mar 09 14:17:29 2015 -0700"
      },
      "committer": {
        "name": "Chris Craik",
        "email": "ccraik@google.com",
        "time": "Mon Mar 09 18:06:32 2015 -0700"
      },
      "message": "Glop based composeLayerRegion/Rect\n\nChange-Id: I69440cabca84948e8aaead9479d616ebc2496517\n"
    },
    {
      "commit": "a7e5367b5c9d180ccc010cf5cc45e25c021f2ee6",
      "tree": "3b8bb174e0a3c3e0679916871e0e0cdb99aa809f",
      "parents": [
        "a42d2eaf2d6b3cb6072e99b4904b76c8cc263cf3"
      ],
      "author": {
        "name": "Chris Craik",
        "email": "ccraik@google.com",
        "time": "Tue Feb 17 16:42:36 2015 -0800"
      },
      "committer": {
        "name": "Chris Craik",
        "email": "ccraik@google.com",
        "time": "Mon Feb 23 16:18:38 2015 -0800"
      },
      "message": "Fix atrace saveLayer flag logging\n\nChange-Id: I5da85284c15316c9db4cc74011b855ef8c2f7cdd\n"
    },
    {
      "commit": "031888744e24b5c7243ac99ec98b78aff5db1c78",
      "tree": "ba2037e7d008a1d7dfbcfb4cb905ea7fe68ffaef",
      "parents": [
        "6c15ffa196fc9b7724c189d833c3435d8db12266"
      ],
      "author": {
        "name": "Chris Craik",
        "email": "ccraik@google.com",
        "time": "Mon Feb 02 18:39:33 2015 -0800"
      },
      "committer": {
        "name": "Chris Craik",
        "email": "ccraik@google.com",
        "time": "Wed Feb 04 15:57:59 2015 -0800"
      },
      "message": "GlopBuilder, and test app refactor\n\nChange-Id: I2cd299ccf178007fd5f83bab6c3448f03aec7843\n"
    },
    {
      "commit": "2ae07339824efc50468f971ff8920ff0b894cad4",
      "tree": "ade54607e4541ad140890fb32e39b0e9df6bf438",
      "parents": [
        "8076b5a8df5bdfab478c8af41b65de7b131db5b3"
      ],
      "author": {
        "name": "Chris Craik",
        "email": "ccraik@google.com",
        "time": "Wed Jan 21 14:22:39 2015 -0800"
      },
      "committer": {
        "name": "Chris Craik",
        "email": "ccraik@google.com",
        "time": "Wed Jan 21 14:22:39 2015 -0800"
      },
      "message": "Remove DisplayListLogBuffer\n\nChange-Id: I001832fc444b6d532f4a382e0a31cc1d8956dbd8\n"
    },
    {
      "commit": "3d4eed7f1aa99401dabe2e45b82f98fb4fc2d754",
      "tree": "e727b03577a823f638cab2f76a8a1161b73662eb",
      "parents": [
        "83eb4443a9d24f2ae4a1e516354748850c10d06b"
      ],
      "author": {
        "name": "Derek Sollenberger",
        "email": "djsollen@google.com",
        "time": "Thu Dec 04 15:20:29 2014 -0500"
      },
      "committer": {
        "name": "Derek Sollenberger",
        "email": "djsollen@google.com",
        "time": "Fri Jan 09 13:56:56 2015 -0500"
      },
      "message": "Update HWUI to store its own SkBitmap objects\n\nThis enables us to...\n\n1) simplify the lifecycle/ownership between Java and HWUI\n2) remove DisplayListRenderer::drawBitmapData and associated logic\n3) track pixel lifecycle using standard SkPixelRef refcounting\n4) Remove uncessary calls to ref/unref the bitmap\u0027s pixels and colorTable\n\nChange-Id: I3c95078da20995444f6388a029414280fd654318\n"
    },
    {
      "commit": "71487eb0ceb2b7dea02649e78d99bb5952f5eaef",
      "tree": "05513c6b4fe8ccccc1b8e08e0aae9d5094dc40f1",
      "parents": [
        "2b2ad7ce9f008cc383394cc91389d667575ec45d"
      ],
      "author": {
        "name": "Mike Reed",
        "email": "reed@google.com",
        "time": "Wed Nov 19 16:13:20 2014 -0500"
      },
      "committer": {
        "name": "Tom Hudson",
        "email": "tomhudson@google.com",
        "time": "Tue Jan 06 21:41:35 2015 +0000"
      },
      "message": "Merge frameworks/base changes from master-skia to master.\n\nAdaptations to changes in Skia upstream since Oct 2014.\n(https://code.google.com/p/skia/issues/detail?id\u003d2377)\n\ncbb922d use new roundOut signature\n77082de Call SkColorTable::readColors().\n5456ab1 Handle the result of SkMatrix::asAffine.\n25cfc78 Remove dependence on SK_LEGACY_PICTURE_SIZE_API.\n\nBUG:18468293\n\nChange-Id: I5a4d274e854298843891410b1ffd5e24f038b88a"
    },
    {
      "commit": "d41c4d8c732095ae99c955b6b82f7306633004b1",
      "tree": "dbb2e26c6c5a80c7ccf43e5cd5fb1554cc603555",
      "parents": [
        "8dfaa4904205772cdceee63ef3989bcdedf1a914"
      ],
      "author": {
        "name": "Chris Craik",
        "email": "ccraik@google.com",
        "time": "Mon Jan 05 15:51:13 2015 -0800"
      },
      "committer": {
        "name": "Chris Craik",
        "email": "ccraik@google.com",
        "time": "Mon Jan 05 16:49:13 2015 -0800"
      },
      "message": "Add overrides and switch to nullptr keyword for all files\n\nAdds remaining missing overrides and nullptr usages, missed due to\nan extreme failure in tool usage.\n\nChange-Id: I56abd72975a3999ad13330003c348db40f59aebf\n"
    },
    {
      "commit": "51d6a3db97bdd5315f1a17a4b447d10a92217b98",
      "tree": "80803f8d2a5507e2d29bd58c7243a23fca343454",
      "parents": [
        "e84a208317e0ed388fcdad1e6743c7849acb51b0"
      ],
      "author": {
        "name": "Chris Craik",
        "email": "ccraik@google.com",
        "time": "Mon Dec 22 17:16:56 2014 -0800"
      },
      "committer": {
        "name": "Chris Craik",
        "email": "ccraik@google.com",
        "time": "Tue Dec 23 16:53:56 2014 -0800"
      },
      "message": "Cleanup various clang warnings, use unique_ptrs in several places\n\nChange-Id: I347904b25e51fcc7de14b1e72f1acd0f6ba26f3f\n"
    },
    {
      "commit": "a1c3fdfbc7a8f271f916b89e721e4d371f1dfe8f",
      "tree": "c38ecf73a9a4c5b64a9ca14e060edfac2d87a555",
      "parents": [
        "10c9c6681554ab7ae0a322c95ba99574d6917962",
        "3f454e7d1cf7103e312f67f745f01f00fa49df13"
      ],
      "author": {
        "name": "Chris Craik",
        "email": "ccraik@google.com",
        "time": "Fri Dec 12 04:30:44 2014 +0000"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Fri Dec 12 04:30:44 2014 +0000"
      },
      "message": "am 3f454e7d: am 63c7b246: Merge \"Correct layer size formatting in trace\" into lmp-mr1-dev automerge: 00905a9\n\n* commit \u00273f454e7d1cf7103e312f67f745f01f00fa49df13\u0027:\n  Correct layer size formatting in trace\n"
    },
    {
      "commit": "3f454e7d1cf7103e312f67f745f01f00fa49df13",
      "tree": "98012eb43a2c47674a47f9383d29638a27f6e8da",
      "parents": [
        "2d6627a9f28c5c31fec5da3dcf48d96ff7a0d893",
        "00905a984c07ffc9960ce83548631c59aae37ec6"
      ],
      "author": {
        "name": "Chris Craik",
        "email": "ccraik@google.com",
        "time": "Fri Dec 12 04:25:43 2014 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Fri Dec 12 04:25:43 2014 +0000"
      },
      "message": "am 63c7b246: Merge \"Correct layer size formatting in trace\" into lmp-mr1-dev\nautomerge: 00905a9\n\n* commit \u002700905a984c07ffc9960ce83548631c59aae37ec6\u0027:\n  Correct layer size formatting in trace\n"
    },
    {
      "commit": "c2379070a46f208bce490b938e0673ba00373e2e",
      "tree": "03de6d4d7a829847d8b072de23ca0c37d963f472",
      "parents": [
        "596d4e7230ae1858aaafbae7987e46d65181f1bd"
      ],
      "author": {
        "name": "Chris Craik",
        "email": "ccraik@google.com",
        "time": "Thu Dec 11 14:29:51 2014 -0800"
      },
      "committer": {
        "name": "Chris Craik",
        "email": "ccraik@google.com",
        "time": "Thu Dec 11 14:29:51 2014 -0800"
      },
      "message": "Correct layer size formatting in trace\n\nbug:18722704\nChange-Id: Icef9aaa62633b2d86ad250f43d4c8fa5cc0b6842\n"
    },
    {
      "commit": "e749bd2c72d14519f6ac24d5efc399b0dafc507d",
      "tree": "eb116f344939239a74dd782effa6c43640d4101e",
      "parents": [
        "004367a15990c8b9a40812b986c5df2cc0484459",
        "a22ab0da6f72b2e52166cc6e11f4c6d44c0fb714"
      ],
      "author": {
        "name": "Chris Craik",
        "email": "ccraik@google.com",
        "time": "Tue Dec 02 01:45:54 2014 +0000"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Tue Dec 02 01:45:54 2014 +0000"
      },
      "message": "am a22ab0da: am 9a04480e: am ef124887: Merge \"Clip outline to View clip bounds for shadow computation\" into lmp-mr1-dev\n\n* commit \u0027a22ab0da6f72b2e52166cc6e11f4c6d44c0fb714\u0027:\n  Clip outline to View clip bounds for shadow computation\n"
    },
    {
      "commit": "a22ab0da6f72b2e52166cc6e11f4c6d44c0fb714",
      "tree": "9c93658e1586d303e066fb3bd67b187a5b38cedf",
      "parents": [
        "3380f4961814c0aaa23e92dca4d2999ebb254f65",
        "9a04480e36c42eb63d1d727221ba3ce6a6d533ef"
      ],
      "author": {
        "name": "Chris Craik",
        "email": "ccraik@google.com",
        "time": "Tue Dec 02 01:39:20 2014 +0000"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Tue Dec 02 01:39:20 2014 +0000"
      },
      "message": "am 9a04480e: am ef124887: Merge \"Clip outline to View clip bounds for shadow computation\" into lmp-mr1-dev\n\n* commit \u00279a04480e36c42eb63d1d727221ba3ce6a6d533ef\u0027:\n  Clip outline to View clip bounds for shadow computation\n"
    },
    {
      "commit": "faa79ff9d964de940660d2226d5b06ded9294597",
      "tree": "f0cffdaa4de22117f6a47268a17d52f79e1e0bad",
      "parents": [
        "293f0f380b514658f63474b714053fda0e92569f"
      ],
      "author": {
        "name": "Chris Craik",
        "email": "ccraik@google.com",
        "time": "Mon Dec 01 13:44:21 2014 -0800"
      },
      "committer": {
        "name": "Chris Craik",
        "email": "ccraik@google.com",
        "time": "Mon Dec 01 15:47:10 2014 -0800"
      },
      "message": "Clip outline to View clip bounds for shadow computation\n\nbug:18509823\n\nThis allows animations of View clipBounds (and other callers of\nsetClipBounds) to affect shadows, instead of leaving them floating.\n\nChange-Id: I249fa4b371a170cb0c54001f5b0e0097e109b8b8\n"
    },
    {
      "commit": "3c96a2b8fe4b52a8617e84c8aced43326d964f55",
      "tree": "f3610b41eb7fc0f7edf8afb2f74a14cc71dba7c0",
      "parents": [
        "6a2acff8c195b5b03ac022e7deb157cca06dadb6",
        "1fb141f83bad3884e2199c7acdc23932afaefe0c"
      ],
      "author": {
        "name": "Chris Craik",
        "email": "ccraik@google.com",
        "time": "Wed Nov 26 12:09:28 2014 +0000"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Wed Nov 26 12:09:28 2014 +0000"
      },
      "message": "am 1fb141f8: am 9c5b7b09: am ee660651: Merge \"Improve DisplayList state output\" into lmp-mr1-dev\n\n* commit \u00271fb141f83bad3884e2199c7acdc23932afaefe0c\u0027:\n  Improve DisplayList state output\n"
    },
    {
      "commit": "1fb141f83bad3884e2199c7acdc23932afaefe0c",
      "tree": "2eb9679e2494a207378ae5dd127f4c68632b58c5",
      "parents": [
        "6df037ac5d2b4b6f027ca36284ee09ed10970cd8",
        "9c5b7b094254cad0a8a90ece5ea650c49694087d"
      ],
      "author": {
        "name": "Chris Craik",
        "email": "ccraik@google.com",
        "time": "Wed Nov 26 12:01:46 2014 +0000"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Wed Nov 26 12:01:46 2014 +0000"
      },
      "message": "am 9c5b7b09: am ee660651: Merge \"Improve DisplayList state output\" into lmp-mr1-dev\n\n* commit \u00279c5b7b094254cad0a8a90ece5ea650c49694087d\u0027:\n  Improve DisplayList state output\n"
    },
    {
      "commit": "ee6606519d22805c1caf23a3c75cde9fc97b34eb",
      "tree": "923b1bdc3095cacfb77cc3d0b3ea0e29c24acc90",
      "parents": [
        "d0f6b4f6297373e569e383edc21aaa3f87591e0b",
        "b5a5435a77bae40b55053ccde93b1ed45d0e8329"
      ],
      "author": {
        "name": "Chris Craik",
        "email": "ccraik@google.com",
        "time": "Tue Nov 25 18:45:10 2014 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Nov 25 18:45:11 2014 +0000"
      },
      "message": "Merge \"Improve DisplayList state output\" into lmp-mr1-dev"
    }
  ],
  "next": "64bb413a664001c95c8439cf097dc3033f4ed733"
}
