)]}'
{
  "log": [
    {
      "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\""
    },
    {
      "commit": "157fea642cb4c10e44a61f932c68f7c3a2610a81",
      "tree": "58badbc40683dde6329be8f8560259afc6180e66",
      "parents": [
        "193b45970e512e99b4557fe4bbb30b2dca30320f"
      ],
      "author": {
        "name": "Siva Velusamy",
        "email": "vsiva@google.com",
        "time": "Tue Jan 03 14:39:31 2012 -0800"
      },
      "committer": {
        "name": "Siva Velusamy",
        "email": "vsiva@google.com",
        "time": "Wed Jan 04 12:50:13 2012 -0800"
      },
      "message": "gltrace: add user settings to control data captured.\n\nCurrently users do not have control over the amount of data\ncaptured during tracing. This patch adds 3 settings that users\ncan enable/disable at runtime:\n  - capture framebuffer on eglSwap() calls\n  - capture framebuffer on glDraw*() calls\n  - capture texture data passed to glTexImage*() calls\nDisabling these options when not needed signficantly decreases\nthe size of the trace file, and reduces performance overhead for\nthe running application.\n\nThese settings are stored in the per process GLTraceState.\nA separate thread listens for commands from the host, and updates\nthe state based on the user commands.\n\nChange-Id: Ic4518b94e8bcbc5330ac7138153721caa98b365d\n"
    },
    {
      "commit": "6215d3ff4b5dfa52a5d8b9a42e343051f31066a5",
      "tree": "fa31802ed64676368447b67d20567fc1e806c79d",
      "parents": [
        "c9c76a82c6d0bf2362044d899013832882f32c94"
      ],
      "author": {
        "name": "Steve Block",
        "email": "steveblock@google.com",
        "time": "Wed Jan 04 20:05:49 2012 +0000"
      },
      "committer": {
        "name": "Steve Block",
        "email": "steveblock@google.com",
        "time": "Wed Jan 04 20:05:49 2012 +0000"
      },
      "message": "Rename (IF_)LOGI(_IF) to (IF_)ALOGI(_IF)  DO NOT MERGE\n\nSee https://android-git.corp.google.com/g/156801\n\nBug: 5449033\nChange-Id: Ib08fe86d23db91ee153e9f91a99a35c42b9208ea\n"
    },
    {
      "commit": "5ed919e33d4983a0a94a110804b3ff7267914058",
      "tree": "110dc6d72c02dc6f7d1a628155cb32ce94bfaa9f",
      "parents": [
        "1e81e710fc6e676a43c0582abd9b802bc8bda175"
      ],
      "author": {
        "name": "Siva Velusamy",
        "email": "vsiva@google.com",
        "time": "Thu Dec 15 17:32:05 2011 -0800"
      },
      "committer": {
        "name": "Siva Velusamy",
        "email": "vsiva@google.com",
        "time": "Wed Jan 04 11:38:37 2012 -0800"
      },
      "message": "gltrace: add start time \u0026 duration to each traced call.\n\nChange-Id: Idfec8f715f6000594b6381cbfdee9fdf6d89f484\n"
    },
    {
      "commit": "1e81e710fc6e676a43c0582abd9b802bc8bda175",
      "tree": "7a613c80299e68ed0f31b83a52c342059158bee2",
      "parents": [
        "efc1265402512303a9cf88b7ddd796e92df7857b"
      ],
      "author": {
        "name": "Siva Velusamy",
        "email": "vsiva@google.com",
        "time": "Wed Dec 14 12:19:56 2011 -0800"
      },
      "committer": {
        "name": "Siva Velusamy",
        "email": "vsiva@google.com",
        "time": "Wed Jan 04 11:38:37 2012 -0800"
      },
      "message": "gltrace: transport buffering and context management\n\nThis patch adds two improvements:\n1. Protobuf messages are buffered and sent in chunks.\n2. Multiple EGL contexts are handled properly: Corresponding\nto each EGLContext, a GLTraceContext with a unique ID is created.\nOn eglMakeCurrent, the appropriate GLTraceContext is set and is\nused while tracing subsequent GL Calls in that thread.\n\nChange-Id: I34076376d3e5af205c87c7396ea47659844abd6e\n"
    },
    {
      "commit": "efc1265402512303a9cf88b7ddd796e92df7857b",
      "tree": "4afdd533641891ed30a46e96e07251d6d042e6e7",
      "parents": [
        "c9c76a82c6d0bf2362044d899013832882f32c94",
        "1598ef959bcd2898185885d75afe0e041846d369"
      ],
      "author": {
        "name": "Siva Velusamy",
        "email": "vsiva@google.com",
        "time": "Wed Jan 04 11:18:29 2012 -0800"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Jan 04 11:18:29 2012 -0800"
      },
      "message": "Merge \"gltrace: attach contents of the appropriate framebuffer\""
    },
    {
      "commit": "5baa3a62a97544669fba6d65a11c07f252e654dd",
      "tree": "109755e1595b438873d34b981e31f84ea64bd2a5",
      "parents": [
        "173ab4d61077c49f115b82eff34f97fda5a7273a"
      ],
      "author": {
        "name": "Steve Block",
        "email": "steveblock@google.com",
        "time": "Tue Dec 20 16:23:08 2011 +0000"
      },
      "committer": {
        "name": "Steve Block",
        "email": "steveblock@google.com",
        "time": "Tue Jan 03 22:38:27 2012 +0000"
      },
      "message": "Rename (IF_)LOGD(_IF) to (IF_)ALOGD(_IF)  DO NOT MERGE\n\nSee https://android-git.corp.google.com/g/156016\n\nBug: 5449033\nChange-Id: I4c4e33bb9df3e39e11cd985e193e6fbab4635298\n"
    },
    {
      "commit": "0501f8a913e43f78ef7909346424f3264d03f8ea",
      "tree": "a473a0e45b8f0f5e7ea9f6dcc9767ce17238f914",
      "parents": [
        "bfda435744fc110ba2c6ac070a09394a8608a422"
      ],
      "author": {
        "name": "Jack Palevich",
        "email": "jackpal@google.com",
        "time": "Fri Dec 09 14:06:07 2011 -0800"
      },
      "committer": {
        "name": "Jack Palevich",
        "email": "jackpal@google.com",
        "time": "Fri Dec 09 14:06:07 2011 -0800"
      },
      "message": "Fix convert8To4, convert8To5\n\nSee b/5680952 \"Compilation warnings in etc1.cpp\" for discussion.\n\nFixes b/5680952\n\nChange-Id: I0af6ba5ed5e60f3ed7a6a28eba3b09504fee1a3f\n"
    },
    {
      "commit": "1598ef959bcd2898185885d75afe0e041846d369",
      "tree": "3aba630a4eda48a48a87bf50ea73e0c332eaee78",
      "parents": [
        "63051d71ef3da31c9764f6998e275adedbbcd9f5"
      ],
      "author": {
        "name": "Siva Velusamy",
        "email": "vsiva@google.com",
        "time": "Wed Dec 07 16:00:58 2011 -0800"
      },
      "committer": {
        "name": "Siva Velusamy",
        "email": "vsiva@google.com",
        "time": "Wed Dec 07 16:00:58 2011 -0800"
      },
      "message": "gltrace: attach contents of the appropriate framebuffer\n\nCurrently, gltrace always attaches the contents of the currently\nbound framebuffer. This patch changes it to attach the contents\nof FB0 on eglSwap, and the currently bound framebuffer for the\nglDraw* calls.\n\nChange-Id: Ice0520d45d75638fe61cd91149df773074216510\n"
    },
    {
      "commit": "c0f838fa01b7a2e2784a69e45f7f15f614f37ae9",
      "tree": "4f660fcce5446683a41581840cd5b4e62ccd93ac",
      "parents": [
        "315e468763c9601e2f06443fda847d2c9eb27a75"
      ],
      "author": {
        "name": "Siva Velusamy",
        "email": "vsiva@google.com",
        "time": "Mon Dec 05 11:12:31 2011 -0800"
      },
      "committer": {
        "name": "Siva Velusamy",
        "email": "vsiva@google.com",
        "time": "Mon Dec 05 14:13:16 2011 -0800"
      },
      "message": "gltrace: Make framebuffer contents an optional message.\n\nCurrently, the contents of the FrameBuffer are sent by encoding\nthem as the last argument to the function call. As a result, it is\nnot possible to know if a message has the framebuffer encoded in it\nwithout looking at the function type.\n\nThis patch modifies the protobuf definition to include a separate\noptional framebuffer message.\n\nChange-Id: Ief3a6950052d927ca0743e729457435b48c25a92\n"
    },
    {
      "commit": "3d53e57e31535b8422ec22013e4a2d7ef6ea7249",
      "tree": "177ac1b9e347614b83668d1c42a217321d62d80d",
      "parents": [
        "29f1c32eea12ab33547af73fb0e5dcf432e6979c",
        "db97468fd241cecce62366b4f0962a9572161e95"
      ],
      "author": {
        "name": "Siva Velusamy",
        "email": "vsiva@google.com",
        "time": "Fri Dec 02 15:49:01 2011 -0800"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Dec 02 15:49:01 2011 -0800"
      },
      "message": "Merge \"glestrace: Framework for GLES tracing library\""
    },
    {
      "commit": "db97468fd241cecce62366b4f0962a9572161e95",
      "tree": "ffd9624f89ac1e3baf80e496256b0a80fbe3457d",
      "parents": [
        "a5d24d42ff8b99383a8c3051b9459e5248cf8536"
      ],
      "author": {
        "name": "Siva Velusamy",
        "email": "vsiva@google.com",
        "time": "Wed Nov 30 15:05:37 2011 -0800"
      },
      "committer": {
        "name": "Siva Velusamy",
        "email": "vsiva@google.com",
        "time": "Fri Dec 02 15:30:17 2011 -0800"
      },
      "message": "glestrace: Framework for GLES tracing library\n\nThis patch provides a framework for tracing GLES 1.0 and 2.0\nfunctions. It is missing a lot of features, but here are the\nthings it accomplishes:\n\n- Stop building the glesv2dbg library, and build the\n    glestrace library instead.\n- Replace the hooks for glesv2dbg with the ones for glestrace.\n- Add the basics for the trace library. Currently, this\n    traces all GL functions, but not all required data is\n    sent for all the functions.  As a result, it will not\n    be possible to reconstruct the entire GL state on the\n    host side.\n\nThe files gltrace.pb.* and gltrace_api.* are both generated\nusing the tools/genapi.py script.\n\nChange-Id: Id60a468f7278657f008bc6ea1df01f9bdfecfdd3\n"
    },
    {
      "commit": "b665687a55eef67397115188a5ed76c53b267403",
      "tree": "ef6074890443d6cad8d1fb5470532148ae2d9a74",
      "parents": [
        "f40e91c77ef32578554ced2ae28b585cf8e7f876",
        "e2970700e921da4226061988a6e8953b1fbfb5a9"
      ],
      "author": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Wed Nov 30 13:57:46 2011 -0800"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Wed Nov 30 13:57:46 2011 -0800"
      },
      "message": "am e2970700: am e8ba2aba: Merge \"add a way to access the version string of the h/w implementation of EGL\" into ics-mr1\n\n* commit \u0027e2970700e921da4226061988a6e8953b1fbfb5a9\u0027:\n  add a way to access the version string of the h/w implementation of EGL\n"
    },
    {
      "commit": "cadd325aff7354be23d3bccb4f53b603f1506c9f",
      "tree": "1d9621d70c04d9b89a95144c575cb640fa41462c",
      "parents": [
        "f296ee697409b4b55bef17d534edbc24a4619f0f"
      ],
      "author": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Tue Nov 29 17:55:46 2011 -0800"
      },
      "committer": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Tue Nov 29 18:00:35 2011 -0800"
      },
      "message": "add a way to access the version string of the h/w implementation of EGL\n\nwe use a hidden egl extension. the version string is printed\nin SF\u0027s dumpsys log.\n\nChange-Id: I123eb4bde6de462bb2404c67b74d6d6219a48d6a\n"
    },
    {
      "commit": "0219af277e5e1ae483c9690cffce33f185b02246",
      "tree": "60dc92432f4b262fafda8648e18850b25a58e9ef",
      "parents": [
        "4e2ecdd8a78f25f4c234877d5321ebd4e4c0e8f7",
        "ea54d0dc0dfeef5560fea04667804413d522025f"
      ],
      "author": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Mon Nov 21 21:23:49 2011 -0800"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Mon Nov 21 21:23:49 2011 -0800"
      },
      "message": "am ea54d0dc: am 723218b4: Merge \"Hide ManagedEGLContext until we are sure this is the correct API.\" into ics-mr1\n\n* commit \u0027ea54d0dc0dfeef5560fea04667804413d522025f\u0027:\n  Hide ManagedEGLContext until we are sure this is the correct API.\n"
    },
    {
      "commit": "3526b00a53a2582a51ff8b98ac1400a48f351107",
      "tree": "57b86400dcced49117b636cbf6598247adfa1739",
      "parents": [
        "79de26ea20ddd65e7c361e138a6f992fd3802c22",
        "c26e4d18a20ab0b3e769fb3e547994f1c27d6713"
      ],
      "author": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Mon Nov 21 21:08:42 2011 -0800"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Mon Nov 21 21:08:42 2011 -0800"
      },
      "message": "am c26e4d18: am 8cd39e3a: Merge \"Notify views when EGL resources are about to be destroyed Bug #5639899\" into ics-mr1\n\n* commit \u0027c26e4d18a20ab0b3e769fb3e547994f1c27d6713\u0027:\n  Notify views when EGL resources are about to be destroyed Bug #5639899\n"
    },
    {
      "commit": "08b7660f67277db234f24a6e9cb0be172e81558d",
      "tree": "bb6d259ddca8bc8d155ee4cb1fca2701e21e2156",
      "parents": [
        "07f062b6271e7ec820d1079566e7451a9cf55558",
        "8b8c321c70687ace750e42b745b6e96258d739cd"
      ],
      "author": {
        "name": "Jamie Gennis",
        "email": "jgennis@google.com",
        "time": "Mon Nov 21 21:08:23 2011 -0800"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Mon Nov 21 21:08:23 2011 -0800"
      },
      "message": "am 8b8c321c: am b8d20d02: Merge \"EGL: Use cache sizes defined in the BoardConfig\" into ics-mr1\n\n* commit \u00278b8c321c70687ace750e42b745b6e96258d739cd\u0027:\n  EGL: Use cache sizes defined in the BoardConfig\n"
    },
    {
      "commit": "07f062b6271e7ec820d1079566e7451a9cf55558",
      "tree": "57d9f1caf0e0ab9ed8d13a00f1391bdb7823edf7",
      "parents": [
        "53d42cb7d3c5c35b63363abbe9c44b8f6961afd4",
        "c25972950c2ea62fb085524dbe737c2bf0f08f4a"
      ],
      "author": {
        "name": "Jamie Gennis",
        "email": "jgennis@google.com",
        "time": "Mon Nov 21 21:08:21 2011 -0800"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Mon Nov 21 21:08:21 2011 -0800"
      },
      "message": "am c2597295: am 53cf2020: Merge changes I37fd43b5,I91eb29db,I0491ce35 into ics-mr1\n\n* commit \u0027c25972950c2ea62fb085524dbe737c2bf0f08f4a\u0027:\n  SurfaceTexture: fix a couple tests\n  EGL: default to swap interval 1\n  SurfaceTexture: clean up some tests\n"
    },
    {
      "commit": "dccf73a50cb2a219182e141bac1d9da82fdaf4d7",
      "tree": "9b49d3a96584d84bc8453eec54ebd4dce6f1313e",
      "parents": [
        "e7005ec9582f11744fa74d9c5c9562f9e4be04dc"
      ],
      "author": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Mon Nov 21 18:24:23 2011 -0800"
      },
      "committer": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Mon Nov 21 18:27:21 2011 -0800"
      },
      "message": "Hide ManagedEGLContext until we are sure this is the correct API.\n\nChange-Id: If54942d342ca8ea348e10231b2aed3e5d3bd701b\n"
    },
    {
      "commit": "8cd39e3a104d0739fd2f1ae73e5f4081f1528c6c",
      "tree": "5d4f83eb6b015f92c614788c93e834e9790acd85",
      "parents": [
        "fb0784da5f602bf6410ef914d625c3cedfa11e9f",
        "31f2c2e94656530fbf6282803e62edb47e9a894d"
      ],
      "author": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Mon Nov 21 17:57:05 2011 -0800"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Nov 21 17:57:05 2011 -0800"
      },
      "message": "Merge \"Notify views when EGL resources are about to be destroyed Bug #5639899\" into ics-mr1"
    },
    {
      "commit": "b8d20d028ca590f6a9c57e0e8fee5e5f80e9ae54",
      "tree": "9892ca05351cb6ffff426898d92986fedc2d94ea",
      "parents": [
        "53cf20202a3848a6c61b5229814268180a3d2f16",
        "6f0f0b186533ec0a1f11fd577c0c6dfa9dd29481"
      ],
      "author": {
        "name": "Jamie Gennis",
        "email": "jgennis@google.com",
        "time": "Mon Nov 21 15:54:54 2011 -0800"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Nov 21 15:54:54 2011 -0800"
      },
      "message": "Merge \"EGL: Use cache sizes defined in the BoardConfig\" into ics-mr1"
    },
    {
      "commit": "87f3265bb082160efdfdfb87a79698c67ebad447",
      "tree": "a9eb05cf1cb1a6d59d1dafe806c843aee10daa76",
      "parents": [
        "c10a94c4b8b42ef75168ad140fdb97d6cca3d2eb"
      ],
      "author": {
        "name": "Jamie Gennis",
        "email": "jgennis@google.com",
        "time": "Sat Nov 19 18:04:43 2011 -0800"
      },
      "committer": {
        "name": "Jamie Gennis",
        "email": "jgennis@google.com",
        "time": "Mon Nov 21 14:37:29 2011 -0800"
      },
      "message": "EGL: default to swap interval 1\n\nThis change explicitly sets swap interval 1 on the window when an\nEGLSurface is created to render to it.\n\nChange-Id: I91eb29dbee3ae4a55076b921f084d503fbe94e03\n"
    },
    {
      "commit": "6f0f0b186533ec0a1f11fd577c0c6dfa9dd29481",
      "tree": "13ad917df9a7bb4b37e46f18d3a52b5a3f199d6b",
      "parents": [
        "0e2c2f3971eb4b246a5c1b198370e003668f53ee"
      ],
      "author": {
        "name": "Jamie Gennis",
        "email": "jgennis@google.com",
        "time": "Sat Nov 19 16:25:24 2011 -0800"
      },
      "committer": {
        "name": "Jamie Gennis",
        "email": "jgennis@google.com",
        "time": "Mon Nov 21 11:48:17 2011 -0800"
      },
      "message": "EGL: Use cache sizes defined in the BoardConfig\n\nThis change introduces two new BoardConfig variables to control the size\nlimits of the EGL blob cache.  MAX_EGL_CACHE_ENTRY_SIZE is the size\nlimit for values inserted into the cache, and MAX_EGL_CACHE_SIZE is the\nsize limit for all entries in the entire cache (including both keys and\nvalues).  If either of these BoardConfig variables are not defined then\na default size limit is used instead.\n\nChange-Id: I6703d93f966b6389c6499f23d841e42339f9c9d7\n"
    },
    {
      "commit": "31f2c2e94656530fbf6282803e62edb47e9a894d",
      "tree": "fddc1ff144eccb20909107456ebd37325c86d8be",
      "parents": [
        "7859c1842c1f2e3c43415dfb5337a0b005bdb1c4"
      ],
      "author": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Mon Nov 21 10:55:41 2011 -0800"
      },
      "committer": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Mon Nov 21 10:55:41 2011 -0800"
      },
      "message": "Notify views when EGL resources are about to be destroyed\nBug #5639899\n\nChange-Id: I7c5d8bebf02294426f5b3ab1358a31c38a4fd064\n"
    },
    {
      "commit": "99f0528b5eed9de4b9c59e806df32a58954c65a9",
      "tree": "c9d392d59a03d87d4b9f30d77df734ff6e9bde98",
      "parents": [
        "7476ea58f79ede45dddc4b6f05b14e175e0df939",
        "e2fca63a18c7bd3fb0c14e1c5dc391cd699cea9f"
      ],
      "author": {
        "name": "Jamie Gennis",
        "email": "jgennis@google.com",
        "time": "Fri Nov 18 02:37:39 2011 -0800"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Fri Nov 18 02:37:39 2011 -0800"
      },
      "message": "am e2fca63a: am c8fd6e30: Merge \"EGL: fix blob cache extension detection\" into ics-mr1\n\n* commit \u0027e2fca63a18c7bd3fb0c14e1c5dc391cd699cea9f\u0027:\n  EGL: fix blob cache extension detection\n"
    },
    {
      "commit": "fa1a6eb584dde49d424fa53a995a6d0dbd45155c",
      "tree": "dd338b7c9df14f53b01e8d58209c1366eda3ceb3",
      "parents": [
        "e761f1e58f3946b01f9715e145b402db16f81367",
        "0272e60060162d2c32aec02d9cd1414dbbe14782"
      ],
      "author": {
        "name": "Jamie Gennis",
        "email": "jgennis@google.com",
        "time": "Fri Nov 18 02:37:22 2011 -0800"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Fri Nov 18 02:37:22 2011 -0800"
      },
      "message": "am 0272e600: am a37a78e2: Merge \"GLES: add image external enums\" into ics-mr1\n\n* commit \u00270272e60060162d2c32aec02d9cd1414dbbe14782\u0027:\n  GLES: add image external enums\n"
    },
    {
      "commit": "c8fd6e3057a98a992b96c2bce3fa2a981c6e45c0",
      "tree": "7951feb236f77ac8427b5405791a50d79262ffe7",
      "parents": [
        "3f51f954948caf1fe5b3f175f7e8523f2ba58f58",
        "cf30c60f1bd250bb1dd7b6bb946c7975577df31b"
      ],
      "author": {
        "name": "Jamie Gennis",
        "email": "jgennis@google.com",
        "time": "Thu Nov 17 17:10:32 2011 -0800"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Nov 17 17:10:32 2011 -0800"
      },
      "message": "Merge \"EGL: fix blob cache extension detection\" into ics-mr1"
    },
    {
      "commit": "a37a78e2efe54892a744adfc6330c2d2179dee21",
      "tree": "ac24599f75ff1e7d0ed4436cc60994f68f4498e6",
      "parents": [
        "31b0c6872dcec0759ff0dbbcfc6bf1e51d3e0f12",
        "9726b1b54b45f9a165a12bc4738f22c5070a6657"
      ],
      "author": {
        "name": "Jamie Gennis",
        "email": "jgennis@google.com",
        "time": "Thu Nov 17 15:47:28 2011 -0800"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Nov 17 15:47:28 2011 -0800"
      },
      "message": "Merge \"GLES: add image external enums\" into ics-mr1"
    },
    {
      "commit": "cf30c60f1bd250bb1dd7b6bb946c7975577df31b",
      "tree": "fc425c5ec509b2496a46e888241a48dbac567434",
      "parents": [
        "cce32110e6f42378a76e0eb2495d24b6c8bc8ae7"
      ],
      "author": {
        "name": "Jamie Gennis",
        "email": "jgennis@google.com",
        "time": "Wed Nov 16 21:45:30 2011 -0800"
      },
      "committer": {
        "name": "Jamie Gennis",
        "email": "jgennis@google.com",
        "time": "Thu Nov 17 14:06:46 2011 -0800"
      },
      "message": "EGL: fix blob cache extension detection\n\nBug: 5474671\nChange-Id: I6359063ccf23f076fc84c80b8a2f6731a65eef18\n"
    },
    {
      "commit": "ce51c10fc139c9383229ff21698bdc72fe83c8d0",
      "tree": "9cfa0803d51de5afb265f5500d2a702eb41156c1",
      "parents": [
        "0ecd89bce353e2d25047628eca7ffa3c79cd5c7b",
        "2030d78dc9c20d2f561f4b11f1a1adddb63661c6"
      ],
      "author": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Thu Nov 17 11:46:20 2011 -0800"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Thu Nov 17 11:46:20 2011 -0800"
      },
      "message": "am 2030d78d: am 8fc3540f: Merge \"be a bit more defensive when parsing extension strings\" into ics-mr1\n\n* commit \u00272030d78dc9c20d2f561f4b11f1a1adddb63661c6\u0027:\n  be a bit more defensive when parsing extension strings\n"
    },
    {
      "commit": "22da9a8beb4af362fbe9a108234d40b341c8d9fb",
      "tree": "b096415a33715ac09b18f9d2efecfbcd8cc13c00",
      "parents": [
        "9ab5fa0aaadcfdc27e993caceececebb8141e01f",
        "80b3cd6bc608c5929096e3407de2b157be925d3e"
      ],
      "author": {
        "name": "Jack Palevich",
        "email": "jackpal@google.com",
        "time": "Thu Nov 17 11:05:30 2011 -0800"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Nov 17 11:05:30 2011 -0800"
      },
      "message": "Merge \"Fix potential GLThread / GLSurfaceView memory leak.\""
    },
    {
      "commit": "77c5f4def49357a89abd9849b0bab950179d71f4",
      "tree": "0048a35fc889732713233de3723464f86b6128e0",
      "parents": [
        "7cd2b19a926224dee2b2e12f37c1d71ce658bf97",
        "9aa6bd1c34fe3583fe31f283a6415e84fec12567"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Thu Nov 17 05:46:34 2011 -0800"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Thu Nov 17 05:46:34 2011 -0800"
      },
      "message": "am 9aa6bd1c: am 717a25dc: Add new ManagedEGLContext class to help apps participate in memory trimming.\n\n* commit \u00279aa6bd1c34fe3583fe31f283a6415e84fec12567\u0027:\n  Add new ManagedEGLContext class to help apps participate in memory trimming.\n"
    },
    {
      "commit": "47ab60e93f56c64a06e42977a8038e341befca25",
      "tree": "146425a05baa711a5ef69e64c93c98e7a80bb7c9",
      "parents": [
        "69c17a11a2ce5badc238e66ce9f8ca4a3a1028b3"
      ],
      "author": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Wed Nov 16 16:49:25 2011 -0800"
      },
      "committer": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Wed Nov 16 16:49:25 2011 -0800"
      },
      "message": "be a bit more defensive when parsing extension strings\n\nhopefully this will fix a crash in the emulator.\n\nBug: 5624674\nChange-Id: I96586e29ea20efd73c4ad50870df5b7368bf3c3b\n"
    },
    {
      "commit": "717a25dc2a411edb548859cd6870363346c71b01",
      "tree": "69bbc13b92fbef8dd34df6473897d812cea0b4eb",
      "parents": [
        "4c6a65bc319feab120d40553d93b160908db2f6d"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Tue Nov 15 18:59:59 2011 -0800"
      },
      "committer": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Wed Nov 16 14:04:53 2011 -0800"
      },
      "message": "Add new ManagedEGLContext class to help apps participate in memory trimming.\n\nThis class provides an API for an application to know when it is time to\ndestroy its EGL context when memory is being trimmed.  By having this in\nthe framework, we can still detect whether it will be useful to destroy\nany EGL contexts (because we know if doing so will destroy all of them).\n\nChange-Id: I1eac8d640052778052926b875c7928008f752182\n"
    },
    {
      "commit": "dff37bc674310beeb2aaf296130b8bbaa0e2ead2",
      "tree": "07bf6a82c52f6ba59f8c24db28b6171a2d6a81a6",
      "parents": [
        "953b299d36f1fe019908affa02271594bd17887f",
        "bc1b7f0481f9bfa0e9feff0b43e48f9f171e0c38"
      ],
      "author": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Tue Nov 15 18:25:30 2011 -0800"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Tue Nov 15 18:25:30 2011 -0800"
      },
      "message": "am bc1b7f04: am c0fa2a3b: Merge \"rework a bit how we manage EGL extensions\" into ics-mr1\n\n* commit \u0027bc1b7f0481f9bfa0e9feff0b43e48f9f171e0c38\u0027:\n  rework a bit how we manage EGL extensions\n"
    },
    {
      "commit": "80b3cd6bc608c5929096e3407de2b157be925d3e",
      "tree": "a56cf5d63a9e83b2375c9dd8fd7727f8ed5b4322",
      "parents": [
        "78137d77991f129b349b258474ef8b5133b300d9"
      ],
      "author": {
        "name": "Jack Palevich",
        "email": "jackpal@google.com",
        "time": "Tue Nov 15 14:51:27 2011 -0800"
      },
      "committer": {
        "name": "Jack Palevich",
        "email": "jackpal@google.com",
        "time": "Tue Nov 15 14:51:27 2011 -0800"
      },
      "message": "Fix potential GLThread / GLSurfaceView memory leak.\n\nUntil now a leak was possible under the following scenario:\n\nCreate a GLSurfaceView\nRegister a renderer (this automatically starts a GLThread).\nDiscard the GLSurfaceView without installing it in the view system.\n\nThis scenario can occur when a device is rotated rapidly from\norientation A to orientation B to orientation C. In that scenario,\norientation B\u0027s GLSurfaceView might be discarded without ever being\nattached to a window.\n\nIf this issue had been identified before GLSurfaceView had clients, one\npossible fix would have been to delay the construction of the GLThread\nuntil the GLSurfaceView was attached to a window. Unfortunately, it\u0027s\ntoo late, and so making that change would lead to observable changes in\nbehavior, possibly breaking some clients.\n\nInstead, fixed by making GLThread and EGLHelper static classes that hold\nonto a weak reference to the GLSurfaceView. This allows the GLSurfaceView\nto be garbage collected when it is no longer used, even if the GLThread\nis active. GLSurfaceView\u0027s finalize method will manually stop the GLThread\nif it is still running when the GLSurfaceView exits.\n\nPart of this change was to remove the Renderer reference from GLThread,\nbecause Renderer is a user-supplied class that could contain a reference\nchain that points back to the GLSurfaceView.\n\nFixes b/5606613 \"GLSurfaceView that\u0027s never added to a window will\nleak threads and views, can leak activities\"\n\nChange-Id: Iafdc329eb6e9e40062358e7c119f5547ffe23d5e\n"
    },
    {
      "commit": "d6ae2ceedf3a44840d3e872ca69380bf92fe430e",
      "tree": "e58c8e1e1fef647e4b2a6aab15d1cc1f35dcb978",
      "parents": [
        "92c2fbd704ea5093c103602574eefc78e923ad86",
        "a0d32c4d094704fd6f4ccd3cba297a7c7d2f38fe"
      ],
      "author": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Tue Nov 15 13:11:17 2011 -0800"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Tue Nov 15 13:11:17 2011 -0800"
      },
      "message": "am a0d32c4d: am 6b3ce09d: Merge \"fix crash when validating an invalid EGL objects\" into ics-mr1\n\n* commit \u0027a0d32c4d094704fd6f4ccd3cba297a7c7d2f38fe\u0027:\n  fix crash when validating an invalid EGL objects\n"
    },
    {
      "commit": "9726b1b54b45f9a165a12bc4738f22c5070a6657",
      "tree": "1a58af8a6f63dce1b39ababe2067397300099ede",
      "parents": [
        "6a54a997e3dc71c5b9c5a1c7829bc3eb35404e92"
      ],
      "author": {
        "name": "Jamie Gennis",
        "email": "jgennis@google.com",
        "time": "Tue Nov 15 10:32:53 2011 -0800"
      },
      "committer": {
        "name": "Jamie Gennis",
        "email": "jgennis@google.com",
        "time": "Tue Nov 15 11:35:46 2011 -0800"
      },
      "message": "GLES: add image external enums\n\nThis change adds Java definitions for the enums of the\nGL_OES_EGL_image_external OpenGL ES extension.\n\nBug: 3482193\nChange-Id: Ib50326f8be9b9cc9021753855c3846ddcdc5eaa2\n"
    },
    {
      "commit": "43015443b4014d2ae6a6a439102d610a51d85a4f",
      "tree": "14aeb9c353714428b3454e003f08983aac43c02b",
      "parents": [
        "bf677de46a039e07038511909576bfbf4406f7fd",
        "c38d40ded9810aa809489e080ee811bec86d546d"
      ],
      "author": {
        "name": "Jamie Gennis",
        "email": "jgennis@google.com",
        "time": "Tue Nov 15 11:29:47 2011 -0800"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Tue Nov 15 11:29:47 2011 -0800"
      },
      "message": "am c38d40de: am 6b228af6: Merge \"EGL: add the ANDROID suffix to the blob cache ext\" into ics-mr1\n\n* commit \u0027c38d40ded9810aa809489e080ee811bec86d546d\u0027:\n  EGL: add the ANDROID suffix to the blob cache ext\n"
    },
    {
      "commit": "e88740e6264d829099d04bbe57d1ec2b14996c40",
      "tree": "bef49e54d8541fda96a8defd68807efa1573d662",
      "parents": [
        "274e03c90ee6054e81a16b1bd0a54258e08ddee9"
      ],
      "author": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Sun Nov 13 23:52:47 2011 -0800"
      },
      "committer": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Mon Nov 14 19:05:45 2011 -0800"
      },
      "message": "rework a bit how we manage EGL extensions\n\n- don\u0027t advertise extensions that are not supported\n  by any implementation\n\n- remove EGL_ANDROID_swap_rectangle which is not\n  implemented by anybody and confuses people\n\n- add some comments about mandatory extensions\n\nBug: 5428001\nChange-Id: Id8dc48116ac1d1eb79ec9ef55d03e29d4257c1f3\n"
    },
    {
      "commit": "274e03c90ee6054e81a16b1bd0a54258e08ddee9",
      "tree": "1ec08e7176e5253e7561d373e35cf572a1bafe18",
      "parents": [
        "6b228af6ff20b3f592db4ad5662e1bc401d09b4d"
      ],
      "author": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Sun Nov 13 20:50:07 2011 -0800"
      },
      "committer": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Mon Nov 14 17:40:21 2011 -0800"
      },
      "message": "fix crash when validating an invalid EGL objects\n\nthe code that validated EGL objects dereferenced the object\nto access its EGLDisplay -- needed for validation (!).\nThis was wrong for two reasons, first we dereferenced the object\nbefore validating it (potentially leading to a crash), secondly\nwe didn\u0027t validate that the object existed in the right EGLDisplay.\n\nWe now use the EGLDisplay passed by the user API.\n\nChange-Id: I66f9e851d4f8507892a6b1fee3065f124c4e7138\n"
    },
    {
      "commit": "6b228af6ff20b3f592db4ad5662e1bc401d09b4d",
      "tree": "2acfe79ade7834915dec27691a84b3917d696c84",
      "parents": [
        "ff95f6572596c48b58f5a73d23b2273866ea3fab",
        "b7928463a32092940dd56b0694a624c21d18325d"
      ],
      "author": {
        "name": "Jamie Gennis",
        "email": "jgennis@google.com",
        "time": "Mon Nov 14 17:36:46 2011 -0800"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Nov 14 17:36:46 2011 -0800"
      },
      "message": "Merge \"EGL: add the ANDROID suffix to the blob cache ext\" into ics-mr1"
    },
    {
      "commit": "b7928463a32092940dd56b0694a624c21d18325d",
      "tree": "b5b6650c1c14e4d770b0375fdc36cd5a0f6d4bd3",
      "parents": [
        "270826a8878b5470d48d93ca3d518ac93860870d"
      ],
      "author": {
        "name": "Jamie Gennis",
        "email": "jgennis@google.com",
        "time": "Wed Nov 09 15:35:34 2011 -0800"
      },
      "committer": {
        "name": "Jamie Gennis",
        "email": "jgennis@google.com",
        "time": "Fri Nov 11 13:17:03 2011 -0800"
      },
      "message": "EGL: add the ANDROID suffix to the blob cache ext\n\nThis change adds the ANDROID suffix to the all the types and functions\ndefined by the EGL_ANDROID_blob_cache extension.\n\nChange-Id: I087875b96d9a7053efb9c8d5614f9f765eed799d\n"
    },
    {
      "commit": "1333742bedc9b462024302f302e3a7f27053df66",
      "tree": "f7cf76c82246c9fad4481ad232f17dfa81f57d45",
      "parents": [
        "0ed4c7f8cc8462d434c3a0103790b38fdbb8f392",
        "cb0db0306b5849a35d3d99eea1b34ce019c6f0d8"
      ],
      "author": {
        "name": "Akwasi Boateng",
        "email": "akwasi.boateng@ti.com",
        "time": "Fri Nov 11 15:34:19 2011 +0000"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Fri Nov 11 15:34:19 2011 +0000"
      },
      "message": "am cb0db030: Merge branch \\\u0027ics-mr1-plus-aosp\\\u0027 of ssh://android-git:29418/platform/frameworks/base into ics-mr1-plus-aosp\n\n* commit \u0027cb0db0306b5849a35d3d99eea1b34ce019c6f0d8\u0027:\n  Make the overridden ImageView#setVisibility remotable\n  Clamp non-monotonic stats instead of dropping.\n  DO NOT MERGE. Fix leak in LayoutTransition\n  Fix lastVisible/global rects\n  Fix Wimax-less build.\n  Fix leak in LayoutTransition\n  Deferring wallpaper update to improve workspace scrolling (issue 5506959)\n  Terminate EGL when an app goes in the background\n  boot animation is dithered and scaled\n  Fix NdefRecord byte-stream constructor.\n  PopupWindow dismiss() can get into a recursive loop.\n  Fold WiMAX state into the mobile RSSI.\n  Remove dedicated wimax icon to fix RSSI layout.\n"
    },
    {
      "commit": "50a66f0e9c5a85a6af4a99eb66656a69eba24572",
      "tree": "195b2586e28ab77ea2e11284f611d437671c20e7",
      "parents": [
        "de62d9cbe00d0fcac24af9a3d89ba7a125e56eaa",
        "8ff6b9ebeeb24a6161ec6098e6bfdf8790ee5695"
      ],
      "author": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Thu Nov 10 17:10:41 2011 -0800"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Nov 10 17:10:41 2011 -0800"
      },
      "message": "Merge \"Terminate EGL when an app goes in the background\" into ics-mr1"
    },
    {
      "commit": "8ff6b9ebeeb24a6161ec6098e6bfdf8790ee5695",
      "tree": "b6caef363611d37aa58a1b92d96b0b8e2e9f50c4",
      "parents": [
        "36a7f2a9adfa21ec31f00d496fef82e68931c860"
      ],
      "author": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Wed Nov 09 20:10:18 2011 -0800"
      },
      "committer": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Thu Nov 10 16:44:49 2011 -0800"
      },
      "message": "Terminate EGL when an app goes in the background\n\nThis does not happen on high end gfx devices. This happens\nonly if only one EGL context is initialized in the current\nprocess.\n\nChange-Id: Ibd1737efdf84eef8a84108b05795440d1ae9964e\n"
    },
    {
      "commit": "715bcd6d5b0cf76a65f17bac7e07f575f29834a9",
      "tree": "3362722343199a06b67249591a6b23b15f870872",
      "parents": [
        "fe2d4abdd917aa98baf56d4b903999c2d8b68a7d",
        "1bf15e79dcc89229c599987ed795e3fd99bcbc88"
      ],
      "author": {
        "name": "Jamie Gennis",
        "email": "jgennis@google.com",
        "time": "Thu Nov 10 16:14:45 2011 +0000"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Thu Nov 10 16:14:45 2011 +0000"
      },
      "message": "am 1bf15e79: am 97ece7a9: Merge \"EGL: add deferred saving of the cache\" into ics-mr1\n\n* commit \u00271bf15e79dcc89229c599987ed795e3fd99bcbc88\u0027:\n  EGL: add deferred saving of the cache\n"
    },
    {
      "commit": "dfef67374a66f01222bee956c11a0eba40650a8e",
      "tree": "4c3dd4d041a3541c6ad2270328011ba2bc6b7251",
      "parents": [
        "bad5664a989b7dd31ff2bd36409dcaea0afb15d5",
        "3cb007e44db1e169747528f62a118575f3b04d56"
      ],
      "author": {
        "name": "Jamie Gennis",
        "email": "jgennis@google.com",
        "time": "Wed Nov 09 21:51:16 2011 +0000"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Wed Nov 09 21:51:16 2011 +0000"
      },
      "message": "am 3cb007e4: am 911263dc: Merge changes I18e5e789,I5cbaae2d into ics-mr1\n\n* commit \u00273cb007e44db1e169747528f62a118575f3b04d56\u0027:\n  EGL: implement loading and saving the cache\n  EGL: use an in-memory the blob cache\n"
    },
    {
      "commit": "2ea0cbb3d14ec82b1728ca6a1caa4f3f458814ef",
      "tree": "233849eecc19690131c292aaf6966cfb98733ba5",
      "parents": [
        "d211b4882a662409b85a1f90c71e28faa9c54464"
      ],
      "author": {
        "name": "Jamie Gennis",
        "email": "jgennis@google.com",
        "time": "Tue Nov 08 17:59:36 2011 -0800"
      },
      "committer": {
        "name": "Jamie Gennis",
        "email": "jgennis@google.com",
        "time": "Tue Nov 08 17:59:36 2011 -0800"
      },
      "message": "EGL: add deferred saving of the cache\n\nThis change causes any insertions into the EGL cache to trigger an\nattempt to save the cache contents to disk.  The save operation is\ndeferred to allow multiple cache insertions to be batched up.\n\nChange-Id: I6cfec9c0dbbef94d3f8880860e2a365dccc296c7\n"
    }
  ],
  "next": "d90bf3911dd19a93b373680f2bde551c9c3c016b"
}
