)]}'
{
  "log": [
    {
      "commit": "16928bfeca8858a0acae6942fc68c14a040b92ff",
      "tree": "6c262da307c7417170f4d547401cdc475bbd3974",
      "parents": [
        "7f79a2bd5c92bc626890dc16ffb8cd2de934e5fb"
      ],
      "author": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Thu Oct 18 16:16:10 2012 -0700"
      },
      "committer": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Thu Oct 18 16:16:10 2012 -0700"
      },
      "message": "Add runtime debugging capabilities to OpenGL\n\nThe shell property debug.egl.trace can now be set to:\n\n0\n  disables tracing\n1\n  logs all GL calls\nerror\n  checks glGetError after every GL call, logs a stack trace on error\nsystrace\n  logs each GL call to systrace\n\nChange-Id: I34a2a2d4e19c373fd9eaa1b0cd93e67c87378996\n"
    },
    {
      "commit": "be3c3e4ecad501eecfe1f7a424a792f0f7f3f307",
      "tree": "6ac17096a83ad45f79e7a15352f263dcde61bebf",
      "parents": [
        "1cffc80f978c55f09203d9d9a905775b951ba59a"
      ],
      "author": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Mon Oct 15 19:25:18 2012 -0700"
      },
      "committer": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Mon Oct 15 19:25:18 2012 -0700"
      },
      "message": "Update comments to reflect what the code actually does\n\nChange-Id: I2613aa32c29eddc52a00090656c1bd11f9f5732b\n"
    },
    {
      "commit": "1cffc80f978c55f09203d9d9a905775b951ba59a",
      "tree": "215541a860e687c43b30f75ab98a34a175535ebb",
      "parents": [
        "9bdaa60b809b223d14619d1f13afdd38acb1738d"
      ],
      "author": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Mon Oct 15 18:13:05 2012 -0700"
      },
      "committer": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Mon Oct 15 18:13:05 2012 -0700"
      },
      "message": "Add new debug option to force 4x MSAA in OpenGL ES 2.0 apps\n\nChange-Id: I53ac91a9ce07b5dd5f2ee0e3cc5b65b6402f9229\n"
    },
    {
      "commit": "8d5d2019805df1f27cbec07eeca47dd5ab453dad",
      "tree": "87d01369ba51f74d18ef9c6606ad3da593549143",
      "parents": [
        "0acb00c2d780b60ed3d71be256460375dd8715b4"
      ],
      "author": {
        "name": "Chet Haase",
        "email": "chet@google.com",
        "time": "Mon Oct 08 13:19:08 2012 -0700"
      },
      "committer": {
        "name": "Chet Haase",
        "email": "chet@google.com",
        "time": "Wed Oct 10 13:10:40 2012 -0700"
      },
      "message": "Revert \"Add GL Error logs (temporary)\"\n\nThis reverts commit 2da2c15068327a4fdad411f638905abcb2209d8a.\n"
    },
    {
      "commit": "2da2c15068327a4fdad411f638905abcb2209d8a",
      "tree": "7e3bbeec2ddda9f40c6a296fbd7ff27952e07289",
      "parents": [
        "35387922bd3213ea4c376c7dcfb109da67a6a33e"
      ],
      "author": {
        "name": "Chet Haase",
        "email": "chet@google.com",
        "time": "Thu Oct 04 17:15:59 2012 -0700"
      },
      "committer": {
        "name": "Chet Haase",
        "email": "chet@google.com",
        "time": "Thu Oct 04 17:15:59 2012 -0700"
      },
      "message": "Add GL Error logs (temporary)\n\nAdding logs to tell which specific methods throw OpenGL errors.\n\nChange-Id: I1d73c7566ed1ea6610392020411762c6255a0ede\n"
    },
    {
      "commit": "e8b0fac720b249639fa1cf2f3a06f7d88d207b76",
      "tree": "6621b709a53b285d2786ad262f28a99fbdf5a7e1",
      "parents": [
        "cb094a783f14daae3378ac8aa7dc509980f037b2"
      ],
      "author": {
        "name": "Chet Haase",
        "email": "chet@google.com",
        "time": "Fri Sep 28 11:56:48 2012 -0700"
      },
      "committer": {
        "name": "Chet Haase",
        "email": "chet@google.com",
        "time": "Fri Sep 28 11:56:48 2012 -0700"
      },
      "message": "Re-enable FAST_TLS in gl2 code\n\nTemporarily changed USE_FAST_TLS_KEY ifdef during debugging. Changing it\nback now.\n\nChange-Id: I7c2fcf7265b3d545e31ff7683bd7614100fad3e5\n"
    },
    {
      "commit": "f12fe43e8c280923fde743f22cea238e48c929f1",
      "tree": "5d61f71d3bb63f74d4213599dda5eab3a386a34e",
      "parents": [
        "1e83690c6030b33c7776fa65cb57132d5e2d0b40"
      ],
      "author": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Thu Sep 27 15:47:10 2012 -0700"
      },
      "committer": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Thu Sep 27 15:47:10 2012 -0700"
      },
      "message": "New compile-time flags to make debugging easier for us poor souls\nBug #7195815\n\nChange-Id: I23e7ac991891b9586cb8ed20b1305c8b1b3e2b43\n"
    },
    {
      "commit": "455e3601498096d1daa0cf0ec7c23abb28b39af3",
      "tree": "f0f745daff1bcaf242058d492e6787702ffed3aa",
      "parents": [
        "a8026d21f3f2f09e3416cbd33c277fbd15d8cf4e"
      ],
      "author": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Wed Sep 26 17:19:48 2012 -0700"
      },
      "committer": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Wed Sep 26 17:37:53 2012 -0700"
      },
      "message": "assert -eng builds when calling a GL function without a context\n\nBug: 7241626\n\nChange-Id: I0f1f9361e75e9186af8cff8d98a7d2224b266765\n"
    },
    {
      "commit": "2f45d7464a55d7a91da6fcd6f8cf1b11e395d029",
      "tree": "f9eabec7e9aca9cd9b75d5e00f95b60745871f2e",
      "parents": [
        "363847d498bffe0e2d8e7b8aba693bb402513413",
        "3ff48e5e69955b37292446c0f2ac98e8238bdaca"
      ],
      "author": {
        "name": "Jamie Gennis",
        "email": "jgennis@google.com",
        "time": "Mon Sep 24 18:21:13 2012 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Sep 24 18:21:14 2012 -0700"
      },
      "message": "Merge \"EGL: add the EGL_ANDROID_framebuffer_target enum\" into jb-mr1-dev"
    },
    {
      "commit": "363847d498bffe0e2d8e7b8aba693bb402513413",
      "tree": "1e9beca2b5f1d98af94c42c756f833168404785c",
      "parents": [
        "500407a2c07ced40c36e7356574a47bcec9c2fd9",
        "09b11432b64d368dee7be69480ab54256058376a"
      ],
      "author": {
        "name": "Jamie Gennis",
        "email": "jgennis@google.com",
        "time": "Mon Sep 24 18:20:51 2012 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Sep 24 18:20:51 2012 -0700"
      },
      "message": "Merge \"EGL: expose the EXT_create_context_robustness ext\" into jb-mr1-dev"
    },
    {
      "commit": "500407a2c07ced40c36e7356574a47bcec9c2fd9",
      "tree": "f36491ed83e510b90faac20da2983823cca1d548",
      "parents": [
        "ff5c4aa676d157f4911ef06e328e687725e8b9f9"
      ],
      "author": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Mon Sep 24 17:57:48 2012 -0700"
      },
      "committer": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Mon Sep 24 17:57:48 2012 -0700"
      },
      "message": "log an error when eglCreateContext() fails in an inconsistant way\n\nthis will help debugging bug: 7216919\n\nChange-Id: I54ac65f20c5ed55cc93a5cbc5350fadfb0fcb804\n"
    },
    {
      "commit": "3ff48e5e69955b37292446c0f2ac98e8238bdaca",
      "tree": "f90e45b7237e2eeba299db730d6261c02c09b0fe",
      "parents": [
        "09b11432b64d368dee7be69480ab54256058376a"
      ],
      "author": {
        "name": "Jamie Gennis",
        "email": "jgennis@google.com",
        "time": "Mon Sep 24 13:34:18 2012 -0700"
      },
      "committer": {
        "name": "Jamie Gennis",
        "email": "jgennis@google.com",
        "time": "Mon Sep 24 13:45:33 2012 -0700"
      },
      "message": "EGL: add the EGL_ANDROID_framebuffer_target enum\n\nChange-Id: Id8b1b114e2a7a88956b857c63a0429e9b33fdb5c\n"
    },
    {
      "commit": "09b11432b64d368dee7be69480ab54256058376a",
      "tree": "a9a9bd5e13ae06fe8f769366011b6692b30acbcb",
      "parents": [
        "ff5c4aa676d157f4911ef06e328e687725e8b9f9"
      ],
      "author": {
        "name": "Jamie Gennis",
        "email": "jgennis@google.com",
        "time": "Thu Sep 20 15:47:44 2012 -0700"
      },
      "committer": {
        "name": "Jamie Gennis",
        "email": "jgennis@google.com",
        "time": "Mon Sep 24 13:45:32 2012 -0700"
      },
      "message": "EGL: expose the EXT_create_context_robustness ext\n\nChange-Id: I1db43e96aa5e9e91a6176a4a3e5aa9d1f3ee4a7e\n"
    },
    {
      "commit": "aaf421c465794c02f86ee2929f330a8b7206199b",
      "tree": "3c68cd650cf6bc03f135fe4620a6f03e56b53b42",
      "parents": [
        "38e623bc5c2d7224ebd5b82efaea401bc8e5367a"
      ],
      "author": {
        "name": "Jamie Gennis",
        "email": "jgennis@google.com",
        "time": "Thu Sep 20 13:55:24 2012 -0700"
      },
      "committer": {
        "name": "Jamie Gennis",
        "email": "jgennis@google.com",
        "time": "Fri Sep 21 12:15:22 2012 -0700"
      },
      "message": "Add a spec for EGL_ANDROID_framebuffer_target.\n\nThis change adds a new extension for EGL implementations to indicate the\nEGLConfigs that support use as a HWComposer framebuffer target layer.\n\nChange-Id: Ia7c8fbe8da09d57b4ec8bf1d9ddb67ca21aa2885\n"
    },
    {
      "commit": "2a60824abcbfc2c5b936d3711d6d32318c489e88",
      "tree": "a3e1a1872008f6f9b6c79d3563bfa35f4e9ae59d",
      "parents": [
        "3a24e8f160c7794f44ef9fd5c70a61ff62412717",
        "516efc1bea1c05492c5d4636a589cfc686661842"
      ],
      "author": {
        "name": "Mathias Agopian",
        "email": "pixelflinger@gmail.com",
        "time": "Wed Sep 19 22:05:14 2012 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Wed Sep 19 22:05:14 2012 -0700"
      },
      "message": "am 516efc1b: am 8a2b5423: Merge \"libagl: Transform the vertex if using eye space lighting with point lights\"\n\n* commit \u0027516efc1bea1c05492c5d4636a589cfc686661842\u0027:\n  libagl: Transform the vertex if using eye space lighting with point lights\n"
    },
    {
      "commit": "8a2b54235a45f92827b13723380065d1ce308236",
      "tree": "92366a36f7b16903e2455ca471a1ecec22f245c6",
      "parents": [
        "09a22fc29d588b173e5c0dd2002ac2c44d45b7c6",
        "d5b1cda91ea5826e0fe8fa20d7daad57dc9ffd8b"
      ],
      "author": {
        "name": "Mathias Agopian",
        "email": "pixelflinger@gmail.com",
        "time": "Wed Sep 19 19:31:52 2012 -0700"
      },
      "committer": {
        "name": "android code review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Sep 19 19:31:53 2012 -0700"
      },
      "message": "Merge \"libagl: Transform the vertex if using eye space lighting with point lights\""
    },
    {
      "commit": "a08cf6e3a4ee045608bc8991a779dedb4f281a3f",
      "tree": "cc44b03dff774e99d6afdcadc6131e4e392ebb36",
      "parents": [
        "6e220a6ce6971555b883f4852c6e5d4c7a617815"
      ],
      "author": {
        "name": "Jamie Gennis",
        "email": "jgennis@google.com",
        "time": "Sun Sep 16 14:02:20 2012 -0700"
      },
      "committer": {
        "name": "Jamie Gennis",
        "email": "jgennis@google.com",
        "time": "Mon Sep 17 17:23:29 2012 -0700"
      },
      "message": "EGL: fix an extension string bug\n\nThis change fixes a bug where initializing EGL multiple times (eglTerminate\nfollowed by eglInitialize) would cause extensions to show up in the extension\nstring multiple times.\n\nChange-Id: I707a3da62ed30ef13835087167f84a08bc6addd7\n"
    },
    {
      "commit": "f478e6d18cb9eba1ded1f124ce16a899d271689e",
      "tree": "a054145101f2e3ddcfb59dff058284b4d9697467",
      "parents": [
        "a0931d657551f5098f805fbdeeed2b060bbe6171"
      ],
      "author": {
        "name": "Jamie Gennis",
        "email": "jgennis@google.com",
        "time": "Wed Sep 12 11:55:16 2012 -0700"
      },
      "committer": {
        "name": "Jamie Gennis",
        "email": "jgennis@google.com",
        "time": "Wed Sep 12 11:59:24 2012 -0700"
      },
      "message": "EGL: make max cache key size BoardConfig-able\n\nThis change makes the maximum EGL blob cache key size configurable via a\nBoardConfig.\n\nChange-Id: Ic669cd25fc743662bd4f13aab62354fc3d54560c\n"
    },
    {
      "commit": "010dd4fb892aecf71e4631c22148fe57ef5b3958",
      "tree": "430b7f1a682b32e7b1d2e86c03779d182ef22cd9",
      "parents": [
        "605f90dc867a18f1ea06203ffa70916f70820f92"
      ],
      "author": {
        "name": "Jamie Gennis",
        "email": "jgennis@google.com",
        "time": "Sun Sep 09 17:46:17 2012 -0700"
      },
      "committer": {
        "name": "Jamie Gennis",
        "email": "jgennis@google.com",
        "time": "Sun Sep 09 17:52:18 2012 -0700"
      },
      "message": "EGL: Add the EGL_ANDROID_wait_sync extension\n\nChange-Id: Ie9a78e07fcaf27c5c13797141ad3c692217607fb\n"
    },
    {
      "commit": "331841b96b92646c93c87627c03f77b892f711cd",
      "tree": "2fe3a05c800a44e2f6fd7d94d380fe23ee58b7d8",
      "parents": [
        "8893d5bba1191b0dc9db1432868d8dc64de606ad"
      ],
      "author": {
        "name": "Jamie Gennis",
        "email": "jgennis@google.com",
        "time": "Thu Sep 06 14:52:00 2012 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Sep 06 16:11:37 2012 -0700"
      },
      "message": "EGL: add the native_fence_sync extension\n\nThis change adds support for the EGL_ANDROID_native_fence_sync extension to the\nAndroid EGL layer.  It also fixes a couple minor issues with the extension spec.\n\nChange-Id: Ic8829d21f37b701f33aa9c72c3d25e88e03fa3cd\n"
    },
    {
      "commit": "8893d5bba1191b0dc9db1432868d8dc64de606ad",
      "tree": "a15d8955c5b3e1cf08118f5ca175f70066818a85",
      "parents": [
        "55882dea1b1b305f15192b96ff7814f18babb212"
      ],
      "author": {
        "name": "Jamie Gennis",
        "email": "jgennis@google.com",
        "time": "Wed Sep 05 19:45:44 2012 -0700"
      },
      "committer": {
        "name": "Jamie Gennis",
        "email": "jgennis@google.com",
        "time": "Wed Sep 05 19:46:34 2012 -0700"
      },
      "message": "EGL_ANDROID_native_fence_sync: fix the version\n\nChange-Id: Ib43b8fec8f37bb847d7bcdbf7607fd56f19a0563\n"
    },
    {
      "commit": "a1d49ce1f11d18f0e1592c9567e911e1728fc4a4",
      "tree": "ebaf36d6f5a839185bcde8a25a7ab3e77da4e2ff",
      "parents": [
        "da8d0a5c0cf9d41915d3b106cad4aaec3e767c11"
      ],
      "author": {
        "name": "Jamie Gennis",
        "email": "jgennis@google.com",
        "time": "Tue Sep 04 19:49:51 2012 -0700"
      },
      "committer": {
        "name": "Jamie Gennis",
        "email": "jgennis@google.com",
        "time": "Tue Sep 04 19:49:51 2012 -0700"
      },
      "message": "EGL_ANDROID_fence_sync: make it more generic\n\nThis change updates the extension spec to refer to generic \"native fence sync\nobjects\" rather than \"Android fence sync objects.\"\n\nChange-Id: I15a79f08571586431845b54c58c8420b652f40ef\n"
    },
    {
      "commit": "0adc8f260023ec25c31ff4ceadde047528cb64ab",
      "tree": "f9fc4e4f0a6575c4e99ab2c2c64636f9ab996eab",
      "parents": [
        "2c7eb92b6394427bfe81962668d46194959bc722",
        "6e820eec21917f8e25c40dbc8b972468535af0e8"
      ],
      "author": {
        "name": "Jean-Baptiste Queru",
        "email": "jbq@google.com",
        "time": "Mon Aug 20 09:42:32 2012 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Mon Aug 20 09:42:32 2012 -0700"
      },
      "message": "am 6e820eec: am 6f89ebde: Merge \"EGL: do not use sparse files for shader\"\n\n* commit \u00276e820eec21917f8e25c40dbc8b972468535af0e8\u0027:\n  EGL: do not use sparse files for shader\n"
    },
    {
      "commit": "ad9693f4f0586d18a82fdbb70c6a89e43d662ff1",
      "tree": "0a17d55a2b5f72300c2fa06a562ec97768b75bc3",
      "parents": [
        "f0083bf5288e0d430b0dc5cbc4b4852bce2ff1af"
      ],
      "author": {
        "name": "Siva Velusamy",
        "email": "vsiva@google.com",
        "time": "Thu Aug 16 14:41:20 2012 -0700"
      },
      "committer": {
        "name": "Siva Velusamy",
        "email": "vsiva@google.com",
        "time": "Thu Aug 16 14:41:20 2012 -0700"
      },
      "message": "gltrace: flush trace buffer on createContext \u0026 makeCurrent\n\nCertain apps (e.g. chrome) seem to create contexts which are unused\nfor long periods of time. If tracing is stopped before those contexts\nare used, then the debugger never gets to know that these contexts\nwere created. Flushing the trace after these calls ensures that\nthe debugger knows about all created/used contexts.\n\nChange-Id: I01baa11aa56ac89eddce3c2851e4bf01076984d1\n"
    },
    {
      "commit": "7e5099a9ece6a3ed7edb1b5bf60a43422428326c",
      "tree": "f16bfa38dd0f88185433f9aeed0ac25c450babad",
      "parents": [
        "e57f292595bec48f65c8088b00ff6beea01217e9"
      ],
      "author": {
        "name": "Jesse Hall",
        "email": "jessehall@google.com",
        "time": "Wed Aug 01 17:10:25 2012 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Aug 13 12:13:05 2012 -0700"
      },
      "message": "Add compile-time option to systrace GL-ES calls\n\nChange-Id: Ibec103bbf159626ad9745d0e071192ad424bc0e9\n"
    },
    {
      "commit": "a610da900cf67f0cbd323c60a0dd55827df8313a",
      "tree": "0765f42835a4c86a08cd02e7bda6a2fa9530ac53",
      "parents": [
        "b685c542836b93c99cd85053e07696406ea37adb",
        "203a3357c7042680304e3821b1f6ed1aea8c17cd"
      ],
      "author": {
        "name": "Keun young Park",
        "email": "keunyoung@google.com",
        "time": "Wed Aug 08 12:25:15 2012 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Aug 08 12:25:15 2012 -0700"
      },
      "message": "Merge \"enable java/jni build in PDK if supported\" into jb-mr1-dev"
    },
    {
      "commit": "203a3357c7042680304e3821b1f6ed1aea8c17cd",
      "tree": "fda1ebcdecdf8b3fe44c3de5f801fa0bb9bd326e",
      "parents": [
        "53f10b7b13363e6d017985ead704494fe79c9e09"
      ],
      "author": {
        "name": "Keun young Park",
        "email": "keunyoung@google.com",
        "time": "Tue Aug 07 17:09:19 2012 -0700"
      },
      "committer": {
        "name": "Keun young Park",
        "email": "keunyoung@google.com",
        "time": "Tue Aug 07 17:09:19 2012 -0700"
      },
      "message": "enable java/jni build in PDK if supported\n\n- testFramerate requires platform java API\n  while all other tests only need SDK support\n\nChange-Id: Iaefe23c41b3ace87522b5deefd6db2f5d80ed872\n"
    },
    {
      "commit": "b685c542836b93c99cd85053e07696406ea37adb",
      "tree": "9907e7f794f0d96ae2a43894a9efab73a695c104",
      "parents": [
        "14bd369e4b711bfb267279c2161358542ed75b29"
      ],
      "author": {
        "name": "Jesse Hall",
        "email": "jessehall@google.com",
        "time": "Tue Jul 31 14:32:56 2012 -0700"
      },
      "committer": {
        "name": "Jamie Gennis",
        "email": "jgennis@google.com",
        "time": "Tue Aug 07 12:16:36 2012 -0700"
      },
      "message": "Changes to support multi-display HWC\n\nChange-Id: I07efff54f2980dcb013935747b03e099b8f1181b\n"
    },
    {
      "commit": "bc0d7dc8f5f43749ff6e7f0b42c760f5ee9f6d14",
      "tree": "235abd54f4c3c6ed2c6b59bbade55a6459f13ed8",
      "parents": [
        "bddd724b178b1263c16e41b564165fcd0e93ff83"
      ],
      "author": {
        "name": "Jesse Hall",
        "email": "jessehall@google.com",
        "time": "Tue Jul 31 12:16:31 2012 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Jul 31 12:16:31 2012 -0700"
      },
      "message": "Revert \"Minimal changes to support multi-display HWC\"\n\nThis reverts commit bddd724b178b1263c16e41b564165fcd0e93ff83\n\nChange-Id: Ib7db20b5b3de4779b6e173473a33976ae398abd4\n"
    },
    {
      "commit": "bddd724b178b1263c16e41b564165fcd0e93ff83",
      "tree": "e2cc6a8409dc015a13d4cad10c9b645dd6292ee9",
      "parents": [
        "c666cae2d5995097ec49a87e375e2afdd92802b7"
      ],
      "author": {
        "name": "Jesse Hall",
        "email": "jessehall@google.com",
        "time": "Wed Jul 25 22:15:40 2012 -0700"
      },
      "committer": {
        "name": "Jesse Hall",
        "email": "jessehall@google.com",
        "time": "Fri Jul 27 10:28:36 2012 -0700"
      },
      "message": "Minimal changes to support multi-display HWC\n\nChange-Id: I5efea78ac381c3e3118e6e92b508f336233ac319\n"
    },
    {
      "commit": "36b285eac98cccdb9394c14ae2e6ace9f3d90966",
      "tree": "f1efc4591f8419259a528806738ad01c6f9f3e57",
      "parents": [
        "493c4feb753760408a33a5bef29c0f9c0ea4fc3b"
      ],
      "author": {
        "name": "Thomas Tafertshofer",
        "email": "tafertth@google.com",
        "time": "Mon Jul 23 16:52:32 2012 -0700"
      },
      "committer": {
        "name": "Thomas Tafertshofer",
        "email": "tafertth@google.com",
        "time": "Mon Jul 23 17:06:52 2012 -0700"
      },
      "message": "Fixed bug in opengl es binding generation\n\nThis fixes the glgen code generation for methods\nwhich have a buffer arg that can be NULL.\n\nBug: 6845189\nChange-Id: I5fb745b806601e5665f97bfd15fd865cd9c241ed\n"
    },
    {
      "commit": "493c4feb753760408a33a5bef29c0f9c0ea4fc3b",
      "tree": "e219d505de9cd8509cabe6bd9c48412592aa51a3",
      "parents": [
        "9a82fe645d2c1358842f849f1a14250d1227bdea",
        "55b4e553c8e6021cb65a9ac99857bfbf4d4f335d"
      ],
      "author": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Mon Jul 23 16:25:43 2012 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Jul 23 16:25:44 2012 -0700"
      },
      "message": "Merge \"glgen stubs to fix bad methods in gles20 bindings\""
    },
    {
      "commit": "9a82fe645d2c1358842f849f1a14250d1227bdea",
      "tree": "db4a3553210d792e855ef638ddb2cffeefa25ba6",
      "parents": [
        "6ee93c0d36dff1339eb2428be2d65441398e6e5f",
        "648654d741b445eab5b80b275d12ee0623afbcf3"
      ],
      "author": {
        "name": "Jamie Gennis",
        "email": "jgennis@google.com",
        "time": "Mon Jul 23 16:21:58 2012 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Jul 23 16:21:58 2012 -0700"
      },
      "message": "Merge \"Update the EGL_ANDROID_fence_sync spec.\""
    },
    {
      "commit": "648654d741b445eab5b80b275d12ee0623afbcf3",
      "tree": "7c1d39c20fc12585c8c9733b2d67f45574356fb0",
      "parents": [
        "4bb0164f8ac26a71113f44b4d482cf8167b5b5ee"
      ],
      "author": {
        "name": "Jamie Gennis",
        "email": "jgennis@google.com",
        "time": "Fri Jul 20 11:55:07 2012 -0700"
      },
      "committer": {
        "name": "Jamie Gennis",
        "email": "jgennis@google.com",
        "time": "Mon Jul 23 14:34:10 2012 -0700"
      },
      "message": "Update the EGL_ANDROID_fence_sync spec.\n\nChange-Id: I26589e51c2023aed4da8a25a098b01804200ddc2\n"
    },
    {
      "commit": "a30cc7db8dba9f028333a8e1865006bf6d4f410d",
      "tree": "5a11bc76c1efc35273549219aa7bd765490f631a",
      "parents": [
        "db1597a98958b78dc0d8eced19ae1406382b70d6"
      ],
      "author": {
        "name": "vijay gupta",
        "email": "vijayg@nvidia.com",
        "time": "Wed Jun 27 16:14:42 2012 -0700"
      },
      "committer": {
        "name": "Kirill Artamonov",
        "email": "kartamonov@nvidia.com",
        "time": "Mon Jul 23 14:26:57 2012 +0300"
      },
      "message": "EGL: do not use sparse files for shader\n\n- Process is killed by system with SIGBUS signal if it writes\n  data to mapped sparse file on full filesystem.\n- Allocate space using write() function instead of ftruncate()\n  to avoid creation of sparse files on full filesystem.\n  Catch write() errors to handle out-of-space case during allocation.\n\nBug: http://code.google.com/p/android/issues/detail?id\u003d35376\nChange-Id: Ifc366454f34e71a43a0973eda4f591a920ea3a14\nSigned-off-by: Kirill Artamonov \u003ckartamonov@nvidia.com\u003e\n"
    },
    {
      "commit": "55b4e553c8e6021cb65a9ac99857bfbf4d4f335d",
      "tree": "69bd3548707c2300c76130ad16f89418a3b550a5",
      "parents": [
        "df5cbd76224ea1facb7cfb499f4d522e55753774"
      ],
      "author": {
        "name": "Thomas Tafertshofer",
        "email": "tafertth@google.com",
        "time": "Thu Jul 19 16:50:08 2012 -0700"
      },
      "committer": {
        "name": "Thomas Tafertshofer",
        "email": "tafertth@google.com",
        "time": "Thu Jul 19 16:58:40 2012 -0700"
      },
      "message": "glgen stubs to fix bad methods in gles20 bindings\n\nthis adds correct versions of the broken GLES20 methods\nglGetShaderSource, glGetActiveAttrib and glGetActiveUniform.\nthe old broken methods are still there and need to be @hide later.\n\nBug: 6006380\nChange-Id: Ide74242ada54b85459b459ae4f20cd26a23c7610\n"
    },
    {
      "commit": "df5cbd76224ea1facb7cfb499f4d522e55753774",
      "tree": "9bcb9c344332a9139e3bbb24f19ec40125240677",
      "parents": [
        "fd16f0a2bbb657113e4055e3d40c32c034bfbd73",
        "e58a97b5d77b59fad1572ba3c0572c7434e8e503"
      ],
      "author": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Wed Jul 18 18:31:41 2012 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Jul 18 18:31:41 2012 -0700"
      },
      "message": "Merge \"OpenGL bindings fix for methods with iobuffer args\""
    },
    {
      "commit": "c5ee93e5fe2de4390ee96fb3b14c41f6ca45f5a2",
      "tree": "a335eef8a156500ed6a7d84bd244613368f925be",
      "parents": [
        "2aa3aa680e24521e9874a5da9b017d978142faba"
      ],
      "author": {
        "name": "Thomas Tafertshofer",
        "email": "tafertth@google.com",
        "time": "Thu Jul 12 15:54:56 2012 -0700"
      },
      "committer": {
        "name": "Thomas Tafertshofer",
        "email": "tafertth@google.com",
        "time": "Fri Jul 13 17:43:19 2012 -0700"
      },
      "message": "Remove @hide from the generated EGL 1.4 API\n\nChange-Id: Ia5707533fcf1186ef648b8a4e25987f5e7e7dea3\n"
    },
    {
      "commit": "e58a97b5d77b59fad1572ba3c0572c7434e8e503",
      "tree": "21fd4ea77bc12da8d79a62706d879811fa905e29",
      "parents": [
        "2aa3aa680e24521e9874a5da9b017d978142faba"
      ],
      "author": {
        "name": "Thomas Tafertshofer",
        "email": "tafertth@google.com",
        "time": "Thu Jul 12 11:16:20 2012 -0700"
      },
      "committer": {
        "name": "Thomas Tafertshofer",
        "email": "tafertth@google.com",
        "time": "Thu Jul 12 11:23:02 2012 -0700"
      },
      "message": "OpenGL bindings fix for methods with iobuffer args\n\nThis changes generation of the OpenGL bindings to prevent\ncrashes of methods with more then one nio buffer argument.\n\nBug: 6772416\nChange-Id: I4eff25c2f568dea78a6ffd3e95ff4620ab4b3b7d\n"
    },
    {
      "commit": "d5b1cda91ea5826e0fe8fa20d7daad57dc9ffd8b",
      "tree": "3ba0b98933f39c88c137c3b4b6317de5e6b913b9",
      "parents": [
        "db1597a98958b78dc0d8eced19ae1406382b70d6"
      ],
      "author": {
        "name": "Martin Storsjo",
        "email": "martin@martin.st",
        "time": "Tue Apr 24 00:50:56 2012 +0300"
      },
      "committer": {
        "name": "Martin Storsjo",
        "email": "martin@martin.st",
        "time": "Thu Jul 12 16:59:20 2012 +0300"
      },
      "message": "libagl: Transform the vertex if using eye space lighting with point lights\n\nThis fixes lighting when using point lights, when eye space\nlighting is used (which is the default).\n\nChange-Id: I0cd0d2329893d6b5f8af3b1e595274c2076fc322\n"
    },
    {
      "commit": "66a42db8cbfba902f72f0ace5ac448ef4bfd3951",
      "tree": "5d53f4def4f58232259a22c3629179ffe936f6e2",
      "parents": [
        "3443b333f16cd356d7cc7322810fe6188f58f1d9"
      ],
      "author": {
        "name": "Thomas Tafertshofer",
        "email": "tafertth@google.com",
        "time": "Fri Jun 15 16:22:43 2012 -0700"
      },
      "committer": {
        "name": "Thomas Tafertshofer",
        "email": "tafertth@google.com",
        "time": "Tue Jul 10 15:49:43 2012 -0700"
      },
      "message": "improve glgen tool to support EGL1.4\n\n- added EGL1.4 bindings generation\n- fixed bugs in GLES bindings\n\nBug: 6709865\nChange-Id: I04ac63f652e1968a51eb833f47e00336ea449980\n"
    },
    {
      "commit": "d8e812ce6fe9ae0388e98b08456e1d18b9498239",
      "tree": "49d694305ba98c49997e8d92ece28da939ad13ed",
      "parents": [
        "f25e183a70bd631f75dce51e85b7d568472a0cdb"
      ],
      "author": {
        "name": "Jamie Gennis",
        "email": "jgennis@google.com",
        "time": "Wed Jun 13 16:32:25 2012 -0700"
      },
      "committer": {
        "name": "Jesse Hall",
        "email": "jessehall@google.com",
        "time": "Wed Jun 20 15:48:30 2012 -0700"
      },
      "message": "Update ANativeWindow clients for sync\n\nThis change updates the uses of ANativeWindow to use the new ANW functions that\naccept and return Sync HAL fence file descriptors.\n\nChange-Id: I3ca648b6ac33f7360e86754f924aa072f95242f6\n"
    },
    {
      "commit": "5880cc573823148237eac9ab7bc586b8e4eb7160",
      "tree": "e5e02f74fd18e3c9450de630d9d9b09867db5fc3",
      "parents": [
        "3e8b853d67c737abdb363f9c978e7d83eac4d888"
      ],
      "author": {
        "name": "Jesse Hall",
        "email": "jessehall@google.com",
        "time": "Tue Jun 05 23:40:32 2012 -0700"
      },
      "committer": {
        "name": "Jesse Hall",
        "email": "jessehall@google.com",
        "time": "Thu Jun 14 12:35:32 2012 -0700"
      },
      "message": "Add support for HWC_DEVICE_API_VERSION_1_0\n\nThe acquire and release fences aren\u0027t yet used; this is just support\nfor the new version and temporary backwards compatibility for older\nversions.\n\nChange-Id: Ia5ccc05a97c86f649042b9a35e11042fa0187e84\n"
    },
    {
      "commit": "fe6102f07cc3fa8cfa2283e2c51e6d19f056ee7c",
      "tree": "f2196e8544afc73031fefc7e45777dc4b0b79f9d",
      "parents": [
        "4b3e4ae04577d4fcce0aac40bfba4043c34047f6",
        "fe98127eaaf82686ba750001e2b771abece44e97"
      ],
      "author": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Wed Jun 13 16:27:54 2012 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Jun 13 16:27:54 2012 -0700"
      },
      "message": "Merge \"don\u0027t error out when eglTerminate()ing an already terminated display\""
    },
    {
      "commit": "fe98127eaaf82686ba750001e2b771abece44e97",
      "tree": "4ed9a2dee3e03874322b47af02ad9110c2db6d9b",
      "parents": [
        "04d7eaf138678ef591076ff02b896f93394bcfaf"
      ],
      "author": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Wed Jun 13 15:21:21 2012 -0700"
      },
      "committer": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Wed Jun 13 15:21:21 2012 -0700"
      },
      "message": "don\u0027t error out when eglTerminate()ing an already terminated display\n\nso says the EGL specification, section 3.2\n\nChange-Id: Ice60530f8f6e47b4e14e06d2ab8eba799a7688a6\n"
    },
    {
      "commit": "4b3e4ae04577d4fcce0aac40bfba4043c34047f6",
      "tree": "d774c8ff750753587dd1ec0c9641f821fa44d050",
      "parents": [
        "25f54e22cc031b044e18101aa27193a0016fbda3",
        "1d2eb663ef5cf69aa852045c8a1c1807dfa7039e"
      ],
      "author": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Tue Jun 12 13:15:10 2012 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Tue Jun 12 13:15:10 2012 -0700"
      },
      "message": "am 1d2eb663: am 2d15fcab: Merge \"reduce PB size from 2MB to 512KB\" into jb-dev\n\n* commit \u00271d2eb663ef5cf69aa852045c8a1c1807dfa7039e\u0027:\n  reduce PB size from 2MB to 512KB\n"
    },
    {
      "commit": "3ef9e9671c224af82d2efec1a1e9a275fb9acf44",
      "tree": "83157f70bf94210d8c62b2ac94b2e7f78a5b8f02",
      "parents": [
        "af1cb83516589034aedcbf211f1b66bd80250136"
      ],
      "author": {
        "name": "Siva Velusamy",
        "email": "vsiva@google.com",
        "time": "Mon Jun 11 11:14:23 2012 -0700"
      },
      "committer": {
        "name": "Siva Velusamy",
        "email": "vsiva@google.com",
        "time": "Mon Jun 11 11:16:56 2012 -0700"
      },
      "message": "gltrace: Fixup vertex attrib pointers only for GLES2\n\nChange-Id: Ibf280c2a4372ce6e598e164eef0d72b7c0a6d1c2\n"
    },
    {
      "commit": "d75f84d6410da934d1b1760fdc0d05d4ba1e8f35",
      "tree": "9e28471326267337cac5095c6596323ef262cb0f",
      "parents": [
        "4824d40a35333182c2eb3593511b9bcbecd0a943"
      ],
      "author": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Tue Jun 05 21:44:43 2012 -0700"
      },
      "committer": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Tue Jun 05 21:44:43 2012 -0700"
      },
      "message": "reduce PB size from 2MB to 512KB\n\nthis allows us to enable h/w acceleration on low-end\ndevices while keeping memory usage down.\n\nBug: 6557760\nChange-Id: I8af2de3038dc2579360b8b73aa452cb7a0e506a9\n"
    },
    {
      "commit": "1401ad526c62afafe1747aed94b51c177e593cce",
      "tree": "3f4dd23544a8185ff3bf843b181c0bb91b19eb7e",
      "parents": [
        "24adb709b785ef4073631f3af268dfc84f14c5b2"
      ],
      "author": {
        "name": "Jamie Gennis",
        "email": "jgennis@google.com",
        "time": "Tue May 29 19:14:36 2012 -0700"
      },
      "committer": {
        "name": "Jamie Gennis",
        "email": "jgennis@google.com",
        "time": "Wed May 30 16:34:32 2012 -0700"
      },
      "message": "Add the EGL_ANDROID_fence_sync spec.\n\nChange-Id: I8c26e5caaf8d89a60a09a5308d55e336537b916e\n"
    },
    {
      "commit": "83e7c8c431ec8b578b6f778811837632e3798768",
      "tree": "1ec253df56f8a5b3956e4eaebf9b629249a6cf27",
      "parents": [
        "cc2b1560e87369676a2d13f17bd1ff4021a91819"
      ],
      "author": {
        "name": "Jesse Hall",
        "email": "jessehall@google.com",
        "time": "Tue May 22 10:42:56 2012 -0700"
      },
      "committer": {
        "name": "Jesse Hall",
        "email": "jessehall@google.com",
        "time": "Tue May 22 12:11:41 2012 -0700"
      },
      "message": "Implement the EGL_KHR_fence_sync in libagl\n\nImplementing this in libagl allows us to start using it for\nSurfaceTexture in emulator builds, which is necessary to avoid\ncorruption in the Browser when using the host-accelerated GL path.\n\nBug: 6515813\nChange-Id: Icafba8687cb5d010d8d42b3866b298d2be984fc9\n"
    },
    {
      "commit": "cc2b1560e87369676a2d13f17bd1ff4021a91819",
      "tree": "bd0228ba90f852f36e2292e985e59dc37d383cab",
      "parents": [
        "7e477bfe11f8bb31622353b64e85721df3cf9702"
      ],
      "author": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Mon May 21 14:01:37 2012 -0700"
      },
      "committer": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Mon May 21 14:02:53 2012 -0700"
      },
      "message": "fix EGL_CLIENT_STRING\n\nit should read OpenGL_ES (with an underscore)\n\nBug: 6529643\n\nChange-Id: I7caf07793bffe5a8dcceaff496a222077486fc87\n"
    },
    {
      "commit": "2fdcc81ddfdbdfbbde63bd64e9ac9272b5417553",
      "tree": "030d57575e7602f27b9adb872b305e9c269c3c1e",
      "parents": [
        "dd73996552938ac5165a35f09d389abedcf421ef"
      ],
      "author": {
        "name": "Siva Velusamy",
        "email": "vsiva@google.com",
        "time": "Wed May 16 11:38:03 2012 -0700"
      },
      "committer": {
        "name": "Siva Velusamy",
        "email": "vsiva@google.com",
        "time": "Wed May 16 12:00:24 2012 -0700"
      },
      "message": "gltrace: Allow receiving commands of length \u003e 4\n\nCurrently, gltrace offers very few trace collection options. As a\nresult, these options are encoded in a single integer. The trace\ncontrol task simply receives integers and interprets them as\ncommands.\n\nThis patch changes the control protocol to first receive the\ncommand length followed by the actual command itself. This allows\nfor future flexibility to provide enable other commands.\n\nChange-Id: Id5f56c80a025bbbe7613ab4457e092732e7d9dc9\n"
    },
    {
      "commit": "201f3b2da572eb27b9d4b3131e6d8c3c92a13de8",
      "tree": "63081cff37d3ed3c304ac162faa4c41b23765911",
      "parents": [
        "5c8a608497f12ecea4d6e8f1f286baf57c161ea3"
      ],
      "author": {
        "name": "Jesse Hall",
        "email": "jessehall@google.com",
        "time": "Fri May 04 14:52:40 2012 -0700"
      },
      "committer": {
        "name": "Jesse Hall",
        "email": "jessehall@google.com",
        "time": "Fri May 04 15:21:35 2012 -0700"
      },
      "message": "Disable EGL hibernation due to jank\n\nHibernating EGL takes a long time (\u003e100 ms) and blocks all other\nrendering. During window animations, the outgoing activity begins\nhibernation before the animation stops, causing visible stutter.\nHibernation is still available by setting \u0027BOARD_ALLOW_EGL_HIBERNATION\n:\u003d true\u0027 in the devices BoardConfig.mk\n\nChange-Id: Iab4e00723a1adcd97481e81b2efdc821b3e9712f\n"
    },
    {
      "commit": "c7d767ad57a25eeefbbfe2610396d800f04178ed",
      "tree": "af29bc1ddf124b2b9eae33c7e678acf9eacd6953",
      "parents": [
        "6b8bef64f7ed94a45c1b03f65f4bffb9eba86889"
      ],
      "author": {
        "name": "Siva Velusamy",
        "email": "vsiva@google.com",
        "time": "Thu Apr 26 09:05:35 2012 -0700"
      },
      "committer": {
        "name": "Siva Velusamy",
        "email": "vsiva@google.com",
        "time": "Thu Apr 26 09:07:41 2012 -0700"
      },
      "message": "gldebugger: Allow connections from root user\n\nChange-Id: I26ce670ae93c43bd36843576e824a9d7acea644d\n"
    },
    {
      "commit": "4a8111bc8c7e659164f75dcfe9efcd33582f3669",
      "tree": "abb1301413ade2f136a24bfe80ade6a88306834f",
      "parents": [
        "383190e475d7bdbe90359dbb99721041773a8646",
        "1cbcb98a2528ea0d8ce34dc35513859c7ef957f3"
      ],
      "author": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Thu Apr 19 17:22:47 2012 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Apr 19 17:22:48 2012 -0700"
      },
      "message": "Merge \"Added an EGLTest for eglTerminate\""
    },
    {
      "commit": "a0fef1c8bb22443402fb3aeda7ce70f7d5775b0a",
      "tree": "b066ac923d302a003e58255dc6da584fdd0b1276",
      "parents": [
        "3aecbb0715cb6928e0530ff1e4caa9c0993cc371"
      ],
      "author": {
        "name": "Jesse Hall",
        "email": "jessehall@google.com",
        "time": "Tue Apr 17 12:02:26 2012 -0700"
      },
      "committer": {
        "name": "Jesse Hall",
        "email": "jessehall@google.com",
        "time": "Tue Apr 17 14:52:13 2012 -0700"
      },
      "message": "Fix deadlock when cleaning objects in eglTerminate\n\nWhen eglTerminate() is called with a window surface still exists, a\ndeadlock would occur since egl_display_t::terminate() holds a lock\nwhile destroying the window surface, which calls\nonWindowSurfaceDestroyed() which attempts to take the same lock.\n\nThis change refactors the hibernation code and data into a separate\nobject with its own lock, separate from the egl_display_t lock. This\navoids the deadlock and better encapsulates the hibernation logic.\n\nThe change also fixes a bug discovered incidentally while debugging:\nhibernating after calling eglTerminate() succeeds, but will cause\nawakens from subsequent eglInitialize() to fail. We will no longer\nhibernate a terminated display.\n\nChange-Id: If55e5bb603d4f8953babc439ffc8d8a60af103d9\n"
    },
    {
      "commit": "1cbcb98a2528ea0d8ce34dc35513859c7ef957f3",
      "tree": "d344a1e6b84b831f6802825d3fad76257105bb75",
      "parents": [
        "172a62a224967beee9e35e02a5b2fb2705dd2cc0"
      ],
      "author": {
        "name": "Daniel Lam",
        "email": "dalam@google.com",
        "time": "Mon Apr 16 22:21:02 2012 -0700"
      },
      "committer": {
        "name": "Daniel Lam",
        "email": "dalam@google.com",
        "time": "Mon Apr 16 22:25:13 2012 -0700"
      },
      "message": "Added an EGLTest for eglTerminate\n\nThis tests if eglTerminate can succeed while objects\nare leaked.  Currently the test fails because of a deadlock.\n\nChange-Id: Ibe26edfda28691284d0674e803e8d3114f3ce4c6\n"
    },
    {
      "commit": "258385978c517a47626161b1e644c48bcee28de1",
      "tree": "23832c73a74da659b78104838c3cc1d43bbdc291",
      "parents": [
        "b29e5e8c2682ae145e8c56d9afb061f8da7f854c"
      ],
      "author": {
        "name": "Jesse Hall",
        "email": "jessehall@google.com",
        "time": "Thu Apr 05 15:53:28 2012 -0700"
      },
      "committer": {
        "name": "Jesse Hall",
        "email": "jessehall@google.com",
        "time": "Mon Apr 09 21:36:17 2012 -0700"
      },
      "message": "Hibernate the EGL implementation when idle\n\nIf the EGL implementation supports the EGL_IMG_hibernate_process\nextension, use it to hibernate (and hopefully release memory or other\nresources) when the process isn\u0027t actively using EGL or OpenGL ES. The\nidleness heuristic used in this change is:\n\n(a) Wake up when entering any EGL API call, and remain awake for the\n    duration of the call.\n(b) Do not hibernate when any window surface exists; this means the\n    application is very likely in the foreground.\n(c) Do not hibernate while any context is made current to a thread.\n    The app may be using a client API without the EGL layer knowing,\n    so it is not safe to hibernate.\n(d) Only check these conditions and attempt to hibernate after a\n    window surface is destroyed or a thread\u0027s context is detached. By\n    not attempting to hibernate at the end of every EGL call, we avoid\n    some transient wakeups/hibernate cycles when the app is mostly idle,\n    or is starting to become active but hasn\u0027t created its window\n    surface yet.\n\nOn a Galaxy Nexus, hibernating frees 1567 VM pages from the process.\nBoth hibernating and waking can take anywhere from 30ms to over 100ms\n-- measurements have been very inconsistent.\n\nChange-Id: Ib555f5d9d069aefccca06e8173a89625b5f32d7e\n"
    },
    {
      "commit": "b29e5e8c2682ae145e8c56d9afb061f8da7f854c",
      "tree": "ce680c1c4e5c2fd4b5db979448d64745254a6753",
      "parents": [
        "d5caca1d0d0a57b4a279a51717d97ee146f00ebd"
      ],
      "author": {
        "name": "Jesse Hall",
        "email": "jessehall@google.com",
        "time": "Wed Apr 04 16:53:42 2012 -0700"
      },
      "committer": {
        "name": "Jesse Hall",
        "email": "jessehall@google.com",
        "time": "Mon Apr 09 21:35:17 2012 -0700"
      },
      "message": "Increment/decrement a counter around EGL calls\n\nThis is in preparation for a change that will hibernate the underlying\nEGL when idle. Instead of a bare egl_display_t*, get_display() now\nreturns a egl_display_ptr, which acts like a smart pointer. The\n\"wakecount\" counter managed by the smart pointer isn\u0027t used for\nanything in this change. It will be used to make sure we don\u0027t\nhibernate when any thread is in an EGL call, without having to hold a\nmutex for the duration of the call.\n\nChange-Id: Iee52f3549a51162efc3800e1195d3f76bba2f2ce\n"
    },
    {
      "commit": "28ef8d7911dbfd1bf8256fb43acba894d87fc07a",
      "tree": "121cc2605b5c244eb42f6a9c176fab1876715257",
      "parents": [
        "8cce8a9a75d172e0077960223ac5f2d06df33892"
      ],
      "author": {
        "name": "Jamie Gennis",
        "email": "jgennis@google.com",
        "time": "Thu Apr 05 20:34:54 2012 -0700"
      },
      "committer": {
        "name": "Jamie Gennis",
        "email": "jgennis@google.com",
        "time": "Fri Apr 06 09:23:13 2012 -0700"
      },
      "message": "EGL: add GPU frame completion tracing\n\nThis change adds a debug option to EGL to use an EGLSyncKHR each frame to\ndetermine when the GPU finishes rendering the frame.\n\nChange-Id: I09ce071db904b44f07ca814c586c291c8b59385a\n"
    },
    {
      "commit": "bb6755687192a33cb1c3a3397d44305ffc7e86cd",
      "tree": "9a98371c7257390c3e4dc49e5ac975fb00058052",
      "parents": [
        "1bb69f015c0fda0227e36d7ce39826409c9a0e8d",
        "9f64c2a9e448f2b39369782c77add9c33e2c605d"
      ],
      "author": {
        "name": "Colin Cross",
        "email": "ccross@android.com",
        "time": "Tue Mar 27 10:28:58 2012 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Mar 27 10:28:58 2012 -0700"
      },
      "message": "Merge \"frameworks/native: prevent some opengl tests from building in pdk\""
    },
    {
      "commit": "9f64c2a9e448f2b39369782c77add9c33e2c605d",
      "tree": "425701719697d1632543c3332b46f56f5caab159",
      "parents": [
        "f45fa6b2853cc32385375a0b63ee39ad6a968869"
      ],
      "author": {
        "name": "Colin Cross",
        "email": "ccross@android.com",
        "time": "Mon Mar 26 16:01:43 2012 -0700"
      },
      "committer": {
        "name": "Colin Cross",
        "email": "ccross@android.com",
        "time": "Mon Mar 26 16:01:43 2012 -0700"
      },
      "message": "frameworks/native: prevent some opengl tests from building in pdk\n\nSome of the tests in frameworks/native/opengl/tests depend on java\nor jni, and shouldn\u0027t be in frameworks/native.  Prevent them from\nbuilding in pdk builds for now.\n\nChange-Id: Ie7a012513dd03992ac1f093bd245aeca826c9cb9\n"
    },
    {
      "commit": "7db993a98b9239bd4e384cc4aa128262fe3cf52c",
      "tree": "eaae74ffe09790c10cb331ed5671a4ef73f0a185",
      "parents": [
        "94ff71fd6a4eeb36f02d277a0d2c96230b5c9ee6"
      ],
      "author": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Sun Mar 25 00:49:46 2012 -0700"
      },
      "committer": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Sun Mar 25 00:49:46 2012 -0700"
      },
      "message": "debug.egl.finish can be used to force a glFinish() when eglSwapBuffers() is called\n\nthis debug property is evaludated at eglInitialize() time.\n\nChange-Id: Ie439e4aac87f7fdc6ab2add86183d6d042f3ee8b\n"
    },
    {
      "commit": "b0e76f456afaada43ddb0968bb37145219f90cd3",
      "tree": "fa7b40ae0eed2dc938ee1a4f0f5ca8ecb3ab67c5",
      "parents": [
        "82dd49041004f657680c249ec9abfac668fb41e9"
      ],
      "author": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Fri Mar 23 14:15:44 2012 -0700"
      },
      "committer": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Fri Mar 23 14:15:44 2012 -0700"
      },
      "message": "remove dependency of EGL on ndk header\n\nChange-Id: Ia6e489b5b4f028864bdf54923e81f604710dd8ad\n"
    },
    {
      "commit": "8e2f3858d5a06dae5a543d9428278f59120f7f8c",
      "tree": "f3d1a881d8221279bc23cca533d8972df9c7b7f6",
      "parents": [
        "9eeebe39807e65e29b3bb05e7d0e4094bdb564c8"
      ],
      "author": {
        "name": "Siva Velusamy",
        "email": "vsiva@google.com",
        "time": "Thu Mar 15 16:18:38 2012 -0700"
      },
      "committer": {
        "name": "Siva Velusamy",
        "email": "vsiva@google.com",
        "time": "Thu Mar 15 16:41:35 2012 -0700"
      },
      "message": "gltrace: Only accept connections from the shell.\n\nOnly accept incoming connections from the shell user.\n\nChange-Id: Ibef1a796d794d45f73db59949b39cb1ce68542b4\n"
    },
    {
      "commit": "b13c78f8520ef5a96effdee977bbacb881236c66",
      "tree": "49144874f9976995d25c8568701a11e260c6a94e",
      "parents": [
        "ed43fcec43c16f2b6416c902e05a422c407d8239"
      ],
      "author": {
        "name": "Siva Velusamy",
        "email": "vsiva@google.com",
        "time": "Fri Mar 09 14:51:28 2012 -0800"
      },
      "committer": {
        "name": "Siva Velusamy",
        "email": "vsiva@google.com",
        "time": "Fri Mar 09 16:43:48 2012 -0800"
      },
      "message": "gltrace: Expose a function to set OpenGL trace level.\n\nThis patch adds a function setGlDebugLevel() to libEGL to enable\nGL tracing. This will be used by the Java layer to add an option\nto \"am start\" that can enable tracing for a particular application.\n\nChange-Id: Ie1dbdd550f502df8633553595cb33ee9d9ae44e1\n"
    },
    {
      "commit": "373c2b28692b5454c42ac286aaae8483d6921188",
      "tree": "9362f3d18855a93962c6146f3c2abee6483573f6",
      "parents": [
        "9d0152ed34e47f652110387441017803f69e8244"
      ],
      "author": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Wed Mar 07 19:46:57 2012 -0800"
      },
      "committer": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Wed Mar 07 19:46:57 2012 -0800"
      },
      "message": "fix include path\n\nChange-Id: I84adf53594cd4083a4a8ab475f175abb7414cda5\n"
    },
    {
      "commit": "2178dcf149797a4d20a2d357495f24532d5ab8e0",
      "tree": "1065e84d208c2cdb51f2fb502973dd375a89d00c",
      "parents": [
        "5100c76b469af1de18189ce8847be208a1abdfc8",
        "50129e4ae2777dfbe0738f0f69b17f4d8f9400e2"
      ],
      "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": "622cfadc8f0d294f875151fe1d8985e0553795ea",
      "tree": "74b39f2cdd96c0ef34208e506115b4d377b06150",
      "parents": [
        "06b573e4f9a6600ed41c653f2371ca45779ccaa9"
      ],
      "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": "50129e4ae2777dfbe0738f0f69b17f4d8f9400e2",
      "tree": "b04aa4f302ce337731cbfe44fda1575f8a529fcd",
      "parents": [
        "91fe608f1cdd8928d3e480fa3d408e4c6c0da03b"
      ],
      "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": "1c8e95cf86f2182986385bc1ee85f13f425f3a3a",
      "tree": "04de76fd2673415b21beb07cc5d0e7fd21e5fb88",
      "parents": [
        "8b82aff67c30b436e76804a28d8e6d0dfee6a484"
      ],
      "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": "864d2afbb3b8ffa17b408660624b384b518ef752",
      "tree": "8b80dfd89e28e0eec4b7061be16497e3ae419c55",
      "parents": [
        "662d0298a109af02a769a8f290f54d12d6d91c63"
      ],
      "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": "640579b736a75b29aeca8948a6fdc09307e935da",
      "tree": "284096edd91a43f5dc03e72bc5bee80862e40c9f",
      "parents": [
        "ed0ecb081371e1564f5bbea2059a93747f5a0eae",
        "9801142afbe3d906259b634ef3bc8bebdafe0083"
      ],
      "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": "9801142afbe3d906259b634ef3bc8bebdafe0083",
      "tree": "bd61e28836b1d2cc87866e667636ab9227cebc2d",
      "parents": [
        "9291da97cbb5f8d3ae5eb9e8d5415ef85916d982"
      ],
      "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": "0128a6b819bd4e1c162f00a5501b31d359e79f29",
      "tree": "404301d8275ccbcdb239e26f8a73c52ff2c7096d",
      "parents": [
        "11dcfe54ae333da898e6100e0695544d5e137260",
        "9291da97cbb5f8d3ae5eb9e8d5415ef85916d982"
      ],
      "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": "5f2165f9455d4893b581b73a67c5431f4344b47e",
      "tree": "cf73c3abcad516a0577087977a668890592dc15f",
      "parents": [
        "870b8aa15cb5c722b5d8eb7726eaa5f1a7c23d69"
      ],
      "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": "870b8aa15cb5c722b5d8eb7726eaa5f1a7c23d69",
      "tree": "61bddf819c5548d72935128bbda6597bb81369d5",
      "parents": [
        "1c071f828cc8b13b5b6ecb88930c2bfcaf31575c"
      ],
      "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": "9291da97cbb5f8d3ae5eb9e8d5415ef85916d982",
      "tree": "c3b2ac5a5559bb15a2c8887f5444a9b83a81f0a6",
      "parents": [
        "d8a1448ff5d25d90682061aa69c954f03f0abf39"
      ],
      "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": "05df4504e57657994a89e424b6881ee26d0f313c",
      "tree": "4a5576e6b7e4fa82a60c90a9d88cc1a30dd3d4e9",
      "parents": [
        "27521811746a5e172484e9c1ef2bb2fae1354970"
      ],
      "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": "3ac9473cb94b575427e1587911adb7d4b4ba6151",
      "tree": "0a84a7cb276a1495df9a2019f598343edf4b60f9",
      "parents": [
        "94d0070b96f8635428bf1ee9d74bbe87fea59e3e",
        "7c0441ac271f4e00a2d63eb3048c037ebffa90b9"
      ],
      "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": "7c0441ac271f4e00a2d63eb3048c037ebffa90b9",
      "tree": "f589ccfe238fa2d187849d9843a9a77860c37572",
      "parents": [
        "f234ad008160b1909e9adf8556f325e8a040e012"
      ],
      "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": "fefddbc181c2b674868c6cfbf64a9b02df7175c2",
      "tree": "6c922dca4f20f6cc140d36cbb23114623317e3d4",
      "parents": [
        "1eea29f48dd63dcfee106ae5fabe5740bf766c6e",
        "88e8e5a3f16f0003bd2b43142241b8e1a9a46abe"
      ],
      "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": "88e8e5a3f16f0003bd2b43142241b8e1a9a46abe",
      "tree": "32e04074e67577aa3d2f493fc2e99337da5224d5",
      "parents": [
        "fbaf70abeddfadb652d44f090882f1505f403874"
      ],
      "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": "7773c435bc5da8217433e1b242d3a6712a17b5f7",
      "tree": "596288e2e91fa94dc11db8fc738c3ba49dd16cdb",
      "parents": [
        "ada798b7ca7cabc255aa159964b64975e7fdb2df"
      ],
      "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": "ada798b7ca7cabc255aa159964b64975e7fdb2df",
      "tree": "cc33d638efc8dbd4ec15ce715d74a8fb8df1de00",
      "parents": [
        "a64366ee40f6ec2df7388cbc7f06e03f9e886bcd"
      ],
      "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": "a4b2c041828d1074dca3b999407e7dd85568c5aa",
      "tree": "628fb9c69751ebcf01ce0c479e10f8958c376621",
      "parents": [
        "6f3114cafe3c099c4edeb0ee5054616b48c01e78"
      ],
      "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": "a7167f364737c12e621d836f470cf328c6e111cd",
      "tree": "e6ac9a8226685b345d6863706fcb560edb8414b5",
      "parents": [
        "84987b20ea83f4002bf143318019ceaa33f77a36"
      ],
      "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": "fb87e54a9af8bc5063ca4deebe81d90126992480",
      "tree": "a7bc38328dfbcdfc5221a2334b28be7cfe70cebb",
      "parents": [
        "0d6aa287d1832da5e817bd778731f2f2e7902f90"
      ],
      "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": "0d6aa287d1832da5e817bd778731f2f2e7902f90",
      "tree": "d777882619fa35a4439b7f468e7df8aa88e83d97",
      "parents": [
        "54d534d1d92340809f46c678c5c90032692df10b",
        "a6d86e5ea748a7bcde4ff30b0b1f882dca36a8f3"
      ],
      "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": "a6d86e5ea748a7bcde4ff30b0b1f882dca36a8f3",
      "tree": "1350b9042994d96464a66f7f53daf573fb07aa39",
      "parents": [
        "54d89516ef816c73fdcfaf90d5d5c159e432c3a5"
      ],
      "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": "9e2464c4b96d8935ee2ac1e00896f75cd7a20e0f",
      "tree": "039d4210778ad43bb725b5258c0ae529d46d5fb6",
      "parents": [
        "63cfc1d2ad4cb9189289c51113249c4d14cb2c42",
        "48d438d05f14c2f4bd83ae89f520368cd49122df"
      ],
      "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": "b8c39145475391a134c052533292332516083dec",
      "tree": "d7f0acbda40c992f343a8a2539006348235606e1",
      "parents": [
        "c07ca3bb88218b09a4f36788b6582fb9f4f4c5c1",
        "0832fb6407d1c85cba20a8cc0aff828db3c134de"
      ],
      "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": "48d438d05f14c2f4bd83ae89f520368cd49122df",
      "tree": "7a393d3a2e7ef9f6e4ed17afcd6802d59c578267",
      "parents": [
        "453851f3a00d198374395581275a9ae7fa7aa4bf"
      ],
      "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": "453851f3a00d198374395581275a9ae7fa7aa4bf",
      "tree": "3a4a6aadf37a36e0338f3dbccf121892ceca91cf",
      "parents": [
        "b0e6e00d8ed6f2632659ebbb1ac922f54e5d5012",
        "31272606149d83437a097800074b21e9e6a205ad"
      ],
      "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": "31272606149d83437a097800074b21e9e6a205ad",
      "tree": "d54992dd5724be41416a056d5222c799f167f264",
      "parents": [
        "751ecf24fd8e40f62d0b683779006a556f012503"
      ],
      "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": "cf701aa9fe3067f18569320d9a70eac25aaf7b20",
      "tree": "fc367163c7e826b19820fd3f0b9dba4e1ad5efb8",
      "parents": [
        "751ecf24fd8e40f62d0b683779006a556f012503"
      ],
      "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": "0832fb6407d1c85cba20a8cc0aff828db3c134de",
      "tree": "d9df6ceeb53ec3673a07a4a833e1cda7ad85a9a3",
      "parents": [
        "3207f2805331edf01be89bae306dca849d359d40"
      ],
      "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": "e8696a40e09b24b634214684d18526187b316a2f",
      "tree": "3b6e438f63e0a7d9e6e1263ac7a5400a81846274",
      "parents": [
        "eeae1de29e241e38f86c1bc2035facd291b1f910"
      ],
      "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": "34c726efb54a941a97a6d7252e7c1442d2eded56",
      "tree": "f51ab2224dac6fd980a461c51fef2e9c0ca10333",
      "parents": [
        "5b941c3233c507864cf818f2692ee5d7ff43f573"
      ],
      "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": "e6f43ddce78d6846af12550ff9193c5c6fe5844b",
      "tree": "34a2badff01e4bc942327a56268c62909aa7ccbb",
      "parents": [
        "50d76ddfb00f9d461da895f5d65e8331ae331524"
      ],
      "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"
    }
  ],
  "next": "32397c1cd3327905173b36baa6fd1c579bc328ff"
}
