)]}'
{
  "log": [
    {
      "commit": "57998017ff137f7d4ec33df21b6596141f8c4547",
      "tree": "ed9786692ee5727eacea084f12ea417b1d0f7915",
      "parents": [
        "8514766a0a388c3598eaa64709edc634f8edccb1"
      ],
      "author": {
        "name": "John Reck",
        "email": "jreck@google.com",
        "time": "Thu Jan 29 10:17:57 2015 -0800"
      },
      "committer": {
        "name": "John Reck",
        "email": "jreck@google.com",
        "time": "Thu Jan 29 10:17:57 2015 -0800"
      },
      "message": "Allow ~Layer() to happen after onGLContextDestroyed\n\nBug: 19146354\nChange-Id: I9e885936168bd541bfbed4064ad67ab524f58e32\n"
    },
    {
      "commit": "42eea270a0a2bc54f454312817c41ac357e3a884",
      "tree": "36a4b3f3f658c40be17f3ce7c4bc3b6836bc817a",
      "parents": [
        "8d47bc97e642cd0d0caf31d09efe05d8dc233f27"
      ],
      "author": {
        "name": "Adam Lesinski",
        "email": "adamlesinski@google.com",
        "time": "Thu Jan 15 17:01:39 2015 -0800"
      },
      "committer": {
        "name": "Adam Lesinski",
        "email": "adamlesinski@google.com",
        "time": "Fri Jan 16 14:11:30 2015 -0800"
      },
      "message": "Process base APK\n\nThe base APK may have resources with configurations that compete\nagainst some splits. The base APK must be involved in the selection\nof splits.\n\nBug:18982001\nChange-Id: Ieb29b5a36cf2c68e7831484d98a9fd275acd97e8\n"
    },
    {
      "commit": "53af1cd3930a398b2008c4be9c10e5182392ffaf",
      "tree": "4eb04dafd9140f91dcb00e9d56dea09a1d371759",
      "parents": [
        "aa229902ef73f8777768414092eaf99eeff05f87",
        "a22c9b2cd171a656fa684d57a915dbe636da5f6a"
      ],
      "author": {
        "name": "John Reck",
        "email": "jreck@google.com",
        "time": "Thu Jan 15 01:08:56 2015 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Jan 15 01:08:57 2015 +0000"
      },
      "message": "Merge \"Vsyncs are hard\" into lmp-mr1-dev"
    },
    {
      "commit": "43a4a8c777fbb8f71540ac7fbe82674489ef557b",
      "tree": "ab4f4b3a27124b244aa8b3cbb013c674da07731d",
      "parents": [
        "a2fa3d219bc148c196b0eb3cf7b3b1bd453e830b"
      ],
      "author": {
        "name": "Christopher Tate",
        "email": "ctate@google.com",
        "time": "Thu Jan 08 18:42:33 2015 -0800"
      },
      "committer": {
        "name": "Christopher Tate",
        "email": "ctate@google.com",
        "time": "Wed Jan 14 16:36:30 2015 -0800"
      },
      "message": "Fix redundant file backups\n\nWe\u0027d observed a bug in which an unchanged file was nevertheless\nbeing redundantly transmitted for backup on every backup pass.\nThe underlying issue turns out to have been the FileBackupHelper\nbase implementation\u0027s logic for diffing the prior-state file\nset against the current state, in the case when there had been\ndeletions of prior files.  In addition, there was also a\nparallel bug in which file checksums were not calculated\nproperly in some cases, leading to at least one additional\nredundant backup of the file in question.\n\nBug 18694053\n\nChange-Id: Ie0dec06486b5fef4624561737019569c85d6b2a0\n"
    },
    {
      "commit": "a22c9b2cd171a656fa684d57a915dbe636da5f6a",
      "tree": "d7b4e944191fc2dc62d12f1e2bb4b73642267fc4",
      "parents": [
        "820088587e732fe04b705248a06f275bf264be33"
      ],
      "author": {
        "name": "John Reck",
        "email": "jreck@google.com",
        "time": "Wed Jan 14 10:40:15 2015 -0800"
      },
      "committer": {
        "name": "John Reck",
        "email": "jreck@google.com",
        "time": "Wed Jan 14 10:40:15 2015 -0800"
      },
      "message": "Vsyncs are hard\n\nBug: 18866485\nChange-Id: I7d304df0f20a3296956cb6887a72adba9243f117\n"
    },
    {
      "commit": "a733f89c05567c97359169832f41389b939baaad",
      "tree": "043dc0c717173faf4154b357a544ff328d9c37ff",
      "parents": [
        "28fbe04052b95ada3c32d805f26d6d9ad5548d6b"
      ],
      "author": {
        "name": "John Reck",
        "email": "jreck@google.com",
        "time": "Fri Dec 19 11:37:21 2014 -0800"
      },
      "committer": {
        "name": "John Reck",
        "email": "jreck@google.com",
        "time": "Fri Dec 19 11:37:21 2014 -0800"
      },
      "message": "Tweak RT-animator scheduling\n\nBug: 18226391\n\nThe issue occurs as a result of a dispatchFrame itself\ntaking longer than 12ms, the alloted budget. The result\nis that a vsync request (which occured at the end) would\nmiss the vsync that occured 1ms prior to the end of the frame.\nAs a result it would end up waiting for the following vsync,\nessentially dropping to 30fps even though 60 could have been\nsustained.\n\nFix this with a few tweaks.\nFirst, adjust the UI thread\u0027s delay bias from (now + 4ms) to\n(vsync + 4ms), this prevents RT animators from slowly drifting\nif the vsync occurs mid-task.\nSecond, request a vsync preemptively prior to running callbacks.\nThis way if any callbacks needs the next vsync and it takes\n\"too long\", we will catch that vsync.\nFinally, fix an issue where the display event queue was always\ndrained \u0026 rejected at the end of a task loop. Instead, drain\nand reject all stale vsyncs. This still prevents the issue of\nboth UI thread \u0026 RT thread trying to drive 2 frames in a single\npulse, but also allows RT to notice that it missed a vsync\npulse it needed and that it should speed-up a bit in response\n\nChange-Id: I9d6be037737e9283297898cac2e3563453e797cd\n"
    },
    {
      "commit": "c748832f759cd7a390a32890530e854b9711eb7c",
      "tree": "b06fbef4fccf329486365496f20899a79666b64c",
      "parents": [
        "fadfe708e6f0c74890fe2b3292a91570f3049215",
        "ef8d6f272ae451aaedb0f02249c0f9f0576efdf3"
      ],
      "author": {
        "name": "Chris Craik",
        "email": "ccraik@google.com",
        "time": "Wed Dec 17 22:07:02 2014 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Dec 17 22:07:04 2014 +0000"
      },
      "message": "Merge \"Revert overdraw avoidance visualization change\" into lmp-mr1-dev"
    },
    {
      "commit": "ef8d6f272ae451aaedb0f02249c0f9f0576efdf3",
      "tree": "693f1a191c5a8704a55fc13360eab56e9db01fb3",
      "parents": [
        "596d4e7230ae1858aaafbae7987e46d65181f1bd"
      ],
      "author": {
        "name": "Chris Craik",
        "email": "ccraik@google.com",
        "time": "Wed Dec 17 11:10:28 2014 -0800"
      },
      "committer": {
        "name": "Chris Craik",
        "email": "ccraik@google.com",
        "time": "Wed Dec 17 11:21:02 2014 -0800"
      },
      "message": "Revert overdraw avoidance visualization change\n\nbug:18787324\n\nPartial revert of 23d307c8d88f4a3849163b9e5b7cd11d0d4f372c.\n\nChange-Id: Ic8b91b046707fc5b8fa53c35ea7b37bb19c3c943\n"
    },
    {
      "commit": "b9a4d15d0942a55c7dc32a471ee40890986e3fab",
      "tree": "b1a7f92b399c09f02a37b9a45d073f4ab89ba9e7",
      "parents": [
        "63c7b24645d94c92dc6dc32d57c23b5167950c8b",
        "9a7fe1a034bf0a9dea7c0676211bb780d3ab30be"
      ],
      "author": {
        "name": "John Reck",
        "email": "jreck@google.com",
        "time": "Thu Dec 11 22:44:18 2014 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Dec 11 22:44:19 2014 +0000"
      },
      "message": "Merge \"Force-flush state sync on texid change\" into lmp-mr1-dev"
    },
    {
      "commit": "63c7b24645d94c92dc6dc32d57c23b5167950c8b",
      "tree": "b4ddc30659c38aaa05c6e6f08327362a90aac6ce",
      "parents": [
        "72b047c6c37ddf860be15b159b9a143be36d7425",
        "c2379070a46f208bce490b938e0673ba00373e2e"
      ],
      "author": {
        "name": "Chris Craik",
        "email": "ccraik@google.com",
        "time": "Thu Dec 11 22:43:16 2014 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Dec 11 22:43:18 2014 +0000"
      },
      "message": "Merge \"Correct layer size formatting in trace\" into lmp-mr1-dev"
    },
    {
      "commit": "c2379070a46f208bce490b938e0673ba00373e2e",
      "tree": "03de6d4d7a829847d8b072de23ca0c37d963f472",
      "parents": [
        "596d4e7230ae1858aaafbae7987e46d65181f1bd"
      ],
      "author": {
        "name": "Chris Craik",
        "email": "ccraik@google.com",
        "time": "Thu Dec 11 14:29:51 2014 -0800"
      },
      "committer": {
        "name": "Chris Craik",
        "email": "ccraik@google.com",
        "time": "Thu Dec 11 14:29:51 2014 -0800"
      },
      "message": "Correct layer size formatting in trace\n\nbug:18722704\nChange-Id: Icef9aaa62633b2d86ad250f43d4c8fa5cc0b6842\n"
    },
    {
      "commit": "9a7fe1a034bf0a9dea7c0676211bb780d3ab30be",
      "tree": "65631f26270c93bb56c94c235ad0f18f30e39236",
      "parents": [
        "f8dc9d7b3d496593c6c6dddcd42cae13ac508876"
      ],
      "author": {
        "name": "John Reck",
        "email": "jreck@google.com",
        "time": "Thu Dec 11 14:27:39 2014 -0800"
      },
      "committer": {
        "name": "John Reck",
        "email": "jreck@google.com",
        "time": "Thu Dec 11 14:27:39 2014 -0800"
      },
      "message": "Force-flush state sync on texid change\n\nBug: 18718646\n\nCaused because the Texture object thought the GLES texture\nwas in a different state than it was as it persists across\nEGL/GL contexts. Fix this by force-flushing the default\nvalues when the texid has changed.\n\nChange-Id: I264bac9a2beb08df8e2ba8a85ad15f0dd1fce22a\n"
    },
    {
      "commit": "eb2dcc791e649e07ec8114e00752b54965c46e65",
      "tree": "778bf0fffa448d4a6333fc8571b2dd74717b2551",
      "parents": [
        "daec594370f0e47bf07d0c9c968e3c5dfedf0bb5",
        "ebd52610cfeff6e557fde284a7e1efc5e6438285"
      ],
      "author": {
        "name": "John Reck",
        "email": "jreck@google.com",
        "time": "Thu Dec 11 01:12:29 2014 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Dec 11 01:12:31 2014 +0000"
      },
      "message": "Merge \"Don\u0027t preload textures for AssetAtlas\" into lmp-mr1-dev"
    },
    {
      "commit": "ebd52610cfeff6e557fde284a7e1efc5e6438285",
      "tree": "6e371646828e9074579fe91f869954a67f48e93a",
      "parents": [
        "fa3f43145ac1af62ed063d3cd7ba1c30a81bb3fd"
      ],
      "author": {
        "name": "John Reck",
        "email": "jreck@google.com",
        "time": "Wed Dec 10 16:47:36 2014 -0800"
      },
      "committer": {
        "name": "John Reck",
        "email": "jreck@google.com",
        "time": "Wed Dec 10 17:07:41 2014 -0800"
      },
      "message": "Don\u0027t preload textures for AssetAtlas\n\nBug: 18317479\n\nRenderNode::prepareSubTree calls prefetchAndMarkInUse\non every bitmapResoruce in the DisplayList. However,\nthis resulted in textures being uploaded for bitmaps\nthat would be drawn from the AssetAtlas instead.\n\nTo fix this we teach TextureCache about the AssetAtlas\nso that calls to TextureCache return the Texture from\nAssetAtlas if it exists. Thus usage of AssetAtlas\nis now purely to allow for further optimizations via\ndraw merging instead of a requirement to get\nany benefit at all.\n\nChange-Id: I65282fa05bac46f4e93822b3467ffa0261ccf200\n"
    },
    {
      "commit": "c78018774503308e8c8266f6769c9e4c895f3a97",
      "tree": "c8d2e64fbea4fc28907ef345ede9588950c959c2",
      "parents": [
        "4ef9edeb67a1aa25b4ec57b9951b8dc4a06c3691",
        "5dce5e67dbdcd14882edf3f64fba671c77577ee4"
      ],
      "author": {
        "name": "Adam Lesinski",
        "email": "adamlesinski@google.com",
        "time": "Wed Dec 10 21:12:02 2014 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Dec 10 21:12:04 2014 +0000"
      },
      "message": "Merge \"Fix issue where non-resource attributes would cause obtainStyleAttributes to fail\" into lmp-mr1-dev"
    },
    {
      "commit": "4ac36f80beb958c77a92a3e1a235f6ed9daaa510",
      "tree": "b555302a34a4a81cb32699aa3b987536c6ab2982",
      "parents": [
        "596d4e7230ae1858aaafbae7987e46d65181f1bd"
      ],
      "author": {
        "name": "Chris Craik",
        "email": "ccraik@google.com",
        "time": "Tue Dec 09 16:54:03 2014 -0800"
      },
      "committer": {
        "name": "Chris Craik",
        "email": "ccraik@google.com",
        "time": "Wed Dec 10 12:27:08 2014 -0800"
      },
      "message": "Fix frame-allocated path lifecycles\n\nbug:18667472\n\nPreviously, we were allocating per-frame temporary paths within the\nPlaybackStateStruct, but these are not safe as layers allocate these\ntransiently. Instead, move these to the OpenGLRenderer, which has\nbetter define lifecycle.\n\nAdditionally, don\u0027t store SkPath objects directly in vector, since\nthey are then subject to relocation.\n\nChange-Id: I8187ef542fcd5b030502bb75eb123ee26c0daa96\n"
    },
    {
      "commit": "5dce5e67dbdcd14882edf3f64fba671c77577ee4",
      "tree": "685d15b6cbb42c2d3bd50825f0b4198c3bd1ee7d",
      "parents": [
        "4df65bf1eb454814954421403da9f8b5fcb82180"
      ],
      "author": {
        "name": "Adam Lesinski",
        "email": "adamlesinski@google.com",
        "time": "Wed Dec 10 10:47:53 2014 -0800"
      },
      "committer": {
        "name": "Adam Lesinski",
        "email": "adamlesinski@google.com",
        "time": "Wed Dec 10 10:51:48 2014 -0800"
      },
      "message": "Fix issue where non-resource attributes would cause obtainStyleAttributes to fail\n\nA sentinal value of 0x00000000 was used to mark the first time an AttributeFinder\nwas used. If the resource ID of an attribute was also 0x00000000 (which occurs with\nnon-resource attributes, like \u0027style\u0027), then it would be mistaken as the sentinel\nstart value.\n\nBug:18421787\nChange-Id: I4be353e0f8c940cb6f262d155129f048dcc444ae\n"
    },
    {
      "commit": "4f1942d999c60fd91cb826651b6d978d47a74321",
      "tree": "4ba55bba29606543e959f5cf648f341805080e9a",
      "parents": [
        "3ef5033cdacbc44702d0b6ba687e81383348e2fd",
        "dad7d84c04c5954b63ea8bb58c52b2291f44b4df"
      ],
      "author": {
        "name": "John Reck",
        "email": "jreck@google.com",
        "time": "Tue Dec 09 23:12:41 2014 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Dec 09 23:12:42 2014 +0000"
      },
      "message": "Merge \"Teach AssetAtlas about more drawables\" into lmp-mr1-dev"
    },
    {
      "commit": "dad7d84c04c5954b63ea8bb58c52b2291f44b4df",
      "tree": "c46db9d14d4bef9ea6b16bf5d86eefd9048d0235",
      "parents": [
        "6ef76c60df9e68950721f92a14c77a3ecd13607c"
      ],
      "author": {
        "name": "John Reck",
        "email": "jreck@google.com",
        "time": "Tue Dec 09 12:33:26 2014 -0800"
      },
      "committer": {
        "name": "John Reck",
        "email": "jreck@google.com",
        "time": "Tue Dec 09 14:18:33 2014 -0800"
      },
      "message": "Teach AssetAtlas about more drawables\n\nBug: 18317479\n\nChange-Id: I16868ee204d24af72af9a2efc987f7e9eb1d266b\n"
    },
    {
      "commit": "ee648e517f09cccf59010a7423240a38aaeb2c04",
      "tree": "76571a17e882b02ba9c4f26850c373849a8b3a07",
      "parents": [
        "cdcabe4cd6510e1009c01f5266da74b0ae1f1b32"
      ],
      "author": {
        "name": "Derek Sollenberger",
        "email": "djsollen@google.com",
        "time": "Tue Dec 09 10:54:16 2014 -0500"
      },
      "committer": {
        "name": "Derek Sollenberger",
        "email": "djsollen@google.com",
        "time": "Tue Dec 09 18:36:42 2014 +0000"
      },
      "message": "Remove unnecessary/erroneous reference counting\n\nThe SkBitmap* used by HWUI holds a reference to the PixelRef (which\nin turn holds the colorTable) so keeping an additional ref is not\nonly unnecessary, but also potentially problematic.\n\nIf a bitmap changes its pixelRef after it has been added to a displayList,\nthen we end up with unbalanced ref/unref calls that cause the newly added\nPixelRef to be unref\u0027d and prematurely deleted, while the original PixelRef\nis leaked.\n\nbug: 18659976\nChange-Id: I34a06152e7bb2d733249a207dafd36b9b5dc0712"
    },
    {
      "commit": "720beef28dacc924d77576f63fced84e6a820dc6",
      "tree": "11cdfd10ab302973dd88a6928a8637d461a080fd",
      "parents": [
        "391232da084d715b9f20539a98b4a49cc56bf949",
        "9b624c186cb6059dfb3ec24bfb6386a0fc17b88c"
      ],
      "author": {
        "name": "Adam Lesinski",
        "email": "adamlesinski@google.com",
        "time": "Thu Dec 04 18:24:39 2014 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Dec 04 18:24:41 2014 +0000"
      },
      "message": "Merge \"AAPT: Move private attrs to new type for framework\" into lmp-mr1-dev"
    },
    {
      "commit": "9b624c186cb6059dfb3ec24bfb6386a0fc17b88c",
      "tree": "e57516e076eddb75d4c657704522f43067153c2a",
      "parents": [
        "92ad4dd017a13364b4001bdb04911202932f81c2"
      ],
      "author": {
        "name": "Adam Lesinski",
        "email": "adamlesinski@google.com",
        "time": "Wed Nov 19 17:49:26 2014 -0800"
      },
      "committer": {
        "name": "Adam Lesinski",
        "email": "adamlesinski@google.com",
        "time": "Wed Dec 03 15:59:20 2014 -0800"
      },
      "message": "AAPT: Move private attrs to new type for framework\n\nPrivate attributes are typically placed after public\nattributes in the resource table. Each time a new version\nof the Android framework is released, new public attributes\ntake the place of the private attributes, and the private\nattributes are shifted after the new public ones.\n\nThis means that any apps built against the newer SDK\nmay inadvertently be using private attributes on older\ndevices.\n\nThis change moves all private attributes to a completely\ndifferent type ID, so there will never be collisions across\nversions.\n\nThese private attributes are automatically moved to a synthesized\ntype only for the system resources.\n\nBug:18263655\n\nChange-Id: I7a850512953fadcc9f3524d509cea30249782db8\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": "ef124887c616d03cf0a689d2b7d5b1894405d12e",
      "tree": "eda6c9f10b7d7391b3e4e73075de480067373675",
      "parents": [
        "93b429247673bb8e019fe9d39b46700fc86c3313",
        "faa79ff9d964de940660d2226d5b06ded9294597"
      ],
      "author": {
        "name": "Chris Craik",
        "email": "ccraik@google.com",
        "time": "Tue Dec 02 01:27:24 2014 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Dec 02 01:27:26 2014 +0000"
      },
      "message": "Merge \"Clip outline to View clip bounds for shadow computation\" into lmp-mr1-dev"
    },
    {
      "commit": "faa79ff9d964de940660d2226d5b06ded9294597",
      "tree": "f0cffdaa4de22117f6a47268a17d52f79e1e0bad",
      "parents": [
        "293f0f380b514658f63474b714053fda0e92569f"
      ],
      "author": {
        "name": "Chris Craik",
        "email": "ccraik@google.com",
        "time": "Mon Dec 01 13:44:21 2014 -0800"
      },
      "committer": {
        "name": "Chris Craik",
        "email": "ccraik@google.com",
        "time": "Mon Dec 01 15:47:10 2014 -0800"
      },
      "message": "Clip outline to View clip bounds for shadow computation\n\nbug:18509823\n\nThis allows animations of View clipBounds (and other callers of\nsetClipBounds) to affect shadows, instead of leaving them floating.\n\nChange-Id: I249fa4b371a170cb0c54001f5b0e0097e109b8b8\n"
    },
    {
      "commit": "76de89820c51c4bc288b440a82374b9d6c806244",
      "tree": "bac5be532ce1ef3c84c973752529a5cccfbb374a",
      "parents": [
        "e6bd61d5bbea012b6b80c8bff915042f615630bc",
        "a12b2405df5c12363e24cebc684f5f3a5c9a5b7b"
      ],
      "author": {
        "name": "John Reck",
        "email": "jreck@google.com",
        "time": "Mon Dec 01 22:39:29 2014 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Dec 01 22:39:31 2014 +0000"
      },
      "message": "Merge \"Prevent calling GL functions with an invalid surface\" into lmp-mr1-dev"
    },
    {
      "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": "659de832b9796e14de44b6411980a65e33283a93",
      "tree": "9ab610781d982dbef689dacf38a7bfc47da18a81",
      "parents": [
        "f90404ca7b47234437b3f8f418fca313825de02c",
        "52b2cf9fdf95ccdcbb3f5e403eb9691c1ead1214"
      ],
      "author": {
        "name": "Chris Craik",
        "email": "ccraik@google.com",
        "time": "Mon Dec 01 20:08:27 2014 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Dec 01 20:08:29 2014 +0000"
      },
      "message": "Merge \"Enable stencil clipping within clearLayerRegions\" into lmp-mr1-dev"
    },
    {
      "commit": "ca84c8b1b0e364e01ce392f0dbca5132830a148d",
      "tree": "380eb2c186cf19a4b4c76f8de342c9b9c8182f90",
      "parents": [
        "a181da10ac5a7fc750d046e7789ba2244ee563b9",
        "9f81485a76dd02a07fd460a29db6adddd2ca2efe"
      ],
      "author": {
        "name": "Chris Craik",
        "email": "ccraik@google.com",
        "time": "Wed Nov 26 20:50:08 2014 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Nov 26 20:50:10 2014 +0000"
      },
      "message": "Merge \"Revert \"Force-use the pbuffer surface for destroy\"\" into lmp-mr1-dev"
    },
    {
      "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": "52b2cf9fdf95ccdcbb3f5e403eb9691c1ead1214",
      "tree": "48c2a12a644d15b458030915541a6adfac0539ff",
      "parents": [
        "6c912b7d056c67b41fd46f31de168795e97c2336"
      ],
      "author": {
        "name": "Dohyun Lee",
        "email": "dohyun.lee@lge.com",
        "time": "Mon Nov 24 21:08:15 2014 +0900"
      },
      "committer": {
        "name": "Chris Craik",
        "email": "ccraik@google.com",
        "time": "Wed Nov 26 10:51:32 2014 -0800"
      },
      "message": "Enable stencil clipping within clearLayerRegions\n\nbug:18538502\n\nCherry-pick of adc0d9da8648abfea1035fb1108eceea9fd9b5b1 from AOSP\n\nPreviously stencil clipping within clearLayerRegions is disabled by commit\n62d307c2402777d5e53b4590af5f32f8c55afd81. However, clearing whole layer\nregions causes black-colored triangle regions when a TextView has\nRotateAnimation because the draw within clearLayerRegions does not\naffected by the current stencil clip.\n\nChange-Id: Id32a0b16754b109905f833e063ebfa156bd953f2\nSigned-off-by: Dohyun Lee \u003cdohyun.lee@lge.com\u003e\n"
    },
    {
      "commit": "dec3f138c2f6a31879b0fe055a26d618e4874bb5",
      "tree": "56f1c4b6985c0c2e874242c4b564dc06548febf9",
      "parents": [
        "c1de25d8ebaecff697c1d5dfaa445e18ee07fa2d",
        "b945f2313aee6e49a082ba5caaf95334d2570d52"
      ],
      "author": {
        "name": "John Reck",
        "email": "jreck@google.com",
        "time": "Tue Nov 25 19:52:52 2014 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Nov 25 19:52:53 2014 +0000"
      },
      "message": "Merge \"Force-use the pbuffer surface for destroy\" into lmp-mr1-dev"
    },
    {
      "commit": "ee6606519d22805c1caf23a3c75cde9fc97b34eb",
      "tree": "923b1bdc3095cacfb77cc3d0b3ea0e29c24acc90",
      "parents": [
        "d0f6b4f6297373e569e383edc21aaa3f87591e0b",
        "b5a5435a77bae40b55053ccde93b1ed45d0e8329"
      ],
      "author": {
        "name": "Chris Craik",
        "email": "ccraik@google.com",
        "time": "Tue Nov 25 18:45:10 2014 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Nov 25 18:45:11 2014 +0000"
      },
      "message": "Merge \"Improve DisplayList state output\" into lmp-mr1-dev"
    },
    {
      "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": "71d08a07189c2b433080203895d9d5e936b16b9e",
      "tree": "88079370391f3e5b8e7610911b247a5db50abf97",
      "parents": [
        "9be80ee53ff5a3df51537f10b3d63f1f7f0ccd3e"
      ],
      "author": {
        "name": "John Reck",
        "email": "jreck@google.com",
        "time": "Mon Nov 24 15:21:28 2014 -0800"
      },
      "committer": {
        "name": "John Reck",
        "email": "jreck@google.com",
        "time": "Mon Nov 24 15:24:02 2014 -0800"
      },
      "message": "Switch TextureCache to SkPixelRef::fStableId\n\nBug: 18245805\nChange-Id: I08e6792dbeed86b13e569c7f2137de0e50dc2763\n"
    },
    {
      "commit": "b5a5435a77bae40b55053ccde93b1ed45d0e8329",
      "tree": "6589f39a057fd5af9147e05abcb2ecb37cc79c4a",
      "parents": [
        "6c912b7d056c67b41fd46f31de168795e97c2336"
      ],
      "author": {
        "name": "Chris Craik",
        "email": "ccraik@google.com",
        "time": "Fri Nov 21 14:54:35 2014 -0800"
      },
      "committer": {
        "name": "Chris Craik",
        "email": "ccraik@google.com",
        "time": "Fri Nov 21 16:23:00 2014 -0800"
      },
      "message": "Improve DisplayList state output\n\nbug:17991451\n\nLog hardware layers and shadow casting\n\nChange-Id: I2ae40f270d18f5b2a5af985513e0f5e8841216c2\n"
    },
    {
      "commit": "29dc496a42d49a37dcd99c0465f3cec18a47e6ff",
      "tree": "b358eca2f3baeef7dbfb446b498fb0e9364bd4c1",
      "parents": [
        "c0491a2e2d30eb4bc3e03fccee89d57e9bd575e4",
        "69e65019b0a6204f0ed9487d8fd7b3564eba6df8"
      ],
      "author": {
        "name": "Chris Craik",
        "email": "ccraik@google.com",
        "time": "Fri Nov 21 22:11:11 2014 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Nov 21 22:11:13 2014 +0000"
      },
      "message": "Merge \"Revert \"Add a way to override Xfermode DO NOT MERGE\"\" into lmp-mr1-dev"
    },
    {
      "commit": "69e65019b0a6204f0ed9487d8fd7b3564eba6df8",
      "tree": "9266aa679771904e019f1a0f08b250bf53d22ef5",
      "parents": [
        "4678dcc5524258908eadc5fe1e5e1874768967eb"
      ],
      "author": {
        "name": "Chris Craik",
        "email": "ccraik@google.com",
        "time": "Fri Nov 21 22:05:33 2014 +0000"
      },
      "committer": {
        "name": "Chris Craik",
        "email": "ccraik@google.com",
        "time": "Fri Nov 21 22:05:33 2014 +0000"
      },
      "message": "Revert \"Add a way to override Xfermode DO NOT MERGE\"\n\nFeature no longer needed.\n\nbug:18448377\n\nThis reverts commit 4678dcc5524258908eadc5fe1e5e1874768967eb.\n\nChange-Id: Ib0a19946e966a54857165555827b5fa7b34b6bea\n"
    },
    {
      "commit": "3b2ba44be3699a4e133d7a09cb4ed182405d7ff9",
      "tree": "fcded4723a443028815b3ee7e51fcd30a2fb53e7",
      "parents": [
        "bf1960ce9c353267490d65cc1b8beacc7dd85347",
        "70850ea258cbf91477efa57a1f1a23cc0044cc93"
      ],
      "author": {
        "name": "Chris Craik",
        "email": "ccraik@google.com",
        "time": "Thu Nov 20 17:36:24 2014 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Nov 20 17:36:26 2014 +0000"
      },
      "message": "Merge \"Improve logging around performance critical events\" into lmp-mr1-dev"
    },
    {
      "commit": "70850ea258cbf91477efa57a1f1a23cc0044cc93",
      "tree": "674621c2adc816afae2a1d09291fcd4af12b08e7",
      "parents": [
        "6c912b7d056c67b41fd46f31de168795e97c2336"
      ],
      "author": {
        "name": "Chris Craik",
        "email": "ccraik@google.com",
        "time": "Tue Nov 18 10:49:23 2014 -0800"
      },
      "committer": {
        "name": "Chris Craik",
        "email": "ccraik@google.com",
        "time": "Wed Nov 19 17:24:30 2014 -0800"
      },
      "message": "Improve logging around performance critical events\n\nbug:17702227\n\nAdd details useful to developers (such as layer size/View name), and\nswitch away from logging implementation names/details, since they\nare generally not relevant to developers.\n\nChange-Id: Iee605d182f241450f7e75a6d0c283d51fa1312f5\n"
    },
    {
      "commit": "f0f68117c432edd5aea406e773ec5bd372976eec",
      "tree": "d4fc5ee2b10a3e2d191c21346cd6aa3e535351f8",
      "parents": [
        "f984eb42724e66326549d7bf33a7ec1515a7ff3c",
        "fbc8df03e498baf47ff1a5e05e182f1bcd60c770"
      ],
      "author": {
        "name": "John Reck",
        "email": "jreck@google.com",
        "time": "Tue Nov 18 21:23:47 2014 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Nov 18 21:23:50 2014 +0000"
      },
      "message": "Merge \"Trace some interesting events\" into lmp-mr1-dev"
    },
    {
      "commit": "cd6f00c3a05717862a88b7409d11176ae53fd9a9",
      "tree": "0c5eee8aacc85e7722dcde4efee625da3782a58a",
      "parents": [
        "cd75f59f8cdeda95a50155ad0c9f4abd559037ec",
        "a7d1d73a477fe512d9ea69ee2883084630ec24c4"
      ],
      "author": {
        "name": "Adam Lesinski",
        "email": "adamlesinski@google.com",
        "time": "Mon Nov 17 19:39:15 2014 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Nov 17 19:39:17 2014 +0000"
      },
      "message": "Merge \"Implement back-tracking when searching for attributes in XML or resource bag\" into lmp-mr1-dev"
    },
    {
      "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": "41a8043b30a289bdba55a2469e598b3fe67c3bf1",
      "tree": "b12a667d1c85a19a4722c111fdc63adc30cd6d5a",
      "parents": [
        "10ece9c9d5c2134a6ea04bf593a2b76d167dbd7a",
        "4678dcc5524258908eadc5fe1e5e1874768967eb"
      ],
      "author": {
        "name": "Rob Tsuk",
        "email": "robtsuk@google.com",
        "time": "Wed Nov 12 21:41:58 2014 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Nov 12 21:42:00 2014 +0000"
      },
      "message": "Merge \"Add a way to override Xfermode DO NOT MERGE\" into lmp-mr1-dev"
    },
    {
      "commit": "4e50ee4f42e4fdf753b9f681a6236f4a46e25bb0",
      "tree": "1329db40727ed39d52619c6609733b77aab487fe",
      "parents": [
        "ffcb5e210ad82e0f2a33d6644bc6690552a1785f",
        "3932063bc75dc1e4efc2c428ca208d2e2290164d"
      ],
      "author": {
        "name": "ztenghui",
        "email": "ztenghui@google.com",
        "time": "Wed Nov 12 21:16:26 2014 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Nov 12 21:16:31 2014 +0000"
      },
      "message": "Merge \"Shadow: Fix the crash in spot shadow\" into lmp-mr1-dev"
    },
    {
      "commit": "3932063bc75dc1e4efc2c428ca208d2e2290164d",
      "tree": "19ed4e4667c55661c4e7bd301cc2f8deca2c5a51",
      "parents": [
        "f4d2c8eebd8113482b48e0b8f83deb4b2f1f9b22"
      ],
      "author": {
        "name": "ztenghui",
        "email": "ztenghui@google.com",
        "time": "Wed Nov 12 10:56:15 2014 -0800"
      },
      "committer": {
        "name": "ztenghui",
        "email": "ztenghui@google.com",
        "time": "Wed Nov 12 12:58:08 2014 -0800"
      },
      "message": "Shadow: Fix the crash in spot shadow\n\nFix the crash from searching for closest umbra vertex by initialized the\nstarting index correctly.\n\nFix another potential crash related to ray intersection by introducing epsilon.\n\nb/18315089\n\nChange-Id: I9ac9a781a885701a8388714d44f79a1d905e5d33\n"
    },
    {
      "commit": "4678dcc5524258908eadc5fe1e5e1874768967eb",
      "tree": "3f1ca293c68326003fef888ef70c57075c885fe9",
      "parents": [
        "82aaf332b62c5a276c4046d1339441d68d817371"
      ],
      "author": {
        "name": "Rob Tsuk",
        "email": "robtsuk@google.com",
        "time": "Tue Nov 11 15:44:13 2014 -0800"
      },
      "committer": {
        "name": "Rob Tsuk",
        "email": "robtsuk@google.com",
        "time": "Wed Nov 12 12:25:24 2014 -0800"
      },
      "message": "Add a way to override Xfermode DO NOT MERGE\n\nAdd a non-public API to Canvas/GLES20Canvas to provide a way to draw\nthe touch ripple animation without using a save layer.\n\nChange-Id: I6e2095adffe515194f669fb75bb67abf813bd518\n"
    },
    {
      "commit": "ca93f69c96df85bd6bc72a2a47dae6c0d5336ab2",
      "tree": "02e5860983fe3444a30e8ae660186551b4bc8d23",
      "parents": [
        "3eed90f39301089a1c16d6e2c0d027b187567cf0",
        "aa95a88327d9a3ac8a4a00b065b78ac0f28b3a19"
      ],
      "author": {
        "name": "John Reck",
        "email": "jreck@google.com",
        "time": "Fri Nov 07 22:40:57 2014 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Nov 07 22:41:03 2014 +0000"
      },
      "message": "Merge \"Have an actual fallback if the surface is lost\" into lmp-mr1-dev"
    },
    {
      "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": "4b19b7aaff1d1ff972ebe68101c2107454bbe5de",
      "tree": "d47f409d48eaba0e32ba805a2b0f9309197aec42",
      "parents": [
        "3546c9a5821fc8a754e05593d314c49cd6bca0d0",
        "12f5e3433226f0a2886a98b0b8da8d5e947c5cde"
      ],
      "author": {
        "name": "John Reck",
        "email": "jreck@google.com",
        "time": "Fri Nov 07 18:34:53 2014 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Nov 07 18:34:55 2014 +0000"
      },
      "message": "Merge \"Fix wrong-thread issue\" into lmp-mr1-dev"
    },
    {
      "commit": "12f5e3433226f0a2886a98b0b8da8d5e947c5cde",
      "tree": "6601bfe668148a66c82ea60afe2fe0fa813fc114",
      "parents": [
        "b9744c1c1f5e8cc936da7f1832665f77ad5bb18f"
      ],
      "author": {
        "name": "John Reck",
        "email": "jreck@google.com",
        "time": "Fri Nov 07 07:53:43 2014 -0800"
      },
      "committer": {
        "name": "John Reck",
        "email": "jreck@google.com",
        "time": "Fri Nov 07 10:31:53 2014 -0800"
      },
      "message": "Fix wrong-thread issue\n\nBug: 18259560\n\nChange-Id: Ic63a86efba9c86f21defac0695a73db8b09ae284\n"
    },
    {
      "commit": "7ae6fc81efd05a7561ee2de853184d2a3788b88d",
      "tree": "a1b4c0d073783c0eb279a8d66cfb60edc23df916",
      "parents": [
        "50ef3d93adf2614d8394664626b706ab0d7f7de7",
        "d2dcd6fded3a036f334a88bf9593398833f2919a"
      ],
      "author": {
        "name": "ztenghui",
        "email": "ztenghui@google.com",
        "time": "Thu Nov 06 23:59:15 2014 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Nov 06 23:59:17 2014 +0000"
      },
      "message": "Merge \"A better looking and faster spot shadow.\" into lmp-mr1-dev"
    },
    {
      "commit": "d2dcd6fded3a036f334a88bf9593398833f2919a",
      "tree": "c0f8ef926b7cc0c74eedc14b1cbc0a919278e2d9",
      "parents": [
        "db41880dd3259646b9ea43be6d8a91d4adb40122"
      ],
      "author": {
        "name": "ztenghui",
        "email": "ztenghui@google.com",
        "time": "Wed Oct 29 16:04:29 2014 -0700"
      },
      "committer": {
        "name": "ztenghui",
        "email": "ztenghui@google.com",
        "time": "Thu Nov 06 15:09:46 2014 -0800"
      },
      "message": "A better looking and faster spot shadow.\n\n1. This improve the looking, the star shape (spike) on long action bar is gone.\nShadow is more smooth now.\n\n2. The performance is better, too. For averaging around rect, round rect and\ncircle, the spot shadow itself is 3 times faster. On N7 v1, it could be less than\n0.1 ms.\n\nb/14976551\nb/16712006\n\nChange-Id: I61ed546ee56e7c8dbe504dfcaef12d084904b4b8\n"
    },
    {
      "commit": "a35778c799e8073a42b9e22191bde9d838327ab7",
      "tree": "f4d74fc026f8dcf6d8ea8e5a18be30a14b990b70",
      "parents": [
        "b9744c1c1f5e8cc936da7f1832665f77ad5bb18f"
      ],
      "author": {
        "name": "John Reck",
        "email": "jreck@google.com",
        "time": "Thu Nov 06 09:45:10 2014 -0800"
      },
      "committer": {
        "name": "John Reck",
        "email": "jreck@google.com",
        "time": "Thu Nov 06 09:45:10 2014 -0800"
      },
      "message": "Yank ResourceCache out of Caches\n\nBug: 17947547\n\nPull the ResourceCache (aka, ref-counting side channel) out of\nCaches so that DisplayListRenderer doesn\u0027t use Caches, avoiding\nthe risk of instantiating Caches on the wrong thread or\nwithout a GL context\n\nChange-Id: I7d63b70b3b0a0163308c5dedd6ef255eadebe8fd\n"
    },
    {
      "commit": "6c96cbf581bf97b034e4c65eabe3c0fe8d930bfa",
      "tree": "a3671e4d77903447458693068663594117a74e60",
      "parents": [
        "e43bf0821b41b135892001ad89518eb08d67bcd4",
        "fd15f475541a4d13293374f18204cb1b3e010582"
      ],
      "author": {
        "name": "Rob Tsuk",
        "email": "robtsuk@google.com",
        "time": "Wed Nov 05 22:22:51 2014 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Nov 05 22:22:52 2014 +0000"
      },
      "message": "Merge \"Log shader source when it fails to compile\" into lmp-mr1-dev"
    },
    {
      "commit": "fd15f475541a4d13293374f18204cb1b3e010582",
      "tree": "ab7c0dbaf3c72c0f53ec2ffe5e0c60d60477d7f3",
      "parents": [
        "9af44ddf0367c542d6c1db6060456bd72f3c83ca"
      ],
      "author": {
        "name": "Rob Tsuk",
        "email": "robtsuk@google.com",
        "time": "Wed Nov 05 13:26:19 2014 -0800"
      },
      "committer": {
        "name": "Rob Tsuk",
        "email": "robtsuk@google.com",
        "time": "Wed Nov 05 13:26:19 2014 -0800"
      },
      "message": "Log shader source when it fails to compile\n\nSo that there will be something to diagnose when such failures occur during\nstability tests.\n\nBug: 18092655\nChange-Id: I9a9d8d33b34273a477f2a9dbcf092887dcbc91c0\n"
    },
    {
      "commit": "69ecfa903492b502b7b1636345e050b57313c251",
      "tree": "2ddbb1d43f2b97768505e0bd9d3af00bb37a4bcc",
      "parents": [
        "3f36ba647d6bd49363ea9f025a8b1aeac0abeddd",
        "de7de47fef1dcaa26d553665d89e4d3792325c3f"
      ],
      "author": {
        "name": "Adam Lesinski",
        "email": "adamlesinski@google.com",
        "time": "Wed Nov 05 19:15:55 2014 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Nov 05 19:15:57 2014 +0000"
      },
      "message": "Merge \"Add error checking to aapt for split generation\" into lmp-mr1-dev"
    },
    {
      "commit": "a7d1d73a477fe512d9ea69ee2883084630ec24c4",
      "tree": "bbc94feb57cfcead2f9d44d8a4192085ee4d7d6a",
      "parents": [
        "efd8a85d30c35ca4a274835f10e371289bb9bc5e"
      ],
      "author": {
        "name": "Adam Lesinski",
        "email": "adamlesinski@google.com",
        "time": "Wed Oct 01 18:24:54 2014 -0700"
      },
      "committer": {
        "name": "Adam Lesinski",
        "email": "adamlesinski@google.com",
        "time": "Tue Nov 04 16:34:34 2014 -0800"
      },
      "message": "Implement back-tracking when searching for attributes in XML or resource bag\n\nShared libraries have their package ID assigned at run-time, so some\nof the guarantees we used to have about sort order of attributes in\nbags or XML elements no longer hold.\n\nThis CL adds back-tracking and can jump to the nearest attribute with the\nsame package ID and continue searching.\n\nThis means that attributes with the same package ID must be sorted by increasing\nresource ID, as was the case before.\n\nAttributes with the same package ID must be grouped together, but the groups can\nbe in any order. Ex: 0x02010001, 0x02010002, 0x01010000, 0x01010010, 0x7f010032\n\nBug:17666947\nChange-Id: I9c198bbb6ca788849aac85b6323606ea5d9550d6\n"
    },
    {
      "commit": "e6c0bda5dd945f3668b4108c49ee52f1a04253d6",
      "tree": "e600ef0a8b93ce22b711fd8b3bfaafc05a22da99",
      "parents": [
        "1482b0535e1708fbf9914946abe59c36f39633e7",
        "b7c26562d08bf72882eeca268a1bb51ea579653d"
      ],
      "author": {
        "name": "Rob Tsuk",
        "email": "robtsuk@google.com",
        "time": "Tue Nov 04 15:19:59 2014 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Nov 04 15:20:00 2014 +0000"
      },
      "message": "Merge \"Make points drawn with default paint visible\" into lmp-mr1-dev"
    },
    {
      "commit": "b7c26562d08bf72882eeca268a1bb51ea579653d",
      "tree": "887cda6be9347c0edc36ac9f78ffc3a6925ff58e",
      "parents": [
        "9acb9598b7bd18003ee3abe656818972dad03a29"
      ],
      "author": {
        "name": "Rob Tsuk",
        "email": "robtsuk@google.com",
        "time": "Mon Nov 03 16:29:03 2014 -0800"
      },
      "committer": {
        "name": "Rob Tsuk",
        "email": "robtsuk@google.com",
        "time": "Tue Nov 04 00:31:45 2014 +0000"
      },
      "message": "Make points drawn with default paint visible\n\nWhen no stroke width is set, use 0.5 instead of 0.25 to make\nsure the resulting rectangle spans at least one pixel.\n\nBug: 15455111\nChange-Id: Id0a4b6d014c542ffc98b13a032f88ae0ce69b3a1"
    },
    {
      "commit": "de7de47fef1dcaa26d553665d89e4d3792325c3f",
      "tree": "0d9551d2f037b841f325bbbd3ba27a309e9441b3",
      "parents": [
        "f7ffcaa7a478eaafc121e84b14dcaf2503dd5457"
      ],
      "author": {
        "name": "Adam Lesinski",
        "email": "adamlesinski@google.com",
        "time": "Mon Nov 03 12:03:08 2014 -0800"
      },
      "committer": {
        "name": "Adam Lesinski",
        "email": "adamlesinski@google.com",
        "time": "Mon Nov 03 15:55:44 2014 -0800"
      },
      "message": "Add error checking to aapt for split generation\n\nChange-Id: Ica627db6a671f6a6c35f98bfd9c03598ffe103ce\n"
    },
    {
      "commit": "668f0a356cba44c22d8ca0c9f4711613885d46a9",
      "tree": "2a761d729c706abe8c4fca98e89d818e961a5168",
      "parents": [
        "3c7efdc00506e6561ca08933f0b2acf5e3f16b02",
        "4bf58108d442b37ab4adf5ce3a4ecd63472ce254"
      ],
      "author": {
        "name": "Adam Lesinski",
        "email": "adamlesinski@google.com",
        "time": "Mon Nov 03 23:38:42 2014 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Nov 03 23:38:43 2014 +0000"
      },
      "message": "Merge \"Fix issues that will be present in C++11\" into lmp-mr1-dev"
    },
    {
      "commit": "4bf58108d442b37ab4adf5ce3a4ecd63472ce254",
      "tree": "2b6359ad85861bf339e6a45813c599ab683fc7c3",
      "parents": [
        "e8d9810cdef5b3e288f54f42adc3205532343406"
      ],
      "author": {
        "name": "Adam Lesinski",
        "email": "adamlesinski@google.com",
        "time": "Mon Nov 03 11:21:19 2014 -0800"
      },
      "committer": {
        "name": "Adam Lesinski",
        "email": "adamlesinski@google.com",
        "time": "Mon Nov 03 11:49:47 2014 -0800"
      },
      "message": "Fix issues that will be present in C++11\n\n- char16_t is a distinct type, so stay consistent\n  with it throughout the code base.\n- char16_t is defined as minimum size of 16 bits.\n  Since we mmap and cast data structures onto raw memory,\n  we need a precise definition (uint16_t), so we cast between\n  that (and static_assert that they are the same size).\n\nChange-Id: I869c32637543bbcfb39d2643e7d9df10d33acd3c\n"
    },
    {
      "commit": "88f5fc7c5a9fb1e677c508165f732cd76f5eef3a",
      "tree": "4179fecc0998d80bd27892ee1ee7ae2a67ab31a3",
      "parents": [
        "dde49a4fe8ae9a4736d171efbadb067e7d4cc81d"
      ],
      "author": {
        "name": "John Reck",
        "email": "jreck@google.com",
        "time": "Mon Nov 03 10:32:24 2014 -0800"
      },
      "committer": {
        "name": "John Reck",
        "email": "jreck@google.com",
        "time": "Mon Nov 03 10:32:24 2014 -0800"
      },
      "message": "Fix counting\n\nChange-Id: I9a3568908a7223d69430c1765fb5a4db96d7ac9c\n"
    },
    {
      "commit": "a8d83d639a5687b2ab5689db4ea61e2a6cce66f4",
      "tree": "e8441152d52d9388d9db09e039e3797cc2e38295",
      "parents": [
        "f34fa3e7aa9be9bf24c955a9ebf34022e4b88c25",
        "0e89e2b7bcb2c035e8cee77f93120e7c5617f8d2"
      ],
      "author": {
        "name": "John Reck",
        "email": "jreck@google.com",
        "time": "Fri Oct 31 22:55:46 2014 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Oct 31 22:55:47 2014 +0000"
      },
      "message": "Merge \"Layer changes\" into lmp-mr1-dev"
    },
    {
      "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": "f2969405020a72e282c348a6ea201d56e9f8d4ba",
      "tree": "e128dfe858f314d151ad3462e77f18d4aa973f66",
      "parents": [
        "720a5c51beb5beab442832ea8d169aa5b4edb43f"
      ],
      "author": {
        "name": "Alan Viverette",
        "email": "alanv@google.com",
        "time": "Wed Oct 29 17:09:36 2014 -0700"
      },
      "committer": {
        "name": "Alan Viverette",
        "email": "alanv@google.com",
        "time": "Wed Oct 29 17:09:36 2014 -0700"
      },
      "message": "Distinguish unspecified and explicit null values in resources\n\nBUG: 17919345\nChange-Id: Ic4f04f7dd0f986f58a749b5950d80c1cfdb074ea\n"
    },
    {
      "commit": "141823ec6313d9545b8354ea1e3e017a1da3cfa8",
      "tree": "d8af6524e139e73dee173bbe8b8f1b1510a885d4",
      "parents": [
        "81aef807d5f1e3e3b5eda1162829e666c295f352",
        "950ff1b88cc1330f8e80d62ed3aa15bee6be0556"
      ],
      "author": {
        "name": "John Reck",
        "email": "jreck@google.com",
        "time": "Wed Oct 29 14:40:01 2014 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Oct 29 14:40:02 2014 +0000"
      },
      "message": "Merge \"Be more conservative about current buffer\" into lmp-mr1-dev"
    },
    {
      "commit": "31b76b66b1678eb6483676aa2ef587e10b98d02a",
      "tree": "b34b9ebadf658eb3c55eb5fe6fbc73a9d8c4b1c5",
      "parents": [
        "ee990413b51b41e4fe8940cba703bdfb56a12018",
        "f001e37b316a0d5b9c9eda08bbe53ea4b06562a3"
      ],
      "author": {
        "name": "Adam Lesinski",
        "email": "adamlesinski@google.com",
        "time": "Tue Oct 28 17:41:10 2014 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Oct 28 17:41:12 2014 +0000"
      },
      "message": "Merge \"libandroidfw: Do not build device library when building SDK\" into lmp-mr1-dev"
    },
    {
      "commit": "950ff1b88cc1330f8e80d62ed3aa15bee6be0556",
      "tree": "5d51f8cafc49747128a34a97f86d01f92e5b63d6",
      "parents": [
        "e67b8d28294d9af440d2ea23f1b2c68dfcba8b1b"
      ],
      "author": {
        "name": "John Reck",
        "email": "jreck@google.com",
        "time": "Mon Oct 27 12:58:47 2014 -0700"
      },
      "committer": {
        "name": "John Reck",
        "email": "jreck@google.com",
        "time": "Mon Oct 27 13:23:20 2014 -0700"
      },
      "message": "Be more conservative about current buffer\n\nBug: 18065565\nChange-Id: I0b9c85ecf384ebe525e3a38803ab77d7ee37f33a\n"
    },
    {
      "commit": "23d307c8d88f4a3849163b9e5b7cd11d0d4f372c",
      "tree": "6142a542f5f25f2719b8950f6d06765605fb8bf1",
      "parents": [
        "670a82cbb1b62e69fa7ef7387eed545a76c96f76"
      ],
      "author": {
        "name": "John Reck",
        "email": "jreck@google.com",
        "time": "Mon Oct 27 12:38:48 2014 -0700"
      },
      "committer": {
        "name": "John Reck",
        "email": "jreck@google.com",
        "time": "Mon Oct 27 12:43:25 2014 -0700"
      },
      "message": "Cleanup debug options\n\nBug: 18138852\nBug: 18065434\nChange-Id: Ibb07b73b147c2a8b287fe8aee3f6624582f21b00\n"
    },
    {
      "commit": "f001e37b316a0d5b9c9eda08bbe53ea4b06562a3",
      "tree": "085f4aeed2b7271b3d573b143ad5e4be6657585e",
      "parents": [
        "272b0a1d6acdb7c4d244a498f3769e20c35f43d1"
      ],
      "author": {
        "name": "Adam Lesinski",
        "email": "adamlesinski@google.com",
        "time": "Mon Oct 20 16:15:33 2014 -0700"
      },
      "committer": {
        "name": "Adam Lesinski",
        "email": "adamlesinski@google.com",
        "time": "Fri Oct 24 18:39:56 2014 +0000"
      },
      "message": "libandroidfw: Do not build device library when building SDK\n\nBuilding the windows SDK causes a build failure if the device\nlibandroidfw target is not omitted.\n\nChange-Id: I587b166342d0d047820911d279f192d2b39b6263\n"
    },
    {
      "commit": "879f237acb24394da8c4202a608d38c9683f2474",
      "tree": "9aebbeef9641eb0788984024cd04dc757338e697",
      "parents": [
        "ef20147e2ba03c1532301f31027705f4a08e6b87",
        "60293197379e522c870c4a28462804207bab505d"
      ],
      "author": {
        "name": "Adam Lesinski",
        "email": "adamlesinski@google.com",
        "time": "Thu Oct 23 23:03:48 2014 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Oct 23 23:03:48 2014 +0000"
      },
      "message": "Merge \"Added some more Split density tests\" into lmp-mr1-dev"
    },
    {
      "commit": "60293197379e522c870c4a28462804207bab505d",
      "tree": "0b736bb0002e0d43109652d603ca0506524a064f",
      "parents": [
        "74af6700196ed55a0aa39c7777293e735e7b4d73"
      ],
      "author": {
        "name": "Adam Lesinski",
        "email": "adamlesinski@google.com",
        "time": "Tue Oct 21 18:36:42 2014 -0700"
      },
      "committer": {
        "name": "Adam Lesinski",
        "email": "adamlesinski@google.com",
        "time": "Thu Oct 23 16:01:58 2014 -0700"
      },
      "message": "Added some more Split density tests\n\nChange-Id: I3b83515f1240e713bbcff5385cf054bba693f297\n"
    },
    {
      "commit": "badac04dfd445a1fd3e3ecea04815e83fad5226c",
      "tree": "80d147af04db7470d673f304372db18b92cdd289",
      "parents": [
        "82fd842827fcdb3570d0c606bd049f42bf2b3fba",
        "1125d1fa92ab9f3b8315bbfb72e038b62dfd454b"
      ],
      "author": {
        "name": "John Reck",
        "email": "jreck@google.com",
        "time": "Thu Oct 23 21:59:25 2014 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Oct 23 21:59:26 2014 +0000"
      },
      "message": "Merge \"Add some free zoom to lockHardwareCanvas\" into lmp-mr1-dev"
    },
    {
      "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": "5c9d717d3e7064db76d2a01223af51379dadf2c3",
      "tree": "cc8069129707905f8754d2250bbcf2d929467009",
      "parents": [
        "9b67a1a232dc0e1cda346271c3a9d118228001ee"
      ],
      "author": {
        "name": "John Reck",
        "email": "jreck@google.com",
        "time": "Wed Oct 22 11:32:27 2014 -0700"
      },
      "committer": {
        "name": "John Reck",
        "email": "jreck@google.com",
        "time": "Wed Oct 22 11:32:27 2014 -0700"
      },
      "message": "Fix damage bug\n\nBug: 18087374\nChange-Id: Ie183392122c73f93010fb3f4be071c924b352966\n"
    },
    {
      "commit": "733bb3bc78cfb4553441f5d86fce02eb12e32d02",
      "tree": "d056d3b654c7a253d175bd3a2eb847bc7a74f295",
      "parents": [
        "3961d2af80f4c0285176f2984b35ffe5ee65ba5a",
        "af608319f22989f673d1d0d4d3105f62109274bd"
      ],
      "author": {
        "name": "John Reck",
        "email": "jreck@google.com",
        "time": "Wed Oct 22 14:18:19 2014 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Oct 22 14:18:21 2014 +0000"
      },
      "message": "Merge \"Fix memory corruption in test\" into lmp-mr1-dev"
    },
    {
      "commit": "bb2d0cc7e1d487f7021b1f9ec0c6740e41b535f2",
      "tree": "661b6c6d833d545fc3f91fab7810ab73febc21a5",
      "parents": [
        "ea6f0ae86d62cff88d63b926578c588a956d0512"
      ],
      "author": {
        "name": "John Reck",
        "email": "jreck@google.com",
        "time": "Tue Oct 21 10:09:36 2014 -0700"
      },
      "committer": {
        "name": "John Reck",
        "email": "jreck@google.com",
        "time": "Tue Oct 21 13:23:56 2014 -0700"
      },
      "message": "Surface:lockHardwareCanvas\n\nBug: 17440886\n\nChange-Id: I1f2d98c63ec1a2814c2258cf7e0096139263770a\n"
    },
    {
      "commit": "af608319f22989f673d1d0d4d3105f62109274bd",
      "tree": "d506b9eef6087244940f3a60b3631fcb6623d655",
      "parents": [
        "ea6f0ae86d62cff88d63b926578c588a956d0512"
      ],
      "author": {
        "name": "John Reck",
        "email": "jreck@google.com",
        "time": "Thu Oct 16 09:18:11 2014 -0700"
      },
      "committer": {
        "name": "John Reck",
        "email": "jreck@google.com",
        "time": "Thu Oct 16 09:18:11 2014 -0700"
      },
      "message": "Fix memory corruption in test\n\nBug: 18012918\nChange-Id: I8d69624e9be9f0399ddba10ce3903f93177d5930\n"
    },
    {
      "commit": "94c40fe92117f301c7758de2861ab0c1d6cfded0",
      "tree": "1d998348df9fa524cdecca812d63eb576e66ba6e",
      "parents": [
        "d8a21bbedbaeb752b7f458823ed709b9a01c14c1"
      ],
      "author": {
        "name": "John Reck",
        "email": "jreck@google.com",
        "time": "Wed Oct 08 09:28:43 2014 -0700"
      },
      "committer": {
        "name": "John Reck",
        "email": "jreck@google.com",
        "time": "Tue Oct 14 09:02:04 2014 -0700"
      },
      "message": "CARD LAND!\n\nBug: 16712006\n\nInitial work towards benchmarking HWUI systems\nCurrently this will just create a screen full of\n\"cards\" to simulate a high load scenario for\nshadows and clipping\n\nChange-Id: Ie9f9a9570844e136db8053e8fc62fe06cb922a5f\n"
    },
    {
      "commit": "be003a357026a54c9fd0ae65cdc909f9b0cbc384",
      "tree": "8faca3fdd58ef62a335886d2061109ce2eddba5a",
      "parents": [
        "d190a5ca4c0501f01d2eb5a0359bd987cb703b0c",
        "f23e3ea629f29060f34ea10a0d89c6ec22766789"
      ],
      "author": {
        "name": "Adam Lesinski",
        "email": "adamlesinski@google.com",
        "time": "Fri Oct 10 00:30:39 2014 +0000"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Fri Oct 10 00:30:39 2014 +0000"
      },
      "message": "am f23e3ea6: am aeef612f: Merge \"Search all packages for a given type string when looking up resources by name\" into lmp-dev\n\n* commit \u0027f23e3ea629f29060f34ea10a0d89c6ec22766789\u0027:\n  Search all packages for a given type string when looking up resources by name\n"
    },
    {
      "commit": "e60a87f5529b2867ba3f4e60b39d7b47b67f8ca3",
      "tree": "551bd0808ffd3dd737a2349d0e3801f9acc66612",
      "parents": [
        "49c5ddd67793735a2d6fc036614cdfab944d56f6"
      ],
      "author": {
        "name": "Adam Lesinski",
        "email": "adamlesinski@google.com",
        "time": "Thu Oct 09 11:08:04 2014 -0700"
      },
      "committer": {
        "name": "Adam Lesinski",
        "email": "adamlesinski@google.com",
        "time": "Thu Oct 09 11:26:19 2014 -0700"
      },
      "message": "Search all packages for a given type string when looking up resources by name\n\nPreviously we would stop at the first match when looking for a type string,\nbut we should search all packages in case a feature Split added a type\nwith the same name.\n\nBug:17924027\n\nChange-Id: I6bc7ef073324db99448538cd8bdf566658f066ff\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": "8cdb0bc08728f18b75eca429678ea9b778191b6e",
      "tree": "40707adcf7b09a55c8a61f37608e95a8c23fbab4",
      "parents": [
        "384ff9ef5d2dc1278f63eb7e0f42ad03a9163dec",
        "9122b1b168d2a74d51517ed7282f4d6a8adea367"
      ],
      "author": {
        "name": "ztenghui",
        "email": "ztenghui@google.com",
        "time": "Mon Oct 06 20:04:05 2014 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Oct 06 20:04:08 2014 +0000"
      },
      "message": "Merge \"Use float instead of double to increase spot shadow perf\" into lmp-mr1-dev"
    },
    {
      "commit": "6a2296d856fe4db524ab71c6500f356ff0454f29",
      "tree": "4e5717b638479115eb6cc56fe278633b7fdda17a",
      "parents": [
        "f2ab6612c95254c24f29a7fbc3109ecbbbe3f310",
        "9da6e7435945e34d05e0c8c5c9a324218480c6ff"
      ],
      "author": {
        "name": "John Reck",
        "email": "jreck@google.com",
        "time": "Fri Oct 03 23:57:30 2014 +0000"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Fri Oct 03 23:57:30 2014 +0000"
      },
      "message": "am 9da6e743: am d988a45d: Merge \"Cleanup DeferredLayerUpdater\" into lmp-dev\n\n* commit \u00279da6e7435945e34d05e0c8c5c9a324218480c6ff\u0027:\n  Cleanup DeferredLayerUpdater\n"
    },
    {
      "commit": "9122b1b168d2a74d51517ed7282f4d6a8adea367",
      "tree": "f31aaadd1c18fe15ab9a63ba221693fb77507161",
      "parents": [
        "2298938cef8d5aa2211ef08e27553354918e5554"
      ],
      "author": {
        "name": "ztenghui",
        "email": "ztenghui@google.com",
        "time": "Fri Oct 03 11:21:11 2014 -0700"
      },
      "committer": {
        "name": "ztenghui",
        "email": "ztenghui@google.com",
        "time": "Fri Oct 03 15:30:53 2014 -0700"
      },
      "message": "Use float instead of double to increase spot shadow perf\n\nThis is helping spot shadow for 15%-20% increase.\nWith the new algorithm, we are less sensitive to the floating point error.\n\nb/16712006\n\nChange-Id: Ie30a6ce01e73d56054a0cf65a84549454339a7fd\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": "497cb6c0a9818c5ba27df3e5a50878144505405f",
      "tree": "37cd11f1daa5a6e63071e9edb9ea2d85f71c536e",
      "parents": [
        "438fe5937f3bc04087f48b511a799f9f6cf5a205",
        "059476a24502500bbc277b86f9a4f7e840d1b5f5"
      ],
      "author": {
        "name": "Chris Craik",
        "email": "ccraik@google.com",
        "time": "Thu Oct 02 20:02:42 2014 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Oct 02 20:02:43 2014 +0000"
      },
      "message": "Merge \"Avoid creating Caches instance with gfxinfo dump\" into lmp-mr1-dev"
    },
    {
      "commit": "59e129fbc8a70d58d124ccc309661719f562b486",
      "tree": "e652f2698ee8d989be6b68111939fb6ab0347202",
      "parents": [
        "6062a09dbc1c26cacb6fa2dac7467ae826b70229",
        "c5b5f0556b542a22f01d254e6284f69e9eb23e74"
      ],
      "author": {
        "name": "Chris Craik",
        "email": "ccraik@google.com",
        "time": "Thu Oct 02 19:28:07 2014 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Oct 02 19:28:09 2014 +0000"
      },
      "message": "Merge \"Account for colorfilter transparency in determining paint opacity\" into lmp-mr1-dev"
    },
    {
      "commit": "5f243860a79ec158fc9f769bda7202dfd202da59",
      "tree": "51a26491c27c533d1fce6152fc0b4861c56915f3",
      "parents": [
        "c088ecc390917f82cdd4898533e892070316350c",
        "9ad17521ac073562991cddb78f14d6df8d5fd05a"
      ],
      "author": {
        "name": "ztenghui",
        "email": "ztenghui@google.com",
        "time": "Wed Oct 01 23:41:00 2014 +0000"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Wed Oct 01 23:41:00 2014 +0000"
      },
      "message": "am 9ad17521: am f9033048: Merge \"+ correcting shadow visual appearance (b/17610926)\" into lmp-dev\n\n* commit \u00279ad17521ac073562991cddb78f14d6df8d5fd05a\u0027:\n  + correcting shadow visual appearance (b/17610926)\n"
    },
    {
      "commit": "c5b5f0556b542a22f01d254e6284f69e9eb23e74",
      "tree": "a32d339947b3bd0663c59182770ba951ffa74863",
      "parents": [
        "ec89863adec09dbf980b2d2c90c0fa5e78ffa7a9"
      ],
      "author": {
        "name": "Chris Craik",
        "email": "ccraik@google.com",
        "time": "Wed Oct 01 16:40:16 2014 -0700"
      },
      "committer": {
        "name": "Chris Craik",
        "email": "ccraik@google.com",
        "time": "Wed Oct 01 16:40:16 2014 -0700"
      },
      "message": "Account for colorfilter transparency in determining paint opacity\n\nbug:17765601\nChange-Id: I90d76ee199bb357c71fc8f537c1abfa20d848416\n"
    },
    {
      "commit": "8def74de33b197c0c5ec8774576b1d71c7ec4f1b",
      "tree": "3f9d1358848b4514bad542358df106dbfe09257b",
      "parents": [
        "fe426d061ad5feb65200c2970bf826b10e356247"
      ],
      "author": {
        "name": "ztenghui",
        "email": "ztenghui@google.com",
        "time": "Wed Oct 01 16:10:16 2014 -0700"
      },
      "committer": {
        "name": "ztenghui",
        "email": "ztenghui@google.com",
        "time": "Wed Oct 01 16:12:28 2014 -0700"
      },
      "message": "+ correcting shadow visual appearance (b/17610926)\n\n+ adjusting spot and ambient shadow opacity constants to achieve desired appearance\n+ reducing ambient scale ratio back to 1.0 to address over-lightening at higher elevations\n+ partially revert ag/546290\n\nChange-Id: I9d7f664f73a7b9b83df73b739103c97054bd4f6e\n"
    },
    {
      "commit": "8628387c604168ccd1ae9c20b8b8d34c68e5f526",
      "tree": "585e6fe7c967966f305e9b32e1eb9f57b881b5b9",
      "parents": [
        "7ce8d27fcd83a4e193765f1814fb8f47d7ebf372",
        "b226d2951c8641f9851e40b4e13b4ae25cb1a482"
      ],
      "author": {
        "name": "Adam Powell",
        "email": "adamp@google.com",
        "time": "Wed Oct 01 22:15:56 2014 +0000"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Wed Oct 01 22:15:56 2014 +0000"
      },
      "message": "am b226d295: am c6a06d43: Merge \"Revert \"Fix issue with using locally defined attrs in a shared lib\"\" into lmp-dev\n\n* commit \u0027b226d2951c8641f9851e40b4e13b4ae25cb1a482\u0027:\n  Revert \"Fix issue with using locally defined attrs in a shared lib\"\n"
    },
    {
      "commit": "059476a24502500bbc277b86f9a4f7e840d1b5f5",
      "tree": "459eafb5f8b26b16e754b6e1a0a86c50d9371b7d",
      "parents": [
        "ec89863adec09dbf980b2d2c90c0fa5e78ffa7a9"
      ],
      "author": {
        "name": "Chris Craik",
        "email": "ccraik@google.com",
        "time": "Mon Sep 29 17:09:53 2014 -0700"
      },
      "committer": {
        "name": "Chris Craik",
        "email": "ccraik@google.com",
        "time": "Wed Oct 01 11:14:55 2014 -0700"
      },
      "message": "Avoid creating Caches instance with gfxinfo dump\n\nbug:17509891\nChange-Id: I182851068ba04926d60226b3ace95efea59eac45\n"
    },
    {
      "commit": "908c748096d855d47da2f5e20fd4d9d31d1e603c",
      "tree": "8031415a8deef274fa5bc89ba5c9744d6378889b",
      "parents": [
        "5069dd69898bd0d9c69ba2bbd37239ec8d1c9dc6"
      ],
      "author": {
        "name": "Adam Powell",
        "email": "adamp@google.com",
        "time": "Wed Oct 01 18:11:18 2014 +0000"
      },
      "committer": {
        "name": "Adam Powell",
        "email": "adamp@google.com",
        "time": "Wed Oct 01 18:11:18 2014 +0000"
      },
      "message": "Revert \"Fix issue with using locally defined attrs in a shared lib\"\n\nThis reverts commit 5069dd69898bd0d9c69ba2bbd37239ec8d1c9dc6.\n\nThe reverted commit caused issues loading resources supplied by static libraries.\n\nBug 17748356\n\nChange-Id: I860a4f31451ee7c03c02974826472a67226b029f\n"
    },
    {
      "commit": "95731abeae49eac57911068ac8545f4eba2ae58d",
      "tree": "fecfaf9333f83ce4d17bffd10af15a647b71252d",
      "parents": [
        "5c35f2a47e222e60e6d27d4b7acbd0114bf97d6c",
        "bb7b51978eb5341e9a1204a447c8340bfb248504"
      ],
      "author": {
        "name": "Adam Lesinski",
        "email": "adamlesinski@google.com",
        "time": "Wed Oct 01 15:16:02 2014 +0000"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Wed Oct 01 15:16:02 2014 +0000"
      },
      "message": "am bb7b5197: am cd8e7381: Merge \"Fix issue with using locally defined attrs in a shared lib\" into lmp-dev\n\n* commit \u0027bb7b51978eb5341e9a1204a447c8340bfb248504\u0027:\n  Fix issue with using locally defined attrs in a shared lib\n"
    },
    {
      "commit": "5069dd69898bd0d9c69ba2bbd37239ec8d1c9dc6",
      "tree": "f0ddd3b922e53ed84c14558c6345724a588656ba",
      "parents": [
        "75c33d9d04d8c0a9884a70077681261b57c7833c"
      ],
      "author": {
        "name": "Adam Lesinski",
        "email": "adamlesinski@google.com",
        "time": "Tue Sep 30 16:06:58 2014 -0700"
      },
      "committer": {
        "name": "Adam Lesinski",
        "email": "adamlesinski@google.com",
        "time": "Tue Sep 30 16:18:09 2014 -0700"
      },
      "message": "Fix issue with using locally defined attrs in a shared lib\n\nThe attribute name resource IDs were never fixed up with\nthe runtime package ID so we weren\u0027t finding attributes\nwhenever the runtime package ID was different than the build\ntime one, which happened to be when a shared lib referenced itself\n(0x00 vs 0x02).\n\nBug:17666947\nChange-Id: Icf3e874bcea0e27eebe42d60fbed626a34bf9266\n"
    },
    {
      "commit": "a8bea8edde2f20cae48e5cc8de782679306b3cc3",
      "tree": "ef2905c2c3212249a489536895d5eb3ad70cb82d",
      "parents": [
        "ec89863adec09dbf980b2d2c90c0fa5e78ffa7a9"
      ],
      "author": {
        "name": "Chris Craik",
        "email": "ccraik@google.com",
        "time": "Wed Sep 24 11:29:43 2014 -0700"
      },
      "committer": {
        "name": "Chris Craik",
        "email": "ccraik@google.com",
        "time": "Mon Sep 29 17:19:05 2014 -0700"
      },
      "message": "Add tracing for saveLayer\n\nbug:17702227\n\nChange-Id: Ia9cbf31b360c93f712e021bea406cb63e4cc4c2a\n"
    },
    {
      "commit": "bc341912b124ea52d1a383bb8cc0a12d0671eaa2",
      "tree": "8b5be4e85cc1d7b8241703a08a04698e9505ea45",
      "parents": [
        "81d9304bdae3a9282572fd361accfdb034651b45"
      ],
      "author": {
        "name": "Chris Craik",
        "email": "ccraik@google.com",
        "time": "Mon Sep 22 18:17:39 2014 -0700"
      },
      "committer": {
        "name": "Chris Craik",
        "email": "ccraik@google.com",
        "time": "Tue Sep 23 01:22:00 2014 +0000"
      },
      "message": "Reject transparent draws more conservatively\n\nbug:17600162\n\nTransparent draws are not safe to reject for all xfermodes other than\nclear. Now, to be safe, only perform the rejection for SrcOver draws\nsince other modes are fairly uncommon.\n\nWe could specifically determine whether the xfermode could change the\noutput given a transparent input, but there\u0027s little to be gained from\nthe additional complexity.\n\nChange-Id: Ia699ac4bdc4da3353955840b53f1922d3cb1d85d"
    }
  ],
  "next": "9e7c91919159050f397e28ba8df04d0b42b96e01"
}
