)]}'
{
  "log": [
    {
      "commit": "d56554e82b591357cbb819859ddcc7b87ff7306b",
      "tree": "815ab368bbf92f8d9dea46928a3a69eec39ee184",
      "parents": [
        "b47ea9b2ed24f8eb6fc8b338555ff0d8825d8565",
        "906c8dea2ec6ae404ae6d7870c0a0cb2289f3d04"
      ],
      "author": {
        "name": "John Reck",
        "email": "jreck@google.com",
        "time": "Tue Aug 04 21:13:23 2015 +0000"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Tue Aug 04 21:13:23 2015 +0000"
      },
      "message": "am 906c8dea: am bc04d3ac: Merge \"animateNoDamage failed to remove from current frame list\"\n\n* commit \u0027906c8dea2ec6ae404ae6d7870c0a0cb2289f3d04\u0027:\n  animateNoDamage failed to remove from current frame list\n"
    },
    {
      "commit": "bc04d3acba766c1440e2ab0763aa1352efcf54a8",
      "tree": "619ff0feb25e5ccb64b8f8c9e896fe395b939d3e",
      "parents": [
        "93c14069588eac2c652263295bc89eb2a2eb3d6b",
        "68eb3b22b06477e5a229714f802cbc48e8486937"
      ],
      "author": {
        "name": "John Reck",
        "email": "jreck@google.com",
        "time": "Tue Aug 04 20:52:40 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue Aug 04 20:52:40 2015 +0000"
      },
      "message": "Merge \"animateNoDamage failed to remove from current frame list\""
    },
    {
      "commit": "b47ea9b2ed24f8eb6fc8b338555ff0d8825d8565",
      "tree": "5fe718ba2f0544b8dfafeeb06ca87c38deca28d4",
      "parents": [
        "af393e4b2d1fa0def0d104bfeaafa1ae1600d4d2",
        "2fa3eec0e1807f6a45b71a41624698e8cc949026"
      ],
      "author": {
        "name": "John Reck",
        "email": "jreck@google.com",
        "time": "Tue Aug 04 20:51:42 2015 +0000"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Tue Aug 04 20:51:42 2015 +0000"
      },
      "message": "am 2fa3eec0: am 93c14069: Merge \"hwui: add extension to support unpack operations in OpenGL ES 2.0\"\n\n* commit \u00272fa3eec0e1807f6a45b71a41624698e8cc949026\u0027:\n  hwui: add extension to support unpack operations in OpenGL ES 2.0\n"
    },
    {
      "commit": "598b0123d322b396e8bfc3d66f228cf0b7485eac",
      "tree": "7f8df378ecc5b6aded22def05f467ef8ec9e8f07",
      "parents": [
        "63b1f626122860a824d97528e74ad6f3617d5cf5",
        "67716c13939f92cf1de2404e47c569ddf92ee96a"
      ],
      "author": {
        "name": "John Reck",
        "email": "jreck@google.com",
        "time": "Tue Aug 04 20:13:07 2015 +0000"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Tue Aug 04 20:13:07 2015 +0000"
      },
      "message": "am 67716c13: am e28c5d62: am a975a844: am 70e5db94: Merge \"Fix crash in kModeProcessNoContext\" into mnc-dev\n\n* commit \u002767716c13939f92cf1de2404e47c569ddf92ee96a\u0027:\n  Fix crash in kModeProcessNoContext\n"
    },
    {
      "commit": "a975a84498014526d665f3bf7d0a5387f6e8a96b",
      "tree": "985ff02fdaa8fd2890427f750171339bdd2a2839",
      "parents": [
        "36fc79e2f8f4b4e186dd7de4c646639c434f3e8b",
        "70e5db9413f82bf1f000bd99b3d2dbecf6e4ab04"
      ],
      "author": {
        "name": "John Reck",
        "email": "jreck@google.com",
        "time": "Tue Aug 04 19:48:30 2015 +0000"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Tue Aug 04 19:48:30 2015 +0000"
      },
      "message": "am 70e5db94: Merge \"Fix crash in kModeProcessNoContext\" into mnc-dev\n\n* commit \u002770e5db9413f82bf1f000bd99b3d2dbecf6e4ab04\u0027:\n  Fix crash in kModeProcessNoContext\n"
    },
    {
      "commit": "95cd24bb9d000eb541bc7ec7e6b53d1c7e313076",
      "tree": "fa74c9a2cb03bfadc84109fbf086189340e9bef7",
      "parents": [
        "fad3c6638168ad65b4f4677a777b8f2dc7e5c9c9"
      ],
      "author": {
        "name": "John Reck",
        "email": "jreck@google.com",
        "time": "Tue Aug 04 11:17:39 2015 -0700"
      },
      "committer": {
        "name": "John Reck",
        "email": "jreck@google.com",
        "time": "Tue Aug 04 18:19:11 2015 +0000"
      },
      "message": "Fix crash in kModeProcessNoContext\n\nBug: 22931143\nChange-Id: I9897a28b1edd006aee67ae2343874ad92bbd15a0\n"
    },
    {
      "commit": "68eb3b22b06477e5a229714f802cbc48e8486937",
      "tree": "e2be9cbaad092d6f66542c60f504150ff0858cf8",
      "parents": [
        "608ad1409dc3cd86a66208ddaa31e3a4c54adfac"
      ],
      "author": {
        "name": "Ye Ouyang",
        "email": "a5111c@motorola.com",
        "time": "Tue Aug 04 10:40:57 2015 -0500"
      },
      "committer": {
        "name": "Ye Ouyang",
        "email": "a5111c@motorola.com",
        "time": "Tue Aug 04 10:42:32 2015 -0500"
      },
      "message": "animateNoDamage failed to remove from current frame list\n\nrunRemainingAnimations is used to animate the available animation handle\nwhich were not yet run, it actually animate those animation handle and\nremoves from the list by notifyAnimationsRan(). In case if these animation\nhandles are not removed, it leads to the Fatal Assert of runRemainingAnimations.\n\nSome usecases causes the addition of animation handle when there is\nno animators, in these cases this check prevents execution of\nnotifyAnimationsRan() leads to Fatal Assert crash of runRemainingAnimations.\n\nAllowing the animation to happen irrespective of animators solves the problem.\n\nChange-Id: Ifa72286cdc6ff785fcc999f3b951dd787e7003e9\n"
    },
    {
      "commit": "d538d30e2f498de12a46e2aa3b0814c8d9526226",
      "tree": "3ab1643d6affabaf8fc4f3f74343d42ea10cd7f7",
      "parents": [
        "40f0efe03df87cf340de089bcb09010a88f8a120"
      ],
      "author": {
        "name": "xiaozhengdong",
        "email": "xiaozhengdong@xiaomi.com",
        "time": "Tue Aug 04 16:55:35 2015 +0800"
      },
      "committer": {
        "name": "xiaozhengdong",
        "email": "xiaozhengdong@xiaomi.com",
        "time": "Tue Aug 04 19:46:01 2015 +0800"
      },
      "message": "hwui: add extension to support unpack operations in OpenGL ES 2.0\n\nOpenGL ES 3.0+ lets us specify the row length for unpack operations\nsuch as glTexSubImage2D(). This allows us to upload a sub-rectangle\nof a texture. Also, the GL_EXT_unpack_subimage extension can also\nsupport this feature in OpenGL ES 2.0\n\nChange-Id: Id43c2c55c5eaefbace67087c955f0b4324fb2c35\nSigned-off-by: xiaozhengdong \u003cxiaozhengdong@xiaomi.com\u003e\n"
    },
    {
      "commit": "903e117e55d5b2ac58acdce3810fc47972d1c6cb",
      "tree": "43960b424142658c619f9e2b485f5ea7f1b44890",
      "parents": [
        "fa3dd628149b78e19b93db963385eac2b62f0334",
        "0429246eb85dd3c42f92bd5680fe2f6883faddbc"
      ],
      "author": {
        "name": "John Reck",
        "email": "jreck@google.com",
        "time": "Tue Aug 04 01:31:03 2015 +0000"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Tue Aug 04 01:31:03 2015 +0000"
      },
      "message": "am 0429246e: am 0c9ec1f2: am 2e529712: am c03ab87a: Merge \"Disable skipping frames on empty damage\" into mnc-dev\n\n* commit \u00270429246eb85dd3c42f92bd5680fe2f6883faddbc\u0027:\n  Disable skipping frames on empty damage\n"
    },
    {
      "commit": "2e529712e67b94aefec81d0e081f9c34c4fef3f7",
      "tree": "0c29df6dbd644aa9b859a09034d8da57aae83e99",
      "parents": [
        "ba6cdbfdbbbb6f83052e895a698fcc0d71793b25",
        "c03ab87ac9f721ff22bfe5e9c0cd0e5be64f261e"
      ],
      "author": {
        "name": "John Reck",
        "email": "jreck@google.com",
        "time": "Tue Aug 04 01:00:24 2015 +0000"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Tue Aug 04 01:00:24 2015 +0000"
      },
      "message": "am c03ab87a: Merge \"Disable skipping frames on empty damage\" into mnc-dev\n\n* commit \u0027c03ab87ac9f721ff22bfe5e9c0cd0e5be64f261e\u0027:\n  Disable skipping frames on empty damage\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": "e375685aa4b8d7f31b2cbe08170c32bd4150468d",
      "tree": "c025b997ea186254da0b011f8b8203e58d78674a",
      "parents": [
        "dfccaccaa1087b1c59eb4a817bce6948fcb8357b",
        "9c458148e9c113ee7092f05ede90a71a64a01adb"
      ],
      "author": {
        "name": "Chris Craik",
        "email": "ccraik@google.com",
        "time": "Thu Jul 30 19:59:20 2015 +0000"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Thu Jul 30 19:59:20 2015 +0000"
      },
      "message": "am 9c458148: am 3d208671: am 7dfb1d99: am 730c0f65: Merge \"Fix stencil mask usage in HWUI\" into mnc-dev\n\n* commit \u00279c458148e9c113ee7092f05ede90a71a64a01adb\u0027:\n  Fix stencil mask usage in HWUI\n"
    },
    {
      "commit": "7dfb1d9931fb67ae598be091425b03ded1e16eaa",
      "tree": "1b0208657fbd46b4fe37da68150a8492f422d4f4",
      "parents": [
        "f9dee58395fa72dc3764292aef4937dfcca0a14a",
        "730c0f6591b1c99699e9d0ecf36d696f7d87629f"
      ],
      "author": {
        "name": "Chris Craik",
        "email": "ccraik@google.com",
        "time": "Thu Jul 30 19:37:15 2015 +0000"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Thu Jul 30 19:37:15 2015 +0000"
      },
      "message": "am 730c0f65: Merge \"Fix stencil mask usage in HWUI\" into mnc-dev\n\n* commit \u0027730c0f6591b1c99699e9d0ecf36d696f7d87629f\u0027:\n  Fix stencil mask usage in HWUI\n"
    },
    {
      "commit": "730c0f6591b1c99699e9d0ecf36d696f7d87629f",
      "tree": "060a00f111b35e7c07cecc156e932f7c3d3df04b",
      "parents": [
        "8d1d8fdaa40cc2149604c9947a7ccf1a6a494e36",
        "fa51a0e1ceb496e57f6c234800a3f5e9a2d89142"
      ],
      "author": {
        "name": "Chris Craik",
        "email": "ccraik@google.com",
        "time": "Thu Jul 30 19:30:58 2015 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Jul 30 19:30:58 2015 +0000"
      },
      "message": "Merge \"Fix stencil mask usage in HWUI\" into mnc-dev"
    },
    {
      "commit": "fa51a0e1ceb496e57f6c234800a3f5e9a2d89142",
      "tree": "bf40c052cfa1baa141d5a8a6b9c6c30a248e2dfc",
      "parents": [
        "b83b5fa641847ee1d533253ba5e1a3e13913b9d9"
      ],
      "author": {
        "name": "Chris Craik",
        "email": "ccraik@google.com",
        "time": "Thu Jul 30 11:05:16 2015 -0700"
      },
      "committer": {
        "name": "Chris Craik",
        "email": "ccraik@google.com",
        "time": "Thu Jul 30 11:06:53 2015 -0700"
      },
      "message": "Fix stencil mask usage in HWUI\n\nbug:21588246\n\nEnsure we always set the mask before clearing, and removes\nsome unneeded optimizations around mask usage in\ndebug (overdraw) mode.\n\nChange-Id: I71ed06c16f8d9f158953d5aa160098514f0f7f00\n"
    },
    {
      "commit": "1db1b5821f6819a602f2dda5950d12b6f6183c36",
      "tree": "04cb551ba9ca21dd4f343b87964fbf414b697edb",
      "parents": [
        "5745eead22ecd70fd9d418f1a6ac23d837dbdbe8",
        "204b4157b3fdbeea8859c4ad0e29be18d74e6f5f"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Thu Jul 30 15:47:11 2015 +0000"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Thu Jul 30 15:47:11 2015 +0000"
      },
      "message": "am 204b4157: am f8a6a2f6: Merge \"Use _WIN32 rather than HAVE_WINSOCK.\"\n\n* commit \u0027204b4157b3fdbeea8859c4ad0e29be18d74e6f5f\u0027:\n  Use _WIN32 rather than HAVE_WINSOCK.\n"
    },
    {
      "commit": "59cbe8d10750a0577c3ea999b2dd90bf0a05ffe6",
      "tree": "0432772e3b9e8f70efd25c899c0286d713fe65ad",
      "parents": [
        "84a04d52e7118f67e9a099fdbf55111f1c7a9010"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Wed Jul 29 17:49:27 2015 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Wed Jul 29 17:49:27 2015 -0700"
      },
      "message": "Use _WIN32 rather than HAVE_WINSOCK.\n\nChange-Id: I0821d2af8473c359e8b73aec455000cb7c42f690\n"
    },
    {
      "commit": "3ab63f637f4ff4a6783bdd197734d67d605c453d",
      "tree": "19f59e92118a3bac15f342918bec7f26aaff6dee",
      "parents": [
        "6a5791d163e9f8dab1efb3e2a713ee521c347b32",
        "68d982dab9ebba2accb7aa37f55cf68548d24818"
      ],
      "author": {
        "name": "Adam Lesinski",
        "email": "adamlesinski@google.com",
        "time": "Tue Jul 28 00:57:35 2015 +0000"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Tue Jul 28 00:57:35 2015 +0000"
      },
      "message": "am 68d982da: am f02a02c2: am e1e94c7d: am fd44b56d: Merge \"AAPT: Fix printing of resource configurations\" into mnc-dev\n\n* commit \u002768d982dab9ebba2accb7aa37f55cf68548d24818\u0027:\n  AAPT: Fix printing of resource configurations\n"
    },
    {
      "commit": "e1e94c7d58a176c3250438d4fdd35ef552cfe92a",
      "tree": "50d014a6eb583e0f072c0690cc56075c24c4d6de",
      "parents": [
        "3bb0bb3afc46f88e4372f6912bd4c18547de5a78",
        "fd44b56d599bc6c6e7397dcdfaa6d613805a88cb"
      ],
      "author": {
        "name": "Adam Lesinski",
        "email": "adamlesinski@google.com",
        "time": "Tue Jul 28 00:16:38 2015 +0000"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Tue Jul 28 00:16:38 2015 +0000"
      },
      "message": "am fd44b56d: Merge \"AAPT: Fix printing of resource configurations\" into mnc-dev\n\n* commit \u0027fd44b56d599bc6c6e7397dcdfaa6d613805a88cb\u0027:\n  AAPT: Fix printing of resource configurations\n"
    },
    {
      "commit": "5b0f1be0a23011416697efaa7e9c050e466c44f5",
      "tree": "118c1a6aaa6b061299a48f6f62dc245be69b1463",
      "parents": [
        "71bfb27013f983bc4a54f1924af61c07732f994e"
      ],
      "author": {
        "name": "Adam Lesinski",
        "email": "adamlesinski@google.com",
        "time": "Mon Jul 27 16:53:14 2015 -0700"
      },
      "committer": {
        "name": "Adam Lesinski",
        "email": "adamlesinski@google.com",
        "time": "Mon Jul 27 17:04:43 2015 -0700"
      },
      "message": "AAPT: Fix printing of resource configurations\n\nPrint out proper, copied configuration. We add fields to ResTable_config\nand if we don\u0027t copy and fill in defaults when reading old configurations,\nwe end up with garbage values. This can potentially cause a crash as well.\n\nBug:22773426\nChange-Id: I64f5ebe73ee72453bcdad3a19e48f8e7ad58e9c2\n"
    },
    {
      "commit": "23861bb9d0f4bfeb11ba0989418d567207eb06f3",
      "tree": "2deb11a4fb329cb81709fc638f2d3cf53eb11e55",
      "parents": [
        "700ec4b42caefbed65b0c8d058cca1882c716435",
        "78d491ac8dbf85424e87386bedeee0016df6f7fb"
      ],
      "author": {
        "name": "John Reck",
        "email": "jreck@google.com",
        "time": "Fri Jul 24 04:06:47 2015 +0000"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Fri Jul 24 04:06:47 2015 +0000"
      },
      "message": "am 78d491ac: am 452b62e1: am c5d3dde6: am 8b1154c4: Merge \"Move updateMatrix() call to animateCommon\" into mnc-dev\n\n* commit \u002778d491ac8dbf85424e87386bedeee0016df6f7fb\u0027:\n  Move updateMatrix() call to animateCommon\n"
    },
    {
      "commit": "11f9da310ac3129cd859ef98f7f10d897308a59b",
      "tree": "a727b8190f837ae54494678511167bf40db53f98",
      "parents": [
        "63af49102373ac575eee2a8c30e2facbb13e1ca5",
        "bdb2a90570b6fcdcb85d010070f77f7cea61e41a"
      ],
      "author": {
        "name": "John Reck",
        "email": "jreck@google.com",
        "time": "Fri Jul 24 04:05:13 2015 +0000"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Fri Jul 24 04:05:13 2015 +0000"
      },
      "message": "am bdb2a905: am d08fb687: am e5783e58: am 2abf0f24: Fix a race condition that could cause lockup\n\n* commit \u0027bdb2a90570b6fcdcb85d010070f77f7cea61e41a\u0027:\n  Fix a race condition that could cause lockup\n"
    },
    {
      "commit": "c5d3dde6c70e7d7e83cad85cfd6720f4017a7498",
      "tree": "bf85989f3cb91ddff580ddb8f66ff1fb84364ace",
      "parents": [
        "0e0d4ec99f8ee9248f5eee3f4596ecbfc80f10c2",
        "8b1154c487c25388107dc024376435f3b0ae2385"
      ],
      "author": {
        "name": "John Reck",
        "email": "jreck@google.com",
        "time": "Fri Jul 24 00:02:23 2015 +0000"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Fri Jul 24 00:02:23 2015 +0000"
      },
      "message": "am 8b1154c4: Merge \"Move updateMatrix() call to animateCommon\" into mnc-dev\n\n* commit \u00278b1154c487c25388107dc024376435f3b0ae2385\u0027:\n  Move updateMatrix() call to animateCommon\n"
    },
    {
      "commit": "49dec430e8a38943c5e934c1e31b724bf53c47c4",
      "tree": "d75a3266a20b4810f179ffa4fd14c7d939182e6d",
      "parents": [
        "a2bf7616044051769df86cf5f0bb4b21dedd5269"
      ],
      "author": {
        "name": "John Reck",
        "email": "jreck@google.com",
        "time": "Thu Jul 23 15:33:12 2015 -0700"
      },
      "committer": {
        "name": "John Reck",
        "email": "jreck@google.com",
        "time": "Thu Jul 23 22:37:21 2015 +0000"
      },
      "message": "Move updateMatrix() call to animateCommon\n\nBug: 22667315\n\nHWUI internally always assumes that RenderNode-\u003eproperties()\nhas a fully-baked matrix. However, RenderThread animations violate\nthis and will perform an update of that matrix after they run. This\nwas missing in the fallback scenario where an animation was\nrunning on a View that is detached from the tree.\n\nIf a RenderThread animation is started on an attached view, it becomes\ndetached, and is then re-attached it will crash in the staging\nproperties push. The fix for this is to move the call to updateMatrix\nfrom animate() to animateCommon() so that the animateNoDamage()\npath will similarly perform the necessary matrix update.\n\nChange-Id: I4c899a6f68659342a6515f1d7f20d3c4af65caf0\n"
    },
    {
      "commit": "e5783e58db79f342ae0e264dc9c902cca92fc7bb",
      "tree": "be3b5dc6e36919222473d4d955e0ca783ac592d6",
      "parents": [
        "5a18b4bfe2cf30df2e18047c155fecc6433ed52c",
        "2abf0f24af60b8644d5b61eed9666793083546ee"
      ],
      "author": {
        "name": "John Reck",
        "email": "jreck@google.com",
        "time": "Thu Jul 23 19:20:47 2015 +0000"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Thu Jul 23 19:20:47 2015 +0000"
      },
      "message": "am 2abf0f24: Fix a race condition that could cause lockup\n\n* commit \u00272abf0f24af60b8644d5b61eed9666793083546ee\u0027:\n  Fix a race condition that could cause lockup\n"
    },
    {
      "commit": "2abf0f24af60b8644d5b61eed9666793083546ee",
      "tree": "7df9cac21e2e15614c366d1a738870846c16ad2b",
      "parents": [
        "b3e407609f567884f9322e7b34461baa14e3f3ae"
      ],
      "author": {
        "name": "John Reck",
        "email": "jreck@google.com",
        "time": "Thu Jul 23 10:27:30 2015 -0700"
      },
      "committer": {
        "name": "John Reck",
        "email": "jreck@google.com",
        "time": "Thu Jul 23 17:34:14 2015 +0000"
      },
      "message": "Fix a race condition that could cause lockup\n\nBug: 22676664\n\nIf a task is queued on a worker thread that is busy\nprocessing a task AND a trim memory signal comes along\nprior to the initial task being completed then the\ntasks that were queued prior to the exit request will\nnever be processed.\n\nThis is bad, as when those futures are used later on, such\nas in trying to delete them from the cache, they will block\nwaiting for the orphaned task to be finished.\n\nSimple fix is to just never stop the worker threads. Increase\nRAM usage slightly as we won\u0027t reclaim that stack space, but\nthis cost is fairly small\n\nChange-Id: I818b011f9bc6ba06942fdad81c27656bd97b42d4\n"
    },
    {
      "commit": "a2fd32348b06b22963fcc7c33179fddbd2394dbf",
      "tree": "1bd8b90259aedb291153f2b51ff26ed6e53b3c99",
      "parents": [
        "cc432cc08919cec386213f993b36bfdc5adf6ed0",
        "3bfe4b47c7629fab50e64a62d1fa72ab714aa9e0"
      ],
      "author": {
        "name": "John Reck",
        "email": "jreck@google.com",
        "time": "Tue Jul 21 21:45:54 2015 +0000"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Tue Jul 21 21:45:54 2015 +0000"
      },
      "message": "am 3bfe4b47: am 1cd5afc1: am 9317d0b9: am 1fddd3ef: Merge \"Mark isInUse per-window\" into mnc-dev\n\n* commit \u00273bfe4b47c7629fab50e64a62d1fa72ab714aa9e0\u0027:\n  Mark isInUse per-window\n"
    },
    {
      "commit": "9317d0b9904573bdb0d815ec563dd263447f11db",
      "tree": "ebc8fe43d6981e62b16e6640343b5ed74022c26c",
      "parents": [
        "cf6500b9bae461107d5c0c58de511df907d19fb3",
        "1fddd3efa9ac10e794d7bdf457b7b52c7e4614f7"
      ],
      "author": {
        "name": "John Reck",
        "email": "jreck@google.com",
        "time": "Tue Jul 21 21:04:45 2015 +0000"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Tue Jul 21 21:04:45 2015 +0000"
      },
      "message": "am 1fddd3ef: Merge \"Mark isInUse per-window\" into mnc-dev\n\n* commit \u00271fddd3efa9ac10e794d7bdf457b7b52c7e4614f7\u0027:\n  Mark isInUse per-window\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": "3699c60323aca45eb0e385d6b4a27bd5861fadf2",
      "tree": "34c11cb48b8a9d1f29a7ad3ac5e2f83ca4ef4361",
      "parents": [
        "37a69731cbcbc6a37e464cc7c022eece3a3bab8e",
        "62a2696cd2b7387ce20ec9cb9805563f313da86a"
      ],
      "author": {
        "name": "Chris Craik",
        "email": "ccraik@google.com",
        "time": "Sat Jul 18 00:51:34 2015 +0000"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Sat Jul 18 00:51:34 2015 +0000"
      },
      "message": "am 62a2696c: am fbd2d949: am b6e41a08: am 0bb5c26b: Merge \"Fix AssetAtlas usage in BitmapShaders\" into mnc-dev\n\n* commit \u002762a2696cd2b7387ce20ec9cb9805563f313da86a\u0027:\n  Fix AssetAtlas usage in BitmapShaders\n"
    },
    {
      "commit": "b6e41a08826d01dba3ad30c14e72e3531d22d0ad",
      "tree": "f68a4c9ae332b6491f94f3d5cfcc390b223713d5",
      "parents": [
        "1f72739a0b546d8a26ec0f704fcfeaf9d051fd37",
        "0bb5c26bcea4b171583e57134b9717c77fbdcb14"
      ],
      "author": {
        "name": "Chris Craik",
        "email": "ccraik@google.com",
        "time": "Sat Jul 18 00:07:13 2015 +0000"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Sat Jul 18 00:07:13 2015 +0000"
      },
      "message": "am 0bb5c26b: Merge \"Fix AssetAtlas usage in BitmapShaders\" into mnc-dev\n\n* commit \u00270bb5c26bcea4b171583e57134b9717c77fbdcb14\u0027:\n  Fix AssetAtlas usage in BitmapShaders\n"
    },
    {
      "commit": "0bb5c26bcea4b171583e57134b9717c77fbdcb14",
      "tree": "f30bfaaa722b76dff1434d4e82416f375cfb1f1e",
      "parents": [
        "57ee4b87fee76d9f85d28a09e370a92b5839a8dd",
        "6ad690e16f8e139bfd29a035b52ab616d813a74b"
      ],
      "author": {
        "name": "Chris Craik",
        "email": "ccraik@google.com",
        "time": "Fri Jul 17 23:59:14 2015 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Jul 17 23:59:17 2015 +0000"
      },
      "message": "Merge \"Fix AssetAtlas usage in BitmapShaders\" into mnc-dev"
    },
    {
      "commit": "6ad690e16f8e139bfd29a035b52ab616d813a74b",
      "tree": "8d4493016f1530ce19d30c98d2692b67f2de28e1",
      "parents": [
        "db8fa48ed0864125a07f2bbe078fd60abd875ac7"
      ],
      "author": {
        "name": "Chris Craik",
        "email": "ccraik@google.com",
        "time": "Fri Jul 17 15:51:36 2015 -0700"
      },
      "committer": {
        "name": "Chris Craik",
        "email": "ccraik@google.com",
        "time": "Fri Jul 17 15:53:24 2015 -0700"
      },
      "message": "Fix AssetAtlas usage in BitmapShaders\n\nbug:22521999\n\nChange-Id: I60859748ceee19ebc89ec98845e550ea26e36ecd\n"
    },
    {
      "commit": "8f587bfb05c0db2d48692c9701ac2d97e43acdc1",
      "tree": "e0617438335da1c76942eddd4a85b296e31c9b16",
      "parents": [
        "ee924dedcc36d64a72652bb3e5fb64d5d5c4c6a4",
        "4c93506881fa710d69557a592f3fc7759b3ec9c4"
      ],
      "author": {
        "name": "Chris Craik",
        "email": "ccraik@google.com",
        "time": "Thu Jul 16 23:05:36 2015 +0000"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Thu Jul 16 23:05:36 2015 +0000"
      },
      "message": "am 4c935068: am 41b43d7c: am 7b0fa466: am 0f724601: Merge \"Fix clip area behavior for REPLACE op\" into mnc-dev\n\n* commit \u00274c93506881fa710d69557a592f3fc7759b3ec9c4\u0027:\n  Fix clip area behavior for REPLACE op\n"
    },
    {
      "commit": "7b0fa466b59002342d14030aafb7e2f9473ca14d",
      "tree": "5b4cd0a2750d61718de3d51baad2595ebc672c45",
      "parents": [
        "9236af43d8418459b939049d4e7a092d2b58bff8",
        "0f724601d78d8f36a297333227d9c460e10b3203"
      ],
      "author": {
        "name": "Chris Craik",
        "email": "ccraik@google.com",
        "time": "Thu Jul 16 22:23:34 2015 +0000"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Thu Jul 16 22:23:34 2015 +0000"
      },
      "message": "am 0f724601: Merge \"Fix clip area behavior for REPLACE op\" into mnc-dev\n\n* commit \u00270f724601d78d8f36a297333227d9c460e10b3203\u0027:\n  Fix clip area behavior for REPLACE op\n"
    },
    {
      "commit": "8ce8f3f4d68a7750bc02b5254ebbd8658281e675",
      "tree": "d3a5bcc9fa72f5ccd59a52e3b032c604f4ba1c96",
      "parents": [
        "db8fa48ed0864125a07f2bbe078fd60abd875ac7"
      ],
      "author": {
        "name": "Chris Craik",
        "email": "ccraik@google.com",
        "time": "Thu Jul 16 13:07:45 2015 -0700"
      },
      "committer": {
        "name": "Chris Craik",
        "email": "ccraik@google.com",
        "time": "Thu Jul 16 13:31:41 2015 -0700"
      },
      "message": "Fix clip area behavior for REPLACE op\n\nbug:22291400\n\nWork around clippath-clipped-to-view-bounds behavior by\nimplementing REPLACE op fast path, avoiding the transition to\nSkRegion/SkPath.\n\nChange-Id: I63c1cf961db2d6e3759d83914de1036c9ac7497a\n"
    },
    {
      "commit": "be7e2a476fd8f3e25710a96a391a2d9ca2ddad99",
      "tree": "c24060932b77079cc9ca4275aa86b755182bd7d8",
      "parents": [
        "de0fa318fb3d7e7634e5b86c2edf244ba5fdb52d",
        "599287b14d32bbe6b5eea4e610cc14d8224362b6"
      ],
      "author": {
        "name": "John Reck",
        "email": "jreck@google.com",
        "time": "Thu Jul 16 17:43:53 2015 +0000"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Thu Jul 16 17:43:53 2015 +0000"
      },
      "message": "am 599287b1: am b4d49a4d: am d5612d06: am ba4f0757: Merge \"Don\\\u0027t crash on makeCurrent fail\" into mnc-dev\n\n* commit \u0027599287b14d32bbe6b5eea4e610cc14d8224362b6\u0027:\n  Don\u0027t crash on makeCurrent fail\n"
    },
    {
      "commit": "d5612d06c46e0a3e2d1b55cc4288ea6759b96a94",
      "tree": "8c1cb2e2040d7afae06ccdace0b4e87693b9cdcd",
      "parents": [
        "245466b5734546264b0492455fd2f6dc135daf39",
        "ba4f0757779d6e91e52ebee0fd4c847b673a69e2"
      ],
      "author": {
        "name": "John Reck",
        "email": "jreck@google.com",
        "time": "Thu Jul 16 17:01:22 2015 +0000"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Thu Jul 16 17:01:22 2015 +0000"
      },
      "message": "am ba4f0757: Merge \"Don\\\u0027t crash on makeCurrent fail\" into mnc-dev\n\n* commit \u0027ba4f0757779d6e91e52ebee0fd4c847b673a69e2\u0027:\n  Don\u0027t crash on makeCurrent fail\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": "cd843caa3704a14d02a2b8df6e72be8a2f53049c",
      "tree": "8ccd03c12f9f4a83662a39e71fbff6e810d128c3",
      "parents": [
        "0c1df463034a32cbaac35d0400317d58222742aa",
        "230d8243de5ef33a18c610a7b2f21fb6caa8e277"
      ],
      "author": {
        "name": "Chris Craik",
        "email": "ccraik@google.com",
        "time": "Tue Jul 14 18:21:45 2015 +0000"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Tue Jul 14 18:21:45 2015 +0000"
      },
      "message": "am 230d8243: am 9f43ac77: am e2a5c184: am 941bcedb: Merge \"Fix unsafety in SkiaShader storage, and texture unit accounting\" into mnc-dev\n\n* commit \u0027230d8243de5ef33a18c610a7b2f21fb6caa8e277\u0027:\n  Fix unsafety in SkiaShader storage, and texture unit accounting\n"
    },
    {
      "commit": "e2a5c184e396b748e390672996ebeca25c2b9b83",
      "tree": "b607f28804f135e46e8cd04fd80d743d41531830",
      "parents": [
        "5eaf24126d4496f9a157280007b8bb89500a3ea1",
        "941bcedb4c03832cd54225217697c7b8cba6e07c"
      ],
      "author": {
        "name": "Chris Craik",
        "email": "ccraik@google.com",
        "time": "Tue Jul 14 17:35:50 2015 +0000"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Tue Jul 14 17:35:50 2015 +0000"
      },
      "message": "am 941bcedb: Merge \"Fix unsafety in SkiaShader storage, and texture unit accounting\" into mnc-dev\n\n* commit \u0027941bcedb4c03832cd54225217697c7b8cba6e07c\u0027:\n  Fix unsafety in SkiaShader storage, and texture unit accounting\n"
    },
    {
      "commit": "e310f83d591dc3fb7bd5c684239481a586f00662",
      "tree": "01ab6dae5ea6d1a2f407f291980f931741a58126",
      "parents": [
        "208934ff010cc2aff7d8fee9237d6cee0e5bb563"
      ],
      "author": {
        "name": "Chris Craik",
        "email": "ccraik@google.com",
        "time": "Mon Jul 13 13:34:07 2015 -0700"
      },
      "committer": {
        "name": "Chris Craik",
        "email": "ccraik@google.com",
        "time": "Mon Jul 13 13:34:07 2015 -0700"
      },
      "message": "Fix unsafety in SkiaShader storage, and texture unit accounting\n\nbug:22390304\n\nFixes two issues:\n\n1) The max texture unit wasn\u0027t large enough to handle the most complex\nComposeShader case (1 for draw primitive, 2 for gradient shader, 1 for\nbitmap shader).\n\n2) If a shader isn\u0027t supported by SkiaShader::store, the shader data\nneeds to be explicitly disabled, so we won\u0027t read uninitilized data\nfrom it when trying to read shader information out.\n\nChange-Id: I29ee7b7c1e07f67db88c1707bdc857daa305e713\n"
    },
    {
      "commit": "a5e2946f5ab7618997fb317ad9f5f56c160ebee5",
      "tree": "88dfd248392e0ac914706ba1893e1ca518276a9c",
      "parents": [
        "cc72e69ec07e02157d0d946995a1fd1ec48c9279",
        "b9d7bba5c5453f894608971fed44aed023dcd6ba"
      ],
      "author": {
        "name": "Tom Hudson",
        "email": "tomhudson@google.com",
        "time": "Fri Jul 10 13:22:39 2015 +0000"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Fri Jul 10 13:22:39 2015 +0000"
      },
      "message": "am b9d7bba5: am 434b577f: am 8ac76504: am 9613e9b7: Merge \"New setLocalMatrix() operation for HWUI\" into mnc-dev\n\n* commit \u0027b9d7bba5c5453f894608971fed44aed023dcd6ba\u0027:\n  New setLocalMatrix() operation for HWUI\n"
    },
    {
      "commit": "8ac76504feb4837ea524b2e62a0bd04c1e266d9a",
      "tree": "0b6fed86cd0b62d6c1dc61c7ffa1518317480f82",
      "parents": [
        "aa70c3328b7683bf6a0fea206124508a32cacf63",
        "9613e9b76410b15b7f2700080a17476bf9f3461c"
      ],
      "author": {
        "name": "Tom Hudson",
        "email": "tomhudson@google.com",
        "time": "Fri Jul 10 12:46:24 2015 +0000"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Fri Jul 10 12:46:24 2015 +0000"
      },
      "message": "am 9613e9b7: Merge \"New setLocalMatrix() operation for HWUI\" into mnc-dev\n\n* commit \u00279613e9b76410b15b7f2700080a17476bf9f3461c\u0027:\n  New setLocalMatrix() operation for HWUI\n"
    },
    {
      "commit": "9613e9b76410b15b7f2700080a17476bf9f3461c",
      "tree": "35f0b8e04e59ffe2b2463d41f5b9f8d1146a91f6",
      "parents": [
        "0236e6b2d614abd11678de4cec4ed67b582541ff",
        "ac7b6d33d23cb0baaf61c723346198d41f012035"
      ],
      "author": {
        "name": "Tom Hudson",
        "email": "tomhudson@google.com",
        "time": "Fri Jul 10 12:35:10 2015 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Jul 10 12:35:12 2015 +0000"
      },
      "message": "Merge \"New setLocalMatrix() operation for HWUI\" into mnc-dev"
    },
    {
      "commit": "ac7b6d33d23cb0baaf61c723346198d41f012035",
      "tree": "9302223ad4dd2337f6e6b4524fe83032532c20a4",
      "parents": [
        "937edac8e8583023019b625dd426ebf65169e30d"
      ],
      "author": {
        "name": "Tom Hudson",
        "email": "tomhudson@google.com",
        "time": "Tue Jun 30 11:26:13 2015 -0400"
      },
      "committer": {
        "name": "Tom Hudson",
        "email": "tomhudson@google.com",
        "time": "Thu Jul 09 16:15:31 2015 -0400"
      },
      "message": "New setLocalMatrix() operation for HWUI\n\nConcats any matrix passed through from DisplayListCanvas with the\ninitialTransform of the containing RenderNode.\n\nBUG:22189925\n\nChange-Id: I5ea54a6e2a29520c79a8860bde7682694e8595d2\n"
    },
    {
      "commit": "ea103a9f7fb94b2d6cd290df648e50417a0c1c76",
      "tree": "45a9d201f1d5e02eedd87522d823399bac7dfce5",
      "parents": [
        "d4abc2494ab83596f82755099d58edefffee5d8a",
        "0ea996cfe257785dfcb65724fcb270361f1e8ea0"
      ],
      "author": {
        "name": "John Reck",
        "email": "jreck@google.com",
        "time": "Wed Jul 08 16:20:02 2015 +0000"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Wed Jul 08 16:20:02 2015 +0000"
      },
      "message": "am 0ea996cf: am 62a65071: am dcf8837d: Merge \"Restrict number of hwuiTask threads\" into mnc-dr-dev\n\n* commit \u00270ea996cfe257785dfcb65724fcb270361f1e8ea0\u0027:\n  Restrict number of hwuiTask threads\n"
    },
    {
      "commit": "dcf8837d4902ea50f2421eecde64fe55e3d98b28",
      "tree": "7837fb34c2789feb24237de2f123439d31d0a5ee",
      "parents": [
        "4c0c6739d6b22ac84f24d53250e239f5e97b5470",
        "c452654a4571ef010a00cef79f82b6b2179704f6"
      ],
      "author": {
        "name": "John Reck",
        "email": "jreck@google.com",
        "time": "Wed Jul 08 15:40:42 2015 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Jul 08 15:40:44 2015 +0000"
      },
      "message": "Merge \"Restrict number of hwuiTask threads\" into mnc-dr-dev"
    },
    {
      "commit": "41e4d8b3ed044ed724bc340b77d3f9ca60105407",
      "tree": "36084d9b4f9080f972b44d40621ab35659634f84",
      "parents": [
        "fb770e48993e1c72603e3a8fe965088e31fdd8e2",
        "0c218e43b8126eaffb38aa24af8e46e22835c3cb"
      ],
      "author": {
        "name": "Chris Craik",
        "email": "ccraik@google.com",
        "time": "Wed Jul 08 03:00:28 2015 +0000"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Wed Jul 08 03:00:28 2015 +0000"
      },
      "message": "am 0c218e43: am 9ca926ad: am fdb87b76: am 127b478a: Merge \"Remove all usage of fmin and fmax\" into mnc-dev\n\n* commit \u00270c218e43b8126eaffb38aa24af8e46e22835c3cb\u0027:\n  Remove all usage of fmin and fmax\n"
    },
    {
      "commit": "127b478ac61eed99894998b38bca82b79b8e56b1",
      "tree": "9c8d52d07e2692ba3bb6ab1fb814ec66cbb3fcff",
      "parents": [
        "5544cb421c38d2f0a966a69d112ca7685aa716f7",
        "e6a15ee3d0c78eb3f2551d73a7d238c3d8d2f075"
      ],
      "author": {
        "name": "Chris Craik",
        "email": "ccraik@google.com",
        "time": "Wed Jul 08 01:53:56 2015 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Jul 08 01:53:57 2015 +0000"
      },
      "message": "Merge \"Remove all usage of fmin and fmax\" into mnc-dev"
    },
    {
      "commit": "e6a15ee3d0c78eb3f2551d73a7d238c3d8d2f075",
      "tree": "fb4aa5c04487f1f2c13221937933288e2a3fff44",
      "parents": [
        "61d7acae0cafc265e94a35ad3ba1677f60346de9"
      ],
      "author": {
        "name": "Chris Craik",
        "email": "ccraik@google.com",
        "time": "Tue Jul 07 18:42:17 2015 -0700"
      },
      "committer": {
        "name": "Chris Craik",
        "email": "ccraik@google.com",
        "time": "Tue Jul 07 18:42:42 2015 -0700"
      },
      "message": "Remove all usage of fmin and fmax\n\nbug:22208220\n\nRemoves needless call, and upconversion to doubles in multiple places.\n\nChange-Id: I1b949fa5f206446ac34de800154c0147d6bd8034\n"
    },
    {
      "commit": "c452654a4571ef010a00cef79f82b6b2179704f6",
      "tree": "2f6c65842178e128a29aa19dbb03d5c50d1f9a38",
      "parents": [
        "00c713fd379edca0f3b472f55bd5d315bad671fb"
      ],
      "author": {
        "name": "John Reck",
        "email": "jreck@google.com",
        "time": "Tue Jul 07 12:17:50 2015 -0700"
      },
      "committer": {
        "name": "John Reck",
        "email": "jreck@google.com",
        "time": "Tue Jul 07 16:19:57 2015 -0700"
      },
      "message": "Restrict number of hwuiTask threads\n\nBug: 22324907\nChange-Id: I0013557ede15949a5bd6f3f75bc5dd023a9f945b\n"
    },
    {
      "commit": "9d080ff64162da9772974400c53566659ab28eec",
      "tree": "002450ced20cfff4b768dbd77168c4c54b63815e",
      "parents": [
        "9061d3cb907fe5bd35b8ef203dac86f758cd6ac0",
        "ab614e540a343ea820f8d6d30fa06d92bfe20e74"
      ],
      "author": {
        "name": "Chris Craik",
        "email": "ccraik@google.com",
        "time": "Tue Jul 07 19:57:36 2015 +0000"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Tue Jul 07 19:57:36 2015 +0000"
      },
      "message": "am ab614e54: am 30eaf590: am df134e87: am 54d1f043: Merge \"Simplify matrix copy constructor/load\" into mnc-dev\n\n* commit \u0027ab614e540a343ea820f8d6d30fa06d92bfe20e74\u0027:\n  Simplify matrix copy constructor/load\n"
    },
    {
      "commit": "54d1f0439eb0fef47e9e9c7ac3d6ec5b283c4793",
      "tree": "104075b0fe5dd03570fa8290a833db0eccdada4b",
      "parents": [
        "024bce82292786f9b71da488f06a0bb35d029bbf",
        "d2bfcc74fcea6d5ee199da514e075efeeb1165fd"
      ],
      "author": {
        "name": "Chris Craik",
        "email": "ccraik@google.com",
        "time": "Tue Jul 07 19:09:41 2015 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Jul 07 19:09:43 2015 +0000"
      },
      "message": "Merge \"Simplify matrix copy constructor/load\" into mnc-dev"
    },
    {
      "commit": "7772b03d5e3a8bce01cac511197afc52c9e56f5f",
      "tree": "c5c0e73a86de4ca211bba28a0cc834f4181e0a81",
      "parents": [
        "91a920099f871125bab78f7843bedf6984c2a71b",
        "6ac3b54df6151edf25560bce7b9efc388e47f8de"
      ],
      "author": {
        "name": "John Reck",
        "email": "jreck@google.com",
        "time": "Tue Jul 07 17:34:28 2015 +0000"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Tue Jul 07 17:34:28 2015 +0000"
      },
      "message": "am 6ac3b54d: am 8e5d4761: am dfbae1f9: am 15b64099: Merge \"Adjust for pipeline stalls\" into mnc-dev\n\n* commit \u00276ac3b54df6151edf25560bce7b9efc388e47f8de\u0027:\n  Adjust for pipeline stalls\n"
    },
    {
      "commit": "d2bfcc74fcea6d5ee199da514e075efeeb1165fd",
      "tree": "215cabbc08e089564d9199d518581b0fb15d4c19",
      "parents": [
        "61d7acae0cafc265e94a35ad3ba1677f60346de9"
      ],
      "author": {
        "name": "Chris Craik",
        "email": "ccraik@google.com",
        "time": "Tue Jul 07 09:59:23 2015 -0700"
      },
      "committer": {
        "name": "Chris Craik",
        "email": "ccraik@google.com",
        "time": "Tue Jul 07 10:09:35 2015 -0700"
      },
      "message": "Simplify matrix copy constructor/load\n\nbug:22208220\n\nChange-Id: Id096eb8de8da0dd1687d6af9456b16ce2a1a589b\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": "e463f28eae88d0433a7bb41f5534b86000578900",
      "tree": "77544bce9fe5cb2bad174b73aa3b7829cc18d6ff",
      "parents": [
        "fd2b1f024e85d8e612be1e1b8d1ded9a1ffdc4da",
        "1826da24d84539960ed0959c9af2eea58c8b1668"
      ],
      "author": {
        "name": "John Reck",
        "email": "jreck@google.com",
        "time": "Thu Jul 02 01:01:49 2015 +0000"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Thu Jul 02 01:01:49 2015 +0000"
      },
      "message": "am 1826da24: am f70a5a78: Merge \"Set go-faster arguments\" into mnc-dev\n\n* commit \u00271826da24d84539960ed0959c9af2eea58c8b1668\u0027:\n  Set go-faster arguments\n"
    },
    {
      "commit": "91d01e5d8b9a50ad04f0d0b5d6e35885f5d878a3",
      "tree": "991379c358b05d06b0746fdb74cbd74a7b1e7335",
      "parents": [
        "0197667ad672fae482366c4d5d86c8cf35286fb6",
        "0cec52933306b0e268bb6b4f8bf73648addf0df6"
      ],
      "author": {
        "name": "John Reck",
        "email": "jreck@google.com",
        "time": "Thu Jul 02 01:00:52 2015 +0000"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Thu Jul 02 01:00:52 2015 +0000"
      },
      "message": "am 0cec5293: am d7580333: Merge \"Use std::sort instead of quickSortX\" into mnc-dev\n\n* commit \u00270cec52933306b0e268bb6b4f8bf73648addf0df6\u0027:\n  Use std::sort instead of quickSortX\n"
    },
    {
      "commit": "c3988e0aa337b74693feb0abb898eb87fbb61b58",
      "tree": "1ff13ecb765e88de340bb3b1531a028222b11487",
      "parents": [
        "c54e0ef628aba18365933dd8833e6929c646b7b7",
        "b4c02e8ffd0c37b645fa8bb9fc03918a8cfc9a81"
      ],
      "author": {
        "name": "Chris Craik",
        "email": "ccraik@google.com",
        "time": "Thu Jul 02 00:59:49 2015 +0000"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Thu Jul 02 00:59:49 2015 +0000"
      },
      "message": "am b4c02e8f: am d3ecb3e6: Merge \"Switch from fminf/fmaxf to std::min/max\" into mnc-dev\n\n* commit \u0027b4c02e8ffd0c37b645fa8bb9fc03918a8cfc9a81\u0027:\n  Switch from fminf/fmaxf to std::min/max\n"
    },
    {
      "commit": "f70a5a78bb98893b87a39d9d187b2cd6200bf229",
      "tree": "d25bc28bedeea1dcf31ceea1a82532c30635a23e",
      "parents": [
        "f3be3ddfd86c362f21948b8253bf8a88a710ed82",
        "5600d579b9b59bb9fab75f20d89ab0e447e85f00"
      ],
      "author": {
        "name": "John Reck",
        "email": "jreck@google.com",
        "time": "Wed Jul 01 23:52:17 2015 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Jul 01 23:52:20 2015 +0000"
      },
      "message": "Merge \"Set go-faster arguments\" into mnc-dev"
    },
    {
      "commit": "d758033368595a65182367ca74d46f42472cb078",
      "tree": "37c77c99bde043ac88443a8d50265014324f8128",
      "parents": [
        "e4ed47087f7efde64bc5764f21d007d0ce98da48",
        "1e4209e3871493ccfb09e43634d4082f49c227be"
      ],
      "author": {
        "name": "John Reck",
        "email": "jreck@google.com",
        "time": "Wed Jul 01 20:54:45 2015 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Jul 01 20:55:23 2015 +0000"
      },
      "message": "Merge \"Use std::sort instead of quickSortX\" into mnc-dev"
    },
    {
      "commit": "5600d579b9b59bb9fab75f20d89ab0e447e85f00",
      "tree": "c55b6c44e1ed86726fda597c20a69e2560dbfdce",
      "parents": [
        "e3fc5415ed65ee7ad451069022b5405361aeb2e7"
      ],
      "author": {
        "name": "John Reck",
        "email": "jreck@google.com",
        "time": "Wed Jul 01 13:51:44 2015 -0700"
      },
      "committer": {
        "name": "John Reck",
        "email": "jreck@google.com",
        "time": "Wed Jul 01 13:51:44 2015 -0700"
      },
      "message": "Set go-faster arguments\n\nBug: 22208220\n\nIncreases performance of shadows by yet another\n15% by using more aggressive math optimizations\n\nChange-Id: Ie3fabeae3647632a19ff573bf6b2d7f7a7cef555\n"
    },
    {
      "commit": "d3ecb3e6f04a0f76c886238af6bef1d10b987a42",
      "tree": "301913580215be04d3393b47d12339dcdd1db32e",
      "parents": [
        "a10277e3e4c01e08f53b98eac3c98bf94482b106",
        "df72b63928cc1492b72ba9a4e99d5e714f93ccc6"
      ],
      "author": {
        "name": "Chris Craik",
        "email": "ccraik@google.com",
        "time": "Wed Jul 01 18:10:30 2015 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Jul 01 18:10:33 2015 +0000"
      },
      "message": "Merge \"Switch from fminf/fmaxf to std::min/max\" into mnc-dev"
    },
    {
      "commit": "1e4209e3871493ccfb09e43634d4082f49c227be",
      "tree": "b88f538a992e9edb4ecacb92c6b4c56be3a6b4f1",
      "parents": [
        "e3fc5415ed65ee7ad451069022b5405361aeb2e7"
      ],
      "author": {
        "name": "John Reck",
        "email": "jreck@google.com",
        "time": "Wed Jul 01 09:54:47 2015 -0700"
      },
      "committer": {
        "name": "John Reck",
        "email": "jreck@google.com",
        "time": "Wed Jul 01 09:54:47 2015 -0700"
      },
      "message": "Use std::sort instead of quickSortX\n\nBug: 22208220\n\nLibcxx has a really good sort algorithm, use that\ninstead. This speeds up shadow tesellation by about 10%.\n\nAlso less code\n\nChange-Id: Iaad424187121d7644076f94ba8a3cf4c110da2f2\n"
    },
    {
      "commit": "df72b63928cc1492b72ba9a4e99d5e714f93ccc6",
      "tree": "38b94479dabc9aea2dfcde3a64348c51bc39cecf",
      "parents": [
        "82b3f67711246ad5beaf7702ce16e9d433406d1e"
      ],
      "author": {
        "name": "Chris Craik",
        "email": "ccraik@google.com",
        "time": "Tue Jun 30 17:56:13 2015 -0700"
      },
      "committer": {
        "name": "Chris Craik",
        "email": "ccraik@google.com",
        "time": "Tue Jun 30 17:58:21 2015 -0700"
      },
      "message": "Switch from fminf/fmaxf to std::min/max\n\nbug:22208220\n\nShows considerable improvement in performance, especially in tight\nloops.\n\nChange-Id: I4bcf6584a3c145bfc55e73c9c73dcf6199290b3c\n"
    },
    {
      "commit": "6aa9b4abf335d7ecf5c33cc48b41f9f9f8cbd8ab",
      "tree": "67b688d5aa15e896bf5be01b69a508908e990929",
      "parents": [
        "872eba0e993323224001ebff57c5892b0f026bfe",
        "cf225194a61db1558ead673fd67365ff9a61f3bb"
      ],
      "author": {
        "name": "Chris Craik",
        "email": "ccraik@google.com",
        "time": "Tue Jun 30 21:40:41 2015 +0000"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Tue Jun 30 21:40:41 2015 +0000"
      },
      "message": "am cf225194: am a763bb83: Merge \"Saturate alpha values when overlaying glyphs\" into mnc-dev\n\n* commit \u0027cf225194a61db1558ead673fd67365ff9a61f3bb\u0027:\n  Saturate alpha values when overlaying glyphs\n"
    },
    {
      "commit": "de25a672b18171a3d14315b34dc7c8fcf46ae91e",
      "tree": "3b1d9ec041624c9f2bec3f8e1d319d311baf867c",
      "parents": [
        "82b3f67711246ad5beaf7702ce16e9d433406d1e"
      ],
      "author": {
        "name": "Chris Craik",
        "email": "ccraik@google.com",
        "time": "Tue Jun 30 13:12:24 2015 -0700"
      },
      "committer": {
        "name": "Chris Craik",
        "email": "ccraik@google.com",
        "time": "Tue Jun 30 13:24:18 2015 -0700"
      },
      "message": "Saturate alpha values when overlaying glyphs\n\nbug:19062769\n\nGlyphs were stored to the output buffer with the assumption of\nnon-overlap, which is incorrect for certain fonts/strings. Instead,\nblend src into dst, so new glyphs don\u0027t clobber existing content.\n\nChange-Id: I6e22037500e67d5348ee2a43d939416c23c4d1ea\n"
    },
    {
      "commit": "53a19bb967f45ddfb80699865dc30094024343f6",
      "tree": "2a62eaf57ecc5c06010e372c886425df361a2d2c",
      "parents": [
        "0515ad6ac0806d88ac371730c064a0ae5bc5db42",
        "d3d6e9a37e86e386988b84120d53cf52192dbc21"
      ],
      "author": {
        "name": "Yusuke Sato",
        "email": "yusukes@google.com",
        "time": "Mon Jun 29 13:09:51 2015 -0700"
      },
      "committer": {
        "name": "Yusuke Sato",
        "email": "yusukes@google.com",
        "time": "Mon Jun 29 13:09:51 2015 -0700"
      },
      "message": "resolved conflicts for merge of d3d6e9a3 to mnc-dev-plus-aosp\n\nChange-Id: Ie32db11e6c1062df32b16a5cd6fcd219e0bdc017\n"
    },
    {
      "commit": "16d520fce6a3cecdc6b50e184a00b9585b86e512",
      "tree": "dd8c0fb841448546c4565aada8c1ef2a344f68a7",
      "parents": [
        "ffe72f70e0da02868848c7e71d8f44a5463925ea",
        "f162faaa1266ad38c293e1e54911e389f39c2654"
      ],
      "author": {
        "name": "Yusuke Sato",
        "email": "yusukes@google.com",
        "time": "Mon Jun 29 17:49:28 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Mon Jun 29 17:49:33 2015 +0000"
      },
      "message": "Merge \"Rename ZipEntryName to ZipString\""
    },
    {
      "commit": "f8d25ea8ebece1d13f71f3e92dac814d02a32b91",
      "tree": "43e0fddd15e7ebdf2a99f18df3f579e9f6a2119c",
      "parents": [
        "daee1e5bdeb6a173c042438f79663c9a84a469b8",
        "b60d3e7856f74c72898b2cba553db0d2e2d1365d"
      ],
      "author": {
        "name": "Chris Craik",
        "email": "ccraik@google.com",
        "time": "Fri Jun 26 20:28:34 2015 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Jun 26 20:28:36 2015 +0000"
      },
      "message": "Merge \"Don\u0027t promote functors onto layers due to outline rect clipping\" into mnc-dev"
    },
    {
      "commit": "b60d3e7856f74c72898b2cba553db0d2e2d1365d",
      "tree": "e774f13f701dbfff2f966279712bc23332191434",
      "parents": [
        "bcca4ac4fb4fa66f2e4196437998c08e4dbed1d3"
      ],
      "author": {
        "name": "Chris Craik",
        "email": "ccraik@google.com",
        "time": "Thu Jun 25 17:15:16 2015 -0700"
      },
      "committer": {
        "name": "Chris Craik",
        "email": "ccraik@google.com",
        "time": "Thu Jun 25 17:15:17 2015 -0700"
      },
      "message": "Don\u0027t promote functors onto layers due to outline rect clipping\n\nbug:21320333\n\nChange-Id: Ie70982c88498395148dab6eaca861de66e6207ed\n"
    },
    {
      "commit": "f162faaa1266ad38c293e1e54911e389f39c2654",
      "tree": "c09a8bf5b8fe2165eec4c5df87da1582289cb6b1",
      "parents": [
        "fdb70dc4346f801673aa700f3fca2b8cc77b809c"
      ],
      "author": {
        "name": "Yusuke Sato",
        "email": "yusukes@google.com",
        "time": "Thu Jun 25 14:58:16 2015 -0700"
      },
      "committer": {
        "name": "Yusuke Sato",
        "email": "yusukes@google.com",
        "time": "Thu Jun 25 14:58:16 2015 -0700"
      },
      "message": "Rename ZipEntryName to ZipString\n\nAlso add a 4th parameter to StartIteration(). This is for\nhttps://android-review.googlesource.com/#/c/156771/.\n\nBug: 21957428\nChange-Id: Ifbf9aec2f04b214b57e99c306282d7c0d39675a9\n"
    },
    {
      "commit": "5daee1dc27d7b0eadfddefcaf73da229579fd436",
      "tree": "d4a0266b5958a240d241a38b778bfc79da45bad0",
      "parents": [
        "fd70942147edec7eb512c72c3fd0f89a3d7fa646",
        "1240752c44c21632adaf64f6768669ec6d0ebc8c"
      ],
      "author": {
        "name": "Tenghui Zhu",
        "email": "ztenghui@google.com",
        "time": "Thu Jun 25 21:45:31 2015 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Jun 25 21:45:32 2015 +0000"
      },
      "message": "Merge \"Limit dotProduct value to 1.0f, so acosf would not return NaN.\" into mnc-dev"
    },
    {
      "commit": "1240752c44c21632adaf64f6768669ec6d0ebc8c",
      "tree": "930d6be4b4df16ee3459fd0830bf1cfa9ded0a5b",
      "parents": [
        "9440a6e6bed93e2816647b6834d543fd57181a86"
      ],
      "author": {
        "name": "Lazar Trsic",
        "email": "Lazar.Trsic@imgtec.com",
        "time": "Tue Jun 23 11:46:49 2015 +0200"
      },
      "committer": {
        "name": "ztenghui",
        "email": "ztenghui@google.com",
        "time": "Thu Jun 25 14:22:13 2015 -0700"
      },
      "message": "Limit dotProduct value to 1.0f, so acosf would not return NaN.\n\nCherry pick of b561f39d01c211425bfefaaa7b31ebe097e7ba79 from AOSP master.\n\nDue to precision loss of float math, we sometimes get 1.000001f for\ndotProduct. This causes NaN result from acosf() and floor() funcs.\n\nAt the moment, this does not cause any problems on ARM, as casting\nNaN to int results in 0. On mips however (possibly on x86), such cast\ngives INT_MAX, so crash occurs when trying to use the resulting value.\n\nChange-Id: I8e0285a0306a65b8469d9f4885c19665066fc4c8\n"
    },
    {
      "commit": "0f61c7dcc40276788f58300d5d8ca85be2ce0e59",
      "tree": "6726a44acd823cc9736289b8490b8939edc0c23d",
      "parents": [
        "1979dd631d2da88c5d920013b5162700622bd0d3",
        "34fe3df8519523dbb4bc27010fa57f259d5e868d"
      ],
      "author": {
        "name": "Yusuke Sato",
        "email": "yusukes@google.com",
        "time": "Thu Jun 25 17:33:59 2015 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Jun 25 17:34:01 2015 +0000"
      },
      "message": "Merge \"Let findSupportedAbi and hasRenderscriptBitcode scan only relevant files\" into mnc-dev"
    },
    {
      "commit": "b561f39d01c211425bfefaaa7b31ebe097e7ba79",
      "tree": "32553696e76e3ca1757a6c2d8862bb57fe3841f2",
      "parents": [
        "e6734b6b1247577ebdeacff441f6ab8cfe25a1e3"
      ],
      "author": {
        "name": "Lazar Trsic",
        "email": "Lazar.Trsic@imgtec.com",
        "time": "Tue Jun 23 11:46:49 2015 +0200"
      },
      "committer": {
        "name": "Nikola Veljkovic",
        "email": "Nikola.Veljkovic@imgtec.com",
        "time": "Thu Jun 25 11:11:55 2015 +0200"
      },
      "message": "Limit dotProduct value to 1.0f, so acosf would not return NaN.\n\nDue to precision loss of float math, we sometimes get 1.000001f for\ndotProduct. This causes NaN result from acosf() and floor() funcs.\n\nAt the moment, this does not cause any problems on ARM, as casting\nNaN to int results in 0. On mips however (possibly on x86), such cast\ngives INT_MAX, so crash occurs when trying to use the resulting value.\n\nChange-Id: I8e0285a0306a65b8469d9f4885c19665066fc4c8\n"
    },
    {
      "commit": "6659ac77edc9b328aacd8b07d656661c3a3f50c9",
      "tree": "816e5f33b39fd6690e53791776e11450138404fd",
      "parents": [
        "ccba036dd37a99c3beaf1cdf58665109c4931b19",
        "3375f8ad30997482317b5ade5618cc8a01b96d7d"
      ],
      "author": {
        "name": "Chris Craik",
        "email": "ccraik@google.com",
        "time": "Wed Jun 24 17:57:59 2015 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Jun 24 17:58:01 2015 +0000"
      },
      "message": "Merge \"Avoid over-damaging layer area for multidraws\" into mnc-dev"
    },
    {
      "commit": "3375f8ad30997482317b5ade5618cc8a01b96d7d",
      "tree": "a127539cea3216485ea8797ba3ad1d5447d98899",
      "parents": [
        "bcca4ac4fb4fa66f2e4196437998c08e4dbed1d3"
      ],
      "author": {
        "name": "Chris Craik",
        "email": "ccraik@google.com",
        "time": "Tue Jun 23 17:33:06 2015 -0700"
      },
      "committer": {
        "name": "Chris Craik",
        "email": "ccraik@google.com",
        "time": "Wed Jun 24 09:43:54 2015 -0700"
      },
      "message": "Avoid over-damaging layer area for multidraws\n\nbug:19608961\n\nChange-Id: Ib7495f155da62a352e9a010a362fd40ec0acad21\n"
    },
    {
      "commit": "a81a0c86473e49df331cc2f6bdcefa980e3c1ec2",
      "tree": "1a74dd9db040e6051d19feb73f0ccaaa9c8f28d1",
      "parents": [
        "e042f952b3dd82fb38749c282e9273c8dc8326df",
        "90fb1f6732a610ad5ff6acdb3bd9ae392c8eac82"
      ],
      "author": {
        "name": "Tom Hudson",
        "email": "tomhudson@google.com",
        "time": "Wed Jun 24 14:53:56 2015 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Jun 24 14:53:58 2015 +0000"
      },
      "message": "Merge \"Sync canvas proxy CTM (b/21945972)\" into mnc-dev"
    },
    {
      "commit": "90fb1f6732a610ad5ff6acdb3bd9ae392c8eac82",
      "tree": "6de48ca292004cd9e3e0d06b9daf2da4d78a3829",
      "parents": [
        "82e595fd6e3a9438b090106c226bb2f8bb2a6254"
      ],
      "author": {
        "name": "Tom Hudson",
        "email": "tomhudson@google.com",
        "time": "Wed Jun 24 09:13:50 2015 -0400"
      },
      "committer": {
        "name": "Tom Hudson",
        "email": "tomhudson@google.com",
        "time": "Wed Jun 24 10:43:16 2015 -0400"
      },
      "message": "Sync canvas proxy CTM (b/21945972)\n\nSkiaCanvasProxy was being created with an identity transform, ignoring\nany transform that may have been applied in Java (or C++) to the\nandroid graphics Canvas it was proxy for. This CL makes sure the\nDisplayListCanvas transform is propagated to the Proxy every time\nasSkCanvas() is called.\n\nWe could instead move the code to the SkiaCanvasProxy constructor\nif we got rid of the cached proxy on DisplayListCanvas; nobody\u0027s\nusing the proxy heavily enough that that should be a performance\nhit at this time.\n\nBUG:21945972\nR\u003ddjsollen@google.com\n\nChange-Id: I99ed1563802a2449bb9939cb67976cd60dd8611c\n"
    },
    {
      "commit": "c686757a183028deef5f27ed6c0412417f59cf35",
      "tree": "5a73b55dc1dde70c815f3966e03e3d8868e883e0",
      "parents": [
        "aef3698f9a80626fc8dc8be5e4d1359cafcc17d2",
        "5ec6a2878b2ad933c5da6fe2341c854155acc24c"
      ],
      "author": {
        "name": "Chris Craik",
        "email": "ccraik@google.com",
        "time": "Wed Jun 24 00:12:49 2015 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Jun 24 00:12:51 2015 +0000"
      },
      "message": "Merge \"Unify clipping return value behavior - true if not empty\" into mnc-dev"
    },
    {
      "commit": "5ec6a2878b2ad933c5da6fe2341c854155acc24c",
      "tree": "9f60a3aebc541a4141ee426a02a3293628bb286b",
      "parents": [
        "bcca4ac4fb4fa66f2e4196437998c08e4dbed1d3"
      ],
      "author": {
        "name": "Chris Craik",
        "email": "ccraik@google.com",
        "time": "Tue Jun 23 15:42:12 2015 -0700"
      },
      "committer": {
        "name": "Chris Craik",
        "email": "ccraik@google.com",
        "time": "Tue Jun 23 15:42:43 2015 -0700"
      },
      "message": "Unify clipping return value behavior - true if not empty\n\nbug:22035484\n\nChange-Id: I23ecca38554a60c590181290900deb0e2c48cea1\n"
    },
    {
      "commit": "0d99d43e819c90f009077b234572e353f2e453fa",
      "tree": "34d8b3350ad51d202ada468e7f7737d5069603fe",
      "parents": [
        "ff0924c72dabc7072cd85a76a5b26f097107146c",
        "5686bae28926dae6e4b4d380d75d18e77335c9d3"
      ],
      "author": {
        "name": "Chris Craik",
        "email": "ccraik@google.com",
        "time": "Tue Jun 23 18:01:00 2015 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Jun 23 18:01:02 2015 +0000"
      },
      "message": "Merge \"Dump GL errors and crash on failure to allocate texture for layer\" into mnc-dev"
    },
    {
      "commit": "5686bae28926dae6e4b4d380d75d18e77335c9d3",
      "tree": "feb4517efea1d59851ed0e93007695fa643ddade",
      "parents": [
        "bcca4ac4fb4fa66f2e4196437998c08e4dbed1d3"
      ],
      "author": {
        "name": "Chris Craik",
        "email": "ccraik@google.com",
        "time": "Tue Jun 23 10:33:46 2015 -0700"
      },
      "committer": {
        "name": "Chris Craik",
        "email": "ccraik@google.com",
        "time": "Tue Jun 23 10:34:54 2015 -0700"
      },
      "message": "Dump GL errors and crash on failure to allocate texture for layer\n\nbug:22029728\n\nChange-Id: Ib6f778975225b36567b12e30967955640ec185b3\n"
    },
    {
      "commit": "34fe3df8519523dbb4bc27010fa57f259d5e868d",
      "tree": "08282d0b6cc64337f57e5d9964bf14d42580fddb",
      "parents": [
        "84a378f256bf7925ceb5d2c039a033d3e59b75df"
      ],
      "author": {
        "name": "Yusuke Sato",
        "email": "yusukes@google.com",
        "time": "Fri Jun 19 17:18:07 2015 -0700"
      },
      "committer": {
        "name": "Yusuke Sato",
        "email": "yusukes@google.com",
        "time": "Mon Jun 22 16:11:32 2015 -0700"
      },
      "message": "Let findSupportedAbi and hasRenderscriptBitcode scan only relevant files\n\nfor better performance. Without the optimization, these two functions\nmay check more than 100k file names in the pre-installed APK files,\nwhich can take a few seconds to finish even on a recent device.\n\nBug: 21957428\nChange-Id: I315fd3c6d5aa1076b993752525de449a9933de12\n"
    },
    {
      "commit": "772687d24206e2fa2deebf0980a932573a624b17",
      "tree": "4d7441b8fad63cc6ea29c24a5cc51e276b5f3bcd",
      "parents": [
        "bcca4ac4fb4fa66f2e4196437998c08e4dbed1d3"
      ],
      "author": {
        "name": "Chris Craik",
        "email": "ccraik@google.com",
        "time": "Mon Jun 22 14:51:18 2015 -0700"
      },
      "committer": {
        "name": "Chris Craik",
        "email": "ccraik@google.com",
        "time": "Mon Jun 22 14:51:18 2015 -0700"
      },
      "message": "Avoid flushing DisplayListCanvas state for noop calls\n\nbug:22006795\n\nChange-Id: I2eceee69772b08f5319ea882be429a5b36860b7d\n"
    },
    {
      "commit": "407753c456c1eb2c8556ae7891b6bef43b044e76",
      "tree": "8dcc64a1dd532071a5a626821bc4d54abd6a3b4d",
      "parents": [
        "dc22cfed5d3a65dcd3979113dbce468ad8ec2868"
      ],
      "author": {
        "name": "Narayan Kamath",
        "email": "narayan@google.com",
        "time": "Tue Jun 16 12:02:57 2015 +0100"
      },
      "committer": {
        "name": "Narayan Kamath",
        "email": "narayan@google.com",
        "time": "Wed Jun 17 13:13:16 2015 +0000"
      },
      "message": "ZipFileRO: Use precise widths for zip file types.\n\ngetEntryInfo crashes on 64-bit devices because \"long\" types\nwere being passed int pointers (that pointed to a stack frame)\nthat were reinterpret_cast\u0027ed to long* (sigh.). To fix this issue\nonce and for all, use types with explicitly defined widths.\n\nThis change also removes some dead invariant checking from\nAsset.cpp instead of cleaning it up.\n\nNote that we\u0027ve introduced a wart in NativeLibraryHelper, where\nwe need to deal with zlib\u0027s uLong type, which is \"at least 32 bits\nwide\".\n\nbug: 21622286\n\n(cherry picked from commit 4600dd053dbdbd4b95f3b11057a1cc55b99f9c77)\n\nChange-Id: I7886cb37a229cc27c625699c80e6a6a6117d2203\n"
    },
    {
      "commit": "4600dd053dbdbd4b95f3b11057a1cc55b99f9c77",
      "tree": "c4bb116de6b55b054a73083165c9512fbf21c164",
      "parents": [
        "5e063b1da52cca1b93b19bdf7be694aabf95d336"
      ],
      "author": {
        "name": "Narayan Kamath",
        "email": "narayan@google.com",
        "time": "Tue Jun 16 12:02:57 2015 +0100"
      },
      "committer": {
        "name": "Narayan Kamath",
        "email": "narayan@google.com",
        "time": "Wed Jun 17 08:40:25 2015 +0000"
      },
      "message": "ZipFileRO: Use precise widths for zip file types.\n\ngetEntryInfo crashes on 64-bit devices because \"long\" types\nwere being passed int pointers (that pointed to a stack frame)\nthat were reinterpret_cast\u0027ed to long* (sigh.). To fix this issue\nonce and for all, use types with explicitly defined widths.\n\nThis change also removes some dead invariant checking from\nAsset.cpp instead of cleaning it up.\n\nNote that we\u0027ve introduced a wart in NativeLibraryHelper, where\nwe need to deal with zlib\u0027s uLong type, which is \"at least 32 bits\nwide\".\n\nbug: 21622286\n\nChange-Id: Iae675a9601db7aae03a8b80b40321d2cc1d97f50\n"
    },
    {
      "commit": "3f725f0a5abd23833176bdc26fda964e923e75de",
      "tree": "6d043228a90695c33ba52f5a5cab69a80ce1e1c7",
      "parents": [
        "6138a43ca9b312014bc9f57c1802180dc88188b2"
      ],
      "author": {
        "name": "John Reck",
        "email": "jreck@google.com",
        "time": "Tue Jun 16 10:29:31 2015 -0700"
      },
      "committer": {
        "name": "John Reck",
        "email": "jreck@google.com",
        "time": "Tue Jun 16 10:29:31 2015 -0700"
      },
      "message": "Fix null deref\n\nBug: 21857172\n\nwillHaveFunctor was assuming that either mStagingDisplayList\nor mDisplayList would be non-null but this isn\u0027t true. Both\ncan be null in some scenarios (notably after a trimMemory)\n\nChange-Id: Ia2915b84cfc907ec9c7cbec54ed6dc26283ec998\n"
    },
    {
      "commit": "4c9dafbfecf00ba3dca0c5de61d889676bfdc7af",
      "tree": "263d7d69e9728c60441e202abc338746088caf06",
      "parents": [
        "1a3048f3677680823b52d3b0d538917d08da8495",
        "a766cb2bce5db9108c0266fbebea6aa18d5713ff"
      ],
      "author": {
        "name": "Chris Craik",
        "email": "ccraik@google.com",
        "time": "Fri Jun 12 22:46:19 2015 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Jun 12 22:46:21 2015 +0000"
      },
      "message": "Merge \"Put WebViews with on a HW layer if stencil/shader clipping is needed\" into mnc-dev"
    },
    {
      "commit": "eaef7b6cb14fd8b9886cc66bea272fc3ab9f7312",
      "tree": "3ecf8db2ee5706b63bba6eabf0aad3a591940240",
      "parents": [
        "8a90866a9a70b8610035f38c610585b945ae0871",
        "b1f990de4075866ad8f40849c01d58b2dac8b1e5"
      ],
      "author": {
        "name": "Chris Craik",
        "email": "ccraik@google.com",
        "time": "Fri Jun 12 21:23:21 2015 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Jun 12 21:23:23 2015 +0000"
      },
      "message": "Merge \"Fix roundrect clipping / blending ordering\" into mnc-dev"
    },
    {
      "commit": "a766cb2bce5db9108c0266fbebea6aa18d5713ff",
      "tree": "2718003d7dc16d0a5f94aeda1acf40c5eaae8fad",
      "parents": [
        "4e9d9b2a590105035c29f12ecf0689333e6b55e7"
      ],
      "author": {
        "name": "Chris Craik",
        "email": "ccraik@google.com",
        "time": "Mon Jun 08 16:49:43 2015 -0700"
      },
      "committer": {
        "name": "Chris Craik",
        "email": "ccraik@google.com",
        "time": "Fri Jun 12 13:34:58 2015 -0700"
      },
      "message": "Put WebViews with on a HW layer if stencil/shader clipping is needed\n\nbug:17322378\nChange-Id: I0de574bf116b30e2ad4194366e19d47d49708902\n"
    },
    {
      "commit": "b1f990de4075866ad8f40849c01d58b2dac8b1e5",
      "tree": "b4d8c94fd3be3d6cf68479728824e43e379e2cc2",
      "parents": [
        "cc87cfa29c4b38d1f119bdce652918565b0fed0f"
      ],
      "author": {
        "name": "Chris Craik",
        "email": "ccraik@google.com",
        "time": "Fri Jun 12 11:28:52 2015 -0700"
      },
      "committer": {
        "name": "Chris Craik",
        "email": "ccraik@google.com",
        "time": "Fri Jun 12 13:20:37 2015 -0700"
      },
      "message": "Fix roundrect clipping / blending ordering\n\nbug:21803918\n\nAlso, don\u0027t consider rr clipped ops opaque, and put stage\nchecking behind a debug flag.\n\nChange-Id: I9304ae571337a7cf835524682d1a590a21d30fa4\n"
    },
    {
      "commit": "4e9d9b2a590105035c29f12ecf0689333e6b55e7",
      "tree": "250eea350d584e8d280d5923eb2a3ad092d2f3c7",
      "parents": [
        "cc87cfa29c4b38d1f119bdce652918565b0fed0f"
      ],
      "author": {
        "name": "Chris Craik",
        "email": "ccraik@google.com",
        "time": "Fri Jun 12 11:07:23 2015 -0700"
      },
      "committer": {
        "name": "Chris Craik",
        "email": "ccraik@google.com",
        "time": "Fri Jun 12 11:07:23 2015 -0700"
      },
      "message": "Revert to save-layer based alpha if layer would be too large\n\nbug:21011574\nChange-Id: I323f2398188ffc2bbed6a98578d25d7e5f6c337d\n"
    },
    {
      "commit": "475c545fa8ea0d87bc3704ae3c0bf73bb060dcb8",
      "tree": "33ff6bfdf1e1589ef5f4552713a478a7a3a4cde2",
      "parents": [
        "31ed2044e2907954b32148c06b131d3069b1c8ca",
        "37b0824a46157b7e169ad7ec33a46e89c851884c"
      ],
      "author": {
        "name": "John Reck",
        "email": "jreck@google.com",
        "time": "Tue Jun 09 22:30:12 2015 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Jun 09 22:32:33 2015 +0000"
      },
      "message": "Merge \"Upload bitmaps in SkShader* safely\" into mnc-dev"
    },
    {
      "commit": "37b0824a46157b7e169ad7ec33a46e89c851884c",
      "tree": "0fae87101df3a38ff8ef5c125cc6bdb3498bdad9",
      "parents": [
        "4538ef2abcdf672e12f00bd944a816af35f16ed1"
      ],
      "author": {
        "name": "John Reck",
        "email": "jreck@google.com",
        "time": "Tue Jun 09 13:12:40 2015 -0700"
      },
      "committer": {
        "name": "John Reck",
        "email": "jreck@google.com",
        "time": "Tue Jun 09 15:27:52 2015 -0700"
      },
      "message": "Upload bitmaps in SkShader* safely\n\nBug: 19412589\nChange-Id: Id50c08ff523d5540f60c39b435c0ab1b4c685655\n"
    },
    {
      "commit": "f087c828cd0c4f58d0b98bdc73061204b831dd0b",
      "tree": "69a4f02d08169a33a49f47ddc6c724b7f29267c5",
      "parents": [
        "34a63ba4d79567146f2724c47b06ffa4f21639da"
      ],
      "author": {
        "name": "ywen",
        "email": "ywen@codeaurora.org",
        "time": "Thu May 28 14:10:53 2015 +0800"
      },
      "committer": {
        "name": "Digish Pandya",
        "email": "digishp@codeaurora.org",
        "time": "Tue Jun 09 17:51:35 2015 +0530"
      },
      "message": "Fix a GL error leak issue\n\nglFinish() dequeues a native buffer, and it fails when\nthe bufeer has been abandoned, this is ok and will not\ncasue the app crash\n\nGL_OUT_OF_MEMORY is generated in this case, and it is\nnot reset until glGetError called. This is happened in\nbuild layer function, glGetError is called after glTexImg2d,\nand get GL_OUT_OF_MEMORY, then this function return as OOM,\nand app crash\n\nFix it by adding a glGetError after glFinish\n\nChange-Id: I8803a726b6f609c4a2f8a6aa6bb7ff7064808932\n"
    },
    {
      "commit": "62043203df362addaf1692657dde1993d88d9b52",
      "tree": "9d6acc99bcdefff1d962bfba5f24055235bf3a01",
      "parents": [
        "623bf636de8f6f53ffa46127ed3fa5477be0a094",
        "4538ef2abcdf672e12f00bd944a816af35f16ed1"
      ],
      "author": {
        "name": "John Reck",
        "email": "jreck@google.com",
        "time": "Mon Jun 08 22:51:42 2015 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Jun 08 22:51:43 2015 +0000"
      },
      "message": "Merge \"Delete unused\" into mnc-dev"
    },
    {
      "commit": "4538ef2abcdf672e12f00bd944a816af35f16ed1",
      "tree": "4f5245d1bc8e54b2bc2ead309fa0b45a49a37182",
      "parents": [
        "e50b091df9586c5c41d219ffb0c41fa3f893c329"
      ],
      "author": {
        "name": "John Reck",
        "email": "jreck@google.com",
        "time": "Mon Jun 08 15:45:58 2015 -0700"
      },
      "committer": {
        "name": "John Reck",
        "email": "jreck@google.com",
        "time": "Mon Jun 08 15:45:58 2015 -0700"
      },
      "message": "Delete unused\n\nChange-Id: If27e1eb8e42313eae14df58a24ca54fafb2992fa\n"
    }
  ],
  "next": "37cf07717137a41fd5c3724fe9c44de2f89a7f8c"
}
