)]}'
{
  "log": [
    {
      "commit": "c82e879e563ad692cabf19f61a08559c6220171e",
      "tree": "52afc004a494c4185fca4cef1bace8df200cc6fa",
      "parents": [
        "7dd40cd4117cb7cf57d37f04088e4c55be423c1c"
      ],
      "author": {
        "name": "Doris Liu",
        "email": "tianliu@google.com",
        "time": "Fri Jul 29 16:45:24 2016 -0700"
      },
      "committer": {
        "name": "Doris Liu",
        "email": "tianliu@google.com",
        "time": "Mon Aug 01 21:42:15 2016 +0000"
      },
      "message": "Put VD animators on paused list when RT stops drawing\n\nWhen we stop scheduling for new frames on RenderThread, we should\nput the running animations on pause, rather than purge the list\nof the running animations, such that in the next full\nsync, the animations that were paused will continue to run.\n\nBUG: 30226711\nChange-Id: I36ff6f5d26ffa7999f60ca0ff676a35157577dc2\n"
    },
    {
      "commit": "34921ac1104e155682c6e807856e3e06f756c8f3",
      "tree": "3849b0be75da60ade46611e4ac69f86294a9275b",
      "parents": [
        "66e7752ad15f761d09155976b37cb94fc36937d9",
        "2d5b8d73929a38b019c6b6276d4a19542b990f0c"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Fri Jul 29 16:25:49 2016 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Jul 29 16:25:51 2016 +0000"
      },
      "message": "Merge \"Teach JankTracker about new swap behaviors\" into nyc-mr1-dev"
    },
    {
      "commit": "2d5b8d73929a38b019c6b6276d4a19542b990f0c",
      "tree": "d0224acca3391c34e4b2c33aac2bc8c685bea93b",
      "parents": [
        "255ad67b2e61c5ac407c5ef539275b4de99186b4"
      ],
      "author": {
        "name": "John Reck",
        "email": "jreck@google.com",
        "time": "Thu Jul 28 15:36:11 2016 -0700"
      },
      "committer": {
        "name": "John Reck",
        "email": "jreck@google.com",
        "time": "Fri Jul 29 07:56:02 2016 -0700"
      },
      "message": "Teach JankTracker about new swap behaviors\n\nBug: 30440166\n\nIf we are using HWC2, there\u0027s a change in timing\nwhen in triple buffering with the pipelined offsets.\nThis changes JankTracker to recognize that and silently\nerase that from the total duration\n\nChange-Id: Ib1fd4209070f17dbd2baed707c8cf73fb11c3cf2\n"
    },
    {
      "commit": "a3d795a34a786bbe8b5027f70df36b81328109c2",
      "tree": "c4e8767cf647ddf5ad349bddbd62af5c09050d64",
      "parents": [
        "255ad67b2e61c5ac407c5ef539275b4de99186b4"
      ],
      "author": {
        "name": "John Reck",
        "email": "jreck@google.com",
        "time": "Wed Jul 27 19:28:05 2016 -0700"
      },
      "committer": {
        "name": "John Reck",
        "email": "jreck@google.com",
        "time": "Wed Jul 27 19:28:05 2016 -0700"
      },
      "message": "Drop less aggressively\n\nBug: 30342762\n\nFrame dropping was too frequent and would trigger\nduring normal triple buffering steady state. Bump\nthe threshold to drop from 3ms stall to 6ms stall.\n\nChange-Id: I5c1faeaabf0d02323a28e697a4af4105fbcf1c53\n"
    },
    {
      "commit": "3163568806f2f1c360f93772453f4b0b3a9b2e47",
      "tree": "42c85718d3f12b8738934b1caa13297fd17a80b7",
      "parents": [
        "2f8bf1f024a63041693ff2a1e04269b2cbff8b36"
      ],
      "author": {
        "name": "Chris Craik",
        "email": "ccraik@google.com",
        "time": "Tue Jul 19 17:59:12 2016 -0700"
      },
      "committer": {
        "name": "Chris Craik",
        "email": "ccraik@google.com",
        "time": "Wed Jul 20 16:47:03 2016 -0700"
      },
      "message": "Change swap chain stuffed detection logic\n\nbug:29771461\nbug:29413700\nbug:30181577\n\nChanges frame interval gap detection to look for wider gaps, as they\nwere incorrectly firing all the time.\n\nAlso adds a 500ms minimum gap between frames dropped because of stuffed\nswap chain, to prevent dropping too often.\n\nChange-Id: If16ed637d54bf37015704be102c5c2e3731a0824\n"
    },
    {
      "commit": "ffde6274f7acb988ce181454b4d5abe3cef483b5",
      "tree": "de0670c03042e37915338ff913346fcbdf18940d",
      "parents": [
        "117cf8de912f4a58e94ffa535ae33d7a3ade7953"
      ],
      "author": {
        "name": "Tim Murray",
        "email": "timmurray@google.com",
        "time": "Mon Jul 18 14:11:28 2016 -0700"
      },
      "committer": {
        "name": "Tim Murray",
        "email": "timmurray@google.com",
        "time": "Mon Jul 18 15:35:36 2016 -0700"
      },
      "message": "add tracepoint for when the display chain is stuffed\n\nbug 30173296\n\nChange-Id: I7845542d4e5c19ccb7c3ee6498cc2d70278b5397\n"
    },
    {
      "commit": "0def73aac5956d82a065fd75e90eac4c58418e03",
      "tree": "f09c94a473b78cfad353eaae7995d3c2ba21ad29",
      "parents": [
        "da68f0614c50f1dce4bde8bad6fccd2a8573ad51"
      ],
      "author": {
        "name": "John Reck",
        "email": "jreck@google.com",
        "time": "Fri Jul 01 16:19:13 2016 -0700"
      },
      "committer": {
        "name": "John Reck",
        "email": "jreck@google.com",
        "time": "Wed Jul 06 17:00:43 2016 -0700"
      },
      "message": "Consider queue \u0026 dequeue times for should draw\n\nBug: 29413700\n\nChange-Id: I4b27b077af569e3c60c57b0e11501e9f3af70579\n"
    },
    {
      "commit": "7b570deea65bc7ac417a26ce3e4103bcef30e957",
      "tree": "6e19b0c299e7bf7da395cddbe5f0d2384af5b28a",
      "parents": [
        "157c6811de9bec883dfc802481bd07e64ca7ce59"
      ],
      "author": {
        "name": "John Reck",
        "email": "jreck@google.com",
        "time": "Mon Jun 27 13:27:23 2016 -0700"
      },
      "committer": {
        "name": "John Reck",
        "email": "jreck@google.com",
        "time": "Mon Jun 27 13:35:13 2016 -0700"
      },
      "message": "Fix SurfaceViewPositionListener race bugs\n\nBug: 29628138\n\n1: Make windowPositionLost synchronous as that\u0027s\nwhat the Java side was expecting\n\n2: Make the listener ref counted as otherwise\nthere\u0027s a race condition with the GC, which could\nend up with use-after-frees\n\n3: Ensure that all position updates are invoked\nprior to frame completion\n\nChange-Id: Iedbc017f611ba2878a49b4586612f79249ca2fe3\n"
    },
    {
      "commit": "fc4c59a10cfd3cdbecf83657b74fbcedc70d3ada",
      "tree": "a6833e8c3549b78e48302907bd9b4e0b87aa0db7",
      "parents": [
        "31e9b4c8c7e420ff96ed1ed32416f1f543e14ab8",
        "5b4ff21a749dbe2e8990fc1000eb1e2694c04e4f"
      ],
      "author": {
        "name": "John Reck",
        "email": "jreck@google.com",
        "time": "Tue Jun 14 14:54:18 2016 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Tue Jun 14 14:54:18 2016 +0000"
      },
      "message": "Merge \\\"Redraw if dirty during stopped when resumed\\\" into nyc-dev\nam: 5b4ff21a74\n\nChange-Id: If4eedb4a4c1ff6d4e96f8b0db4ddd846a2967a9f\n"
    },
    {
      "commit": "306f331f91a86da271ce30d4f14d6badf0d25704",
      "tree": "40a92237e50da143f7d076c2ed304a7a8d950519",
      "parents": [
        "9b5a78072281ebf0182234d56b6ec174e911d24e"
      ],
      "author": {
        "name": "John Reck",
        "email": "jreck@google.com",
        "time": "Fri Jun 10 16:01:55 2016 -0700"
      },
      "committer": {
        "name": "John Reck",
        "email": "jreck@google.com",
        "time": "Fri Jun 10 16:28:59 2016 -0700"
      },
      "message": "Redraw if dirty during stopped when resumed\n\nChange-Id: I0034d1da7704de53c4ba3da3e8ef3109445f9e6a\nFixes: 28283031\n"
    },
    {
      "commit": "718cd3eb70703c43f29ca37907bbf0e153d8cca0",
      "tree": "cf1d4ce2d7c0a2ca19289257d3a8538ecfbaf8cb",
      "parents": [
        "a2da20d3344010b8f3ca6cc5fea265984662959c"
      ],
      "author": {
        "name": "Doris Liu",
        "email": "tianliu@google.com",
        "time": "Tue May 17 16:50:31 2016 -0700"
      },
      "committer": {
        "name": "Doris Liu",
        "email": "tianliu@google.com",
        "time": "Thu Jun 09 10:27:59 2016 -0700"
      },
      "message": "Handle hidden RT VectorDrawable animators\n\nThis CL changes the target of VD specific animators to VectorDrawable,\ninstead of RenderNode. The benefit of doing so is that animators can\nnow detect whether the animation is meaningful by checking whether\ntheir VD target is in the display list. If not, that means the VD is\nnot drawing for the current frame, in which case we can be smarter\nand more power efficient by removing the animator from the list and\nposting a delayed onFinished listener callback.\n\nBy setting VD as the animation target, when an ImageView decides to\nupdate its drawable from one AVD to something else, we\u0027ll be able\nto detect that the previous AVD is no longer in the display list,\nand stop providing animation pulse to the stale AVD, which is\nsomething we couldn\u0027t do previously.  This change also\nhandles the case where one AVD instance could be drawn in two\ndifferent views.\n\nBug: 27441375\nChange-Id: Iaad1ed09cfd526276b95db0dd695275c28e074e8\n"
    },
    {
      "commit": "8cddce3f8f503b2aa8b993fef6406645c3e80da6",
      "tree": "5562ead370942b21974ed45ac40093724d4b5d46",
      "parents": [
        "b05e4851d01473432e841e757f2c96fd60ab300e",
        "28912a508493e583c48772e2a234e0ed66849490"
      ],
      "author": {
        "name": "John Reck",
        "email": "jreck@google.com",
        "time": "Mon Apr 18 23:20:37 2016 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Apr 18 23:20:39 2016 +0000"
      },
      "message": "Merge \"Make getFrameNumber lazy\" into nyc-dev"
    },
    {
      "commit": "28912a508493e583c48772e2a234e0ed66849490",
      "tree": "72f09e9a74f753bbb09925bb37a9f28e12d06bd2",
      "parents": [
        "7d0b8d792886b2ed5ff89ac6c2723fba9d44c7d4"
      ],
      "author": {
        "name": "John Reck",
        "email": "jreck@google.com",
        "time": "Mon Apr 18 14:34:18 2016 -0700"
      },
      "committer": {
        "name": "John Reck",
        "email": "jreck@google.com",
        "time": "Mon Apr 18 14:34:18 2016 -0700"
      },
      "message": "Make getFrameNumber lazy\n\nChange-Id: I783de544ad9a3636ea90f1c8c4034738997bfbc8\nFixes: 28246085\n"
    },
    {
      "commit": "c79c3246c9a3e0d2aa34afd18fddc95a6aff0f30",
      "tree": "b5bcb883b826834e64951b59f9451e074b829773",
      "parents": [
        "77ca3629f60dd9a416938e625959d0bd750d1acd",
        "9cd1bbe5c9e14472e631d8cc10005613925f34af"
      ],
      "author": {
        "name": "Chris Craik",
        "email": "ccraik@google.com",
        "time": "Mon Apr 18 19:40:49 2016 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Apr 18 19:40:50 2016 +0000"
      },
      "message": "Merge \"Improve multi-window render clipping logic\" into nyc-dev"
    },
    {
      "commit": "9cd1bbe5c9e14472e631d8cc10005613925f34af",
      "tree": "acbe56e34c3090b23f53c4594a7efd7d70506d80",
      "parents": [
        "e1b1ce77da273da6fc89d04a9c8ec09d0d8adca1"
      ],
      "author": {
        "name": "Chris Craik",
        "email": "ccraik@google.com",
        "time": "Thu Apr 14 16:08:25 2016 -0700"
      },
      "committer": {
        "name": "Chris Craik",
        "email": "ccraik@google.com",
        "time": "Mon Apr 18 10:39:02 2016 -0700"
      },
      "message": "Improve multi-window render clipping logic\n\nFixes: 28125010\n\nRestructures \u0027scene defer\u0027, to implement window backdrop overdraw\navoidance in new render pipeline, and disable clipping to content draw\nbounds.\n\nAlso restructures FrameBuilder\u0027s constructors, to separate out into\nmultiple defer methods.\n\nChange-Id: I53facb904c1a4a4acc493d8a489921a79a50494e\n"
    },
    {
      "commit": "8afcc76920499d0a384dba1470c5a377f80ed768",
      "tree": "d6c10ca146b7b28daaf18544ed3d338b9ed08946",
      "parents": [
        "5352dda479452c248f87521d6c69c9dd8399ebb7"
      ],
      "author": {
        "name": "John Reck",
        "email": "jreck@google.com",
        "time": "Wed Apr 13 10:24:06 2016 -0700"
      },
      "committer": {
        "name": "John Reck",
        "email": "jreck@google.com",
        "time": "Thu Apr 14 10:39:03 2016 -0700"
      },
      "message": "Revert \"Revert \"Make stopped state a first-class thing\"\"\n\nThis reverts commit eab3f2658aa41d37c3b05d49a2ce4e3f4ed85399.\n\nFixes first-frame issue, mReportNextDraw needs to override\nmStopped\n\nFixes: 28118961\nFixes: 27286867\n\nChange-Id: I5c811759637d08ba9f3b342016d1b3006986d5a2\n"
    },
    {
      "commit": "825fa4d5ae7b2907ee1769d09e6333306de2a92e",
      "tree": "26385820dbc923e739d059f9c47197b88634ae22",
      "parents": [
        "cf0cc881ebf2c2f00129dd9e045e23f6bf970d54",
        "eab3f2658aa41d37c3b05d49a2ce4e3f4ed85399"
      ],
      "author": {
        "name": "John Reck",
        "email": "jreck@google.com",
        "time": "Mon Apr 11 20:54:35 2016 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Apr 11 20:54:36 2016 +0000"
      },
      "message": "Merge \"Revert \"Make stopped state a first-class thing\"\" into nyc-dev"
    },
    {
      "commit": "eab3f2658aa41d37c3b05d49a2ce4e3f4ed85399",
      "tree": "ca0e0aa6f9e895f7e8dc22e60e0eadb28bc51688",
      "parents": [
        "945961f78a78eced823d5ba78505c781b079703d"
      ],
      "author": {
        "name": "John Reck",
        "email": "jreck@google.com",
        "time": "Mon Apr 11 20:49:28 2016 +0000"
      },
      "committer": {
        "name": "John Reck",
        "email": "jreck@google.com",
        "time": "Mon Apr 11 20:49:28 2016 +0000"
      },
      "message": "Revert \"Make stopped state a first-class thing\"\n\nThis reverts commit 945961f78a78eced823d5ba78505c781b079703d.\n\nChange-Id: Iebc1d49fac33380233f8785fc39bec6c30a5e714\n"
    },
    {
      "commit": "c724dcf23c5e2ebd22c042a8a6f2424b7e9d5029",
      "tree": "011af96ab684103081b8729bf436b4c8725aa28c",
      "parents": [
        "4a735441e82207e18036be09d0d02c855930938f",
        "945961f78a78eced823d5ba78505c781b079703d"
      ],
      "author": {
        "name": "John Reck",
        "email": "jreck@google.com",
        "time": "Fri Apr 08 15:09:40 2016 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Apr 08 15:09:42 2016 +0000"
      },
      "message": "Merge \"Make stopped state a first-class thing\" into nyc-dev"
    },
    {
      "commit": "945961f78a78eced823d5ba78505c781b079703d",
      "tree": "770f49272fa8c981be4f0e1d9c1c3fc3726dfdf3",
      "parents": [
        "3397c88f7900d8db677204cdbe9e7a5dc26e453a"
      ],
      "author": {
        "name": "John Reck",
        "email": "jreck@google.com",
        "time": "Thu Apr 07 16:02:33 2016 -0700"
      },
      "committer": {
        "name": "John Reck",
        "email": "jreck@google.com",
        "time": "Thu Apr 07 16:02:33 2016 -0700"
      },
      "message": "Make stopped state a first-class thing\n\nBug: 27286867\n\nWindowManager has committed to stopped state\ncontrolling the lifecycle of the Surface, so\nmake that a first-class thing in HWUI as well.\n\nThis makes it more resistent to things like\na rogue updateSurface() happening while mStopped\u003dtrue,\nleading to bad things down the line. Instead let\nthe surface be changed/updated as often as desired,\nand just block any attempt to draw on that surface.\n\nAlso removes some unnecessary makeCurrent()s, as\nEglManager ensures that we *always* have a valid\nGL context now (using a pbuffer surface if there is\nno window surface set)\n\nChange-Id: Iead78ddebc7997e8fdb0c9534836352f5e54b9bd\n"
    },
    {
      "commit": "51f2d606dcbfba3cc5b03dfea37c1304b91c232f",
      "tree": "110249f497eddafcb33ba8aed6989bd965b2a7da",
      "parents": [
        "3397c88f7900d8db677204cdbe9e7a5dc26e453a"
      ],
      "author": {
        "name": "John Reck",
        "email": "jreck@google.com",
        "time": "Wed Apr 06 07:50:47 2016 -0700"
      },
      "committer": {
        "name": "John Reck",
        "email": "jreck@google.com",
        "time": "Thu Apr 07 14:10:43 2016 -0700"
      },
      "message": "Fix some edge cases\n\nBug: 27709981\n\nThis desperately needs a refactor, but to keep\nthe current (really needed \u0026 nice) behavior of\ndispatching after sync finishes would be difficult\nto handle cleanly without lots of ripping so... #yolo\n\nChange-Id: I831a06c6ae7412a062720d68ecbe3085190f0258\n"
    },
    {
      "commit": "44b49f070aafe8ad44efae87341121cce49ff11c",
      "tree": "d6be4f57d9b034657e69eb4bc39b2ed35cd5fb69",
      "parents": [
        "7492e75ba3a6785c183638392f23a92950498922"
      ],
      "author": {
        "name": "John Reck",
        "email": "jreck@google.com",
        "time": "Fri Mar 25 14:29:48 2016 -0700"
      },
      "committer": {
        "name": "John Reck",
        "email": "jreck@google.com",
        "time": "Thu Mar 31 08:36:50 2016 -0700"
      },
      "message": "Add a callback for rendernode parentcount\u003d0\n\nBug: 27709981\nFixes: 22565656\n\nChange-Id: I1cb4461baf9069dc4e7ca6de10d5862578c107f4\n"
    },
    {
      "commit": "6246d27813f25b85f6e4b5cb1121fe8484bcce2d",
      "tree": "404d22648cb87d218312937f3ad8cf8fb68da7be",
      "parents": [
        "af64f6341bdbca93aff3d68264af48e74faa9e58"
      ],
      "author": {
        "name": "Chris Craik",
        "email": "ccraik@google.com",
        "time": "Tue Mar 29 15:01:41 2016 -0700"
      },
      "committer": {
        "name": "Chris Craik",
        "email": "ccraik@google.com",
        "time": "Tue Mar 29 16:50:32 2016 -0700"
      },
      "message": "Support buildLayer in new pipeline\n\nbug:26561995\nbug:27620686\n\nChange-Id: I6c39f9a077e7e6002d3c01b8888238fd17b0f02a\n"
    },
    {
      "commit": "3a5811b50157e7ba50854caf957e806aee794d39",
      "tree": "288fda75463ca914982e43acb7436a5a877f623c",
      "parents": [
        "68ffbba158579dd8b6f32aa628ec91228786e864"
      ],
      "author": {
        "name": "Chris Craik",
        "email": "ccraik@google.com",
        "time": "Tue Mar 22 15:03:08 2016 -0700"
      },
      "committer": {
        "name": "Chris Craik",
        "email": "ccraik@google.com",
        "time": "Wed Mar 23 12:55:12 2016 -0700"
      },
      "message": "Precache/early kick off of op work for non-shadow ops.\n\nbug:26562703\nbug:27052145\n\nChange-Id: Ic452bfe75da849ffdd47fecdd6eb1472fd0c806e\n"
    },
    {
      "commit": "dccca44ffda4836b56a21da95a046c9708ffd49c",
      "tree": "e4c0bcfeb0f37f0fd6ed4a08d58e701494bc61a8",
      "parents": [
        "c57fc4787f5aadb129686e904b86d343c8ae3541"
      ],
      "author": {
        "name": "sergeyv",
        "email": "sergeyv@google.com",
        "time": "Mon Mar 21 15:38:21 2016 -0700"
      },
      "committer": {
        "name": "sergeyv",
        "email": "sergeyv@google.com",
        "time": "Mon Mar 21 15:55:46 2016 -0700"
      },
      "message": "Reland: Move text logic from jni to hwui level\n\nInitial CL: https://googleplex-android-review.git.corp.google.com/#/c/886854/\n\nChange-Id: I9dfd85fe1d2a2c44f4360c8a29fd58d80e6f31c8\n"
    },
    {
      "commit": "6847953955502caa0bd0ba255d879a89aeccbd24",
      "tree": "493a5869a509a2a5df2a5030319050e0e4c7d868",
      "parents": [
        "f2e6a10b3816111353a88d1588cc7edcb1e90d08",
        "afbd0f1fef46ef0ddf633dfde0de724db3da1405"
      ],
      "author": {
        "name": "Sergei Vasilinetc",
        "email": "sergeyv@google.com",
        "time": "Mon Mar 21 21:06:45 2016 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Mar 21 21:06:47 2016 +0000"
      },
      "message": "Merge \"Revert \"Move text logic from jni to hwui level\"\" into nyc-dev"
    },
    {
      "commit": "afbd0f1fef46ef0ddf633dfde0de724db3da1405",
      "tree": "85e008cb0315362d002817fa912bd91c05d8dd4c",
      "parents": [
        "a7f6bba1a3565c19715e878dfe7f0e01022944ff"
      ],
      "author": {
        "name": "Sergei Vasilinetc",
        "email": "sergeyv@google.com",
        "time": "Mon Mar 21 21:03:40 2016 +0000"
      },
      "committer": {
        "name": "Sergei Vasilinetc",
        "email": "sergeyv@google.com",
        "time": "Mon Mar 21 21:03:40 2016 +0000"
      },
      "message": "Revert \"Move text logic from jni to hwui level\"\n\nThis reverts commit a7f6bba1a3565c19715e878dfe7f0e01022944ff.\n\nChange-Id: If4f36f87a85411b6128fd92d391313803ccaf9dd\n"
    },
    {
      "commit": "49658d43802dc74c0ad68b7f5ba509832c1dec81",
      "tree": "f5f5cf83b52458a9181a8408f9b3af2c23958c3d",
      "parents": [
        "85941cff0c65bc023e4ca29c0eac8548c8f61be6",
        "a7f6bba1a3565c19715e878dfe7f0e01022944ff"
      ],
      "author": {
        "name": "Sergei Vasilinetc",
        "email": "sergeyv@google.com",
        "time": "Mon Mar 21 20:11:25 2016 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Mar 21 20:11:27 2016 +0000"
      },
      "message": "Merge \"Move text logic from jni to hwui level\" into nyc-dev"
    },
    {
      "commit": "38f6c034d153bb648d45bce09d80a69ba3e03360",
      "tree": "00e1732da7ea4962b842536567f39a34140a54de",
      "parents": [
        "f068cff1761a2876587caa7ca6978a848198439a"
      ],
      "author": {
        "name": "John Reck",
        "email": "jreck@google.com",
        "time": "Thu Mar 17 10:23:49 2016 -0700"
      },
      "committer": {
        "name": "John Reck",
        "email": "jreck@google.com",
        "time": "Thu Mar 17 10:32:07 2016 -0700"
      },
      "message": "Move updating window position off RT\n\nBug: 27385141\nChange-Id: I6c75b5f1d9ef55ef64dde050f71d0e28fb8714bf\n"
    },
    {
      "commit": "a7f6bba1a3565c19715e878dfe7f0e01022944ff",
      "tree": "6f981aa976c049bf207727229f1275a3a6e8e530",
      "parents": [
        "ffaf94459a5042cd0881c7764c267a34aa5b60f0"
      ],
      "author": {
        "name": "sergeyv",
        "email": "sergeyv@google.com",
        "time": "Tue Mar 15 16:16:22 2016 -0700"
      },
      "committer": {
        "name": "sergeyv",
        "email": "sergeyv@google.com",
        "time": "Thu Mar 17 09:48:57 2016 -0700"
      },
      "message": "Move text logic from jni to hwui level\n\nbug:25865834\nChange-Id: I2d8c9c9544afcb5ce1784f732aed3e54e0eda372\n"
    },
    {
      "commit": "1dfa0704964c17e45775b9e01f1fa0b1a10774f7",
      "tree": "45cbf88a4792def75988c4ae1a7dca8d8ffda3e9",
      "parents": [
        "8316fac9c0772b1908d45b2286298b5b791d3ca7"
      ],
      "author": {
        "name": "Chris Craik",
        "email": "ccraik@google.com",
        "time": "Fri Mar 04 15:59:24 2016 -0800"
      },
      "committer": {
        "name": "Chris Craik",
        "email": "ccraik@google.com",
        "time": "Fri Mar 04 16:18:26 2016 -0800"
      },
      "message": "Support GPU profiling vis in new pipeline\n\nbug:27353099\n\nChange-Id: I905c1a998d9a9e2097c047dab9de87a70d7a370e\n"
    },
    {
      "commit": "c96955d9bb997b51be5fa929b5a67349d0459c3a",
      "tree": "1f4f44872d9fe4054a7d9f4daf3fb5e92664f30c",
      "parents": [
        "f4db3d253ef533f6992217fcbb3119a091172d94"
      ],
      "author": {
        "name": "John Reck",
        "email": "jreck@google.com",
        "time": "Fri Feb 26 14:56:44 2016 -0800"
      },
      "committer": {
        "name": "John Reck",
        "email": "jreck@google.com",
        "time": "Fri Feb 26 14:58:13 2016 -0800"
      },
      "message": "Always swap buffers if using partial update extension\n\nBug: 27379093\nChange-Id: Ifda18287248e4ae07d4bf2ae9642a9d23039e81f\n"
    },
    {
      "commit": "910beb8f5d9042163e2ad0dbb744d9f147db9604",
      "tree": "83f2bdb523fa6f78ac322b5eca1f0bc332e2fcd2",
      "parents": [
        "95728a5db6595e473acf8f428f238afc2fdbbe80"
      ],
      "author": {
        "name": "Andres Morales",
        "email": "anmorales@google.com",
        "time": "Tue Feb 02 16:19:40 2016 -0800"
      },
      "committer": {
        "name": "Andres Morales",
        "email": "anmorales@google.com",
        "time": "Tue Feb 09 10:40:01 2016 -0800"
      },
      "message": "updates to FrameStatsObserver API\n\n- Rename to FrameMetrics to avoid collision with existing\n  android.view.FrameStats class\n- Make FrameMetricsObserver implementation detail,\n  exposing FrameMetricsListener interface as public API\n  and wrapping in FrameStatsObserver to maintain state\n- Remove dropped frame count call, in favor of passing as\n  parameter to callback method.\n- Move away from raw timestamp access in favor of Metric IDs\n  which represent higher-level, more stable stages in a frame\n  lifecycle and match the categories exposed in the onscreen\n  bars.\n- Support many-to-many Window\u003c-\u003eFrameMetricsListener relationship\n\nChange-Id: I00e741d664d4c868b1b6d0131a23f8316bd8c5c2\n"
    },
    {
      "commit": "0a1abd3247d856fe875d5ef45f75bc2c8167ea96",
      "tree": "ab627effb6444397279f956e3f931be445a60a5c",
      "parents": [
        "57218cbbf773f389e5e9493623dd3d017e459590",
        "f648108f83d4e74811919e9811efb8fcc184b8a3"
      ],
      "author": {
        "name": "John Reck",
        "email": "jreck@google.com",
        "time": "Thu Feb 04 19:32:57 2016 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Feb 04 19:32:57 2016 +0000"
      },
      "message": "Merge \"Have RT drive window positioning\""
    },
    {
      "commit": "f648108f83d4e74811919e9811efb8fcc184b8a3",
      "tree": "a7e20b3298846cd072499a921bfa59d244c717e0",
      "parents": [
        "15d21b3aca1c3eeb3932752194e9f196b546387b"
      ],
      "author": {
        "name": "John Reck",
        "email": "jreck@google.com",
        "time": "Tue Feb 02 15:18:23 2016 -0800"
      },
      "committer": {
        "name": "John Reck",
        "email": "jreck@google.com",
        "time": "Thu Feb 04 11:23:49 2016 -0800"
      },
      "message": "Have RT drive window positioning\n\nBug: 22802885\n\nChange-Id: I6beed5474d3a943b16e9097f7bd61ce3cbd37505\n"
    },
    {
      "commit": "6e068c0182f6f85bccb855a647510724d1c65a13",
      "tree": "8ee074307867bfcdc9c8a708aa6ae03f1d9b7ecc",
      "parents": [
        "d38308e4d0599836f9c5446ba9d6edbc0713c428"
      ],
      "author": {
        "name": "Chris Craik",
        "email": "ccraik@google.com",
        "time": "Fri Jan 15 16:15:30 2016 -0800"
      },
      "committer": {
        "name": "Chris Craik",
        "email": "ccraik@google.com",
        "time": "Tue Feb 02 17:10:25 2016 -0800"
      },
      "message": "Early kickoff of shadow tasks\n\nbug:26562703\n\nChange-Id: I7cdf18f2c662380bd31c7ffeefd5c3f569e5c1c6\n"
    },
    {
      "commit": "c3bd56811268a074ffb9513bde0d940199e7ad16",
      "tree": "3f912ab3a94046c8246a0063db362fece2a92946",
      "parents": [
        "c9fd313f94f7e0dc1f1f865290a2eb1b1897d2ad"
      ],
      "author": {
        "name": "Chong Zhang",
        "email": "chz@google.com",
        "time": "Mon Jan 25 12:01:12 2016 -0800"
      },
      "committer": {
        "name": "Chong Zhang",
        "email": "chz@google.com",
        "time": "Tue Jan 26 12:49:28 2016 -0800"
      },
      "message": "Restore code to draw backdrop and content nodes\n\nbug: 26626661\nChange-Id: I9e4dd41708e8ed93d3cf64242ad81815a653d269\n"
    },
    {
      "commit": "dd93728b461c686ee4c5f329509418fe9342cb8d",
      "tree": "c9b11301b78a029cea99727205abedd898d461a6",
      "parents": [
        "8dfd95d0913a38d78840d65056f57a93501e6a9c",
        "eecff56fed5dd5206acfbc5007b4912081b36d3b"
      ],
      "author": {
        "name": "Florin Malita",
        "email": "fmalita@google.com",
        "time": "Tue Jan 26 17:00:37 2016 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Jan 26 17:00:37 2016 +0000"
      },
      "message": "Merge \"Add internal Canvas save flags\""
    },
    {
      "commit": "c52ac0b9e2dc9d060f21498ac59404ec7fd1e846",
      "tree": "9609f5a11f1ca11a6d3142488ff7b23d7e6bd819",
      "parents": [
        "37e65a409fb01815e826665c651e07b952cb4f28",
        "975591a7af883d866d86ab819e164c6004694744"
      ],
      "author": {
        "name": "John Reck",
        "email": "jreck@google.com",
        "time": "Tue Jan 26 15:21:07 2016 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Jan 26 15:21:07 2016 +0000"
      },
      "message": "Merge \"Add fine-grained debug layer\""
    },
    {
      "commit": "975591a7af883d866d86ab819e164c6004694744",
      "tree": "b0247aebad80c7380141137e9de8d7edcf1ef89f",
      "parents": [
        "fe434a15d6bde9299b51dc284b336944e5cf8a1c"
      ],
      "author": {
        "name": "John Reck",
        "email": "jreck@google.com",
        "time": "Fri Jan 22 16:28:07 2016 -0800"
      },
      "committer": {
        "name": "John Reck",
        "email": "jreck@google.com",
        "time": "Mon Jan 25 16:15:14 2016 -0800"
      },
      "message": "Add fine-grained debug layer\n\nFull GLES error checking layer via -include\ntrickery. Change DEBUG_OPENGL to a level system.\n\nHIGH \u003d every GL call is error checked\nMODERATE \u003d checkpointing at interesting spots\nLOW \u003d only asserts there are no errors at the end of a frame\n or when the FBO changes\nNONE \u003d AIN\u0027T GOT NO TIME FOR ERRORS GOTTA GO FAST!\n\nChange-Id: Ibe81aae93d942059c4ddf1cbb11c828b7ce4c10b\n"
    },
    {
      "commit": "eecff56fed5dd5206acfbc5007b4912081b36d3b",
      "tree": "5e9b0e3dcf6add0bde182a791d9ba9040c16dafa",
      "parents": [
        "36c297f426b2d1337658d781bc6cbd60b04ce4e8"
      ],
      "author": {
        "name": "Florin Malita",
        "email": "fmalita@google.com",
        "time": "Mon Dec 21 10:43:01 2015 -0500"
      },
      "committer": {
        "name": "Florin Malita",
        "email": "fmalita@google.com",
        "time": "Mon Jan 25 15:48:00 2016 -0500"
      },
      "message": "Add internal Canvas save flags\n\nSkia\u0027s SkCanvas::SaveFlags are being deprecated.  This CL introduces\nthe equivalent android::SaveFlags, converts all internal clients to\nthe new enum, and switches the saveLayer glue to the\nSaveLayerRec-based API.\n\nChange-Id: Icb1785f4e7c0f652b1f04b34a1e3ccb063c408f3\n"
    },
    {
      "commit": "06f5bc70a667a02b14e31d3f53f91d3661e30666",
      "tree": "3de8a009d084a71906aa26506b209fea01ef4471",
      "parents": [
        "0ed21de72134a2b55648104f517e44a2deff17dd"
      ],
      "author": {
        "name": "Andres Morales",
        "email": "anmorales@google.com",
        "time": "Tue Dec 15 15:21:31 2015 -0800"
      },
      "committer": {
        "name": "Andres Morales",
        "email": "anmorales@google.com",
        "time": "Fri Jan 22 12:58:51 2016 -0800"
      },
      "message": "expose hwui frame stats through FrameStatsObserver\n\nChange-Id: I88884bafc8e2f6d7f67a36d3609490e83cf8afd5\n"
    },
    {
      "commit": "9372ac3621848085e77b867f220c0b5ffce4010d",
      "tree": "2077130e6ffe97d3aa03ae8bb7a861aaa452fb85",
      "parents": [
        "663d09ab4273f3e2c68bfaa72d4973f58e5cc023"
      ],
      "author": {
        "name": "John Reck",
        "email": "jreck@google.com",
        "time": "Tue Jan 19 11:46:52 2016 -0800"
      },
      "committer": {
        "name": "John Reck",
        "email": "jreck@google.com",
        "time": "Tue Jan 19 12:58:48 2016 -0800"
      },
      "message": "Fix ordering of texture-\u003eupload arguments\n\nCaught by scatter-shotting GL_CHECKPOINTS which\nseem generally useful to have\n\nBug: 26609444\n\nChange-Id: Ie31d9297d8dae56405126720f338b4256c8bae77\n"
    },
    {
      "commit": "cbc5bd57f0f528743fce5ec02b0739dc6368311f",
      "tree": "45541b44b29965e05430cde89b2c5229eb7d7a14",
      "parents": [
        "f6762aca4a353a17cf79723f8a69b625b9e27237",
        "38e0c32852e3b9d8ca4a9d3791577f52536419cb"
      ],
      "author": {
        "name": "John Reck",
        "email": "jreck@google.com",
        "time": "Thu Jan 14 21:49:42 2016 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Jan 14 21:49:42 2016 +0000"
      },
      "message": "Merge \"Track texture memory globally\""
    },
    {
      "commit": "38e0c32852e3b9d8ca4a9d3791577f52536419cb",
      "tree": "72286f7531e094182b2bfe959015d7ed7f9c6abc",
      "parents": [
        "a5abf801044c5e53349c2e67428fe011a2f6985f"
      ],
      "author": {
        "name": "John Reck",
        "email": "jreck@google.com",
        "time": "Tue Nov 10 12:19:17 2015 -0800"
      },
      "committer": {
        "name": "John Reck",
        "email": "jreck@google.com",
        "time": "Thu Jan 14 13:42:12 2016 -0800"
      },
      "message": "Track texture memory globally\n\nAlso mostly consolidates texture creation\n\nChange-Id: Ifea01303afda531dcec99b8fe2a0f64cf2f24420\n"
    },
    {
      "commit": "b79151759ac59bcb6f8f76188d9af7b3155ae2ff",
      "tree": "59775ae09d851065e6099bd04365ee6a9f158fd7",
      "parents": [
        "9b974bf25bf13aa72399c74107c14749bba5625f",
        "099bd9ca8fea02795424d62c05c723290d68ae14"
      ],
      "author": {
        "name": "Matthew Bouyack",
        "email": "mbouyack@google.com",
        "time": "Wed Jan 13 19:00:07 2016 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Wed Jan 13 19:00:07 2016 +0000"
      },
      "message": "Merge \"In CanvasContext::doFrame, make a separate call to computeFrameTimeNanos and save the result. Then pass that value to UiFrameInfoBuilder::setVsync as both arguments.\" into cw-e-dev am: eebf168e43 am: e0845e8629 am: 6222bb0f6a\nam: 099bd9ca8f\n\n* commit \u0027099bd9ca8fea02795424d62c05c723290d68ae14\u0027:\n  In CanvasContext::doFrame, make a separate call to computeFrameTimeNanos and save the result. Then pass that value to UiFrameInfoBuilder::setVsync as both arguments.\n"
    },
    {
      "commit": "3145247b3e8563f25e9d908579ce03060f3e880b",
      "tree": "223997176b9bd8514e78d07d727a7bf53692f3be",
      "parents": [
        "477e26cf931290f6b3353fab43a05406eea223f9"
      ],
      "author": {
        "name": "Chris Craik",
        "email": "ccraik@google.com",
        "time": "Tue Jan 12 18:55:15 2016 -0800"
      },
      "committer": {
        "name": "Chris Craik",
        "email": "ccraik@google.com",
        "time": "Tue Jan 12 18:55:15 2016 -0800"
      },
      "message": "Disable buildLayer crash\n\nChange-Id: Ia51e8da01d5c694fb1a084cea8dfce865c56a456\n"
    },
    {
      "commit": "099bd9ca8fea02795424d62c05c723290d68ae14",
      "tree": "a5e21ecae738d4660da99a80945dbafb1e761ed8",
      "parents": [
        "35bdda107fe76ab62087527946b201551ddfe965",
        "6222bb0f6a772c8fa1dc402740399b0ad1017520"
      ],
      "author": {
        "name": "Matthew Bouyack",
        "email": "mbouyack@google.com",
        "time": "Tue Jan 12 22:45:49 2016 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Tue Jan 12 22:45:49 2016 +0000"
      },
      "message": "Merge \"In CanvasContext::doFrame, make a separate call to computeFrameTimeNanos and save the result. Then pass that value to UiFrameInfoBuilder::setVsync as both arguments.\" into cw-e-dev am: eebf168e43 am: e0845e8629\nam: 6222bb0f6a\n\n* commit \u00276222bb0f6a772c8fa1dc402740399b0ad1017520\u0027:\n  In CanvasContext::doFrame, make a separate call to computeFrameTimeNanos and save the result. Then pass that value to UiFrameInfoBuilder::setVsync as both arguments.\n"
    },
    {
      "commit": "f158b49c888f722194afe5a80539a2b020c130bc",
      "tree": "83d2e40497f2ea9ca439653d5ef334263c92c61b",
      "parents": [
        "89ceb5c97745c6901620c20eb0828a5c2f768f4f"
      ],
      "author": {
        "name": "Chris Craik",
        "email": "ccraik@google.com",
        "time": "Tue Jan 12 14:45:08 2016 -0800"
      },
      "committer": {
        "name": "Chris Craik",
        "email": "ccraik@google.com",
        "time": "Tue Jan 12 14:45:08 2016 -0800"
      },
      "message": "Rename Reorderers to Builders\n\nChange-Id: I9bb5a2e70055e2f6d14912fbd86ab72ac0d6e20c\n"
    },
    {
      "commit": "7f667e7a0823d52eed2ed64a31b125f6b8da21cb",
      "tree": "8e19e45d77476fb074e7050d1b1ab2820cd676c3",
      "parents": [
        "1d3bac82b3bc59fd7225a3c27b32db2fc90b0308"
      ],
      "author": {
        "name": "Matthew Bouyack",
        "email": "mbouyack@google.com",
        "time": "Tue Jan 12 12:01:48 2016 -0800"
      },
      "committer": {
        "name": "Matthew Bouyack",
        "email": "mbouyack@google.com",
        "time": "Tue Jan 12 12:01:48 2016 -0800"
      },
      "message": "In CanvasContext::doFrame, make a separate call to computeFrameTimeNanos\nand save the result. Then pass that value to\nUiFrameInfoBuilder::setVsync as both arguments.\n\nThe order of function argument evaluation is undefined in C++. Because\nthe value returned from TimeLord::latestVsync may be changed by\nthe preceding call to TimeLord::computeFrameTimeNanos the values of the\narguments passed to UiFrameInfoBuilder::setVsync is also undefined. This\nchange removes any ambiguity.\n\nChange-Id: Ie71ee453f9ccc725edfe5f7cc9b277f2a809dfdc\n"
    },
    {
      "commit": "5ea1724be4d3b6039818f91fc087e1216c1463d5",
      "tree": "04c3a8a7b6c2dfe8d3ce4cc665c2bebc3af47e39",
      "parents": [
        "7435eb148e72382126e9073183e881357bb38a8b"
      ],
      "author": {
        "name": "Chris Craik",
        "email": "ccraik@google.com",
        "time": "Mon Jan 11 14:07:59 2016 -0800"
      },
      "committer": {
        "name": "Chris Craik",
        "email": "ccraik@google.com",
        "time": "Mon Jan 11 15:35:52 2016 -0800"
      },
      "message": "Rename OpReorderer to FrameReorderer\n\nAlso separate LayerReorderer into its own files.\n\nChange-Id: Iafb6a156f760f62f831f6288fd0dadf1db25da24\n"
    },
    {
      "commit": "031eaedef8047c8054064ab12d05c3edca07a933",
      "tree": "cbda2b6c1d2877e5eda3fc23f028f4859108d435",
      "parents": [
        "ca9c0d428aebd0506d7cd13e4a6d3c0e99f35233",
        "d2dfd8f128b632ed99418ab2b32949c939a9a369"
      ],
      "author": {
        "name": "Chris Craik",
        "email": "ccraik@google.com",
        "time": "Wed Dec 16 23:48:27 2015 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Dec 16 23:48:27 2015 +0000"
      },
      "message": "Merge \"Add TextureView support to new renderer/reorderer\""
    },
    {
      "commit": "d2dfd8f128b632ed99418ab2b32949c939a9a369",
      "tree": "ef9446320399a05cf5bf2e1d7d4a6a177c261960",
      "parents": [
        "d7448e65e243754f31890baef29dff187dc2e5e5"
      ],
      "author": {
        "name": "Chris Craik",
        "email": "ccraik@google.com",
        "time": "Wed Dec 16 14:27:20 2015 -0800"
      },
      "committer": {
        "name": "Chris Craik",
        "email": "ccraik@google.com",
        "time": "Wed Dec 16 15:35:40 2015 -0800"
      },
      "message": "Add TextureView support to new renderer/reorderer\n\nbug:22480459\n\nChange-Id: I2e4c0bc6b904706132f3f5087ededc9cac9b40fb\n"
    },
    {
      "commit": "bf4b31f7b23b0bc7a2ed4fc779aac37c9c486eb2",
      "tree": "664a22edd64a136d05eb9d14d87ebe05f274a107",
      "parents": [
        "636e71c326f4938b1edd26953151987f6f2e5ec2",
        "04ce46db647724b7c30c9a593bf717888d59081c"
      ],
      "author": {
        "name": "John Reck",
        "email": "jreck@google.com",
        "time": "Wed Dec 16 11:07:53 2015 -0800"
      },
      "committer": {
        "name": "John Reck",
        "email": "jreck@google.com",
        "time": "Wed Dec 16 11:07:53 2015 -0800"
      },
      "message": "resolve merge conflicts of 04ce46db64 to master.\n\nChange-Id: I935bb47718f0e7d5fb48945dd8de6e28dac136e5\n"
    },
    {
      "commit": "adfeec94560c6661c5e6600b10c05f34a40f6454",
      "tree": "ff36367c650761dcf27fb4991851acfd9d6a4939",
      "parents": [
        "20754c5a112e418c11cc88176283db2c4bf2efd6"
      ],
      "author": {
        "name": "Chris Craik",
        "email": "ccraik@google.com",
        "time": "Tue Dec 15 19:17:32 2015 -0800"
      },
      "committer": {
        "name": "Chris Craik",
        "email": "ccraik@google.com",
        "time": "Wed Dec 16 10:20:41 2015 -0800"
      },
      "message": "Allow RT animation of new renderer\n\nChange-Id: I60136dc080dc4fd853ac8c3d37fefa85da1181df\n"
    },
    {
      "commit": "0bcd0cb6b1193168fa2840855195347488daab9e",
      "tree": "6123412bc7a325a1021e37082b60c832a3bce700",
      "parents": [
        "cb299b858f4f073e2abd4ad45aa944dc0dfd0aa2"
      ],
      "author": {
        "name": "Thomas Buhot",
        "email": "thomas.buhot@intel.com",
        "time": "Fri Dec 04 12:18:03 2015 +0100"
      },
      "committer": {
        "name": "Zhiquan Liu",
        "email": "zhiquan.liu@intel.com",
        "time": "Thu Dec 10 14:51:58 2015 +0800"
      },
      "message": "libhwui: make setSurface asynchronous\n\nOn the critical path of the cold launch of applications\nthe main thread of the started application tells the RenderThread\nto create a surface. This process is synchronous and blocks\nthe main thread of the application until the creation\nof the EGLContext is complete.\nAs a consequence the launch time of the application is delayed\nby time spent allocating the EGL Context in the RenderThread.\n\nWith this optimization the launch time of any application\nis improved (for example settings by 20 to 40 ms).\n\nChange-Id: Ibf47aaa0abb8dedf7aa00693073db3785d9d6b08\nSigned-off-by: Thomas Buhot \u003cthomas.buhot@intel.com\u003e\nSigned-off-by: Zhiquan Liu \u003czhiquan.liu@intel.com\u003e\n"
    },
    {
      "commit": "52b783f76af58a948dad4d3b4d1b7ad7979347ce",
      "tree": "037e37a8502b6ffef9929f7de1dbdbddaee62dbf",
      "parents": [
        "1a3c1650ccc0b15668f44b2911f5daf93573c0e0"
      ],
      "author": {
        "name": "John Reck",
        "email": "jreck@google.com",
        "time": "Tue Nov 24 11:12:55 2015 -0800"
      },
      "committer": {
        "name": "John Reck",
        "email": "jreck@google.com",
        "time": "Tue Nov 24 11:12:55 2015 -0800"
      },
      "message": "INT_MAX nanoseconds is not very long\n\nBug: 25843358\n\nIf the time between last swap \u0026 current vsync grew larger\nthan 2 seconds it would overflow when placed into an int, causing\nframes to be dropped as negative numbers are definitely\nless than 2_ms.\n\nChange-Id: Icd2136989e5bbf5a0e21611b95a4d515b5ff9b14\n"
    },
    {
      "commit": "98787e6c9b2c10b1ab7820bdac168686025b924a",
      "tree": "4bc65070a5f3c460c3b2a6c358d990b300010457",
      "parents": [
        "9fded232a9548a304e0145011df8849fba0dcda7"
      ],
      "author": {
        "name": "Chris Craik",
        "email": "ccraik@google.com",
        "time": "Fri Nov 13 10:55:30 2015 -0800"
      },
      "committer": {
        "name": "Chris Craik",
        "email": "ccraik@google.com",
        "time": "Mon Nov 16 11:21:18 2015 -0800"
      },
      "message": "Finish shadow support in new reorderer/renderer\n\nNow passes alphas and light radius, and correctly transforms light\ncenter for layers.\n\nAlso fixes begin-frame/layer clears to be damage rect aware.\n\nChange-Id: I3b1415cd7bf1518c510145ebebdb745f494a2542\n"
    },
    {
      "commit": "9fded232a9548a304e0145011df8849fba0dcda7",
      "tree": "ffe48b03342817dd2681825498ecdf3799e01a0d",
      "parents": [
        "8b8be50c640a13b98d364b3f36962d9cf185d6d9"
      ],
      "author": {
        "name": "Chris Craik",
        "email": "ccraik@google.com",
        "time": "Wed Nov 11 16:42:34 2015 -0800"
      },
      "committer": {
        "name": "Chris Craik",
        "email": "ccraik@google.com",
        "time": "Thu Nov 12 13:05:35 2015 -0800"
      },
      "message": "Recycle OffscreenBuffers\n\nChange-Id: Ia2e219026f211a5308ecf8209c5f986bb888aadd\n"
    },
    {
      "commit": "290b23a1e11d532b39098bb58693ef97ba98a622",
      "tree": "45a80e36c460d98c7df89a8e6a8e871ed4ea22ee",
      "parents": [
        "374745095659d378164bfee4c7f5c9299c47a814"
      ],
      "author": {
        "name": "Colin Cross",
        "email": "ccross@android.com",
        "time": "Thu Nov 05 14:10:47 2015 -0800"
      },
      "committer": {
        "name": "Colin Cross",
        "email": "ccross@android.com",
        "time": "Thu Nov 05 22:15:18 2015 +0000"
      },
      "message": "Fix build\n\nstd::abs requires \u003ccstdlib\u003e\n\nChange-Id: I0722340d17aed88c4c8dabcb723d432b05cebedb"
    },
    {
      "commit": "2359d85e31c8f17b82869fb35ebca50b8dd428bd",
      "tree": "586f8b98d5e4b940fc3474e4e4b0c85529c050ec",
      "parents": [
        "02a5a6bb9ba05bdf7517de90ede49fb535ea06ca",
        "0b7e8245db728d127ada698be63d78b33fc6e4da"
      ],
      "author": {
        "name": "Chris Craik",
        "email": "ccraik@google.com",
        "time": "Mon Nov 02 21:16:37 2015 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Nov 02 21:16:37 2015 +0000"
      },
      "message": "Merge \"Initial HW layer support in new reorderer/renderer\""
    },
    {
      "commit": "0b7e8245db728d127ada698be63d78b33fc6e4da",
      "tree": "b7138962e159b3359cb08735098d34779a5ce78e",
      "parents": [
        "8462bad554c2c0f5639c00dd7f1f32e9567c8e04"
      ],
      "author": {
        "name": "Chris Craik",
        "email": "ccraik@google.com",
        "time": "Wed Oct 28 16:50:44 2015 -0700"
      },
      "committer": {
        "name": "Chris Craik",
        "email": "ccraik@google.com",
        "time": "Mon Nov 02 12:59:38 2015 -0800"
      },
      "message": "Initial HW layer support in new reorderer/renderer\n\nShares vast majority of clipped savelayer code, with only minor\ndifferences in lifecycle.\n\nDoesn\u0027t yet handle fill region, resize, or window transform.\n\nChange-Id: Iabdd71811590d2b937eb11e1b01ce556ade54a5a\n"
    },
    {
      "commit": "b97ba3c09d5baf7c85ac4ddbdeb99770a7d3cab3",
      "tree": "bb325154d874c4bb3b90ee7a2960ba53c9df725b",
      "parents": [
        "bac13378ca2490e98e814908984bc9184ed1d42b",
        "b6c2624c8d9ee71d1c8d0aaf8082f92bb84b1418"
      ],
      "author": {
        "name": "Rob Carr",
        "email": "racarr@google.com",
        "time": "Fri Oct 30 20:55:35 2015 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Oct 30 20:55:35 2015 +0000"
      },
      "message": "Merge \"Add window setDecorView API.\""
    },
    {
      "commit": "263e19bf46a40e3924ab9a7f374ecc420726fc9d",
      "tree": "dc3c94e21379c93676abf9f6b317941ee9180f64",
      "parents": [
        "02ed4a0e10522147425ea65704edd56f2aa6d061",
        "e2e53a7079733694bd52dbce665e9ceff21e9727"
      ],
      "author": {
        "name": "Chris Craik",
        "email": "ccraik@google.com",
        "time": "Thu Oct 29 19:49:22 2015 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Oct 29 19:49:22 2015 +0000"
      },
      "message": "Merge \"Simplify TreeInfo\""
    },
    {
      "commit": "b6c2624c8d9ee71d1c8d0aaf8082f92bb84b1418",
      "tree": "6557ee8a8c6bbda603d1a0876ca2551d870c5542",
      "parents": [
        "1e4313dfd06aba910785d7395ca72736b7b3731e"
      ],
      "author": {
        "name": "Robert Carr",
        "email": "racarr@google.com",
        "time": "Thu Oct 22 12:03:28 2015 -0700"
      },
      "committer": {
        "name": "Robert Carr",
        "email": "racarr@google.com",
        "time": "Thu Oct 29 12:31:47 2015 -0700"
      },
      "message": "Add window setDecorView API.\n\nAdd a Window API for setting a view which will be placed in\nthe decoration area (next to the window control buttons).\n\nChange-Id: Ie106cbea653ff95fdba987a2a43506d394600612\n"
    },
    {
      "commit": "e2e53a7079733694bd52dbce665e9ceff21e9727",
      "tree": "80dc4fae5d8c38c8bb4716593f90e25e34f379cc",
      "parents": [
        "37028137f25b298c00bf2d1e7e090b3b1ccbe633"
      ],
      "author": {
        "name": "Chris Craik",
        "email": "ccraik@google.com",
        "time": "Wed Oct 28 15:55:40 2015 -0700"
      },
      "committer": {
        "name": "Chris Craik",
        "email": "ccraik@google.com",
        "time": "Wed Oct 28 15:55:40 2015 -0700"
      },
      "message": "Simplify TreeInfo\n\nChange-Id: I8f05e9046236d607016b6c2bb77a333cfb47ba47\n"
    },
    {
      "commit": "97c92659fab67ca61d276f551e6f9d315428a6aa",
      "tree": "d668c9d351223d8475a4658dbef81b34d8e164ec",
      "parents": [
        "3398abb25b6a8614f80f79efcf428a07185fe50f",
        "e486d932ca5a10446a3c98d6d065213913277268"
      ],
      "author": {
        "name": "John Reck",
        "email": "jreck@google.com",
        "time": "Wed Oct 28 19:24:45 2015 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Oct 28 19:24:45 2015 +0000"
      },
      "message": "Merge \"Tune scheduling a bit, avoid a binder ipc\""
    },
    {
      "commit": "e486d932ca5a10446a3c98d6d065213913277268",
      "tree": "b424ac4bf217a048a784f00377828a651ce1380a",
      "parents": [
        "5918519f972b4eedfc0e402b96cf8a288446deed"
      ],
      "author": {
        "name": "John Reck",
        "email": "jreck@google.com",
        "time": "Wed Oct 28 09:21:19 2015 -0700"
      },
      "committer": {
        "name": "John Reck",
        "email": "jreck@google.com",
        "time": "Wed Oct 28 12:24:13 2015 -0700"
      },
      "message": "Tune scheduling a bit, avoid a binder ipc\n\nDon\u0027t query running behind if it\u0027s not possible to be behind such\nas having received a vsync since the last call to swap buffers.\n\nThis also avoids an accidental-starvation issue where if surface\nflinger was a bit sluggish to dequeue then renderthread would drop\nthinking the queue was full.\n\nAlso be a bit smarter about tracking if we\u0027ve already drawn for this\nvsync target to avoid producing two frames for the same vsync\n\nChange-Id: Ib266500a693c27000b2e8ea578f111229d75147a\n"
    },
    {
      "commit": "3398abb25b6a8614f80f79efcf428a07185fe50f",
      "tree": "a5562847fd183fad7a51fdebb5aa36e4cfe5907b",
      "parents": [
        "9f091287b1a06986871faebffb0d72771ec99df6",
        "77c40109cf25d29f85ee6c13aeb96e22e55f33ab"
      ],
      "author": {
        "name": "John Reck",
        "email": "jreck@google.com",
        "time": "Wed Oct 28 19:21:17 2015 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Oct 28 19:21:17 2015 +0000"
      },
      "message": "Merge \"Cleanups\""
    },
    {
      "commit": "5854b34881b1a747ac80b5077869ef270a92b1f4",
      "tree": "9b25f2320950929e03a772bc985ea40df50d5e4b",
      "parents": [
        "ac7062e7f1716f137f14299c28e3c638cf4bdb9f"
      ],
      "author": {
        "name": "Chris Craik",
        "email": "ccraik@google.com",
        "time": "Mon Oct 26 15:49:56 2015 -0700"
      },
      "committer": {
        "name": "Chris Craik",
        "email": "ccraik@google.com",
        "time": "Tue Oct 27 16:44:50 2015 -0700"
      },
      "message": "Rework receiver/dispatcher design slightly, and replace Layer usage.\n\nSwitched from \u0027renderer/info\u0027 to \u0027dispatcher/renderer\u0027 to make their\ninteraction more natural. The new BakedOpRenderer is more similar in\nresponsibilities to the OpenGLRenderer, as it manages layer and frame\nlifecycles, and performs the actual rendering.\n\nHowever, it\u0027s still simpler because the BakedOpDispatcher handles\nmapping Canvas drawing ops to Glops, and the OpReorderer handles almost\nall canvas state operations.\n\nAlso switch BakedOpRenderer to use the new OffscreenBuffer, which\nserves as a lightweight Layer replacement, with a much simpler\nlifecycle.\n\nChange-Id: Ie0e2e248503400041d49729d813d485d28c76eb3\n"
    },
    {
      "commit": "77c40109cf25d29f85ee6c13aeb96e22e55f33ab",
      "tree": "479c941dfbb94c36fb73dc86e03da8412636fcec",
      "parents": [
        "5918519f972b4eedfc0e402b96cf8a288446deed"
      ],
      "author": {
        "name": "John Reck",
        "email": "jreck@google.com",
        "time": "Mon Oct 26 15:49:47 2015 -0700"
      },
      "committer": {
        "name": "John Reck",
        "email": "jreck@google.com",
        "time": "Tue Oct 27 07:54:17 2015 -0700"
      },
      "message": "Cleanups\n\nChange-Id: I10001711afb2530c5dc19aebf2d055ae41f58c6a\n"
    },
    {
      "commit": "818c9fbf1d76d5df19253ba4eb964efa939ec9ec",
      "tree": "6fa7a565ae56d5c92a5905b19c9a20f675b0526b",
      "parents": [
        "914e362d1884a79588e848f6f87772e4e3fc73b2"
      ],
      "author": {
        "name": "Chris Craik",
        "email": "ccraik@google.com",
        "time": "Fri Oct 23 14:33:42 2015 -0700"
      },
      "committer": {
        "name": "Chris Craik",
        "email": "ccraik@google.com",
        "time": "Mon Oct 26 15:51:48 2015 -0700"
      },
      "message": "Initial version of clipped saveLayer in new pipeline\n\nAdditionally disables usage of FBO cache, so FBO destruction safely\ninteracts with renderstate caching.\n\nChange-Id: I25c277cb7afec2ca33bf226445d6c8867a15a915\n"
    },
    {
      "commit": "6fe991e5e76f9af9dab960100d5768d96d5f4daa",
      "tree": "20616f2c371e188492b48a9c759530b06047550a",
      "parents": [
        "387d1b25b58bb2bb80d983b7db7ddac22731a552"
      ],
      "author": {
        "name": "Chris Craik",
        "email": "ccraik@google.com",
        "time": "Tue Oct 20 09:39:42 2015 -0700"
      },
      "committer": {
        "name": "Chris Craik",
        "email": "ccraik@google.com",
        "time": "Wed Oct 21 18:19:37 2015 -0700"
      },
      "message": "Work to support saveLayer in new pipeline\n\nclipped SaveLayers will now be pulled to the beginning of the frame,\nprior to drawing FBO 0. This will remove the need for switching FBOs\nmid-frame.\n\nChange-Id: I4d8dc1f845e84e9b49d5acdf4f4703eef4a9cb06\n"
    },
    {
      "commit": "ddf2215d9807b641dbcb304779ef6b530f876ac7",
      "tree": "ca20de2796daee1718925929c00d2ada55415c23",
      "parents": [
        "80435a7fcd98e5ad1a0537a9646be2fca575f3bb"
      ],
      "author": {
        "name": "Chris Craik",
        "email": "ccraik@google.com",
        "time": "Wed Oct 14 17:42:47 2015 -0700"
      },
      "committer": {
        "name": "Chris Craik",
        "email": "ccraik@google.com",
        "time": "Thu Oct 15 09:38:15 2015 -0700"
      },
      "message": "Add partial damage support to new draw path\n\nChange-Id: I612578fd181240de71297c9a28bc9a8f350764a7\n"
    },
    {
      "commit": "b565df13a9e5c7b1d7d93bdfa4a793752d66d3cc",
      "tree": "4a2dadd3b2c95663c23a626eff75962a0b8d4ce2",
      "parents": [
        "b08949151f8dfc7a72ea6696f2e6067c2b1643bb"
      ],
      "author": {
        "name": "Chris Craik",
        "email": "ccraik@google.com",
        "time": "Mon Oct 05 13:00:52 2015 -0700"
      },
      "committer": {
        "name": "Chris Craik",
        "email": "ccraik@google.com",
        "time": "Wed Oct 14 16:10:40 2015 -0700"
      },
      "message": "Initial commit of new Canvas operation recording / replay\n\nDone:\n- drawRect, drawBitmap, drawColor, drawPaint, drawRenderNode, drawRegion\n- Recording with new DisplayList format\n- batching \u0026 reordering\n- Stateless op reorder\n- Stateless op rendering\n- Frame lifecycle (clear, geterror, cleanup)\n\nNot done:\n- SaveLayer (clipped and unclipped)\n- HW layers\n- Complex clipping\n- Ripple projection\n- Z reordering\n- Z shadows\n- onDefer prefetching (text + task kickoff)\n- round rect clip\n- linear allocation for std collections\n- AssetAtlas support\n\nChange-Id: Iaf98c1a3aeab5fa47cc8f9c6d964420abc0e7691\n"
    },
    {
      "commit": "ac02eb9035a13a3d09c2def9ed63d04225eb2509",
      "tree": "f6305a3b32606d77e81eb1ff5766c22daa5506d7",
      "parents": [
        "117e6daa420763e956c2125da09707b60cbaa33e"
      ],
      "author": {
        "name": "Chris Craik",
        "email": "ccraik@google.com",
        "time": "Mon Oct 05 12:23:46 2015 -0700"
      },
      "committer": {
        "name": "Chris Craik",
        "email": "ccraik@google.com",
        "time": "Mon Oct 05 14:16:26 2015 -0700"
      },
      "message": "Remove confusing behavior of Rect::intersect() and rename\n\nbug:24670525\n\nRemoves silly \u0027do nothing if rects do not intersect\u0027 behavior, and\nchanges the name to clarify the difference (contrasting against\nSkRect::intersect())\n\nbug:24670525\n\nChange-Id: Id2ca1cfea1a9d720d4dc70b251f426d9916f8b53\n"
    },
    {
      "commit": "b816087962aba0019b022303330f03b897b580ed",
      "tree": "2ecea9a96a864346296922eb212d2feb5ccdca9c",
      "parents": [
        "3da3ca609ec48e1ff23bcfda0b208632fab88d80"
      ],
      "author": {
        "name": "Skuhne",
        "email": "skuhne@google.com",
        "time": "Tue Sep 22 09:51:39 2015 -0700"
      },
      "committer": {
        "name": "Skuhne",
        "email": "skuhne@google.com",
        "time": "Fri Oct 02 07:11:45 2015 -0700"
      },
      "message": "Rendering the window frame with a second thread\n\nUsing a multi threaded render node to render the window frame\nasynchronously from the application relayout.\n\nBug: 22527834\nBug: 24400680\nBug: 24459827\nBug: 24409773\nBug: 24537510\nChange-Id: I1010fc6a8b6e38424178140afa3ca124433ab7e4\n"
    },
    {
      "commit": "ea7a7fb75acb7305eb774ca7bc7e96103bd49323",
      "tree": "a11a7df7a54d24e1d25dcea6914ea0b8fbc69b07",
      "parents": [
        "0f3a4f94243167a652f605530d4a69534db59cf7"
      ],
      "author": {
        "name": "Skuhne",
        "email": "skuhne@google.com",
        "time": "Fri Aug 28 07:10:31 2015 -0700"
      },
      "committer": {
        "name": "Skuhne",
        "email": "skuhne@google.com",
        "time": "Mon Sep 21 07:18:00 2015 -0700"
      },
      "message": "MultiThreaded rendering of different renderNodes\n\nThis is adding the renderer side infrastructure to allow\nrendering multiple render nodes with different threads.\nThis is a pre-step for decoupling a non client decor\nresize reder from a content resize render.\n\nMultiple render nodes can be added to be drawn, and to\nprevent overdrawing, a content bounds area can be set\n\nBug: 22527834\n\nChange-Id: Ie7271e20895bf38957e5a84aeefc883e282039ad\n"
    },
    {
      "commit": "64e445bf74bee2098781d608cedfd723d8cc88d3",
      "tree": "2a2d3727a8feff2470bc648f02a72c3cd7ae665a",
      "parents": [
        "9557106c6f84640382a068997b1fc125099d6019"
      ],
      "author": {
        "name": "Chris Craik",
        "email": "ccraik@google.com",
        "time": "Wed Sep 02 14:23:49 2015 -0700"
      },
      "committer": {
        "name": "Chris Craik",
        "email": "ccraik@google.com",
        "time": "Wed Sep 02 15:15:56 2015 -0700"
      },
      "message": "CanvasState frame init refactor\n\nbug:23760482\n\nChange-Id: Idc0802b4b8a6a3cebd20797350f4eb01bcc3fe77\n"
    },
    {
      "commit": "e248bd1b2c3fcf8088429507e73b31f45ee2544b",
      "tree": "11b5ca9ab43877438cc05101ca0c8c2c95bfb6bd",
      "parents": [
        "c0877bb0ff769f09e9e60f600bdd294f1aac8331"
      ],
      "author": {
        "name": "John Reck",
        "email": "jreck@google.com",
        "time": "Wed Aug 05 13:53:53 2015 -0700"
      },
      "committer": {
        "name": "John Reck",
        "email": "jreck@google.com",
        "time": "Wed Aug 26 16:29:15 2015 -0700"
      },
      "message": "Serializing display lists\n\nThis is a WIP prototype\n\nChange-Id: Id4bfcf2b7bf905221c3734b7b6887c9b2efd37e6\n"
    },
    {
      "commit": "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"
    }
  ],
  "next": "b36016c65f1d1b5846dba0349aab491dbd3a746a"
}
