)]}'
{
  "log": [
    {
      "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": "eca0ca2424afc1e98912405906edfc32f7733e16",
      "tree": "9f49527f35d77b0de3ee49f76e1b7bc99fac3ac6",
      "parents": [
        "650ee281ae9e007ce82ea79ff18bab9ef49503de"
      ],
      "author": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Fri Nov 04 15:12:29 2011 -0700"
      },
      "committer": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Fri Nov 04 16:23:47 2011 -0700"
      },
      "message": "Memory optimizations for libhwui\nBug #5566149\n\nLazily initialize font renderers\nKeep 60% of the texture cache when an app goes to the background\nDelete least used font renderer when going to the background\nDelete all font renderers on full memory trim\n\nChange-Id: I3c2454d46dc1107ec0f0f72a9ce69cbbcc8825e7\n"
    },
    {
      "commit": "6203f6c8147069976342be8f42add797a50f9557",
      "tree": "cb623a81ace2133781fe04d57d5e08aee7aa8121",
      "parents": [
        "0965a3244b4c3009d08db2e084cdcb681ef66d26"
      ],
      "author": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Mon Aug 01 18:56:21 2011 -0700"
      },
      "committer": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Mon Aug 01 18:56:21 2011 -0700"
      },
      "message": "Reduce the amount of data cached by the gradients cache.\n\nChange-Id: I8546f5a5ecf38031c9a40bdcc434d4c7f22da63d\n"
    },
    {
      "commit": "6d7475d666baefaa3ba9f0dcee25238739454241",
      "tree": "3050764e37c2d8610e143549074206f171dc6c66",
      "parents": [
        "eea60692b060737faeaa02bb30f5b79e2202b482"
      ],
      "author": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Wed Jul 27 16:28:21 2011 -0700"
      },
      "committer": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Wed Jul 27 16:29:39 2011 -0700"
      },
      "message": "Destroy layers and flush layers cache when a window is destroyed.\n\nChange-Id: I3fa1bc3ff50fb99e3d2e490925bd6b0a0f809fff\n"
    },
    {
      "commit": "bdf7609867a3f886455c51dba91623a86cceb6e2",
      "tree": "269a199e3f566c6ac967412e13d2c72dc9cf20bf",
      "parents": [
        "d94b71de3b465c9c113f5b09c7cd5f221370af23"
      ],
      "author": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Mon Jul 18 15:00:43 2011 -0700"
      },
      "committer": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Mon Jul 18 15:00:43 2011 -0700"
      },
      "message": "Trim OpenGLRenderer\u0027s memory usage whenever possible\n\nChange-Id: I9225077184f374b1a43300add15cc1d5b6869d1c\n"
    },
    {
      "commit": "042f7d64b5ccd7b5b73e7e9814a84576f04fb7d4",
      "tree": "66221ac5ac0764e2d7832a13385b52b00bd7cc38",
      "parents": [
        "8c55a9a57e4f13ec420c3de7b3abfdcf454f6633"
      ],
      "author": {
        "name": "Kenny Root",
        "email": "kroot@google.com",
        "time": "Wed Jul 13 09:49:43 2011 -0700"
      },
      "committer": {
        "name": "Kenny Root",
        "email": "kroot@google.com",
        "time": "Wed Jul 13 09:51:00 2011 -0700"
      },
      "message": "Fix debugging for hwui caches\n\nDebugging code attempted to delete a stack item.\n\nAlso, the flag fields weren\u0027t exactly clear, so rewrite it so it\u0027s\nclear that kDebugMoreCaches is a combined flag.\n\nChange-Id: If42b7f0f754919343301da5656aee5943cc9bd4a\n"
    },
    {
      "commit": "02ccac69fd1c0a03c24c5f3ace0ad4bed337b1fd",
      "tree": "60531b505178d4fb169abc83567d5d8db4f14ed0",
      "parents": [
        "b0b1b11b965598cb8fb724e636ebb58a77d437b5"
      ],
      "author": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Fri Jun 24 13:20:23 2011 -0700"
      },
      "committer": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Fri Jun 24 13:20:23 2011 -0700"
      },
      "message": "Code cleanup\n\nChange-Id: I64c346004e0adf9a776d0315534d4fe445f0c0ca\n"
    },
    {
      "commit": "d2ba50ab861ec0950bda18dd0f463b687e66249f",
      "tree": "4c20851d228c57b6635254fcea1710491aa71ed4",
      "parents": [
        "bc7cdb6783d059249133b1c0baf52c305c6b4a33"
      ],
      "author": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Fri May 27 10:21:07 2011 -0700"
      },
      "committer": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Fri May 27 10:21:07 2011 -0700"
      },
      "message": "Prettify memory dump.\n\nChange-Id: I071c6a04a144a96955d85f56dffc6162288ee33e\n"
    },
    {
      "commit": "9c1e23baf5bfbebd1aebbd6d9a18c225325567ce",
      "tree": "00eeed008fc5b296391adfcb20a610e37849cf87",
      "parents": [
        "827107f4ec7d9a53d7bb6e4071858252f263fa8c"
      ],
      "author": {
        "name": "Chet Haase",
        "email": "chet@google.com",
        "time": "Thu Mar 24 10:51:31 2011 -0700"
      },
      "committer": {
        "name": "Chet Haase",
        "email": "chet@google.com",
        "time": "Fri Apr 01 13:24:53 2011 -0700"
      },
      "message": "Add logging of graphics acceleration info to bugreports\n\nChange-Id: I9fa4cda6ccf92df9d1c644ccdc0e7274a30106e0\n"
    },
    {
      "commit": "2fc941e4650d618ff6e122f28b616d9032ffa134",
      "tree": "c05148e4502efbb492d93e45386601eab522faa4",
      "parents": [
        "ef36255f876aa1a61dcf5e879f4380887dda3854"
      ],
      "author": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Thu Feb 03 15:06:05 2011 -0800"
      },
      "committer": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Thu Feb 03 16:20:08 2011 -0800"
      },
      "message": "Fixes cache misses and extra allocations.\nBug #3421454\n\nChange-Id: If4d5c960a7e4c581a9d213073e658284b4e1c497\n"
    },
    {
      "commit": "09b7c91de73b59aa3f679b3ae3ba299f82ec9f8a",
      "tree": "9eb49f2fedb60e6df37b54216ed20f054a6f55fd",
      "parents": [
        "62687ec12cb8e0b1d4044a235b1387b9a8c3b4b4"
      ],
      "author": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Wed Feb 02 20:28:09 2011 -0800"
      },
      "committer": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Wed Feb 02 20:28:09 2011 -0800"
      },
      "message": "Allocate layers from the layers pool.\nBug #3413433\n\nThis change will be beneficial to Launcher to avoid hiccups when\nswiping pages of icons. When a layer is discarded, it is kept\nin the layers pool instead of being destroyed right away. This\nfavors memory reuse over allocations.\n\nChange-Id: Ifb6944ba83d6ceb67c331527c0827b26ce648eb1\n"
    },
    {
      "commit": "01d58e43ede5ca98cbebdd166f9b0c545032c01b",
      "tree": "6d9976c551fd6ec9f104e5a849c0ad743946af6c",
      "parents": [
        "9335f5b2fde244614184f45d29cc574d1ba8cbba"
      ],
      "author": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Wed Jan 19 21:54:02 2011 -0800"
      },
      "committer": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Wed Jan 19 21:55:10 2011 -0800"
      },
      "message": "Add rounded rects and circles support to OpenGLRenderer.\n\nChange-Id: I6cedf2b495d58de7c0437096809fa9e4518a1b8c\n"
    },
    {
      "commit": "ada830f639591b99c3e40de22b07296c7932a33f",
      "tree": "308f469469e96ce7f99d2ec5135e7d44eb858a35",
      "parents": [
        "4f6aff386045000c2c03b903c7109cb42092b7ea"
      ],
      "author": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Thu Jan 13 12:13:20 2011 -0800"
      },
      "committer": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Thu Jan 13 12:13:20 2011 -0800"
      },
      "message": "Cleanup implementation of hardware layers.\n\nThe new implementation relies on OpenGLRenderer\u0027s existing layer\ncode instead of duplicating it. The new code is much cleaner, with\nsimpler and better APIs and allows tracking of drawn regions inside\nlayers. Region tracking is not yet enabled but this will be done\nin a future CL.\n\nChange-Id: Ie826121a2227de8252c77b992a61218defea5143\n"
    },
    {
      "commit": "57066eb64c9a190d1afc87bb060bbb2d31e5b86c",
      "tree": "09c71b4431b6146e08d12e792b4c3dcea6ff57ed",
      "parents": [
        "9454fe1080458812db76599dd02a8b91a2e1e8f4"
      ],
      "author": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Wed Jan 12 12:53:32 2011 -0800"
      },
      "committer": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Wed Jan 12 12:53:32 2011 -0800"
      },
      "message": "Cleanup GL objects on the correct thread.\n\nChange-Id: Iddfea6e08a6591a4fab147151098ef27005f373d\n"
    },
    {
      "commit": "7230a74e9a36dfc6c4346c14e325bf07cd05b380",
      "tree": "0726a708eb545618fde761bd03ed3a1830e34c03",
      "parents": [
        "a07105b7d2a27e6d69407bf96ddb773bddb5e553"
      ],
      "author": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Mon Jan 10 22:26:16 2011 -0800"
      },
      "committer": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Mon Jan 10 22:26:16 2011 -0800"
      },
      "message": "Composite layers as regions.\n\nThis change detects what area of a layer was drawn into and generates a mesh\nto match this area exactly. This can be used to avoid blending empty pixels\nwhen the layer is composited.\nThis change also adds proper layers support to lines rendering and implements\nlayers composition in a more readable way.\n\nChange-Id: I4a5588b98b19bd66891ebdc39631b193c5e31999\n"
    },
    {
      "commit": "fe48f65922d4a3cc4aefe058cee5acec51504a20",
      "tree": "97ea23ae71dade1ef7bf783523bea9cda31dd042",
      "parents": [
        "50c5e4c36e494d092576d42cf2b406abab20510a"
      ],
      "author": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Thu Nov 11 15:36:56 2010 -0800"
      },
      "committer": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Thu Nov 11 15:36:56 2010 -0800"
      },
      "message": "Free resources only from the GL context thread.\nBug #3179882\n\nResources were freed following garbage collections on a worker thread.\nThis worker thread had no EGL context, which would cause the renderer\nto incorrectly assume that the memory was liberated.\n\nChange-Id: Ifdb51f94ddf42641e8654522787bfac532976c7c\n"
    },
    {
      "commit": "e190aa69756aecfaffabdd4c6d32cb6b3220d842",
      "tree": "3e0b6400e428be77544e2670627eeec8ceb6a434",
      "parents": [
        "c15008e72ec00ca20a271c3006dac649fd07533b"
      ],
      "author": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Wed Nov 10 19:01:29 2010 -0800"
      },
      "committer": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Wed Nov 10 19:01:29 2010 -0800"
      },
      "message": "Add new runtime debug flags.\n\nChange-Id: I07955de166a89b5053c6c13f250bb3e2936ca86e\n"
    },
    {
      "commit": "c15008e72ec00ca20a271c3006dac649fd07533b",
      "tree": "a518cebc2b12966bde88c0a3a80ee19b989d17bb",
      "parents": [
        "21c1114dad3a778992479ec8ef514e412a7b2646"
      ],
      "author": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Wed Nov 10 11:59:15 2010 -0800"
      },
      "committer": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Wed Nov 10 11:59:15 2010 -0800"
      },
      "message": "Move all debug flags in a single place.\n\nThis change also adds a new memory usage flag. When turned on, the\nfollowing is printed after every frame:\n\nD/OpenGLRenderer( 3723): Current memory usage / total memory usage (bytes):\nD/OpenGLRenderer( 3723):   TextureCache          3766680 / 20971520\nD/OpenGLRenderer( 3723):   LayerCache            3538944 /  8388608\nD/OpenGLRenderer( 3723):   GradientCache          135168 /   524288\nD/OpenGLRenderer( 3723):   PathCache               41180 /  4194304\nD/OpenGLRenderer( 3723):   TextDropShadowCache         0 /  2097152\nD/OpenGLRenderer( 3723):   FontRenderer 0         262144 /   262144\nD/OpenGLRenderer( 3723):   FontRenderer 1         262144 /   262144\nD/OpenGLRenderer( 3723):   FontRenderer 2         262144 /   262144\nD/OpenGLRenderer( 3723): Other:\nD/OpenGLRenderer( 3723):   FboCache                    2 /       12\nD/OpenGLRenderer( 3723):   PatchCache                 31 /      512\nD/OpenGLRenderer( 3723): Total memory usage:\nD/OpenGLRenderer( 3723):   8268404 bytes, 7.89 MB\n\nThis should help tracking possibe memory issues.\n\nChange-Id: I83f483ca1d2dbef904829bce368e33fe5503e8d6\n"
    },
    {
      "commit": "5b3b35296e8b2c8d3f07d32bb645d5414db41a1d",
      "tree": "bad2ebdbfeb8a3a0be1591d5a357a8280df7d1d2",
      "parents": [
        "2444ddb3d9b59ec45ba50858fcbff639e59b93b1"
      ],
      "author": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Wed Oct 27 18:57:51 2010 -0700"
      },
      "committer": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Tue Nov 02 16:17:23 2010 -0700"
      },
      "message": "Optimize FBO drawing with regions.\nThis optimization is currently disabled until Launcher is\nmodified to take advantage of it. The optimization can be\nenabled by turning on RENDER_LAYERS_AS_REGIONS in the\nOpenGLRenderer.h file.\n\nChange-Id: I2fdf59d0f4dc690a3d7f712173ab8db3848b27b1\n"
    },
    {
      "commit": "746b7401ceb86b5f2805f8c0d3b39ac739152015",
      "tree": "757875a6d574e07572088b7c1eed80125299bdff",
      "parents": [
        "0d9275e565551eed57297627188aa39f3897a50b"
      ],
      "author": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Tue Oct 26 16:27:31 2010 -0700"
      },
      "committer": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Tue Oct 26 16:27:31 2010 -0700"
      },
      "message": "Remove unnecessary GL calls.\n\nThis change batches calls to glScissor() and removes extra GL\nqueries and glActiveTexture() calls.\n\nChange-Id: I1cd079d314f87cd9c088f95c8d4909c2f860f6aa\n"
    },
    {
      "commit": "9bca4793a33d2714b306d69ceb870925a588fe71",
      "tree": "03d6bc554b1a61de818c32330039af59cad4b70d",
      "parents": [
        "3e3ba155fc0ef7a7f40f06762240d9ba22f62b19"
      ],
      "author": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Mon Oct 25 18:42:25 2010 -0700"
      },
      "committer": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Mon Oct 25 18:42:25 2010 -0700"
      },
      "message": "Small cleanup.\n\nRemoves unnecessary forward class declaration, make Caches::currentBuffer\nprivate instead of public.\n\nChange-Id: Idba6325c8c602d89239e667cb8ec87e7943f8e75\n"
    },
    {
      "commit": "dd78ccacff83f0714ad90be98b58ad85f5d08c66",
      "tree": "40889dd933c043eb840e2f6beda2981908af6e1f",
      "parents": [
        "4de82c7885bd41f9fa5ca3938d617cae5edacbdf"
      ],
      "author": {
        "name": "Chet Haase",
        "email": "chet@google.com",
        "time": "Fri Oct 22 18:59:26 2010 -0700"
      },
      "committer": {
        "name": "Chet Haase",
        "email": "chet@google.com",
        "time": "Sun Oct 24 12:27:22 2010 -0700"
      },
      "message": "Fix Caches singleton to avoid resource leaks\n\nThe declaration of Singleton objects must be in CPP files (not header\nfiles) to avoid creating separate instances of what is supposedly a\nsingle object.\n\nChange-Id: Ie903384824a458b5572f3ce5b6cfb359c18a9c44\n"
    }
  ]
}
