)]}'
{
  "log": [
    {
      "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": "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": "13d1b4ab10fbee5e81a2ba1ac59cfae1e51d3ef0",
      "tree": "6844646af7e67205908076b0fa641dcf24cc6e9d",
      "parents": [
        "4692f42b7869110631b0521188afe56a4641ebf2"
      ],
      "author": {
        "name": "Season Li",
        "email": "seasonl@nvidia.com",
        "time": "Wed Jul 29 17:16:19 2015 -0700"
      },
      "committer": {
        "name": "John Reck",
        "email": "jreck@google.com",
        "time": "Tue Aug 04 13:01:54 2015 -0700"
      },
      "message": "renderthread: add EGL_EXT_buffer_age support\n\nEGL_EXT_buffer_age is better than EGL_BUFFER_PRESERVED\nbecause it can save memory bandwidth used to blit\nback buffer into front buffer.\n\nChange-Id: I2fea0ee08dc7dd66e348b04dd694d075d509d01b\n"
    },
    {
      "commit": "6d4d0db312fa8a9fce629dd92aa133c6f8249cf8",
      "tree": "dd6fe51ff86aaf5e281d57cd36011c1f3873e35c",
      "parents": [
        "0faca96f939b8530e5387a30e317d852f39f689f"
      ],
      "author": {
        "name": "John Reck",
        "email": "jreck@google.com",
        "time": "Mon Aug 03 15:34:52 2015 -0700"
      },
      "committer": {
        "name": "John Reck",
        "email": "jreck@google.com",
        "time": "Mon Aug 03 22:47:49 2015 +0000"
      },
      "message": "Disable skipping frames on empty damage\n\nBug: 22592975\n\nOptimization added in MNC is not quite correct, occasionally\nit will fail to repaint when it was supposed to leading\nto buffer corruption. Disable the optimization for now.\n\nChange-Id: I34dfdfb357eda298198043ded7335d4588a003fd\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": "f2dcc2aecb94e726096256c47b913ed0a57ae7e2",
      "tree": "927778287d0b2d9610ad1efe74fe37e83d6d4032",
      "parents": [
        "30c8245afc8d9558b76e5c86f917c22e02f6e820"
      ],
      "author": {
        "name": "John Reck",
        "email": "jreck@google.com",
        "time": "Thu Jul 16 09:17:59 2015 -0700"
      },
      "committer": {
        "name": "John Reck",
        "email": "jreck@google.com",
        "time": "Thu Jul 16 09:17:59 2015 -0700"
      },
      "message": "Don\u0027t crash on makeCurrent fail\n\nBug: 22444755\n\nWindowManager may decide to yank the surface at any point, so\nattempt to kinda handle this\n\nChange-Id: Id2f665d2f0f93bccd4ec977fbf52dca4dc1ec891\n"
    },
    {
      "commit": "be3fba05e823f740f65b2679929347dc3dd282ad",
      "tree": "8dfd52f0e6297d009dd7e671ac8187a7dfac6996",
      "parents": [
        "a559590043e32f670813e062f042f9e642297edf"
      ],
      "author": {
        "name": "John Reck",
        "email": "jreck@google.com",
        "time": "Mon Jul 06 13:49:58 2015 -0700"
      },
      "committer": {
        "name": "John Reck",
        "email": "jreck@google.com",
        "time": "Mon Jul 06 16:12:46 2015 -0700"
      },
      "message": "Adjust for pipeline stalls\n\nBug: 20853441\n\nCalculating duration that crosses the UI-RT\nsync point will now subtract out the time spent waiting\nin queue under the assumption that this time will be\naccounted for in the previous frame\u0027s metrics\n\nChange-Id: Ia8213f4410638840613f5ae439e98dfb77532a6a\n"
    },
    {
      "commit": "1b54fb27ac48495ed0b33868fda5776fb49fe0f3",
      "tree": "5e4c41e89b3065437c0e778a73a041cdffed1932",
      "parents": [
        "4575acf1e72827dd6fd6cb645abfb3ba9043fa47"
      ],
      "author": {
        "name": "Chris Craik",
        "email": "ccraik@google.com",
        "time": "Tue Jun 02 17:40:58 2015 -0700"
      },
      "committer": {
        "name": "Chris Craik",
        "email": "ccraik@google.com",
        "time": "Wed Jun 03 13:42:21 2015 -0700"
      },
      "message": "Delete MAKE_ENUM_FLAGS\n\nbug:21595702\n\nSettle on namespace-enum for consistency. Also removes k prefix.\n\nChange-Id: Ib89f94cb9263de40b6e4636577dca4860867d0d8\n"
    },
    {
      "commit": "2a8bb05a31ddd0d44d8513cba9fbd9b4ef9b97f6",
      "tree": "08f15a4f926c173615a8220201d5bbdf1d1d0c6c",
      "parents": [
        "e7f68c18bf1a1da5d0aa129674fe4f9ecf06ac8c"
      ],
      "author": {
        "name": "John Reck",
        "email": "jreck@google.com",
        "time": "Wed Jun 03 09:52:01 2015 -0700"
      },
      "committer": {
        "name": "John Reck",
        "email": "jreck@google.com",
        "time": "Wed Jun 03 09:53:42 2015 -0700"
      },
      "message": "Fix warning\n\nBug: 21608208\nChange-Id: I1d1cf1fbc8c0a4561bf76e307c56be580fb4baef\n"
    },
    {
      "commit": "6058251939e417ed764d76fbde77eefc964d0ee6",
      "tree": "ec5b7b222d704227a23e05ad45fa5d8107a32923",
      "parents": [
        "4e14da5695b5457ae7da53c7f3079c71e37b2e19",
        "bf3c602284f9a344faf185c3a5e94a264ba44c4f"
      ],
      "author": {
        "name": "John Reck",
        "email": "jreck@google.com",
        "time": "Tue Jun 02 23:16:22 2015 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Jun 02 23:16:31 2015 +0000"
      },
      "message": "Merge \"More colors, now with material colors\" into mnc-dev"
    },
    {
      "commit": "bf3c602284f9a344faf185c3a5e94a264ba44c4f",
      "tree": "fdf404c8f4f4859290157229cc1689ed5b0b1df7",
      "parents": [
        "233241f13d5d7f841d3db80408429d4d0a528c78"
      ],
      "author": {
        "name": "John Reck",
        "email": "jreck@google.com",
        "time": "Tue Jun 02 15:55:00 2015 -0700"
      },
      "committer": {
        "name": "John Reck",
        "email": "jreck@google.com",
        "time": "Tue Jun 02 16:13:56 2015 -0700"
      },
      "message": "More colors, now with material colors\n\nBug: 18052916\nChange-Id: I66c2573d796338ee7b7d0ddf240b90cc78a71ce5\n"
    },
    {
      "commit": "4db3d17debef68f72d23999d69ae68b75f59dda3",
      "tree": "e6458545b7dfedcb156ac33adba4b6162a3d09a9",
      "parents": [
        "233241f13d5d7f841d3db80408429d4d0a528c78"
      ],
      "author": {
        "name": "John Reck",
        "email": "jreck@google.com",
        "time": "Tue Jun 02 15:58:43 2015 -0700"
      },
      "committer": {
        "name": "John Reck",
        "email": "jreck@google.com",
        "time": "Tue Jun 02 15:58:43 2015 -0700"
      },
      "message": "FrameInfo header fixes\n\nBug: 21560187\n\nLog column names as part of output in case of other such\nissues\n\nChange-Id: I16157ed968307e761d416ca54bd7af5453fe67bf\n"
    },
    {
      "commit": "d7db4d767246b41d44995acb93d03d220b53c748",
      "tree": "653c8f5bb3026359be78c2d5083bd2c18f6d30ec",
      "parents": [
        "97bf518f7b818d297a500204627d1ad06127bff1"
      ],
      "author": {
        "name": "John Reck",
        "email": "jreck@google.com",
        "time": "Wed May 20 07:18:55 2015 -0700"
      },
      "committer": {
        "name": "John Reck",
        "email": "jreck@google.com",
        "time": "Wed May 20 11:24:57 2015 -0700"
      },
      "message": "Eliminate requireGlContext\n\nBug: 20297820\n\nChange-Id: I37c63bab6f6c0d2337c8c6002046d2ef17e74097\n"
    },
    {
      "commit": "50210d912925aef14e4ce69be82e4949122a3cd9",
      "tree": "ba87c37a8b2db6521df6f8c62307319bcf70a823",
      "parents": [
        "9cb90cbbf8fc91793dad1d1cb317079dbc7e8421"
      ],
      "author": {
        "name": "Alan Viverette",
        "email": "alanv@google.com",
        "time": "Thu May 14 18:05:36 2015 -0700"
      },
      "committer": {
        "name": "Alan Viverette",
        "email": "alanv@google.com",
        "time": "Thu May 14 18:05:36 2015 -0700"
      },
      "message": "Adjust light source for window position\n\nBug: 16523629\nChange-Id: I2f3fed1edcac0a3cfd5034aded45e08ececfebaf\n"
    },
    {
      "commit": "4c9e59d03c2bca38001225b79d01740b8999adfb",
      "tree": "140ff328b9966bdd974a7868c631eebdc1fea76f",
      "parents": [
        "4bd4121d584e16c700ba08828c675b7f906ff331"
      ],
      "author": {
        "name": "John Reck",
        "email": "jreck@google.com",
        "time": "Tue May 12 07:17:50 2015 -0700"
      },
      "committer": {
        "name": "John Reck",
        "email": "jreck@google.com",
        "time": "Tue May 12 11:02:07 2015 -0700"
      },
      "message": "Unify DrawProfiler/JankStats\n\nBug: 20822400\n\nChange-Id: I24345c3120440bfce14e8cbe7e880b39f10b744a\n"
    },
    {
      "commit": "9aa7b45e796fea9e308fb2fc1fe5363390f1e7ba",
      "tree": "088ba6cec51a28c992eb8b22fbc1a3bae979f137",
      "parents": [
        "e48f44f55b5cdb9c4c3fa6ae6eae56768c6b12af",
        "aef9dc8d186bd5f78068ab2d5240b5e9c8ab44b6"
      ],
      "author": {
        "name": "John Reck",
        "email": "jreck@google.com",
        "time": "Fri May 08 21:19:37 2015 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri May 08 21:19:54 2015 +0000"
      },
      "message": "Merge \"Fix kSkippedFrame setting\" into mnc-dev"
    },
    {
      "commit": "aef9dc8d186bd5f78068ab2d5240b5e9c8ab44b6",
      "tree": "88f7178c62f401c570bb4c70fd4debc20055602e",
      "parents": [
        "a0698b617f1efc71d5301f98aead822e266ec5d6"
      ],
      "author": {
        "name": "John Reck",
        "email": "jreck@google.com",
        "time": "Fri May 08 14:10:57 2015 -0700"
      },
      "committer": {
        "name": "John Reck",
        "email": "jreck@google.com",
        "time": "Fri May 08 14:12:32 2015 -0700"
      },
      "message": "Fix kSkippedFrame setting\n\nIt was only set previously if RenderThread dropped the frame,\nbut not if the UI thread frame was dropped. Unify the\ntwo paths\n\nChange-Id: If2574edde3cb0949deed4e47f3daaddb890a1b28\n"
    },
    {
      "commit": "d04794a9a3f9edc8b7ca336175d66eb81a8f55fa",
      "tree": "b1fb28d9c72377bc981e5242ad58210cf2bd33bf",
      "parents": [
        "a0698b617f1efc71d5301f98aead822e266ec5d6"
      ],
      "author": {
        "name": "John Reck",
        "email": "jreck@google.com",
        "time": "Fri May 08 10:04:36 2015 -0700"
      },
      "committer": {
        "name": "John Reck",
        "email": "jreck@google.com",
        "time": "Fri May 08 10:48:57 2015 -0700"
      },
      "message": "Add eglSwapBuffersWithDamageKHR support\n\nBUG: 20761426\nDisabled temporarily\n\nChange-Id: I0b6b6f0eebab886145e13fa35aefe76826965cf5\n"
    },
    {
      "commit": "240ff6246a29602539fd0295274e1c769e743a2e",
      "tree": "d40e9aaf5e0871ba6270b31ccfbae9468a09a1ab",
      "parents": [
        "ba474807b3e46c1e6127d461214deafc22f53766"
      ],
      "author": {
        "name": "John Reck",
        "email": "jreck@google.com",
        "time": "Tue Apr 28 13:50:00 2015 -0700"
      },
      "committer": {
        "name": "John Reck",
        "email": "jreck@google.com",
        "time": "Tue Apr 28 13:50:00 2015 -0700"
      },
      "message": "Skip frames with no damage\n\nBug: 20464038\nChange-Id: Iae3aa9baf1d03c3aa443a39373e2bbd4a3910fad\n"
    },
    {
      "commit": "edc524c90506d80e0fc5fb67e8de7b8f3ef53439",
      "tree": "098c18daa80655fe0fa3faab7c39332685c163ef",
      "parents": [
        "1cef4196886b0cc1238111d396c1e3665a5fd2ae"
      ],
      "author": {
        "name": "John Reck",
        "email": "jreck@google.com",
        "time": "Wed Mar 18 15:24:33 2015 -0700"
      },
      "committer": {
        "name": "John Reck",
        "email": "jreck@google.com",
        "time": "Fri Mar 27 11:50:56 2015 -0700"
      },
      "message": "Add GraphicsStatsService\n\nMore S\u0027s for More Speed\n\nSplit JankTracker\u0027s backing data from the\nclass to allow for data relocation to/from ashmem regions\n\nPack the jank tracking data to fit in 256 bytes\n\nChange-Id: Ife86a64b71a328fbd0c8075fe6a0404e081f725b\n"
    },
    {
      "commit": "b36016c65f1d1b5846dba0349aab491dbd3a746a",
      "tree": "6ce0e78368d6797988cc9b9745b20de5919bb19f",
      "parents": [
        "4771577a342214ef4f7373a8d37d015749b00347"
      ],
      "author": {
        "name": "John Reck",
        "email": "jreck@google.com",
        "time": "Wed Mar 11 08:50:53 2015 -0700"
      },
      "committer": {
        "name": "John Reck",
        "email": "jreck@google.com",
        "time": "Wed Mar 11 11:29:13 2015 -0700"
      },
      "message": "Cleanups \u0026 simplifications\n\nChange-Id: I5ad5e3b8fe55b1528f2e20c63e5abe51d9e40ff1\n"
    },
    {
      "commit": "c87be99c6ead0720a8918ea38ce3b25e5c49e1c6",
      "tree": "017c6aa6e000f52b0b579444e32336999912b656",
      "parents": [
        "df570c6e66d98536597737f863430510b6336ffe"
      ],
      "author": {
        "name": "John Reck",
        "email": "jreck@google.com",
        "time": "Fri Feb 20 10:57:22 2015 -0800"
      },
      "committer": {
        "name": "John Reck",
        "email": "jreck@google.com",
        "time": "Fri Feb 20 10:58:48 2015 -0800"
      },
      "message": "C++11 style fixups\n\nChange-Id: I356d02338820bfef41a9e278c88dafc17cfe1cf9\n"
    },
    {
      "commit": "ba6adf66d3c44c0aa2fd8a224862ff1901d64300",
      "tree": "8172a893f00caa283cf0386dd3d585ca8fac867c",
      "parents": [
        "004a46eb171bc86a3d40eb8fc6a4d9eed48027c7"
      ],
      "author": {
        "name": "John Reck",
        "email": "jreck@google.com",
        "time": "Thu Feb 19 14:36:50 2015 -0800"
      },
      "committer": {
        "name": "John Reck",
        "email": "jreck@google.com",
        "time": "Fri Feb 20 08:27:38 2015 -0800"
      },
      "message": "Initial attempt at jank-tracking stat collection\n\nIs a bit naive, perhaps overly aggressive, but sorta works\n\nChange-Id: I01a774e00dbe681439c02557d9728ae43c45ce50\n"
    },
    {
      "commit": "96a5c4c7bab6718524de7253da8309143ab48bef",
      "tree": "c984108195579a6da2aa8ccadded7ec46104d4a4",
      "parents": [
        "06a8a121b0dc02bea7977c4112eb4319fd1a133f"
      ],
      "author": {
        "name": "Chris Craik",
        "email": "ccraik@google.com",
        "time": "Tue Jan 27 15:46:35 2015 -0800"
      },
      "committer": {
        "name": "Chris Craik",
        "email": "ccraik@google.com",
        "time": "Wed Jan 28 16:32:39 2015 -0800"
      },
      "message": "Move more GL state management to RenderState and its directory\n\nChange-Id: Ic68584e1c08dc64be2ad43450cb6caa1de834fdc\n"
    },
    {
      "commit": "65fe5eeb19e2e15c8b1ee91e8a2dcf0c25e48ca6",
      "tree": "2283afa7268a8c9c488eb533066881e2b24d73a5",
      "parents": [
        "d05d91358d89953a1374601a5b04b7ed65403e8c"
      ],
      "author": {
        "name": "Chris Craik",
        "email": "ccraik@google.com",
        "time": "Mon Jan 26 18:06:29 2015 -0800"
      },
      "committer": {
        "name": "Chris Craik",
        "email": "ccraik@google.com",
        "time": "Tue Jan 27 17:12:39 2015 -0800"
      },
      "message": "Move scissor state to RenderState\n\nChange-Id: I1227a3886fb24e4d9fad79fca469794f06cfb15e\n"
    },
    {
      "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": "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": "c5cf471758169f7ffdf7669568a7780902159790",
      "tree": "f8ff84ce373fde3e5163c466bf5f6f28a2ce2037",
      "parents": [
        "6e8fea14ccc4c30d56a7f70c9addf3d5b8a229d2",
        "d7af6eaace4ffdd3635a1cdeff65e9dc1af39f67"
      ],
      "author": {
        "name": "John Reck",
        "email": "jreck@google.com",
        "time": "Mon Dec 01 21:47:03 2014 +0000"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Mon Dec 01 21:47:03 2014 +0000"
      },
      "message": "am d7af6eaa: am d51205fd: am 6afc5cf3: Merge \"Prevent calling GL functions with an invalid surface\"\n\n* commit \u0027d7af6eaace4ffdd3635a1cdeff65e9dc1af39f67\u0027:\n  Prevent calling GL functions with an invalid surface\n"
    },
    {
      "commit": "d7af6eaace4ffdd3635a1cdeff65e9dc1af39f67",
      "tree": "db08af2392b33783928c8ff5954301131d5e09aa",
      "parents": [
        "b62b1b03792e7c583ec1a51a3d621deb51663414",
        "d51205fda7351ca32e54ef34b32e72f6c7c79847"
      ],
      "author": {
        "name": "John Reck",
        "email": "jreck@google.com",
        "time": "Mon Dec 01 21:40:32 2014 +0000"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Mon Dec 01 21:40:32 2014 +0000"
      },
      "message": "am d51205fd: am 6afc5cf3: Merge \"Prevent calling GL functions with an invalid surface\"\n\n* commit \u0027d51205fda7351ca32e54ef34b32e72f6c7c79847\u0027:\n  Prevent calling GL functions with an invalid surface\n"
    },
    {
      "commit": "a12b2405df5c12363e24cebc684f5f3a5c9a5b7b",
      "tree": "395524d5f2413969c38197aa7db765e45e29c655",
      "parents": [
        "6cacf44e7ecfe50097adc99dab97c3fb9770a1af"
      ],
      "author": {
        "name": "Sangkyu Lee",
        "email": "sk82.lee@lge.com",
        "time": "Fri Nov 21 18:05:41 2014 +0900"
      },
      "committer": {
        "name": "John Reck",
        "email": "jreck@google.com",
        "time": "Mon Dec 01 21:38:34 2014 +0000"
      },
      "message": "Prevent calling GL functions with an invalid surface\n\nBug: 18518580\n\nWhen destroying CanvasContext, the surface can be invalid\nstate. So the surface should be updated to null prior to\ndestroying GL resources to ensure that GL functions\nare not called with an invalid surface.\nSome GL implementation makes an error if GL functions\nare called with an invalid surface. (Adreno 3xx)\n\nCherry picked from AOSP: f76d36f96bf221672e98e440c9df7cbf0e02e84e\n\nChange-Id: Ie6f6ea081ec931fc9df30b2c3ed066ec1ae9d294\n"
    },
    {
      "commit": "62bdf2c86342db66d86ceff3a8c0b609e4570bfc",
      "tree": "7a1de1fc46fad8849e465038311cf02bb4e6e1e9",
      "parents": [
        "ddf7e2dfc26ea5341c62cb5391a1cfb12cd8c129",
        "e986817a2dc8a412c12e456319965a67ac60f236"
      ],
      "author": {
        "name": "Chris Craik",
        "email": "ccraik@google.com",
        "time": "Wed Nov 26 21:08:00 2014 +0000"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Wed Nov 26 21:08:00 2014 +0000"
      },
      "message": "am e986817a: am 6eac26a4: am ca84c8b1: Merge \"Revert \"Force-use the pbuffer surface for destroy\"\" into lmp-mr1-dev\n\n* commit \u0027e986817a2dc8a412c12e456319965a67ac60f236\u0027:\n  Revert \"Force-use the pbuffer surface for destroy\"\n"
    },
    {
      "commit": "e986817a2dc8a412c12e456319965a67ac60f236",
      "tree": "b2d50e32c557e8f7c38c0c8f09c9886bc82e0114",
      "parents": [
        "0eaee607b8799bc6635efc8e65df13b6411b5a84",
        "6eac26a49957eda233ad22ad75da43379f220bbc"
      ],
      "author": {
        "name": "Chris Craik",
        "email": "ccraik@google.com",
        "time": "Wed Nov 26 21:02:24 2014 +0000"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Wed Nov 26 21:02:24 2014 +0000"
      },
      "message": "am 6eac26a4: am ca84c8b1: Merge \"Revert \"Force-use the pbuffer surface for destroy\"\" into lmp-mr1-dev\n\n* commit \u00276eac26a49957eda233ad22ad75da43379f220bbc\u0027:\n  Revert \"Force-use the pbuffer surface for destroy\"\n"
    },
    {
      "commit": "9f81485a76dd02a07fd460a29db6adddd2ca2efe",
      "tree": "b83710c292efceb1675ae0a1adb543ba24b704a7",
      "parents": [
        "b945f2313aee6e49a082ba5caaf95334d2570d52"
      ],
      "author": {
        "name": "Chris Craik",
        "email": "ccraik@google.com",
        "time": "Wed Nov 26 18:59:58 2014 +0000"
      },
      "committer": {
        "name": "Chris Craik",
        "email": "ccraik@google.com",
        "time": "Wed Nov 26 18:59:58 2014 +0000"
      },
      "message": "Revert \"Force-use the pbuffer surface for destroy\"\n\nbug:18528859\n\nThis reverts commit b945f2313aee6e49a082ba5caaf95334d2570d52.\n\nChange-Id: I6915624d356cb8570471eb3a5b8921f59b58db6d\n"
    },
    {
      "commit": "e39f788950c60f6468a038f88e6dc7ac5ee65f8f",
      "tree": "89d0720d85d43aaf47ad2daf77817d9980af1cdf",
      "parents": [
        "2edf7d6065d7ac3bff500b93daab4860a3f3741d",
        "0d4ab958c11801f5453e999f930416c87c63d100"
      ],
      "author": {
        "name": "John Reck",
        "email": "jreck@google.com",
        "time": "Wed Nov 26 12:09:42 2014 +0000"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Wed Nov 26 12:09:42 2014 +0000"
      },
      "message": "am 0d4ab958: am 4e3404d9: am dec3f138: Merge \"Force-use the pbuffer surface for destroy\" into lmp-mr1-dev\n\n* commit \u00270d4ab958c11801f5453e999f930416c87c63d100\u0027:\n  Force-use the pbuffer surface for destroy\n"
    },
    {
      "commit": "0d4ab958c11801f5453e999f930416c87c63d100",
      "tree": "02b23e48142325e228d32e81783cdb7a84c7ca99",
      "parents": [
        "2f47df83343e51214c792dc89874f0bccbeb4593",
        "4e3404d90fe33a0ff790aff4a97b6bb55e4c0e8f"
      ],
      "author": {
        "name": "John Reck",
        "email": "jreck@google.com",
        "time": "Wed Nov 26 12:02:19 2014 +0000"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Wed Nov 26 12:02:19 2014 +0000"
      },
      "message": "am 4e3404d9: am dec3f138: Merge \"Force-use the pbuffer surface for destroy\" into lmp-mr1-dev\n\n* commit \u00274e3404d90fe33a0ff790aff4a97b6bb55e4c0e8f\u0027:\n  Force-use the pbuffer surface for destroy\n"
    },
    {
      "commit": "f76d36f96bf221672e98e440c9df7cbf0e02e84e",
      "tree": "e1c81a2faf4ea012f087292f198b703fc9d0288c",
      "parents": [
        "f926d71b8ef2790da067550144860705c1a61fe5"
      ],
      "author": {
        "name": "Sangkyu Lee",
        "email": "sk82.lee@lge.com",
        "time": "Fri Nov 21 18:05:41 2014 +0900"
      },
      "committer": {
        "name": "Sangkyu Lee",
        "email": "sk82.lee@lge.com",
        "time": "Wed Nov 26 09:59:39 2014 +0900"
      },
      "message": "Prevent calling GL functions with an invalid surface\n\nWhen destroying CanvasContext, the surface can be invalid\nstate. So the surface should be updated to null prior to\ndestroying GL resources to ensure that GL functions\nare not called with an invalid surface.\nSome GL implementation makes an error if GL functions\nare called with an invalid surface. (Adreno 3xx)\n\nChange-Id: Ie6f6ea081ec931fc9df30b2c3ed066ec1ae9d294\n"
    },
    {
      "commit": "b945f2313aee6e49a082ba5caaf95334d2570d52",
      "tree": "99319f925561305925e2dc3ec71c651f2f04b0cd",
      "parents": [
        "0c31d97a38909e85e0df6cdc29469dbb1580ed4b"
      ],
      "author": {
        "name": "John Reck",
        "email": "jreck@google.com",
        "time": "Tue Nov 25 09:54:13 2014 -0800"
      },
      "committer": {
        "name": "John Reck",
        "email": "jreck@google.com",
        "time": "Tue Nov 25 09:54:13 2014 -0800"
      },
      "message": "Force-use the pbuffer surface for destroy\n\nBug: 18518580\n\nIf CanvasContext is being destroyed() the Surface\nis probably no longer valid as well, so make sure to\nmakeCurrent() to the pbuffer surface so that the\nsubsequent GL operations are not using an invalid\nEGLSurface\n\nChange-Id: Ica5d6a065841772c47e00ad65aa7894c7e27e043\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": "8a902d9f24e83c87b054adb5836b4a5b8a257be9",
      "tree": "7a1842dd8f8b9b8e1880df7a3fe0fc7f5d103d48",
      "parents": [
        "fa6547f6c0aad15c308a4ba946955087081ae1eb",
        "220c3f4f48b53b6010093a1ef437f4197a382ebf"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Fri Nov 21 15:51:04 2014 -0800"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Fri Nov 21 15:51:04 2014 -0800"
      },
      "message": "resolved conflicts for merge of 220c3f4f to master\n\nChange-Id: I37ecce8fddecdff82b0eace16f1ee75152f7171e\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": "27eaec23881f9564f98b484765d000822de5fdc3",
      "tree": "2b958bb768b18ec0cff74e3b1e5949ba3b81f30b",
      "parents": [
        "bee20cb560d37d23f2037c210152f9c44246ba8d",
        "842697a3602204036e991cfea8b74da3df6e7f14"
      ],
      "author": {
        "name": "John Reck",
        "email": "jreck@google.com",
        "time": "Tue Nov 18 21:37:59 2014 +0000"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Tue Nov 18 21:37:59 2014 +0000"
      },
      "message": "am 842697a3: am decc26df: am f0f68117: Merge \"Trace some interesting events\" into lmp-mr1-dev\n\n* commit \u0027842697a3602204036e991cfea8b74da3df6e7f14\u0027:\n  Trace some interesting events\n"
    },
    {
      "commit": "fbc8df03e498baf47ff1a5e05e182f1bcd60c770",
      "tree": "de74f95227f7285e812ad4a0c009e697fcca7d6a",
      "parents": [
        "b3ec64e1005c82d41b6d1a1d86b6933fd25d87d2"
      ],
      "author": {
        "name": "John Reck",
        "email": "jreck@google.com",
        "time": "Fri Nov 14 16:18:41 2014 -0800"
      },
      "committer": {
        "name": "John Reck",
        "email": "jreck@google.com",
        "time": "Mon Nov 17 10:18:31 2014 -0800"
      },
      "message": "Trace some interesting events\n\nBug: 18337099\nChange-Id: Ie2e60da2b9f06e0368061c944d8123ab6903355c\n"
    },
    {
      "commit": "e19093cad8e67cf1db98157d0246d0141b19f808",
      "tree": "e1419d670b0ae3ecff9c7276c0b8e40bb77ed1b2",
      "parents": [
        "09f5ca4eb607088626fd9a088f4171e76a493995",
        "f1923c368c5c08a477b9f94dea6a499798d91d4f"
      ],
      "author": {
        "name": "John Reck",
        "email": "jreck@google.com",
        "time": "Fri Nov 07 23:01:00 2014 +0000"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Fri Nov 07 23:01:00 2014 +0000"
      },
      "message": "am f1923c36: am 8dda03a0: am ca93f69c: Merge \"Have an actual fallback if the surface is lost\" into lmp-mr1-dev\n\n* commit \u0027f1923c368c5c08a477b9f94dea6a499798d91d4f\u0027:\n  Have an actual fallback if the surface is lost\n"
    },
    {
      "commit": "aa95a88327d9a3ac8a4a00b065b78ac0f28b3a19",
      "tree": "1e2e65ec4a7d28ea3b0a253be0d31eaf397dd005",
      "parents": [
        "b9744c1c1f5e8cc936da7f1832665f77ad5bb18f"
      ],
      "author": {
        "name": "John Reck",
        "email": "jreck@google.com",
        "time": "Fri Nov 07 11:02:07 2014 -0800"
      },
      "committer": {
        "name": "John Reck",
        "email": "jreck@google.com",
        "time": "Fri Nov 07 11:02:07 2014 -0800"
      },
      "message": "Have an actual fallback if the surface is lost\n\nBug: 17516789\n\nThis will force a relayout/reinitialize pass if the Surface\nis lost mid-render instead of crashing on the next frame\n\nChange-Id: If08bfa16f740728fa7c05904fa11e26f07b81e2e\n"
    },
    {
      "commit": "107843de4507b3511006cb9c77b8d0364374385a",
      "tree": "02b2f6181dbd8665638b174c2819f289a40551fd",
      "parents": [
        "daccecb263cad36b55dd84e25709d543ee887202"
      ],
      "author": {
        "name": "Tom Hudson",
        "email": "tomhudson@google.com",
        "time": "Mon Sep 08 11:26:26 2014 -0400"
      },
      "committer": {
        "name": "Tom Hudson",
        "email": "tomhudson@google.com",
        "time": "Tue Nov 04 15:49:44 2014 -0500"
      },
      "message": "Remove status return from all uirenderer::Renderer functions\n\nThis moves the interface closer to android::Canvas. The only use of\nreturn values was in the OpenGLRenderer subclass; that is replaced\nwith an internal dirty flag: returned from finish(), checked by\nCanvasContext.\n\nThis is part of a series of CLs to refactor the Graphics JNI bindings.\n\nBUG:15672762\nR\u003ddjsollen@google.com,ccraik@google.com\n\nChange-Id: Ifd533eb8839a254b0d3a5d04fc5a2905afdfc89e\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": "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\""
    }
  ],
  "next": "860d155f866cc15a725e7ce03763280987f24901"
}
