)]}'
{
  "log": [
    {
      "commit": "350993591974a8c7a2eca665f96304d296104789",
      "tree": "a00369450feb420fa9ec18f3d122e2a3593de8ec",
      "parents": [
        "2b89f73ef805022c4e8b9bad545c1aa0421e5586"
      ],
      "author": {
        "name": "Fabrice Di Meglio",
        "email": "fdimeglio@google.com",
        "time": "Wed Dec 12 11:52:03 2012 -0800"
      },
      "committer": {
        "name": "Fabrice Di Meglio",
        "email": "fdimeglio@google.com",
        "time": "Wed Dec 12 11:52:03 2012 -0800"
      },
      "message": "Fix bug #7724071 ImageView drawable is not loaded correctly when changing Locale\n\naapt is not generating the correct CONFIG_LAYOUTDIR bit when a Drawable has a\nLTR and RTL version. It was generating instead the wrong CONFIG_SCREEN_LAYOUT bit.\n\nThis was linked to the fact that the layout direction bits are contained into the\nscreen layout bit.\n\nSo now make sure that we are generating the correct CONFIG_LAYOUTDIR bit.\n\nChange-Id: If17c84d31e6c128721ed97ee6711660b131bf941\n"
    },
    {
      "commit": "d15321bbf57ff7a4615076fefcee5e196c4fc796",
      "tree": "db1880599db3ea7f2faf16daba38f30d788510b1",
      "parents": [
        "f0afad008bf78576ff364bcd8bc93b7aa8090b34"
      ],
      "author": {
        "name": "Chris Craik",
        "email": "ccraik@google.com",
        "time": "Wed Nov 28 14:45:04 2012 -0800"
      },
      "committer": {
        "name": "Chris Craik",
        "email": "ccraik@google.com",
        "time": "Wed Nov 28 14:45:04 2012 -0800"
      },
      "message": "Use the same interrupt/resume logic for all functor calls\n\nbug:7093396\n\nThe functor was able to change the renderer\u0027s blend mode without it\nbeing restored in process mode. This single path of updating gl caches\nreduces likelihood of this occurring in the future.\n\nChange-Id: Ie367532f9c683299f02bc4f635d7cb31f96db39f\n"
    },
    {
      "commit": "7fae5216d24ebe67e22777ab933689dbcbc001b9",
      "tree": "cafed3ae6a4d8bfad73b81ecc2325ce906e4537d",
      "parents": [
        "dbcec903c858b65c78620e2b06238e42ff4d12da"
      ],
      "author": {
        "name": "Chris Craik",
        "email": "ccraik@google.com",
        "time": "Thu Nov 01 11:27:03 2012 -0700"
      },
      "committer": {
        "name": "Chris Craik",
        "email": "ccraik@google.com",
        "time": "Thu Nov 01 11:27:03 2012 -0700"
      },
      "message": "Avoid tesselation path when useCenter is set\n\nbug:7458300\n\nThe tesselation path doesn\u0027t handle sharp joins.\n\nChange-Id: I28bf03f3b72fc584a205daa40934dda17031098f\n"
    },
    {
      "commit": "fbba753f62f13a12d9287c67921d1ea60e92768d",
      "tree": "fc7c9718a6056e41d0923d63107c702f17452972",
      "parents": [
        "b75ade9cce02dffb967ff4719381254585074c58",
        "3561d062ff01f3455c984e4cfcd101a64a2e902f"
      ],
      "author": {
        "name": "Chet Haase",
        "email": "chet@google.com",
        "time": "Tue Oct 23 15:45:41 2012 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Oct 23 15:46:04 2012 -0700"
      },
      "message": "Merge \"Handle offscreen animations correctly\" into jb-mr1-dev"
    },
    {
      "commit": "3561d062ff01f3455c984e4cfcd101a64a2e902f",
      "tree": "200f8761630bcb930a6b5fa4ddf410e54a958932",
      "parents": [
        "74437532fe2a3e9ebd15c61327fd3f2b68c299b3"
      ],
      "author": {
        "name": "Chet Haase",
        "email": "chet@google.com",
        "time": "Tue Oct 23 12:54:51 2012 -0700"
      },
      "committer": {
        "name": "Chet Haase",
        "email": "chet@google.com",
        "time": "Tue Oct 23 15:30:15 2012 -0700"
      },
      "message": "Handle offscreen animations correctly\n\nA bug in software rendering caused animations on views that are offscreen\nto not get drawn, therefore the animation doesn\u0027t continue (since old-style\nanimations depend on the logic in the drawing code to keep running). Fix is\nto special case the isAnimating case in ViewRoot to go ahead and schedule\na traversal even if the dirty rect does not intersect with the visible region.\n\nIssue #7396035 Animations starting offscreen don\u0027t draw run/end/draw properly (sw rendering only)\n\nChange-Id: Iae25b3a424ddc5a16ba431ecd68cf42d5500db3f\n"
    },
    {
      "commit": "41308e2936c768103d0e9c82500e97938d6797f1",
      "tree": "b31868af7c192446f213156bd10ae57211d44712",
      "parents": [
        "74437532fe2a3e9ebd15c61327fd3f2b68c299b3"
      ],
      "author": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Mon Oct 22 20:02:43 2012 -0700"
      },
      "committer": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Mon Oct 22 20:02:43 2012 -0700"
      },
      "message": "Properly draw the window background on window resize\nBug #7385090\n\nThis change gets rid of two silly asumptions:\n- That a layer needs to be cleared with opaque black (it shouldn\u0027t,\nit\u0027s already cleared to transparent and the view will cover it up\nwith its own background)\n- The the clip should be dirty at the beginning of a frame only\nwhen the render target is opaque\n\nChange-Id: I415b6d3cab196057fb0281419a53fef601a44e28\n"
    },
    {
      "commit": "547e66531d521eb1eadac87edb0f79f8c2f1bbe0",
      "tree": "b7687d438e358ace879a20228d0c2c6a820d0c58",
      "parents": [
        "d6e3ad54907ec085aa41e5c77296e9f385c22e67"
      ],
      "author": {
        "name": "Chet Haase",
        "email": "chet@google.com",
        "time": "Mon Oct 22 15:07:26 2012 -0700"
      },
      "committer": {
        "name": "Chet Haase",
        "email": "chet@google.com",
        "time": "Mon Oct 22 15:25:19 2012 -0700"
      },
      "message": "Don\u0027t null the reference to Bitmap pixels until we\u0027re really ready\n\nA change in the VM triggers a native memory error more aggressively than before,\nshowing that there\u0027s a bug in the logic of recycling bitmaps. Since the pixel\nmemory is allocated on the Java heap, nulling out the reference to that memory\nin the Java level Bitmap object can cause that memory to get collected at any time.\nMeanwhile, we may have a reference to that memory at the native level for rendering\npurposes, causing an error if/when we access that memory after it has been collected\nby the VM.\n\nThe fix is to avoid setting the reference to the pixels to null unless we are\nnot referring to it in native code. This is determined at the time we call\nrecycle() - we return a boolean to indicate whether the native code is still\nusing the memory. if not, the Java code can null out the reference and allow the\nVM to collect it. Otherwise, it will get collected later when the encompassing\nBitmap object is collected.\n\nIssue #7339156 HTML5 tests crash the app (Vellamo)\n\nChange-Id: I3a0d6b9a6c5dd3b86cc2b0ff7719007e774b5e3c\n"
    },
    {
      "commit": "7c25aab491707f7324f9941b8cfa9bd2b4b97e76",
      "tree": "2e670c818c33bf2ead5342dad73b48e000d2e94c",
      "parents": [
        "b2e2f2470693e78baed20617f989d9a166864ed4"
      ],
      "author": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Thu Oct 18 15:05:02 2012 -0700"
      },
      "committer": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Thu Oct 18 15:05:02 2012 -0700"
      },
      "message": "Defer layer rendering to avoid stalls\nBug #7326824\n\nWhen a layer is taken out of the cache and initialized it gets cleared\nto prepare it for future rendering. This triggers the following sequence\nof operations:\n\nglBindFramebuffer(layer.fbo)\nattach texture storage to FBO\nglClear()\nglBindFramebuffer(defaultFbo)\n\nThe clear forces a resolve on tilers which stalls the CPU for a little\nwhile, thus producing jank during animations. This change moves the\nclear to the next frame when we know we will have to execute a resolve\nanyway.\n\nChange-Id: Ic1939c25df20ed65a4c48dc81ee549b2cd8b6ec3\n"
    },
    {
      "commit": "b2e2f2470693e78baed20617f989d9a166864ed4",
      "tree": "c6987b167eba200f405c170e0ddf7e6881aeca3c",
      "parents": [
        "9c474738a29f77359a461035855d6e9b3935ade1"
      ],
      "author": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Wed Oct 17 18:18:35 2012 -0700"
      },
      "committer": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Wed Oct 17 18:18:35 2012 -0700"
      },
      "message": "Take into account the texture layer\u0027s transform for clipping\nBug #7370212\n\nChange-Id: Ibdc3161306f54a1cfe66e08458f05ee01a13b1df\n"
    },
    {
      "commit": "52439570800891345981c0968b513843edc2b27a",
      "tree": "4860208c622ae4ed724baa91d306708daae66e8c",
      "parents": [
        "0ee71adde01298784a2cbb667c4c1570bdbf0af0"
      ],
      "author": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Wed Oct 17 12:14:11 2012 -0700"
      },
      "committer": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Wed Oct 17 12:14:11 2012 -0700"
      },
      "message": "Enable mipmapping, without a deadlock this time\nBug #7353771\n\nChange-Id: I89a08a58608e374f1c604a26ee0769d5850b2f7b\n"
    },
    {
      "commit": "be29d82f740fea2ed35d89bd9aa4644f4c042762",
      "tree": "3a91bd617bfe76f299b341bbe840bdad4b0c8545",
      "parents": [
        "91ffeddb8b6ceec9a18ae34f88bd56560335de7f",
        "aa42c9af6ea2158a685ebf9b338e6d2355712268"
      ],
      "author": {
        "name": "Chet Haase",
        "email": "chet@google.com",
        "time": "Wed Oct 17 07:51:45 2012 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Oct 17 07:51:46 2012 -0700"
      },
      "message": "Merge \"Correctly adjust clip regions that lie offscreen\" into jb-mr1-dev"
    },
    {
      "commit": "a33d161250b0787f4e7a3f3f09244451e22496ce",
      "tree": "651e3640c08d0bc6b5e739ce03335e80db05080b",
      "parents": [
        "05ad745ff63ed3bcdb86d42290ddc2ee214fe90f"
      ],
      "author": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Tue Oct 16 21:26:43 2012 -0700"
      },
      "committer": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Tue Oct 16 21:26:43 2012 -0700"
      },
      "message": "workaround to unbreak the build (deadlock during boot)\n\nbug: 7363206\nChange-Id: Ie79c309e367ba07336a5299af9fd59c6bd2390e7\n"
    },
    {
      "commit": "1b85122bd22c4528679ae8bd67077dfc2fdf1847",
      "tree": "4664b577e4dfdd34b63e6004961c8c7d2f3e1e0b",
      "parents": [
        "e13ae648504661ca158d15aa415568e351b380c4",
        "713e1bb9df6bdfc21bd5c40d1a6ecf6c822a4be5"
      ],
      "author": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Tue Oct 16 19:05:48 2012 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Oct 16 19:05:49 2012 -0700"
      },
      "message": "Merge \"Add API to enable mipmaps on Bitmap Bug #7353771\" into jb-mr1-dev"
    },
    {
      "commit": "713e1bb9df6bdfc21bd5c40d1a6ecf6c822a4be5",
      "tree": "d2cb42c7e05fff03274f9acdbdee80d848a86da2",
      "parents": [
        "d43b22da291fd08017fac627561091a633c85807"
      ],
      "author": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Tue Oct 16 18:44:09 2012 -0700"
      },
      "committer": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Tue Oct 16 18:44:09 2012 -0700"
      },
      "message": "Add API to enable mipmaps on Bitmap\nBug #7353771\n\nThis API can be used when scaling large images down to a small size\nto get nicer looking results.\n\nChange-Id: If09087eed36077eee5355f6047a3ca67747d7d9e\n"
    },
    {
      "commit": "aa42c9af6ea2158a685ebf9b338e6d2355712268",
      "tree": "051d7e09ddbc7baf5afa0a9d4d151a302c8ee0d8",
      "parents": [
        "d07fa6e0dc8141e5e77ffec6863f81a246bf8384"
      ],
      "author": {
        "name": "Chet Haase",
        "email": "chet@google.com",
        "time": "Tue Oct 16 17:36:16 2012 -0700"
      },
      "committer": {
        "name": "Chet Haase",
        "email": "chet@google.com",
        "time": "Tue Oct 16 17:36:16 2012 -0700"
      },
      "message": "Correctly adjust clip regions that lie offscreen\n\nWe were clamping the x/y location of the scissor to 0,0, but not adjusting\nthe width/height appropriately. This fix adjusts width/height and also clamps\nthem to 0 to correctly clip out offscreen operations.\n\nIssue #7221524 Top left and top right portions of the screen blanks out after some time\n\nChange-Id: I47f23336ea612409ed86652b9a68e272819ef00e\n"
    },
    {
      "commit": "5778cb9a98aacd74c7f915b2d02eccc7189d5946",
      "tree": "42204b359e9383be3d2c0a0a3d099192a940b6dc",
      "parents": [
        "827dde0e1a0452e7aba116aa981a1229dce7038b",
        "d43b22da291fd08017fac627561091a633c85807"
      ],
      "author": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Tue Oct 16 13:49:52 2012 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Oct 16 13:50:54 2012 -0700"
      },
      "message": "Merge \"Always use the correct pixel store size Bug #7357394\" into jb-mr1-dev"
    },
    {
      "commit": "d43b22da291fd08017fac627561091a633c85807",
      "tree": "f03a0488697614a39366f81f22878339e1096f16",
      "parents": [
        "4682cf02b42f75876f14f512e874c3e798b09c9c"
      ],
      "author": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Tue Oct 16 11:25:06 2012 -0700"
      },
      "committer": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Tue Oct 16 11:25:06 2012 -0700"
      },
      "message": "Always use the correct pixel store size\nBug #7357394\n\nWhen a bitmap is reused it may change configuration which can lead\nto a different pixel store alignment. Our current texture cache\nimplementation assumes this never happens and keeps the old alignment\nwhich can lead to distorted texture (if the bitmap goes from\nARGB8888 to RGB565 for instance.)\n\nChange-Id: Ic57acf2403411ae4d0924e92f221298350612617\n"
    },
    {
      "commit": "a92bb4dc9605c86b8773c929412af2dc242b1fa8",
      "tree": "bf77badb865a50d59f6d9ecf40426ab6e0a72bbb",
      "parents": [
        "4682cf02b42f75876f14f512e874c3e798b09c9c"
      ],
      "author": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Tue Oct 16 11:08:44 2012 -0700"
      },
      "committer": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Tue Oct 16 11:09:26 2012 -0700"
      },
      "message": "Support clipping in Canvas.drawBitmapMesh()\nBug #7354162\n\nChange-Id: Ifd1d0b365e8a4d88e0ff0629c9ee13f27e1a7331\n"
    },
    {
      "commit": "780c12875ce0c0d3fd072484d4b8b3c327cc4f31",
      "tree": "fbe1cf1e671c4a2725f710f969bc1d690876c981",
      "parents": [
        "a30d969401a8533a5a341664421ba9b1e150bac3"
      ],
      "author": {
        "name": "Chris Craik",
        "email": "ccraik@google.com",
        "time": "Thu Oct 04 14:10:49 2012 -0700"
      },
      "committer": {
        "name": "Chris Craik",
        "email": "ccraik@google.com",
        "time": "Mon Oct 15 13:49:58 2012 -0700"
      },
      "message": "HW Acceleration support for stroked arcs with BUTT caps\n\nbug:4419017\n\nChange-Id: I7371bfb36cef460da861a47d4d945218c6d0c3d0\n"
    },
    {
      "commit": "3add43ab0e26c9fd44d4dea683092807229eaa59",
      "tree": "9602b05dc6724242394e2ddf563bd1769f5755ab",
      "parents": [
        "bfbd58de8d0d5487f2d8a67e99a9854019c22039",
        "2154af209f6d269e29c6e991ce6c1349dfc85b93"
      ],
      "author": {
        "name": "Chris Craik",
        "email": "ccraik@google.com",
        "time": "Fri Oct 12 13:00:58 2012 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Oct 12 13:00:59 2012 -0700"
      },
      "message": "Merge \"fix stroke sub-hairline threshold\" into jb-mr1-dev"
    },
    {
      "commit": "2154af209f6d269e29c6e991ce6c1349dfc85b93",
      "tree": "87c7afecf1f03be1f411f78c0a2a393cc29c100a",
      "parents": [
        "c0c0c0e612e1ccf1e55eb2a9338ddfff40d8d7f2"
      ],
      "author": {
        "name": "Chris Craik",
        "email": "ccraik@google.com",
        "time": "Fri Oct 12 11:31:37 2012 -0700"
      },
      "committer": {
        "name": "Chris Craik",
        "email": "ccraik@google.com",
        "time": "Fri Oct 12 12:45:08 2012 -0700"
      },
      "message": "fix stroke sub-hairline threshold\n\nbug:7339943\n\nChange-Id: I4051a03f4cd5bd2c313840208540601fb7a056e2\n"
    },
    {
      "commit": "c37f349ecff54f15ed31d57c1b886897c91430af",
      "tree": "431ab2a4385f6c3b61818e0c48b49bcf4e7ffff6",
      "parents": [
        "41d35aef06c2a570a45474a01ca95a6cb9c29d9e"
      ],
      "author": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Wed Oct 10 17:13:36 2012 -0700"
      },
      "committer": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Wed Oct 10 17:13:36 2012 -0700"
      },
      "message": "Prevent possible divide by 0\nBug #7307304\n\nShould never happen, but eh :))\n\nChange-Id: Ic7a09fd5c7a3622e6b4963f9ee6920e232018e2e\n"
    },
    {
      "commit": "41d35aef06c2a570a45474a01ca95a6cb9c29d9e",
      "tree": "0e4d15428b41eef15744027e19a00516bb8edab6",
      "parents": [
        "251445667ce045c4425c10fb24e3e23f90a210c0"
      ],
      "author": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Wed Oct 10 16:06:04 2012 -0700"
      },
      "committer": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Wed Oct 10 16:06:04 2012 -0700"
      },
      "message": "Allow 9patches to shrink\nBug #7307304\n\nChange-Id: I1fabf6df99c18c86ab1ec0e1e398a3d6d4098496\n"
    },
    {
      "commit": "bb5f014ae805f166328d72cbf826e8f1f17c9daf",
      "tree": "ca094cf6b7854c575b1f33d4159a9d162cb7c8b4",
      "parents": [
        "0e2aade9f1cfbbbdb60889ca9e1399093eb542ac",
        "b30cb10a0c75c2295e89b1b30d91a73f38ee09fb"
      ],
      "author": {
        "name": "Chris Craik",
        "email": "ccraik@google.com",
        "time": "Mon Oct 08 09:46:05 2012 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Oct 08 09:46:05 2012 -0700"
      },
      "message": "Merge \"Use offset in line drawing\" into jb-mr1-dev"
    },
    {
      "commit": "50ae66a554126fadee2054e0d01a9e57150cedb5",
      "tree": "536c47edc484fec4b9dffc46917e7a88a615f535",
      "parents": [
        "7711260e4959686bb1d6f177a843c2108bb04710"
      ],
      "author": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Sun Oct 07 14:05:59 2012 -0700"
      },
      "committer": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Sun Oct 07 15:23:55 2012 -0700"
      },
      "message": "Work around a possible driver bug\nBug #7296475\n\nWhen re-enabling the scissor the driver seems to ignore the already\nexisting scissor box. This change resets the scissor box when the\ntest state changes.\n\nChange-Id: I3a68433164f99d21fbab769a26c56fe416c1539a\n"
    },
    {
      "commit": "b30cb10a0c75c2295e89b1b30d91a73f38ee09fb",
      "tree": "b0d09497b77b7efcb553e9a2b665fb2c43652bde",
      "parents": [
        "18c2b6e730f6d639421e45328f4fb2514683efe5"
      ],
      "author": {
        "name": "Chris Craik",
        "email": "ccraik@google.com",
        "time": "Fri Oct 05 19:11:37 2012 -0700"
      },
      "committer": {
        "name": "Chris Craik",
        "email": "ccraik@google.com",
        "time": "Fri Oct 05 19:14:02 2012 -0700"
      },
      "message": "Use offset in line drawing\n\nPartial revert of cb4d6009\n\nbug:7299070\nChange-Id: I1db7b035e3015e0f6d15c95aef71ea74dbeca13e\n"
    },
    {
      "commit": "5067685ccf6c294a77a3e7f0577190600a0e6238",
      "tree": "1ffd1c4ddf0c9eb77b6087a185208aad08cf1215",
      "parents": [
        "dd2f15a563f18c9534cfa85fe2b8bf2fe100ed83"
      ],
      "author": {
        "name": "Christopher Tate",
        "email": "ctate@google.com",
        "time": "Thu Oct 04 19:10:11 2012 -0700"
      },
      "committer": {
        "name": "Christopher Tate",
        "email": "ctate@google.com",
        "time": "Thu Oct 04 19:10:11 2012 -0700"
      },
      "message": "Settings (and general) restore fixes\n\nPro tem, we ignore wifi configuration data when restoring system settings.\nThis is not ideal, but it *does* mean we do not bounce wifi off and on\nagain during the extended restore process, which in turn means we don\u0027t\ninterfere with things like the Play Store\u0027s download of applications.\nWe do continue to back up wifi configuration, and will start using that\ndata again when the new implementation that restores AP configurations\nwithout having to bounce wifi comes to pass.\n\nAlso, this CL fixes a longstanding bug in BackupDataInput.skipEntityData()\nthat was being reproduced reliably once settings restore was skipping\nthe wifi-related entities in the restore stream.\n\nBug 7249405\n\nChange-Id: I61520a9a116b66ebdf95734d09d9afd46406df01\n"
    },
    {
      "commit": "cf8675ee176a375f873792684d38a47f78348dff",
      "tree": "a50655caeb5717f2e53cc613b66e62ae4dee2ec3",
      "parents": [
        "0944d625448209185452eb4e800daec49de51986"
      ],
      "author": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Tue Oct 02 12:32:25 2012 -0700"
      },
      "committer": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Tue Oct 02 13:33:10 2012 -0700"
      },
      "message": "Draw stroked rectangle as meshes instead of textures\nBug #7233734\n\nStroked rectangles were rendered using software generated textures\nwhich would lead to slightly misaligned results. Instead, let\u0027s use\nthe new convex path rendering code that will do the right thing\n(and save a lot of bandwidth.)\n\nChange-Id: Ib95ff581e56c1ecead97e4919298e6fd146ca167\n"
    },
    {
      "commit": "bf09ffb4e0dc820aeae56a3e576aed33cab218da",
      "tree": "23eabf3a77837da300aeab0f442f58868faa3e65",
      "parents": [
        "bfbf6e1232013a999f4776f7fdf7cf6fb577f89b"
      ],
      "author": {
        "name": "Chris Craik",
        "email": "ccraik@google.com",
        "time": "Mon Oct 01 13:50:37 2012 -0700"
      },
      "committer": {
        "name": "Chris Craik",
        "email": "ccraik@google.com",
        "time": "Mon Oct 01 13:50:37 2012 -0700"
      },
      "message": "Quick reject empty paths\n\nbug:7260035\n\nAdding a circle of radius 0 to a path is a no-op in skia, so detect\nthis case both in the PathRenderer, and in quickReject().\n\nChange-Id: I7a172db49a5d5351b4734b39d4e4ca6379658096\n"
    },
    {
      "commit": "6a2d17f71342f981c9df1dc5beff33e30eb3ae2b",
      "tree": "aaf68defc949273eccdd48aa40927fe8895ad37d",
      "parents": [
        "933a7546c857dba7704a15b7f7f7847934f14912"
      ],
      "author": {
        "name": "Chet Haase",
        "email": "chet@google.com",
        "time": "Sun Sep 30 12:14:13 2012 -0700"
      },
      "committer": {
        "name": "Chet Haase",
        "email": "chet@google.com",
        "time": "Sun Sep 30 15:35:08 2012 -0700"
      },
      "message": "Fix texture corruption\n\nWhen memory gets low on a device, activities flush everything they can.\nHardware-accelerated activites, such as Launcher, flush GL resources and destroy\nthe GL context. However, some resources were still hanging around, due to deferred\ndestruction policies (we don\u0027t delete layers until the DisplayLists they are in\nare finalized, to ensure we don\u0027t deref deleted objects). This meant that we were\nreferring to obsolete GL data in these objects. in particular, it meant that we might\ncome around later, after a new GL context was created, and delete a texture object\nthat was incorrect. We use the layer\u0027s \"texture id\" to refer to the texture underlying the\nlayer. But if there\u0027s a new GL context, then this texture ID is no longer valid, and\nwe may be deleting the texture that a different object (layer, icon, whatever) is referring\nto, because the driver may return that same ID under the new GL context.\n\nThe fix is to more aggressively delete things that we know will not be used again\nwhen the GL context is destroyed. In particular, we delete all resources being used\nby all DisplayLists at GL context destruction time.\n\nIssue #7195815 Textures corruption on all devices, in many apps\n\nChange-Id: I52d2d208173690dbb794a83402d38f14ea4c6c22\n"
    },
    {
      "commit": "1d3527354396d3aa48b494fb409d680cce32dc8b",
      "tree": "6934b6b63276fdf0f30ad0c2cbec7ad08732a890",
      "parents": [
        "925a659d824089d2977b44a6740f793ae65f809a",
        "f41496f1791d983bf8bbbdf95f72528e59284b39"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Fri Sep 28 15:52:25 2012 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Sep 28 15:52:26 2012 -0700"
      },
      "message": "Merge \"Fix issue #7202950: After clearing data, clear data button is still enabled.\" into jb-mr1-dev"
    },
    {
      "commit": "a3dc55f83ab583e0a66b893c71b849afa046770a",
      "tree": "bce89bc2bccaa9e4e9eb334b5c3185e360c02dc0",
      "parents": [
        "3cd961292e877cc5fac146290421e9e67aa553a2"
      ],
      "author": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Fri Sep 28 13:55:44 2012 -0700"
      },
      "committer": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Fri Sep 28 13:55:44 2012 -0700"
      },
      "message": "Fix a couple of rendering issues\nBug #7253839\n\n1. Make sure we don\u0027t make GL calls while recording display lists\n\n2. Disable an early and trivial clip optimization in font renderer\n   when a perspective transformation is used on the Canvas\n\nChange-Id: I3f1052164239329346854f72d0a0d401fbfecf06\n"
    },
    {
      "commit": "a7a257d6578cf37723d92b4b90c6ef9caea18528",
      "tree": "fb5cd6ced9bbcc1e0481d8959bb588709727bfa7",
      "parents": [
        "448f6e1e1471db2caf218ca8918c2d82306b450a",
        "034de6b1ec561797a2422314e6ef03e3cd3e08e0"
      ],
      "author": {
        "name": "Hiroshi Lockheimer",
        "email": "hiroshi@google.com",
        "time": "Thu Sep 27 22:23:28 2012 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Sep 27 22:23:28 2012 -0700"
      },
      "message": "Merge \"Plug memory leak that happens when reusing display lists Bug #7195815\" into jb-mr1-dev"
    },
    {
      "commit": "034de6b1ec561797a2422314e6ef03e3cd3e08e0",
      "tree": "72951205d3982380572e13aa7044f6417cfbc6fc",
      "parents": [
        "6ed9e43879039ce0cbead08d304edbce79a88ced"
      ],
      "author": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Thu Sep 27 19:01:55 2012 -0700"
      },
      "committer": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Thu Sep 27 19:01:55 2012 -0700"
      },
      "message": "Plug memory leak that happens when reusing display lists\nBug #7195815\n\nWe did not reclaim resources when reusing an existing DisplayList to\nrecord a new empty list of commands. This would lead to various memory\nleaks: bitmaps, paints, paths, matrices, etc.\n\nThis is not a common case but some apps run into this situation,\nsuch as Launcher.\n\nChange-Id: I2eb14ac86a212123f8edbe42b70a7c1c51fa4145\n"
    },
    {
      "commit": "f41496f1791d983bf8bbbdf95f72528e59284b39",
      "tree": "3bca6a251fbd6fd31431c7f9d4ead4f2cd141005",
      "parents": [
        "580ee8b0c6e1aea1e2e1d60499b603b9168b44f0"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Thu Sep 27 18:48:09 2012 -0700"
      },
      "committer": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Thu Sep 27 18:48:09 2012 -0700"
      },
      "message": "Fix issue #7202950: After clearing data, clear data button is still enabled.\n\nCount the lib symlink against the app\u0027s code size.  Also be sure to\nlook at the new separate lib path for apps, and tweak the size\ncounting to also count the size of directory entries.\n\nChange-Id: I4b0fd5771f249faa05fd72f08062df885902cc97\n"
    },
    {
      "commit": "a852ff3a4b637e8101c2f54e110467586fe604cf",
      "tree": "0c940ea5314930c6fdbe15bfc1f4cc17c61d1b78",
      "parents": [
        "93aa70c6dfec91909404c9ade9b4a94574814092",
        "6ed9e43879039ce0cbead08d304edbce79a88ced"
      ],
      "author": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Thu Sep 27 18:45:42 2012 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Sep 27 18:45:42 2012 -0700"
      },
      "message": "Merge changes I9873540e,I4f6c38e3 into jb-mr1-dev\n\n* changes:\n  Skia\u0027s ColorMatrix vector is in the 0..255 range not 0..1 Bug #7248980\n  Don\u0027t use the QCOM_tiled_rendering extension with functors Bug #7247880\n"
    },
    {
      "commit": "6ed9e43879039ce0cbead08d304edbce79a88ced",
      "tree": "9593f6dd705c5cbee64fa65c7c4209c39a4b53a0",
      "parents": [
        "54c1a64d5441a964890b44280e4457e11f4f924a"
      ],
      "author": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Thu Sep 27 18:06:43 2012 -0700"
      },
      "committer": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Thu Sep 27 18:06:43 2012 -0700"
      },
      "message": "Skia\u0027s ColorMatrix vector is in the 0..255 range not 0..1\nBug #7248980\n\nChange-Id: I9873540e3bc1ea0526ea0884279a427c0de96006\n"
    },
    {
      "commit": "54c1a64d5441a964890b44280e4457e11f4f924a",
      "tree": "31e8837991a90927dfa925246df31b8e6ee36a18",
      "parents": [
        "d9730390c6bbac09107866462b9bf45d0b5706cf"
      ],
      "author": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Thu Sep 27 17:55:46 2012 -0700"
      },
      "committer": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Thu Sep 27 17:57:24 2012 -0700"
      },
      "message": "Don\u0027t use the QCOM_tiled_rendering extension with functors\nBug #7247880\n\nChange-Id: I4f6c38e37b953c58e6107097c613891a49dac766\n"
    },
    {
      "commit": "16b897c488a740e004bfce7d50b0d7602277fc0b",
      "tree": "b187612cdce8ef819f3cf1ac561fefdab6b2931d",
      "parents": [
        "9a4a0376a78f9b3bcfe6374660fbe7c28797b36a"
      ],
      "author": {
        "name": "Chris Craik",
        "email": "ccraik@google.com",
        "time": "Thu Sep 27 13:10:56 2012 -0700"
      },
      "committer": {
        "name": "Chris Craik",
        "email": "ccraik@google.com",
        "time": "Thu Sep 27 15:01:36 2012 -0700"
      },
      "message": "Fix rectangle AA offset calculation\n\nbug:4419017\n\nFixes compiler warning\nHandle bezier thresholds with large stroke widths better\nFix sub-hairlines (for scaleX \u003d\u003d scaleY)\n\nChange-Id: Ida387483348ee61424b7fba729abca2a88bd68b3\n"
    },
    {
      "commit": "b0d135d91f3a41af09fd0281211f18e8452e7fc6",
      "tree": "2a4a3e61d5407234673122fd96c3d7752c065d8f",
      "parents": [
        "d9730390c6bbac09107866462b9bf45d0b5706cf",
        "cb4d6009576cf08195dc23f341a3f4939c0878bb"
      ],
      "author": {
        "name": "Chris Craik",
        "email": "ccraik@google.com",
        "time": "Thu Sep 27 09:47:51 2012 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Sep 27 09:47:52 2012 -0700"
      },
      "message": "Merge \"Add stroke support to polygonal shape rendering\" into jb-mr1-dev"
    },
    {
      "commit": "244a0bcadc167ed8519c7e34c62e116c1adc2dbe",
      "tree": "dd2ec331c91601b3925e90f4e0bb0b669099b3ca",
      "parents": [
        "13987fb43255ccb3802d415e32b1c5caf14291bb",
        "39284b763a09688468ed3799ebd2ebb76ea5dfd5"
      ],
      "author": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Wed Sep 26 16:49:28 2012 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Sep 26 16:49:29 2012 -0700"
      },
      "message": "Merge \"Make gradients beautiful again Bug #7239634\" into jb-mr1-dev"
    },
    {
      "commit": "39284b763a09688468ed3799ebd2ebb76ea5dfd5",
      "tree": "b67c139bf0552ff066a4eafb9e29deae62924075",
      "parents": [
        "bd43152bda835c5a9a619a5869344a6a3af11917"
      ],
      "author": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Wed Sep 26 16:39:40 2012 -0700"
      },
      "committer": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Wed Sep 26 16:39:40 2012 -0700"
      },
      "message": "Make gradients beautiful again\nBug #7239634\n\nThis change passes two matrices to the vertex shader instead of one.\nWe used to compute the final MVP matrix on the CPU to minimize the\nnumber of operations in the vertex shaders. Shader compilers are\nhowever smart enough to perform this optimization for us. Since we\nneed the MV matrix to properly compute gradients dithering, this\nchange splits the MVP matrix into two. This has the advantage of\nremoving one matrix multiplication per drawing operation on the\nCPU.\nThe SGX 540 shader compiler produces the same number of instructions\nin both cases. There is no penalty hit with having two matrices\ninstead of one. We also send so few vertices per frame that it\ndoes not matter very much.\n\nChange-Id: I17d47ac4772615418e0e1885b97493d31435a936\n"
    },
    {
      "commit": "cb4d6009576cf08195dc23f341a3f4939c0878bb",
      "tree": "234201781d7baaba35fc3baab178007ab03ea2df",
      "parents": [
        "fd3398c8bf25d8ec7ce813ebda431d67d734f268"
      ],
      "author": {
        "name": "Chris Craik",
        "email": "ccraik@google.com",
        "time": "Tue Sep 25 12:00:29 2012 -0700"
      },
      "committer": {
        "name": "Chris Craik",
        "email": "ccraik@google.com",
        "time": "Wed Sep 26 14:38:11 2012 -0700"
      },
      "message": "Add stroke support to polygonal shape rendering\n\nbug:4419017\nbug:7230005\n\n- Adds support for stroke/strokeAndFill for shapes without joins\n- Fixes path-polygonization threshold calculation\n- Fixes rendering offset (now only used for points)\n- Several formatting fixes\n\nChange-Id: If72473dc881e45752e2ec212d0dcd1e3f97979ea\n"
    },
    {
      "commit": "2ea1045a0148cac45f873fc6324682044d599f73",
      "tree": "3c2aed78d6602a2f6a6217cce85bbd45c72a4d2f",
      "parents": [
        "fddedc94b77812ea13afe8cae32ad27d7266f787",
        "e529ece37f664f8947a1d4a1e27d679f6f286388"
      ],
      "author": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Wed Sep 26 11:25:04 2012 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Sep 26 11:25:04 2012 -0700"
      },
      "message": "Merge \"Applies a layer\u0027s color filter even when the layer is a quad Bug #7238059\" into jb-mr1-dev"
    },
    {
      "commit": "e529ece37f664f8947a1d4a1e27d679f6f286388",
      "tree": "e085f6513391293f8d0b1c08d9241adc3e48c1e0",
      "parents": [
        "72a374705d32cf715443aa203f75c159e1bc9bd5"
      ],
      "author": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Wed Sep 26 11:23:17 2012 -0700"
      },
      "committer": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Wed Sep 26 11:23:17 2012 -0700"
      },
      "message": "Applies a layer\u0027s color filter even when the layer is a quad\nBug #7238059\n\nChange-Id: Ib4736a419bc1a9a67a01d090516ed049fe3aebca\n"
    },
    {
      "commit": "98d3a64ffa13596e3ea9125bbff40c51ec96bd8d",
      "tree": "306cfeea0b0834f3b832a4dba12f6395ea9da097",
      "parents": [
        "4e1ab15b305aac26ad8819fc3b2951e20985944d"
      ],
      "author": {
        "name": "Chet Haase",
        "email": "chet@google.com",
        "time": "Wed Sep 26 10:27:40 2012 -0700"
      },
      "committer": {
        "name": "Chet Haase",
        "email": "chet@google.com",
        "time": "Wed Sep 26 11:01:42 2012 -0700"
      },
      "message": "Assign default texture id of 0\n\nSome logic depends on a default value of 0, which was not being\nassigned.\n\nIssue #7195815 chrome url bar is corrupted\nIssue #7190656 Textures corrupted on mr1\n\nChange-Id: I346b7b76e885bf8f04740e711fd88f917a5418c7\n"
    },
    {
      "commit": "17ef62cc1f9d092669af0fed465a9a77e0dc1a4f",
      "tree": "6d88c86ef0cb81ae3cecdfc4724f96f850415983",
      "parents": [
        "348f08f468167d56d7f66c59401da8bc69aab746"
      ],
      "author": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Tue Sep 25 22:52:40 2012 -0700"
      },
      "committer": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Tue Sep 25 22:52:40 2012 -0700"
      },
      "message": "fix a possible dead-lock when clearing caches\n\nBug: 7195815\nChange-Id: I8e226b7ec445f9f4fe46ae216ef7cc41efc5a0fd\n"
    },
    {
      "commit": "54643d72f86d0ee0b23e3643ac9257d52ddfae6b",
      "tree": "fa42aca7c07a2a22050733a78fcaf72f20c4db51",
      "parents": [
        "cefbd1438c9054e3a34b4ab93b4b26b427604cb1"
      ],
      "author": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Tue Sep 25 21:30:22 2012 -0700"
      },
      "committer": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Tue Sep 25 21:41:38 2012 -0700"
      },
      "message": "make sure to destroy GL objects on the GL thread\n\nBug: 7195815\nChange-Id: I5bcac61cd0b903d1ccca0754fdb9cb1023efbe0f\n"
    },
    {
      "commit": "cefbd1438c9054e3a34b4ab93b4b26b427604cb1",
      "tree": "e7fe0697770cd30b9df9f95720be891e4ce6e43c",
      "parents": [
        "e8e2b672563fed2820e392de48226acf894cf06b",
        "56257aff8a55c847be72be9924c392033fd8151d"
      ],
      "author": {
        "name": "Dave Burke",
        "email": "daveburke@google.com",
        "time": "Tue Sep 25 20:31:08 2012 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Sep 25 20:31:08 2012 -0700"
      },
      "message": "Merge \"Revert \"Deleting objects on the wrong thread is a silly idea Bug #7195815\"\" into jb-mr1-dev"
    },
    {
      "commit": "56257aff8a55c847be72be9924c392033fd8151d",
      "tree": "5e31b76ebbf03e281ccaeceec24882660e7de47e",
      "parents": [
        "8a1374946a928fcba7495c87ff6adda327fdfb9f"
      ],
      "author": {
        "name": "Dave Burke",
        "email": "daveburke@google.com",
        "time": "Tue Sep 25 20:30:09 2012 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Sep 25 20:30:09 2012 -0700"
      },
      "message": "Revert \"Deleting objects on the wrong thread is a silly idea Bug #7195815\"\n\nThis reverts commit 8a1374946a928fcba7495c87ff6adda327fdfb9f\n\nChange-Id: I53564a6c531d334afcc1fce0bea1e57ae266aa78\n"
    },
    {
      "commit": "6e065a729dbf08f99209a7710da80442a394ec0d",
      "tree": "5017ecb5a8eff2385a0fff4bcae0bbd2c03cac58",
      "parents": [
        "b4693e25b1a576718eb669a74a056b3f1e451117",
        "4fbbda4cecb078bd3867f416b02cc75f5455284f"
      ],
      "author": {
        "name": "Jeff Sharkey",
        "email": "jsharkey@android.com",
        "time": "Tue Sep 25 17:52:13 2012 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Sep 25 17:52:14 2012 -0700"
      },
      "message": "Merge \"Handle multi-user mountObb() requests.\" into jb-mr1-dev"
    },
    {
      "commit": "4fbbda4cecb078bd3867f416b02cc75f5455284f",
      "tree": "e4d988ec4be9e86e7fa5a2cfb1e20ecb1342ce72",
      "parents": [
        "5e21bf934b2a71b595deb9856a2044eea4dbce86"
      ],
      "author": {
        "name": "Jeff Sharkey",
        "email": "jsharkey@android.com",
        "time": "Mon Sep 24 18:34:07 2012 -0700"
      },
      "committer": {
        "name": "Jeff Sharkey",
        "email": "jsharkey@android.com",
        "time": "Tue Sep 25 17:34:48 2012 -0700"
      },
      "message": "Handle multi-user mountObb() requests.\n\nSince emulated external storage paths differ based on execution\ncontext, carefully fix up paths for various use-cases:\n\n1. When sending paths to DefaultContainerService, always scope\n   OBB paths as belonging to USER_OWNER.\n2. When sending paths to vold, always build emulated storage paths\n   visible to root.\n3. Always use the original untouched path when talking with apps.\n\nMount OBB containers using shared app GID, so that an app can read\nthe mount point across users.\n\nHandle legacy paths like \"/sdcard\" by resolving the canonical path\nbefore sending to MountService.  Move tests to servicestests, and\nadd tests for new path generation logic.\n\nBug: 7212801\nChange-Id: I078c52879cd08d9c8a52cc8c83ac7ced1e8035e7\n"
    },
    {
      "commit": "8a1374946a928fcba7495c87ff6adda327fdfb9f",
      "tree": "ab6b1d092aec1b19751e820c3e18a10c21a40759",
      "parents": [
        "1ab8a08a9b85aa62045a6a78fd93859382c88b0f"
      ],
      "author": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Tue Sep 25 15:49:03 2012 -0700"
      },
      "committer": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Tue Sep 25 15:49:03 2012 -0700"
      },
      "message": "Deleting objects on the wrong thread is a silly idea\nBug #7195815\n\nTurns out that multi-threading is hard.\n\nChange-Id: Ib0b4bd6dc3caea27f7ced22cbb363bb955fe58ab\n"
    },
    {
      "commit": "ef09a210dd6ea481158b7028ec2424a7f5769ed2",
      "tree": "ac7cac37d1dbe20679cf102f36fee076bc07b120",
      "parents": [
        "509e2ced819ebaece2abb21693cb2046b5524c5b"
      ],
      "author": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Tue Sep 25 12:17:14 2012 -0700"
      },
      "committer": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Tue Sep 25 12:22:21 2012 -0700"
      },
      "message": "Don\u0027t destroy the same texture twice\nBug #7221449\n\nSurfaceTexture already deletes the GL texture when detachFromContext\nis invoked. The newly introduced refcount would casue the Layer\nobject to be destroyed later and attempt to delete the GL texture\nagain. By the time the second cleanup occurs, the texture name\nmight have been reused by somebody else, resulting in erroneous\nbehaviors.\n\nChange-Id: I257c589fea64b34c00f46fbfaa7732e6854a5e41\n"
    },
    {
      "commit": "e83221c547cf2038752e5378e72e49a62cfd9954",
      "tree": "04530c1c08620b4c2c5b8209dc6bf7ba713d3f50",
      "parents": [
        "f8538594fe6ba6db3310da042597840601d78cda"
      ],
      "author": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Mon Sep 24 16:01:35 2012 -0700"
      },
      "committer": {
        "name": "Jean-Baptiste Queru",
        "email": "jbq@google.com",
        "time": "Tue Sep 25 09:33:22 2012 -0700"
      },
      "message": "Fix alpha channel computation with ColorMatrixColorFilter\nBug #7222476\n\nThere were two issues:\n- Blending was ignored with color filters\n- The addition vector of a color filter was treated as integer values\n  instead of float values\n\nChange-Id: Id94065704a30ee8aaaa5724a9f3a3cff7c50ced7\n"
    },
    {
      "commit": "908a43234aca51af5021249c03030cec6b36417f",
      "tree": "411d7bbf6e146b601b88b69b2434b049b8639018",
      "parents": [
        "6fb2514cdf77e2657d7b73b0cd97e060aefc6b53",
        "87e2f757be9b24d369bab354e37c276e851b1fc7"
      ],
      "author": {
        "name": "Jean-Baptiste Queru",
        "email": "jbq@google.com",
        "time": "Tue Sep 25 09:26:06 2012 -0700"
      },
      "committer": {
        "name": "Jean-Baptiste Queru",
        "email": "jbq@google.com",
        "time": "Tue Sep 25 09:26:09 2012 -0700"
      },
      "message": "Merge into jb-mr1-dev\n\nChange-Id: I7b777c7a4818d699582419d2eb4fc1f5cc0f4f46\n"
    },
    {
      "commit": "87e2f757be9b24d369bab354e37c276e851b1fc7",
      "tree": "dd8a123cd63666a7f767cb0c38afcc9726d007db",
      "parents": [
        "97dc9172b0e58979c63de0dedbab656399a62281"
      ],
      "author": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Mon Sep 24 11:37:12 2012 -0700"
      },
      "committer": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Mon Sep 24 11:47:52 2012 -0700"
      },
      "message": "Add a property to disable libhwui\u0027s scissor optimization\nBug #7158326\n\nWhen scissor optimization is enabled, OpenGLRenderer will attempt to\nminimize the use of scissor by selectively enabling and disabling the\nGL scissor test.\nWhen the optimization is disabled, OpenGLRenderer will keep the GL\nscissor test enabled and change the scissor rect as needed.\nSome GPUs (for instance the SGX 540) perform better when changing\nthe scissor rect often than when enabling/disabling the scissor test\noften.\n\nChange-Id: Idb68862e287a23358f9188d577ae0f86161902fd\n"
    },
    {
      "commit": "6b3292ce5b3908c7433503f64c852cf2b27718ed",
      "tree": "00e7df2eaa335ed83aeb25ce187f67e0cdaccc3f",
      "parents": [
        "916b2b5a932a3be1a1363ac1871e74ad8b314f00",
        "97dc9172b0e58979c63de0dedbab656399a62281"
      ],
      "author": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Sun Sep 23 17:50:05 2012 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Sun Sep 23 17:50:06 2012 -0700"
      },
      "message": "Merge \"Avoid deadlock when deleting layers Bug #7217459\" into jb-mr1-dev"
    },
    {
      "commit": "97dc9172b0e58979c63de0dedbab656399a62281",
      "tree": "291da7b2a7b35e73821fa3660c7e1a96e983a5e4",
      "parents": [
        "4285de3c8bc77856a2df98894f74bb7333f1d348"
      ],
      "author": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Sun Sep 23 17:46:45 2012 -0700"
      },
      "committer": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Sun Sep 23 17:49:24 2012 -0700"
      },
      "message": "Avoid deadlock when deleting layers\nBug #7217459\n\nChange-Id: I12bfa6c30c5030bd1b23ea6a3ce64240ab1dfba3\n"
    },
    {
      "commit": "d392b87e3d30cd4f0836623d848019c5724efce8",
      "tree": "e1ebbf8d24d2ef4963f212c0f13bbf06fabeaa20",
      "parents": [
        "c0e1f268451550368d1d3d3558f8ce2459ed5713",
        "4285de3c8bc77856a2df98894f74bb7333f1d348"
      ],
      "author": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Sun Sep 23 15:00:46 2012 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Sun Sep 23 15:00:46 2012 -0700"
      },
      "message": "Merge changes Ib0a0b7d1,Ibec4b2aa into jb-mr1-dev\n\n* changes:\n  Fix overdraw debug on QCOM\n  Make sure we never bind to texture #0 Bug #7195815\n"
    },
    {
      "commit": "4285de3c8bc77856a2df98894f74bb7333f1d348",
      "tree": "1704cd1d596a0f35d8c5c21c07fa13644fe8b453",
      "parents": [
        "574cf6070d34e66dfd6f2006937986eddd1f09e7"
      ],
      "author": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Sun Sep 23 14:46:35 2012 -0700"
      },
      "committer": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Sun Sep 23 14:46:35 2012 -0700"
      },
      "message": "Fix overdraw debug on QCOM\n\nDisable the use of the tiling extension when overdraw debug is\nturned on.\n\nChange-Id: Ib0a0b7d1998146aa0c7efef2d3822f9997efb123\n"
    },
    {
      "commit": "574cf6070d34e66dfd6f2006937986eddd1f09e7",
      "tree": "112b68de9e9015c706cf04e7c0c461f5a57b382e",
      "parents": [
        "8e586f61dd4f7fa53b01e63ac779ffc7cde05bdd"
      ],
      "author": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Sun Sep 23 14:45:31 2012 -0700"
      },
      "committer": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Sun Sep 23 14:45:31 2012 -0700"
      },
      "message": "Make sure we never bind to texture #0\nBug #7195815\n\nChange-Id: Ibec4b2aa4c580419eb5eb61adae6c9c960694d0c\n"
    },
    {
      "commit": "b92d8f7979c29c7c09932578a11b2f8d6eec1d90",
      "tree": "b82c57bffc1eded3b6fd15d9a80019e3228c7f2d",
      "parents": [
        "7b770b0ec4e5a1b7f1b9601433fb35e55658453d"
      ],
      "author": {
        "name": "Chet Haase",
        "email": "chet@google.com",
        "time": "Fri Sep 21 08:40:46 2012 -0700"
      },
      "committer": {
        "name": "Chet Haase",
        "email": "chet@google.com",
        "time": "Sun Sep 23 12:16:02 2012 -0700"
      },
      "message": "Optimize glyph cache texture uploads\n\nOnly upload the changed area of the glyph cache, not the entire\nbitmap. Note that we can\u0027t do the full-on optimization here of copying a sub-rect\nof the bitmap because of GL ES 2 limitations, but we can at least copy the\nhorizontal stripe containing the dirty rect, which can still be a big\nsavings over uploading the entire bitmap.\n\nIssue #7158326 Bad framerates on MR1 (Mako, Manta, Prime)\n\nChange-Id: Iab38d53202650f757ead4658cf4287bdad2b3cb9\n"
    },
    {
      "commit": "8e586f61dd4f7fa53b01e63ac779ffc7cde05bdd",
      "tree": "8329d87f72780ef47d6d8c74ab46a56cca648bbe",
      "parents": [
        "88923c973e3b58593c4d0fb6724addcefc53004f",
        "7c450aaa3caac2a05fcb20a177483d0e92378426"
      ],
      "author": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Fri Sep 21 19:28:05 2012 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Sep 21 19:28:06 2012 -0700"
      },
      "message": "Merge \"Add support for a new developer setting: overdraw debugging\" into jb-mr1-dev"
    },
    {
      "commit": "7c450aaa3caac2a05fcb20a177483d0e92378426",
      "tree": "986e53542f0b59d8108b366c5d4c4d8a3f04e51e",
      "parents": [
        "f7e52d92b41adf460089625ea47bfea2ed7e6296"
      ],
      "author": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Fri Sep 21 19:15:00 2012 -0700"
      },
      "committer": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Fri Sep 21 19:15:00 2012 -0700"
      },
      "message": "Add support for a new developer setting: overdraw debugging\n\nChange-Id: I350ba4486577c3289f82c20938f7a35138778727\n"
    },
    {
      "commit": "dbb261455b1b8d2fdf4f0f8ad84ddb09dda1ed9b",
      "tree": "f74e8e767b300120664a2421de1ff581fe61fe55",
      "parents": [
        "172cb769641c828d7ad20669a5f7c9533248382f",
        "a1d12dd619c86c9ac121a3095ff5e5633c11e876"
      ],
      "author": {
        "name": "Chet Haase",
        "email": "chet@google.com",
        "time": "Fri Sep 21 17:12:00 2012 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Sep 21 17:12:48 2012 -0700"
      },
      "message": "Merge \"Optimize shaders for dithered gradients\" into jb-mr1-dev"
    },
    {
      "commit": "a1d12dd619c86c9ac121a3095ff5e5633c11e876",
      "tree": "3e53e0a133aeaf86ec84b13a952c6aa6be3dbee7",
      "parents": [
        "537d47f510ce49acee09516ed5dde680d910ff94"
      ],
      "author": {
        "name": "Chet Haase",
        "email": "chet@google.com",
        "time": "Fri Sep 21 14:50:14 2012 -0700"
      },
      "committer": {
        "name": "Chet Haase",
        "email": "chet@google.com",
        "time": "Fri Sep 21 16:20:57 2012 -0700"
      },
      "message": "Optimize shaders for dithered gradients\n\nIt\u0027s faster to compute a dither calculation in the vertex shader and use\na varying (letting the GPU interpolate the fragment values) than to perform\nthat calculation in the fragment shader as part of a texture lookup.\n\nIssue #7207600 Prime mr1 shader performance issues\nIssue #7158326 Bad framerates on MR1 (Mako, Manta, Prime)\n\nChange-Id: I15789582a6e9e2d8b9dd22aa5b0f72f0ba1cce7f\n"
    },
    {
      "commit": "059aedf808c8b9b3da1457eef52f3d477878d50b",
      "tree": "7d980afc55e8df8050a0077f88e2df7db0c51de7",
      "parents": [
        "f98db0de2248ad286b207eed6a826373cc60b786",
        "f7e52d92b41adf460089625ea47bfea2ed7e6296"
      ],
      "author": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Fri Sep 21 15:08:11 2012 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Sep 21 15:08:12 2012 -0700"
      },
      "message": "Merge \"Finish this bit before I forget.\" into jb-mr1-dev"
    },
    {
      "commit": "f7e52d92b41adf460089625ea47bfea2ed7e6296",
      "tree": "67f6c913bcf8b406c6b1d1b093064678fc6cf881",
      "parents": [
        "8a624ef0fe5e86031f15f4120205c869e34f6637"
      ],
      "author": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Fri Sep 21 15:06:52 2012 -0700"
      },
      "committer": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Fri Sep 21 15:06:52 2012 -0700"
      },
      "message": "Finish this bit before I forget.\n\nThis code is not enabled in current builds.\n\nChange-Id: I488ec9e94889efbf2c8f3312abfed4298a76b7f1\n"
    },
    {
      "commit": "61d37041ac76a95aedb98d3550bb5efa33d898a1",
      "tree": "cffd7916bceba166b3cff01054a092ca52c7bc44",
      "parents": [
        "739bc9e3f51c203fc0b58c30d67cacda985e95c6",
        "710f46d9d6a5bf9ea1c1833384caf61e1934124f"
      ],
      "author": {
        "name": "Chris Craik",
        "email": "ccraik@google.com",
        "time": "Fri Sep 21 11:03:59 2012 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Sep 21 11:03:59 2012 -0700"
      },
      "message": "Merge \"Polygonal rendering of simple fill shapes\" into jb-mr1-dev"
    },
    {
      "commit": "11cb642756093a4af901b1525375b1eb2b5c3e2b",
      "tree": "b412ad763bb1cc240c65c7545a208e4e709c0b30",
      "parents": [
        "3e87eafc7d1aef95801f1758bb78da8b2f960a75"
      ],
      "author": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Fri Sep 21 00:39:43 2012 -0700"
      },
      "committer": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Fri Sep 21 00:39:43 2012 -0700"
      },
      "message": "Update layers in a single batch at the beginning of a frame\nBug #7186819\n\nChange-Id: Ice5926dfedfb3be3a3064e65008dafa2852407da\n"
    },
    {
      "commit": "57b5268708c3b974296c7d4e58a02a957979224a",
      "tree": "bb3a36e20b66edcbd7539aefd947c5b57d2897b3",
      "parents": [
        "314488b791d36756504ee593f818f04b4cd24893"
      ],
      "author": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Thu Sep 20 17:38:46 2012 -0700"
      },
      "committer": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Thu Sep 20 17:38:46 2012 -0700"
      },
      "message": "Optimize tiling management\nBug #7186819\n\nChange-Id: Iebc42a6e9c96ad5605fbbe1539aa887695d2e829\n"
    },
    {
      "commit": "710f46d9d6a5bf9ea1c1833384caf61e1934124f",
      "tree": "5dbc56cf9b6bb957f9cbdaaff7283d44897b265d",
      "parents": [
        "5ca88a103c2841b64bfa01b4848aec4b8aa64687"
      ],
      "author": {
        "name": "Chris Craik",
        "email": "ccraik@google.com",
        "time": "Mon Sep 17 17:25:49 2012 -0700"
      },
      "committer": {
        "name": "Chris Craik",
        "email": "ccraik@google.com",
        "time": "Thu Sep 20 13:08:20 2012 -0700"
      },
      "message": "Polygonal rendering of simple fill shapes\n\nbug:4419017\n\nChange-Id: If0428e1732139786cba15f54b285d880e4a56b89\n"
    },
    {
      "commit": "2b7028eabac80cec170572bc0e945a1d4224e595",
      "tree": "116f24c751ece653a5c1e08aa9c142ad1e142b25",
      "parents": [
        "4be07ade3658da9345067780520ddbd266900ee4"
      ],
      "author": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Wed Sep 19 17:25:38 2012 -0700"
      },
      "committer": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Wed Sep 19 21:10:09 2012 -0700"
      },
      "message": "Add support for QCOM_tiled_rendering\nBug #7186819\n\nThis optional OpenGL extension can be used by tiled renderers to optimize\ncopies from main memory to tiles memory.\n\nChange-Id: Id4a5d64e61ad17f50e773e8104b9bf584bb65077\n"
    },
    {
      "commit": "35643ddc689913f5b5f80ceed864470d987bd6cd",
      "tree": "db2ac0933bc52d1c71aa7d0edfd94c06dcc2cf2a",
      "parents": [
        "29d0aa73a099fde05c506857b5d215cde87b78d6"
      ],
      "author": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Tue Sep 18 15:40:58 2012 -0700"
      },
      "committer": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Tue Sep 18 15:41:16 2012 -0700"
      },
      "message": "Minimize state changes when updating layers\n\nChange-Id: I407fcc80bd3178f9f09a3b379ceb7f7ce0749e08\n"
    },
    {
      "commit": "0990ffbc4d407e174423a4a04b5902ed83f71db5",
      "tree": "1296fbc452975cfb910733c9fe7f865fd474dd7b",
      "parents": [
        "218e2f199b9ba568a815d64269ea0784e2d32935"
      ],
      "author": {
        "name": "Chet Haase",
        "email": "chet@google.com",
        "time": "Mon Sep 17 17:43:45 2012 -0700"
      },
      "committer": {
        "name": "Chet Haase",
        "email": "chet@google.com",
        "time": "Tue Sep 18 14:10:10 2012 -0700"
      },
      "message": "Fix GL shader bugs\n\nFixing errors in emitted shader code that caused GL errors\nat runtime\n\nChange-Id: I267a84398a81329a6688b292505f8779bd750ad1\n"
    },
    {
      "commit": "a8a402f8ad1549e23f4238786269bd548b6b445d",
      "tree": "205aff27573792f891dece6340c79a0fb1a69cab",
      "parents": [
        "04d5b9fbd1f9b8c7fa4af402166028c685574d62",
        "1c5c206953d673f8424908c77c974c06d5b99a9c"
      ],
      "author": {
        "name": "Chet Haase",
        "email": "chet@google.com",
        "time": "Mon Sep 17 17:12:02 2012 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Sep 17 17:12:03 2012 -0700"
      },
      "message": "Merge \"Fix bad shader code\" into jb-mr1-dev"
    },
    {
      "commit": "1c5c206953d673f8424908c77c974c06d5b99a9c",
      "tree": "f1c5cb72f293dd78635454a1eada7a54f8224d48",
      "parents": [
        "9f5f80e7a64d9388e3e73763b5c73dcddaa729fc"
      ],
      "author": {
        "name": "Chet Haase",
        "email": "chet@google.com",
        "time": "Mon Sep 17 17:09:21 2012 -0700"
      },
      "committer": {
        "name": "Chet Haase",
        "email": "chet@google.com",
        "time": "Mon Sep 17 17:09:21 2012 -0700"
      },
      "message": "Fix bad shader code\n\nShader code missing \"\u003d\" in a couple of cases.\n\nChange-Id: Iff8a99a0ccb2903c30e2bdb2f698ef9b2e03d5d1\n"
    },
    {
      "commit": "f74d2f2fe8a157bee25516d2a6ae3e329507cb2c",
      "tree": "4f2120f0b594273e2c380b973aadd1d6f9350eb9",
      "parents": [
        "9f5f80e7a64d9388e3e73763b5c73dcddaa729fc",
        "603f6de35f21d74ae242d52d501f4f5c25ff4f4c"
      ],
      "author": {
        "name": "Chet Haase",
        "email": "chet@google.com",
        "time": "Mon Sep 17 13:09:08 2012 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Sep 17 13:29:03 2012 -0700"
      },
      "message": "Merge \"Fix occasional crash bug with layers\" into jb-mr1-dev"
    },
    {
      "commit": "603f6de35f21d74ae242d52d501f4f5c25ff4f4c",
      "tree": "b249a7750a60b445a43670b7ba540beecbe715db",
      "parents": [
        "cc5dd18d15a174799ad79d26633c268e8860c8ab"
      ],
      "author": {
        "name": "Chet Haase",
        "email": "chet@google.com",
        "time": "Fri Sep 14 15:31:25 2012 -0700"
      },
      "committer": {
        "name": "Chet Haase",
        "email": "chet@google.com",
        "time": "Mon Sep 17 11:21:34 2012 -0700"
      },
      "message": "Fix occasional crash bug with layers\n\nLauncher occasionally crashes with a stack trace indicating that the memory\nof a Layer object is corrupt. It is possible for us to delete a Layer\nstructure and then, briefly, use it to draw a DisplayList again before\nthat DisplayList gets recreated (without the layer that got deleted).\n\nWhen this happens, if the memory got corrupted, it\u0027s possible to crash.\n\nThe fix is to add Layer to the other objects which we currently refcount\n(bitmaps, shaders, etc.). Then instead of deleting a Layer, we decrement the\nrefcount. We increment when creating it, then increment it again when it\u0027s\nreferenced from a DisplayList. Then we decrement the refcount instead of\ndeleting it, and decrement when we clear a DisplayList that refers to it.\nThen when the refcount reaches 0, we delete it.\n\nIssue #6994632 Native crash in launcher when trying to launch all apps screen\n\nChange-Id: I0627be8d49bb2f9ba8d158a84b764bb4e7df934c\n"
    },
    {
      "commit": "a938f569ce206c1ed68d736181016b5b708c0084",
      "tree": "5a607bc80af329334757c13e978f7c9b978122a8",
      "parents": [
        "494ac35c27a0960f57b00bf8457f1956ecf149a2"
      ],
      "author": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Thu Sep 13 20:31:08 2012 -0700"
      },
      "committer": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Fri Sep 14 10:50:51 2012 -0700"
      },
      "message": "Fix modulation and gamma correction issues\n\nModulation is normally enabled in a shader when drawing with an alpha\nmask (A8 texture.) Modulation is used to do one of two things:\n\n- Colorize the primitive (to draw text in red for instance)\n- Apply extra translucency (50% translucent circle filled with a bitmap)\n\nThe current implementation has four issues:\n\n1. Unnecessary work is performed by assigning the modulation color\n   to vec4 fragColor early in the shader\n2. The modulation color\u0027s alpha is applied twice when the primitive\n   is drawn with an SkShader\n3. The decision to modulate is wrong and triggers when any of the\n   RGB channels is \u003c 1.0. Only the alpha channel needs to be taken\n   into account to make the decision\n4. Gamma correction is not applied properly\n\nThis change addresses all four issues above.\n\nChange-Id: I73fcc74efc4b094bf2d1b835f10ffaa2ea4b9eb9\n"
    },
    {
      "commit": "494ac35c27a0960f57b00bf8457f1956ecf149a2",
      "tree": "070eb3e8d4de89db4f00f2e0d89ba1980175c130",
      "parents": [
        "2dc6af2082b93849b2e5519a8ae7504757286aa9",
        "9f44a13a125980fee92cdc76376063129f0eebc9"
      ],
      "author": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Fri Sep 14 10:34:46 2012 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Sep 14 10:34:47 2012 -0700"
      },
      "message": "Merge \"Multiply alpha for AA as late as possible\" into jb-mr1-dev"
    },
    {
      "commit": "85ef80d8902afe8d26cb75fa7837fd9e6d019620",
      "tree": "d9dbb8a0d49731396fb904a541f9fbe2ece39698",
      "parents": [
        "dcd8c81bf4beb719888b6be1b9418303c9075938"
      ],
      "author": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Thu Sep 13 20:26:50 2012 -0700"
      },
      "committer": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Thu Sep 13 20:26:50 2012 -0700"
      },
      "message": "Foundation for tiling optimization\n\nChange-Id: I4db32a4749f196472ba0dde7e102439d2ba4a3a7\n"
    },
    {
      "commit": "9f44a13a125980fee92cdc76376063129f0eebc9",
      "tree": "f1eaeeda57bea37623366e1c16ffd61a632126fc",
      "parents": [
        "4899d6f7cc45268a4f8d734639fb3f03d39d9d4a"
      ],
      "author": {
        "name": "Chris Craik",
        "email": "ccraik@google.com",
        "time": "Thu Sep 13 18:34:55 2012 -0700"
      },
      "committer": {
        "name": "Chris Craik",
        "email": "ccraik@google.com",
        "time": "Thu Sep 13 18:34:55 2012 -0700"
      },
      "message": "Multiply alpha for AA as late as possible\n\nShould be done after all color computation\n\nChange-Id: Iaadd565f7d2263f111f6841a00e7c341025833d3\n"
    },
    {
      "commit": "45e4c3df6c00ac98ff6144de9af574877d4fff19",
      "tree": "206209b5faf3bb4c63366d29e8891bc53783d232",
      "parents": [
        "f625436cc741932518e5f1a41586c72ac8297ece"
      ],
      "author": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Tue Sep 11 17:17:07 2012 -0700"
      },
      "committer": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Tue Sep 11 17:30:43 2012 -0700"
      },
      "message": "Discard framebuffer commands when we redraw the entire buffer\n\nChange-Id: I32e3014832cbd3bdbace8c3d2206eb20a2002d64\n"
    },
    {
      "commit": "df46c637550b4c6f0543574cfbd544329f48f5c7",
      "tree": "bb07b38061e33722cc51eceee9484bbf7b08c3fb",
      "parents": [
        "3c396fccd52f9d06b453b655c20c2266dd984d19",
        "70561df470c31513056df181571632851fd0d081"
      ],
      "author": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Mon Sep 10 17:43:20 2012 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Sep 10 17:43:21 2012 -0700"
      },
      "message": "Merge \"Prevent degenerate 9-patches from drawing out of bounds Bug #7137292\" into jb-mr1-dev"
    },
    {
      "commit": "70561df470c31513056df181571632851fd0d081",
      "tree": "371119049d622a7c524017ad0cf3900bd5e53a96",
      "parents": [
        "753e1280cbc3f0006b04f67385f02e1f92019f7d"
      ],
      "author": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Mon Sep 10 17:40:18 2012 -0700"
      },
      "committer": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Mon Sep 10 17:40:18 2012 -0700"
      },
      "message": "Prevent degenerate 9-patches from drawing out of bounds\nBug #7137292\n\nChange-Id: I371e94899445d2f3c6794d5c0aee8faa514d3c2c\n"
    },
    {
      "commit": "beb8bd0db28d8c5cad2a258f2ba2f3b8b76cf037",
      "tree": "84add68f98d2850a7f2ad468310a052822d5c1b4",
      "parents": [
        "a3909a93958676d341424d574752bc7b3280d421"
      ],
      "author": {
        "name": "Chet Haase",
        "email": "chet@google.com",
        "time": "Sun Sep 09 16:13:26 2012 -0700"
      },
      "committer": {
        "name": "Chet Haase",
        "email": "chet@google.com",
        "time": "Mon Sep 10 08:56:55 2012 -0700"
      },
      "message": "Reset GL buffer state after functor invocation\n\nFunctors in WebView were binding to different buffers than we\nassumed in the toolkit, eventually causing a crash due to improper\ndereferencing in the currently bound buffer. Fix is to reset state\nafter invoking functors.\n\nIssue #6666279 Native crash in Currents, mostly on Nakasi\n\nChange-Id: I3697812d83613fffc9193daa99beea4dbf26474a\n"
    },
    {
      "commit": "4aacf93d40b4be82aa35bf164d6fd6536c8b2a50",
      "tree": "daa3d1fab2d9688f1d8f8aa06064b2f99cce0b42",
      "parents": [
        "4ea283a05f3724285ed3057ff1de1a344ab3e15a",
        "e49d7ec36132f33b7c9e2c044ab9dd3585aa3747"
      ],
      "author": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Fri Sep 07 18:44:39 2012 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Sep 07 18:44:40 2012 -0700"
      },
      "message": "Merge \"Fix memory corruption in LayerRenderer::copyLayer\" into jb-mr1-dev"
    },
    {
      "commit": "e49d7ec36132f33b7c9e2c044ab9dd3585aa3747",
      "tree": "1321a0c086c3b17de0d3c4a62645f672fa511d6d",
      "parents": [
        "1558cf1498ecc687532f2dad3de720053dca9309"
      ],
      "author": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Fri Sep 07 18:42:38 2012 -0700"
      },
      "committer": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Fri Sep 07 18:42:38 2012 -0700"
      },
      "message": "Fix memory corruption in LayerRenderer::copyLayer\n\nThe pixel store pack alignment was not set for the source texture,\ncausing a write to occur outside of the destination bitmap\u0027s\nbounds.\n\nChange-Id: Iaa5767acf7b5943fbc2765c3810a142f06b1a796\n"
    },
    {
      "commit": "dc531fa7d4ec545ace1b3daae0849d3101102e49",
      "tree": "4023b7ace3d64ac779e138d2ea5fce4480ebbaca",
      "parents": [
        "330a5bf82e60fca9591f14a4db5ee98066c610d1",
        "75040f8a7727f18bb33da23696a32a0760926ff2"
      ],
      "author": {
        "name": "Chris Craik",
        "email": "ccraik@google.com",
        "time": "Fri Sep 07 15:27:05 2012 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Sep 07 15:27:05 2012 -0700"
      },
      "message": "Merge \"Handle different x, y scales in drawLines AA path\" into jb-mr1-dev"
    },
    {
      "commit": "75040f8a7727f18bb33da23696a32a0760926ff2",
      "tree": "9f32eb9b41df3c09ce0f27abae389695eaa3ff3d",
      "parents": [
        "9147cd4ac56d53dec6da1ef13dd04ba1eec1a7df"
      ],
      "author": {
        "name": "Chris Craik",
        "email": "ccraik@google.com",
        "time": "Fri Sep 07 13:56:43 2012 -0700"
      },
      "committer": {
        "name": "Chris Craik",
        "email": "ccraik@google.com",
        "time": "Fri Sep 07 15:20:38 2012 -0700"
      },
      "message": "Handle different x, y scales in drawLines AA path\n\nbug:7114630\n\nFixes different x, y scales, and fixes boundaryWidthProportion to be from\ncenter, not edge.\n\nAlso adds drawLine tests that previously drew blurry.\n\nChange-Id: I2b648a60361ad3931eac67647b9b27909525ee1e\n"
    },
    {
      "commit": "89b3f48fa3ccaf9a05628f0e540c1f94716809f7",
      "tree": "8a02c1f85bd5268122888e517aa3aaf80062d956",
      "parents": [
        "c0be8c85b09002359adb1fb20f2bf08e6983d146",
        "d15ebf25c595b855f6978d0600218e3ea5f31e92"
      ],
      "author": {
        "name": "Chet Haase",
        "email": "chet@google.com",
        "time": "Fri Sep 07 14:44:43 2012 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Sep 07 14:44:43 2012 -0700"
      },
      "message": "Merge \"Enable changing properties of layer paint\" into jb-mr1-dev"
    },
    {
      "commit": "55e6b77bda7da1684ca32493d9e03184bd441dab",
      "tree": "452dd95ab11bd568485f2ea36276395cd90f111e",
      "parents": [
        "417984dc0d27bdd1b33ae3115593f609961a0c15",
        "58ecc204fbcacef34806290492384677a330d4d4"
      ],
      "author": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Fri Sep 07 14:01:30 2012 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Sep 07 14:01:31 2012 -0700"
      },
      "message": "Merge \"Reduce the number of locks acquired by display lists\" into jb-mr1-dev"
    },
    {
      "commit": "58ecc204fbcacef34806290492384677a330d4d4",
      "tree": "13be7c29c62652911b5213122419a128c67615ee",
      "parents": [
        "369bb97d02209fa800081fc3b4e8675ea7e75d34"
      ],
      "author": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Fri Sep 07 11:58:36 2012 -0700"
      },
      "committer": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Fri Sep 07 14:01:09 2012 -0700"
      },
      "message": "Reduce the number of locks acquired by display lists\n\nChange-Id: I1123aae0355de84db705bb75042c7083fc69c9f2\n"
    },
    {
      "commit": "d15ebf25c595b855f6978d0600218e3ea5f31e92",
      "tree": "35154bd1ec18cf8299a0d737847291ab28a5c98b",
      "parents": [
        "4db5d23deab9ea8de34cdb1c56af31e6e3cff79b"
      ],
      "author": {
        "name": "Chet Haase",
        "email": "chet@google.com",
        "time": "Wed Sep 05 11:40:29 2012 -0700"
      },
      "committer": {
        "name": "Chet Haase",
        "email": "chet@google.com",
        "time": "Fri Sep 07 13:27:02 2012 -0700"
      },
      "message": "Enable changing properties of layer paint\n\nPreviously, to draw a layered view with a changed Paint object for the\ndrawLayer operation, you\u0027d have to invalidate the parent view, to get the\nnative DisplayList to pick up the new Paint properties. This change adds\nAPI and functionality so that the developer can call setLayerPaint(), which\ndoes the proper invalidation (lightweight, doesn\u0027t cause redrawing the view).\n\nIssue #6923810 Make it easy to efficiently animate a layer\u0027s Paint\n\nChange-Id: I7fea79788d50f6d9c86dd5e5b2a4490cb95142bb\n"
    },
    {
      "commit": "01fcb728940c12498ab2c7503fe86a849725ea12",
      "tree": "95aaf7f4269fdd2d88ce2a7ca70374cf0be2b165",
      "parents": [
        "37ee53420ce47860807eb8eaeb454c12fa46797b",
        "8a802dbdabdfd27692c2e38b2c3adafe95566106"
      ],
      "author": {
        "name": "Fabrice Di Meglio",
        "email": "fdimeglio@google.com",
        "time": "Fri Sep 07 10:17:55 2012 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Sep 07 10:17:55 2012 -0700"
      },
      "message": "Merge \"Use \"ldrtl\" and \"ldltr\" config qualifiers for RTL / LTR resources\" into jb-mr1-dev"
    },
    {
      "commit": "9147cd4ac56d53dec6da1ef13dd04ba1eec1a7df",
      "tree": "b2b281f65745e56c0f3db9abb6b75be001efa12e",
      "parents": [
        "fb3ec448f1208d75edebff0e93fa97a8913ff29e"
      ],
      "author": {
        "name": "Chris Craik",
        "email": "ccraik@google.com",
        "time": "Thu Sep 06 16:44:51 2012 -0700"
      },
      "committer": {
        "name": "Chris Craik",
        "email": "ccraik@google.com",
        "time": "Thu Sep 06 16:44:51 2012 -0700"
      },
      "message": "Fix m11 to be Y scale instead of X\n\nbug:7114630\n\nFixes different X and Y values resulting in blurry lines/rects.\n\nChange-Id: I3eb244e0cf769efa6b38d08741cf37d0bf62b786\n"
    },
    {
      "commit": "8a802dbdabdfd27692c2e38b2c3adafe95566106",
      "tree": "7b933dc6d1dcfb6cd4a7d0a349ce642641712c07",
      "parents": [
        "18e876806718e28edaa3cd9bb0262a9b400bc82b"
      ],
      "author": {
        "name": "Fabrice Di Meglio",
        "email": "fdimeglio@google.com",
        "time": "Wed Sep 05 13:12:02 2012 -0700"
      },
      "committer": {
        "name": "Fabrice Di Meglio",
        "email": "fdimeglio@google.com",
        "time": "Thu Sep 06 11:13:24 2012 -0700"
      },
      "message": "Use \"ldrtl\" and \"ldltr\" config qualifiers for RTL / LTR resources\n\n- we cannot use \"rtl\" / \"ltr\" qualifiers as they can conflict with ISO-639 Alpha-3\ncodespace which uses 3 letters for identifying a language code (and could use either\n\"rtl\" or \"ltr\" strings for defining a language in the future).\n\n- we are using instead \"ldrtl\" for RTL and \"ldltr\" for LTR resources. Those qualifiers\nare defined by more than 3 chars and outside of what is defined into ISO-639. They\nare also more understandable as \"ld\" prefix is for \"layoutdirection\"\n\nChange-Id: Id43e948103707e09bef63ebd54ac1779dde58e72\n"
    },
    {
      "commit": "378d131e65348d199db36c21ba7156542bbf0045",
      "tree": "b2e41ab4962973acea7fe8a3b9b3f97581ead2be",
      "parents": [
        "369bb97d02209fa800081fc3b4e8675ea7e75d34",
        "6ebdc114e0d72137394f02bc8ffe9d7a782a65c4"
      ],
      "author": {
        "name": "Chris Craik",
        "email": "ccraik@google.com",
        "time": "Thu Sep 06 10:52:13 2012 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Sep 06 10:52:14 2012 -0700"
      },
      "message": "Merge \"Varying-based AA rect drawing\" into jb-mr1-dev"
    }
  ],
  "next": "6ebdc114e0d72137394f02bc8ffe9d7a782a65c4"
}
