)]}'
{
  "log": [
    {
      "commit": "f1d313e042af89b2f5f5d09d3eb1703d0517ecd7",
      "tree": "3f8cfb2ee7f88ac078c81e6936a5692620932049",
      "parents": [
        "f9344911250ea347fb0eb54d7ab1f97c8f685a20"
      ],
      "author": {
        "name": "Uli Schlachter",
        "email": "psychon@znc.in",
        "time": "Thu Mar 03 18:14:36 2011"
      },
      "committer": {
        "name": "Uli Schlachter",
        "email": "psychon@znc.in",
        "time": "Fri Mar 04 15:37:13 2011"
      },
      "message": "xcb: Remove _cairo_xcb_picture_copy\n\nAll cairo_xcb_picture_t now get their own, private Picture instead of possibly\nsharing it with a cairo_xcb_surface_t.\n\nThis solves a cyclic dependency which caused cairo_xcb_picture_t to be leaked\nuntil their device was finished.\n\nWhen an xcb surface was used as a source, a cairo_xcb_picture_t was created\nwhich kept a reference to the surface. This picture was then added as a snapshot\nto the surface which caused the surface to own a reference to the picture.\n\nAs a result, the Picture and possibly its associated Pixmap were not freed on\nthe X11 server which could thus run out of memory.\n\nThis change causes more Pictures to be created which could possibly slow down\ncairo-xcb. There seems to be no measurable difference with cairo-perf-trace. For\nthe micro benchmarks, this has the most impact on paint_similar-rgba_source.512:\n\n       min(ticks)  min(ms) median(ms) stddev. iterations overhead\nbefore     158732    0.159    0.159  0.11%   4: 1651.49\nafter      162579    0.163    0.163  0.18%   4: 1612.41\n\nFixes: https://bugs.freedesktop.org/show_bug.cgi?id\u003d34912\n\nSigned-off-by: Uli Schlachter \u003cpsychon@znc.in\u003e\n"
    },
    {
      "commit": "f9344911250ea347fb0eb54d7ab1f97c8f685a20",
      "tree": "6414e0adfae16c9b426c7753d959ba384992adec",
      "parents": [
        "de2c5bfa19ce6b3fda50bca3445aabc040947bc9"
      ],
      "author": {
        "name": "Uli Schlachter",
        "email": "psychon@znc.in",
        "time": "Sun Feb 13 18:40:57 2011"
      },
      "committer": {
        "name": "Uli Schlachter",
        "email": "psychon@znc.in",
        "time": "Fri Mar 04 15:37:13 2011"
      },
      "message": "xcb boilerplate: Handle device offsets correctly\n\nWhen running cairo-test-suite with \"-a\", backends are also tested with a\nnon-zero device offset. However, for \"xcb-window\u0026\" the boilerplate incorrectly\noverwrote the device offset with a zero offset again.\n\nThis caused all test results to be offset by 25 pixels which obviously makes all\ntests fail.\n\nJust removing the call to cairo_surface_set_device_offset solves the problem.\n\nSigned-off-by: Uli Schlachter \u003cpsychon@znc.in\u003e\n"
    },
    {
      "commit": "de2c5bfa19ce6b3fda50bca3445aabc040947bc9",
      "tree": "2d1b5477e7906f04e8cb190bd9ff91a56d196f53",
      "parents": [
        "aca492eb3f4a0d472e6fdb2e4dac9d52edefbff9"
      ],
      "author": {
        "name": "Jeff Muizelaar",
        "email": "jmuizelaar@mozilla.com",
        "time": "Thu Mar 03 21:34:43 2011"
      },
      "committer": {
        "name": "Jeff Muizelaar",
        "email": "jmuizelaar@mozilla.com",
        "time": "Thu Mar 03 21:34:43 2011"
      },
      "message": "Add an implementation of fmax for use with MSVC\n"
    },
    {
      "commit": "aca492eb3f4a0d472e6fdb2e4dac9d52edefbff9",
      "tree": "fed0dcfd545ebbecfa2d6ece83b4286067cebad7",
      "parents": [
        "9669b300a06eb793bb112737cb9085ff020de682"
      ],
      "author": {
        "name": "Jeff Muizelaar",
        "email": "jmuizelaar@mozilla.com",
        "time": "Thu Mar 03 21:31:03 2011"
      },
      "committer": {
        "name": "Jeff Muizelaar",
        "email": "jmuizelaar@mozilla.com",
        "time": "Thu Mar 03 21:31:03 2011"
      },
      "message": "Add UINT32_MAX define.\n\nThis is needed for building with MSCV\n"
    },
    {
      "commit": "9669b300a06eb793bb112737cb9085ff020de682",
      "tree": "ab611e36c93d456e01b0ab6119fcc3effff88161",
      "parents": [
        "c0dc933efda7672b07e188a1195821340f911a66"
      ],
      "author": {
        "name": "Chris Wilson",
        "email": "chris@chris-wilson.co.uk",
        "time": "Wed Mar 02 18:30:47 2011"
      },
      "committer": {
        "name": "Chris Wilson",
        "email": "chris@chris-wilson.co.uk",
        "time": "Wed Mar 02 18:31:28 2011"
      },
      "message": "surface: Don\u0027t pass INT_UNSUPPORTED to _cairo_surface_set_error\n\nSigned-off-by: Chris Wilson \u003cchris@chris-wilson.co.uk\u003e\n"
    },
    {
      "commit": "c0dc933efda7672b07e188a1195821340f911a66",
      "tree": "dac6592bf12d617fca4efba1ac7b423f5d1e32e6",
      "parents": [
        "6cd96f966f94cb4f9bf38f2b2c603068f10b55e8"
      ],
      "author": {
        "name": "Uli Schlachter",
        "email": "psychon@znc.in",
        "time": "Mon Feb 28 14:54:02 2011"
      },
      "committer": {
        "name": "Uli Schlachter",
        "email": "psychon@znc.in",
        "time": "Mon Feb 28 14:54:02 2011"
      },
      "message": "xcb: Remove CAIRO_XCB_RENDER_HAS_COMPOSITE_SPANS\n\nThis flag was only ever tested, but never set. Also, there is no X11 server out\nthere which actually supports this.\n\nAFAIK it was just an experiment which turned into dead code.\n\nSigned-off-by: Uli Schlachter \u003cpsychon@znc.in\u003e\n"
    },
    {
      "commit": "6cd96f966f94cb4f9bf38f2b2c603068f10b55e8",
      "tree": "6265fce80537aa54bfe82d34067c954847fd7b2c",
      "parents": [
        "da9d6db11538bbec159155b2c30d9d77f181e78d"
      ],
      "author": {
        "name": "Uli Schlachter",
        "email": "psychon@znc.in",
        "time": "Mon Feb 28 14:45:14 2011"
      },
      "committer": {
        "name": "Uli Schlachter",
        "email": "psychon@znc.in",
        "time": "Mon Feb 28 14:45:14 2011"
      },
      "message": "xcb: Fix for PDF operators with RENDER 0.11\n\nRENDER 0.11 added PDF operators and the cairo-xcb backend is already prepared\nfor handling them. However, it doesn\u0027t actually handle them.\n\nIf you used such an operator with RENDER 0.11, _operator_is_supported() would\nreturn TRUE, but later on an ASSERT_NOT_REACHED in _render_operator() is hit.\n\nSigned-off-by: Uli Schlachter \u003cpsychon@znc.in\u003e\n"
    },
    {
      "commit": "da9d6db11538bbec159155b2c30d9d77f181e78d",
      "tree": "803fd2570461a901e6b86849da2e7635e2ccc97d",
      "parents": [
        "17169a1e5130b8a287f07eb43d41f0b51307cc57"
      ],
      "author": {
        "name": "Uli Schlachter",
        "email": "psychon@znc.in",
        "time": "Mon Feb 28 14:42:57 2011"
      },
      "committer": {
        "name": "Uli Schlachter",
        "email": "psychon@znc.in",
        "time": "Mon Feb 28 14:42:57 2011"
      },
      "message": "xcb: Remove some unused code\n\nAll of these defines where not used anymore and this \u0027#if 0\u0027d code was so for\nages and most likely would stay commented out for more ages, too.\n\nSigned-off-by: Uli Schlachter \u003cpsychon@znc.in\u003e\n"
    },
    {
      "commit": "17169a1e5130b8a287f07eb43d41f0b51307cc57",
      "tree": "f61fc187574e4e2200d3a47579a215abe233af86",
      "parents": [
        "2fae22a3f2914a6e79436bafe94d19100d7cf6bf"
      ],
      "author": {
        "name": "Eric Anholt",
        "email": "eric@anholt.net",
        "time": "Mon Feb 21 21:37:00 2011"
      },
      "committer": {
        "name": "Eric Anholt",
        "email": "eric@anholt.net",
        "time": "Sat Feb 26 22:09:54 2011"
      },
      "message": "gl: Bind samplers just once at program compile time.\n\nWe never bound any other value to the sampler uniforms, so why bother\nresetting them all the time?\n\n[  0]   before      firefox-talos-gfx   29.972   30.493   0.89%    3/3\n[  0]   after       firefox-talos-gfx   29.397   29.599   1.27%    3/3\n\nSigned-off-by: Eric Anholt \u003ceric@anholt.net\u003e\n"
    },
    {
      "commit": "2fae22a3f2914a6e79436bafe94d19100d7cf6bf",
      "tree": "51c6506a612729318b494e070dbfd719d4abc06f",
      "parents": [
        "2e67809be0a2febd52c75948fabd7ac81227e5e3"
      ],
      "author": {
        "name": "Eric Anholt",
        "email": "eric@anholt.net",
        "time": "Tue Feb 01 04:47:15 2011"
      },
      "committer": {
        "name": "Eric Anholt",
        "email": "eric@anholt.net",
        "time": "Sat Feb 26 22:09:33 2011"
      },
      "message": "gl: Take advantage of GLX_MESA_multithread_makecurrent to avoid unbinding.\n\nBecause of GLX\u0027s unfortunate requirement that only one context have a\nthread current at a time, we had to unbind the context, triggering a\nflush, and eating of all the CPU.  With a small tweak to the GLX spec\nby GLX_MESA_multithread_makecurrent, and a small tweak to Mesa that\nconsisted mostly of deleting the \"is this thread already bound\nelsewhere?\" check, we can bind our context to any thread and use it\nsafely as long as our usage of it is mutexed, which cairo-gl should\nalready be doing.\n\n[  0] before      firefox-talos-gfx   50.260   50.525   0.25%    3/3\n[  0] after       firefox-talos-gfx   32.091   32.422   0.65%    3/3\n"
    },
    {
      "commit": "2e67809be0a2febd52c75948fabd7ac81227e5e3",
      "tree": "5e48b1bde6522884760602ea6fbd33f28b7d5153",
      "parents": [
        "90e1ef2d80b252cdc528d8d8d57cace109034e0b"
      ],
      "author": {
        "name": "Eric Anholt",
        "email": "eric@anholt.net",
        "time": "Mon Jan 31 07:41:39 2011"
      },
      "committer": {
        "name": "Eric Anholt",
        "email": "eric@anholt.net",
        "time": "Mon Feb 21 22:12:47 2011"
      },
      "message": "gl: Add a first bit of general documentation on cairo-gl usage.\n\nSince its inception, cairo-gl has been plagued by the \"how am I really\nsupposed to use it?\" problem.  This lays down my expectations for how\ncairo-gl will interact with other usage of the GL API.\n"
    },
    {
      "commit": "90e1ef2d80b252cdc528d8d8d57cace109034e0b",
      "tree": "74926a94c0e2b2a75372753f9fea59fc46f06471",
      "parents": [
        "47f70537b8baa0afdd28dd5c523d1956f17455cd"
      ],
      "author": {
        "name": "Behdad Esfahbod",
        "email": "behdad@behdad.org",
        "time": "Sun Feb 20 23:16:10 2011"
      },
      "committer": {
        "name": "Behdad Esfahbod",
        "email": "behdad@behdad.org",
        "time": "Sun Feb 20 23:16:10 2011"
      },
      "message": "Bug 34011 - headers-standalone target is incorrect for some non-gcc compilers\n"
    },
    {
      "commit": "47f70537b8baa0afdd28dd5c523d1956f17455cd",
      "tree": "b8970ba02a0dd6ecb87ede8e4a55ef07d8b2c168",
      "parents": [
        "71e8a4c23019b01aa43b334fcb2784c70daae9b5"
      ],
      "author": {
        "name": "Andrea Canciani",
        "email": "ranma42@gmail.com",
        "time": "Sat Feb 19 18:13:59 2011"
      },
      "committer": {
        "name": "Andrea Canciani",
        "email": "ranma42@gmail.com",
        "time": "Sat Feb 19 18:26:20 2011"
      },
      "message": "image: Fix surface acquisition if PIXMAN_HAS_ATOMIC_OPS\n\nIf PIXMAN_HAS_ATOMIC_OPS, ix and iy will be changed if the source\nsurface is of subsurface type. They need to be reset to 0 before being\npassed to _cairo_matrix_to_pixman_matrix_offset() or the acquired\nsurface will have an incorrect offset .\n"
    },
    {
      "commit": "71e8a4c23019b01aa43b334fcb2784c70daae9b5",
      "tree": "750744afa0f48fe4b281b7b3aaab980416ac381a",
      "parents": [
        "48774c09d04a0b8d3533bdd6d5de6cfe58f54c2b"
      ],
      "author": {
        "name": "M Joonas Pihlaja",
        "email": "jpihlaja@cc.helsinki.fi",
        "time": "Sat Feb 19 15:46:45 2011"
      },
      "committer": {
        "name": "M Joonas Pihlaja",
        "email": "jpihlaja@cc.helsinki.fi",
        "time": "Sat Feb 19 16:01:27 2011"
      },
      "message": "image: Avoid reusing pixman images for threadsafety.\n\nThe pixman_image_ref() and pixman_image_unref() functions\naren\u0027t threadsafe in current pixman, so we can\u0027t share\npixman images across contexts where they may end up\nmoving between threads.  The main use of these functions\nis in keeping a global cache of pixman_image_ts for\nsolid colours and reusing the same pixman_image_t for\npatterns pointing to the same image data where possible.\n\nThis patch removes those uses from cairo by wrapping\nthem in a PIXMAN_HAS_ATOMIC_OPS conditional.  There is\nno automatic test this, so we will have to manually\nturn this code back on when pixman does gain atomic\nops.\n\nThe only two remaining calls to pixman_image_ref() are\ndone on locally created images so they are safe.\n\nFixes: https://bugs.freedesktop.org/show_bug.cgi?id\u003d34177\n"
    },
    {
      "commit": "48774c09d04a0b8d3533bdd6d5de6cfe58f54c2b",
      "tree": "5341e8105c80f1aba22fa175476c33d8b28b7e53",
      "parents": [
        "94612bc0323a0af0053ebec769040a7506fc5c22"
      ],
      "author": {
        "name": "Benjamin Otte",
        "email": "otte@redhat.com",
        "time": "Sat Feb 19 10:33:22 2011"
      },
      "committer": {
        "name": "Benjamin Otte",
        "email": "otte@redhat.com",
        "time": "Sat Feb 19 11:08:17 2011"
      },
      "message": "test: Fix gcc signedness warning\n"
    },
    {
      "commit": "94612bc0323a0af0053ebec769040a7506fc5c22",
      "tree": "fcb2ca25c1a05980c2920ceccee358020b82e89c",
      "parents": [
        "9fc5ff797ac6f4cf9029319907fb5556a585108b"
      ],
      "author": {
        "name": "Benjamin Otte",
        "email": "otte@redhat.com",
        "time": "Sat Feb 19 09:40:01 2011"
      },
      "committer": {
        "name": "Benjamin Otte",
        "email": "otte@redhat.com",
        "time": "Sat Feb 19 09:40:01 2011"
      },
      "message": "arc: Remove erroneous return statement\n\nIntroduced in e46dc9e17a6f6737d5624dbcdd3c42c2353a72f1.\n"
    },
    {
      "commit": "9fc5ff797ac6f4cf9029319907fb5556a585108b",
      "tree": "3a7a8f7b139f0dc083ec9cc233ef3d2e00877d3b",
      "parents": [
        "f847b3c2162029ee0b0ae4906d48a0d7c1312df3"
      ],
      "author": {
        "name": "Benjamin Otte",
        "email": "otte@redhat.com",
        "time": "Sat Feb 19 09:32:19 2011"
      },
      "committer": {
        "name": "Benjamin Otte",
        "email": "otte@redhat.com",
        "time": "Sat Feb 19 09:32:19 2011"
      },
      "message": "test: Fix copy/paste error\n"
    },
    {
      "commit": "f847b3c2162029ee0b0ae4906d48a0d7c1312df3",
      "tree": "3e0419063f5881492c25bf3a121cab4cd5434e7b",
      "parents": [
        "7386960d063e4a3642fb281aaae071404d837bdb"
      ],
      "author": {
        "name": "Benjamin Otte",
        "email": "otte@redhat.com",
        "time": "Sat Feb 19 09:25:22 2011"
      },
      "committer": {
        "name": "Benjamin Otte",
        "email": "otte@redhat.com",
        "time": "Sat Feb 19 09:25:22 2011"
      },
      "message": "test: Fix gcc complaints about old style definitions\n"
    },
    {
      "commit": "7386960d063e4a3642fb281aaae071404d837bdb",
      "tree": "b0377d1e30603de395a91a5180eca7d19693b035",
      "parents": [
        "b2bda24e42a3a5487177b9cb7354dc33f98da349"
      ],
      "author": {
        "name": "Benjamin Otte",
        "email": "otte@redhat.com",
        "time": "Sat Feb 19 09:23:46 2011"
      },
      "committer": {
        "name": "Benjamin Otte",
        "email": "otte@redhat.com",
        "time": "Sat Feb 19 09:23:46 2011"
      },
      "message": "test: Add a test for 0-radius negative arcs\n\nThis test checks the behavior of\ne46dc9e17a6f6737d5624dbcdd3c42c2353a72f1\n"
    },
    {
      "commit": "b2bda24e42a3a5487177b9cb7354dc33f98da349",
      "tree": "17a906a6e90a94b9b7e6f53e1e4bfd632a2b8526",
      "parents": [
        "0fc65a10084064cb9758e1b52ff65e31b79481cf"
      ],
      "author": {
        "name": "Benjamin Otte",
        "email": "otte@redhat.com",
        "time": "Sat Feb 19 09:22:45 2011"
      },
      "committer": {
        "name": "Benjamin Otte",
        "email": "otte@redhat.com",
        "time": "Sat Feb 19 09:22:45 2011"
      },
      "message": "Declare variables first so gcc shuts up\n"
    },
    {
      "commit": "0fc65a10084064cb9758e1b52ff65e31b79481cf",
      "tree": "ee44ebcdcc8ac20d671f014b7022430e7b0af6b0",
      "parents": [
        "e46dc9e17a6f6737d5624dbcdd3c42c2353a72f1"
      ],
      "author": {
        "name": "Benjamin Otte",
        "email": "otte@redhat.com",
        "time": "Fri Feb 18 18:57:22 2011"
      },
      "committer": {
        "name": "Benjamin Otte",
        "email": "otte@redhat.com",
        "time": "Fri Feb 18 18:57:22 2011"
      },
      "message": "Revert accidental checkin in last commit\n\nToday is not my day...\n"
    },
    {
      "commit": "e46dc9e17a6f6737d5624dbcdd3c42c2353a72f1",
      "tree": "29a40f919303c3f5df8955617acc2897e74575a1",
      "parents": [
        "ea0595c5ec125d201b159fd7128c1a86c857a0a6"
      ],
      "author": {
        "name": "Benjamin Otte",
        "email": "otte@redhat.com",
        "time": "Fri Feb 18 18:51:44 2011"
      },
      "committer": {
        "name": "Benjamin Otte",
        "email": "otte@redhat.com",
        "time": "Fri Feb 18 18:51:44 2011"
      },
      "message": "arc: Handle radius \u003d\u003d 0 the same no matter the arc direction\n\nCommit a0ea0b63fdd38a73d6696da5cd4800d9a7289240 fixed cairo_arc() but\ndid not apply the same patch to cairo_arc_negative(). This patch fixes\nthat oversight.\n"
    },
    {
      "commit": "ea0595c5ec125d201b159fd7128c1a86c857a0a6",
      "tree": "f6c09a2c7cb134dd7608177755e68d9e1d82cfbc",
      "parents": [
        "9dcd29bef48071fcc28f5fa93d6369dfc1eed3da"
      ],
      "author": {
        "name": "Benjamin Otte",
        "email": "otte@redhat.com",
        "time": "Fri Feb 18 18:06:16 2011"
      },
      "committer": {
        "name": "Benjamin Otte",
        "email": "otte@redhat.com",
        "time": "Fri Feb 18 18:06:16 2011"
      },
      "message": "surface: Actually return a value from _cairo_surface_set_error()\n\nThis is what happens when there\u0027s too many warnings on the screen: I\ndon\u0027t see the important ones. Oops.\n"
    },
    {
      "commit": "9dcd29bef48071fcc28f5fa93d6369dfc1eed3da",
      "tree": "94f7abe5de65710f5ecb069509a95868b7b1805d",
      "parents": [
        "056250775f15ea8fd337e3f37d6906f01b8c09a6"
      ],
      "author": {
        "name": "Benjamin Otte",
        "email": "otte@redhat.com",
        "time": "Fri Feb 18 17:53:29 2011"
      },
      "committer": {
        "name": "Benjamin Otte",
        "email": "otte@redhat.com",
        "time": "Fri Feb 18 17:53:45 2011"
      },
      "message": "test: Add missing format to any2ppm to silence gcc\n"
    },
    {
      "commit": "056250775f15ea8fd337e3f37d6906f01b8c09a6",
      "tree": "de7772fba9e77059ec9c910af2f394aa1330d1df",
      "parents": [
        "4a3ab4b60a80b01c17ce1789019d57d5d7430fdc"
      ],
      "author": {
        "name": "Benjamin Otte",
        "email": "otte@redhat.com",
        "time": "Fri Feb 18 17:52:11 2011"
      },
      "committer": {
        "name": "Benjamin Otte",
        "email": "otte@redhat.com",
        "time": "Fri Feb 18 17:52:11 2011"
      },
      "message": "surface: Allow NOTHING_TO_DO as a valid error for now\n\nLots of code relies on it, so we\u0027d better not break that immediately. ;)\n"
    },
    {
      "commit": "4a3ab4b60a80b01c17ce1789019d57d5d7430fdc",
      "tree": "d2dba2acf2a8d4c750f460a3712bbcc6070e138e",
      "parents": [
        "3823c486f7d5b10ba3109fe547ed10eef8e87700"
      ],
      "author": {
        "name": "Benjamin Otte",
        "email": "otte@redhat.com",
        "time": "Fri Feb 18 17:30:17 2011"
      },
      "committer": {
        "name": "Benjamin Otte",
        "email": "otte@redhat.com",
        "time": "Fri Feb 18 17:30:17 2011"
      },
      "message": "region: Don\u0027t be nice to people setting internal error code\n\nJust DIE DIE DIE in the _cairo_status_set_status() assertion.\n"
    },
    {
      "commit": "3823c486f7d5b10ba3109fe547ed10eef8e87700",
      "tree": "c0fd553794870b4369cf0963c52e0e4c6ecc9f5c",
      "parents": [
        "badf32290ff894351e0f6879aafeac6db8e0d846"
      ],
      "author": {
        "name": "Benjamin Otte",
        "email": "otte@redhat.com",
        "time": "Fri Feb 18 17:26:14 2011"
      },
      "committer": {
        "name": "Benjamin Otte",
        "email": "otte@redhat.com",
        "time": "Fri Feb 18 17:28:54 2011"
      },
      "message": "device: Don\u0027t be nice to people setting internal error codes\n\nJust DIE DIE DIE in the _cairo_status_set_status() assertion.\n"
    },
    {
      "commit": "badf32290ff894351e0f6879aafeac6db8e0d846",
      "tree": "9b0d7fa4e14e5b1cc6ed2af8de62e518f4a16a0a",
      "parents": [
        "3b3cfbfffe9e9acd1da753600c1e00044f065760"
      ],
      "author": {
        "name": "Benjamin Otte",
        "email": "otte@redhat.com",
        "time": "Fri Feb 18 17:23:25 2011"
      },
      "committer": {
        "name": "Benjamin Otte",
        "email": "otte@redhat.com",
        "time": "Fri Feb 18 17:23:35 2011"
      },
      "message": "surface: Don\u0027t be nice to people setting internal error codes\n\nJust DIE DIE DIE in the _cairo_status_set_status() assertion.\n"
    },
    {
      "commit": "3b3cfbfffe9e9acd1da753600c1e00044f065760",
      "tree": "d2ca8ed1ca77efc5a70e67ddcfcbdf0a727fb48d",
      "parents": [
        "9c5833638499f9faa740c1681342bce78596dc8a"
      ],
      "author": {
        "name": "Benjamin Otte",
        "email": "otte@redhat.com",
        "time": "Fri Feb 18 17:21:54 2011"
      },
      "committer": {
        "name": "Benjamin Otte",
        "email": "otte@redhat.com",
        "time": "Fri Feb 18 17:21:54 2011"
      },
      "message": "Assert that an error is valid when set\n"
    },
    {
      "commit": "9c5833638499f9faa740c1681342bce78596dc8a",
      "tree": "fd875c7049764a889f7f33863562103fe0c48fa4",
      "parents": [
        "00ffb09593b25a603cb5c1ad6d3712ea7776a027"
      ],
      "author": {
        "name": "Benjamin Otte",
        "email": "otte@redhat.com",
        "time": "Fri Feb 18 16:56:46 2011"
      },
      "committer": {
        "name": "Benjamin Otte",
        "email": "otte@redhat.com",
        "time": "Fri Feb 18 16:56:46 2011"
      },
      "message": "xcb: Don\u0027t operate on a status variable that is never set\n"
    },
    {
      "commit": "00ffb09593b25a603cb5c1ad6d3712ea7776a027",
      "tree": "b9cd38ba600325869ec36d50c6719e6fb9a26aad",
      "parents": [
        "2181a53f61c08c3461c74932add4bac7bfa0cf27"
      ],
      "author": {
        "name": "Alexandros Frantzis",
        "email": "alexandros.frantzis@linaro.org",
        "time": "Fri Feb 11 15:46:51 2011"
      },
      "committer": {
        "name": "Kristian Høgsberg",
        "email": "krh@bitplanet.net",
        "time": "Fri Feb 18 14:45:00 2011"
      },
      "message": "boilerplate/egl: Ensure that we are using an RGBA32 egl config\n"
    },
    {
      "commit": "2181a53f61c08c3461c74932add4bac7bfa0cf27",
      "tree": "a3d21d3304e25e7b06dc604c0afa0af4fffa89f1",
      "parents": [
        "3245d6e120a1b8502cf36c3869db40341fb20b2e"
      ],
      "author": {
        "name": "Alexandros Frantzis",
        "email": "alexandros.frantzis@linaro.org",
        "time": "Fri Feb 11 14:11:43 2011"
      },
      "committer": {
        "name": "Kristian Høgsberg",
        "email": "krh@bitplanet.net",
        "time": "Fri Feb 18 14:45:00 2011"
      },
      "message": "egl: Ensure that the dummy pbuffer surface is compatible with the supplied context\n\nIn order to be able to make an egl context current when using a\npbuffer surface, that surface must have been created with a config\nthat is compatible with the context config. For Mesa, this means that\nthe configs must be the same.\n"
    },
    {
      "commit": "3245d6e120a1b8502cf36c3869db40341fb20b2e",
      "tree": "9bb9b032ba33adea5cde968b6d5b71c85106bbd6",
      "parents": [
        "303f56a2d34a23d933a02fa625873211fb51eb3b"
      ],
      "author": {
        "name": "Benjamin Franzke",
        "email": "benjaminfranzke@googlemail.com",
        "time": "Thu Feb 10 16:07:43 2011"
      },
      "committer": {
        "name": "Kristian Høgsberg",
        "email": "krh@bitplanet.net",
        "time": "Fri Feb 18 14:45:00 2011"
      },
      "message": "egl: Fix eglMakeCurrent for egl surfaces\n"
    },
    {
      "commit": "303f56a2d34a23d933a02fa625873211fb51eb3b",
      "tree": "8f4fc5e3cbdec0576daa4e605edbb40007a40959",
      "parents": [
        "937465b15e25cbc37c09861bc33a572440df0cbe"
      ],
      "author": {
        "name": "Benjamin Otte",
        "email": "otte@redhat.com",
        "time": "Thu Feb 17 17:17:08 2011"
      },
      "committer": {
        "name": "Benjamin Otte",
        "email": "otte@redhat.com",
        "time": "Thu Feb 17 17:17:08 2011"
      },
      "message": "test: Add line-width-overlap\n\nTest case taken from the WebKit test suite, failure originally reported\nby Zan Dobersek \u003czandobersek@gmail.com\u003e. WebKit test is\nLayoutTests/canvas/philip/tests/2d.path.rect.selfintersect.html\n"
    },
    {
      "commit": "937465b15e25cbc37c09861bc33a572440df0cbe",
      "tree": "349c4a455ffec2e5ee465c1b88bc4bfc8f9b7969",
      "parents": [
        "4d4056872db94573183473610ad1d81d5439fdc6"
      ],
      "author": {
        "name": "Benjamin Otte",
        "email": "otte@redhat.com",
        "time": "Thu Feb 17 17:09:22 2011"
      },
      "committer": {
        "name": "Benjamin Otte",
        "email": "otte@redhat.com",
        "time": "Thu Feb 17 17:09:22 2011"
      },
      "message": "tests: Fix gcc complaint\n\nwarning: ‘static’ is not at beginning of declaration\n"
    },
    {
      "commit": "4d4056872db94573183473610ad1d81d5439fdc6",
      "tree": "ab2a4152217459876218dd79e011e4429ecb18c9",
      "parents": [
        "07c0b7c284a71a8d5a3836cd8ab9bbb2d119c59f"
      ],
      "author": {
        "name": "Benjamin Otte",
        "email": "otte@redhat.com",
        "time": "Tue Feb 15 19:40:23 2011"
      },
      "committer": {
        "name": "Benjamin Otte",
        "email": "otte@redhat.com",
        "time": "Tue Feb 15 19:41:04 2011"
      },
      "message": "tests: Add line-width-tolerance\n\nTest case taken from the WebKit test suite, failure originally reported\nby Zan Dobersek \u003czandobersek@gmail.com\u003e at\nhttps://bugs.webkit.org/show_bug.cgi?id\u003d54471\n"
    },
    {
      "commit": "07c0b7c284a71a8d5a3836cd8ab9bbb2d119c59f",
      "tree": "0166bdfbea40e59489f1abf0f14263729db90633",
      "parents": [
        "d866bb0405bc989666f886e2c0e293a1fe718d74"
      ],
      "author": {
        "name": "Benjamin Otte",
        "email": "otte@redhat.com",
        "time": "Tue Nov 09 15:05:39 2010"
      },
      "committer": {
        "name": "Benjamin Otte",
        "email": "otte@redhat.com",
        "time": "Tue Feb 15 19:41:04 2011"
      },
      "message": "AUTHORS: Use correct email for me\n"
    },
    {
      "commit": "d866bb0405bc989666f886e2c0e293a1fe718d74",
      "tree": "695d24d618f1d5844e9f0f2ffc5938aeb2a2e8d4",
      "parents": [
        "219f0d49a33d553711e92fcc61fd794b98f31234"
      ],
      "author": {
        "name": "Andrea Canciani",
        "email": "ranma42@gmail.com",
        "time": "Mon Feb 07 21:13:53 2011"
      },
      "committer": {
        "name": "Andrea Canciani",
        "email": "ranma42@gmail.com",
        "time": "Mon Feb 14 10:07:02 2011"
      },
      "message": "xlib: Fix compilation when gradient functions are not available\n\nIt is not correct to rely on the version defined in render.h. The\nXrender.h header is independent and might not define some functions\navailable in RENDER 0.10.\n\nTheir availability must be detected at configure time and the stubs\nmust be defined only if the functions are not available.\n\nFixes https://bugs.freedesktop.org/show_bug.cgi?id\u003d31906\n"
    },
    {
      "commit": "219f0d49a33d553711e92fcc61fd794b98f31234",
      "tree": "cd8cdf83ed761ac1ee0580876b468f8e1fd882dc",
      "parents": [
        "81d2434b7595095e485019b38f8a348153c6bc93"
      ],
      "author": {
        "name": "Andrea Canciani",
        "email": "ranma42@gmail.com",
        "time": "Mon Feb 14 08:58:13 2011"
      },
      "committer": {
        "name": "Andrea Canciani",
        "email": "ranma42@gmail.com",
        "time": "Mon Feb 14 09:00:25 2011"
      },
      "message": "test: Fix REFERENCE_IMAGES\n\nMakefile.am not updated along with changing the reference images in\n6825007ac6d46e8d8a7a3bc065453af5d6e755a8 and\n070bc5dd891ba698aeb3eaa899f662d4123f6928.\n"
    },
    {
      "commit": "81d2434b7595095e485019b38f8a348153c6bc93",
      "tree": "8ce0bf4ae52ba26ee4124f9c0a4c25998fc34efc",
      "parents": [
        "5fa49462be24b7fc7f32032d8577703f1d0f463a"
      ],
      "author": {
        "name": "Eric Anholt",
        "email": "eric@anholt.net",
        "time": "Mon Jan 31 04:11:11 2011"
      },
      "committer": {
        "name": "Eric Anholt",
        "email": "eric@anholt.net",
        "time": "Sun Feb 13 19:53:15 2011"
      },
      "message": "gl: Don\u0027t reset the FBO draw/readbuffers every time we bind the FBO.\n\nDraw/readbuffers are a property of the framebuffer, not of the\ncontext.  So we can leave them in place across bindings.  I left the\nwindow drawbuffer setting in place until we decide how to handle\ninteroperating of cairo-gl with normal GL usage.\n\n[  0]  before      firefox-talos-gfx   67.552   67.561   0.22%    3/3\n[  0]  after       firefox-talos-gfx   66.689   66.913   0.41%    3/3\n"
    },
    {
      "commit": "5fa49462be24b7fc7f32032d8577703f1d0f463a",
      "tree": "6fe3c3275695a8290f312ef8aec0143138b90b01",
      "parents": [
        "34612c400d3b66daf265529d90a3dcd1a8afdbcb"
      ],
      "author": {
        "name": "Andrea Canciani",
        "email": "ranma42@gmail.com",
        "time": "Sun Feb 13 17:36:12 2011"
      },
      "committer": {
        "name": "Andrea Canciani",
        "email": "ranma42@gmail.com",
        "time": "Sun Feb 13 19:49:47 2011"
      },
      "message": "test: Fix surface-pattern-scale-down-extend\n\nThis test creates a similar surface using cairo_push_group () and\nassumes its size will be w x h. This is not true when testing similar\nsurfaces with \"cairo-test-suite -a\", because they are bigger than the\nactual ROI, which corresponds to the rectangle (0,0) - (w,h).\n\nClipping to the ROI guarantees that the surface created by\ncairo_push_group () always has the same size.\n\nFixes surface-pattern-scale-down-extend.\n"
    },
    {
      "commit": "34612c400d3b66daf265529d90a3dcd1a8afdbcb",
      "tree": "8b288ef798eb31bac190500f40ef76375a9a6ea5",
      "parents": [
        "7ad3aebbe612ef560d4a73f85db226c8e7caa4b2"
      ],
      "author": {
        "name": "Andrea Canciani",
        "email": "ranma42@gmail.com",
        "time": "Sun Feb 13 16:28:31 2011"
      },
      "committer": {
        "name": "Andrea Canciani",
        "email": "ranma42@gmail.com",
        "time": "Sun Feb 13 16:34:04 2011"
      },
      "message": "test: Fix clip-device-offset\n\nThe test was incorrectly translating the \"target\" of the context\ninstead of the \"group target\" (i.e. the current destination).\n\n\"cairo-test-suite -a\" runs the tests on similar surfaces created using\ncairo_push_group (), thus without this change the device-offset did\nnot affect the real destination surface.\n\nFixes clip-device-offset.\n"
    },
    {
      "commit": "7ad3aebbe612ef560d4a73f85db226c8e7caa4b2",
      "tree": "b89a222f34ca411f6a340067ded32193d2b9b556",
      "parents": [
        "788bdec628ca004a73446414961f74e2443a8b06"
      ],
      "author": {
        "name": "Uli Schlachter",
        "email": "psychon@znc.in",
        "time": "Sat Feb 12 19:49:02 2011"
      },
      "committer": {
        "name": "Uli Schlachter",
        "email": "psychon@znc.in",
        "time": "Sat Feb 12 20:12:46 2011"
      },
      "message": "arc-looping-dash: Add a missing cairo_restore ()\n\nThis test called cairo_save () without restoring again. Normally, this doesn\u0027t\ncause a problem. However, when cairo-test-suite is called with \"-a\", it also\nexecutes the tests on a similar surface. This then caused\ncairo_pop_group_to_source to be called on a cairo_save state which causes a\nCAIRO_STATUS_INVALID_RESTORE since commit 5d95ae924ed1520.\n\nSigned-off-by: Uli Schlachter \u003cpsychon@znc.in\u003e\n"
    },
    {
      "commit": "788bdec628ca004a73446414961f74e2443a8b06",
      "tree": "eea107e6f078efa09688eb0d4a44f211f7444850",
      "parents": [
        "12e41acf9c23618748036052f3403e6ece295796"
      ],
      "author": {
        "name": "Uli Schlachter",
        "email": "psychon@znc.in",
        "time": "Sat Feb 12 13:51:30 2011"
      },
      "committer": {
        "name": "Uli Schlachter",
        "email": "psychon@znc.in",
        "time": "Sat Feb 12 20:12:46 2011"
      },
      "message": "Fix errors from src/check-plt.sh\n\nAll of these symbols are used in cairo-script-surface.c for emitting mesh\npatterns.\n\nSigned-off-by: Uli Schlachter \u003cpsychon@znc.in\u003e\n"
    },
    {
      "commit": "12e41acf9c23618748036052f3403e6ece295796",
      "tree": "2d89a62472f6e8cbccf28d31f07bfb69bb58625b",
      "parents": [
        "050a877a9e6a0066200783f1e200eaaf6792e5de"
      ],
      "author": {
        "name": "Uli Schlachter",
        "email": "psychon@znc.in",
        "time": "Fri Feb 11 21:25:12 2011"
      },
      "committer": {
        "name": "Uli Schlachter",
        "email": "psychon@znc.in",
        "time": "Sat Feb 12 09:34:02 2011"
      },
      "message": "xcb: Remove the surface pattern cache\n\nWhenever a surface is used as a source, cairo-xcb creates a Picture for it and\nadds it as a snapshot to the source. Additionally, there is a per-screen cache\nthat makes sure old Pictures are destroyed when more than 16 MiB of image data\nis used.\n\nThere are two problems here:\n- Normally, the Picture would be destroyed once it is no longer a snapshot for\n  the original source surface. However, the cache kept it alive for longer which\n  means it was using memory but couldn\u0027t actually be used any more. (The\n  Pictures are found via _cairo_surface_has_snapshot)\n- When a xcb surface is used as a source, we create a new Picture for it, but\n  when that surface is cairo_surface_finish\u0027d, we don\u0027t FreePicture this\n  Picture. When the drawable was a window, this may later on cause a BadPicture\n  error when cairo tries to explicitly free a picture that was already\n  implicitly freed when its window was destroyed.\n\nThe second point caused lots of tests in the test suite to fail on an assert due\nto the above-mentioned BadPicture error, but just removing the cache makes both\nthese problems go away.\n\nThe only downside is that the cache enforced a limit of 16 MiB of pixel data\nthat was used for source surfaces on the server. After this commit the Picture\nwill be kept alive until the snapshot is detached. If this becomes a problem\nmemory-wise, a new solution will have to be invented...\n\nSigned-off-by: Uli Schlachter \u003cpsychon@znc.in\u003e\n"
    },
    {
      "commit": "050a877a9e6a0066200783f1e200eaaf6792e5de",
      "tree": "3333b40d1cf1d0bc1128b8e3123c80e519e6bca3",
      "parents": [
        "ae669fb8aba1b2437d10c08e36c5ff593397626d"
      ],
      "author": {
        "name": "Uli Schlachter",
        "email": "psychon@znc.in",
        "time": "Thu Feb 10 16:33:52 2011"
      },
      "committer": {
        "name": "Uli Schlachter",
        "email": "psychon@znc.in",
        "time": "Thu Feb 10 20:38:41 2011"
      },
      "message": "xcb: Fix a crash when finishing a device\n\nThe xcb backend uses caches for linear, radial and surface patterns so that it\ndoesn\u0027t have to create a new cairo_xcb_picture_t on every use. Whenever any\npicture is finished, the surface pattern cache is checked on whether it still\ncontains that picture.\n\nThis means that we cannot destroy the surface_pattern_cache until after the\nlinear and radial_pattern_cache are destroyed or else we\u0027ll be querying the\nsurface pattern cache after it was finished.\n\nThis wasn\u0027t noticed before because _cairo_xcb_picture_finish couldn\u0027t acquire\nthe cairo_xcb_connection_t and thus failed earlier. The previous commit changed\nthis and now lots of tests in the test suite trigger the crash.\n\nSigned-off-by: Uli Schlachter \u003cpsychon@znc.in\u003e\n"
    },
    {
      "commit": "ae669fb8aba1b2437d10c08e36c5ff593397626d",
      "tree": "ea405aa70c07c86facf59eb69a732340392ea66c",
      "parents": [
        "070bc5dd891ba698aeb3eaa899f662d4123f6928"
      ],
      "author": {
        "name": "Uli Schlachter",
        "email": "psychon@znc.in",
        "time": "Wed Feb 09 18:41:03 2011"
      },
      "committer": {
        "name": "Uli Schlachter",
        "email": "psychon@znc.in",
        "time": "Thu Feb 10 16:15:09 2011"
      },
      "message": "Finish devices after their finish callback returns\n\nThe problem is that the finish callback might still have to work with the\ndevice, so it can\u0027t be made unusable yet. This is in contrast to what\ncairo_surface_finish() does, but when finishing a surface it\u0027s quite unlikely\nthat its cairo_surface_t still has to be passed around to functions outside of\nthe backend.\n\nThis \"fixes\" some problems with the xcb-surface-source test where\n_cairo_surface_snapshot()-style snapshots break when the underlying\ncairo_device_t is finished. (In the following backtrace, cairo_device_acquire\nfails because the device\u0027s -\u003efinished member is already TRUE)\n\n #0  cairo_device_acquire (device\u003d0x690f70) at cairo-device.c:414\n #1  0x00007ffff7b884fb in _cairo_xcb_connection_acquire (surface\u003d0x69c610, use_shm\u003d\u003cvalue optimized out\u003e, image_out\u003d0x7fffffffcc58) at cairo-xcb-private.h:246\n #2  _get_image (surface\u003d0x69c610, use_shm\u003d\u003cvalue optimized out\u003e, image_out\u003d0x7fffffffcc58) at cairo-xcb-surface.c:425\n #3  0x00007ffff7b893cf in _cairo_xcb_surface_acquire_source_image (abstract_surface\u003d0x69c610, image_out\u003d0x7fffffffcce8, image_extra\u003d0x7fffffffcce0)\n     at cairo-xcb-surface.c:561\n #4  0x00007ffff7b601d4 in _cairo_surface_acquire_source_image (surface\u003d0x690f70, image_out\u003d0x7fffffffcce8, image_extra\u003d0x0) at cairo-surface.c:1458\n #5  0x00007ffff7b65dcf in _cairo_surface_snapshot_copy_on_write (surface\u003d\u003cvalue optimized out\u003e) at cairo-surface-snapshot.c:125\n #6  0x00007ffff7b609b1 in _cairo_surface_detach_snapshot (snapshot\u003d0x690f70) at cairo-surface.c:330\n #7  0x00007ffff7b606dc in _cairo_surface_detach_snapshots (surface\u003d0x69c610) at cairo-surface.c:315\n #8  cairo_surface_flush (surface\u003d0x69c610) at cairo-surface.c:1126\n #9  0x00007ffff7b6074d in cairo_surface_finish (surface\u003d0x690f70) at cairo-surface.c:718\n #10 0x00007ffff7b881ff in _cairo_xcb_screen_finish (screen\u003d0x691920) at cairo-xcb-screen.c:61\n #11 0x00007ffff7b8629c in _device_finish (device\u003d0x690f70) at cairo-xcb-connection.c:546\n #12 0x0000000000446f7c in cleanup (data\u003d0x69c370) at xcb-surface-source.c:47\n #13 0x00007ffff7b1e56a in _cairo_user_data_array_fini (array\u003d0x693628) at cairo-array.c:390\n #14 0x00007ffff7b60868 in cairo_surface_destroy (surface\u003d0x693600) at cairo-surface.c:651\n #15 0x0000000000447599 in draw (cr\u003d0x7ffff7ddc288, width\u003d\u003cvalue optimized out\u003e, height\u003d\u003cvalue optimized out\u003e) at surface-source.c:149\n #16 0x000000000040c1c3 in cairo_test_for_target (ctx\u003d0x7fffffffe640, target\u003d0x669668, dev_offset\u003d\u003cvalue optimized out\u003e, similar\u003d\u003cvalue optimized out\u003e)\n     at cairo-test.c:984\n #17 0x000000000040d997 in _cairo_test_context_run_for_target (ctx\u003d\u003cvalue optimized out\u003e, target\u003d\u003cvalue optimized out\u003e, similar\u003d\u003cvalue optimized out\u003e,\n     dev_offset\u003d\u003cvalue optimized out\u003e) at cairo-test.c:1617\n #18 0x000000000040ee09 in _cairo_test_runner_draw (argc\u003d\u003cvalue optimized out\u003e, argv\u003d\u003cvalue optimized out\u003e) at cairo-test-runner.c:269\n #19 main (argc\u003d\u003cvalue optimized out\u003e, argv\u003d\u003cvalue optimized out\u003e) at cairo-test-runner.c:924\n\nSigned-off-by: Uli Schlachter \u003cpsychon@znc.in\u003e\n"
    },
    {
      "commit": "070bc5dd891ba698aeb3eaa899f662d4123f6928",
      "tree": "ad72088fb058b849a0e1db9609502634e8d87244",
      "parents": [
        "6825007ac6d46e8d8a7a3bc065453af5d6e755a8"
      ],
      "author": {
        "name": "Uli Schlachter",
        "email": "psychon@znc.in",
        "time": "Wed Feb 09 19:08:28 2011"
      },
      "committer": {
        "name": "Uli Schlachter",
        "email": "psychon@znc.in",
        "time": "Thu Feb 10 16:10:06 2011"
      },
      "message": "xcb-surface-source: Add image16 and ps ref images\n\nSigned-off-by: Uli Schlachter \u003cpsychon@znc.in\u003e\n"
    },
    {
      "commit": "6825007ac6d46e8d8a7a3bc065453af5d6e755a8",
      "tree": "494e2344cb34666d0b82809c4b2364eb3854c2ff",
      "parents": [
        "e4fdd9a1cd4c0d074dd20417e66de5856b6ba5a7"
      ],
      "author": {
        "name": "Uli Schlachter",
        "email": "psychon@znc.in",
        "time": "Wed Feb 09 18:58:05 2011"
      },
      "committer": {
        "name": "Uli Schlachter",
        "email": "psychon@znc.in",
        "time": "Thu Feb 10 16:10:06 2011"
      },
      "message": "ps: Update xlib-surface-source ref images\n\nSince 9948b5180a, the *-surface-source tests draw a different image (a\ntranslucent region was added). However, the ref images for xlib-surface-source\nwith cairo-ps weren\u0027t updated and thus the test failed.\n\nSigned-off-by: Uli Schlachter \u003cpsychon@znc.in\u003e\n"
    },
    {
      "commit": "e4fdd9a1cd4c0d074dd20417e66de5856b6ba5a7",
      "tree": "a44c44fc52225912da434559dcbfd28f7aa662c7",
      "parents": [
        "e68062d9caafe21b53af22173fff40ad973a8d73"
      ],
      "author": {
        "name": "Alexandros Frantzis",
        "email": "alexandros.frantzis@linaro.org",
        "time": "Thu Feb 03 21:06:26 2011"
      },
      "committer": {
        "name": "Chris Wilson",
        "email": "chris@chris-wilson.co.uk",
        "time": "Thu Feb 10 14:54:35 2011"
      },
      "message": "gl: Replace built-in vertex attributes with custom attributes\n\nBuilt-in vertex attributes like gl_Vertex and gl_Color, have been obsoleted\nand removed in recent GL versions and they are not supported at all in GLES2.0.\nCustom attributes are supported in all GL versions \u003e\u003d 2.0, in GL 1.x with\nARB shader extensions and in GLES2.0.\n\nSigned-off-by: Chris Wilson \u003cchris@chris-wilson.co.uk\u003e\n"
    },
    {
      "commit": "e68062d9caafe21b53af22173fff40ad973a8d73",
      "tree": "477cb2b12c02dbb49a7d988f50902e38b4bc3b0b",
      "parents": [
        "80a92b6d799900057ac40c0c0bb63be48eece9ef"
      ],
      "author": {
        "name": "Alexandros Frantzis",
        "email": "alexandros.frantzis@linaro.org",
        "time": "Thu Feb 03 20:06:27 2011"
      },
      "committer": {
        "name": "Chris Wilson",
        "email": "chris@chris-wilson.co.uk",
        "time": "Thu Feb 10 14:54:35 2011"
      },
      "message": "gl: Add gl dispatch entries for functions related to vertex attributes\n\nSigned-off-by: Chris Wilson \u003cchris@chris-wilson.co.uk\u003e\n"
    },
    {
      "commit": "80a92b6d799900057ac40c0c0bb63be48eece9ef",
      "tree": "671d91552d71f172e527ae47c7fa75e847e71e68",
      "parents": [
        "d88ada384fcb045cc9899339f9e8c1cbb8280c16"
      ],
      "author": {
        "name": "Alexandros Frantzis",
        "email": "alexandros.frantzis@linaro.org",
        "time": "Mon Jan 31 16:02:02 2011"
      },
      "committer": {
        "name": "Chris Wilson",
        "email": "chris@chris-wilson.co.uk",
        "time": "Thu Feb 10 14:53:59 2011"
      },
      "message": "gl: Use a custom shader uniform for the ModelViewProjection matrix\n\nThe built-in gl_ModelViewProjectionMatrix uniform (and others) has been\ndeprecated and removed in recent GLSL versions and is not supported\nat all in GLSL ES. A custom uniform for the same purpose works across\nall versions.\n\n[ickle: base _gl_identity_ortho on the 2D variant of glOrtho i.e. with\n        fixed near/far values of [-1, 1]]\nSigned-off-by: Chris Wilson \u003cchris@chris-wilson.co.uk\u003e\n"
    },
    {
      "commit": "d88ada384fcb045cc9899339f9e8c1cbb8280c16",
      "tree": "3ab5eb38fb81bf950ea4bf70d9c85390c7526e75",
      "parents": [
        "b13198348ce053445ca97b513611207e34aa4528"
      ],
      "author": {
        "name": "Alexandros Frantzis",
        "email": "alexandros.frantzis@linaro.org",
        "time": "Thu Jan 27 14:10:38 2011"
      },
      "committer": {
        "name": "Chris Wilson",
        "email": "chris@chris-wilson.co.uk",
        "time": "Thu Feb 10 14:37:48 2011"
      },
      "message": "gl: Replace ftransform() with manual coordinate calculation in shaders\n\nThe ftransform() shader function was deprecated and removed in recent\nGLSL versions and is not included at all in GLSL ES.\n\nSigned-off-by: Chris Wilson \u003cchris@chris-wilson.co.uk\u003e\n"
    },
    {
      "commit": "b13198348ce053445ca97b513611207e34aa4528",
      "tree": "4f10a96370c028161e08e8d1e99536bddd9b1de6",
      "parents": [
        "966e4a1738c5dc97149ff7bd58e54fa86f048c16"
      ],
      "author": {
        "name": "Alexandros Frantzis",
        "email": "alexandros.frantzis@linaro.org",
        "time": "Mon Jan 31 14:18:29 2011"
      },
      "committer": {
        "name": "Chris Wilson",
        "email": "chris@chris-wilson.co.uk",
        "time": "Thu Feb 10 14:37:43 2011"
      },
      "message": "gl: Add function to bind a 4x4 float matrix shader uniform\n\nSigned-off-by: Chris Wilson \u003cchris@chris-wilson.co.uk\u003e\n"
    },
    {
      "commit": "966e4a1738c5dc97149ff7bd58e54fa86f048c16",
      "tree": "9beb8520e37df713456aebd8692fa3e0db742e6c",
      "parents": [
        "0984c9ea27318e852d78ce76a62e08db20e02f4d"
      ],
      "author": {
        "name": "Alexandros Frantzis",
        "email": "alexandros.frantzis@linaro.org",
        "time": "Mon Jan 31 13:55:07 2011"
      },
      "committer": {
        "name": "Chris Wilson",
        "email": "chris@chris-wilson.co.uk",
        "time": "Thu Feb 10 14:37:39 2011"
      },
      "message": "gl: Add entry for UniformMatrix4fv in the gl dispatch table\n\nSigned-off-by: Chris Wilson \u003cchris@chris-wilson.co.uk\u003e\n"
    },
    {
      "commit": "0984c9ea27318e852d78ce76a62e08db20e02f4d",
      "tree": "2cc460f64615241dccb9d2b3a37fbe8dec4a5cce",
      "parents": [
        "5f039f0f894082c383884595220f6f0368ab72cf"
      ],
      "author": {
        "name": "Adrian Johnson",
        "email": "ajohnson@redneon.com",
        "time": "Tue Feb 08 11:10:08 2011"
      },
      "committer": {
        "name": "Adrian Johnson",
        "email": "ajohnson@redneon.com",
        "time": "Tue Feb 08 11:10:08 2011"
      },
      "message": "Type1-subset: Fallback if font contains more than one /Encoding\n\nhttps://bugzilla.gnome.org/show_bug.cgi?id\u003d641704\n"
    },
    {
      "commit": "5f039f0f894082c383884595220f6f0368ab72cf",
      "tree": "4a77d3ac440d12e7138366d531ca7b1d85a9a6bd",
      "parents": [
        "fda784793edc3da789954df7fc2f0c86d9ed4f94"
      ],
      "author": {
        "name": "Andrea Canciani",
        "email": "ranma42@gmail.com",
        "time": "Thu Feb 03 21:55:53 2011"
      },
      "committer": {
        "name": "Andrea Canciani",
        "email": "ranma42@gmail.com",
        "time": "Mon Feb 07 19:28:09 2011"
      },
      "message": "mesh: Rename cairo_pattern_mesh_* functions to cairo_mesh_pattern_*\n\nThis is consistent with the naming of most cairo types/functions\n(example: cairo_foo_surface_*).\n\nThe substitution in the code has been performed using:\n\n  sed -i \u0027s/cairo_pattern_mesh_/cairo_mesh_pattern_/\u0027 \u003cfiles\u003e\n"
    },
    {
      "commit": "fda784793edc3da789954df7fc2f0c86d9ed4f94",
      "tree": "438d79b0672bd37eb5745cc7dfa1d6ddc6ad64e4",
      "parents": [
        "d558f40c44f3d4f4a8a613318ff556c5d26914f7"
      ],
      "author": {
        "name": "Chris Wilson",
        "email": "chris@chris-wilson.co.uk",
        "time": "Sun Feb 06 18:11:25 2011"
      },
      "committer": {
        "name": "Chris Wilson",
        "email": "chris@chris-wilson.co.uk",
        "time": "Sun Feb 06 18:12:08 2011"
      },
      "message": "test: Attempt to capture out-of-bounds spans compositing bug\n\nAttempt to provoke out-of-bounds accesses as demonstrated by\nhttps://bugs.launchpad.net/ubuntu/+source/cairo/+bug/710072\n\nSigned-off-by: Chris Wilson \u003cchris@chris-wilson.co.uk\u003e\n"
    },
    {
      "commit": "d558f40c44f3d4f4a8a613318ff556c5d26914f7",
      "tree": "db4158490a8ef7a1a7e5815988b9915d6874a112",
      "parents": [
        "fc8c54dafe8e607053523e80447507fb57bc0fc0"
      ],
      "author": {
        "name": "Chris Wilson",
        "email": "chris@chris-wilson.co.uk",
        "time": "Sun Feb 06 14:11:30 2011"
      },
      "committer": {
        "name": "Chris Wilson",
        "email": "chris@chris-wilson.co.uk",
        "time": "Sun Feb 06 14:19:23 2011"
      },
      "message": "image: Limit span rendering to bounded extents\n\nWe make the presumption that the incoming geometry is appropriately\nclipped to the bounded extents and can simply memset without being out\nof bounds.\n\nHowever, this was not always the case as we were removing the clip boxes\nin order to optimise the common case where the operation is naturally\nlimited to the surface.\n\n(This is a candidate for 1.10)\n\nBugzilla: https://bugs.launchpad.net/ubuntu/+source/cairo/+bug/710072\nSigned-off-by: Chris Wilson \u003cchris@chris-wilson.co.uk\u003e\n"
    },
    {
      "commit": "fc8c54dafe8e607053523e80447507fb57bc0fc0",
      "tree": "32df1f970979a5e9715e2f7d6dd454cf2904baf6",
      "parents": [
        "7f15319621a71fb01ea41c4efc34bf1f54505ef5"
      ],
      "author": {
        "name": "Behdad Esfahbod",
        "email": "behdad@behdad.org",
        "time": "Fri Feb 04 20:43:40 2011"
      },
      "committer": {
        "name": "Behdad Esfahbod",
        "email": "behdad@behdad.org",
        "time": "Fri Feb 04 20:43:40 2011"
      },
      "message": "Don\u0027t err on non-invertible font matrix\n\nThe scaled-font layer handles that later if it actually is a problem:\n\n    scaled_font-\u003escale_inverse \u003d scaled_font-\u003escale;\n    status \u003d cairo_matrix_invert (\u0026scaled_font-\u003escale_inverse);\n    if (unlikely (status)) {\n        /* If the font scale matrix is rank 0, just using an all-zero inverse matrix\n         * makes everything work correctly.  This make font size 0 work without\n         * producing an error.\n         *\n         * FIXME:  If the scale is rank 1, we still go into error mode.  But then\n         * again, that\u0027s what we do everywhere in cairo.\n         *\n         * Also, the check for \u003d\u003d 0. below may be too harsh...\n         */\n        if (_cairo_matrix_is_scale_0 (\u0026scaled_font-\u003escale)) {\n            cairo_matrix_init (\u0026scaled_font-\u003escale_inverse,\n                               0, 0, 0, 0,\n                               -scaled_font-\u003escale.x0,\n                               -scaled_font-\u003escale.y0);\n        } else\n            return status;\n    }\n"
    },
    {
      "commit": "7f15319621a71fb01ea41c4efc34bf1f54505ef5",
      "tree": "b7ff775c36bfe29d3cbe83871e69bee4185f64c9",
      "parents": [
        "f6ca11694b7935408446b36a17bfee024237dbbf"
      ],
      "author": {
        "name": "Alexandros Frantzis",
        "email": "alexandros.frantzis@linaro.org",
        "time": "Fri Jan 28 13:02:54 2011"
      },
      "committer": {
        "name": "Eric Anholt",
        "email": "eric@anholt.net",
        "time": "Tue Feb 01 00:07:53 2011"
      },
      "message": "gl: Remove fixed-function related code paths\n\nFixed-function related code paths are no longer used, as we require shader\nsupport for the gl backend.\n\nReviewed-by: Eric Anholt \u003ceric@anholt.net\u003e\n"
    },
    {
      "commit": "f6ca11694b7935408446b36a17bfee024237dbbf",
      "tree": "02b6eff085e7552e8418da4653705695d49c2624",
      "parents": [
        "037c9ba7e27bdd33a4fefa43dad68ce0d25e35ad"
      ],
      "author": {
        "name": "Alexandros Frantzis",
        "email": "alexandros.frantzis@linaro.org",
        "time": "Fri Jan 28 13:02:53 2011"
      },
      "committer": {
        "name": "Eric Anholt",
        "email": "eric@anholt.net",
        "time": "Tue Feb 01 00:07:53 2011"
      },
      "message": "gl: Remove unnecessary checks for NULL shader implementation\n\nDue to the fact that we fail if the system doesn\u0027t support shaders, we\nnow always have a valid shader implementation.\n\nReviewed-by: Eric Anholt \u003ceric@anholt.net\u003e\n"
    },
    {
      "commit": "037c9ba7e27bdd33a4fefa43dad68ce0d25e35ad",
      "tree": "98a9447553e23f35c35f52a06cc636f02ef728d3",
      "parents": [
        "0e08e7adfc33eb048c7e88bb22a0ac35b1a14a72"
      ],
      "author": {
        "name": "Alexandros Frantzis",
        "email": "alexandros.frantzis@linaro.org",
        "time": "Fri Jan 28 13:02:52 2011"
      },
      "committer": {
        "name": "Eric Anholt",
        "email": "eric@anholt.net",
        "time": "Tue Feb 01 00:07:53 2011"
      },
      "message": "gl: Fail if GL implementation doesn\u0027t support shaders\n\nThe non-shaders implementation was never tuned for fixed-function GL\nimplementation, the maintainers are not interested in supporting it,\nand the hardware is rather rare at this point.  This lets us focus on\nthe implementation for modern hardware, which needs plenty of work\nstill.\n\nReviewed-by: Eric Anholt \u003ceric@anholt.net\u003e\n"
    },
    {
      "commit": "0e08e7adfc33eb048c7e88bb22a0ac35b1a14a72",
      "tree": "1be047bb14373cdffd982a95157e490aca16d121",
      "parents": [
        "2e81f79e95a60a706f517b1bd989039b302dba8a"
      ],
      "author": {
        "name": "Uli Schlachter",
        "email": "psychon@znc.in",
        "time": "Mon Jan 31 21:39:39 2011"
      },
      "committer": {
        "name": "Uli Schlachter",
        "email": "psychon@znc.in",
        "time": "Mon Jan 31 21:42:24 2011"
      },
      "message": "XCB: Fix build with xcb-shm disabled\n\nThe function _cairo_xcb_shm_image_create is defined and needed even when XCB-SHM\nis disabled. In this case it just falls back to an image surface.\n\nThanks to Benjamin Otte for noticing this.\n\ncairo-xcb-surface-render.c: In function ‘_render_to_picture’:\ncairo-xcb-surface-render.c:749: error: implicit declaration of function ‘_cairo_xcb_shm_image_create’\ncairo-xcb-surface-render.c:749: warning: nested extern declaration of ‘_cairo_xcb_shm_image_create’\n\nSigned-off-by: Uli Schlachter \u003cpsychon@znc.in\u003e\n"
    },
    {
      "commit": "2e81f79e95a60a706f517b1bd989039b302dba8a",
      "tree": "a89a688ceb1b767efd9ecf2b20c0b1358c135b30",
      "parents": [
        "72788a06604ca50fe14354b92d2fd3b186a959bb"
      ],
      "author": {
        "name": "Uli Schlachter",
        "email": "psychon@znc.in",
        "time": "Sun Jan 30 15:29:50 2011"
      },
      "committer": {
        "name": "Uli Schlachter",
        "email": "psychon@znc.in",
        "time": "Mon Jan 31 17:22:06 2011"
      },
      "message": "xcb: Use a normal image surface if SHM fails\n\nIf we can\u0027t use SHM, we still have PutImage. So instead of returning the error\nto the caller, it makes sense to retry with a normal image surface.\n\nSigned-off-by: Uli Schlachter \u003cpsychon@znc.in\u003e\n"
    },
    {
      "commit": "72788a06604ca50fe14354b92d2fd3b186a959bb",
      "tree": "66dd02963952606e5a3731fd7c4c4da822a9650b",
      "parents": [
        "48cb9186a23923ad5e9e3c31a193ab3d99ec6c5d"
      ],
      "author": {
        "name": "Uli Schlachter",
        "email": "psychon@znc.in",
        "time": "Sun Jan 30 14:43:00 2011"
      },
      "committer": {
        "name": "Uli Schlachter",
        "email": "psychon@znc.in",
        "time": "Mon Jan 31 17:20:23 2011"
      },
      "message": "xcb: Move the allocation of a shm surface into its own function\n\nThis simplifies the fallback to an image surface when something causes an error.\n\nAdditionally, this causes errors from _cairo_xcb_connection_allocate_shm_info to\nbe handled via falling back to a normal image surface while previously those\nwere returned to the caller.\n\nSigned-off-by: Uli Schlachter \u003cpsychon@znc.in\u003e\n"
    },
    {
      "commit": "48cb9186a23923ad5e9e3c31a193ab3d99ec6c5d",
      "tree": "04945fd56822f3136804f2b54fd020f46c87e053",
      "parents": [
        "274289d8c6c8a04060cd9c3a3cf0f819899c1353"
      ],
      "author": {
        "name": "Uli Schlachter",
        "email": "psychon@znc.in",
        "time": "Sun Jan 30 14:35:36 2011"
      },
      "committer": {
        "name": "Uli Schlachter",
        "email": "psychon@znc.in",
        "time": "Mon Jan 31 17:19:15 2011"
      },
      "message": "xcb: Remove a duplicate static function\n\nBoth cairo-xcb-surface-core.c and cairo-xcb-surface-render.c contained an\nidentical definition of _cairo_xcb_shm_image_create. This commits removes the\none from cairo-xcb-surface-render.c and adds the other one to\ncairo-xcb-private.h.\n\nSigned-off-by: Uli Schlachter \u003cpsychon@znc.in\u003e\n"
    },
    {
      "commit": "274289d8c6c8a04060cd9c3a3cf0f819899c1353",
      "tree": "3315c8a58230e030d3a03493ed337d8b4635bf6f",
      "parents": [
        "a8e8d2aba811487dbb5b682c4f55065008e7ebbd"
      ],
      "author": {
        "name": "Uli Schlachter",
        "email": "psychon@znc.in",
        "time": "Sun Jan 30 15:19:50 2011"
      },
      "committer": {
        "name": "Uli Schlachter",
        "email": "psychon@znc.in",
        "time": "Mon Jan 31 17:18:02 2011"
      },
      "message": "xcb: Limit the amount of SHM used\n\nWithout this, one could make cairo attach to lots of shared memory. I managed to\nmake cairo use 1.5 GiB of shared memory according to top. This was done by\ndisabling XRENDER and thus causing lots of fallbacks.\n\nSigned-off-by: Uli Schlachter \u003cpsychon@znc.in\u003e\n"
    },
    {
      "commit": "a8e8d2aba811487dbb5b682c4f55065008e7ebbd",
      "tree": "0c0f0da70dbbf2c309c03846a9019abf1152fc99",
      "parents": [
        "23f87951bae73d174131abdebfbcf5ae79b55779"
      ],
      "author": {
        "name": "Uli Schlachter",
        "email": "psychon@znc.in",
        "time": "Tue Jan 25 15:29:58 2011"
      },
      "committer": {
        "name": "Uli Schlachter",
        "email": "psychon@znc.in",
        "time": "Thu Jan 27 16:44:59 2011"
      },
      "message": "scaled font: Fix the docs for cairo_scaled_font_get_font_face\n\nWith the toy font API, it is possible that cairo_scaled_font_get_font_face()\ndoesn\u0027t return the font face which was passed to cairo_scaled_font_create()\ndespite the docs saying otherwise.\n\nSigned-off-by: Uli Schlachter \u003cpsychon@znc.in\u003e\n"
    },
    {
      "commit": "23f87951bae73d174131abdebfbcf5ae79b55779",
      "tree": "371d5308ceac903b4e8fd7037829b5aa9e28bf8b",
      "parents": [
        "00b1eac4b0df7a169ce0796850ed7a17bef69416"
      ],
      "author": {
        "name": "Uli Schlachter",
        "email": "psychon@znc.in",
        "time": "Tue Jan 25 15:19:27 2011"
      },
      "committer": {
        "name": "Uli Schlachter",
        "email": "psychon@znc.in",
        "time": "Thu Jan 27 16:44:59 2011"
      },
      "message": "User fonts: Make it clear what should NOT be freed\n\nThis is a misunderstanding that I actually saw in some real-world code that used\nto work fine with cairo 1.8. Once you spend some time trying to debug such a\nproblem, you wish the docs would have said so. ;-)\n\nSigned-off-by: Uli Schlachter \u003cpsychon@znc.in\u003e\n"
    },
    {
      "commit": "00b1eac4b0df7a169ce0796850ed7a17bef69416",
      "tree": "4c3a803f406f00a209958e1d6930d56dfa373932",
      "parents": [
        "9e7ce0c3525064aa32da90be89e805aff6829c9b"
      ],
      "author": {
        "name": "Uli Schlachter",
        "email": "psychon@znc.in",
        "time": "Wed Jan 26 20:10:59 2011"
      },
      "committer": {
        "name": "Uli Schlachter",
        "email": "psychon@znc.in",
        "time": "Wed Jan 26 20:10:59 2011"
      },
      "message": "xcb: Document all public functions\n\nThese docs are based upon cairo-xlib and the existing documentations for\ncairo_xcb_surface_create_with_xrender_format.\n\nSigned-off-by: Uli Schlachter \u003cpsychon@znc.in\u003e\n"
    },
    {
      "commit": "9e7ce0c3525064aa32da90be89e805aff6829c9b",
      "tree": "f8bfa4f84aa50c59b221fa2c870de2a6bf69817b",
      "parents": [
        "0e199ccc574d77041e19b29cb9a228e2588d5dca"
      ],
      "author": {
        "name": "Uli Schlachter",
        "email": "psychon@znc.in",
        "time": "Wed Jan 26 16:54:13 2011"
      },
      "committer": {
        "name": "Uli Schlachter",
        "email": "psychon@znc.in",
        "time": "Wed Jan 26 16:54:13 2011"
      },
      "message": "xcb: Automatically enable the backend if the libs are available\n\nIt looks like the cairo-xcb backend is in a good shape and hopefully will be a\nsupported backend for cairo 1.12.0. Let\u0027s see if this causes lots of new bugs to\nbe uncovered. :-)\n\nSigned-off-by: Uli Schlachter \u003cpsychon@znc.in\u003e\n"
    },
    {
      "commit": "0e199ccc574d77041e19b29cb9a228e2588d5dca",
      "tree": "4acd84599d27e376874fac2f59cac7b1d3c653eb",
      "parents": [
        "f60e8f0bb231547ff473dd23807193c847c99a3d"
      ],
      "author": {
        "name": "Pino Toscano",
        "email": "toscano.pino@tiscali.it",
        "time": "Tue Jan 25 13:33:11 2011"
      },
      "committer": {
        "name": "Andrea Canciani",
        "email": "ranma42@gmail.com",
        "time": "Tue Jan 25 13:36:01 2011"
      },
      "message": "LD_PRELOAD is supported on Hurd\n\nLD_PRELOAD is supported on Hurd. Adding Hurd to the list of supported\nsystems makes cairo-trace available on them as well.\n\nSee http://bugs.debian.org/cgi-bin/bugreport.cgi?bug\u003d608492\n"
    },
    {
      "commit": "f60e8f0bb231547ff473dd23807193c847c99a3d",
      "tree": "96c756e5f77aa60cbd9f65b59abc14c835b0ef24",
      "parents": [
        "062e78b620cd6161f0a2fd2644866fb5d957a9db"
      ],
      "author": {
        "name": "Andrea Canciani",
        "email": "ranma42@gmail.com",
        "time": "Tue Jan 25 07:41:27 2011"
      },
      "committer": {
        "name": "Andrea Canciani",
        "email": "ranma42@gmail.com",
        "time": "Tue Jan 25 11:16:51 2011"
      },
      "message": "xcb: Fix compositing of pixel-aligned rectangles\n\nbef8b28300ab1f9b46db9d54b072f6f9318dca30 introduced a regression in\nthe compositing of pixel-aligned rectangles, because it only\ntranslates the destination, instead of destination, source and mask,\nby the extents offset.\n\nThe same commit introduces some memleaks when the acquisition of an\nxcb picture fails.\n\n74374fce9d71d373287cddc3a0bf4aaf4bda568b causes incorrect rendering\nwhenever extents are not tight.\n\nFixes https://bugs.freedesktop.org/show_bug.cgi?id\u003d33448\n"
    },
    {
      "commit": "062e78b620cd6161f0a2fd2644866fb5d957a9db",
      "tree": "4e78491e95c42dcce05cfb897efd9e95bfa238e6",
      "parents": [
        "c7b16098bd700c6cc82e8fce49eda606ac84ad24"
      ],
      "author": {
        "name": "Andrea Canciani",
        "email": "ranma42@gmail.com",
        "time": "Mon Jan 24 09:35:23 2011"
      },
      "committer": {
        "name": "Andrea Canciani",
        "email": "ranma42@gmail.com",
        "time": "Mon Jan 24 09:35:23 2011"
      },
      "message": "Fix regressions from 1.10 merge\n\nd6dc6e8e396506d5160266dda6575ddfce671c2d introduced two regressions:\n\n - the compiler warns about _gradient_stops_are_opaque being unused in\n   cairo-pdf-surface.c\n\n - get-path-extents now checks for the wrong extents, thus it fails\n"
    },
    {
      "commit": "c7b16098bd700c6cc82e8fce49eda606ac84ad24",
      "tree": "5b8948dce41a2913fb0c85dadd314b04b7031142",
      "parents": [
        "74374fce9d71d373287cddc3a0bf4aaf4bda568b"
      ],
      "author": {
        "name": "Uli Schlachter",
        "email": "psychon@znc.in",
        "time": "Sun Jan 23 21:10:20 2011"
      },
      "committer": {
        "name": "Uli Schlachter",
        "email": "psychon@znc.in",
        "time": "Sun Jan 23 21:10:20 2011"
      },
      "message": "xcb: Fix a BadPicture when clearing a surface\n\nThis bug was introduced in 6f431886 \"xcb: Prefer RenderFillRectangles to perform\nthe deferred clear\". The problem is that we are trying to clear a surface before\nwe created a Picture for it. This resulted in a FillRectangles call with\ndst\u003dXCB_NONE.\n\nI noticed this problem via cairo-perf-micro\u0027s dragon-solid-circle-clip.\n\nSigned-off-by: Uli Schlachter \u003cpsychon@znc.in\u003e\n"
    },
    {
      "commit": "74374fce9d71d373287cddc3a0bf4aaf4bda568b",
      "tree": "7daed1216e6592fbb7c54da6583c66a0b314c634",
      "parents": [
        "5809c6ff32b10c7c07ae96e5b0f7b98de66ecea5"
      ],
      "author": {
        "name": "Chris Wilson",
        "email": "chris@chris-wilson.co.uk",
        "time": "Sun Jan 23 18:32:12 2011"
      },
      "committer": {
        "name": "Chris Wilson",
        "email": "chris@chris-wilson.co.uk",
        "time": "Sun Jan 23 18:33:00 2011"
      },
      "message": "xcb: Only use clip rectangles for more than 1 pixel-aligned box\n\nIf there is only a single box, then it is naturally equivalent to the\nsingle call to Composite. So need to incur the addition protocol\noverhead of setting up the CompositeClip.\n\nSigned-off-by: Chris Wilson \u003cchris@chris-wilson.co.uk\u003e\n"
    },
    {
      "commit": "5809c6ff32b10c7c07ae96e5b0f7b98de66ecea5",
      "tree": "3a1b42a5755e0229627f42ea1e99913ae45d6f7a",
      "parents": [
        "ac9ee388faf3c8c5df502f6cc7b039f043154954"
      ],
      "author": {
        "name": "Chris Wilson",
        "email": "chris@chris-wilson.co.uk",
        "time": "Sun Jan 23 16:52:50 2011"
      },
      "committer": {
        "name": "Chris Wilson",
        "email": "chris@chris-wilson.co.uk",
        "time": "Sun Jan 23 16:52:50 2011"
      },
      "message": "version: Post-snapshot bump\n"
    },
    {
      "commit": "ac9ee388faf3c8c5df502f6cc7b039f043154954",
      "tree": "eff1e0af61eb6d1df0e26a82837e033a5772cc04",
      "parents": [
        "7e75e2d14afe295bb100849b081e9c568f3f1260"
      ],
      "author": {
        "name": "Chris Wilson",
        "email": "chris@chris-wilson.co.uk",
        "time": "Sun Jan 23 16:32:13 2011"
      },
      "committer": {
        "name": "Chris Wilson",
        "email": "chris@chris-wilson.co.uk",
        "time": "Sun Jan 23 16:32:13 2011"
      },
      "message": "version: Bump for 1.11.2 snapshot\n"
    },
    {
      "commit": "7e75e2d14afe295bb100849b081e9c568f3f1260",
      "tree": "a1754fb2c60b2828dbefb042e37fa6c81d1b9570",
      "parents": [
        "d6dc6e8e396506d5160266dda6575ddfce671c2d"
      ],
      "author": {
        "name": "Chris Wilson",
        "email": "chris@chris-wilson.co.uk",
        "time": "Sun Jan 23 16:31:40 2011"
      },
      "committer": {
        "name": "Chris Wilson",
        "email": "chris@chris-wilson.co.uk",
        "time": "Sun Jan 23 16:31:40 2011"
      },
      "message": "NEWS: 1.11.2 snapshot\n"
    },
    {
      "commit": "d6dc6e8e396506d5160266dda6575ddfce671c2d",
      "tree": "09957be2ec2d691bfd3a2788bfdcb3758a9dc7a3",
      "parents": [
        "6c65168dcfd969bd1d6aade3cd33f679e2314dea",
        "c84730d88983623dddd6b9980d82648b7297444d"
      ],
      "author": {
        "name": "Chris Wilson",
        "email": "chris@chris-wilson.co.uk",
        "time": "Sun Jan 23 16:05:01 2011"
      },
      "committer": {
        "name": "Chris Wilson",
        "email": "chris@chris-wilson.co.uk",
        "time": "Sun Jan 23 16:05:01 2011"
      },
      "message": "Merge branch \u00271.10\u0027 into tmp\n\nSynchronize stable bug-fixes with development snapshot\n\nConflicts:\n\tcairo-version.h\n\tsrc/cairo-path-bounds.c\n\tsrc/cairo-pdf-surface.c\n\ttest/get-path-extents.c\n"
    },
    {
      "commit": "6c65168dcfd969bd1d6aade3cd33f679e2314dea",
      "tree": "91c24f191d0f2c8ac3ca89ba3662796c1d01e049",
      "parents": [
        "6f4318869cf551f4ed349459b7afd50e4b10941c"
      ],
      "author": {
        "name": "Chris Wilson",
        "email": "chris@chris-wilson.co.uk",
        "time": "Sun Jan 23 15:46:32 2011"
      },
      "committer": {
        "name": "Chris Wilson",
        "email": "chris@chris-wilson.co.uk",
        "time": "Sun Jan 23 15:46:32 2011"
      },
      "message": "Makefile: add missing cairo-box-private.h\n"
    },
    {
      "commit": "6f4318869cf551f4ed349459b7afd50e4b10941c",
      "tree": "d5c0f955ae66e35de09bc19f4c22e303cd71e01d",
      "parents": [
        "bef8b28300ab1f9b46db9d54b072f6f9318dca30"
      ],
      "author": {
        "name": "Chris Wilson",
        "email": "chris@chris-wilson.co.uk",
        "time": "Sun Jan 23 13:29:51 2011"
      },
      "committer": {
        "name": "Chris Wilson",
        "email": "chris@chris-wilson.co.uk",
        "time": "Sun Jan 23 13:29:51 2011"
      },
      "message": "xcb: Prefer RenderFillRectangles to perform the deferred clear\n\nSigned-off-by: Chris Wilson \u003cchris@chris-wilson.co.uk\u003e\n"
    },
    {
      "commit": "bef8b28300ab1f9b46db9d54b072f6f9318dca30",
      "tree": "67479c3dbcd641ab95366a337e019ab2a2d99091",
      "parents": [
        "ff9e962165905f9b3477e125de227c69aebf9510"
      ],
      "author": {
        "name": "Chris Wilson",
        "email": "chris@chris-wilson.co.uk",
        "time": "Sun Jan 23 12:28:06 2011"
      },
      "committer": {
        "name": "Chris Wilson",
        "email": "chris@chris-wilson.co.uk",
        "time": "Sun Jan 23 12:28:06 2011"
      },
      "message": "xcb: Apply a clip region for compositing many-pixel-aligned-boxes\n\nBased on a patch by  Uli Schlachter.\n\nUli found that the \"fast-path\" for compositing pixel-aligned boxes did\nnot live up to its name; using multiple Composite is many times slower,\nbecause of the extra protocol and driver overheads, than specifying a\nclip region and a single Composite.\n\nSigned-off-by: Chris Wilson \u003cchris@chris-wilson.co.uk\u003e\n"
    },
    {
      "commit": "ff9e962165905f9b3477e125de227c69aebf9510",
      "tree": "e343b18a3683cfdcf2b41335f4f7b6fdbc607bcd",
      "parents": [
        "5d95ae924ed15200a17d240d8f0744c74df7c61b"
      ],
      "author": {
        "name": "Andrea Canciani",
        "email": "ranma42@gmail.com",
        "time": "Wed Jan 19 22:22:31 2011"
      },
      "committer": {
        "name": "Andrea Canciani",
        "email": "ranma42@gmail.com",
        "time": "Sat Jan 22 10:59:38 2011"
      },
      "message": "gstate: Remove unused code\n\n_cairo_gstate_redirect_target asserts that this surface is NULL\nimmediately before destroying it. If the code is compiled with\nassertions disabled and the assert would be false, it is now safer\nbecause instead of an invalid access it will only memleak.\n\n_cairo_gstate_get_parent_target () is not used anymore in\ncairo_pop_group () and the related code can be removed.\n\n_cairo_gstate_is_redirected () has never been used.\n\nThe comment about the clipping is misleading, because the clip is\ntranslated as expected since fb7f7c2f27f0823d7702f960204d6e638d697624.\n"
    },
    {
      "commit": "5d95ae924ed15200a17d240d8f0744c74df7c61b",
      "tree": "3278d6bf194a6f08af74bc1cb7f891eea62d2087",
      "parents": [
        "e0b741de9006a02acd9b05c8fae52f6b7f775163"
      ],
      "author": {
        "name": "Andrea Canciani",
        "email": "ranma42@gmail.com",
        "time": "Thu Jan 20 00:44:29 2011"
      },
      "committer": {
        "name": "Andrea Canciani",
        "email": "ranma42@gmail.com",
        "time": "Sat Jan 22 10:59:38 2011"
      },
      "message": "gstate: Set an error status when restoring a push_group\n\ncairo_push_group (cr) followed by cairo_restore (cr) should put cr in\nan error status of CAIRO_STATUS_INVALID_RESTORE.\n\nFixes group-state.\n"
    },
    {
      "commit": "e0b741de9006a02acd9b05c8fae52f6b7f775163",
      "tree": "049693a58b81dd887f04686f266fba99b0fb55b4",
      "parents": [
        "b51520628de73d5f560720c20987e5be5440edb0"
      ],
      "author": {
        "name": "Andrea Canciani",
        "email": "ranma42@gmail.com",
        "time": "Tue Jan 18 13:48:15 2011"
      },
      "committer": {
        "name": "Andrea Canciani",
        "email": "ranma42@gmail.com",
        "time": "Sat Jan 22 10:59:38 2011"
      },
      "message": "test: Add group-state\n\nThe interaction between the group and the state API is currently\nuntested and buggy. This test tries to use them incorrectly and check\nthat cairo notices the problem and marks the cr object with an error\nstatus.\n"
    },
    {
      "commit": "b51520628de73d5f560720c20987e5be5440edb0",
      "tree": "4e2e451d61f31c9a8fddc45134105e2e6558d24e",
      "parents": [
        "47d14586f5d56b2c926a2ddbca6cfbd284c3b3f1"
      ],
      "author": {
        "name": "Andrea Canciani",
        "email": "ranma42@gmail.com",
        "time": "Sat Jan 22 10:56:37 2011"
      },
      "committer": {
        "name": "Andrea Canciani",
        "email": "ranma42@gmail.com",
        "time": "Sat Jan 22 10:56:37 2011"
      },
      "message": "clip: Improve _cairo_clip_contains_*\n\n_cairo_clip_contains_rectangle() considered a NULL clip empty instead\nof containing everything.\n\n_cairo_clip_contains_rectangle() checks for NULL clips, so we don\u0027t\nhave to check for them in _cairo_clip_contains_extents().\n"
    },
    {
      "commit": "47d14586f5d56b2c926a2ddbca6cfbd284c3b3f1",
      "tree": "9049be7ea72616f15fcb15f51f58f1143ea9cc7c",
      "parents": [
        "72a9d49a530456e7002675235333885c70580abb"
      ],
      "author": {
        "name": "Mats Palmgren",
        "email": "matspal@gmail.com",
        "time": "Fri Jan 21 08:52:19 2011"
      },
      "committer": {
        "name": "Andrea Canciani",
        "email": "ranma42@gmail.com",
        "time": "Fri Jan 21 08:56:46 2011"
      },
      "message": "win32: Improve error logging\n\nOn win32 stderr is fully buffered, so fflush() should be called after\neach error to ensure it is printed to the console.\n\nThere is no need to use fwprintf if the format string can be\nrepresented as char*.\n\nSee https://bugs.freedesktop.org/show_bug.cgi?id\u003d33319\n"
    },
    {
      "commit": "72a9d49a530456e7002675235333885c70580abb",
      "tree": "4f610f01afc879e793317b92759de09b45aca653",
      "parents": [
        "67cfb20bd0908b73efc208b3c5ca0d027f858864"
      ],
      "author": {
        "name": "Andrea Canciani",
        "email": "ranma42@gmail.com",
        "time": "Wed Jan 19 14:04:49 2011"
      },
      "committer": {
        "name": "Andrea Canciani",
        "email": "ranma42@gmail.com",
        "time": "Wed Jan 19 14:04:49 2011"
      },
      "message": "Bump pixman requirements to 0.20.2 for radial gradients\n\nPixman has PDF-like radial gradients since 0.20.0, but the\nimplementation of the tangent circles case was not correct. This has\nbeen fixed in 0.20.2, along with some invalid operations fixes.\n"
    },
    {
      "commit": "67cfb20bd0908b73efc208b3c5ca0d027f858864",
      "tree": "d927df109710c697b484cfbb0302746ee97c11bb",
      "parents": [
        "b8e7bfdff0478f0515ea470b32fc15ca081d637e"
      ],
      "author": {
        "name": "Andrea Canciani",
        "email": "ranma42@gmail.com",
        "time": "Wed Jan 19 13:35:46 2011"
      },
      "committer": {
        "name": "Andrea Canciani",
        "email": "ranma42@gmail.com",
        "time": "Wed Jan 19 13:41:52 2011"
      },
      "message": "test: Workaround pixman limits in large-source-roi\n\nSince 1cc750ed92a936d84b47cac696aaffd226e1c02e pixman won\u0027t perform\nthe compositing if it can\u0027t prove that this the computations it has to\nperform will fit within the size of the variables it uses.\n\nIt looks like in this case it cannot prove that no overflow will\nhappen unless surface_width \u003c\u003d 30582. Instead of this size (discovered\nby bisection), a safer looking 30000 was chosen. It should still\ntrigger the problems the original test was looking for, because\nbackends which support 30000xheight surfaces will likely support\n32767xheight as well.\n"
    },
    {
      "commit": "b8e7bfdff0478f0515ea470b32fc15ca081d637e",
      "tree": "ec4ccc906210dc69c214a7c8b723f5d1c0cbe474",
      "parents": [
        "45da39dda729be4c61c92d30e9373282941000fa"
      ],
      "author": {
        "name": "Andrea Canciani",
        "email": "ranma42@gmail.com",
        "time": "Thu Jan 06 16:40:05 2011"
      },
      "committer": {
        "name": "Andrea Canciani",
        "email": "ranma42@gmail.com",
        "time": "Wed Jan 19 12:27:33 2011"
      },
      "message": "quartz: Respect pattern filter settings\n\nCAIRO_FILTER_FAST and CAIRO_FILTER_NEAREST both map to nearest\nneighbor filtering, whereas all other filter modes are names for\nbilinear filtering.\n\nAdditionally, translations matrices are transformed into integer\ntranslations when possible (i.e. when they are used on an nearest\nneighbor filtered surface pattern), which makes Quartz behave as\ncairo-image for these simple transformations.\n\nFixes a1-image-sample, a1-mask-sample, filter-nearest-offset.\n\nImproves the output of filter-nearest-transformed and\nrotate-image-surface-paint. They are not blurry anymore, but they are\ndifferent from the reference images because of different in/out rules\nbetween Quartz and cairo-image.\n"
    },
    {
      "commit": "45da39dda729be4c61c92d30e9373282941000fa",
      "tree": "0f3beefa1646ad875404c0237c5b9d050fca521f",
      "parents": [
        "ca9068839bf28f914a5066d7846f4d4b95fee4a2"
      ],
      "author": {
        "name": "Andrea Canciani",
        "email": "ranma42@gmail.com",
        "time": "Fri Jan 07 17:00:37 2011"
      },
      "committer": {
        "name": "Andrea Canciani",
        "email": "ranma42@gmail.com",
        "time": "Wed Jan 19 11:00:58 2011"
      },
      "message": "quartz: Avoid using private APIs\n\nCGContextSetCTM() is not part of the public API and can easily be\nreplaced by CGContextConcatCTM()-ing an appropriate matrix.\n"
    },
    {
      "commit": "ca9068839bf28f914a5066d7846f4d4b95fee4a2",
      "tree": "9861e79ee398b48694320591b8874381cb84654b",
      "parents": [
        "d7e3637af2ce31c35281c87c4ca064322de0d948"
      ],
      "author": {
        "name": "Andrea Canciani",
        "email": "ranma42@gmail.com",
        "time": "Wed Jan 05 15:12:34 2011"
      },
      "committer": {
        "name": "Andrea Canciani",
        "email": "ranma42@gmail.com",
        "time": "Wed Jan 19 11:00:58 2011"
      },
      "message": "quartz: Use CGLayer to implement unbounded operators\n\nQuartz operators are not unbounded, but it is possible to implement\nunbounded operators by using a temporary destination.\n\nFixes clip-stroke-unbounded, clip-fill-nz-unbounded,\nclip-fill-eo-unbounded, clip-operator, operator-alpha-alpha,\noverlapping-glyphs, surface-pattern-operator, unbounded-operator.\n"
    },
    {
      "commit": "d7e3637af2ce31c35281c87c4ca064322de0d948",
      "tree": "b732052d36513f28d20e8d27099b901167847d1d",
      "parents": [
        "aa2fb0c05fefeea97a2d72f882a6b2c40d98af39"
      ],
      "author": {
        "name": "Andrea Canciani",
        "email": "ranma42@gmail.com",
        "time": "Sat Jan 01 22:16:11 2011"
      },
      "committer": {
        "name": "Andrea Canciani",
        "email": "ranma42@gmail.com",
        "time": "Wed Jan 19 10:53:53 2011"
      },
      "message": "quartz: Cleanup extents computation\n\nAll the draw operations use the same code to compute the gradient\nparameter range. It can be moved to the function which sets up the\nsource.\n"
    },
    {
      "commit": "aa2fb0c05fefeea97a2d72f882a6b2c40d98af39",
      "tree": "1188a12511d89ba7f834d7cc76f3668f74dd8f45",
      "parents": [
        "7d89d69c494bb438ca1caddf1a2226a48297e4b6"
      ],
      "author": {
        "name": "Andrea Canciani",
        "email": "ranma42@gmail.com",
        "time": "Sat Jan 01 21:36:45 2011"
      },
      "committer": {
        "name": "Andrea Canciani",
        "email": "ranma42@gmail.com",
        "time": "Wed Jan 19 10:53:53 2011"
      },
      "message": "quartz: Do not use opaque patterns as masks\n\nWhen an opaque surface is used as a mask, Quartz converts it to\ngreyscale and uses the result as an alpha value. Cairo expects the\nmask operation to ignore the color components and only use the alpha\nof the pattern.\n\nThe expected behavior can be achieved by drawing the mask on a\ntemporary surface with an alpha channel.\n\nFixes clear-source.\n"
    },
    {
      "commit": "7d89d69c494bb438ca1caddf1a2226a48297e4b6",
      "tree": "7121c100b25b11d152c44078dd1e1befcec740ec",
      "parents": [
        "4874dab984fe73ae687b354aff45b879e1de9db2"
      ],
      "author": {
        "name": "Andrea Canciani",
        "email": "ranma42@gmail.com",
        "time": "Wed Jan 05 11:15:06 2011"
      },
      "committer": {
        "name": "Andrea Canciani",
        "email": "ranma42@gmail.com",
        "time": "Wed Jan 19 10:53:52 2011"
      },
      "message": "quartz: Make huge domain handling more stable\n\nQuartz cannot correctly handle arbitrary domains. Falling back is\nneeded to get correct results on very large (in parameter space)\ngradients.\n\nFor PAD extended gradients, limiting the domain to (at most) [-0.5,\n1.5] is sufficient to guarantee that it will correctly sample the\nextreme stops and improves the accuracy (over having a much bigger\ndomain).\n\nFixes radial-gradient, radial-gradient-mask, radial-gradient-source,\nradial-gradient-mask-source, radial-gradient-one-stop.\n\nImproves the quality of the linear gradients in linear-gradient,\nlinear-gradient-subset, mask, operator-source, trap-clip.\n"
    },
    {
      "commit": "4874dab984fe73ae687b354aff45b879e1de9db2",
      "tree": "bc1b55fc39213d52aae3bd43d720e9f6850b15be",
      "parents": [
        "5a1e590b122d99ad91ba104b8fc68e8adaa2d6cd"
      ],
      "author": {
        "name": "Andrea Canciani",
        "email": "ranma42@gmail.com",
        "time": "Sat Jan 01 21:57:27 2011"
      },
      "committer": {
        "name": "Andrea Canciani",
        "email": "ranma42@gmail.com",
        "time": "Wed Jan 19 10:53:52 2011"
      },
      "message": "quartz: Use standard stack allocation size\n\nMake cairo-quartz respect the convention that stack-allocated data\nstructures use the size computed by CAIRO_STACK_ARRAY_LENGTH ().\n\nAdditionally this increases the size of the dash and glyph arrays,\nmaking dynamic memory allocation less likely.\n"
    },
    {
      "commit": "5a1e590b122d99ad91ba104b8fc68e8adaa2d6cd",
      "tree": "6b71bca08dcebc15e91b0393cc8cd803306de811",
      "parents": [
        "2e75bf5a25cc5b7fd33702e2b1474f94caeab158"
      ],
      "author": {
        "name": "Andrea Canciani",
        "email": "ranma42@gmail.com",
        "time": "Fri Jan 07 23:56:38 2011"
      },
      "committer": {
        "name": "Andrea Canciani",
        "email": "ranma42@gmail.com",
        "time": "Wed Jan 19 10:52:41 2011"
      },
      "message": "test: Update quartz ref images\n\nThe following commits fix and/or improve the output of some tests.\nUpdating the ref images before fixing the code allows to check that\nthe fix is correct and makes it easy to find out which tests are fixed\nby each commit.\n"
    },
    {
      "commit": "2e75bf5a25cc5b7fd33702e2b1474f94caeab158",
      "tree": "0f35610f8dfb2d6aafcdaa774fd783a5631bb086",
      "parents": [
        "45505fc5fb14d774c8e13bdca6ca6f75d4b2f9df"
      ],
      "author": {
        "name": "Andrea Canciani",
        "email": "ranma42@gmail.com",
        "time": "Wed Jan 05 15:00:37 2011"
      },
      "committer": {
        "name": "Andrea Canciani",
        "email": "ranma42@gmail.com",
        "time": "Wed Jan 19 10:52:40 2011"
      },
      "message": "test: Fix operator-alpha-alpha\n\nThe test is checking the compositing of color-alpha sources although\nit was meant to check the compositing of alpha-only sources on\nalpha-only destinations.\n\nThis commit fixes the code to respect the test description.\n"
    }
  ],
  "next": "45505fc5fb14d774c8e13bdca6ca6f75d4b2f9df"
}
