)]}'
{
  "log": [
    {
      "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": "786afcb3eec18315ec54987a08814ff28f13d09f",
      "tree": "17a0b148ab9591401c091414d78d6bfd1fdfd14a",
      "parents": [
        "b7af00f2b14e9f8333e3518aa81a15502858ea11"
      ],
      "author": {
        "name": "Jorim Jaggi",
        "email": "jjaggi@google.com",
        "time": "Thu Sep 25 02:41:29 2014 +0200"
      },
      "committer": {
        "name": "Jorim Jaggi",
        "email": "jjaggi@google.com",
        "time": "Wed Oct 08 18:30:54 2014 +0000"
      },
      "message": "Trim graphics memory when closing the shade\n\nGraphics memory usually gets trimmed in applications when the\nactivity goes into the background. We use quite a lot of graphics\nmemory when the shade/lockscreen is open, and some of them never gets\nfreed unless the recents activity is closed, because we don\u0027t have\nthese activity-trimming-heuristics for the shade. This change\nproactively trims the graphics memory when the shade gets closed or\nwhen the lockscreen is hidden, to emulate the same heuristics as for\nactivities.\n\nThis change also adds trimMemory on RenderThread to systrace to\nverify that no jank is introduced with this change.\n\nThis change immediately saves around 10-30 MB on an xxhdpi device\nafter the shade is closed.\n\nBug: 17581375\nChange-Id: I4fb622efb51815fe08187be97ba15d012d4de5d4\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": "651486d0186755f30f08d17126a61bf7127cba96",
      "tree": "9652f71d7957cd74be6218b53d8efc10daa7dce3",
      "parents": [
        "ccfa1a979901f2b459da736e0ad7f34ae193bb5e",
        "284b24358410cb0200e525a5ba36994090c83f20"
      ],
      "author": {
        "name": "Chris Craik",
        "email": "ccraik@google.com",
        "time": "Fri Sep 19 15:31:17 2014 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Sep 19 15:31:18 2014 +0000"
      },
      "message": "Merge \"Fix garbage showing up beneath dialogs\" into lmp-dev"
    },
    {
      "commit": "284b24358410cb0200e525a5ba36994090c83f20",
      "tree": "6251ddc72a3e29f68a94159b89539acf90b30a5a",
      "parents": [
        "c1e1550bf489b5fafff70154232c24bc5026b7df"
      ],
      "author": {
        "name": "Chris Craik",
        "email": "ccraik@google.com",
        "time": "Thu Sep 18 16:05:35 2014 -0700"
      },
      "committer": {
        "name": "Chris Craik",
        "email": "ccraik@google.com",
        "time": "Thu Sep 18 16:05:35 2014 -0700"
      },
      "message": "Fix garbage showing up beneath dialogs\n\nbug:17463894\n\nFixes the setViewport method to immediately affect the return values\nof getViewportWidth/Height methods.\n\nAlso works around tiling extension issues observed on first frame\nafter window resize by disabling tiling for that frame.\n\nChange-Id: Ie172d572d20d74a1be9cc58ad389af2cffa0e4b6\n"
    },
    {
      "commit": "2cdbc7d2283aae3d77b12c8fdbba8ca4bd3db5ea",
      "tree": "a129c07e75038b92257f5c6d16eb5dc13c79f8d6",
      "parents": [
        "9077cbc30e6c71c8d103ae44b0c30b765e42f66b"
      ],
      "author": {
        "name": "John Reck",
        "email": "jreck@google.com",
        "time": "Wed Sep 17 16:06:36 2014 -0700"
      },
      "committer": {
        "name": "John Reck",
        "email": "jreck@google.com",
        "time": "Wed Sep 17 16:09:57 2014 -0700"
      },
      "message": "Special case EGL_BAD_SURFACE\n\n Bug: 17516789\n\nChange-Id: I3dcb10360c2aef6326f7dbbff6815866d4c143b6\n"
    },
    {
      "commit": "ec845a215e343cdb3b2e4c7b6aff7b24beb0236b",
      "tree": "270a6f8ff4a8c6c03c207ebc6fca85168efc25b8",
      "parents": [
        "c237555c6cb89c347acf13eba45b875946473501"
      ],
      "author": {
        "name": "John Reck",
        "email": "jreck@google.com",
        "time": "Fri Sep 05 15:23:38 2014 -0700"
      },
      "committer": {
        "name": "John Reck",
        "email": "jreck@google.com",
        "time": "Fri Sep 05 15:23:38 2014 -0700"
      },
      "message": "Fix race condition\n\n Bug: 17372309\n\n AnimationContext::startFrame() happens both with and without\n the UI thread lock. Pass the TraversalMode into it so\n that ThreadedRenderer\u0027s subclass can correctly decide\n when it is safe to push over mPendingAnimatingRenderNodes, as doing\n so outside of the lock is Very Bad.\n\nChange-Id: Ife5dd3a2b46b0a207cd9234c159a674afdbf5efd\n"
    },
    {
      "commit": "443a714fa7c0dd07fee3527cc5bc3d3ca1fb7d44",
      "tree": "4e1fd44948c6bc7324d6e3cb66af261f864530e5",
      "parents": [
        "2388750612b1fe54d31a47e0a40c1e6cf5a0cedd"
      ],
      "author": {
        "name": "John Reck",
        "email": "jreck@google.com",
        "time": "Thu Sep 04 17:40:05 2014 -0700"
      },
      "committer": {
        "name": "John Reck",
        "email": "jreck@google.com",
        "time": "Thu Sep 04 17:40:05 2014 -0700"
      },
      "message": "Yet more layer tracking logging\n\n Bug: 17208461\n\nChange-Id: I55e7d0921eb565867e966d68b798b7b92c391b55\n"
    },
    {
      "commit": "e2478d45ccbe5b6abb360ac9d44771b5f4a50bde",
      "tree": "f66b0980340a65a83bfd790bd63dc6b179221790",
      "parents": [
        "3215da25dd24c9570a90a6151b692e5fd38fbbc7"
      ],
      "author": {
        "name": "John Reck",
        "email": "jreck@google.com",
        "time": "Wed Sep 03 16:46:05 2014 -0700"
      },
      "committer": {
        "name": "John Reck",
        "email": "jreck@google.com",
        "time": "Wed Sep 03 17:37:59 2014 -0700"
      },
      "message": "Fix some wrong-thread issues around animator management\n\n Bug: 17372309\n\n Fixes a case where UI thread and RT thread both used the same method\n which wasn\u0027t safe for either of them.\n\n Adds additional assertions \u0026 logging in unusual circumstances to\n try and track down where the issue is occuring from.\n\nChange-Id: I93d31a6fd0c5927259b67bdf96a475944226eee6\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": "1661715d4066a557ab0877271d62762579a38fa9",
      "tree": "0816f13be7a5286b6d34ad8068edaf2f486f4420",
      "parents": [
        "56d3cb3013f06e3fd3f99a63d071dc0a72c92af9"
      ],
      "author": {
        "name": "John Reck",
        "email": "jreck@google.com",
        "time": "Tue Sep 02 15:44:14 2014 -0700"
      },
      "committer": {
        "name": "John Reck",
        "email": "jreck@google.com",
        "time": "Tue Sep 02 15:44:14 2014 -0700"
      },
      "message": "Implement TODO\n\nChange-Id: I551ad0dab6356baa4c7787718b54d5b7337a3f26\n"
    },
    {
      "commit": "dff9957cc22a1174a4cf91de6609c50934d29434",
      "tree": "ca42e37a0d953f48ea398fee0749393129a0ac45",
      "parents": [
        "e11ac78ccd907159f2b75fd3f90dd59c279ae11e"
      ],
      "author": {
        "name": "John Reck",
        "email": "jreck@google.com",
        "time": "Fri Aug 29 09:59:43 2014 -0700"
      },
      "committer": {
        "name": "John Reck",
        "email": "jreck@google.com",
        "time": "Fri Aug 29 09:59:43 2014 -0700"
      },
      "message": "Free prefetched layers on TRIM_MEMORY\n\n Bug: 17208461\n\nChange-Id: I831c10d29d5920274b90e11a67d6cd106972a058\n"
    },
    {
      "commit": "998a6d81896df8b662cc10ddeb35087b78b38d72",
      "tree": "33af22fd2b087c8935fc2f6b4b03a71495ed83ef",
      "parents": [
        "e9a204f04465c26a32a15c237b985def8c2b4a90"
      ],
      "author": {
        "name": "John Reck",
        "email": "jreck@google.com",
        "time": "Thu Aug 28 15:35:53 2014 -0700"
      },
      "committer": {
        "name": "John Reck",
        "email": "jreck@google.com",
        "time": "Thu Aug 28 15:55:26 2014 -0700"
      },
      "message": "Track buildLayer calls, destroy if unused\n\n Bug: 17208461\n\nChange-Id: Ibdb104a493285d77a6891c5e74e38a52c7014da9\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": "9eb9f6f8cbbbd87d45da8071aa54cb066a797723",
      "tree": "aa193a48886ab29dd158028a48475cc63e43383d",
      "parents": [
        "94f6878bbd98753aa60fd80f5a73b5f198579b04"
      ],
      "author": {
        "name": "John Reck",
        "email": "jreck@google.com",
        "time": "Thu Aug 21 11:23:05 2014 -0700"
      },
      "committer": {
        "name": "John Reck",
        "email": "jreck@google.com",
        "time": "Thu Aug 21 11:23:05 2014 -0700"
      },
      "message": "Don\u0027t run animators in buildLayer\n\n Bug: 17172689\n\nChange-Id: Ib47d589c002543327fa336718440f9f8c95524e0\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": "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": "5cdb8f998c58a2226112b36e4c391866346e5e17",
      "tree": "a040107db60baec9e608bf05495fb825407e8cd4",
      "parents": [
        "69eef8a0d250ae1b50b510499014e109bd2c6112"
      ],
      "author": {
        "name": "John Reck",
        "email": "jreck@google.com",
        "time": "Thu Jul 17 11:00:36 2014 -0700"
      },
      "committer": {
        "name": "Chris Craik",
        "email": "ccraik@google.com",
        "time": "Thu Jul 17 18:12:01 2014 +0000"
      },
      "message": "Fix logging\n\n Bug: 16357287\n\nChange-Id: Ic14e32c941e42ab1f1ed51ff8ed7185979e57a55\n"
    },
    {
      "commit": "0a97330b98dd633b58dcfff405d94476c89e867d",
      "tree": "857c44bf9e505e947cc441b234d7606d5df53aa0",
      "parents": [
        "945654188ef8b5ee1c404bd950a9ef45defa43d1"
      ],
      "author": {
        "name": "John Reck",
        "email": "jreck@google.com",
        "time": "Wed Jul 16 13:29:45 2014 -0700"
      },
      "committer": {
        "name": "John Reck",
        "email": "jreck@google.com",
        "time": "Wed Jul 16 13:55:14 2014 -0700"
      },
      "message": "Fix root RenderNode damage calculation\n\n Bug: 15888445\n\nChange-Id: I281ec9271c9889673dcdfcb6d31e341a7b47b7de\n"
    },
    {
      "commit": "dcba6725e8b9d3eba9ad7a01258d6aa974feafba",
      "tree": "994a519302533fc1073eeafda8bf74933531dd56",
      "parents": [
        "114c68cec40a995fb6f3ef0ab110ee8b59ab0cba"
      ],
      "author": {
        "name": "John Reck",
        "email": "jreck@google.com",
        "time": "Tue Jul 08 13:59:49 2014 -0700"
      },
      "committer": {
        "name": "John Reck",
        "email": "jreck@google.com",
        "time": "Tue Jul 08 14:14:55 2014 -0700"
      },
      "message": "Fix layers lifecycle issues\n\n Bug: 16118540\n\n Fix an issue where we could have a reference to a Layer after\n the GL context was destroyed\n\nChange-Id: I7bfd909d735ca6b942ebe188fc10099422eb6d95\n"
    },
    {
      "commit": "3c2b7fa8c584c5ed56f1bd6ad53f2e87f0a6eb44",
      "tree": "35cb70afd4fbf892716f65c4a8b1bff49eb33714",
      "parents": [
        "32fb6307de7c3ee9399a39dc6734f1c82ffd1dcb"
      ],
      "author": {
        "name": "John Reck",
        "email": "jreck@google.com",
        "time": "Mon Jul 07 09:16:54 2014 -0700"
      },
      "committer": {
        "name": "John Reck",
        "email": "jreck@google.com",
        "time": "Mon Jul 07 18:05:00 2014 +0000"
      },
      "message": "Add missing requireGlContext\n\nChange-Id: I7100e5e9986f502f66a23ecea07a6057522c43ac\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": "68bfe0a37a0dcef52abd81688d8520c5d16e1a85",
      "tree": "b67e0671dba8221a16fcf880daeaf1e271499e9f",
      "parents": [
        "6507f2e03a90244e08fb62f9b55653ba3230d0b7"
      ],
      "author": {
        "name": "John Reck",
        "email": "jreck@google.com",
        "time": "Tue Jun 24 15:34:58 2014 -0700"
      },
      "committer": {
        "name": "John Reck",
        "email": "jreck@google.com",
        "time": "Thu Jun 26 10:45:43 2014 -0700"
      },
      "message": "Animator refactoring \u0026 fixes\n\n Tweaks animators to have less unnecessary refcounting\n\n Pull animator management out into seperate class\n\n More control to tweak animator lifecycle, such as doing\n Java-side handling of start delay by attaching but not\n starting the animator\n\nChange-Id: I4ff8207580ca11fb38f45ef0007b406e0097281c\n"
    },
    {
      "commit": "cd028f336e36b22dbe8cf623eb5bd2361314495c",
      "tree": "c878aab479fa4b75af024d9169aae04391569700",
      "parents": [
        "5444f3cd92ac42f72f86ba5bcd554e0d88bc265b"
      ],
      "author": {
        "name": "John Reck",
        "email": "jreck@google.com",
        "time": "Tue Jun 24 08:44:29 2014 -0700"
      },
      "committer": {
        "name": "John Reck",
        "email": "jreck@google.com",
        "time": "Tue Jun 24 08:44:29 2014 -0700"
      },
      "message": "Fix contants; RT-enable WebView pt2\n\n Bug: 15838537\n\n * Fix kSync_UIRedrawRequired constant value (woops)\n * Tell CanvasContext that WebView is now rt-safe\n\nChange-Id: Idf15cf21115c2ca24b8ccd00025e8502864cd87c\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": "a7090e0cfd7c719a6d4c03aae34f5db98754cbdd",
      "tree": "7bfae2588126476042f33b9dd01ca0b9cf368e2e",
      "parents": [
        "104ef50048a1d12f323b3e70ccc28dd509d3ea24"
      ],
      "author": {
        "name": "Chris Craik",
        "email": "ccraik@google.com",
        "time": "Fri Jun 20 16:01:00 2014 -0700"
      },
      "committer": {
        "name": "Chris Craik",
        "email": "ccraik@google.com",
        "time": "Mon Jun 23 09:57:07 2014 -0700"
      },
      "message": "Update \u0027DisplayList\u0027 vs \u0027RenderNode\u0027 naming in several places\n\nChange-Id: I635c6627d098b661fb9b0ba1bd42fa6d7277d287\n"
    },
    {
      "commit": "734df4b4271e90e320f3ff37b4b0d49e92cb1e3c",
      "tree": "bddbbf4abeb2f86d560a7747c993966935fe237d",
      "parents": [
        "6b2df21ecacfa6826a85cabdf8d6fe0e81fe11d9"
      ],
      "author": {
        "name": "Chris Craik",
        "email": "ccraik@google.com",
        "time": "Mon Jun 16 12:05:54 2014 -0700"
      },
      "committer": {
        "name": "Chris Craik",
        "email": "ccraik@google.com",
        "time": "Tue Jun 17 10:15:46 2014 -0700"
      },
      "message": "Interrupt canvas before invoke\n\nChange-Id: I5b818958f6255c594339bd10d9efa99e9e2c00d4\n"
    },
    {
      "commit": "25fbb3fa1138675379102a44405852555cefccbd",
      "tree": "510d62715f870f85fc4eea8a781c0265e7eebae5",
      "parents": [
        "a447d29c65fb811cd184775a3476101a1cede929"
      ],
      "author": {
        "name": "John Reck",
        "email": "jreck@google.com",
        "time": "Thu Jun 12 13:46:45 2014 -0700"
      },
      "committer": {
        "name": "John Reck",
        "email": "jreck@google.com",
        "time": "Thu Jun 12 19:25:33 2014 -0700"
      },
      "message": "Move LayerType to RenderNode\n\nChange-Id: Icb79a5015cb0362b1f3a66d09007450730135a97\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": "aee470c0232afdac4256d13020fa0cf04f30395c",
      "tree": "5fc37aedf16ce9aa5b6283d0c9b5665954f191f3",
      "parents": [
        "e2960b6fd2d31f8a729ce9d180bffc947c0d6464",
        "fe5e7b7346a54537b980796ceeca66bfdbd05561"
      ],
      "author": {
        "name": "John Reck",
        "email": "jreck@google.com",
        "time": "Thu May 29 22:23:40 2014 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu May 29 22:23:41 2014 +0000"
      },
      "message": "Merge \"Enable debug stuffs\" into lmp-preview-dev"
    },
    {
      "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": "c8affe0e1b1f3f63b12477f832a1a66019ac0df8",
      "tree": "a47dd7306b9979581a6a9d84b48d7b2e2813a632",
      "parents": [
        "45d01929291eba56e1bce582192941446b86bf5a"
      ],
      "author": {
        "name": "John Reck",
        "email": "jreck@google.com",
        "time": "Thu May 29 14:50:37 2014 -0700"
      },
      "committer": {
        "name": "John Reck",
        "email": "jreck@google.com",
        "time": "Thu May 29 14:50:37 2014 -0700"
      },
      "message": "Re-enable atlas\n\n Bug: 14590563\n\nChange-Id: I04ed5bf1b2654dab4a65c1e43faaeba32459870f\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": "cdfeef6624613ca06fe8a7edfb92608afb0499ee",
      "tree": "fa9b8d5665e2d98e5dfd3f1d15203e00bb24ca6a",
      "parents": [
        "54b6fd0cbe48fc0980da0617352785c973c60c86"
      ],
      "author": {
        "name": "John Reck",
        "email": "jreck@google.com",
        "time": "Wed May 14 16:35:46 2014 -0700"
      },
      "committer": {
        "name": "John Reck",
        "email": "jreck@google.com",
        "time": "Wed May 14 23:59:01 2014 +0000"
      },
      "message": "Disable texture atlas\n\n Bug: 14952384\n\nChange-Id: If38b3e4c08c2c3dd9c00ae9e6e8c10e208e737d1\n"
    },
    {
      "commit": "66f0be65a1046f54ddce0498b242c1fa0776b1ea",
      "tree": "87a356caef9f007ac0919504dc8dcb45831a76ee",
      "parents": [
        "515396a6b5ee3eab57fed87ee0f4aa63783e2e61"
      ],
      "author": {
        "name": "John Reck",
        "email": "jreck@google.com",
        "time": "Tue May 13 13:39:31 2014 -0700"
      },
      "committer": {
        "name": "John Reck",
        "email": "jreck@google.com",
        "time": "Tue May 13 14:54:42 2014 -0700"
      },
      "message": "Wire up texture atlas\n\n Bug: 14590563\n\nChange-Id: I2dffbc089dc801f5fb2d1c8fd38e1c71d160e110\n"
    },
    {
      "commit": "ef27453cf71e331e4076df5e5c665b06d5c3e050",
      "tree": "aebb0a1e9f798f064ed92bedb7865cd10dfbe118",
      "parents": [
        "4f0128fb8fc1e56ead8ba7bccd9fab2ff9c3b29a",
        "832b151465ed81c43e59891d5eebe62128b21fbb"
      ],
      "author": {
        "name": "John Reck",
        "email": "jreck@google.com",
        "time": "Wed May 07 21:48:19 2014 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed May 07 21:48:20 2014 +0000"
      },
      "message": "Merge \"Cleanup attachFunctor\""
    },
    {
      "commit": "832b151465ed81c43e59891d5eebe62128b21fbb",
      "tree": "b631a4eab7c5b7b7f3d98e808e88bf0965c324cf",
      "parents": [
        "ebb9e69513b690881a5bad7bf45c6f32e0fc7062"
      ],
      "author": {
        "name": "John Reck",
        "email": "jreck@google.com",
        "time": "Wed May 07 14:39:44 2014 -0700"
      },
      "committer": {
        "name": "John Reck",
        "email": "jreck@google.com",
        "time": "Wed May 07 14:39:44 2014 -0700"
      },
      "message": "Cleanup attachFunctor\n\n Bug: 13961296\n\nChange-Id: Id48d11bfcc234afd1fd7e4fdd409a50e7208c81d\n"
    },
    {
      "commit": "b6d9211d31d29221501a8f2a33e6ba0fe18d6ef5",
      "tree": "1d432b5eded84cc9bfdb185979ef6ebb7b68bedd",
      "parents": [
        "841057ffc0283f7e5d5fd750ee1519ee313ed869",
        "63a06673253914510bbeebd500655008682dade1"
      ],
      "author": {
        "name": "John Reck",
        "email": "jreck@google.com",
        "time": "Wed May 07 21:24:25 2014 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed May 07 21:24:25 2014 +0000"
      },
      "message": "Merge \"Implement TODO(romainguy)\""
    },
    {
      "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": "368cdd85268999997fb495cf90c4417221797de0",
      "tree": "fd3194d75bfe69836ac286dd88cb7edde90fd140",
      "parents": [
        "ebb9e69513b690881a5bad7bf45c6f32e0fc7062"
      ],
      "author": {
        "name": "John Reck",
        "email": "jreck@google.com",
        "time": "Wed May 07 13:11:00 2014 -0700"
      },
      "committer": {
        "name": "John Reck",
        "email": "jreck@google.com",
        "time": "Wed May 07 13:19:28 2014 -0700"
      },
      "message": "Don\u0027t try to draw if there\u0027s no canvas or surface\n\n Bug: 14616376\n\n doFrame() can happen after the canvas or surface is destroyed,\n handle it gracefully\n\nChange-Id: Ibbbbdbfa77fa2134bd2abc215ca1a0886d706969\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": "dbc9a86d05e5e835051de22f6cb30ec1921e9705",
      "tree": "bd17a4c06136f9e09e74afdefbe060325052f685",
      "parents": [
        "c731435649ef42a454a7e2e22fa2e303a242f8f9"
      ],
      "author": {
        "name": "John Reck",
        "email": "jreck@google.com",
        "time": "Thu Apr 17 20:25:13 2014 -0700"
      },
      "committer": {
        "name": "John Reck",
        "email": "jreck@google.com",
        "time": "Thu Apr 17 20:27:37 2014 -0700"
      },
      "message": "Force a full redraw on surface change\n\n Bug: 13913604\n\nChange-Id: Ie90c7ee74cf83358e19d8b4f0bae078540a93a8d\n"
    },
    {
      "commit": "6f07a0dc875a9eac67312085a8e0133b9e2f4771",
      "tree": "92d717413e77155f65d67bf072e18937fbc47e51",
      "parents": [
        "6313b9259d37b59f3402058e197637aa3014516c"
      ],
      "author": {
        "name": "John Reck",
        "email": "jreck@google.com",
        "time": "Wed Apr 16 21:31:25 2014 -0700"
      },
      "committer": {
        "name": "John Reck",
        "email": "jreck@google.com",
        "time": "Wed Apr 16 21:32:25 2014 -0700"
      },
      "message": "Add missing resume() call\n\n Bug: 14087850\n\nChange-Id: Ic555ca6027e617c7ed6e7e66b5cf713c36ed1c6c\n"
    },
    {
      "commit": "e8a866d4a41daa43e394505e12503b32c2d929e4",
      "tree": "3b2bb5a8a810d91fbba4ea60f5db03c5a1116f6a",
      "parents": [
        "6284622cdf949ea213c2e2a0207a90873c2d1d35",
        "860d155f866cc15a725e7ce03763280987f24901"
      ],
      "author": {
        "name": "John Reck",
        "email": "jreck@google.com",
        "time": "Mon Apr 14 20:57:38 2014 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Apr 14 20:57:38 2014 +0000"
      },
      "message": "Merge \"Fix issue with bitmap uploading\""
    },
    {
      "commit": "860d155f866cc15a725e7ce03763280987f24901",
      "tree": "1ade6b4f5c2c0910c088469b95255eb66ce0cb53",
      "parents": [
        "db8b130a19484cb6018667905e64d42ab793654f"
      ],
      "author": {
        "name": "John Reck",
        "email": "jreck@google.com",
        "time": "Fri Apr 11 19:15:05 2014 -0700"
      },
      "committer": {
        "name": "John Reck",
        "email": "jreck@google.com",
        "time": "Mon Apr 14 13:17:25 2014 -0700"
      },
      "message": "Fix issue with bitmap uploading\n\n Bug: 13912749\n\nChange-Id: Ic23fa1d280118dc93dc2716a4a24cc0bbbdca595\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": "f4198b713e43c0c0f9adac74203cf24c2a49b802",
      "tree": "ed1e56915cfd87dbc949d72a49ccaf3ee122881b",
      "parents": [
        "8e1f918738abf70a4dc86dbb12b386a9deea37f8"
      ],
      "author": {
        "name": "John Reck",
        "email": "jreck@google.com",
        "time": "Wed Apr 09 17:00:04 2014 -0700"
      },
      "committer": {
        "name": "John Reck",
        "email": "jreck@google.com",
        "time": "Wed Apr 09 17:00:04 2014 -0700"
      },
      "message": "Merge hasFunctors \u0026 pushStaging into prepareTree\n\n Bug: 13902607\n Fixes synchronous mode for WebView in HardwareLayers\n\nChange-Id: I90de1e26dcfd9b75cc2f03bac72705fc23237b68\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": "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": "750ca6dbdb259aea0ca5b77380a9303e586ef3ea",
      "tree": "c24155dbc56810e618ee8a837470145d77aee38d",
      "parents": [
        "0e14f2d45557527242f27ce7de9027e6ccaa45d6"
      ],
      "author": {
        "name": "John Reck",
        "email": "jreck@google.com",
        "time": "Fri Mar 28 16:33:18 2014 -0700"
      },
      "committer": {
        "name": "John Reck",
        "email": "jreck@google.com",
        "time": "Fri Mar 28 16:43:15 2014 -0700"
      },
      "message": "Remove kStatusInvoke \u0026 kStatusDraw\n\n They are unused\n\nChange-Id: I44ecf1164dc6bc1b09438e733976d5a97a25f00e\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": "bfb07a03777af424e99bca1dac4c903aaf44e99d",
      "tree": "a34ac04cc56a06ea54bc7010bb1169f71d9f355b",
      "parents": [
        "41c2d2cec3f46b28f535e9cd7f5b9da02280ccfe"
      ],
      "author": {
        "name": "John Reck",
        "email": "jreck@google.com",
        "time": "Mon Mar 24 21:00:18 2014 -0700"
      },
      "committer": {
        "name": "John Reck",
        "email": "jreck@google.com",
        "time": "Mon Mar 24 21:00:18 2014 -0700"
      },
      "message": "Move where updateProperties is called\n\nChange-Id: I27da448996019094c44487ce28c5689d098d6535\n"
    },
    {
      "commit": "16efa9a330fcf10a09cc9564e9d319c6f4be2ae1",
      "tree": "20254f338bc28b3468faeea9afa1e81dd0a81ecd",
      "parents": [
        "db62c232b953fd882a8f55daf736ae4098e8f278"
      ],
      "author": {
        "name": "John Reck",
        "email": "jreck@google.com",
        "time": "Tue Mar 18 09:24:28 2014 -0700"
      },
      "committer": {
        "name": "John Reck",
        "email": "jreck@google.com",
        "time": "Tue Mar 18 09:24:28 2014 -0700"
      },
      "message": "Fix functor removal\n\n Bug: 12179257\n\nChange-Id: Ib63a351b1b289b08452f17086cb6c8b688e2ba4d\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"
    },
    {
      "commit": "23b797ab5151eb2474f3bdd679f2f07bfd723042",
      "tree": "fb3c540879543006946abeffc3edb362fe2fbf28",
      "parents": [
        "dcd8258e2447afacb6d6f793c2cfb7ad94d2acec"
      ],
      "author": {
        "name": "John Reck",
        "email": "jreck@google.com",
        "time": "Fri Jan 03 18:08:34 2014 -0800"
      },
      "committer": {
        "name": "John Reck",
        "email": "jreck@google.com",
        "time": "Tue Jan 07 14:53:55 2014 -0800"
      },
      "message": "EGL migration to native\n\n Move EGL state management to native side for RemoteGLRenderer\n\nChange-Id: I12b0fed70246564d4caebf87374e8bbca655c572\n"
    }
  ]
}
