)]}'
{
  "log": [
    {
      "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": "9fb42f07784ac9e1ab29fa7d5bcda6c3081d238f",
      "tree": "23fe00a35b718051d190f018ed8603d0c06acb14",
      "parents": [
        "e1a96f7fe217ccc610bd3cfb4e9a66630c816571",
        "a75b0ad3842a5cfc406fbd9c7a36bf8a7bdcf069"
      ],
      "author": {
        "name": "John Reck",
        "email": "jreck@google.com",
        "time": "Thu Dec 04 13:51:41 2014 -0800"
      },
      "committer": {
        "name": "John Reck",
        "email": "jreck@google.com",
        "time": "Thu Dec 04 13:51:41 2014 -0800"
      },
      "message": "resolved conflicts for merge of a75b0ad3 to master\n\nChange-Id: I32a2d129c556407727ada909daa6470309d42499\n"
    },
    {
      "commit": "a75b0ad3842a5cfc406fbd9c7a36bf8a7bdcf069",
      "tree": "aef030b2f3b65e829e3569a0b0304b609f1c856c",
      "parents": [
        "1c88fc009fb3f7a3b5f085abb6a40cf4d845d662",
        "a51a0901ada5e2bc472c379a39df13ff48e666ed"
      ],
      "author": {
        "name": "John Reck",
        "email": "jreck@google.com",
        "time": "Thu Dec 04 13:41:04 2014 -0800"
      },
      "committer": {
        "name": "John Reck",
        "email": "jreck@google.com",
        "time": "Thu Dec 04 13:41:04 2014 -0800"
      },
      "message": "resolved conflicts for merge of a51a0901 to lmp-mr1-dev-plus-aosp\n\nChange-Id: Id7df835f0bd3d5d276b162635ddfb7fe0918dfed\n"
    },
    {
      "commit": "01a5ea35fbba4c5bb1d7790ae1677a2fa752e042",
      "tree": "d890ced3bdb3be6275e2d13d0dbd9f901ec8ce4d",
      "parents": [
        "8d72046b9ba06feadbcf71815a1c6e1017c8da37"
      ],
      "author": {
        "name": "John Reck",
        "email": "jreck@google.com",
        "time": "Wed Dec 03 13:01:07 2014 -0800"
      },
      "committer": {
        "name": "John Reck",
        "email": "jreck@google.com",
        "time": "Wed Dec 03 13:03:59 2014 -0800"
      },
      "message": "Resume RT-animations after a pauseSurface\n\nBug: 18203577\n\nThe issue occurs as a result of performTraversals() both doing\na window relayout call *and* early-returning because it\u0027s not dirty.\n\nTo fix this pauseSurface() returns whether or not the RT-side is\n\"dirty\" to force ViewRootImpl to do a draw even if mDirty is\notherwise empty.\n\nChange-Id: I534f367e75d18d273ebf14df3927f5c464ef6bef\n"
    },
    {
      "commit": "64bb413a664001c95c8439cf097dc3033f4ed733",
      "tree": "d4562f7bb5656865d32e5d684b5a41542ecfaf58",
      "parents": [
        "8a902d9f24e83c87b054adb5836b4a5b8a257be9"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Sat Nov 22 00:35:09 2014 +0000"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Sat Nov 22 00:35:09 2014 +0000"
      },
      "message": "Revert \"resolved conflicts for merge of 220c3f4f to master\"\n\nReverted as hwui doesn\u0027t agree.\n\nThis reverts commit 8a902d9f24e83c87b054adb5836b4a5b8a257be9.\n\nChange-Id: I109e7b02bee2921e2155ded6df36f52e6f574b5a\n"
    },
    {
      "commit": "2ab8298dc37851aab4623ba3f98d71055d653a73",
      "tree": "e31d76f1c16ec8e980983392b09287515bcec2f1",
      "parents": [
        "4c9041cf837cda13c749b148661d18c3fab0fbd6",
        "99377df12ee696e01cd9071132f122801a9862ce"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Fri Nov 21 14:19:06 2014 -0800"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Fri Nov 21 14:19:06 2014 -0800"
      },
      "message": "resolved conflicts for merge of 99377df1 to lmp-mr1-dev-plus-aosp\n\nChange-Id: I3a98f55832ac447b1ed0dd129c7a93d088025943\n"
    },
    {
      "commit": "42ddc18d108f789705ad4eb697ce9599ad322507",
      "tree": "53ed2c03a53112f6bfd515a6d03b02dfed0cc9e9",
      "parents": [
        "f926d71b8ef2790da067550144860705c1a61fe5"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Fri Nov 21 09:49:08 2014 -0800"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Fri Nov 21 10:39:21 2014 -0800"
      },
      "message": "Frameworks/base: Unused parameters in hwui\n\nRemove Clang cutout for unused parameters. Fix warnings.\n\nRemove Clang cutout for deprecated Skia function usage. Has been\nfixed in the L push.\n\nChange-Id: I7ea073ff67127cc1e14e798b655e2c50615fe8e7\n"
    },
    {
      "commit": "1272887050a269d6d506b42099c2857847ad100b",
      "tree": "6770318c0302a4e486224bb87b46dcb1f9a68047",
      "parents": [
        "cba06c2272c8bce7d10b2a7ee762d12043f3252a",
        "1d03b816fea1b964cc5db4d11ddcba9b25f45d99"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Mon Nov 10 20:54:07 2014 -0800"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Mon Nov 10 20:54:07 2014 -0800"
      },
      "message": "resolved conflicts for merge of 1d03b816 to lmp-mr1-dev-plus-aosp\n\nChange-Id: Ib673768fe5fc03615626ef4b10590e5317f22172\n"
    },
    {
      "commit": "1e19674107e1aa2224c2b8c7d12bfa057efe80ea",
      "tree": "512f1a8a715497c2cde26d6ca070d923fd9c3a45",
      "parents": [
        "487ae9b8dc3e08c1a830d519a801a07cd59c8f2b"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Mon Nov 10 15:23:43 2014 -0800"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Mon Nov 10 15:58:04 2014 -0800"
      },
      "message": "Frameworks/base: Wall Werror in libs/hwui\n\nTurn on -Wall -Werror in libs/hwui. Fix errors.\n\nChange-Id: I74962d08c889712dacbd0d86d6760fc10802b6bd\n"
    },
    {
      "commit": "0e89e2b7bcb2c035e8cee77f93120e7c5617f8d2",
      "tree": "8fcd1f768f08fbeb2cd13425a2bf15b7670428f2",
      "parents": [
        "141823ec6313d9545b8354ea1e3e017a1da3cfa8"
      ],
      "author": {
        "name": "John Reck",
        "email": "jreck@google.com",
        "time": "Fri Oct 31 14:49:06 2014 -0700"
      },
      "committer": {
        "name": "John Reck",
        "email": "jreck@google.com",
        "time": "Fri Oct 31 15:30:10 2014 -0700"
      },
      "message": "Layer changes\n\nBug: 17208461\n\n* Switch Layer to be VirtualLightRefBase instead of\n  Caches\u0027 side-channel ref-counting\n* Include active layers in gfxinfo dump\n* Run gfxinfo dump on the correct thread\n* Dump gfxinfo on Layer creation failure\n\nChange-Id: I28d195699e2334518e215ab28c7a17355aee9678\n"
    },
    {
      "commit": "1125d1fa92ab9f3b8315bbfb72e038b62dfd454b",
      "tree": "b4a292e191bc815bb658355f879178706ed3f3e9",
      "parents": [
        "9b67a1a232dc0e1cda346271c3a9d118228001ee"
      ],
      "author": {
        "name": "John Reck",
        "email": "jreck@google.com",
        "time": "Thu Oct 23 11:02:19 2014 -0700"
      },
      "committer": {
        "name": "John Reck",
        "email": "jreck@google.com",
        "time": "Thu Oct 23 13:59:47 2014 -0700"
      },
      "message": "Add some free zoom to lockHardwareCanvas\n\nBug: 18099195\n\nDon\u0027t use EGL_SWAP_BUFFER_PRESERVED on surfaces that will\nnever benefit. Also clean up some confusing naming\n\nChange-Id: I674ca64e0464a3282cff79e5ecd350d08f47c014\n"
    },
    {
      "commit": "749906b468912dab7bf69a86e852deac3e80b0cc",
      "tree": "f5b80480964d2472abe257bb5c6273b8e1a57136",
      "parents": [
        "a79caa53405ea3efdd77d59ea7aa6dd64ecf09d3"
      ],
      "author": {
        "name": "John Reck",
        "email": "jreck@google.com",
        "time": "Fri Oct 03 15:02:19 2014 -0700"
      },
      "committer": {
        "name": "John Reck",
        "email": "jreck@google.com",
        "time": "Fri Oct 03 15:02:19 2014 -0700"
      },
      "message": "Cleanup DeferredLayerUpdater\n\nBug: 17765082\n\nDeferredLayerUpdater had fallen behind RT updates. Re-snap to\nlatest expectations, ensuring to call requireGlContext() prior\nto detachSurfaceTexture to avoid leaking SurfaceTextures\n\nChange-Id: Ic65fb9831e5284f658866da8da9ad5af1d227699\n"
    },
    {
      "commit": "17035b0211a3c9d45ea46a99217a6acbe76e8fbe",
      "tree": "0dc5117cec7ace03afc6dc817d9865752c6116f0",
      "parents": [
        "6e31e0f3d1ca8579e75ee1cfe4ac7c30c525f946"
      ],
      "author": {
        "name": "John Reck",
        "email": "jreck@google.com",
        "time": "Wed Sep 03 07:39:53 2014 -0700"
      },
      "committer": {
        "name": "John Reck",
        "email": "jreck@google.com",
        "time": "Wed Sep 03 11:13:53 2014 -0700"
      },
      "message": "Have destroy call freePrefetchedLayers\n\n Bug: 17208461\n\n There\u0027s a potential race condition between HardwareRenderer.destroy()\n being called (which calls destroyCanvasAndSurface()) and the renderer\n being finalized (which is what calls freePrefetchedLayers), during which\n time it\u0027s possible we get a TRIM_MEMORY_COMPLETE and destroy the EGL\n context.\n\n Fix this race condition by moving stopDrawing() and freePrefetchedLayers()\n into destroyCanvasAndSurface() where they should have been in the first\n place.\n\n Also, if we hit the assertion failure, dump the current state of\n Caches to try and provide more context for the failure.\n\nChange-Id: Ife0ba3562041e8b08e87e3e13640472b3004eed6\n"
    },
    {
      "commit": "119907cd2575c56b1ebf66348b52e67aaf6a88d8",
      "tree": "9990e37a560021560316ac2cfc6cf4c64df9cb92",
      "parents": [
        "1698297daf8068bc9e6971d43744d48f1672bab2"
      ],
      "author": {
        "name": "John Reck",
        "email": "jreck@google.com",
        "time": "Thu Aug 14 09:02:01 2014 -0700"
      },
      "committer": {
        "name": "John Reck",
        "email": "jreck@google.com",
        "time": "Wed Aug 27 17:44:25 2014 -0700"
      },
      "message": "Animator stuff\n\n Bug: 17228458\n\nChange-Id: Id884a429a512f9cd2be0ed16dbd0f10e92b4440d\n"
    },
    {
      "commit": "3e8249568cc428296ac76c7ddce3f0382d40fe5b",
      "tree": "24dee065901ece0b80bac18a03665607031ab012",
      "parents": [
        "730e9bceb746e6c50b87cc5a695eb73fea27686e"
      ],
      "author": {
        "name": "John Reck",
        "email": "jreck@google.com",
        "time": "Wed Aug 20 10:08:39 2014 -0700"
      },
      "committer": {
        "name": "John Reck",
        "email": "jreck@google.com",
        "time": "Wed Aug 20 15:54:07 2014 -0700"
      },
      "message": "Implement full View.buildLayer\n\n Bug: 17152292\n\nChange-Id: Ia3cc2aadf72fe14517f50762fc634794df51ad5a\n"
    },
    {
      "commit": "69e5adffb19135d51bde8e458f4907d7265f3e23",
      "tree": "022fc23512ae5adfbe3f86351305bc9f4538a68a",
      "parents": [
        "e222e359a0aab985488a711f6edb76820fe8c6df"
      ],
      "author": {
        "name": "Chris Craik",
        "email": "ccraik@google.com",
        "time": "Thu Aug 14 13:34:01 2014 -0700"
      },
      "committer": {
        "name": "Chris Craik",
        "email": "ccraik@google.com",
        "time": "Fri Aug 15 00:59:44 2014 +0000"
      },
      "message": "Define shadow casting behavior within layers\n\nbug:15860114\n\nSavelayers and HW layers both now support shadow casting.\n\nFor save layers, the light source should always be correct, for HW\nlayers, the light source position is set when the layer is created,\nand updated when it is resized.\n\nChange-Id: Ie85567dd43c2bb0a0b08fd0bd4db41efa793ac2b\n"
    },
    {
      "commit": "cd3a22cfec09c065d0667dd044c0788912e82465",
      "tree": "37f6d66362a53a9e863a51e8d56007a39ae7c15b",
      "parents": [
        "b287c9388e6d978d88854376d7f29fee3708276c"
      ],
      "author": {
        "name": "John Reck",
        "email": "jreck@google.com",
        "time": "Wed Aug 06 13:33:59 2014 -0700"
      },
      "committer": {
        "name": "John Reck",
        "email": "jreck@google.com",
        "time": "Wed Aug 06 20:39:47 2014 +0000"
      },
      "message": "Don\u0027t start RenderThread to do trimMemory\n\n Bug: 16825138\n\nChange-Id: I35f57898b14bc8526c3d93a3003bca6f5a3d7fbe\n"
    },
    {
      "commit": "738ec3aace180018560998d1c2cdeb9ddde5fbfa",
      "tree": "d2ec7d0e7e83fc3f81aa5f33e70b48425b67b2b3",
      "parents": [
        "8020721059de3ab7a0d9276fce8a19c97e373421"
      ],
      "author": {
        "name": "Chris Craik",
        "email": "ccraik@google.com",
        "time": "Fri Jul 25 18:25:02 2014 +0000"
      },
      "committer": {
        "name": "Chris Craik",
        "email": "ccraik@google.com",
        "time": "Fri Jul 25 18:26:36 2014 +0000"
      },
      "message": "Revert \"Dump RenderThread stack on unresponsive\"\n\nbug:16563871\nbug:16565900\nbug:16555847\nbug:16551643\n\nThis reverts commit ca66e06b9db6e6c921662886e4b7ddd02ac92280.\n\nChange-Id: I23e8d4eaf828b1b298126ba5f36e4e8e7451706a"
    },
    {
      "commit": "058fc640017c90120c599d378a4cbc55668b05b7",
      "tree": "37f480e607d1f39de8cec06b205eb0e146cc9551",
      "parents": [
        "753d849b2ad14cdacfe6b194d8aa7fc27874e385"
      ],
      "author": {
        "name": "Chris Craik",
        "email": "ccraik@google.com",
        "time": "Wed Jul 23 18:19:28 2014 -0700"
      },
      "committer": {
        "name": "Chris Craik",
        "email": "ccraik@google.com",
        "time": "Thu Jul 24 16:41:13 2014 +0000"
      },
      "message": "Connect shadow style attributes to renderer\n\nbug:15859361\n\nMoves lighting info out of StatefulBaseRenderer, since it\u0027s not useful\nat record time, and only used by OGLR.\n\nChange-Id: I7ab065d02d9304afad1dc4c48597a7a621366f8e\n"
    },
    {
      "commit": "73b7a4db4116774156fda3a510cc3afa14be9ffd",
      "tree": "928ca1b91bd9e5e8d88ce58069a6d0027d37f965",
      "parents": [
        "df8f55948a20a0f1673274ea904eeaf8031c7d57"
      ],
      "author": {
        "name": "John Reck",
        "email": "jreck@google.com",
        "time": "Wed Jul 23 14:54:04 2014 -0700"
      },
      "committer": {
        "name": "John Reck",
        "email": "jreck@google.com",
        "time": "Wed Jul 23 22:28:44 2014 +0000"
      },
      "message": "Dump RenderThread stack on unresponsive\n\n Bug: 16408405\n\nChange-Id: I4ba4836fd1451fb8ba77c34cdb843d3cb4217bb8\n"
    },
    {
      "commit": "f47a594f5250b1914c36423ee6b371f0b8db09d0",
      "tree": "f86289c7b515c2111fde3ce11e7fca384bc2f603",
      "parents": [
        "dd59aba6c7e142eae14d5f29ea6873a5b9790174"
      ],
      "author": {
        "name": "John Reck",
        "email": "jreck@google.com",
        "time": "Mon Jun 30 16:20:04 2014 -0700"
      },
      "committer": {
        "name": "John Reck",
        "email": "jreck@google.com",
        "time": "Mon Jun 30 16:36:26 2014 -0700"
      },
      "message": "Fix onTrimMemory for HardwareRenderer\n\n Also fixes detachFunctor possibly drawing after return\n\n Bug: 15189843\n Bug: 15990672\n\nChange-Id: I64c48cb674c461a8eeaba407b697e09f72c98ce3\n"
    },
    {
      "commit": "918ad523b2780e0c893f3d2a32d4ec13f2a7e921",
      "tree": "a10eb15752acf14bbf50b6e250ca8e8beeb2f736",
      "parents": [
        "81af3aef9a0d015311f6c97e318c81092c74eb47"
      ],
      "author": {
        "name": "John Reck",
        "email": "jreck@google.com",
        "time": "Fri Jun 27 14:45:25 2014 -0700"
      },
      "committer": {
        "name": "John Reck",
        "email": "jreck@google.com",
        "time": "Fri Jun 27 22:34:16 2014 +0000"
      },
      "message": "More cleanups\n\nChange-Id: Id5967944b949a2aec57e4fe9fdcdc04c11b8c35a\n"
    },
    {
      "commit": "3b20251a355c88193c439f928a84ae69483fb488",
      "tree": "33c878ebacf17cf03d089404474fa66ca041ffb9",
      "parents": [
        "97a6c20a6a52c9429ed2c8837086f3003e5da274"
      ],
      "author": {
        "name": "John Reck",
        "email": "jreck@google.com",
        "time": "Mon Jun 23 13:13:08 2014 -0700"
      },
      "committer": {
        "name": "John Reck",
        "email": "jreck@google.com",
        "time": "Mon Jun 23 15:26:49 2014 -0700"
      },
      "message": "No-fail invokeFunctor\n\n Bug: 15513308\n Bug: 15449247\n\nChange-Id: I13a29f9c8d4975cdda6dcb33b6332c2555ff0f7c\n"
    },
    {
      "commit": "546f353e7f562fdbcf59980bcb7dc11567658aa3",
      "tree": "1fdcdedb18636797fd55868041e538a9d068d09d",
      "parents": [
        "cc8f7ae682f3ce1ed82a7850433d4502245bdcb4"
      ],
      "author": {
        "name": "Mark Salyzyn",
        "email": "salyzyn@google.com",
        "time": "Tue Jun 10 12:29:14 2014 -0700"
      },
      "committer": {
        "name": "Mark Salyzyn",
        "email": "salyzyn@google.com",
        "time": "Tue Jun 10 12:29:14 2014 -0700"
      },
      "message": "hwui: 64-bit compile issue\n\nChange-Id: Ic3e3dbc6cde4bc58b23a8ab267b0868f370ad149\n"
    },
    {
      "commit": "e4267ea4f20740c37c01bfb6aefcf61fddc4566a",
      "tree": "0d00c8bff43f8b0cbe4284e51299f5ca128c83c3",
      "parents": [
        "79c7de77a7da9cbcb9428ab6203987feb35a427f"
      ],
      "author": {
        "name": "John Reck",
        "email": "jreck@google.com",
        "time": "Tue Jun 03 15:53:15 2014 -0700"
      },
      "committer": {
        "name": "John Reck",
        "email": "jreck@google.com",
        "time": "Wed Jun 04 12:21:26 2014 -0700"
      },
      "message": "Even FASTER damage calculations!\n\n * Now with more native!\n * Less matrix math thanks to bulk-property-update support!\n * Zero JNI on the View.damageInParent() path!\n * Fully aware of RT-driven animators!\n * Likely full of new and exciting bugs!\n * But it also fixes at least 1 existing invalidate bug!\n\nChange-Id: Ie0773f85a60850ff2668370c58defef2e8aa079f\n"
    },
    {
      "commit": "d72e0a339b54af0c4e731513bbad120dff694723",
      "tree": "ca8ac198de9a0cfeeae1e9e8039e35523e7810c3",
      "parents": [
        "aee470c0232afdac4256d13020fa0cf04f30395c"
      ],
      "author": {
        "name": "John Reck",
        "email": "jreck@google.com",
        "time": "Thu May 29 18:56:11 2014 -0700"
      },
      "committer": {
        "name": "John Reck",
        "email": "jreck@google.com",
        "time": "Fri May 30 12:19:33 2014 -0700"
      },
      "message": "Re-jigger layers\n\n Bug: 15185239\n Bug: 15238382\n\n Make DeferredLayerUpdater ref counted so that\n HardwareLayer:finalizer() works non-crashily on\n leaked layers\n Give DeferredLayerUpdater the ability to have a layer destroyer\n set so that leaked layers can still be recycled on the\n RenderThread\n Order layer updates based off of pushLayerUpdate() calls to fix\n issue with nested layers\n\nChange-Id: I4449cee607f7e5126e02fed7464cf48038e3dfdf\n"
    },
    {
      "commit": "fe5e7b7346a54537b980796ceeca66bfdbd05561",
      "tree": "4036571ea103cd41fbd5fe3a805191c1bef9898c",
      "parents": [
        "45d01929291eba56e1bce582192941446b86bf5a"
      ],
      "author": {
        "name": "John Reck",
        "email": "jreck@google.com",
        "time": "Fri May 23 17:42:28 2014 -0700"
      },
      "committer": {
        "name": "John Reck",
        "email": "jreck@google.com",
        "time": "Thu May 29 15:00:29 2014 -0700"
      },
      "message": "Enable debug stuffs\n\n Bug: 14596762\n * dumpsys gfxinfo implemented\n * profile GPU visual_bars implemented\n\nChange-Id: Icb948a9d5af5989b5615504d0d76ade64b93ef5b\n"
    },
    {
      "commit": "e1628b7c6fc3822fa83cf02028ce8ad67abb0afe",
      "tree": "096479f24da83593cab3505bde3aa8688e3b8f10",
      "parents": [
        "ec41d7ababd3145b7f19e5bd69480e9436cb5c7c"
      ],
      "author": {
        "name": "John Reck",
        "email": "jreck@google.com",
        "time": "Fri May 23 15:11:19 2014 -0700"
      },
      "committer": {
        "name": "John Reck",
        "email": "jreck@google.com",
        "time": "Fri May 23 15:40:14 2014 -0700"
      },
      "message": "Implement FlushCaches TODO\n\nChange-Id: Id05429e98ffe0858275b32c41fb215c1d8d930b2\n"
    },
    {
      "commit": "a5dda645da738da7b4ae15e28fa7d93d3b04b94f",
      "tree": "5ce51af907c91030662b69c37e8ece7a63e041ed",
      "parents": [
        "d30241541c3adcb126bb263ad8596e7902a6b5ae"
      ],
      "author": {
        "name": "John Reck",
        "email": "jreck@google.com",
        "time": "Thu May 22 15:43:54 2014 -0700"
      },
      "committer": {
        "name": "John Reck",
        "email": "jreck@google.com",
        "time": "Fri May 23 12:56:38 2014 -0700"
      },
      "message": "Bag of scheduling tweaks\n\n Bug: 15118640\n\n * Prevent over-stuffing the queue by dropping frames\n * Prevent double-drawing in one pulse by RT by deferring\n   vsync registration until post-draw so that it catches\n   the next vsync pulse instead of the current one\n * Bias vsync race condition towards the UI thread\n * Fix queueDelay to actually work\n\nChange-Id: Ibf584258bd93ebcbba058bd976dc8b307f1c6155\n"
    },
    {
      "commit": "797b95b26bbb7557678af78b9a2a61830158920f",
      "tree": "b2e895c064c511446b2709160c9d614819f871b2",
      "parents": [
        "d6a91b0bb64b17dcf4ae635f428dfd4ad310f73e"
      ],
      "author": {
        "name": "Chris Craik",
        "email": "ccraik@google.com",
        "time": "Tue May 20 18:10:25 2014 -0700"
      },
      "committer": {
        "name": "Chris Craik",
        "email": "ccraik@google.com",
        "time": "Wed May 21 13:50:29 2014 -0700"
      },
      "message": "Define light position (using new lighting spec) in Java\n\nAlso updates the relative shadow strengths.\n\nChange-Id: I6cac7275d38df98aea9f0dda463cd7207102986a\n"
    },
    {
      "commit": "63a06673253914510bbeebd500655008682dade1",
      "tree": "0a1c5d17edc4f5be610d4e252f24e7bc18c1bd53",
      "parents": [
        "ebb9e69513b690881a5bad7bf45c6f32e0fc7062"
      ],
      "author": {
        "name": "John Reck",
        "email": "jreck@google.com",
        "time": "Wed May 07 13:45:54 2014 -0700"
      },
      "committer": {
        "name": "John Reck",
        "email": "jreck@google.com",
        "time": "Wed May 07 13:45:54 2014 -0700"
      },
      "message": "Implement TODO(romainguy)\n\n Bug: 14277445\n\nChange-Id: Id52d6f7fcc023000adcc440bd4da67d9a673536b\n"
    },
    {
      "commit": "e4280baaa709c74d86cf6a389a4674ca665f5af6",
      "tree": "cbcc898071c3e758ce5f6b32f1002c1d2dd1352b",
      "parents": [
        "f9be77940e365036fecd8cc0e491e8545c34e79b"
      ],
      "author": {
        "name": "John Reck",
        "email": "jreck@google.com",
        "time": "Mon May 05 16:39:37 2014 -0700"
      },
      "committer": {
        "name": "John Reck",
        "email": "jreck@google.com",
        "time": "Mon May 05 16:39:37 2014 -0700"
      },
      "message": "Implement loadSystemProperties\n\n Bug: 14087580\n\nChange-Id: I7153f38c70b554a78c56a0e794da929fc401ee7a\n"
    },
    {
      "commit": "f9be77940e365036fecd8cc0e491e8545c34e79b",
      "tree": "1f15905e518d09309bb35b863d7697deb2975f78",
      "parents": [
        "5d039c458c67e8c08334e597a6a8781eda6aab13"
      ],
      "author": {
        "name": "John Reck",
        "email": "jreck@google.com",
        "time": "Fri May 02 18:21:16 2014 -0700"
      },
      "committer": {
        "name": "John Reck",
        "email": "jreck@google.com",
        "time": "Mon May 05 12:35:30 2014 -0700"
      },
      "message": "Make RenderNodeAnimator and WebView play nice\n\nChange-Id: Ifaefcf510b2d377663fc86f60608d6ec9be8329a\n"
    },
    {
      "commit": "18f16e6fba74eda173e1e7c869e6e2e2acc073ff",
      "tree": "d1ed13d4ea22a86109a09c309efb7e3d9c79112c",
      "parents": [
        "29e594c520e22b94b540873f72312614cc3fdca1"
      ],
      "author": {
        "name": "John Reck",
        "email": "jreck@google.com",
        "time": "Fri May 02 16:46:41 2014 -0700"
      },
      "committer": {
        "name": "John Reck",
        "email": "jreck@google.com",
        "time": "Mon May 05 10:57:04 2014 -0700"
      },
      "message": "TIME LORD!\n\n Bug: 14444180\n\nChange-Id: I68bec3807c4d1c88d5af1aec2fe6907d60b5f2f3\n"
    },
    {
      "commit": "e45b1fd03b524d2b57cc6c222d89076a31a08bea",
      "tree": "31ad10387f2b59b3ee9d4396be44fce67228ca75",
      "parents": [
        "627aad9c200cb19aa505504dcd232a3710e96a25"
      ],
      "author": {
        "name": "John Reck",
        "email": "jreck@google.com",
        "time": "Tue Apr 15 09:50:16 2014 -0700"
      },
      "committer": {
        "name": "John Reck",
        "email": "jreck@google.com",
        "time": "Tue Apr 29 10:42:11 2014 -0700"
      },
      "message": "RenderThread animator support\n\nChange-Id: Icf29098edfdaf7ed550bbe9d49e9eaefb4167084\n"
    },
    {
      "commit": "fae904d63947fe1687d1d44be29234cc3d538f24",
      "tree": "57837539a3eb84bc5f42f971a041e99db31cfd39",
      "parents": [
        "db8b130a19484cb6018667905e64d42ab793654f"
      ],
      "author": {
        "name": "John Reck",
        "email": "jreck@google.com",
        "time": "Mon Apr 14 11:01:57 2014 -0700"
      },
      "committer": {
        "name": "John Reck",
        "email": "jreck@google.com",
        "time": "Mon Apr 14 12:44:53 2014 -0700"
      },
      "message": "Fence on destruction\n\n Bug: 14052927\n destroyCanvasAndSurface() needs a fence as when it returns the\n underlying BufferQueue is going to be released from under\n the render thread.\n\nChange-Id: I0147a1d5ec5adf0239c761ef22f65cd8c8a137df\n"
    },
    {
      "commit": "822bbb382fa6b6c8d1b45770e27c2c2732a7afb7",
      "tree": "ffc30391c176694e2490ac6bfc2cc9892123ee2a",
      "parents": [
        "4b1a7c203d5e32c8b2dc7f4f54f28559ca31860a",
        "d3d8dafc2f61fb118c060720b52684c59303f3db"
      ],
      "author": {
        "name": "John Reck",
        "email": "jreck@google.com",
        "time": "Thu Apr 10 22:23:22 2014 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Apr 10 22:23:22 2014 +0000"
      },
      "message": "Merge \"Make attachFunctor blocking\""
    },
    {
      "commit": "d3d8dafc2f61fb118c060720b52684c59303f3db",
      "tree": "92352e4e27e420ab41389ac42c2f9b34f249aabc",
      "parents": [
        "2271a91c327cee8a6c1dffcbfd3419c95d56c37e"
      ],
      "author": {
        "name": "John Reck",
        "email": "jreck@google.com",
        "time": "Thu Apr 10 15:00:13 2014 -0700"
      },
      "committer": {
        "name": "John Reck",
        "email": "jreck@google.com",
        "time": "Thu Apr 10 15:00:13 2014 -0700"
      },
      "message": "Make attachFunctor blocking\n\n Bug: 13930200\n\nChange-Id: I9b0cf92fd16bb30baa09b6f8d7ae22a8b2a7fd80\n"
    },
    {
      "commit": "8ca3eecc2b7fe507d3482745efc4cd2567ad15a1",
      "tree": "804a5343674ab583447d7886e0197088cdd916e6",
      "parents": [
        "2271a91c327cee8a6c1dffcbfd3419c95d56c37e"
      ],
      "author": {
        "name": "John Reck",
        "email": "jreck@google.com",
        "time": "Thu Apr 10 10:28:45 2014 -0700"
      },
      "committer": {
        "name": "John Reck",
        "email": "jreck@google.com",
        "time": "Thu Apr 10 10:46:55 2014 -0700"
      },
      "message": "Remove sync flush\n\n Bug: 13952590\n It was attempting to flush state changes after the canvas was\n destroyed, which caused layer updates to crash.\n\n Due to the removal of SetDisplayListData, the sync mode isn\u0027t able\n to do anything ever, so remove it.\n\nChange-Id: I1e18ce288d81fd47cc6e612afda9476f75ecef2e\n"
    },
    {
      "commit": "8e1f918738abf70a4dc86dbb12b386a9deea37f8",
      "tree": "2f8b775662768ed77b50ec5740e5d7af608e56c8",
      "parents": [
        "3c86a27d3e9044d04d0f176e59a1ebbcd774a54c",
        "8de65a8e05285df52a1e6f0c1d5616dd233298a7"
      ],
      "author": {
        "name": "John Reck",
        "email": "jreck@google.com",
        "time": "Wed Apr 09 23:01:02 2014 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Apr 09 23:01:02 2014 +0000"
      },
      "message": "Merge \"Switch DisplayListData to a staging model\""
    },
    {
      "commit": "8de65a8e05285df52a1e6f0c1d5616dd233298a7",
      "tree": "267faf9277b441030b6276ca6a3a34424bb9aee8",
      "parents": [
        "10bdb4b9e966f0a3d8e1099bf8eff4c41c31981c"
      ],
      "author": {
        "name": "John Reck",
        "email": "jreck@google.com",
        "time": "Wed Apr 09 15:23:38 2014 -0700"
      },
      "committer": {
        "name": "John Reck",
        "email": "jreck@google.com",
        "time": "Wed Apr 09 15:48:00 2014 -0700"
      },
      "message": "Switch DisplayListData to a staging model\n\n Bug: 13912977\n\nChange-Id: I5b2f664e797be22a58300964f57ceb4fab60528c\n"
    },
    {
      "commit": "f7d9c1dc84671d4e99657ef071d275700d85bb11",
      "tree": "b1e43d969a44162bd6a1db1b702207019ec32286",
      "parents": [
        "10bdb4b9e966f0a3d8e1099bf8eff4c41c31981c"
      ],
      "author": {
        "name": "John Reck",
        "email": "jreck@google.com",
        "time": "Wed Apr 09 10:01:03 2014 -0700"
      },
      "committer": {
        "name": "John Reck",
        "email": "jreck@google.com",
        "time": "Wed Apr 09 11:01:29 2014 -0700"
      },
      "message": "Fix ThreadedRenderer.setEnabled()\n\n Bug: 13914116\n Fixes lifecycle issues around setEnabled where ThreadedRenderer\n was reporting as being enabled before it had a Surface. This is\n incorrect.\n\n Also fix some EGL lifecycle issues\n\nChange-Id: I12ebb279707f9b533a570b61d68735d858b560bf\n"
    },
    {
      "commit": "1949e7928eeec22cd3f74b5f763a4eb433238453",
      "tree": "9989642b268277a76657fcdbab75cd478d770d2f",
      "parents": [
        "1f3f55b434ce324c5fdbe74db1982fea4812a2e9"
      ],
      "author": {
        "name": "John Reck",
        "email": "jreck@google.com",
        "time": "Tue Apr 08 15:18:56 2014 -0700"
      },
      "committer": {
        "name": "John Reck",
        "email": "jreck@google.com",
        "time": "Tue Apr 08 15:18:56 2014 -0700"
      },
      "message": "Ensure there\u0027s a GL context before creating a Layer\n\n Bug: 13745587\n\nChange-Id: Ib0ec059d9a5974a48734daeec9d83580cada94a3\n"
    },
    {
      "commit": "e2c455264351964bf1ae78da2256c17258f0d3ea",
      "tree": "d6be1f13fce173fb067ea82c623be172c46875e3",
      "parents": [
        "85189c5dafb08f051c7024f42ceedcbcf5dbbc7c"
      ],
      "author": {
        "name": "John Reck",
        "email": "jreck@google.com",
        "time": "Mon Apr 07 17:31:44 2014 -0700"
      },
      "committer": {
        "name": "John Reck",
        "email": "jreck@google.com",
        "time": "Mon Apr 07 17:38:47 2014 -0700"
      },
      "message": "Veto pool TODO\n\nChange-Id: I50067dba630b75aa539e4406cfc15f66949684b3\n"
    },
    {
      "commit": "85189c5dafb08f051c7024f42ceedcbcf5dbbc7c",
      "tree": "48e2653a88f94fa50aa00b45cf273da2c7b3accd",
      "parents": [
        "af22ce470112b8ee2ea7edf17b5d7c78e92d8ff7",
        "28ad7b52e038ef0cdd89f753d9839444a434b299"
      ],
      "author": {
        "name": "John Reck",
        "email": "jreck@google.com",
        "time": "Tue Apr 08 00:32:15 2014 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Apr 08 00:32:15 2014 +0000"
      },
      "message": "Merge \"Fence on draws that are reported\""
    },
    {
      "commit": "28ad7b52e038ef0cdd89f753d9839444a434b299",
      "tree": "918c519f621185485245118eb62599113f80445d",
      "parents": [
        "ce16215d7b4d9bedfc62e172dc44ab439afef13a"
      ],
      "author": {
        "name": "John Reck",
        "email": "jreck@google.com",
        "time": "Mon Apr 07 16:59:25 2014 -0700"
      },
      "committer": {
        "name": "John Reck",
        "email": "jreck@google.com",
        "time": "Mon Apr 07 16:59:25 2014 -0700"
      },
      "message": "Fence on draws that are reported\n\nChange-Id: Ib2ec16cbda40f40df1710bdc868869ea8301f17e\n"
    },
    {
      "commit": "087bc0c14bdccf7c258dce0cdef46a69a839b427",
      "tree": "cab73aeed8e9a0bc8e74243a35c026ab0b321e08",
      "parents": [
        "ce16215d7b4d9bedfc62e172dc44ab439afef13a"
      ],
      "author": {
        "name": "John Reck",
        "email": "jreck@google.com",
        "time": "Fri Apr 04 16:20:08 2014 -0700"
      },
      "committer": {
        "name": "John Reck",
        "email": "jreck@google.com",
        "time": "Mon Apr 07 14:53:08 2014 -0700"
      },
      "message": "Refcount RenderNode\n\nChange-Id: I7a86db8acc2b78ef33d987a43a119f5933d7d752\n"
    },
    {
      "commit": "0d1f634f4b5e1bb37aa51777efb6a68619488d01",
      "tree": "d936b60a47e95c58e7c47363b6e23cdc8b4df7d9",
      "parents": [
        "c75db8266b352ef3a7a6b76654f770d7a24d547a"
      ],
      "author": {
        "name": "John Reck",
        "email": "jreck@google.com",
        "time": "Fri Mar 28 20:30:27 2014 -0700"
      },
      "committer": {
        "name": "John Reck",
        "email": "jreck@google.com",
        "time": "Fri Mar 28 20:57:32 2014 -0700"
      },
      "message": "Add invokeFunctor\n\nChange-Id: I09e675d3e02e3e528642175ada00b2b17fab7652\n"
    },
    {
      "commit": "668f0e38ef0277d55d3118af37e17b8c435df85c",
      "tree": "d0703be6cce376c8a982d7c491445d2e94009375",
      "parents": [
        "bcad68ad80e5a44e5dc6988eddb8acabdc01a737"
      ],
      "author": {
        "name": "John Reck",
        "email": "jreck@google.com",
        "time": "Wed Mar 26 15:10:40 2014 -0700"
      },
      "committer": {
        "name": "John Reck",
        "email": "jreck@google.com",
        "time": "Thu Mar 27 10:00:04 2014 -0700"
      },
      "message": "Async drawing!\n\nChange-Id: I7e728356f58af88174328a8c0b90d27b128bfe01\n"
    },
    {
      "commit": "e18264b079481a244b30e3f71012c53bbd861f92",
      "tree": "0127f3fc60aa351108ee8abd8ee180a5b193b03e",
      "parents": [
        "5b568aa04a91786962af1ab372b5a62481eea8cc"
      ],
      "author": {
        "name": "John Reck",
        "email": "jreck@google.com",
        "time": "Wed Mar 12 13:56:30 2014 -0700"
      },
      "committer": {
        "name": "John Reck",
        "email": "jreck@google.com",
        "time": "Wed Mar 12 13:56:30 2014 -0700"
      },
      "message": "Rename DisplayList-\u003eRenderNode\n\nChange-Id: Id42e23c9a1a6eb6eaeafef707ced7fa6887b03d0\n"
    },
    {
      "commit": "be34f2f3b340196426bdf558b28951359a4d84fa",
      "tree": "06bf57642e009f05dc8a117c88f086fc026c47a7",
      "parents": [
        "863d691efaa92257246598a73af2f581fc991e0a"
      ],
      "author": {
        "name": "John Reck",
        "email": "jreck@google.com",
        "time": "Mon Mar 10 08:58:44 2014 -0700"
      },
      "committer": {
        "name": "John Reck",
        "email": "jreck@google.com",
        "time": "Mon Mar 10 10:12:32 2014 -0700"
      },
      "message": "DisplayList lifecycle changes\n\n Bug: 13360343\n Change DisplayList to be more forgiving with weaker lifecycle\n requirements. Is more self-managed with a strong reference\n to the renderer it needs\n\n Also fix naming mismatch\n\nChange-Id: I5c89453a72a52954f6f959f0846199705dbb6476\n"
    },
    {
      "commit": "44fd8d24f761f82d21e9b00932648a1b6bf91449",
      "tree": "32027b9e2e9c2ddf4cdbcc059c0e3669f22c0bf3",
      "parents": [
        "36c96866f316254ec3b22b2214eef0aa017421c0"
      ],
      "author": {
        "name": "John Reck",
        "email": "jreck@google.com",
        "time": "Wed Feb 26 11:00:11 2014 -0800"
      },
      "committer": {
        "name": "John Reck",
        "email": "jreck@google.com",
        "time": "Tue Mar 04 15:18:16 2014 -0800"
      },
      "message": "DisplayList overhaul\n\nChange-Id: I53418d580c98f706e971545cff81b9921c12cc5f\n"
    },
    {
      "commit": "19b6bcfd83eb7fb92ebd06d2fec89e308311f1d0",
      "tree": "617b09881e87d86d03a7486f5c3f05242199210d",
      "parents": [
        "587f43d8725b11632b5d64a0a56a647207f01668"
      ],
      "author": {
        "name": "John Reck",
        "email": "jreck@google.com",
        "time": "Fri Feb 14 20:03:38 2014 -0800"
      },
      "committer": {
        "name": "John Reck",
        "email": "jreck@google.com",
        "time": "Wed Feb 19 10:47:19 2014 -0800"
      },
      "message": "Support HardwareLayers in RenderThread\n\n Also has a few HardwareLayer lifecycle fixes\n\nChange-Id: I6308cb05f8f199eed72189ace768013a46815941\n"
    },
    {
      "commit": "fc53ef27793a39e9effd829e9cae02a9ca14147e",
      "tree": "0269d0943677006ad8fdf981bd5eaa70bc9631f1",
      "parents": [
        "f6eebb21d5c58345eca8be25676e34346f5809b2"
      ],
      "author": {
        "name": "John Reck",
        "email": "jreck@google.com",
        "time": "Tue Feb 11 10:40:25 2014 -0800"
      },
      "committer": {
        "name": "John Reck",
        "email": "jreck@google.com",
        "time": "Tue Feb 11 10:40:25 2014 -0800"
      },
      "message": "Implement missing safelyRun() on ThreadedRenderer\n\nChange-Id: I14b75f37a13fabaa759a51369190dbdc84087c4b\n"
    },
    {
      "commit": "4f02bf4eef6af47f35c70c4dda5b7b9523d89ca0",
      "tree": "59140e036199cbd7a12886e1a2500cb69c8bbdda",
      "parents": [
        "8435cf0d8b9e24715d5b310ed569fda918dcaa46"
      ],
      "author": {
        "name": "John Reck",
        "email": "jreck@google.com",
        "time": "Fri Jan 03 18:09:17 2014 -0800"
      },
      "committer": {
        "name": "John Reck",
        "email": "jreck@google.com",
        "time": "Mon Jan 27 16:40:39 2014 -0800"
      },
      "message": "Native-side proxy\n\n Remove RemoteGLRenderer\n Remove reflection-based control\n\nChange-Id: If17c2bbb61c7141986d88c4763def77ed1074985\n"
    }
  ]
}
