)]}'
{
  "log": [
    {
      "commit": "77e4a5250fc6df451999efe508f57968a44b603f",
      "tree": "e26c3542b7d6efcc4902c3e384a145938f006c83",
      "parents": [
        "c909e1b2dfa2e47b786d96818f70f6308c5a78be"
      ],
      "author": {
        "name": "John Reck",
        "email": "jreck@google.com",
        "time": "Wed Oct 01 10:38:07 2014 -0700"
      },
      "committer": {
        "name": "John Reck",
        "email": "jreck@google.com",
        "time": "Wed Oct 01 10:38:07 2014 -0700"
      },
      "message": "Re-allow suppressing onDetachedFromWindow\n\nBug: 17578553\n\nGames seem to be doing this to prevent destruction of their\nGL contexts, and they assume it works even if it doesn\u0027t. However,\nGLSurfaceView is clunky here, so while the app is doing something\nquestionable we don\u0027t really offer a better way. For now revert\nback to kitkat behavior.\n\nChange-Id: Icfa9e496279b9cfa47f9bc7f6848d9313caed0d5\n"
    },
    {
      "commit": "f47a594f5250b1914c36423ee6b371f0b8db09d0",
      "tree": "f86289c7b515c2111fde3ce11e7fca384bc2f603",
      "parents": [
        "dd59aba6c7e142eae14d5f29ea6873a5b9790174"
      ],
      "author": {
        "name": "John Reck",
        "email": "jreck@google.com",
        "time": "Mon Jun 30 16:20:04 2014 -0700"
      },
      "committer": {
        "name": "John Reck",
        "email": "jreck@google.com",
        "time": "Mon Jun 30 16:36:26 2014 -0700"
      },
      "message": "Fix onTrimMemory for HardwareRenderer\n\n Also fixes detachFunctor possibly drawing after return\n\n Bug: 15189843\n Bug: 15990672\n\nChange-Id: I64c48cb674c461a8eeaba407b697e09f72c98ce3\n"
    },
    {
      "commit": "61b2dfe224db012ea9492738ac7ab5cb0629e6c0",
      "tree": "739ebaeb2f1d03aba0c41ee60cb035648b21d3bc",
      "parents": [
        "7ab63acdd0a257272512d0bcf5e06036fa0b9fdf"
      ],
      "author": {
        "name": "Jesse Hall",
        "email": "jessehall@google.com",
        "time": "Mon May 19 16:42:18 2014 -0700"
      },
      "committer": {
        "name": "Jesse Hall",
        "email": "jessehall@google.com",
        "time": "Wed May 21 21:04:20 2014 -0700"
      },
      "message": "opengl: Un-hide GLES31 and GLES31Ext classes\n\nBug: 15028495\nChange-Id: Icda236ee12a06ef2eb9902253d272dee2b61f6ef\n"
    },
    {
      "commit": "7ab63acdd0a257272512d0bcf5e06036fa0b9fdf",
      "tree": "e171e4077a15b625b039d640a533077ecbaf303f",
      "parents": [
        "f26d4abecda0adb062b56302d8b604eb144f9b03"
      ],
      "author": {
        "name": "Jesse Hall",
        "email": "jessehall@google.com",
        "time": "Mon May 19 15:13:41 2014 -0700"
      },
      "committer": {
        "name": "Jesse Hall",
        "email": "jessehall@google.com",
        "time": "Wed May 21 21:04:20 2014 -0700"
      },
      "message": "opengl: Add GLES31 and GLES31Ext classes\n\nBug: 15028495\nChange-Id: Ie967c1938060edb42864dd48efa668ae7bf5cd76\n"
    },
    {
      "commit": "4660c9e064ebaec9ebb260c2853a8dab868ccdc2",
      "tree": "15b4e93fb44462164ce13c22b016adece9c80507",
      "parents": [
        "95c950825f02e937711fbcbff63f614a91cb1443",
        "43cea7eadbcb3930887eadfa3f278e1a666449d0"
      ],
      "author": {
        "name": "Jesse Hall",
        "email": "jessehall@google.com",
        "time": "Mon Apr 21 19:49:40 2014 +0000"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Mon Apr 21 19:49:40 2014 +0000"
      },
      "message": "am 43cea7ea: am 650a8860: am fc3c6a0e: Merge \"EGL_OPENGL_ES3_BIT_KHR is set as ES 3 context is requested.\"\n\n* commit \u002743cea7eadbcb3930887eadfa3f278e1a666449d0\u0027:\n  EGL_OPENGL_ES3_BIT_KHR is set as ES 3 context is requested.\n"
    },
    {
      "commit": "28a5c593577d6aef03d874b42ec0215c88f62bf4",
      "tree": "ff7d91c71484ecbcc137d2fe62bc15bf752a3ad5",
      "parents": [
        "c420ce34ba177cd959cbb9432e9597d377e6cee6"
      ],
      "author": {
        "name": "Jin Zhebin",
        "email": "zhebinx.jin@intel.com",
        "time": "Tue Jan 21 15:27:20 2014 +0800"
      },
      "committer": {
        "name": "bdeng3X",
        "email": "bingx.deng@intel.com",
        "time": "Tue Apr 15 05:11:58 2014 +0800"
      },
      "message": "EGL_OPENGL_ES3_BIT_KHR is set as ES 3 context is requested.\n\nOpenGL ES have 3 configuration: 1(EGL10.EGL_RENDERABLE_TYPE),\n2(EGL_OPENGL_ES2_BIT), 3(EGL_OPENGL_ES3_BIT_KHR). The driver\nshould be get the according configuration parameter.\nNow 1 is set to driver when Configuration 3 is set from user.\nSpecification EGL_OPENGL_ES3_BIT_KHR is set to driver when a OpenGL\nES 3 context is requested in setEGLContextClientVersion().\n\nChange-Id: I980d9d8dbe5754295f8329fcf9378962d669fa89\nSigned-off-by: Jin Zhebin \u003czhebinx.jin@intel.com\u003e\nSigned-off-by: bdeng3X \u003cbingx.deng@intel.com\u003e\n"
    },
    {
      "commit": "b14dfe20ef300c47cc5cdfbd844c21f7fd302f0c",
      "tree": "894d9b7652c64bd77185c064433d0271b2f4569b",
      "parents": [
        "acbc41d656be91854d9c128aee06b5ecc9f54528"
      ],
      "author": {
        "name": "John Reck",
        "email": "jreck@google.com",
        "time": "Thu Mar 06 22:06:20 2014 +0000"
      },
      "committer": {
        "name": "John Reck",
        "email": "jreck@google.com",
        "time": "Thu Mar 06 14:12:35 2014 -0800"
      },
      "message": "Revert \"Revert \"Workaround apps not calling super.onDetachedFromWindow()\"\"\n\nThis reverts commit bac16fae7e6fceb1e516252ede673844b772e7c3.\n\nChange-Id: I61e997b23fac1aa984129fdc0328426ff8891bdd\n"
    },
    {
      "commit": "bac16fae7e6fceb1e516252ede673844b772e7c3",
      "tree": "9692f596099b9fcdc4a25c00051fb443f430329e",
      "parents": [
        "198d20842a537f3df3584ea084e74220e172b086"
      ],
      "author": {
        "name": "Bart Sears",
        "email": "bsears@google.com",
        "time": "Thu Mar 06 21:09:51 2014 +0000"
      },
      "committer": {
        "name": "Bart Sears",
        "email": "bsears@google.com",
        "time": "Thu Mar 06 21:09:51 2014 +0000"
      },
      "message": "Revert \"Workaround apps not calling super.onDetachedFromWindow()\"\n\nRequested by jreck to fix the build.\n\nThis reverts commit 198d20842a537f3df3584ea084e74220e172b086.\n\nChange-Id: I733065cc124b59bf914034f5bac5e2e951a5b604\n"
    },
    {
      "commit": "198d20842a537f3df3584ea084e74220e172b086",
      "tree": "9256a5d3357465f52c726c12232aecfc1a42f622",
      "parents": [
        "cb20740ee171de3e604c07cdd02963d4d08a5fc9"
      ],
      "author": {
        "name": "John Reck",
        "email": "jreck@google.com",
        "time": "Thu Mar 06 12:31:17 2014 -0800"
      },
      "committer": {
        "name": "John Reck",
        "email": "jreck@google.com",
        "time": "Thu Mar 06 12:40:49 2014 -0800"
      },
      "message": "Workaround apps not calling super.onDetachedFromWindow()\n\n Bug: 13338698\n Move the releasing of hardware resources to a new\n @hide onDetachedFromWindowInternal\n\nChange-Id: I52b4e6ba4d5b3ce20b89cabffa248d1d780e3e81\n"
    },
    {
      "commit": "80009c029800fd343012ce55648ef9a21c139527",
      "tree": "99143a09c60522681a9a1b8454553b542691936b",
      "parents": [
        "fc9276340897289b8f848fc722152d6fc0f891ed"
      ],
      "author": {
        "name": "Narayan Kamath",
        "email": "narayan@google.com",
        "time": "Fri Feb 28 14:00:10 2014 +0000"
      },
      "committer": {
        "name": "Narayan Kamath",
        "email": "narayan@google.com",
        "time": "Fri Feb 28 14:06:44 2014 +0000"
      },
      "message": "Fix bad link tag in javadoc.\n\nJava7 javadoc tools seem to accept this without complaint\nbut not all targets use java7 yet.\n\nChange-Id: Ib025d12550f5fd68edce5760747f9225a2be50c6\n"
    },
    {
      "commit": "1801b180dac364a25ef12a5af01ce0bb5a74a601",
      "tree": "a221e0c5fb225aac58ef7d3b625455081a3a0139",
      "parents": [
        "e5f98941bad09f797329aeec090177e1da17220e"
      ],
      "author": {
        "name": "Narayan Kamath",
        "email": "narayan@google.com",
        "time": "Thu Feb 27 14:09:53 2014 +0000"
      },
      "committer": {
        "name": "Narayan Kamath",
        "email": "narayan@google.com",
        "time": "Thu Feb 27 14:17:48 2014 +0000"
      },
      "message": "API changes for 64 bit platforms.\n\nEGLObjectHandle.\u003cinit\u003e(int) and int EGLObjectHandle.getHandle()\nhave now been deprecated and replaced with variants that take\nand return java longs.\n\nbug: 13181704\nChange-Id: I67bef5fbf064e85205b8a85e00f91f4ffcf60d19\n"
    },
    {
      "commit": "e5f98941bad09f797329aeec090177e1da17220e",
      "tree": "e8be91d68af2366e5766bf870cb3091d6689dbe5",
      "parents": [
        "a393735a5d637d211713b2b580bdd16f8eba2f7d",
        "7aec4109c53371e69bec111c69767810f45c301c"
      ],
      "author": {
        "name": "Narayan Kamath",
        "email": "narayan@google.com",
        "time": "Thu Feb 27 13:33:23 2014 +0000"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Thu Feb 27 13:33:23 2014 +0000"
      },
      "message": "am 7aec4109: am 7aeb4307: am 2525acf5: am e4dae5f2: Merge \"AArch64: Make eglGetDisplay(int) work for EGL_DEFAULT_DISPLAY\"\n\n* commit \u00277aec4109c53371e69bec111c69767810f45c301c\u0027:\n  AArch64: Make eglGetDisplay(int) work for EGL_DEFAULT_DISPLAY\n"
    },
    {
      "commit": "64d38d9f4863f6e9434e6820b924eb958e8a2230",
      "tree": "243037836541cee05e0aebc83944503af726e217",
      "parents": [
        "2ba70fd49bfcbb516e75c198c106764609335feb"
      ],
      "author": {
        "name": "Ashok Bhat",
        "email": "ashok.bhat@arm.com",
        "time": "Wed Feb 26 10:00:48 2014 +0000"
      },
      "committer": {
        "name": "Ashok Bhat",
        "email": "ashok.bhat@arm.com",
        "time": "Wed Feb 26 19:07:54 2014 +0000"
      },
      "message": "AArch64: Make eglGetDisplay(int) work for EGL_DEFAULT_DISPLAY\n\nNote that files changed in this patch have been automatically\ngenerated by running frameworks/native/opengl/tools/glgen/gen\nscript\n\nThis will allow eglGetDisplay(int) to work on both 32-bit and\n64-bit systems when EGL_DEFAULT_DISPLAY is passed as a parameter.\n\nChange-Id: Idf27d6e00d623d331bb2d4d7f85fa450e0db26c9\nSigned-off-by: Ashok Bhat \u003cashok.bhat@arm.com\u003e\n"
    },
    {
      "commit": "a77cf8735432daddb233164f41103a0ff38408bb",
      "tree": "7537a33c67ecc0b43ecd378862d177d700b94be0",
      "parents": [
        "6924c4ef8db3ffd80b35f2b736b7ea9577148e9e",
        "8a985d24ce9a38f40ed88fecbdcd0e75e3a68f44"
      ],
      "author": {
        "name": "John Spurlock",
        "email": "jspurlock@google.com",
        "time": "Tue Feb 25 19:57:33 2014 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Feb 25 19:57:33 2014 +0000"
      },
      "message": "Merge \"Tabs -\u003e spaces in frameworks/base.\""
    },
    {
      "commit": "8a985d24ce9a38f40ed88fecbdcd0e75e3a68f44",
      "tree": "a71a241bf554a157a25d54dce66364d7881c3579",
      "parents": [
        "875e2101d71afe7e4acf10b061c942fbf7294775"
      ],
      "author": {
        "name": "John Spurlock",
        "email": "jspurlock@google.com",
        "time": "Tue Feb 25 09:40:05 2014 -0500"
      },
      "committer": {
        "name": "John Spurlock",
        "email": "jspurlock@google.com",
        "time": "Tue Feb 25 09:49:29 2014 -0500"
      },
      "message": "Tabs -\u003e spaces in frameworks/base.\n\nChange-Id: I5a84e8e93ac99b5ed0212b37bf66efa5e53864be\n"
    },
    {
      "commit": "58908b02f38b7bcf713664c76c6eaa732d1e8467",
      "tree": "bccc57ef54e8456f0abff72a2a98d145f4cf9801",
      "parents": [
        "e21c52a8c9ef27c348f784daa8ec384152c3264e",
        "d8410d38cf2eb133dab29aec722dce862584d115"
      ],
      "author": {
        "name": "Narayan Kamath",
        "email": "narayan@google.com",
        "time": "Tue Feb 25 13:20:47 2014 +0000"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Tue Feb 25 13:20:47 2014 +0000"
      },
      "message": "am d8410d38: am 614b00de: am a88abfb3: am 6ab07fac: Merge \"Use long for pointers in opengl/EGL classes\"\n\n* commit \u0027d8410d38cf2eb133dab29aec722dce862584d115\u0027:\n  Use long for pointers in opengl/EGL classes\n"
    },
    {
      "commit": "84bbeb9e0c9c185a22d4882b79e0bc8a598642ab",
      "tree": "aec3070b804b96ae85e20d95fc622ef0018762c1",
      "parents": [
        "bbfc08b3abc0934f67659f3238eb79dcac838c17"
      ],
      "author": {
        "name": "Ashok Bhat",
        "email": "ashok.bhat@arm.com",
        "time": "Mon Feb 24 10:06:55 2014 +0000"
      },
      "committer": {
        "name": "Ashok Bhat",
        "email": "ashok.bhat@arm.com",
        "time": "Mon Feb 24 15:50:22 2014 +0000"
      },
      "message": "Use long for pointers in opengl/EGL classes\n\nNote that files changed in this patch have been automatically\ngenerated by running frameworks/native/opengl/tools/glgen/gen script\n\nThis patch updates EGL classes in frameworks/base to support\n64-bit platforms. Key changes in the EGL classes include\n\n[x] EGLObjectHandle class - EGLObjectHandle class has two public\n    methods (constructor and getHandle) that assume handles are\n    32-bit. They have not been changed. Instead, two new hidden\n    methods (EGLObjectHandle(long) and getNativeHandle) have been\n    added.\n\n[x] EG14 class - Two public methods eglGetDisplay and\n    eglCreatePbufferFromClientBuffer assume that handles are 32-bit.\n    They have been changed to throw unsupported operation exception\n    on non 32-bit machines. Two new methods eglGetDisplay(long)\n    and eglCreatePbufferFromClientBuffer(...long buffer..) have\n    been added to support 64-bit handles.\n\nChange-Id: I9e0f064e5b33700eb0baa2e1841a21f931f7a765\nSigned-off-by: Ashok Bhat \u003cashok.bhat@arm.com\u003e\n"
    },
    {
      "commit": "9ba6ecb275d62ad363bda73856c0e75590a73c57",
      "tree": "eec0e02634033b31da0684ac4e27f880b0853ba9",
      "parents": [
        "807e0c180b1aaf519ea9ff788508219166cd00cd"
      ],
      "author": {
        "name": "Andy McFadden",
        "email": "fadden@android.com",
        "time": "Fri Feb 14 13:09:07 2014 -0800"
      },
      "committer": {
        "name": "Andy McFadden",
        "email": "fadden@android.com",
        "time": "Wed Feb 19 10:34:54 2014 -0800"
      },
      "message": "Hide three malformed GL bindings\n\nThey were replaced with correct bindings a while back, but the\nbroken methods weren\u0027t hidden.\n\nBug 6006380\n\nChange-Id: I3432d37a6bf411bbd2b3ea363749e32fcff28672\n"
    },
    {
      "commit": "863f98bbb3e234e18c62ce2678ae970b75995f69",
      "tree": "119cc10a408e32cd789a6d71244caaa33f096f8c",
      "parents": [
        "e05b7b50e234e8ed2471f5ad96bb3d715067e9f3"
      ],
      "author": {
        "name": "Ashok Bhat",
        "email": "ashok.bhat@arm.com",
        "time": "Mon Jan 27 16:58:46 2014 +0000"
      },
      "committer": {
        "name": "David Butcher",
        "email": "david.butcher@arm.com",
        "time": "Fri Jan 31 16:27:30 2014 +0000"
      },
      "message": "Use long to store pointers in GLES_JNI/EGL classes\n\nChange-Id: I43b32f2a85c07b3f59c57e28e3d03e8d1cabcd8b\nSigned-off-by: Marcus Oakland \u003cmarcus.oakland@arm.com\u003e\nSigned-off-by: Ashok Bhat \u003cashok.bhat@arm.com\u003e\n"
    },
    {
      "commit": "a0ab49bb52f44eac97f81117d6864edd6a2e0487",
      "tree": "fb5f1edd7765732612b5735592013fd4748cbb75",
      "parents": [
        "37c69fdd826f3973966430adc1abfbefc19bc16e",
        "544604098cce0648b82c9d3fa232cffcb2a902a7"
      ],
      "author": {
        "name": "Jesse Hall",
        "email": "jessehall@google.com",
        "time": "Sun Dec 15 00:11:21 2013 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Sun Dec 15 00:11:21 2013 +0000"
      },
      "message": "Merge \"Fix incorrect name in eglSwapBuffers log wrapper\""
    },
    {
      "commit": "544604098cce0648b82c9d3fa232cffcb2a902a7",
      "tree": "a6be9d15173bd059d90c609f719821992930529d",
      "parents": [
        "7adc233cf8f6f9e2a83a4549a9295d1a3933beab"
      ],
      "author": {
        "name": "Brian Harris",
        "email": "brianh@nvidia.com",
        "time": "Tue Dec 10 15:23:51 2013 -0800"
      },
      "committer": {
        "name": "Michael Chock",
        "email": "mchock@nvidia.com",
        "time": "Tue Dec 10 15:36:46 2013 -0800"
      },
      "message": "Fix incorrect name in eglSwapBuffers log wrapper\n\nCorrectly identify eglSwapBuffers in EGLLogWrapper, which had been\nlabeled as \"eglInitialize\".\n\nChange-Id: I67c61e100e2f84400ceebc28712f036e5a055017\n"
    },
    {
      "commit": "066bdcfe83e49ad4bfb97670521c1b7e7297ba53",
      "tree": "431691c3dc4dca1d6f9b59a0f128fa7019726898",
      "parents": [
        "db759c3f022d1416fe885e1a0ef05a4ca208f254",
        "a0175536383d77a5dd1908e73085752b1bf5a803"
      ],
      "author": {
        "name": "Andy McFadden",
        "email": "fadden@android.com",
        "time": "Mon Jun 24 17:42:25 2013 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Jun 24 17:42:25 2013 +0000"
      },
      "message": "Merge \"Fix wrapper equals()\""
    },
    {
      "commit": "a0175536383d77a5dd1908e73085752b1bf5a803",
      "tree": "b79b679bccdd795bf5071e5f46c913cb234fe109",
      "parents": [
        "e36b93575f14239ff38ea8b71e39e41b0312326b"
      ],
      "author": {
        "name": "Andy McFadden",
        "email": "fadden@android.com",
        "time": "Fri Jun 21 16:21:05 2013 -0700"
      },
      "committer": {
        "name": "Andy McFadden",
        "email": "fadden@android.com",
        "time": "Fri Jun 21 16:21:05 2013 -0700"
      },
      "message": "Fix wrapper equals()\n\nMake it faster and correcter.\n\nBug 9204146\n\nChange-Id: Ieeb97b72005e831ec6b94fc24ed2c3bc03307c2a\n"
    },
    {
      "commit": "043d13ad4b67b57fa8ba1fa35f48ff5bcc0f0141",
      "tree": "b5476841ce34bf98d43de7b819b06e2223f64717",
      "parents": [
        "e36b93575f14239ff38ea8b71e39e41b0312326b"
      ],
      "author": {
        "name": "Andy McFadden",
        "email": "fadden@android.com",
        "time": "Fri Jun 21 14:43:19 2013 -0700"
      },
      "committer": {
        "name": "Andy McFadden",
        "email": "fadden@android.com",
        "time": "Fri Jun 21 14:49:23 2013 -0700"
      },
      "message": "Minor fixes to android.opengl.Matrix\n\nThis has a minor API change: deprecation of the nullary constructor.\nThe class is entirely composed of static methods, and was written\nwithout a constructor, but the compiler dutifully generated a\ndefault implementation and the API tool slurped it up.\n\nThe other changes are to the documentation:\n\n - Added warnings about the use of overlapping input and output\n   on certain methods.\n - Fixed a few inaccuracies (e.g. transposeM() returns a transposed\n   matrix, not an inverted matrix).\n - Tidied up the formatting.\n - Generally placated the consistency hobgoblins.\n\nBug 8868762\n\nChange-Id: Ie3f86b98c477d8dc82d9dcaa311959bd4d191359\n"
    },
    {
      "commit": "0c79d808cb66894434e78052c66a0f81e5419176",
      "tree": "5eca0b87776b0c1d8a0f02284486d2efd9b0e6ff",
      "parents": [
        "9f844790f305338de4fa3adda5e125c811f280ca"
      ],
      "author": {
        "name": "Jesse Hall",
        "email": "jessehall@google.com",
        "time": "Tue Apr 30 13:46:28 2013 -0700"
      },
      "committer": {
        "name": "Jesse Hall",
        "email": "jessehall@google.com",
        "time": "Wed May 01 13:46:58 2013 -0700"
      },
      "message": "Add android.opengl.EGLExt class for EGL extensions\n\nAdd the ES-relevant constants from the EGL_KHR_create_context\nextension. These allow apps to check which EGLConfigs (if any) support\nES3 contexts. Otherwise, the app has to create a context with an\nEGLConfig and then check whether it is an ES2 or ES3 context.\n\nAlso move eglSetPresentationTimeANDROID from EGL14 to EGLExt, since it\u0027s an\nextension function. It\u0027s new in API 18.\n\nBug: 8678160\nChange-Id: I3cba6e59ebb0a3a4c4012aa54a36b940c288bcec\n"
    },
    {
      "commit": "f48b03296c715b18ffbb7393d5e71ea96eaae028",
      "tree": "2c20fd5a25733d27e7f2366dd392bd3269270aa9",
      "parents": [
        "18414c4db7a2cd7d7b872e4cd4583bc8b7a4fcc0"
      ],
      "author": {
        "name": "Jeff Brown",
        "email": "jeffbrown@google.com",
        "time": "Fri Apr 19 17:13:33 2013 -0700"
      },
      "committer": {
        "name": "Jeff Brown",
        "email": "jeffbrown@google.com",
        "time": "Fri Apr 19 17:19:53 2013 -0700"
      },
      "message": "Revert all recent GLSurfaceView changes.\n\nSeveral issues have been identified that will need to be\nresolved carefully before we attempt to make similar changes.\n\n1. Some applications make assumptions about the fact that all\n   Runnables posted with queueEvent() will be executed before\n   the next draw.  Because the Choreographer may post messages\n   in the past (due at the frame time), these Runnables were\n   not always running at the expected time.\n\n2. Some applications apparently hijack the GLThread and try\n   to run their own Looper on it.  This obviously won\u0027t work\n   if we are already running one of our own.\n\nWe may need to add new rendering modes or target API checks\nto provide an opportunity for applications to opt-in to the\nchanges in the future.\n\nBug: 8649804\nChange-Id: I6289c3392a98cdbfaf28c7f4f7a8040f2138a3b4\n"
    },
    {
      "commit": "8b60e4514702edd1eb4b6f2bfc027e04a94369c0",
      "tree": "83ba3f9cbbb4a7bae7a5069622b7c31d1a135775",
      "parents": [
        "a454c5732cacffdda53ae277b1e43d87b43044b1"
      ],
      "author": {
        "name": "Jeff Brown",
        "email": "jeffbrown@google.com",
        "time": "Thu Apr 18 15:17:48 2013 -0700"
      },
      "committer": {
        "name": "Jeff Brown",
        "email": "jeffbrown@google.com",
        "time": "Thu Apr 18 19:04:39 2013 -0700"
      },
      "message": "Fix change of behavior in Looper.quit().\n\nIt seems some applications rely on Looper.quit() terminating the\nloop immediately without processing all messages.  Rather than\nrisk breaking them, make the safer behavior optional.\n\nAlso take care to properly drain the message queue before quitting\nso that all of the Message instances are recycled.  This may\nhelp release storage sooner in case the Looper doesn\u0027t get GC\u0027d\npromptly and its remaining queue of undelivered messages sticks\naround.\n\nImprove docs on runWithScissors.\n\nBug: 8596303\nChange-Id: I8cbeb6f7a5f6b8e618b5109f87a03defc1486b9f\n"
    },
    {
      "commit": "78bc2033129507f1cf4acb2e3007f89cb2b3f224",
      "tree": "41adde11412edcce0980968faaf83b9360be2771",
      "parents": [
        "d3f9ffe28d1599e40f8c9a7c0c32465324bb2828"
      ],
      "author": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Thu Apr 18 13:52:58 2013 -0700"
      },
      "committer": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Thu Apr 18 14:47:44 2013 -0700"
      },
      "message": "don\u0027t trigger a render when setting the rendermode\n\nalso don\u0027t cache the rendermode, to mimic the older\nbehaviour.\n\nBug: 8656076\nChange-Id: Id9383852bed073927db2364f7ac30a1be28b4cd8\n"
    },
    {
      "commit": "c7bdd50c97d874456d0408599c1a6145186167dd",
      "tree": "337db05532cad0918f779b4f918a0f4c901f5fcc",
      "parents": [
        "d12a7645a3bf3ffa83b8041bf343f1dc12a2381f",
        "58d80c53c0aa2716b9bb6efa64111e1528cef2f8"
      ],
      "author": {
        "name": "Jesse Hall",
        "email": "jessehall@google.com",
        "time": "Tue Apr 16 22:17:19 2013 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Apr 16 22:17:20 2013 +0000"
      },
      "message": "Merge \"Unhide android.opengl.GLES30 class and contents\" into jb-mr2-dev"
    },
    {
      "commit": "811d373444822b1a81cd6fb4f8ef87f6d49559b1",
      "tree": "09a67069532bd0d9dcd81cc1a243732f95084e39",
      "parents": [
        "c6f2d17a0a6f9b172ff91247db12bc39a601f81c",
        "d830e74ff4bc9aa015f746e54f6922bf5221f1ba"
      ],
      "author": {
        "name": "Jesse Hall",
        "email": "jessehall@google.com",
        "time": "Tue Apr 16 21:32:36 2013 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Apr 16 21:32:36 2013 +0000"
      },
      "message": "Merge \"Add android.opengl.GLES30, hidden for now\" into jb-mr2-dev"
    },
    {
      "commit": "58d80c53c0aa2716b9bb6efa64111e1528cef2f8",
      "tree": "187d2fa22c5bdfa26c75840a71af568c8192febc",
      "parents": [
        "d830e74ff4bc9aa015f746e54f6922bf5221f1ba"
      ],
      "author": {
        "name": "Jesse Hall",
        "email": "jessehall@google.com",
        "time": "Wed Apr 10 22:52:36 2013 -0700"
      },
      "committer": {
        "name": "Jesse Hall",
        "email": "jessehall@google.com",
        "time": "Mon Apr 15 17:38:36 2013 -0700"
      },
      "message": "Unhide android.opengl.GLES30 class and contents\n\nBug: 8566953\nChange-Id: I5273fb3bff642da5ff1eecb5899e8051402b19ca\n"
    },
    {
      "commit": "d830e74ff4bc9aa015f746e54f6922bf5221f1ba",
      "tree": "3316db7c1a9ce1b6386e30e4b63d6ab658d3f7e7",
      "parents": [
        "c37b63d6e777748d17ff177b128e30504fbd6c71"
      ],
      "author": {
        "name": "Jesse Hall",
        "email": "jessehall@google.com",
        "time": "Fri Mar 29 11:02:35 2013 -0700"
      },
      "committer": {
        "name": "Jesse Hall",
        "email": "jessehall@google.com",
        "time": "Mon Apr 15 17:37:33 2013 -0700"
      },
      "message": "Add android.opengl.GLES30, hidden for now\n\nBug: 8566953\nChange-Id: Ia5a01d5e857b4fce12a451e2dcab0359758ad648\n"
    },
    {
      "commit": "ab814a647222ff6a6b682f0ff8159d1253cc0713",
      "tree": "eebe3154b6fe7ce2ebcfdeb9bd82f5ccd683e368",
      "parents": [
        "57d019e222abc0de3f8876e682617d42872230c6"
      ],
      "author": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Wed Apr 10 12:33:15 2013 -0700"
      },
      "committer": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Wed Apr 10 12:33:15 2013 -0700"
      },
      "message": "Don\u0027t draw synchronously in onResume()\n\nthis could cause a dead-lock if the applicaltion\u0027s draw\nimplementation blocks until something happenson the main\nui thread.\n\nnote: we\u0027re still doing this synchronous draw in onWindowResize() because\nthat\u0027s what the previous implementation did. Technically, it has the\nsame problem.\n\nBug: 8586305\nChange-Id: I782568289cc9419346aeea73775d86faa28b3058\n"
    },
    {
      "commit": "57d019e222abc0de3f8876e682617d42872230c6",
      "tree": "520fc4b9aac469fa18ca180f6c509e00f9b780de",
      "parents": [
        "cf5ccb8f81f038112e13ce2c9ff73602005595f7"
      ],
      "author": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Wed Apr 03 17:28:14 2013 -0700"
      },
      "committer": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Tue Apr 09 17:55:32 2013 -0700"
      },
      "message": "rework GLSurfaceView so it can use the choreographer\n\nGLSurfaceView will now automatically use the Choreographer to\nschedule render updates on VSYNC. This happens only in\nRENDERMODE_CONTINUOUSLY.\n\nGLSurfaceView was rewriten to use a Looper and a HandlerThread\ninstead of a custom thread.\n\nThe basic mode of operation is unchanged, however the implementation\nis largely different.\n\nRemoved support for older GPUs which had a limited number of contexts.\n\nBug: 8485730\n\nChange-Id: I7b270f7ad7bb1259e858429054b1c8c9cc159dc6\n"
    },
    {
      "commit": "ea62b95e7c562e8d0052441d8a0d7de6d919320f",
      "tree": "28a4b3e40da88b483dd59451b72b240f83224108",
      "parents": [
        "ab7409e6376708cf8958f3cfb8f6fce2e7bfc69c"
      ],
      "author": {
        "name": "Jack Palevich",
        "email": "jackpal@google.com",
        "time": "Mon Mar 18 22:44:58 2013 -0700"
      },
      "committer": {
        "name": "Jack Palevich",
        "email": "jackpal@google.com",
        "time": "Mon Mar 18 22:55:27 2013 -0700"
      },
      "message": "Fix createSurface / eglCreateWindowSurface race.\n\nPreviously we could have returned from createSurface on the main thread\nbefore calling eglCreateWindowSurface on the GLThread. That could lead\nto a problem because the surface could be destroyed before\neglCreateWindowSurface got a chance to run.\n\nBug: 8328715\nChange-Id: I273149f7d4b165abbe218a91ff54083f3f498cb0\n"
    },
    {
      "commit": "34f17dd1f615c6285f4f344eb700923e2432e48e",
      "tree": "430ffa928c1855257dfa4a257f4a9cb5a9c920e3",
      "parents": [
        "098b3ba5ef6e472b419c83b5e1d7c79bce05f2f5"
      ],
      "author": {
        "name": "Andy McFadden",
        "email": "fadden@android.com",
        "time": "Wed Mar 06 14:26:34 2013 -0800"
      },
      "committer": {
        "name": "Andy McFadden",
        "email": "fadden@android.com",
        "time": "Thu Mar 07 14:20:46 2013 -0800"
      },
      "message": "Publish new MediaCodec API\n\nUn-hide two new methods in MediaCodec, one new constant, and a new\nEGL extension.\n\nBug 7991062\nBug 8191230\n\nChange-Id: I028669132d9ffda1e4b34a561bab3997bbd7dae5\n"
    },
    {
      "commit": "0c361e9d3c93b3890fbae82b2f937bb4b3a42f70",
      "tree": "22bc6eeced29260770643c15a715542a9f6fa878",
      "parents": [
        "43abdc486d19c137b79a2bde9ce4706c91656bda"
      ],
      "author": {
        "name": "Andy McFadden",
        "email": "fadden@android.com",
        "time": "Fri Mar 01 16:24:13 2013 -0800"
      },
      "committer": {
        "name": "Andy McFadden",
        "email": "fadden@android.com",
        "time": "Tue Mar 05 11:16:10 2013 -0800"
      },
      "message": "Add eglPresentationTimeANDROID\n\nAdded EGL extension to set a timestamp on a surface.\n\nBug 8191230\n\nChange-Id: Ie73bd7d1217348c9c64b8c68da38d671d48355f7\n"
    },
    {
      "commit": "15284dee8efe6b4d1441ab040962077614b5061a",
      "tree": "6f18c65989ccb33cbf891eb4d85fb93916cb3177",
      "parents": [
        "88a1cf841ef8b5792fad8f3af4b4831101497c6c"
      ],
      "author": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Sat Feb 23 03:12:30 2013 -0800"
      },
      "committer": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Mon Feb 25 16:48:44 2013 -0800"
      },
      "message": "regenerate GLES java bindings\n\n    - added most missing validation checks\n    - glGet* validation reimplement from khronos documentation\n\n    Bug: 7402895\n\nChange-Id: I92a805bb1aba1600d3372dc2db22eab08c975d7f\n"
    },
    {
      "commit": "89be00bcda2b5965757e83bdf70a650b64373045",
      "tree": "e2cd9158a88cd014a8e884e0fd2d3b7165e26f33",
      "parents": [
        "eab51de4de88219256260fe26e2018a6234ef83b"
      ],
      "author": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Fri Feb 22 20:08:06 2013 -0800"
      },
      "committer": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Fri Feb 22 20:08:06 2013 -0800"
      },
      "message": "regenerate egl/gles stubs from glgen\n\nthose are minor cosmetic changes.\n\nChange-Id: I84ee5383577f0ca33ed7cc32d03e53c1475f068d\n"
    },
    {
      "commit": "0c1761bd37815c3776608a19c8e11d862b3e910c",
      "tree": "79ba5b10c39459913dad480243e0211b63ed41b0",
      "parents": [
        "0490f02eb72adcfd652f5e8373bf0a6c99592d54"
      ],
      "author": {
        "name": "Siva Velusamy",
        "email": "vsiva@google.com",
        "time": "Fri Dec 14 17:09:06 2012 -0800"
      },
      "committer": {
        "name": "Siva Velusamy",
        "email": "vsiva@google.com",
        "time": "Wed Dec 19 16:31:56 2012 -0800"
      },
      "message": "DdmServer: add controls for OpenGL tracing\n\nAdd a new JDWP packet to allow control of OpenGL tracing.\n\nChange-Id: Ic89e2f6299238a612df2f914581049f2cbba088c\n"
    },
    {
      "commit": "29e0bd2f5a80fdfe0e5b482a1df86363afcecbfa",
      "tree": "a7189ae7abae7420e0b649af13acc2a99e11717b",
      "parents": [
        "94998c9c4e19d5b439228646f1b283201367b7a0"
      ],
      "author": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Tue Sep 18 15:36:10 2012 -0700"
      },
      "committer": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Tue Sep 18 15:36:10 2012 -0700"
      },
      "message": "GLSurfaceView defaults to 888 instead of 565\n\nChange-Id: Ie00fe578136365031e4bb878a04b68dc40e24b9e\n"
    },
    {
      "commit": "f02b60aa4f367516f40cf3d60fffae0c6fe3e1b8",
      "tree": "893430514916fc74f4fd008dbcb457c2dd317989",
      "parents": [
        "ca34bcf6746454c561b0c07ca5c6e42bd4a73e9e"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Thu Aug 16 10:48:27 2012 -0700"
      },
      "committer": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Thu Aug 16 12:46:38 2012 -0700"
      },
      "message": "Rename UserId to UserHandle.\n\nThis is the start of turning this into a formal public API.\n\nChange-Id: I5786d2c320f1de41a06ed5d0f65adb68967287a0\n"
    },
    {
      "commit": "1296c63bf14af034a90d5579ff301d1a2b70e34a",
      "tree": "0cfe801c21cd98bcfeecc6a673e875a69ae538a9",
      "parents": [
        "5d728bb9ff8c6ad89d5a1b88b2804f954d45d763"
      ],
      "author": {
        "name": "Jeff Brown",
        "email": "jeffbrown@google.com",
        "time": "Wed Aug 08 01:47:28 2012 -0700"
      },
      "committer": {
        "name": "Jeff Brown",
        "email": "jeffbrown@google.com",
        "time": "Wed Aug 08 18:23:59 2012 -0700"
      },
      "message": "Enable use of Surface as a native window in EGL14 wrapper.\n\nChange-Id: Ia3546fd02f9b60d4505fbc0602522b95e3e5b6be\n"
    },
    {
      "commit": "42e1e0d482d774cf18a55773e434f02edb9e4462",
      "tree": "33ac1bca20382f2e8ccbf176c89b3476f2ae5c9b",
      "parents": [
        "8ab8fbbf46d8779f53301e7f706f97608eed7117"
      ],
      "author": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Mon Jul 30 14:47:51 2012 -0700"
      },
      "committer": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Tue Jul 31 18:55:16 2012 -0700"
      },
      "message": "Improve gradients\n\nAvoid using textures for common gradients (two stops from 0.0 to 1.0)\n\nChange-Id: Iff55d21b126c8cfc4cfb701669f2339c8f6b131a\n"
    },
    {
      "commit": "0a088f5d4681fd2da6f610de157bf905df787bf7",
      "tree": "8d5e765c49b7bcbfbaeab8c15bca38746d45984b",
      "parents": [
        "c25259519f1b74bb62a2b051b74537f073436b5c"
      ],
      "author": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Mon Jul 30 14:06:35 2012 -0700"
      },
      "committer": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Mon Jul 30 14:06:35 2012 -0700"
      },
      "message": "Fix android.opengl.Matrix frustum\u0027s generation\n\nExternal bug report: http://code.google.com/p/android/issues/detail?id\u003d35646\n\nChange-Id: I845783c05da46855f0c1d824c9a367f0e4673b85\n"
    },
    {
      "commit": "63cf0752226383cfc8fa35a3233413301b49fab7",
      "tree": "8e70b1d375a4a612cee51434b29c4b5b24554ccc",
      "parents": [
        "f33efd9c06102a13ae96532e9db35a18ffe4366c",
        "786fc93d71b833ab6b02b0c7ea5e30f25cceeedf"
      ],
      "author": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Tue Jul 24 16:45:50 2012 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Jul 24 17:21:56 2012 -0700"
      },
      "message": "Merge \"Make HardwareRenderer able to target generic Surface objects\""
    },
    {
      "commit": "786fc93d71b833ab6b02b0c7ea5e30f25cceeedf",
      "tree": "7a33afdfc52077e9f9665acc6d6072cb23e3d9d2",
      "parents": [
        "d8031f0e8c0977ff04aeb2164afacb2434dc0775"
      ],
      "author": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Tue Jul 24 16:24:56 2012 -0700"
      },
      "committer": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Tue Jul 24 16:41:21 2012 -0700"
      },
      "message": "Make HardwareRenderer able to target generic Surface objects\n\nChange-Id: I4b7199a1eb30e0df354ae12c4819adc69db5df40\n"
    },
    {
      "commit": "dd06946252be852aa53eb6142a119b0fccc83cd1",
      "tree": "de1b0c3ae2dda9d04bd5b451aa8522f146aff15b",
      "parents": [
        "60620a23996d7e6de72834bebde3b3c57981e219"
      ],
      "author": {
        "name": "Thomas Tafertshofer",
        "email": "tafertth@google.com",
        "time": "Thu Jul 19 16:55:37 2012 -0700"
      },
      "committer": {
        "name": "Thomas Tafertshofer",
        "email": "tafertth@google.com",
        "time": "Thu Jul 19 17:04:47 2012 -0700"
      },
      "message": "updated gles20 bindings, fixes broken methods\n\nthis adds correct versions of the broken GLES20 methods\nglGetShaderSource, glGetActiveAttrib and glGetActiveUniform.\nthe old functions are still there and need to be @hide later.\n\nBug: 6006380\nChange-Id: I8127a77c4b89aa8a9a54bea88774077535e2139d\n"
    },
    {
      "commit": "9b18b515909354d7b48c8ebc33ec38e2c6bbdf37",
      "tree": "deba4a28ee5731ba310b795c4f93db1d66017f52",
      "parents": [
        "f16336790bca9d3e946553f2e5a16e14bb9dbc3e"
      ],
      "author": {
        "name": "Thomas Tafertshofer",
        "email": "tafertth@google.com",
        "time": "Thu Jul 12 15:58:07 2012 -0700"
      },
      "committer": {
        "name": "Thomas Tafertshofer",
        "email": "tafertth@google.com",
        "time": "Fri Jul 13 17:44:00 2012 -0700"
      },
      "message": "EGL 1.4 API without @hide\n\nChange-Id: If03d23082b011aaba41594712601495dcbd70f6a\n"
    },
    {
      "commit": "6b1e838fc16d397359f82c3a4f5700f1ed7dd910",
      "tree": "318d0b9e0476cc6fb8a9dc997539f7a06957bf11",
      "parents": [
        "7c67fcb2f983c08d9ab1ab65b0b877472d98dc06"
      ],
      "author": {
        "name": "Thomas Tafertshofer",
        "email": "tafertth@google.com",
        "time": "Tue Jul 03 13:37:35 2012 -0700"
      },
      "committer": {
        "name": "Thomas Tafertshofer",
        "email": "tafertth@google.com",
        "time": "Tue Jul 10 15:48:30 2012 -0700"
      },
      "message": "EGL 1.4 bindings generated by glgen\n\nChange-Id: I1c3da57101f4ea089a12f1796f25b72d6852141e\n"
    },
    {
      "commit": "cee059dc764a57860da6b1574952089680b5ddc6",
      "tree": "3ab06ffe788422219fbe225af7c70c66a3692d63",
      "parents": [
        "6e0ac89f3896369363698801e75671b3478e8d4f"
      ],
      "author": {
        "name": "Jack Palevich",
        "email": "jackpal@google.com",
        "time": "Mon Apr 16 12:25:36 2012 -0700"
      },
      "committer": {
        "name": "Jack Palevich",
        "email": "jackpal@google.com",
        "time": "Mon Apr 16 12:25:36 2012 -0700"
      },
      "message": "Improve GLSurfaceView Pausing.\n\nWhen pausing we want to do three separate things, in order:\n\n + release the EGL surface\n + optionally release the EGL context\n + optionally terminate Egl\n\nPreviously we would only do these things if we had an EGL surface. But\nit is possible that we don\u0027t have an EGL Surface, but still have an EGL\ncontext. And in that situation we still want to release the EGL context.\n\nNow we check the preconditions for the three cases separately.\n\nBug: 6338235\nChange-Id: I804683b3d5c136cc98ea3f5051067eea18152ddf\n"
    },
    {
      "commit": "7dee7a38baafcbdd26ff116eeec862ec661dedec",
      "tree": "d224d4d6becaeea454f8a38af58a5afd7e3031ce",
      "parents": [
        "c38cf4c7dbe7d96255d42dabf8ca801830813f5e"
      ],
      "author": {
        "name": "Jack Palevich",
        "email": "jackpal@google.com",
        "time": "Tue Apr 10 05:56:19 2012 -0700"
      },
      "committer": {
        "name": "Jack Palevich",
        "email": "jackpal@google.com",
        "time": "Tue Apr 10 06:05:42 2012 -0700"
      },
      "message": "Notify monitor waiters when changing mSurfaceIsBad value.\n\nOtherwise the waiters might not wake up, leading to ANRs.\n\nBug: 6307843\nChange-Id: I0646b4e8368f80dbff46342f75709992796973fd\n"
    },
    {
      "commit": "7d73df83f9a28950f404e957eb2e4ea1e8525c55",
      "tree": "6f46441836e2d5bf35556888a30d5a41c0b9d701",
      "parents": [
        "b0721d4b09c7a3553bd1e4f42402b669a097eab9"
      ],
      "author": {
        "name": "Jack Palevich",
        "email": "jackpal@google.com",
        "time": "Thu Mar 29 16:24:58 2012 -0700"
      },
      "committer": {
        "name": "Jack Palevich",
        "email": "jackpal@google.com",
        "time": "Thu Mar 29 16:24:58 2012 -0700"
      },
      "message": "Try to survive a failure return from eglMakeCurrent.\n\nAssume a failure in eglMakeCurrent occurs because the SurfaceView\nsurface has been destroyed.\n\nSee b/6257956 for an example of this failure happening during rotation\nstress testing.\n\nChange-Id: I4618703b5291aba3a3f0c6bd83c3435a67b97d33\n"
    },
    {
      "commit": "db6c78b5bdf264abe8f6de97f67ca5e90fb6a05a",
      "tree": "cf23eb1f3affd7590cc1ac34d8f53bd66d4814e7",
      "parents": [
        "db2026000a1d832b60d73e0a046bc8137fbb1960"
      ],
      "author": {
        "name": "Jack Palevich",
        "email": "jackpal@google.com",
        "time": "Thu Mar 29 12:23:57 2012 -0700"
      },
      "committer": {
        "name": "Jack Palevich",
        "email": "jackpal@google.com",
        "time": "Thu Mar 29 12:23:57 2012 -0700"
      },
      "message": "Make GLSurfaceView handle eglSwapBuffers errors more robustly.\n\nA careful reading of the EGL spec, as well as experience with many\ndifferent EGL drivers, has shown that it is error prone to attempt to\ndiscriminate between different error conditions.\n\nWe now treat any error besides EGL_CONTEXT_LOST as an indication that the\nEGL context is in a bad state, most likely due to the window manager\nhaving removed the underlying surface flinger surface.\n\nIn addition, we changed the way we deal with this kind of error:\nPreviously we would ignore the error and keep rendering. But if the\nEGL context and surface has become invalid, it would be better to\nstop drawing. We now stop drawing until the surface view surface is\nrecreated.\n\nSee b/6032663 for an example of this problem affecting the GMM app,\nbut note that GMM is using their own version of GLSurfaceView, so this\nchange won\u0027t help them directly. They\u0027ll have to make a similar change\nto their version of GLSurfaceView.\n\nChange-Id: Iffe3e1e3a3c7a91d03140fd34391eadeaecf777e\nSigned-off-by: Jack Palevich \u003cjackpal@google.com\u003e\n"
    },
    {
      "commit": "ad812a23df775062f0185076557e7f3fdfa57943",
      "tree": "d170b440d49fb188203bfe2d2b72f844d6b8a0f0",
      "parents": [
        "df78cd5ee959f57c35dd9d6ad0f6871c72438f3c",
        "483f3b06ea84440a082e21b68ec2c2e54046f5a6"
      ],
      "author": {
        "name": "Amith Yamasani",
        "email": "yamasani@google.com",
        "time": "Thu Mar 22 15:11:51 2012 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Mar 22 15:11:51 2012 -0700"
      },
      "message": "Merge \"Package restrictions per user\""
    },
    {
      "commit": "f7f4c20605badb95f99e3f1f609458a9e4fe0c1a",
      "tree": "099c7ac8f5777c3ee7d00849804bdcd70dd92c58",
      "parents": [
        "2ffead9cf2cb57d21929c354e547a428b8be54d2",
        "8b854cd74bd29b6bb0b4c681490a3a97b1739289"
      ],
      "author": {
        "name": "Jack Palevich",
        "email": "jackpal@google.com",
        "time": "Thu Mar 22 11:47:30 2012 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Mar 22 11:47:30 2012 -0700"
      },
      "message": "Merge \"Remove EGL context limit for Adreno GPUs.\""
    },
    {
      "commit": "483f3b06ea84440a082e21b68ec2c2e54046f5a6",
      "tree": "cc0dff8ea3d133a4dc910bc1e90c85380cea2064",
      "parents": [
        "8fca15f1f2273fa429e58f783d0970251d0942e5"
      ],
      "author": {
        "name": "Amith Yamasani",
        "email": "yamasani@google.com",
        "time": "Tue Mar 13 16:08:00 2012 -0700"
      },
      "committer": {
        "name": "Amith Yamasani",
        "email": "yamasani@google.com",
        "time": "Thu Mar 22 10:08:24 2012 -0700"
      },
      "message": "Package restrictions per user\n\nPackages can be enabled/disabled per user.\nThis requires maintaining stopped/launched states and\nenabled / disabled components and packages per user.\n\nRefactored pm.Settings and PackageSettingsBase to keep\ntrack of states per user.\n\nMigrated the stopped-packages.xml to users/\u003cu\u003e/package-restrictions.xml\n\nChanged intent resolution to handle individual user restrictions.\nBunch of IPackageManager calls now have a userId argument.\nMake AppWidgetService handle removals of packages.\n\nAdded some tests for pm.Settings and PackageManager.\n\nChange-Id: Ia83b529e1df88dbcb3bd55ebfc952a6e9b20e861\n"
    },
    {
      "commit": "8b854cd74bd29b6bb0b4c681490a3a97b1739289",
      "tree": "50be755ac4b7a61215892eea9ef0289fdbfb1180",
      "parents": [
        "6c25ffb77069a9f39884b8e91e1810254c3e2f03"
      ],
      "author": {
        "name": "Jack Palevich",
        "email": "jackpal@google.com",
        "time": "Mon Mar 19 11:17:40 2012 -0700"
      },
      "committer": {
        "name": "Jack Palevich",
        "email": "jackpal@google.com",
        "time": "Mon Mar 19 11:17:40 2012 -0700"
      },
      "message": "Remove EGL context limit for Adreno GPUs.\n\nThis change allows Adreno GPUs to have multiple EGL contexts. We had\nto limit this in earlier versions of Android due to limitations in\nthe Adreno GPU driver (only 8 EGL contexts allowed system wide.)\nThat brand of GPU has improved its EGL drivers to support multiple\nEGL contexts in more recent versions of their drivers used on more\nrecent versions of Android.\n\nBug: 6142005\nChange-Id: Id3030466be9a3d9fbe728f1785378c1f05da98fe\n"
    },
    {
      "commit": "48a59c3d852867f13da4138ed2de94044febb99e",
      "tree": "ca10c17f3ea1c968deb43703dac57b003a3c0d7e",
      "parents": [
        "6c25ffb77069a9f39884b8e91e1810254c3e2f03"
      ],
      "author": {
        "name": "Jack Palevich",
        "email": "jackpal@google.com",
        "time": "Thu Mar 15 11:50:45 2012 -0700"
      },
      "committer": {
        "name": "Jack Palevich",
        "email": "jackpal@google.com",
        "time": "Thu Mar 15 11:50:45 2012 -0700"
      },
      "message": "Ignore EGL_BAD_CURRENT_SURFACE errors from eglSwapBuffers\n\nCertain EGL device drivers are generating this error, so we need to\nsurvive it. (It\u0027s not clear from the EGL spec whether this is a\nlegitimate error code, but since it\u0027s being generated we need to\nhandle it.)\n\nRemove logging of expected errors from elSwapBuffers. We expect these\nerrors to happen, and are handeling them by ignoring them.\nNo need to clutter the logs.\n\nBug: 6083241\n\nChange-Id: If17dcfbb68d3009b92cf95a448728ccb47023b51\n"
    },
    {
      "commit": "64d10a1da0a702ffeb086ad9c4a632f2712f1dad",
      "tree": "ad00d68fc373d8bdeab43b2fc83f81a983c2e659",
      "parents": [
        "df0d3ab4d03d8738a606b35bf9673950844aef4a"
      ],
      "author": {
        "name": "Siva Velusamy",
        "email": "vsiva@google.com",
        "time": "Fri Mar 09 14:21:28 2012 -0800"
      },
      "committer": {
        "name": "Siva Velusamy",
        "email": "vsiva@google.com",
        "time": "Fri Mar 09 15:25:29 2012 -0800"
      },
      "message": "Expose a function to set OpenGL Trace level.\n\nThis patch adds a function setGlDebugLevel() to libEGL, and\nexposes it to the Java layer at android.opengl.GLUtils.enableTracing().\n\nChange-Id: Ia5abb130bc32fcfe3ab25b0a0a5283a54c54f357\n"
    },
    {
      "commit": "8c79817dc6459baa2c79db88e3c3e4d5c07d6a61",
      "tree": "d7e4dfcc8a7851d5851750989664ec81ca620d6d",
      "parents": [
        "08965ec67ada98f63f8ac879cc44c8b0e7ff046d"
      ],
      "author": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Wed Mar 07 19:36:08 2012 -0800"
      },
      "committer": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Wed Mar 07 19:36:08 2012 -0800"
      },
      "message": "remove files that moved to frameworks/native\n\nChange-Id: I140d291e520097b1148930f736823650e08488f7\n"
    },
    {
      "commit": "08965ec67ada98f63f8ac879cc44c8b0e7ff046d",
      "tree": "9f8deeff644b4556c1054115e67de94bc6c39965",
      "parents": [
        "2d5ddd18688109e00229c577cefe1501ae39589e"
      ],
      "author": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Mon Mar 05 16:16:58 2012 -0800"
      },
      "committer": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Wed Mar 07 19:34:36 2012 -0800"
      },
      "message": "fixup hardcoded include paths for new project\n\nChange-Id: Id443ec5c99bb4d7653905f1be1f72a029e0cf087\n"
    },
    {
      "commit": "aa521412126953f55a04b1fece9444779156e714",
      "tree": "2c525b08a03e6abac2371047258ed22aaf6c983e",
      "parents": [
        "6a1d3882829a5435d46a9ae0f016f8ea7f6dcb03",
        "1c5387e1cb12a2aa2b1aaf4c2f4f5c61be4828aa"
      ],
      "author": {
        "name": "Siva Velusamy",
        "email": "vsiva@google.com",
        "time": "Tue Mar 06 08:59:32 2012 -0800"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Mar 06 08:59:32 2012 -0800"
      },
      "message": "Merge \"gltrace: Send vertex attribute data after glDraw() call.\""
    },
    {
      "commit": "a1549ff1bf59d6a4c85c92678b45d01757c38b6b",
      "tree": "e7126f008355b63f918d07049d01d5d262b3b4ce",
      "parents": [
        "7e5f1e8dc03f163274be1e1bb97f4b05dcc0a510"
      ],
      "author": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Mon Mar 05 13:57:02 2012 -0800"
      },
      "committer": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Mon Mar 05 15:59:38 2012 -0800"
      },
      "message": "fixup include paths\n\n- remove unneeded include deps\n- remove some hardcoded include paths\n\nChange-Id: Ifae0e2b2d738e0f94f8525c45be78f4227ce1673\n"
    },
    {
      "commit": "1c5387e1cb12a2aa2b1aaf4c2f4f5c61be4828aa",
      "tree": "729b9c07f11ed481c08145e1e53bc52e1cb032e8",
      "parents": [
        "b5d3dd2cd5780c48fb79cc2f5a0c0f6237ebc952"
      ],
      "author": {
        "name": "Siva Velusamy",
        "email": "vsiva@google.com",
        "time": "Wed Feb 29 14:04:04 2012 -0800"
      },
      "committer": {
        "name": "Siva Velusamy",
        "email": "vsiva@google.com",
        "time": "Thu Mar 01 17:41:53 2012 -0800"
      },
      "message": "gltrace: Send vertex attribute data after glDraw() call.\n\nThis patch enables tracing of vertex attribute data that\nis specified using glVertexAttribPointer().\n\nAt the time the glVertexAttribPointer() call is made, we\nonly receive a pointer in client space, without any indication\nof the size (# of attributes). This size is known only at\nthe time of the glDraw() call.\n\nThis patch generates a new message glVertexAttribPointerData()\nwhen a draw call is issued that contains the vertex attribute\ndata.\n\nA glDrawArrays() call directly gives the size of data to copy.\nA glDrawElements() call gives the indices to copy. In such a\ncase, all data between the min \u0026 max indices drawn are copied\nand sent to the host. To support glDrawElements() with an\nelement array buffer, this patch also adds state that maintains\na copy of all element array buffers.\n\nChange-Id: I434da794a0aa9ada8e7474e219ffb1d79b183ecf\n"
    },
    {
      "commit": "a85ca37c8469b2a54c95db0bb724017fd08c5688",
      "tree": "2c2a798a4e0927bfab5572c8ccdc9851fb950d00",
      "parents": [
        "6835237f6f55d8a7c7b43b8e0f174f5ea258bfee"
      ],
      "author": {
        "name": "Jamie Gennis",
        "email": "jgennis@google.com",
        "time": "Thu Feb 23 19:27:23 2012 -0800"
      },
      "committer": {
        "name": "Jamie Gennis",
        "email": "jgennis@google.com",
        "time": "Mon Feb 27 17:50:35 2012 -0800"
      },
      "message": "Add tracing to various graphics components.\n\nThis change adds ATRACE call tracing to BufferQueue,\nSurfaceTextureClient, SurfaceTexture, SurfaceFlinger, Layer, and EGL.\n\nChange-Id: I9d75ed26f5a3f0d1af635da38289520134cfbbb7\n"
    },
    {
      "commit": "7d3916ff9cd464bd064a7e075c555f9ec6ff4349",
      "tree": "025df9fd125dfc921a5d6cb258b1824ee23cc80f",
      "parents": [
        "12aba767c78c19b5f087c1deed5d2f9170ff5f75"
      ],
      "author": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Sat Feb 25 19:52:53 2012 -0800"
      },
      "committer": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Mon Feb 27 13:03:04 2012 -0800"
      },
      "message": "libagl shouldn\u0027t export anything\n\nChange-Id: Ia823dbc56aab2a0b8a6063df4348fe6baac124c6\n"
    },
    {
      "commit": "89dd68f8d2e01e900032dd095f64aa60636a188d",
      "tree": "8e46049a3372dab5aa60d86fd484bbf81edd5ba1",
      "parents": [
        "35ae6e2a841d8a287bccb56881f58e9fe24a07b6",
        "d4edba0fe9cb0bab6ce706b5e285806baf138df7"
      ],
      "author": {
        "name": "Siva Velusamy",
        "email": "vsiva@google.com",
        "time": "Mon Feb 27 12:31:01 2012 -0800"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Feb 27 12:31:01 2012 -0800"
      },
      "message": "Merge \"gltrace: Make code 64-bit safe.\""
    },
    {
      "commit": "d4edba0fe9cb0bab6ce706b5e285806baf138df7",
      "tree": "8c3641e7263d491c22c86eb96813d1aa0bf9bee6",
      "parents": [
        "8293c92c751f15614b1c72e92becba6097e053c0"
      ],
      "author": {
        "name": "Siva Velusamy",
        "email": "vsiva@google.com",
        "time": "Mon Feb 27 12:02:47 2012 -0800"
      },
      "committer": {
        "name": "Siva Velusamy",
        "email": "vsiva@google.com",
        "time": "Mon Feb 27 12:08:47 2012 -0800"
      },
      "message": "gltrace: Make code 64-bit safe.\n\nCurrently, the trace API passes the pointers that need to be\npatched up via 32 bit integers. Such code will not be 64 bit safe.\nThis patch sends all pointers in a separate array of pointers\nfor the fixup calls to read from.\n\nChange-Id: If975333f11a6f6f9a74fba57de328affaed452a5\n"
    },
    {
      "commit": "0a66900ee5093afa12a5786c4b9dc0e58991f426",
      "tree": "b6f554da62152b1b335a9a393a0afcb98a497bb1",
      "parents": [
        "40ba9cddea1cfdeaf966e463fdb2ff3b37d87ed7",
        "8293c92c751f15614b1c72e92becba6097e053c0"
      ],
      "author": {
        "name": "Siva Velusamy",
        "email": "vsiva@google.com",
        "time": "Mon Feb 27 07:41:38 2012 -0800"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Feb 27 07:41:38 2012 -0800"
      },
      "message": "Merge \"gltrace: attach buffer data sent with glBufferData\""
    },
    {
      "commit": "af01feafc30152baf8e0a5cfddbf02bd14731fd2",
      "tree": "e19b244ff773d206d21ecccf29296f1848790dd6",
      "parents": [
        "cc0eaa6582563f51c98db1b232200ac4d2a9a996"
      ],
      "author": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Fri Feb 24 18:25:41 2012 -0800"
      },
      "committer": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Fri Feb 24 18:26:01 2012 -0800"
      },
      "message": "remove dependency on android_native{s_priv|buffer}.h\n\nChange-Id: Ie4b95f7061c240f37c504414259f92d72c4ffc89\n"
    },
    {
      "commit": "cc0eaa6582563f51c98db1b232200ac4d2a9a996",
      "tree": "68fcede9c118f7a72de79d0402e92c97b4edfaf3",
      "parents": [
        "7b49b4bea8090bb8e5015225eb05686d3676205c"
      ],
      "author": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Fri Feb 24 16:42:46 2012 -0800"
      },
      "committer": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Fri Feb 24 16:42:46 2012 -0800"
      },
      "message": "remove libui dependency on libEGL\n\nChange-Id: I1194f04085637d5c384e134967249430cc43b6ee\n"
    },
    {
      "commit": "8293c92c751f15614b1c72e92becba6097e053c0",
      "tree": "010e9038146cd62725e4e02d3f9c0d81d518af74",
      "parents": [
        "6b48f088b1e0bed242118422c88fea8d714307e0"
      ],
      "author": {
        "name": "Siva Velusamy",
        "email": "vsiva@google.com",
        "time": "Wed Feb 22 18:21:59 2012 -0800"
      },
      "committer": {
        "name": "Siva Velusamy",
        "email": "vsiva@google.com",
        "time": "Fri Feb 24 11:32:00 2012 -0800"
      },
      "message": "gltrace: attach buffer data sent with glBufferData\n\nAttach the buffer that is passed with glBufferData\nand glBufferSubData to the proto buf.\n\nChange-Id: I1b4c1172d405736b06cb0a356a6e241e1d60c4d5\n"
    },
    {
      "commit": "7d5bb3ddf33d269cccae76b712e78715a894b4c8",
      "tree": "3194a637b28610bca83d5b9c307b70fa3f83296f",
      "parents": [
        "95221b51e4eba7b7367cb98033f3694d0ea9be74",
        "3b4f3748f4aeb1d8fbe3b24f31b443aa91df4fee"
      ],
      "author": {
        "name": "Siva Velusamy",
        "email": "vsiva@google.com",
        "time": "Fri Feb 17 15:05:36 2012 -0800"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Feb 17 15:05:36 2012 -0800"
      },
      "message": "Merge \"gltrace: Trace thread time and wall clock time.\""
    },
    {
      "commit": "e97df97b6cb5e4bff8f9da9ecff7cddb7d04ff41",
      "tree": "bbea2745e983b7f81c31bc6f3390e53fb8bec8fb",
      "parents": [
        "e4895352d3fb69e1bf2bd16758b4732f9befe95d",
        "97eda365fcf7209b56e0a52e01f7fb3352e4fa63"
      ],
      "author": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Fri Feb 17 13:09:19 2012 -0800"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Feb 17 13:09:19 2012 -0800"
      },
      "message": "Merge \"Remove unused private APIs\""
    },
    {
      "commit": "97eda365fcf7209b56e0a52e01f7fb3352e4fa63",
      "tree": "3de2b0218e47eb7aad4b45eddc186405ac6ffa74",
      "parents": [
        "91ec0b722f659bb5e4bcc64339f2fbbe30a31287"
      ],
      "author": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Fri Feb 17 13:08:35 2012 -0800"
      },
      "committer": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Fri Feb 17 13:08:35 2012 -0800"
      },
      "message": "Remove unused private APIs\n\nChange-Id: Ib22005c7ed9923120089a1f1c806bca55bb90967\n"
    },
    {
      "commit": "3b4f3748f4aeb1d8fbe3b24f31b443aa91df4fee",
      "tree": "e0402d656b137f631b3b9f8e48179c544ff77bb4",
      "parents": [
        "c35761e15cfffe2253cef1b1a53dc25d5ca0c353"
      ],
      "author": {
        "name": "Siva Velusamy",
        "email": "vsiva@google.com",
        "time": "Fri Feb 17 10:55:03 2012 -0800"
      },
      "committer": {
        "name": "Siva Velusamy",
        "email": "vsiva@google.com",
        "time": "Fri Feb 17 11:09:47 2012 -0800"
      },
      "message": "gltrace: Trace thread time and wall clock time.\n\nFor each gl function, trace both the thread and wall clock\ntimes.\n\nChange-Id: I32b6caa67fa50bf915dab89b3c5021ee82e28d55\n"
    },
    {
      "commit": "70579d5d418cc6be34f2b03fbaaf20fde807a1ab",
      "tree": "9e8767c9ab13da300e9a8bafb9ac146c1f039174",
      "parents": [
        "91ec0b722f659bb5e4bcc64339f2fbbe30a31287",
        "508c165b1956d19de40f5b792620f62a7b216e0f"
      ],
      "author": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Tue Feb 14 18:59:47 2012 -0800"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Feb 14 18:59:47 2012 -0800"
      },
      "message": "Merge \"Don\u0027t wrap EGLImageKHR and EGLSyncKHR anymore\""
    },
    {
      "commit": "508c165b1956d19de40f5b792620f62a7b216e0f",
      "tree": "038ee1dd262ce922f25ce5bf05625b9f9a2a68e8",
      "parents": [
        "80fe2c4e5e8efdd4c24cb05345a8c31388ca5896"
      ],
      "author": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Tue Feb 14 17:14:36 2012 -0800"
      },
      "committer": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Tue Feb 14 17:14:36 2012 -0800"
      },
      "message": "Don\u0027t wrap EGLImageKHR and EGLSyncKHR anymore\n\nthis simplify our EGL wrapper implementation a lot.\nThis wrapping is no longer needed now that we can only\nsupport a single underlaying EGL implementation.\n\nChange-Id: I8213df7ac69daac447f1fe6e37044b78aac4e9a9\n"
    },
    {
      "commit": "03290d2714ba6365a763ab45dfbee66e02e8280c",
      "tree": "155f592749865a83e034a7a6fb54b5feca02635b",
      "parents": [
        "39eb8074deba507e037a1596168e7b762508c63f",
        "892fdd600f8fd87b2ddcbe4be903172649c9ae83"
      ],
      "author": {
        "name": "Siva Velusamy",
        "email": "vsiva@google.com",
        "time": "Tue Feb 14 16:36:44 2012 -0800"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Feb 14 16:36:44 2012 -0800"
      },
      "message": "Merge \"gltrace: Patch up all glUniform*() calls.\""
    },
    {
      "commit": "892fdd600f8fd87b2ddcbe4be903172649c9ae83",
      "tree": "b7364a56c5b9fef380fe45c15e4894d8fe33c6b0",
      "parents": [
        "f96901f8ccf7e5bdb05bb22ca1b522c381f05043"
      ],
      "author": {
        "name": "Siva Velusamy",
        "email": "vsiva@google.com",
        "time": "Tue Feb 14 15:08:20 2012 -0800"
      },
      "committer": {
        "name": "Siva Velusamy",
        "email": "vsiva@google.com",
        "time": "Tue Feb 14 15:08:20 2012 -0800"
      },
      "message": "gltrace: Patch up all glUniform*() calls.\n\nThis patch updates the trace information for all glUniform*() calls\nto have the right data (the actual uniforms that are passed).\n\nIn addition, as soon as a program is linked, information regarding\nall the active attributes and uniforms is passed on to the debugger.\n\nChange-Id: Icfbc6722789b42c413a845cf546577fa6de7da2b\n"
    },
    {
      "commit": "b749dd853008e89ca608a135157e0ea0057b42ce",
      "tree": "764c9ddb3ff75bc286857014ef918694a0fa6f81",
      "parents": [
        "8db8509e3cfe63a05da5e990164ec3a4576528ca"
      ],
      "author": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Mon Feb 13 20:06:08 2012 -0800"
      },
      "committer": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Mon Feb 13 20:23:15 2012 -0800"
      },
      "message": "EGLConfig is now not remaped to an internal EGLConfig\n\nthis is possible now that we support only a single\nEGL implementation. this allows a large code simplification.\n\nChange-Id: I7a6b9db4c5d60f4407c6061e7a68729af63d5242\n"
    },
    {
      "commit": "8db8509e3cfe63a05da5e990164ec3a4576528ca",
      "tree": "454fa0e494c705566d984c0f515de50999f5d30f",
      "parents": [
        "cb66aec0bdd3248c526c3a1113936576a30286cb"
      ],
      "author": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Mon Feb 13 17:09:30 2012 -0800"
      },
      "committer": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Mon Feb 13 18:11:42 2012 -0800"
      },
      "message": "remove multiplexing of multiple EGL implementation\n\nfrom now on, the system can only have one EGL\nimplementation. this means the software and h/w renderer\ncannot be used at the same time on a device. Of course, the\nh/w renderer is always prefered; in its absence we\ndefault to the software renderer.\n\nChange-Id: Ib579f58055dd0ce4c4a99144131efa11c16ca3d3\n"
    },
    {
      "commit": "7b864906e5c9c9cd13325c213d0472b9b9fb1697",
      "tree": "2700a00e4ae2c4a36a90e1130edd6c1d5dd48ccb",
      "parents": [
        "8d13ef3c59f3087df29a226f3cdc155faa4ac903"
      ],
      "author": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Fri Feb 03 15:24:51 2012 -0800"
      },
      "committer": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Fri Feb 03 15:24:51 2012 -0800"
      },
      "message": "fix a dead-lock in eglMakeCurrent\n\nthis was introduced in a recent change. eglMakeCurrent can\nend up calling eglDestroyImageKHR via ANativewWindow::disconnect\nwhen the consumer is in the same process.\n\nwe make sure we don\u0027t hold the lock while this is happening.\n\nChange-Id: Id17fe4fd76eecf5f962cefb9aa32be41fc1b042d\n"
    },
    {
      "commit": "a16cc6b27120d76638394a7ddbc4d39a18b1d1dc",
      "tree": "1f0c1ea38e6f999b38e06aceefb29d9c2caf106b",
      "parents": [
        "9d36bd02751e2737520524fca03c6f3770bbb731"
      ],
      "author": {
        "name": "Siva Velusamy",
        "email": "vsiva@google.com",
        "time": "Wed Feb 01 12:16:40 2012 -0800"
      },
      "committer": {
        "name": "Siva Velusamy",
        "email": "vsiva@google.com",
        "time": "Wed Feb 01 12:16:40 2012 -0800"
      },
      "message": "gltrace: fixup Push \u0026 Insert Marker calls\n\nChange-Id: I58ced7225fac79ec636a65da4883614a5dce6dff\n"
    },
    {
      "commit": "9eb95992ea34e40e83d78f5c211933246c491f0f",
      "tree": "143b53dda12df1581b22961db813aefb5149788c",
      "parents": [
        "11c5db5e29f9e4ac4cdb0bb49197b48deb657e36"
      ],
      "author": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Mon Jan 30 18:20:52 2012 -0800"
      },
      "committer": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Mon Jan 30 18:20:52 2012 -0800"
      },
      "message": "fix a race condition in eglMakeCurrent()\n\nit would happen when a context was made non-current, in this\ncase we would call the implementation\u0027s eglMakeCurrent() which\nwould succeed, if we\u0027re rescheduled at that point, another\neglMakeCurrent() could make that context current to another thread,\nhowever, when we came back to the original call we would\noverwrite egl_context_t internal state.\n\nthis is fixed by moving the critical section under\negl_display_t\u0027s lock.\n\nChange-Id: I743c85696e13263d3a9570824940263df0caacdc\n"
    },
    {
      "commit": "11c5db5e29f9e4ac4cdb0bb49197b48deb657e36",
      "tree": "b601876337cb5524c9867fefc591bb2b4c8c1d7b",
      "parents": [
        "1e56fff3b90946b342ddabf68648dc3551ce47db",
        "d0393a9e181826806e59636369aac4843e166d38"
      ],
      "author": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Mon Jan 30 17:44:09 2012 -0800"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Jan 30 17:44:09 2012 -0800"
      },
      "message": "Merge \"add all needed GL extension wrappers\""
    },
    {
      "commit": "d0393a9e181826806e59636369aac4843e166d38",
      "tree": "1f89ec0323cca6e326f3e3248d5dd24e64836e3e",
      "parents": [
        "7a41c7013d0ed319fcb4384cc4b5cf26b22d3580"
      ],
      "author": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Mon Jan 30 17:40:29 2012 -0800"
      },
      "committer": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Mon Jan 30 17:40:29 2012 -0800"
      },
      "message": "add all needed GL extension wrappers\n\nwhen increasing MAX_NUMBER_OF_GL_EXTENSIONS to 256\nwe also needed to create all the corresponding wrappers.\n\nChange-Id: I90edaaf0885ccdfab48e7a1396bcf88e039cfb25\n"
    },
    {
      "commit": "818b4236586d0dda696f363f1065c8f8abd64862",
      "tree": "0f5f630929f8606a9419e99a32449de65becf685",
      "parents": [
        "a585e8dbcf33a9cfcca725b994a22e6d78d427f9",
        "ea261a2e13c23f641d6caa38ce8d9f5ad94504da"
      ],
      "author": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Mon Jan 30 15:23:47 2012 -0800"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Jan 30 15:23:47 2012 -0800"
      },
      "message": "Merge \"add support for GL_EXT_debug_marker\""
    },
    {
      "commit": "b09316736fe7b721d92900ad901894fd5ce2b854",
      "tree": "10e9f00752b79e7ce0fffaf401ca7696a6f44fbe",
      "parents": [
        "c7685d6d6e4a7e3fe5b00d2420a66d1560a911dc",
        "4c4d501205f758c3378736bd1f98b955bb189e54"
      ],
      "author": {
        "name": "Siva Velusamy",
        "email": "vsiva@google.com",
        "time": "Mon Jan 30 09:08:27 2012 -0800"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Jan 30 09:08:27 2012 -0800"
      },
      "message": "Merge \"gltrace: Use Unix Domain Socket rather than INET Socket\""
    },
    {
      "commit": "ea261a2e13c23f641d6caa38ce8d9f5ad94504da",
      "tree": "d4f0df4e2f1f04d336eb5cdc2092b3af92b69572",
      "parents": [
        "dfbcee6cb8ab9cf89b9052eb7498e453afdb1463"
      ],
      "author": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Sat Jan 28 21:44:00 2012 -0800"
      },
      "committer": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Sun Jan 29 22:22:09 2012 -0800"
      },
      "message": "add support for GL_EXT_debug_marker\n\nThis extension is always added to the GL_EXTENSIONS\nextension string for the current GL context, regardless\nof if it\u0027s supported by the h/w driver.\n\nThe extension itself will be handled by GLES_trace (eventually),\nwhen GLES_trace is not enabled, it\u0027ll result to a no-op.\n\nIf the h/w implementation has this extension, we\u0027ll call that version\ninstead of our dummy version.\n\nChange-Id: Ie5dd3387c4d45cd5ed5f03b73bda6045620a96bc\n"
    },
    {
      "commit": "0589e582361432f12848fdd59f8c408b7a31c35b",
      "tree": "fd2b7c2d50b849f11f88bba317507671986deb1a",
      "parents": [
        "c0e32a47d5e31b81df5731952656be02d2dd8758",
        "780018ded1caf8f3673c25c858656792f2a45dc4"
      ],
      "author": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Sun Jan 29 22:03:19 2012 -0800"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Sun Jan 29 22:03:19 2012 -0800"
      },
      "message": "Merge \"update GLES headers and add support for corresponding new extensions.\""
    },
    {
      "commit": "780018ded1caf8f3673c25c858656792f2a45dc4",
      "tree": "58d2dcccc7e4a23704da417beea7bc2a934a7b93",
      "parents": [
        "815af1ff595a6c028f28c16139a9e64ad98507a3"
      ],
      "author": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Sat Jan 28 14:20:59 2012 -0800"
      },
      "committer": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Sat Jan 28 20:41:35 2012 -0800"
      },
      "message": "update GLES headers and add support for corresponding new extensions.\n\nChange-Id: I554d9659113b4721b748ee5c1a3b1ca82b11d75e\n"
    },
    {
      "commit": "34e0491313a87ea5baae41fb620cdfc36a171da6",
      "tree": "d66b5985a178a529ddf0488021cfca689263dfeb",
      "parents": [
        "815af1ff595a6c028f28c16139a9e64ad98507a3"
      ],
      "author": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Sat Jan 28 18:47:13 2012 -0800"
      },
      "committer": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Sat Jan 28 18:47:13 2012 -0800"
      },
      "message": "remove unused code\n\nChange-Id: If900fcc50f9ffc424e270cb6063b16a2d7bc04d3\n"
    },
    {
      "commit": "4c4d501205f758c3378736bd1f98b955bb189e54",
      "tree": "3435d9f31e59bc9982a70a12fe060614ecf00ab5",
      "parents": [
        "cf0c7d1031ea213c1b728aca972522afcd4a92c3"
      ],
      "author": {
        "name": "Siva Velusamy",
        "email": "vsiva@google.com",
        "time": "Fri Jan 27 14:39:03 2012 -0800"
      },
      "committer": {
        "name": "Siva Velusamy",
        "email": "vsiva@google.com",
        "time": "Fri Jan 27 17:24:18 2012 -0800"
      },
      "message": "gltrace: Use Unix Domain Socket rather than INET Socket\n\nExport trace information via abstract Unix Domain Socket (UDS).\nThis allows tracing of applications without INTERNET permission,\nand should be faster as well.\n\nChange-Id: Iabb67fcc2bc2484afd8128af07dca723b81c52c6\n"
    },
    {
      "commit": "b335fad4705348ff78d764fb4be53dcbe6b67abe",
      "tree": "0ead32dd0e0e2c74b4e2539a93deacf485f99901",
      "parents": [
        "fa1a91628a706bbe51d91e0ccb9144df8b8529e6"
      ],
      "author": {
        "name": "Jamie Gennis",
        "email": "jgennis@google.com",
        "time": "Sun Jan 15 18:54:57 2012 -0800"
      },
      "committer": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Tue Jan 24 15:41:50 2012 -0800"
      },
      "message": "hack up frame latency measurement\n\nChange-Id: I6d9a466a23285304f0e229a5649815636ab5d6af\n"
    },
    {
      "commit": "5cfe839d953657b2ad4bcd3db929bd07f73b86df",
      "tree": "05e7210bce6e385c6824d3f580ec190525223ff6",
      "parents": [
        "ade420df08a40bd568df48a3b023b63aafc8e3ee"
      ],
      "author": {
        "name": "Siva Velusamy",
        "email": "vsiva@google.com",
        "time": "Tue Jan 17 12:28:11 2012 -0800"
      },
      "committer": {
        "name": "Siva Velusamy",
        "email": "vsiva@google.com",
        "time": "Tue Jan 17 12:28:11 2012 -0800"
      },
      "message": "gltrace: fixup data for glTexSubImage2D \u0026 glDeleteBuffers\n\nChange-Id: I1c1deb8c6026ecf1fa0ed5287ccf601416eba6dc\n"
    },
    {
      "commit": "3762c311729fe9f3af085c14c5c1fb471d994c03",
      "tree": "7d4caccad80ac7327c7bff96dafc857d5f4631ad",
      "parents": [
        "7a939077bd14521c7d351af98df7ed75a8ec9c15"
      ],
      "author": {
        "name": "Steve Block",
        "email": "steveblock@google.com",
        "time": "Fri Jan 06 19:20:56 2012 +0000"
      },
      "committer": {
        "name": "Steve Block",
        "email": "steveblock@google.com",
        "time": "Sun Jan 08 13:19:13 2012 +0000"
      },
      "message": "Rename (IF_)LOGE(_IF) to (IF_)ALOGE(_IF)  DO NOT MERGE\n\nSee https://android-git.corp.google.com/g/#/c/157220\n\nBug: 5449033\nChange-Id: Ic9c19d30693bd56755f55906127cd6bd7126096c\n"
    },
    {
      "commit": "8564c8da817a845353d213acd8636b76f567b234",
      "tree": "71acbd8ace822c769aef917629bf5a079f63274d",
      "parents": [
        "c42e6a0bed2c88fd03466c5104d62d7f98e68768"
      ],
      "author": {
        "name": "Steve Block",
        "email": "steveblock@google.com",
        "time": "Thu Jan 05 23:22:43 2012 +0000"
      },
      "committer": {
        "name": "Steve Block",
        "email": "steveblock@google.com",
        "time": "Fri Jan 06 10:07:54 2012 +0000"
      },
      "message": "Rename (IF_)LOGW(_IF) to (IF_)ALOGW(_IF)  DO NOT MERGE\n\nSee https://android-git.corp.google.com/g/157065\n\nBug: 5449033\nChange-Id: I00a4b904f9449e6f93b7fd35eac28640d7929e69\n"
    },
    {
      "commit": "bd47cac4dfc8440a848b33107cba1d6773f3e124",
      "tree": "90def33029a99f96318ef4661203f24cce060f07",
      "parents": [
        "c726ff02c7749f134885decadd2ea86877119c3d",
        "6215d3ff4b5dfa52a5d8b9a42e343051f31066a5"
      ],
      "author": {
        "name": "Steve Block",
        "email": "steveblock@google.com",
        "time": "Thu Jan 05 14:07:02 2012 -0800"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Jan 05 14:07:02 2012 -0800"
      },
      "message": "Merge \"Rename (IF_)LOGI(_IF) to (IF_)ALOGI(_IF)  DO NOT MERGE\""
    }
  ],
  "next": "157fea642cb4c10e44a61f932c68f7c3a2610a81"
}
