)]}'
{
  "log": [
    {
      "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"
    },
    {
      "commit": "d90bf3911dd19a93b373680f2bde551c9c3c016b",
      "tree": "46f73f4a38456e4a16d63c25caa966a4dfea5ef8",
      "parents": [
        "9cf8b6eadba70aca871faf8ba23825c57ede7cb5"
      ],
      "author": {
        "name": "Jamie Gennis",
        "email": "jgennis@google.com",
        "time": "Mon Nov 07 17:03:54 2011 -0800"
      },
      "committer": {
        "name": "Jamie Gennis",
        "email": "jgennis@google.com",
        "time": "Tue Nov 08 15:54:36 2011 -0800"
      },
      "message": "EGL: implement loading and saving the cache\n\nThis change adds support for saving and loading the contents of the EGL\ncache.  It also adds some simple tests for the EGL cache.\n\nChange-Id: I18e5e789e0897a0783d29d1c1e64d26de2dd44c4\n"
    },
    {
      "commit": "9cf8b6eadba70aca871faf8ba23825c57ede7cb5",
      "tree": "f20ea0c87b780ef96d185ef51a36f28d51a54635",
      "parents": [
        "2ab7ec90e4a6f21bee7cbfebbd751d32d4cf9e03"
      ],
      "author": {
        "name": "Jamie Gennis",
        "email": "jgennis@google.com",
        "time": "Sun Nov 06 14:14:33 2011 -0800"
      },
      "committer": {
        "name": "Jamie Gennis",
        "email": "jgennis@google.com",
        "time": "Mon Nov 07 10:48:42 2011 -0800"
      },
      "message": "EGL: use an in-memory the blob cache\n\nThis change makes the makes the stub EGL_ANDROID_blob_cache callbacks\nactually use a BlobCache object.\n\nBug: 5474671\nChange-Id: I5cbaae2dea3aad2fe306c9f57029c3f215a0863a\n"
    },
    {
      "commit": "9829cceca11a0fc92ab1318ce32b4d4dae8d347d",
      "tree": "c610620dfbbed5e4a2b7509337374c966cecb29d",
      "parents": [
        "01b35d7b1c70e23b89fe642577ef2e2446bde12a",
        "fc5e224e8dcc878606e47ba3d834be0a79498ac6"
      ],
      "author": {
        "name": "Alex Sakhartchouk",
        "email": "alexst@google.com",
        "time": "Mon Nov 07 09:53:28 2011 -0800"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Nov 07 09:53:28 2011 -0800"
      },
      "message": "Merge \"Properly passing an unused variable through.\""
    },
    {
      "commit": "aaa0336f883b2f94af5e7d4a320cb9a351a2db93",
      "tree": "e90ec8ff84900844c3d357ea09bb17a3a039714b",
      "parents": [
        "941733e7d19915b08474d972718e2375782e4598",
        "2ab7ec90e4a6f21bee7cbfebbd751d32d4cf9e03"
      ],
      "author": {
        "name": "Jamie Gennis",
        "email": "jgennis@google.com",
        "time": "Sat Nov 05 19:33:42 2011 +0000"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Sat Nov 05 19:33:42 2011 +0000"
      },
      "message": "am 2ab7ec90: Merge \"EGL: Add stubs for EGL_ANDROID_blob_cache\" into ics-mr1\n\n* commit \u00272ab7ec90e4a6f21bee7cbfebbd751d32d4cf9e03\u0027:\n  EGL: Add stubs for EGL_ANDROID_blob_cache\n"
    },
    {
      "commit": "0dc908ce71cb643dfb41598be9f358baec93fc41",
      "tree": "9e2f9be0e792e766fd31243b5b89f139377822ce",
      "parents": [
        "62015f5d0d1104dfc682b3eb3b6c0be4f63b985a"
      ],
      "author": {
        "name": "Jamie Gennis",
        "email": "jgennis@google.com",
        "time": "Thu Nov 03 17:42:43 2011 -0700"
      },
      "committer": {
        "name": "Jamie Gennis",
        "email": "jgennis@google.com",
        "time": "Fri Nov 04 15:01:51 2011 -0700"
      },
      "message": "EGL: Add stubs for EGL_ANDROID_blob_cache\n\nThis change adds a stub cache implementation that gets passed to the\nunderlying EGL implementation at initialization time.\n\nChange-Id: I14437c5b6f91b7a34a19bb02ad802e6e54f88d2a\n"
    },
    {
      "commit": "fc5e224e8dcc878606e47ba3d834be0a79498ac6",
      "tree": "e9b9d873a02dd45e15d01102838789d2af651f95",
      "parents": [
        "5b9c79f27ee1bfc1ab70770b55dc10e24988a42a"
      ],
      "author": {
        "name": "Alex Sakhartchouk",
        "email": "alexst@google.com",
        "time": "Thu Nov 03 17:28:33 2011 -0700"
      },
      "committer": {
        "name": "Alex Sakhartchouk",
        "email": "alexst@google.com",
        "time": "Thu Nov 03 17:28:33 2011 -0700"
      },
      "message": "Properly passing an unused variable through.\n\nChange-Id: Ie49b5855bfca4e202ed41b6167a899832e99d728\n"
    },
    {
      "commit": "eba186448ff048f8fc1ba596c9779e8069a93128",
      "tree": "286bec506d8cc6c5e8b6ed4a39543ee4dd63b280",
      "parents": [
        "b0ac8ed48307cf5ee34c38cf56856f15db99c96f",
        "74b2b9547329a0b05e0bd5701057696007b854bb"
      ],
      "author": {
        "name": "Joe Fernandez",
        "email": "joefernandez@google.com",
        "time": "Mon Oct 31 12:26:31 2011 +0000"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Mon Oct 31 12:26:31 2011 +0000"
      },
      "message": "am 74b2b954: am 09848bc8: Merge \"docs: add developer guide cross references, Project ACRE, round 3\" into ics-mr0\n\n* commit \u002774b2b9547329a0b05e0bd5701057696007b854bb\u0027:\n  docs: add developer guide cross references, Project ACRE, round 3\n"
    },
    {
      "commit": "74b2b9547329a0b05e0bd5701057696007b854bb",
      "tree": "40eea9e4308a3ff3cb5033ddf51a2f25b1872f62",
      "parents": [
        "76756a42dd68062349158f70d9b0ab95db908acc",
        "09848bc89de999416e2de82a7693b2deec6bf802"
      ],
      "author": {
        "name": "Joe Fernandez",
        "email": "joefernandez@google.com",
        "time": "Sat Oct 29 02:16:10 2011 +0000"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Sat Oct 29 02:16:10 2011 +0000"
      },
      "message": "am 09848bc8: Merge \"docs: add developer guide cross references, Project ACRE, round 3\" into ics-mr0\n\n* commit \u002709848bc89de999416e2de82a7693b2deec6bf802\u0027:\n  docs: add developer guide cross references, Project ACRE, round 3\n"
    },
    {
      "commit": "b50e2afd6782e9b877f52844bec106c12ff9a9ef",
      "tree": "18a1b86e6fbb5d5dc9e7fe42f5a9e79c0030a76a",
      "parents": [
        "e707859415f4c8e1c01228dfaa58fb0a690d442e"
      ],
      "author": {
        "name": "Jack Palevich",
        "email": "jackpal@google.com",
        "time": "Fri Oct 28 13:25:12 2011 -0700"
      },
      "committer": {
        "name": "Jack Palevich",
        "email": "jackpal@google.com",
        "time": "Fri Oct 28 14:38:53 2011 -0700"
      },
      "message": "Destroy and recreate the EGL surface when the surface size changes.\n\nDetails:\n+ Split EGLHelper.createSurface into two methods.\n+ Add a separate flag for specifying when to create the GlInterface.\n+ destroy and recreate the EGL surface when the surface size changes\n+ Remove no-longer-needed work-around for b/2263168.\n\nThis fixes b/2263168\n\nChange-Id: I0d2596527e3c8dabacdd8a8e427531eaefe7d266\n"
    },
    {
      "commit": "61fd1e8d8c3ccf2d6b7d4af1c19e8f0988d5a1ec",
      "tree": "0cc2443b58929c018ac78c1f85047fb9c4b267f2",
      "parents": [
        "a6d2e6b952d535fec4483d67ea52947e6e3bc629"
      ],
      "author": {
        "name": "Joe Fernandez",
        "email": "joefernandez@google.com",
        "time": "Wed Oct 26 13:39:11 2011 -0700"
      },
      "committer": {
        "name": "Joe Fernandez",
        "email": "joefernandez@google.com",
        "time": "Fri Oct 28 14:23:23 2011 -0700"
      },
      "message": "docs: add developer guide cross references, Project ACRE, round 3\n\nChange-Id: I6125315ecdf0f78dd947c514a9944729d723e95d\n"
    },
    {
      "commit": "a35c120d8fafa7dded606a25bc100b13f48ab9e3",
      "tree": "53bde00af464433a99270c6c1b7580608b027fb3",
      "parents": [
        "772158a596bc97694fa82e710b5cfbe8c6f40cdc"
      ],
      "author": {
        "name": "Jack Palevich",
        "email": "jackpal@google.com",
        "time": "Fri Oct 14 07:34:05 2011 -0700"
      },
      "committer": {
        "name": "Jack Palevich",
        "email": "jackpal@google.com",
        "time": "Fri Oct 14 07:34:05 2011 -0700"
      },
      "message": "Work around race condition when shutting down a surface flinger surface.\n\nWorks around b/4588890\n\nChange-Id: Ie0cf1f212686aec93cda85bf112f4b7ab4197256\n"
    },
    {
      "commit": "97bc75d42c2a03a68c46c134f16fd64d8f2ce657",
      "tree": "d018c829cce10cb593d56e49f738102180c834f9",
      "parents": [
        "94d2f366f971bc052da9856e9f8867094e738cd1"
      ],
      "author": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Wed Oct 05 19:15:05 2011 -0700"
      },
      "committer": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Wed Oct 05 19:15:32 2011 -0700"
      },
      "message": "don\u0027t log EGL errors due to unimplemented proprietary extensions\n\nChange-Id: Icfc33d4f55d1e7fb49390ce0921ba37a438c9fc2\n"
    },
    {
      "commit": "cc5471c35327c1511075f5df0d45a2d57610fecb",
      "tree": "09d3a2482bf8bccc22c62e35c40d31a28f8795e1",
      "parents": [
        "3ec8053fb2fc8384d614bfbe39e3e29a21d323ba"
      ],
      "author": {
        "name": "Jack Palevich",
        "email": "jackpal@google.com",
        "time": "Tue Sep 20 19:59:26 2011 -0700"
      },
      "committer": {
        "name": "Jack Palevich",
        "email": "jackpal@google.com",
        "time": "Tue Sep 20 19:59:26 2011 -0700"
      },
      "message": "Avoid allocating temporary memory for Matrix operations.\n\nAlso fix a bug where Matrix.invertM was not returning false when the\nmatrix could not be inverted.\n\nChange-Id: I68b172032093d9f257e88c802de936633bb4912c\n"
    },
    {
      "commit": "575e01c6c767274a9581e07290aa41e928c643eb",
      "tree": "a891d67b27aa16250a21ba332f6d254b8e2d456d",
      "parents": [
        "00cd1d4e003d5b18dba978ca611a0eb083f8ae2b"
      ],
      "author": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Tue Sep 13 18:15:50 2011 -0700"
      },
      "committer": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Mon Sep 19 14:44:37 2011 -0700"
      },
      "message": "fix EGL debugger\n\nalways use GL_RGBA, GL_UNSIGNED_BYTE for screen capture\nand make sure to handle GL_BGRA_EXT used on some gpu.\n\nChange-Id: If9c973677fec8a5c4e72be22e7ef7d4bf5f008f4\n"
    },
    {
      "commit": "53f6cdd94d2ceccc7ca7cd0b45f3172944f60dc4",
      "tree": "44539e06e17d49660a95c2830ec6fc71d9c89048",
      "parents": [
        "86c2fe474117b4a003125138e0f0e44f5002dfac"
      ],
      "author": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Fri Sep 16 11:56:40 2011 -0700"
      },
      "committer": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Fri Sep 16 11:56:40 2011 -0700"
      },
      "message": "cleanup: fix typos in logs\n\nChange-Id: Ib5744564a873ea2b84100174673dc4d3ae109fcf\n"
    },
    {
      "commit": "1b1d73f3ae5013f6c82f6a9b23a1654896e7a64a",
      "tree": "dbc5953369deffc4b3a8703bff526a36bb390cca",
      "parents": [
        "1fbe7a8e828fd0fe8339d075da08aad701ab6e98"
      ],
      "author": {
        "name": "Jonas Yang",
        "email": "joyang@nvidia.com",
        "time": "Fri Aug 26 20:04:39 2011 +0800"
      },
      "committer": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Tue Sep 13 16:44:22 2011 -0700"
      },
      "message": "Add (support for) EGL_NV_system_time extension.\n\nChange-Id: I62bf0fcb5ccdc77c042b425a42054fb3122575b6\nSigned-off-by: Mathias Agopian \u003cmathias@google.com\u003e\n"
    },
    {
      "commit": "8ec2ff65da037da14fa1fe372a24a053d198fc51",
      "tree": "cda2989be6e8f84a83c95aea2d8a7566fdf918c8",
      "parents": [
        "b69f7015e7233d1c22d474f7f6850d4d93b2b790"
      ],
      "author": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Tue Sep 06 17:24:05 2011 -0700"
      },
      "committer": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Tue Sep 06 18:06:04 2011 -0700"
      },
      "message": "add an option to EGL to dump stack traces on errors\n\nenable by setting debug.egl.callstack to 1\n\nChange-Id: I7fad9ce71b4c4c5ece97d4f9d139348eab742a3c\n"
    },
    {
      "commit": "382b88409c3aca5aa70a98f9625bb5f3bde1d1f4",
      "tree": "ad4e98746655065fc0c89bf3ddb9b8a9ff76e892",
      "parents": [
        "bffb83e96c2f3d01bf42490737201ab4de79c91b"
      ],
      "author": {
        "name": "David \u0027Digit\u0027 Turner",
        "email": "digit@android.com",
        "time": "Fri Aug 26 17:38:47 2011 +0200"
      },
      "committer": {
        "name": "David \u0027Digit\u0027 Turner",
        "email": "digit@google.com",
        "time": "Fri Sep 02 15:41:13 2011 +0200"
      },
      "message": "opengl: EGL: special case for GLES emulation\n\nThis patch modifies the library loaded in libEGL.so to\nhandle the case of GLES emulation as follows:\n\n- if we detect that we run inside the emulator, check the\n  GPU emulation status through ro.kernel.qemu.gles, which\n  will be set to 1 if supported, or 0 otherwise.\n\n  When trying to run on an older version of the emulator,\n  the kernel parameter will not be defined at all.\n\n- if GPU emulation is supported, use egl.cfg as usual.\n  It will contain a line like \"0 0 emulation\" that will\n  load libEGL_android.so appropriately.\n\n- nothing is changed if we don\u0027t run inside the emulator.\n\nNOTE: Ideally, we would modify libEGL_emulation.so to\n      redirect all calls to libEGL_android.so in this case.\n\n      However, this turns out to be extremely tedious to implement\n      (too many functions with different signatures).\n\n      As such,  it is much simpler to make the check before\n      loading the library.\n\nChange-Id: I9930bc168d9013cc8700feedc57b979384467c37\n"
    },
    {
      "commit": "4222092bd5650aa353caad4ef67689498564e592",
      "tree": "9812ad425064f8c31e1641658d0301abdf8ba56d",
      "parents": [
        "3b583229d0aa3629fe9400dd633bebbc54a5c0c2"
      ],
      "author": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Thu Sep 01 17:50:52 2011 -0700"
      },
      "committer": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Thu Sep 01 17:50:52 2011 -0700"
      },
      "message": "fix another bug that prevented the gl debugger to work\n\nwe didn\u0027t set the debug tls properly\n\nChange-Id: Iad9cc5b5d230a8eb7f680c4b70925c5e43e73051\n"
    },
    {
      "commit": "3b583229d0aa3629fe9400dd633bebbc54a5c0c2",
      "tree": "baf460de4c8e54bccb398a909faa665cde80ff15",
      "parents": [
        "2523a6016a9a3d5626e041aa742e982870aecd5d"
      ],
      "author": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Thu Sep 01 14:55:00 2011 -0700"
      },
      "committer": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Thu Sep 01 14:55:00 2011 -0700"
      },
      "message": "this should fix the GL debugger\n\nwe were checking against to the wrong variable\n\nChange-Id: Iff3f5ab2d6ba5ac0d3d8161011b38e673ee7e67b\n"
    },
    {
      "commit": "ca07e34f13fd1c5df8deecc815fcb46f0a07052f",
      "tree": "d3297154c724d032071017c760aa51921ad7e5d2",
      "parents": [
        "cf2317ef13e35cf1bcd5ba27be686c7f2609ac38"
      ],
      "author": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Thu Aug 25 18:38:24 2011 -0700"
      },
      "committer": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Thu Aug 25 18:38:24 2011 -0700"
      },
      "message": "fix logging of eglMakeCurrent() errors\n\nChange-Id: Ie22cabff822a8fb3186f082491234b9503b431c3\n"
    },
    {
      "commit": "c63764e834445c4b0db1dfa56770d6928d65bc56",
      "tree": "ade9abb944106be25abb346fd2dbfeb1ca8d8a6f",
      "parents": [
        "8e7e95f22f700fae6926d87b25c388bf9b509389",
        "7de41f1bf73cc7fe2a193293873a6f418a735369"
      ],
      "author": {
        "name": "Jamie Gennis",
        "email": "jgennis@google.com",
        "time": "Thu Aug 25 13:48:25 2011 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Aug 25 13:48:25 2011 -0700"
      },
      "message": "Merge \"EGL: move disconnect to surface dtor\""
    },
    {
      "commit": "407ec78b828173257b0c5dae221649a4ccd8b058",
      "tree": "3890ba718151c345ce5c87a8d252e0445d790dc3",
      "parents": [
        "631582f7f7a3c879a5fba81f2bc082e4826758aa"
      ],
      "author": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Wed Aug 24 17:06:58 2011 -0700"
      },
      "committer": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Wed Aug 24 17:06:58 2011 -0700"
      },
      "message": "Add OpenGL backend to ImageWallpaper\nBug #5204874\n\nCurrently disabled.\n\nChange-Id: I5e7b35dce2981b0691f107e39c6394b260466543\n"
    },
    {
      "commit": "7de41f1bf73cc7fe2a193293873a6f418a735369",
      "tree": "c52d791275fde7940cac2088a2ca44a6eab40f93",
      "parents": [
        "7a12d6ba14a35276fd3afb314d6c95055da4c6f0"
      ],
      "author": {
        "name": "Jamie Gennis",
        "email": "jgennis@google.com",
        "time": "Wed Aug 24 14:54:56 2011 -0700"
      },
      "committer": {
        "name": "Jamie Gennis",
        "email": "jgennis@google.com",
        "time": "Wed Aug 24 15:00:23 2011 -0700"
      },
      "message": "EGL: move disconnect to surface dtor\n\nThis change moves the call to native_window_api_disconnect from\neglDestroySurface to the egl_surface_t destructor.  The egl_surface_t\ncan outlive the external EGLSurface if eglDestroySurface is called while\nthe surface is made current on a thread.\n\nChange-Id: I0df6117a5633c2a19935fe356579abdd76fc471f\n"
    },
    {
      "commit": "f319e2f2ebda579d5c1d94ba24f650d362aacb9c",
      "tree": "ccab8ab141098350e220cc8fb587b958a3726a2d",
      "parents": [
        "8618ebcc5d20a5983da1fc6200d50c3662aca6e3"
      ],
      "author": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Thu Aug 18 16:26:21 2011 -0700"
      },
      "committer": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Thu Aug 18 16:26:21 2011 -0700"
      },
      "message": "implement EGL_TEXTURE_EXTERNAL_OES in libagl\n\nthis allows the emulator to display some graphics\n\nChange-Id: Ib4671ad70b8df598d02307f2b9c5b843421cea25\n"
    },
    {
      "commit": "e98013b8886249ae38650836f6915e0f7d0e7476",
      "tree": "e4b7164bcb8e0130b8d1756c8a7c4d326701bf31",
      "parents": [
        "47b212935025fd514a414451fff98aaeeaa92934"
      ],
      "author": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Mon Aug 15 14:56:38 2011 -0700"
      },
      "committer": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Mon Aug 15 15:25:40 2011 -0700"
      },
      "message": "fix test-opengl-swapinterval\n\nEGLConfig selection should now work on any device\n\nChange-Id: I4d4580e891d1faf817fa853838406fb49d12e50a\n"
    },
    {
      "commit": "3ab88557947d708cc36d60ce6566509ceff944e4",
      "tree": "9d5b772a77965900b776c1bd1c3d398a67f7e393",
      "parents": [
        "34e1fb1ee229a7e033dcd42f4efd194e1614d5ce"
      ],
      "author": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Mon Aug 01 20:24:02 2011 -0700"
      },
      "committer": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Mon Aug 01 20:24:02 2011 -0700"
      },
      "message": "fix an issue where the screen could be stale after a surface size change\n\nsome GLES drivers dequeue buffers before a frame is started\n(which is allowed), which can cause a that frame to be rendered\ninto a buffer of the wrong size. Such buffer will be ignored\nby the compositor. If the application draws only once after a\nsize change, the screen might stay in this stale state.\n\nthis can be avoided by telling the GL driver to purge all its\npending buffers, which is done by making the surface not current\nand then current again.\n\nthis solution is specific to android, but acceptable because\nhandled solely in the framework.\n\nBug: 2263168\nChange-Id: I3d3c9a019979a9186e329d3160fa54adac78d3f7\n"
    },
    {
      "commit": "982d2da4eef0a48d84d88e3e1d2d1dbdbb413a27",
      "tree": "2a5036e97e04b0467eab8f73a283f0a0730c0d61",
      "parents": [
        "03116780a17cb6db7c926d01630cb9f68a19539b"
      ],
      "author": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Fri Jul 29 17:55:48 2011 -0700"
      },
      "committer": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Mon Aug 01 14:06:20 2011 -0700"
      },
      "message": "connect/disconnect is now called from our EGL wrapper\n\nthe original connect/disconnect hooks are deprecated\nand replace by api_connect/api_disconnect. the original\nhooks are no no-ops.\napi_connect/api_disconnect is now only called from the\nandroid framework.\n\nBug: 5057915\nChange-Id: I8ca64cd1acd6cabf915bf54689ec2e5f6dfa495a\n"
    },
    {
      "commit": "115ed5f46df18c864e4b5632d35ea3e4ec921d9c",
      "tree": "0415bbff1beb364c1e1805ac5609e7fc65bbf3a9",
      "parents": [
        "f2fc460a9512500d9d5749fbaada88903d8e3b22"
      ],
      "author": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Tue Jul 19 17:20:35 2011 -0700"
      },
      "committer": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Tue Jul 19 17:20:35 2011 -0700"
      },
      "message": "Add new OpenGL test\n\nChange-Id: Icab48d71945bf94dd53f58b728a951d46380d945\n"
    },
    {
      "commit": "8fdb8a4dd3f73640f1295d98ae09eadb3e071653",
      "tree": "5f7af241a76562aefcb6e70b0a61e65ac0e68fe2",
      "parents": [
        "755c7dc48d009914feae01ba8c79c3b0b911b932"
      ],
      "author": {
        "name": "Jamie Gennis",
        "email": "jgennis@google.com",
        "time": "Sun Jul 17 18:42:09 2011 -0700"
      },
      "committer": {
        "name": "Jamie Gennis",
        "email": "jgennis@google.com",
        "time": "Sun Jul 17 18:42:09 2011 -0700"
      },
      "message": "EGL: update EGL_ANDROID_recordable extension.\n\nThis change adds an enum value and a description of the expected\nimplementations to the EGL_ANDROID_recordable extension specification.\nIt also adds the new enum value to the \u0027eglext.h\u0027 header.\n\nChange-Id: Ia0de2d5613708445ff83b85a7e550f9417531ee4\n"
    },
    {
      "commit": "ad3f935ce9f3308edc62d56a0059e0761c720077",
      "tree": "8c0526a3e2e5ff9f2e1b87fda6ee028cb50be585",
      "parents": [
        "dadae54a88ba5686ebb5dc0cb88a9e4eb9963bc7",
        "43dd61e08a726fbc3695b1cbfdef6bdd4ddd34be"
      ],
      "author": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Tue Jul 12 14:11:57 2011 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Jul 12 14:11:57 2011 -0700"
      },
      "message": "Merge \"fix typo in a comment\""
    },
    {
      "commit": "43dd61e08a726fbc3695b1cbfdef6bdd4ddd34be",
      "tree": "33f580f9ca4110cab54c799aad80e945210aeb67",
      "parents": [
        "e544a1dbc9a3a4277ef26f6c7a066e7b443829ec"
      ],
      "author": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Tue Jul 12 14:11:07 2011 -0700"
      },
      "committer": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Tue Jul 12 14:11:07 2011 -0700"
      },
      "message": "fix typo in a comment\n\nChange-Id: If913611a65e8b578021e9f9a9546f05e0ce6ef44\n"
    },
    {
      "commit": "8c55a9a57e4f13ec420c3de7b3abfdcf454f6633",
      "tree": "f72fd5b0d50af585d7d4c644f84a288dffbc2946",
      "parents": [
        "067b873f7cc3d1b3e83604b78f8c0dc769f870b1",
        "bd882b1c8708686d373c56e07e6bb8b1cb6ffd9e"
      ],
      "author": {
        "name": "Jeff Brown",
        "email": "jeffbrown@google.com",
        "time": "Tue Jul 12 12:15:07 2011 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Jul 12 12:15:07 2011 -0700"
      },
      "message": "Merge \"Remove the simulator target from all makefiles. Bug: 5010576\""
    },
    {
      "commit": "bd882b1c8708686d373c56e07e6bb8b1cb6ffd9e",
      "tree": "b17fbae7a6ff475ab37be48046d0540d594f84fb",
      "parents": [
        "3f9dd287b99340efaaa257759e71a8f81b2ed113"
      ],
      "author": {
        "name": "Jeff Brown",
        "email": "jeffbrown@google.com",
        "time": "Mon Jul 11 22:12:16 2011 -0700"
      },
      "committer": {
        "name": "Jeff Brown",
        "email": "jeffbrown@google.com",
        "time": "Mon Jul 11 22:12:16 2011 -0700"
      },
      "message": "Remove the simulator target from all makefiles.\nBug: 5010576\n\nChange-Id: I04d722f258951a3078fe07899f5bbe8aac02a8e8\n"
    },
    {
      "commit": "2d6bb33800e35b452a42a8ee0e35043d790b0b22",
      "tree": "d26ac76f443c227e7200f1df28809b0a4d48dac6",
      "parents": [
        "0870e814679b4cb4e2c74c7225a9414650a1c7c8",
        "8f80f152e593a9b3efae4d7b4c89b807a972d7b3"
      ],
      "author": {
        "name": "Jamie Gennis",
        "email": "jgennis@google.com",
        "time": "Mon Jul 11 17:14:33 2011 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Jul 11 17:14:33 2011 -0700"
      },
      "message": "Merge changes I002177a6,Ibaff52fe\n\n* changes:\n  Add the EGL_ANDROID_recordable spec.\n  Add the spec for EGL_ANDROID_blob_cache.\n"
    },
    {
      "commit": "8f80f152e593a9b3efae4d7b4c89b807a972d7b3",
      "tree": "2fd841b823ddb100fccb2b257017ef7381e21ba9",
      "parents": [
        "0fec106d854e7e9529b670c973446bb6748fbc04"
      ],
      "author": {
        "name": "Jamie Gennis",
        "email": "jgennis@google.com",
        "time": "Fri Jul 08 18:11:49 2011 -0700"
      },
      "committer": {
        "name": "Jamie Gennis",
        "email": "jgennis@google.com",
        "time": "Mon Jul 11 17:13:02 2011 -0700"
      },
      "message": "Add the EGL_ANDROID_recordable spec.\n\nChange-Id: I002177a68fafd6bb941aa64445c85fd5ff56223a\n"
    },
    {
      "commit": "308f9f6b248402c67d73c3ad48f5b6b888bab7b7",
      "tree": "cf57cc66cbd45cb7506691ab1492882066731bee",
      "parents": [
        "f21f07627df3ad4381fdd3daf47289eeda9754d3",
        "97eae025ad857e33dce5b3d1d4fd5fe5813d2a80"
      ],
      "author": {
        "name": "Jamie Gennis",
        "email": "jgennis@google.com",
        "time": "Mon Jul 11 15:47:20 2011 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Jul 11 15:47:20 2011 -0700"
      },
      "message": "Merge \"EGL: fix the ANativeWindow size/fmt override\""
    },
    {
      "commit": "039857520b1a03a52051b966d87d587225bdfcc3",
      "tree": "1c37c30821d896b2b831f4324219926ca039a801",
      "parents": [
        "aa695940327f3d4dd48f29fd1c099b5f7f9fa23c"
      ],
      "author": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Mon Jul 11 15:33:51 2011 -0700"
      },
      "committer": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Mon Jul 11 15:33:51 2011 -0700"
      },
      "message": "Always make GL calls with a valid EGL context.\nBug #5010760\n\nChange-Id: If7500ef69683948e727df1406f458f18b11259d1\n"
    },
    {
      "commit": "97eae025ad857e33dce5b3d1d4fd5fe5813d2a80",
      "tree": "e383a743c76a50a1d201ba9d8b34606c661b6787",
      "parents": [
        "d44e1b6033eed29718f2e7e3540e4884929941a5"
      ],
      "author": {
        "name": "Jamie Gennis",
        "email": "jgennis@google.com",
        "time": "Fri Jul 01 13:12:07 2011 -0700"
      },
      "committer": {
        "name": "Jamie Gennis",
        "email": "jgennis@google.com",
        "time": "Mon Jul 11 12:31:45 2011 -0700"
      },
      "message": "EGL: fix the ANativeWindow size/fmt override\n\nThis change fixes how the Android EGL layer overrides the size and\nformat of an ANativeWindow in eglCreateWindowSurface.  The new behavior\nis to leave the size untouched when overriding the format.  The previous\nbehavior was to reset the ANativeWindow to use the default size set by\nthe ANativeWindow implementation.\n\nIt also adds two new \u0027perform\u0027 methods to the ANativeWindow interface:\nset_buffers_dimensions and set_buffers_format, and redefines the\nbehavior of set_buffers_geometry to be the combination of these two new\nmethods.\n\nAdditionally, this change adds an error check for the return value of\nthe new native_window_set_buffers_format call, which required adding a\n(stub) handler for to FramebufferNativeWindow.\n\nChange-Id: I805c7ccd8d4730dfb132d10d8bc3fb058a0b9df1\n"
    },
    {
      "commit": "0fec106d854e7e9529b670c973446bb6748fbc04",
      "tree": "0e22d328b33cf221f3ff93aa4bb9945d15b79382",
      "parents": [
        "d44e1b6033eed29718f2e7e3540e4884929941a5"
      ],
      "author": {
        "name": "Jamie Gennis",
        "email": "jgennis@google.com",
        "time": "Fri Jul 08 13:59:43 2011 -0700"
      },
      "committer": {
        "name": "Jamie Gennis",
        "email": "jgennis@google.com",
        "time": "Mon Jul 11 12:06:54 2011 -0700"
      },
      "message": "Add the spec for EGL_ANDROID_blob_cache.\n\nChange-Id: Ibaff52fee5c856283536ad37251cc80a9f3f938b\n"
    },
    {
      "commit": "222b466d5a9fae0b11282fb128f87c491a0ccc7f",
      "tree": "dc22da8c235f940aa8ad22ea313e94fb5452c033",
      "parents": [
        "0aaa30dc4859a8f181809eca13a6ec6ed61f3a9e"
      ],
      "author": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Thu Jul 07 14:54:30 2011 -0700"
      },
      "committer": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Fri Jul 08 14:40:39 2011 -0700"
      },
      "message": "Add a simple EGL test\n\ncurrently it just tests EGLConfig selection\n\nChange-Id: Id9d9971012d733147dd7dc02fa2054307960235e\n"
    },
    {
      "commit": "e5e0c50f7dfaccc220725c5595080e921ffda1e4",
      "tree": "ad37fc360554e81d9dddc6eb47c52e664f7ed25a",
      "parents": [
        "f71e5469441286c6f466043e64a7f6492557cbd9"
      ],
      "author": {
        "name": "Romain Guy",
        "email": "romainguy@android.com",
        "time": "Wed Jun 15 15:18:31 2011 -0700"
      },
      "committer": {
        "name": "Romain Guy",
        "email": "romainguy@android.com",
        "time": "Wed Jun 15 16:14:26 2011 -0700"
      },
      "message": "Properly refcount SurfaceTexture in the JNI layer.\n\nChange-Id: I4b4c8020c13b8d6ce0d302fe42410033bf5785a6\n"
    },
    {
      "commit": "f56a960105916a7fd12284109784e5f667661439",
      "tree": "c9fa837dcead24d70a36167e9e3e338f6ae7e4b3",
      "parents": [
        "8e4ee2d709bb76454d0571d13128bd68c894633a"
      ],
      "author": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Mon May 23 17:26:14 2011 -0700"
      },
      "committer": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Mon May 23 17:48:36 2011 -0700"
      },
      "message": "fix x86 build\n\nChange-Id: I03cfbfeaeb8b13842248856b14b4a23711036e10\n"
    },
    {
      "commit": "f1e4e06319ef461997eefe45be716ad954defcb1",
      "tree": "5e42ec880e9320312b3feae7c37867284d16cb2a",
      "parents": [
        "7adf4ef0fad9973d9a07f2a73b2c4238c8e6bf7c"
      ],
      "author": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Mon May 16 18:58:55 2011 -0700"
      },
      "committer": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Mon May 16 19:03:33 2011 -0700"
      },
      "message": "eglTerminate() now actually frees up all active egl objects\n\nas specified by the EGL specification, terminated objects\u0027s\nhandles become invalid, the objects themselves are destroyed\nwhen they\u0027re not current to some thread.\n\nChange-Id: Id3a4a5736a5bbc3926a9ae8385d43772edb88eeb\n"
    },
    {
      "commit": "7adf4ef0fad9973d9a07f2a73b2c4238c8e6bf7c",
      "tree": "4c28764f141b482a42f152531e4920284a45f643",
      "parents": [
        "90bf262591a1772d06a18581c11a6115b89fc143"
      ],
      "author": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Fri May 13 16:21:08 2011 -0700"
      },
      "committer": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Mon May 16 19:02:45 2011 -0700"
      },
      "message": "refactor EGL source code\n\nno changes is functionality. split various objects into their own files.\nmake egl_display objec\u0027s lock internal.\n"
    },
    {
      "commit": "90bf262591a1772d06a18581c11a6115b89fc143",
      "tree": "3bb7a8de5423f1f124c339eea9775a035ccc007c",
      "parents": [
        "524b688f0b7ff8444765bf02e0eea2faae986aaa"
      ],
      "author": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Wed May 11 20:37:47 2011 -0700"
      },
      "committer": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Wed May 11 20:37:47 2011 -0700"
      },
      "message": "fix (Again) adding OES postfix when looking for gl functions\n\nChange-Id: Ib14723ed5355fdc423226ec20a32e26fe7dd68fe\n"
    },
    {
      "commit": "1e740c776dd39b1333112b17fad37ba6cc00cf1b",
      "tree": "4c9339fe6ffee0f4f6ab6d76c9b99f557f82e9c5",
      "parents": [
        "f605a5aae5856d0c6114f36659ff9e8c5f3b5c19"
      ],
      "author": {
        "name": "Jeff Boody",
        "email": "jboody@quicinc.com",
        "time": "Thu Jan 27 18:12:09 2011 -0700"
      },
      "committer": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Wed May 11 18:05:49 2011 -0700"
      },
      "message": "add OES postfix without truncating function\n\nChange-Id: Id47304cf38914190cec58d703801f456ab916f63\n"
    },
    {
      "commit": "21bb1c7a1f3303cd75f22000445f3ce9226cbc18",
      "tree": "0414d9a6087ecd4c82aed19d84d00f1be93fdcfb",
      "parents": [
        "01defe403f3705ac5802e392ee18a78737c51fcb"
      ],
      "author": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Wed May 11 13:41:09 2011 -0700"
      },
      "committer": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Wed May 11 13:41:09 2011 -0700"
      },
      "message": "fix libagl surface initialization\n\nthis broke recently when removing copybit support.\n\nChange-Id: I5cc7ff7f49268411c6c2cfb2d97590d52b13dbd5\n"
    },
    {
      "commit": "b2a153adc9860616acdb96d7cdd64494d5a2a0f2",
      "tree": "3e87a5d9681d86ad68c14222774f77bc4bd3ae4a",
      "parents": [
        "be0cc36525f090032d1b84d95e1d8ba5fc714fc2"
      ],
      "author": {
        "name": "Iliyan Malchev",
        "email": "malchev@google.com",
        "time": "Sun May 01 11:33:26 2011 -0700"
      },
      "committer": {
        "name": "Iliyan Malchev",
        "email": "malchev@google.com",
        "time": "Tue May 03 16:40:14 2011 -0700"
      },
      "message": "frameworks/base: android_native_buffer_t -\u003e ANativeWindowBuffer\n\nChange-Id: Idc2eabaa805bb6d308ebb315872623f28d428417\nSigned-off-by: Iliyan Malchev \u003cmalchev@google.com\u003e\n"
    },
    {
      "commit": "df0a7fbdcff3c683641b7980da50a7d0eebe0876",
      "tree": "bce1f0ec1aecb5735a1dd17a7a5a87f13d7a94b0",
      "parents": [
        "8ef9eaaea8cc27145bf159e45b7d9eaa0aae6d5c",
        "8f0095cd33558e9cc8a440047908e53b68906f5f"
      ],
      "author": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Mon May 02 18:33:26 2011 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon May 02 18:33:26 2011 -0700"
      },
      "message": "Merge \"Allows to render with an OpenGL context inside a TextureView.\""
    },
    {
      "commit": "8f0095cd33558e9cc8a440047908e53b68906f5f",
      "tree": "2f55d779bf102e0c134357d89c7de69d0444634a",
      "parents": [
        "3a5c227279011f850036c29e7c0bc96023298d5c"
      ],
      "author": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Mon May 02 17:24:22 2011 -0700"
      },
      "committer": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Mon May 02 18:32:29 2011 -0700"
      },
      "message": "Allows to render with an OpenGL context inside a TextureView.\n\nChange-Id: I59453f7fc3997f0502a1c5d325d37fed376fabc7\n"
    },
    {
      "commit": "6b85f173046340da7ccd503845a2950843f085f3",
      "tree": "5dfb42ce758d7c8c04755b44b68145afd9cb1f20",
      "parents": [
        "939ccad344c5f32bc9e7dbfa80648c1e75cac62a"
      ],
      "author": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Mon May 02 16:27:21 2011 -0700"
      },
      "committer": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Mon May 02 16:27:21 2011 -0700"
      },
      "message": "remove last traces of copybit\n\nChange-Id: Ia0f13a0ee6f702256482b5eb29d7fa2aa840bfc7\n"
    },
    {
      "commit": "8e86a7aba5003a620bb130b8ab7b444dacf6da9f",
      "tree": "8abc4ce4b65719a78c4a7fe887ad206ce7de958a",
      "parents": [
        "61773dbda321be54cce0ff4b8cfa993433c1543f"
      ],
      "author": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Thu Apr 28 19:50:21 2011 -0700"
      },
      "committer": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Thu Apr 28 19:50:21 2011 -0700"
      },
      "message": "get rid of dependency on copybit HAL module\n\nChange-Id: Ia608099a2426c11a91d33063ba53c93e1eccb428\n"
    },
    {
      "commit": "7868c64fffd164dccf06411372b922dfea26c0e6",
      "tree": "8981cd17712aed03ccc89ab27319929f65d4e31d",
      "parents": [
        "5dbf2ed575c424a0d65e70458d5a02eb21872b33"
      ],
      "author": {
        "name": "Jamie Gennis",
        "email": "jgennis@google.com",
        "time": "Mon Apr 25 16:41:11 2011 -0700"
      },
      "committer": {
        "name": "Jamie Gennis",
        "email": "jgennis@google.com",
        "time": "Mon Apr 25 16:41:11 2011 -0700"
      },
      "message": "EGL: Allow creating a SurfaceTexture EGLSurface.\n\nThis change removes the check that disallowed the creation of an\nEGLSurface that would send frames to a SurfaceTexture.\n\nChange-Id: I44c6d5df503cc676a88144d72d39b414692ce4c9\n"
    },
    {
      "commit": "461d8cd24fb41ff24ed6944d827abe6f5f284868",
      "tree": "7d22830b355ac49e1ab8784737436a6a5d679cb7",
      "parents": [
        "c1e1f43dab96a317f58e31137c49a4df2e919b83",
        "5036a05aca326dd63a6f4c837e4a71e48f143970"
      ],
      "author": {
        "name": "David Li",
        "email": "davidxli@google.com",
        "time": "Fri Apr 22 18:22:40 2011 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Apr 22 18:22:40 2011 -0700"
      },
      "message": "Merge \"GLES2Dbg: noop - format \u0026 comment\""
    },
    {
      "commit": "7c80244afb9098c75b127c2d785bb6e5b03d68c5",
      "tree": "4eaf56c31d818142fa75d2c82ee1d4663f67fd08",
      "parents": [
        "b86a6ea41dadae6ee1915cdb9406c51193e97555"
      ],
      "author": {
        "name": "Jack Palevich",
        "email": "jackpal@google.com",
        "time": "Thu Apr 21 15:46:27 2011 -0700"
      },
      "committer": {
        "name": "Jack Palevich",
        "email": "jackpal@google.com",
        "time": "Thu Apr 21 15:46:27 2011 -0700"
      },
      "message": "Fix typo in Matrix.mPerspective.\n\n(Introduced by a copy-and-paste mistake when factoring out a common\nexpression. D\u0027Oh!)\n\nChange-Id: I5e97dde2d2f4564fc74ba69bfa4a2f9db44c8873\n"
    },
    {
      "commit": "d793299e875a97dc73e04e3beb2a2865563dccdb",
      "tree": "e8cdc375a5debec366cb3a6138226c1ab5ed4fe3",
      "parents": [
        "bf96c356c02c430153c281fb81dc1a00f7ad0b43"
      ],
      "author": {
        "name": "Jack Palevich",
        "email": "jackpal@google.com",
        "time": "Thu Apr 21 14:52:37 2011 -0700"
      },
      "committer": {
        "name": "Jack Palevich",
        "email": "jackpal@google.com",
        "time": "Thu Apr 21 14:52:37 2011 -0700"
      },
      "message": "Add utility method Matrix.perspectiveM\n\nChange-Id: Ic9d5e5d967bbc08acc524c5092ce61a1cdbfd360\n"
    },
    {
      "commit": "5036a05aca326dd63a6f4c837e4a71e48f143970",
      "tree": "3f40332dab6c10f91d16cfebba43672f9ff7fb95",
      "parents": [
        "a4643490bb56c83a8236fdfe0e538b24c98dc591"
      ],
      "author": {
        "name": "David Li",
        "email": "davidxli@google.com",
        "time": "Thu Apr 21 14:15:10 2011 -0700"
      },
      "committer": {
        "name": "David Li",
        "email": "davidxli@google.com",
        "time": "Thu Apr 21 14:15:10 2011 -0700"
      },
      "message": "GLES2Dbg: noop - format \u0026 comment\n\nChange-Id: Ibb36508181d4322e236b6595b28d253f282c36d7\nSigned-off-by: David Li \u003cdavidxli@google.com\u003e\n"
    },
    {
      "commit": "31918ccae9341bca169c58035482c68de2d27e22",
      "tree": "d9ac7ed4b770f19fcc5f610d74ce32c6ae16cf17",
      "parents": [
        "e9f619f03b0e98d1ff7ff0d7333fb502ec5bc54b"
      ],
      "author": {
        "name": "David Li",
        "email": "davidxli@google.com",
        "time": "Fri Apr 15 15:35:10 2011 -0700"
      },
      "committer": {
        "name": "David Li",
        "email": "davidxli@google.com",
        "time": "Tue Apr 19 14:44:51 2011 -0700"
      },
      "message": "GLES2Dbg: send some GL implementation constants to client\n\nChange-Id: Ic6c51c09b1c3d2e1e1a28c6ed552714c3243827c\nSigned-off-by: David Li \u003cdavidxli@google.com\u003e\n"
    },
    {
      "commit": "e9f619f03b0e98d1ff7ff0d7333fb502ec5bc54b",
      "tree": "1729a8801d118f82a1f186c5a722b81daa5f7536",
      "parents": [
        "8f0484194aeb60a4ebaa972eef84493def160594"
      ],
      "author": {
        "name": "David Li",
        "email": "davidxli@google.com",
        "time": "Thu Apr 14 11:20:22 2011 -0700"
      },
      "committer": {
        "name": "David Li",
        "email": "davidxli@google.com",
        "time": "Tue Apr 19 14:42:14 2011 -0700"
      },
      "message": "GLES2Dbg: initial tests\n\nChange-Id: Ibf07eff68d39267fd5c9bec2870f59a5ae2f51e3\n"
    },
    {
      "commit": "e7180e8644caf96a166ed71dd8da877fc8b72047",
      "tree": "e9650a79f7fcebfb7904802614ef6e8ee15153c7",
      "parents": [
        "27f130a292683278b721399341d7c4e36009ec8b"
      ],
      "author": {
        "name": "David Li",
        "email": "davidxli@google.com",
        "time": "Fri Apr 08 18:45:45 2011 -0700"
      },
      "committer": {
        "name": "David Li",
        "email": "davidxli@google.com",
        "time": "Tue Apr 12 15:56:10 2011 -0700"
      },
      "message": "GLES2Dbg: added CaptureDraw and CaptureSwap options\n\nCaptureDraw specifies how many glDrawArrays/Elements to glReadPixel\nCaptureSwap similarly applies to eglSwapBuffers\n\nChange-Id: Ie7a7e3392b4ecdc0659dcee04f4bab97c35267dc\nSigned-off-by: David Li \u003cdavidxli@google.com\u003e\n"
    },
    {
      "commit": "27f130a292683278b721399341d7c4e36009ec8b",
      "tree": "fd415a7046c99c8fc698fdd22c556783d9f03c7e",
      "parents": [
        "e2ad4d0e3748c2f0180d24d1b3468aac79adac3a"
      ],
      "author": {
        "name": "David Li",
        "email": "davidxli@google.com",
        "time": "Fri Apr 08 18:43:16 2011 -0700"
      },
      "committer": {
        "name": "David Li",
        "email": "davidxli@google.com",
        "time": "Tue Apr 12 15:56:10 2011 -0700"
      },
      "message": "GLES2Dbg: use dump.gles2dbg file when fails to create socket\n\nsetprop debug.egl.debug_forceUseFile 1: always use file\nsetprop debug.egl.debug_maxFileSize \u003cint MB\u003e: exit when reached\nsetprop debug.egl.debug_filePath \u003cpath\u003e: may need to make the file\n writable first.\nsetprop debug.egl.debug_port \u003cunsigned short\u003e\nsetprop debug.egl.debug_proc \u003cproc cmdline\u003e: to match debuggee process\n\nChange-Id: I34ca1f3092f3abf17e2ded9d1689d0cdef6e07e8\nSigned-off-by: David Li \u003cdavidxli@google.com\u003e\n"
    },
    {
      "commit": "e2ad4d0e3748c2f0180d24d1b3468aac79adac3a",
      "tree": "bfa8647edf051ce768ee9c855d7d488924fc1377",
      "parents": [
        "ce30eb8a90a1ac458e15e773057a8a73b0918ae6"
      ],
      "author": {
        "name": "David Li",
        "email": "davidxli@google.com",
        "time": "Fri Apr 08 18:41:00 2011 -0700"
      },
      "committer": {
        "name": "David Li",
        "email": "davidxli@google.com",
        "time": "Tue Apr 12 15:56:10 2011 -0700"
      },
      "message": "GLES2Dbg: add EXTEND_AFTER_CALL_Debug_* macro and improve protocol\n\nTo allow auto generate of Debug_glReadPixels function.\nAlso added AfterGeneratedCall messag type, and client override\n of expectResponse for improving protocol.\nAlso implemented callers for client to get shader/program iv \u0026 infolog\n\nChange-Id: I8426de0be4b7ffcb8b2b4f063ad85d19a9d2d72e\nSigned-off-by: David Li \u003cdavidxli@google.com\u003e\n"
    }
  ],
  "next": "ce30eb8a90a1ac458e15e773057a8a73b0918ae6"
}
