)]}'
{
  "log": [
    {
      "commit": "12bde097bba0dc6b29ea4d945219fd1c93c5f82b",
      "tree": "b65a782c73e2b1576dd749271b4fa33432be2f8c",
      "parents": [
        "92323678599960e2e9ecb80bf9a03919f95163c9",
        "ed6ec5ed2120460797692a62fe7dc0248ae4e95a"
      ],
      "author": {
        "name": "Petr Hosek",
        "email": "phosek@google.com",
        "time": "Wed May 16 17:34:00 2018 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed May 16 17:34:00 2018 +0000"
      },
      "message": "Merge \"Update README.fuchsia\""
    },
    {
      "commit": "ed6ec5ed2120460797692a62fe7dc0248ae4e95a",
      "tree": "b65a782c73e2b1576dd749271b4fa33432be2f8c",
      "parents": [
        "5ef59370487f09965427ed774f1c8b22cf647444"
      ],
      "author": {
        "name": "Petr Hosek",
        "email": "phosek@google.com",
        "time": "Tue May 15 20:57:52 2018 -0700"
      },
      "committer": {
        "name": "Petr Hosek",
        "email": "phosek@google.com",
        "time": "Tue May 15 20:57:52 2018 -0700"
      },
      "message": "Update README.fuchsia\n\nChange-Id: I65102e43030b88b9f042b0d805afba751c50ba9a\n"
    },
    {
      "commit": "92323678599960e2e9ecb80bf9a03919f95163c9",
      "tree": "b65a782c73e2b1576dd749271b4fa33432be2f8c",
      "parents": [
        "5ef59370487f09965427ed774f1c8b22cf647444"
      ],
      "author": {
        "name": "Petr Hosek",
        "email": "phosek@google.com",
        "time": "Tue May 15 20:57:45 2018 -0700"
      },
      "committer": {
        "name": "Petr Hosek",
        "email": "phosek@google.com",
        "time": "Tue May 15 20:57:45 2018 -0700"
      },
      "message": "Update README.fuchsia\n\nChange-Id: I57dbe396e8866588eabeecc0dd7e9456a1b3fe97\n"
    },
    {
      "commit": "5ef59370487f09965427ed774f1c8b22cf647444",
      "tree": "19e71741dd81f329cbc722a738188d08d0f1960b",
      "parents": [
        "5c52e23bfe17fcc2e695433a1b68dec0cf10799a"
      ],
      "author": {
        "name": "Damien Miller",
        "email": "djm@google.com",
        "time": "Wed Apr 04 17:35:25 2018 +1000"
      },
      "committer": {
        "name": "Damien Miller",
        "email": "djm@google.com",
        "time": "Wed Apr 04 17:35:25 2018 +1000"
      },
      "message": "Update README.fuchsia\n\nChange-Id: I8a41ad79615aa1e9cbcb3e2ee0d9889dcc20dbd6\n"
    },
    {
      "commit": "5c52e23bfe17fcc2e695433a1b68dec0cf10799a",
      "tree": "152c9c2175c0f49f27a71941ab2a0dfd107d3f12",
      "parents": [
        "f61ef2be8b563e699180f7c0aee96c0c4d743a7d",
        "a3017efa873fe77f63d17561beee5cbb8095e293"
      ],
      "author": {
        "name": "Petr Hosek",
        "email": "phosek@google.com",
        "time": "Thu Oct 12 03:56:31 2017 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Oct 12 03:56:31 2017 +0000"
      },
      "message": "Merge \"Use __builtin_shufflevector when building with Clang\""
    },
    {
      "commit": "a3017efa873fe77f63d17561beee5cbb8095e293",
      "tree": "b6fa6e1534a16fe0e7cf57c1223a4ab251ab5dc3",
      "parents": [
        "b634c0b6d75a86c4488323008f3e1f4fb82ff3db"
      ],
      "author": {
        "name": "Petr Hosek",
        "email": "phosek@google.com",
        "time": "Wed Oct 11 16:54:40 2017 -0700"
      },
      "committer": {
        "name": "Petr Hosek",
        "email": "phosek@google.com",
        "time": "Wed Oct 11 17:35:29 2017 -0700"
      },
      "message": "Use __builtin_shufflevector when building with Clang\n\nClang doesn\u0027t support __builtin_shuffle but it has\n__builtin_shufflevector which has different signature.\n\nChange-Id: I6a7ba40056bea423c9b27f18ed4eaadc5c77513c\n"
    },
    {
      "commit": "f61ef2be8b563e699180f7c0aee96c0c4d743a7d",
      "tree": "bbb4c791d52c5985bb32540baea002b0e7e4e307",
      "parents": [
        "d6ced7e7ffdc5cd9e2a26b4e07a59a6ef7dcaece"
      ],
      "author": {
        "name": "Rob Tsuk",
        "email": "robtsuk@google.com",
        "time": "Wed Jun 14 14:35:29 2017 -0700"
      },
      "committer": {
        "name": "Rob Tsuk",
        "email": "robtsuk@google.com",
        "time": "Wed Jun 14 14:35:29 2017 -0700"
      },
      "message": "Disable -ffunction-sections for pixman\n\nRelease builds in Fuchsia define -ffunction-sections, which causes\nthe link of the combined cairo/pixman library to fail on x86_64.\n\nChange-Id: Ib6e1fc7afd63f9c21e2b6ce30cdb9bf66082b613\n"
    },
    {
      "commit": "d6ced7e7ffdc5cd9e2a26b4e07a59a6ef7dcaece",
      "tree": "a5fe0f26d42da1f3c625dbf79f7e044750ac8c0a",
      "parents": [
        "b634c0b6d75a86c4488323008f3e1f4fb82ff3db"
      ],
      "author": {
        "name": "Benjamin Lerman",
        "email": "qsr@chromium.org",
        "time": "Tue May 30 10:09:15 2017 +0200"
      },
      "committer": {
        "name": "Benjamin Lerman",
        "email": "qsr@chromium.org",
        "time": "Tue May 30 10:09:15 2017 +0200"
      },
      "message": "Fix arm64 build\n\nChange-Id: I23a51dd8ebaf590ec98dbc1432f89076d9ee01c9\n"
    },
    {
      "commit": "b634c0b6d75a86c4488323008f3e1f4fb82ff3db",
      "tree": "b98c17269904671a65991ff82c00d0ae8f6f7608",
      "parents": [
        "b663d9fd5032177a4cf7400abc51d3c276ace721"
      ],
      "author": {
        "name": "Rob Tsuk",
        "email": "robtsuk@google.com",
        "time": "Mon May 15 12:48:50 2017 -0700"
      },
      "committer": {
        "name": "Rob Tsuk",
        "email": "robtsuk@google.com",
        "time": "Mon May 15 13:52:52 2017 -0700"
      },
      "message": "Fix arm64 build\n\nChange-Id: I62822f306ed9f5d37c890f49b3a25f1e77211526\n"
    },
    {
      "commit": "b663d9fd5032177a4cf7400abc51d3c276ace721",
      "tree": "816399f2948b746b1c6645f34869e4e004a0769b",
      "parents": [
        "b27fee8305193f90f86ada7c2e7e506c116acc05"
      ],
      "author": {
        "name": "James Robinson",
        "email": "jamesr@google.com",
        "time": "Tue May 02 17:03:35 2017 -0700"
      },
      "committer": {
        "name": "James Robinson",
        "email": "jamesr@google.com",
        "time": "Tue May 02 17:03:37 2017 -0700"
      },
      "message": "Fix mmx / sse2 / ssse3 build\n\nWe never want the mmx bits, since we depend on x86-64 as a floor which\nalways has sse2.  We do want the sse2 bits always and we want the ssse3\nbits when supported.\n\nChange-Id: Ie5a51834f85529d714741c901f2f71b7c9b19511\n"
    },
    {
      "commit": "b27fee8305193f90f86ada7c2e7e506c116acc05",
      "tree": "04ad2e7c25d811fa5bc66353c5c1ad5bf0de230c",
      "parents": [
        "10bd2b8dc05853cc0d9d6abbb1cda223091e5aa4"
      ],
      "author": {
        "name": "James Robinson",
        "email": "jamesr@google.com",
        "time": "Tue Apr 25 12:52:36 2017 -0700"
      },
      "committer": {
        "name": "James Robinson",
        "email": "jamesr@google.com",
        "time": "Tue Apr 25 13:02:57 2017 -0700"
      },
      "message": "Add GN build for pixman for use elsewhere in Fuchsia\n\nChange-Id: Ia50bee2ccd3fe010d2120269bd2990211ab6e19e\n"
    },
    {
      "commit": "10bd2b8dc05853cc0d9d6abbb1cda223091e5aa4",
      "tree": "938a2e1718fcfc5cec5b1a121127e80de5360256",
      "parents": [
        "85467ec308f8621a5410c007491797b7b1847601"
      ],
      "author": {
        "name": "Petr Hosek",
        "email": "phosek@google.com",
        "time": "Thu Dec 22 13:01:52 2016 -0800"
      },
      "committer": {
        "name": "Petr Hosek",
        "email": "phosek@google.com",
        "time": "Thu Dec 22 13:01:52 2016 -0800"
      },
      "message": "Disable the use of common symbols in tests\n\nSome of the tests use unitialized global variables which triggers\ncompilation errors on macOS.\n\nChange-Id: Ia32f4573f8e669f664128ec707728b46d7eee60d\n"
    },
    {
      "commit": "85467ec308f8621a5410c007491797b7b1847601",
      "tree": "42c8f6117adeb84a2e8311345485abc56b63364a",
      "parents": [
        "17c4ce2e393af597db3c04295c21afc7ce34aa22"
      ],
      "author": {
        "name": "Søren Sandmann Pedersen",
        "email": "soren.sandmann@gmail.com",
        "time": "Sat Sep 03 15:09:12 2016 -0400"
      },
      "committer": {
        "name": "Søren Sandmann Pedersen",
        "email": "soren.sandmann@gmail.com",
        "time": "Sat Sep 03 15:09:12 2016 -0400"
      },
      "message": "Revert \"demos/scale: Added pulldown to choose PIXMAN_FILTER_* value\"\n\nThis reverts commit 375f5ec5c5d2a6cc3586f57e36fdf08a3d0ac4e4.\n\nThis patch was accidentally pushed.\n"
    },
    {
      "commit": "17c4ce2e393af597db3c04295c21afc7ce34aa22",
      "tree": "87f32aae4932b7280beaba5dca8c8f9e32b0fa39",
      "parents": [
        "d286078b28bdef15aa0498e6e7ec7da68a42bfeb"
      ],
      "author": {
        "name": "Bill Spitzak",
        "email": "spitzak@gmail.com",
        "time": "Tue Aug 30 22:03:15 2016 -0700"
      },
      "committer": {
        "name": "Søren Sandmann Pedersen",
        "email": "soren.sandmann@gmail.com",
        "time": "Sat Sep 03 14:53:07 2016 -0400"
      },
      "message": "pixman-filter: Made Gaussian a bit wider\n\nExpanded the size slightly (from ~4.25 to 5) to make the cutoff less\nnoticable.  Previouly the value at the cutoff was\ngaussian_filter(sqrt(2)*3/2) \u003d 0.00626 which is larger than the\ndifference between 8-bit pixels (1/255 \u003d 0.003921). New cutoff is\ngaussian_filter(2.5) \u003d 0.001089 which is smaller.\n\nv11: added some math to commit message\nv14: left SIGMA in there\nSigned-off-by: Bill Spitzak \u003cspitzak@gmail.com\u003e\nAcked-by: Oded Gabbay \u003coded.gabbay@gmail.com\u003e\nReviewed-by: Søren Sandmann \u003csoren.sandmann@gmail.com\u003e\n"
    },
    {
      "commit": "d286078b28bdef15aa0498e6e7ec7da68a42bfeb",
      "tree": "61e02e21e135679acb8d9b273377c7223245047d",
      "parents": [
        "133142449b22fc2799d922479514e677ae91f0f5"
      ],
      "author": {
        "name": "Bill Spitzak",
        "email": "spitzak@gmail.com",
        "time": "Tue Aug 30 22:03:14 2016 -0700"
      },
      "committer": {
        "name": "Søren Sandmann Pedersen",
        "email": "soren.sandmann@gmail.com",
        "time": "Sat Sep 03 14:53:07 2016 -0400"
      },
      "message": "pixman-filter: Nested polynomial for cubic\n\nv11: Restored range checks\n\nSigned-off-by: Bill Spitzak \u003cspitzak@gmail.com\u003e\nReviewed-by: Oded Gabbay \u003coded.gabbay@gmail.com\u003e\n"
    },
    {
      "commit": "133142449b22fc2799d922479514e677ae91f0f5",
      "tree": "554ebcd8b3b0d97f45bb3456154454659e9626eb",
      "parents": [
        "3b46fce6fec566e93a8a6b90df113272d203aafc"
      ],
      "author": {
        "name": "Søren Sandmann Pedersen",
        "email": "soren.sandmann@gmail.com",
        "time": "Fri Apr 08 22:32:30 2016 -0400"
      },
      "committer": {
        "name": "Søren Sandmann Pedersen",
        "email": "soren.sandmann@gmail.com",
        "time": "Sat Sep 03 14:53:06 2016 -0400"
      },
      "message": "pixman-filter: Fix several issues related to normalization\n\nThere are a few bugs in the current normalization code\n\n(1) The normalization is based on the sum of the *floating point*\n    values generated by integral(). But in order to get the sum to be\n    close to pixman_fixed_1, the sum of the rounded fixed point values\n    should be used.\n\n(2) The multiplications in the normalization loops often round the\n    same way, so the residual error can fairly large.\n\n(3) The residual error is added to the sample located at index\n    (width - width / 2), which is not the midpoint for odd widths (and\n    for width 1 is in fact outside the array).\n\nThis patch fixes these issues by (1) using the sum of the fixed point\nvalues as the total to divide by, (2) doing error diffusion in the\nnormalization loop, and (3) putting any residual error (which is now\nguaranteed to be less than pixman_fixed_e) at the first sample, which\nis the only one that didn\u0027t get any error diffused into it.\n\nSigned-off-by: Søren Sandmann \u003csoren.sandmann@gmail.com\u003e\n"
    },
    {
      "commit": "3b46fce6fec566e93a8a6b90df113272d203aafc",
      "tree": "51a1b131f919eec4e978f64aa13489a418045e47",
      "parents": [
        "8855b3a2a231ab348c02c0d92f0051b079eabfa3"
      ],
      "author": {
        "name": "Søren Sandmann Pedersen",
        "email": "soren.sandmann@gmail.com",
        "time": "Tue Aug 30 22:03:12 2016 -0700"
      },
      "committer": {
        "name": "Søren Sandmann Pedersen",
        "email": "soren.sandmann@gmail.com",
        "time": "Fri Sep 02 00:40:12 2016 -0400"
      },
      "message": "pixman-filter: Speed up BOX/BOX filter\n\nThe convolution of two BOX filters is simply the length of the\ninterval where both are non-zero, so we can simply return width from\nthe integral() function because the integration region has already\nbeen restricted to be such that both functions are non-zero on it.\n\nThis is both faster and more accurate than doing numerical integration.\n\nThis patch is based on one by Bill Spitzak\n\n    https://lists.freedesktop.org/archives/pixman/2016-March/004446.html\n\nwith these changes:\n\n- Rebased to not assume any changes in the arguments to integral().\n\n- Dropped the multiplication by scale\n\n- Added more details in the commit message.\n\nSigned-off-by: Søren Sandmann \u003csoren.sandmann@gmail.com\u003e\nReviewed-by: Bill Spitzak \u003cspitzak@gmail.com\u003e\n"
    },
    {
      "commit": "8855b3a2a231ab348c02c0d92f0051b079eabfa3",
      "tree": "96713c3b64be2661e957b8e781dc395a297b1fe4",
      "parents": [
        "6ae281fbb7a02b94a3900b6677a51cdd28096ed7"
      ],
      "author": {
        "name": "Bill Spitzak",
        "email": "spitzak@gmail.com",
        "time": "Tue Aug 30 22:03:11 2016 -0700"
      },
      "committer": {
        "name": "Søren Sandmann Pedersen",
        "email": "soren.sandmann@gmail.com",
        "time": "Fri Sep 02 00:40:12 2016 -0400"
      },
      "message": "pixman-filter: integral splitting is only needed for triangle filter\n\nOnly the triangle is discontinuous at 0. The other filters resemble a\ncubic closely enough that Simpsons integration works without\nsplitting.\n\nChanges by Søren: Rebase without the changes to the integral function,\nupdate comment to match the new code.\n\nSigned-off-by: Bill Spitzak \u003cspitzak@gmail.com\u003e\nSigned-off-by: Søren Sandmann \u003csoren.sandmann@gmail.com\u003e\nReviewed-by: Søren Sandmann \u003csoren.sandmann@gmail.com\u003e\n"
    },
    {
      "commit": "6ae281fbb7a02b94a3900b6677a51cdd28096ed7",
      "tree": "d5000bc0f9cc2fc8e9bb380eb2ca8b77678a80b7",
      "parents": [
        "6acaf2bcb1246529143c112dbce6dd9d6f7cb51e"
      ],
      "author": {
        "name": "Bill Spitzak",
        "email": "spitzak@gmail.com",
        "time": "Tue Aug 30 22:03:10 2016 -0700"
      },
      "committer": {
        "name": "Søren Sandmann Pedersen",
        "email": "soren.sandmann@gmail.com",
        "time": "Fri Sep 02 00:40:12 2016 -0400"
      },
      "message": "pixman-filter: Correct Simpsons integration\n\nSimpsons uses cubic curve fitting, with 3 samples defining each\ncubic. This makes the weights of the samples be in a pattern of\n1,4,2,4,2...4,1, and then dividing the result by 3.\n\nThe previous code was using weights of 1,2,0,6,0,6...,2,1.\n\nWith this fix the integration is accurate enough that the number of\nsamples could be reduced a lot. Multiples of 12 seem to work best.\n\nv7: Merged with patch to reduce from 128 samples to 16\nv9: Changed samples from 16 to 12\nv10: Fixed rebase error that made it not compile\nv11: minor whitespace change\nv14: more whitespace changes\n\nSigned-off-by: Bill Spitzak \u003cspitzak@gmail.com\u003e\nReviewed-by: Oded Gabbay \u003coded.gabbay@gmail.com\u003e\nReviewed-by: Søren Sandmann \u003csoren.sandmann@gmail.com\u003e\n"
    },
    {
      "commit": "6acaf2bcb1246529143c112dbce6dd9d6f7cb51e",
      "tree": "9492d476710db2cb2e0d5d1f6e9caf4173504f78",
      "parents": [
        "d0e6c9f4f65e429058b97d2f947b048b445c17c4"
      ],
      "author": {
        "name": "Bill Spitzak",
        "email": "spitzak@gmail.com",
        "time": "Tue Aug 30 22:03:09 2016 -0700"
      },
      "committer": {
        "name": "Søren Sandmann Pedersen",
        "email": "soren.sandmann@gmail.com",
        "time": "Fri Sep 02 00:40:12 2016 -0400"
      },
      "message": "pixman-filter: reduce amount of malloc/free/memcpy to generate filter\n\nRearranged so that the entire block of memory for the filter pair\nis allocated first, and then filled in. Previous version allocated\nand freed two temporary buffers for each filter and did an extra\nmemcpy.\n\nv8: small refactor to remove the filter_width function\n\nv10: Restored filter_width function but with arguments changed to\n     match later patches\n\nv11: Removed unused arg and pointer from filter_width function\n     Whitespace fixes.\n\nSigned-off-by: Bill Spitzak \u003cspitzak@gmail.com\u003e\nReviewed-by: Oded Gabbay \u003coded.gabbay@gmail.com\u003e\nAcked-by: Søren Sandmann \u003csoren.sandmann@gmail.com\u003e\n"
    },
    {
      "commit": "d0e6c9f4f65e429058b97d2f947b048b445c17c4",
      "tree": "ae666a353501d29319710c4ac14ae2844e1f24b2",
      "parents": [
        "375f5ec5c5d2a6cc3586f57e36fdf08a3d0ac4e4"
      ],
      "author": {
        "name": "Bill Spitzak",
        "email": "spitzak@gmail.com",
        "time": "Tue Aug 30 22:03:08 2016 -0700"
      },
      "committer": {
        "name": "Søren Sandmann Pedersen",
        "email": "soren.sandmann@gmail.com",
        "time": "Fri Sep 02 00:40:11 2016 -0400"
      },
      "message": "pixman-image: Added enable-gnuplot config to view filters in gnuplot\n\nIf enable-gnuplot is configured, then you can pipe the output of a\npixman-using program to gnuplot and get a continuously-updated plot of\nthe horizontal filter. This works well with demos/scale to test the\nfilter generation.\n\nThe plot is all the different subposition filters shuffled\ntogether. This is misleading in a few cases:\n\n  IMPULSE.BOX - goes up and down as the subfilters have different\n                numbers of non-zero samples\n\n  IMPULSE.TRIANGLE - somewhat crooked for the same reason\n\n  1-wide filters - looks triangular, but a 1-wide box would be more\n                   accurate\n\nChanges by Søren: Rewrote the pixman-filter.c part to\n     - make it generate correct coordinates\n     - add a comment on how coordinates are generated\n     - in rounding.txt, add a ceil() variant of the first-sample\n       formula\n     - make the gnuplot output slightly prettier\n\nv7: First time this ability was included\n\nv8: Use config option\n    Moved code to the filter generator\n    Modified scale demo to not call filter generator a second time.\n\nv10: Only print if successful generation of plots\n     Use #ifdef, not #if\n\nv11: small whitespace fixes\nv12: output range from -width/2 to width/2 and include y\u003d\u003d0, to avoid misleading plots\n     for subsample_bits\u003d\u003d0 and for box filters which may have no small values.\n\nSigned-off-by: Bill Spitzak \u003cspitzak@gmail.com\u003e\n"
    },
    {
      "commit": "375f5ec5c5d2a6cc3586f57e36fdf08a3d0ac4e4",
      "tree": "3653060f8bb9dcc019a55462c6445fef76f4ec79",
      "parents": [
        "afee2adc1e0052795a6ca8195e09a597bebde834"
      ],
      "author": {
        "name": "Bill Spitzak",
        "email": "spitzak@gmail.com",
        "time": "Tue Aug 30 22:03:07 2016 -0700"
      },
      "committer": {
        "name": "Søren Sandmann Pedersen",
        "email": "soren.sandmann@gmail.com",
        "time": "Fri Sep 02 00:40:11 2016 -0400"
      },
      "message": "demos/scale: Added pulldown to choose PIXMAN_FILTER_* value\n\nThis is very useful for comparing the results of SEPARABLE_CONVOLUTION\nwith BILINEAR and NEAREST.\n\nv14: Removed good/best items\nv15: Skip filter generation so gnuplot output continues showing previous value\n\nSigned-off-by: Bill Spitzak \u003cspitzak@gmail.com\u003e\nReviewed-by: Oded Gabbay \u003coded.gabbay@gmail.com\u003e\n"
    },
    {
      "commit": "afee2adc1e0052795a6ca8195e09a597bebde834",
      "tree": "e5be36339fc7b442c24eddca4080365c7cea21f3",
      "parents": [
        "1e1af34d3b74808d08a4067ff9d093a020e25da5"
      ],
      "author": {
        "name": "Bill Spitzak",
        "email": "spitzak@gmail.com",
        "time": "Tue Aug 30 22:03:06 2016 -0700"
      },
      "committer": {
        "name": "Søren Sandmann Pedersen",
        "email": "soren.sandmann@gmail.com",
        "time": "Fri Sep 02 00:40:11 2016 -0400"
      },
      "message": "demos/scale: Default to locked axis\n\nSigned-off-by: Bill Spitzak \u003cspitzak@gmail.com\u003e\nReviewed-by: Søren Sandmann \u003csoren.sandmann@gmail.com\u003e\n"
    },
    {
      "commit": "1e1af34d3b74808d08a4067ff9d093a020e25da5",
      "tree": "3a755589866ad7dcd7581b3b5c485aa36425efbb",
      "parents": [
        "99b574109dabff9c3c6fa9296b3b0534411b6fdb"
      ],
      "author": {
        "name": "Bill Spitzak",
        "email": "spitzak@gmail.com",
        "time": "Tue Aug 30 22:03:05 2016 -0700"
      },
      "committer": {
        "name": "Søren Sandmann Pedersen",
        "email": "soren.sandmann@gmail.com",
        "time": "Fri Sep 02 00:40:11 2016 -0400"
      },
      "message": "demos/scale: fix blank subsamples spin box\n\nIt now shows the initial value of 4 when the demo is started\n\nSigned-off-by: Bill Spitzak \u003cspitzak@gmail.com\u003e\nReviewed-by: Søren Sandmann \u003csoren.sandmann@gmail.com\u003e\n"
    },
    {
      "commit": "99b574109dabff9c3c6fa9296b3b0534411b6fdb",
      "tree": "d5ed371f1d29d626d29f394dd4e633bd8bf297b4",
      "parents": [
        "b9ead7ddf7c2bb373808e59a4f625e2e732ef2e2"
      ],
      "author": {
        "name": "Bill Spitzak",
        "email": "spitzak@gmail.com",
        "time": "Tue Aug 30 22:03:04 2016 -0700"
      },
      "committer": {
        "name": "Søren Sandmann Pedersen",
        "email": "soren.sandmann@gmail.com",
        "time": "Fri Sep 02 00:40:11 2016 -0400"
      },
      "message": "demos/scale: Compute filter size using boundary of xformed ellipse\n\nInstead of using the boundary of xformed rectangle, use the boundary\nof xformed ellipse. This is much more accurate and less blurry. In\nparticular the filtering does not change as the image is rotated.\n\nSigned-off-by: Bill Spitzak \u003cspitzak@gmail.com\u003e\nReviewed-by: Oded Gabbay \u003coded.gabbay@gmail.com\u003e\nReviewed-by: Soren Sandmann \u003csoren.sandmann@gmail.com\u003e\n"
    },
    {
      "commit": "b9ead7ddf7c2bb373808e59a4f625e2e732ef2e2",
      "tree": "e818114b522118d5d37fe7a5de734b0a144d6c5a",
      "parents": [
        "76123690139a7f342776a885a7478a6c81712145"
      ],
      "author": {
        "name": "Søren Sandmann Pedersen",
        "email": "soren.sandmann@gmail.com",
        "time": "Tue Aug 30 22:03:03 2016 -0700"
      },
      "committer": {
        "name": "Søren Sandmann Pedersen",
        "email": "soren.sandmann@gmail.com",
        "time": "Fri Sep 02 00:40:11 2016 -0400"
      },
      "message": "More general BILINEAR\u003d\u003eNEAREST reduction\n\nGeneralize and simplify the code that reduces BILINEAR to NEAREST so\nthat the reduction happens for all affine transformations where\nt00...t12 are integers and (t00 + t01) and (t10 + t11) are both\nodd. This is a sufficient condition for the resulting transformed\ncoordinates to be exactly at the center of a pixel so that BILINEAR\nbecomes identical to NEAREST.\n\nV2: Address some comments by Bill Spitzak\n\nSigned-off-by: Søren Sandmann \u003csoren.sandmann@gmail.com\u003e\nReviewed-by: Bill Spitzak \u003cspitzak@gmail.com\u003e\n"
    },
    {
      "commit": "76123690139a7f342776a885a7478a6c81712145",
      "tree": "533c7cc7d9562f99090b9ba4f9c94bb40db4b801",
      "parents": [
        "eb4a832ec22e4257b59cac752b02a1d27f4363bc"
      ],
      "author": {
        "name": "Søren Sandmann Pedersen",
        "email": "soren.sandmann@gmail.com",
        "time": "Tue Aug 30 22:03:02 2016 -0700"
      },
      "committer": {
        "name": "Søren Sandmann Pedersen",
        "email": "soren.sandmann@gmail.com",
        "time": "Fri Sep 02 00:40:11 2016 -0400"
      },
      "message": "Add new test of filter reduction from BILINEAR to NEAREST\n\nThis new test tests a bunch of bilinear downscalings, where many have\na transformation such that the BILINEAR filter can be reduced to\nNEAREST (and many don\u0027t).\n\nA CRC32 is computed for all the resulting images and compared to a\nknown-good value for both 4-bit and 7-bit interpolation.\n\nV2: Remove leftover comment, some minor formatting fixes, use a\ntimestamp as the PRNG seed.\n\nSigned-off-by: Søren Sandmann \u003csoren.sandmann@gmail.com\u003e\nReviewed-by: Bill Spitzak \u003cspitzak@gmail.com\u003e\n"
    },
    {
      "commit": "eb4a832ec22e4257b59cac752b02a1d27f4363bc",
      "tree": "e39c588e8dadd8c24eef3eb995ff558c2c525620",
      "parents": [
        "7c6066b700c7cdd4aeb8be426b14b3a5f0de4b6c"
      ],
      "author": {
        "name": "Søren Sandmann Pedersen",
        "email": "soren.sandmann@gmail.com",
        "time": "Tue Aug 30 22:03:01 2016 -0700"
      },
      "committer": {
        "name": "Søren Sandmann Pedersen",
        "email": "soren.sandmann@gmail.com",
        "time": "Fri Sep 02 00:40:11 2016 -0400"
      },
      "message": "pixman-fast-path.c: Pick NEAREST affine fast paths before BILINEAR ones\n\nWhen a BILINEAR filter is reduced to NEAREST, it is possible for both\ntypes of fast paths to run; in this case, the NEAREST ones should be\npreferred as that is the simpler filter.\n\nSigned-off-by: Soren Sandmann \u003csoren.sandmann@gmail.com\u003e\nReviewed-by: Bill Spitzak \u003cspitzak@gmail.com\u003e\n"
    },
    {
      "commit": "7c6066b700c7cdd4aeb8be426b14b3a5f0de4b6c",
      "tree": "ada5030d57244ae8300aeb2ddbe5babeb42afee1",
      "parents": [
        "342cbf1644125919c51ab099e434951429e66411"
      ],
      "author": {
        "name": "Thomas Petazzoni",
        "email": "thomas.petazzoni@free-electrons.com",
        "time": "Sun Jan 17 15:22:50 2016 +0100"
      },
      "committer": {
        "name": "Oded Gabbay",
        "email": "oded.gabbay@gmail.com",
        "time": "Sun Jan 31 16:15:26 2016 +0200"
      },
      "message": "pixman-private: include \u003cfloat.h\u003e only in C code\n\n\u003cfloat.h\u003e is included unconditionally by pixman-private.h, which in\nturn gets included by assembler files. Unfortunately, with certain C\nlibraries (like the musl C library), \u003cfloat.h\u003e cannot be included in\nassembler files:\n\n  CCLD     libpixman-arm-simd.la\n/home/test/buildroot/output/host/usr/arm-buildroot-linux-musleabihf/sysroot/usr/include/float.h: Assembler messages:\n/home/test/buildroot/output/host/usr/arm-buildroot-linux-musleabihf/sysroot/usr/include/float.h:8: Error: bad instruction `int __flt_rounds(void)\u0027\n/home/test/buildroot/output/host/usr/arm-buildroot-linux-musleabihf/sysroot/usr/include/float.h: Assembler messages:\n/home/test/buildroot/output/host/usr/arm-buildroot-linux-musleabihf/sysroot/usr/include/float.h:8: Error: bad instruction `int __flt_rounds(void)\u0027\n\nIt turns out however that \u003cfloat.h\u003e is not needed by assembly files,\nso we move its inclusion within the #ifndef __ASSEMBLER__ condition,\nwhich solves the problem.\n\nSigned-off-by: Thomas Petazzoni \u003cthomas.petazzoni@free-electrons.com\u003e\nReviewed-by: Siarhei Siamashka \u003csiarhei.siamashka@gmail.com\u003e\n"
    },
    {
      "commit": "342cbf1644125919c51ab099e434951429e66411",
      "tree": "54108135a35cd806d48393180692a9c8b5f25a25",
      "parents": [
        "af0689716a011de3645aaefc57138c9d1d0e3ae6"
      ],
      "author": {
        "name": "Andrea Canciani",
        "email": "ranma42@gmail.com",
        "time": "Wed Dec 23 23:22:02 2015 +0100"
      },
      "committer": {
        "name": "Andrea Canciani",
        "email": "ranma42@gmail.com",
        "time": "Wed Dec 30 14:06:40 2015 +0100"
      },
      "message": "build: Distinguish SKIP and FAIL on Win32\n\nThe `check` target in test/Makefile.win32 assumed that any non-0 exit\ncode from the tests was an error, but the testsuite is currently using\n77 as a SKIP exit code (based on the convention used in autotools).\n\nFixes fence-image-self-test and cover-test (now reported as SKIP).\n\nSigned-off-by: Andrea Canciani \u003cranma42@gmail.com\u003e\nAcked-by: Oded Gabbay \u003coded.gabbay@gmail.com\u003e\n"
    },
    {
      "commit": "af0689716a011de3645aaefc57138c9d1d0e3ae6",
      "tree": "845adaf81de7fc8ffef725cf52af2e401182c13d",
      "parents": [
        "93b876c11063f58c87fd93ed41e4d3f483bf59ab"
      ],
      "author": {
        "name": "Simon Richter",
        "email": "Simon.Richter@hogyros.de",
        "time": "Tue Dec 22 22:45:33 2015 +0100"
      },
      "committer": {
        "name": "Andrea Canciani",
        "email": "ranma42@gmail.com",
        "time": "Wed Dec 23 21:24:17 2015 +0100"
      },
      "message": "build: Use `del` instead of `rm` on `cmd.exe` shells\n\nThe `rm` command is not usually available when running on Win32 in a\n`cmd.exe` shell. Instead the shell provides the `del` builtin, which\nhas somewhat more limited wildcars expansion and error handling.\n\nThis makes all of the Makefile targets work on Win32 both using\n`cmd.exe` and using the MSYS environment.\n\nSigned-off-by: Simon Richter \u003cSimon.Richter@hogyros.de\u003e\nSigned-off-by: Andrea Canciani \u003cranma42@gmail.com\u003e\nAcked-by: Oded Gabbay \u003coded.gabbay@gmail.com\u003e\n"
    },
    {
      "commit": "93b876c11063f58c87fd93ed41e4d3f483bf59ab",
      "tree": "c0a4becb82890d08ab0afba5573763cdf4adc287",
      "parents": [
        "cc35d01980df2e2d686568ef7f1216bcc809b5aa"
      ],
      "author": {
        "name": "Andrea Canciani",
        "email": "ranma42@gmail.com",
        "time": "Tue Dec 22 22:46:05 2015 +0100"
      },
      "committer": {
        "name": "Andrea Canciani",
        "email": "ranma42@gmail.com",
        "time": "Wed Dec 23 21:24:06 2015 +0100"
      },
      "message": "build: Do not use `mkdir -p` on Windows\n\nWhen the build is performed using `cmd.exe` as shell, the `mkdir`\ncommand does not support the `-p` flag. The ability to create multiple\nnetsted folder is not used, hence it can be easily replaced by only\ncreating the directory if it does not exist.\n\nThis makes the build work on the `cmd.exe` shell, except for the\n`clean` targets.\n\nSigned-off-by: Andrea Canciani \u003cranma42@gmail.com\u003e\nAcked-by: Oded Gabbay \u003coded.gabbay@gmail.com\u003e\n"
    },
    {
      "commit": "cc35d01980df2e2d686568ef7f1216bcc809b5aa",
      "tree": "8ab8ad717c82e51d2bd61255f236515c373cd7ff",
      "parents": [
        "ceb49cbda93a59bf41a5a9908114534208f8250c"
      ],
      "author": {
        "name": "Andrea Canciani",
        "email": "ranma42@gmail.com",
        "time": "Wed Dec 23 11:15:59 2015 +0100"
      },
      "committer": {
        "name": "Andrea Canciani",
        "email": "ranma42@gmail.com",
        "time": "Wed Dec 23 21:23:57 2015 +0100"
      },
      "message": "build: Avoid phony `pixman` target in test/Makefile.win32\n\nInstead of explicitly depending on \"pixman\" for the \"all\" and \"check\"\ntargets, rely on the dependency to the .lib file\n\nSigned-off-by: Andrea Canciani \u003cranma42@gmail.com\u003e\nReviewed-by: Oded Gabbay \u003coded.gabbay@gmail.com\u003e\n"
    },
    {
      "commit": "ceb49cbda93a59bf41a5a9908114534208f8250c",
      "tree": "a5c4cb66ad7b679bdde031770a646b86d01f51e5",
      "parents": [
        "ba1868a854b1a2073bc44c1074596bd9a8891245"
      ],
      "author": {
        "name": "Andrea Canciani",
        "email": "ranma42@gmail.com",
        "time": "Tue Dec 22 21:53:14 2015 +0100"
      },
      "committer": {
        "name": "Andrea Canciani",
        "email": "ranma42@gmail.com",
        "time": "Wed Dec 23 21:23:46 2015 +0100"
      },
      "message": "build: Remove use of BUILT_SOURCES from Makefile.win32\n\nSince 3d81d89c292058522cce91338028d9b4c4a23c24 BUILT_SOURCES is not\nused anymore, but it was unintentionally left in Win32 Makefiles.\n\nSigned-off-by: Andrea Canciani \u003cranma42@gmail.com\u003e\nReviewed-by: Oded Gabbay \u003coded.gabbay@gmail.com\u003e\n"
    },
    {
      "commit": "ba1868a854b1a2073bc44c1074596bd9a8891245",
      "tree": "dd20378b9235b15779dcda024584e8825a003829",
      "parents": [
        "0e72e780865196e4edd720148d9a99704cd114b5"
      ],
      "author": {
        "name": "Oded Gabbay",
        "email": "oded.gabbay@gmail.com",
        "time": "Wed Dec 23 10:46:40 2015 +0200"
      },
      "committer": {
        "name": "Oded Gabbay",
        "email": "oded.gabbay@gmail.com",
        "time": "Wed Dec 23 10:46:40 2015 +0200"
      },
      "message": "Post 0.34 branch creation version bump to 0.35.1\n\nSigned-off-by: Oded Gabbay \u003coded.gabbay@gmail.com\u003e\n"
    },
    {
      "commit": "0e72e780865196e4edd720148d9a99704cd114b5",
      "tree": "b3aca5c2ce72224c0a07574c8132158659523fb9",
      "parents": [
        "65f35270e4531621bd2e1ee5cdb31c56c3051c43"
      ],
      "author": {
        "name": "Oded Gabbay",
        "email": "oded.gabbay@gmail.com",
        "time": "Tue Dec 22 15:55:32 2015 +0200"
      },
      "committer": {
        "name": "Oded Gabbay",
        "email": "oded.gabbay@gmail.com",
        "time": "Tue Dec 22 15:55:32 2015 +0200"
      },
      "message": "Post-release version bump to 0.33.7\n\nSigned-off-by: Oded Gabbay \u003coded.gabbay@gmail.com\u003e\n"
    },
    {
      "commit": "65f35270e4531621bd2e1ee5cdb31c56c3051c43",
      "tree": "dca021ca1e5728cd61db74cdf5aa1020cb8fb1e2",
      "parents": [
        "a566f627dbd6ea8f2cba70a446e62caaa2ecbd26"
      ],
      "author": {
        "name": "Oded Gabbay",
        "email": "oded.gabbay@gmail.com",
        "time": "Tue Dec 22 15:30:10 2015 +0200"
      },
      "committer": {
        "name": "Oded Gabbay",
        "email": "oded.gabbay@gmail.com",
        "time": "Tue Dec 22 15:30:10 2015 +0200"
      },
      "message": "Pre-release version bump to 0.33.6\n\nSigned-off-by: Oded Gabbay \u003coded.gabbay@gmail.com\u003e\n"
    },
    {
      "commit": "a566f627dbd6ea8f2cba70a446e62caaa2ecbd26",
      "tree": "73ea02e2c99bc48c7e4e57965e7d8fd22d3a0ea1",
      "parents": [
        "d24b415f3e2753a588759d028b811e1ce38fea6c"
      ],
      "author": {
        "name": "Oded Gabbay",
        "email": "oded.gabbay@gmail.com",
        "time": "Tue Dec 15 14:53:18 2015 +0200"
      },
      "committer": {
        "name": "Oded Gabbay",
        "email": "oded.gabbay@gmail.com",
        "time": "Tue Dec 22 11:19:01 2015 +0200"
      },
      "message": "configura.ac: fix test for SSE2 \u0026 SSSE3 assembler support\n\nThis patch modifies the SSE2 \u0026 SSSE3 tests in configure.ac to use a\nglobal variable to initialize vector variables. In addition, we now\nreturn the value of the computation instead of 0.\n\nThis is done so gcc 4.9 (and lower) won\u0027t optimize the SSE assembly\ninstructions (when using -O1 and higher), because then the configure test\nmight incorrectly pass even though the assembler doesn\u0027t support the\nSSE instructions (the test will pass because the compiler does support\nthe intrinsics).\n\nv2: instead of using volatile, use a global variable as input\n\nSigned-off-by: Oded Gabbay \u003coded.gabbay@gmail.com\u003e\n"
    },
    {
      "commit": "d24b415f3e2753a588759d028b811e1ce38fea6c",
      "tree": "3d9ebc068aeae2a766d99c01e59d24816c3a7123",
      "parents": [
        "312e381523662aacc2f0ea90eb9ae0634ac5b327"
      ],
      "author": {
        "name": "Andrea Canciani",
        "email": "ranma42@gmail.com",
        "time": "Sun Oct 11 09:45:57 2015 +0200"
      },
      "committer": {
        "name": "Matt Turner",
        "email": "mattst88@gmail.com",
        "time": "Wed Nov 18 14:19:58 2015 -0800"
      },
      "message": "mmx: Improve detection of support for \"K\" constraint\n\nOlder versions of clang emitted an error on the \"K\" constraint, but at\nleast since version 3.7 it is supported. Just like gcc, this\nconstraint is only allowed for constants, but apparently clang\nrequires them to be known before inlining.\n\nUsing the macro definition _mm_shuffle_pi16(A, N) ensures that the \"K\"\nconstraint is always applied to a literal constant, independently from\nthe compiler optimizations and allows building pixman-mmx on modern\nclang.\n\nReviewed-by: Matt Turner \u003cmattst88@gmail.com\u003e\nSigned-off-by: Andrea Canciani \u003cranma42@gmail.com\u003e\n"
    },
    {
      "commit": "312e381523662aacc2f0ea90eb9ae0634ac5b327",
      "tree": "f3dafdec10742b3d17461db6210f647cfe48e9eb",
      "parents": [
        "3a50806cbeb713b7d1d07a06c6b503d9e43aefe8"
      ],
      "author": {
        "name": "Matt Turner",
        "email": "mattst88@gmail.com",
        "time": "Wed Nov 18 14:16:24 2015 -0800"
      },
      "committer": {
        "name": "Matt Turner",
        "email": "mattst88@gmail.com",
        "time": "Wed Nov 18 14:19:12 2015 -0800"
      },
      "message": "Revert \"mmx: Use MMX2 intrinsics from xmmintrin.h directly.\"\n\nThis reverts commit 7de61d8d14e84623b6fa46506eb74f938287f536.\n\nNewer versions of gcc allow inclusion of xmmintrin.h without -msse, but\nstill won\u0027t allow usage of the intrinsics.\n\nBugzilla: https://bugs.gentoo.org/show_bug.cgi?id\u003d564024\n"
    },
    {
      "commit": "3a50806cbeb713b7d1d07a06c6b503d9e43aefe8",
      "tree": "9487c026c02a574ab1a0067dac09a45f6536d81d",
      "parents": [
        "fa71d08a81c9bf3f2366ee45474ff868d9e10b8e"
      ],
      "author": {
        "name": "Oded Gabbay",
        "email": "oded.gabbay@gmail.com",
        "time": "Fri Oct 23 18:33:55 2015 +0300"
      },
      "committer": {
        "name": "Oded Gabbay",
        "email": "oded.gabbay@gmail.com",
        "time": "Fri Oct 23 18:33:55 2015 +0300"
      },
      "message": "Post-release version bump to 0.33.5\n\nSigned-off-by: Oded Gabbay \u003coded.gabbay@gmail.com\u003e\n"
    },
    {
      "commit": "fa71d08a81c9bf3f2366ee45474ff868d9e10b8e",
      "tree": "fb17358f72787aca95a3f8d6ebc85092d602dcce",
      "parents": [
        "9728241bd098bc4260e6cd83997dfecc64adc356"
      ],
      "author": {
        "name": "Oded Gabbay",
        "email": "oded.gabbay@gmail.com",
        "time": "Fri Oct 23 17:58:49 2015 +0300"
      },
      "committer": {
        "name": "Oded Gabbay",
        "email": "oded.gabbay@gmail.com",
        "time": "Fri Oct 23 17:58:49 2015 +0300"
      },
      "message": "Pre-release version bump to 0.33.4\n\nSigned-off-by: Oded Gabbay \u003coded.gabbay@gmail.com\u003e\n"
    },
    {
      "commit": "9728241bd098bc4260e6cd83997dfecc64adc356",
      "tree": "f0793b65c7743a226efbcaf4ae73720b5f91a30d",
      "parents": [
        "7de61d8d14e84623b6fa46506eb74f938287f536"
      ],
      "author": {
        "name": "Andrea Canciani",
        "email": "ranma42@gmail.com",
        "time": "Tue Oct 13 13:35:59 2015 +0200"
      },
      "committer": {
        "name": "Pekka Paalanen",
        "email": "pekka.paalanen@collabora.co.uk",
        "time": "Fri Oct 16 15:05:02 2015 +0300"
      },
      "message": "test: Fix fence-image-self-test on Mac\n\nOn MacOS X, according to the manpage of mprotect(), \"When a program\nviolates the protections of a page, it gets a SIGBUS or SIGSEGV\nsignal.\", but fence-image-self-test was only accepting a SIGSEGV as\nnotification of invalid access.\n\nFixes fence-image-self-test\n\nReviewed-by: Pekka Paalanen \u003cpekka.paalanen@collabora.co.uk\u003e\n"
    },
    {
      "commit": "7de61d8d14e84623b6fa46506eb74f938287f536",
      "tree": "16cbac196caeed23b06878b76d35c1d28e8782db",
      "parents": [
        "90e62c086766afffd289a321c7de8ea4b5cac87d"
      ],
      "author": {
        "name": "Matt Turner",
        "email": "mattst88@gmail.com",
        "time": "Sun Oct 11 14:44:46 2015 -0700"
      },
      "committer": {
        "name": "Matt Turner",
        "email": "mattst88@gmail.com",
        "time": "Tue Oct 13 09:40:42 2015 -0700"
      },
      "message": "mmx: Use MMX2 intrinsics from xmmintrin.h directly.\n\nWe had lots of hacks to handle the inability to include xmmintrin.h\nwithout compiling with -msse (lest SSE instructions be used in\npixman-mmx.c). Some recent version of gcc relaxed this restriction.\n\nChange configure.ac to test that xmmintrin.h can be included and that we\ncan use some intrinsics from it, and remove the work-around code from\npixman-mmx.c.\n\nEvidently allows gcc 4.9.3 to optimize better as well:\n\n   text\t   data\t    bss\t    dec\t    hex\tfilename\n 657078\t  30848\t    680\t 688606\t  a81de\tlibpixman-1.so.0.33.3 before\n 656710\t  30848\t    680\t 688238\t  a806e\tlibpixman-1.so.0.33.3 after\n\nReviewed-by: Siarhei Siamashka \u003csiarhei.siamashka@gmail.com\u003e\nTested-by: Pekka Paalanen \u003cpekka.paalanen@collabora.co.uk\u003e\nSigned-off-by: Matt Turner \u003cmattst88@gmail.com\u003e\n"
    },
    {
      "commit": "90e62c086766afffd289a321c7de8ea4b5cac87d",
      "tree": "2fb983f7e160e5066b031813338ea30fdb011c55",
      "parents": [
        "2876d8d3dd6a71cb9eb3ac93e5b9c18b71a452da"
      ],
      "author": {
        "name": "Siarhei Siamashka",
        "email": "siarhei.siamashka@gmail.com",
        "time": "Fri Sep 04 15:39:00 2015 +0300"
      },
      "committer": {
        "name": "Oded Gabbay",
        "email": "oded.gabbay@gmail.com",
        "time": "Tue Sep 29 14:21:46 2015 +0300"
      },
      "message": "vmx: implement fast path vmx_composite_over_n_8888\n\nRunning \"lowlevel-blt-bench over_n_8888\" on Playstation3 3.2GHz,\nGentoo ppc (32-bit userland) gave the following results:\n\nbefore:  over_n_8888 \u003d  L1: 147.47  L2: 205.86  M:121.07\nafter:   over_n_8888 \u003d  L1: 287.27  L2: 261.09  M:133.48\n\nCairo non-trimmed benchmarks on POWER8, 3.4GHz 8 Cores:\n\nocitysmap          659.69  -\u003e 611.71   :  1.08x speedup\nxfce4-terminal-a1  2725.22 -\u003e 2547.47  :  1.07x speedup\n\nSigned-off-by: Siarhei Siamashka \u003csiarhei.siamashka@gmail.com\u003e\nSigned-off-by: Oded Gabbay \u003coded.gabbay@gmail.com\u003e\n"
    },
    {
      "commit": "2876d8d3dd6a71cb9eb3ac93e5b9c18b71a452da",
      "tree": "8177094b6196874e5c746c7e2061f30646e455fc",
      "parents": [
        "0e2e9751282b19280c92be4a80c5ae476bae0ce4"
      ],
      "author": {
        "name": "Ben Avison",
        "email": "bavison@riscosopen.org",
        "time": "Fri Sep 04 03:09:20 2015 +0100"
      },
      "committer": {
        "name": "Pekka Paalanen",
        "email": "pekka.paalanen@collabora.co.uk",
        "time": "Fri Sep 25 14:26:04 2015 +0300"
      },
      "message": "affine-bench: remove 8e margin from COVER area\n\nPatch \"Remove the 8e extra safety margin in COVER_CLIP analysis\" reduced\nthe required image area for setting the COVER flags in\npixman.c:analyze_extent(). Do the same reduction in affine-bench.\n\nLeaving the old calculations in place would be very confusing for anyone\nreading the code.\n\nAlso add a comment that explains how affine-bench wants to hit the COVER\npaths. This explains why the intricate extent calculations are copied\nfrom pixman.c.\n\n[Pekka: split patch, change comments, write commit message]\nSigned-off-by: Pekka Paalanen \u003cpekka.paalanen@collabora.co.uk\u003e\nReviewed-by: Ben Avison \u003cbavison@riscosopen.org\u003e\n"
    },
    {
      "commit": "0e2e9751282b19280c92be4a80c5ae476bae0ce4",
      "tree": "53a0041e4b61be0518db5194dcc95e7c105a9703",
      "parents": [
        "23525b4ea5bc2dd67f8f65b90d023b6580ecbc36"
      ],
      "author": {
        "name": "Ben Avison",
        "email": "bavison@riscosopen.org",
        "time": "Fri Sep 04 03:09:20 2015 +0100"
      },
      "committer": {
        "name": "Pekka Paalanen",
        "email": "pekka.paalanen@collabora.co.uk",
        "time": "Fri Sep 25 14:24:17 2015 +0300"
      },
      "message": "Remove the 8e extra safety margin in COVER_CLIP analysis\n\nAs discussed in\nhttp://lists.freedesktop.org/archives/pixman/2015-August/003905.html\n\nthe 8 * pixman_fixed_e (8e) adjustment which was applied to the transformed\ncoordinates is a legacy of rounding errors which used to occur in old\nversions of Pixman, but which no longer apply. For any affine transform,\nyou are now guaranteed to get the same result by transforming the upper\ncoordinate as though you transform the lower coordinate and add (size-1)\nsteps of the increment in source coordinate space. No projective\ntransform routines use the COVER_CLIP flags, so they cannot be affected.\n\nProof by Siarhei Siamashka:\n\nLet\u0027s take a look at the following affine transformation matrix (with 16.16\nfixed point values) and two vectors:\n\n         | a   b     c    |\nM      \u003d | d   e     f    |\n         | 0   0  0x10000 |\n\n         |  x_dst  |\nP     \u003d  |  y_dst  |\n         | 0x10000 |\n\n         | 0x10000 |\nONE_X  \u003d |    0    |\n         |    0    |\n\nThe current matrix multiplication code does the following calculations:\n\n             | (a * x_dst + b * y_dst + 0x8000) / 0x10000 + c |\n    M * P \u003d  | (d * x_dst + e * y_dst + 0x8000) / 0x10000 + f |\n             |                   0x10000                      |\n\nThese calculations are not perfectly exact and we may get rounding\nbecause the integer coordinates are adjusted by 0.5 (or 0x8000 in the\n16.16 fixed point format) before doing matrix multiplication. For\nexample, if the \u0027a\u0027 coefficient is an odd number and \u0027b\u0027 is zero,\nthen we are losing some of the least significant bits when dividing by\n0x10000.\n\nSo we need to strictly prove that the following expression is always\ntrue even though we have to deal with rounding:\n\n                                          | a |\n    M * (P + ONE_X) - M * P \u003d M * ONE_X \u003d | d |\n                                          | 0 |\n\nor\n\n   ((a * (x_dst + 0x10000) + b * y_dst + 0x8000) / 0x10000 + c)\n  -\n   ((a * x_dst             + b * y_dst + 0x8000) / 0x10000 + c)\n  \u003d\n    a\n\nIt\u0027s easy to see that this is equivalent to\n\n    a + ((a * x_dst + b * y_dst + 0x8000) / 0x10000 + c)\n      - ((a * x_dst + b * y_dst + 0x8000) / 0x10000 + c)\n  \u003d\n    a\n\nWhich means that stepping exactly by one pixel horizontally in the\ndestination image space (advancing \u0027x_dst\u0027 by 0x10000) is the same as\nchanging the transformed \u0027x_src\u0027 coordinate in the source image space\nexactly by \u0027a\u0027. The same applies to the vertical direction too.\nRepeating these steps, we can reach any pixel in the source image\nspace and get exactly the same fixed point coordinates as doing\nmatrix multiplications per each pixel.\n\nBy the way, the older matrix multiplication implementation, which was\nrelying on less accurate calculations with three intermediate roundings\n\"((a + 0x8000) \u003e\u003e 16) + ((b + 0x8000) \u003e\u003e 16) + ((c + 0x8000) \u003e\u003e 16)\",\nalso has the same properties. However reverting\n    http://cgit.freedesktop.org/pixman/commit/?id\u003ded39992564beefe6b12f81e842caba11aff98a9c\nand applying this \"Remove the 8e extra safety margin in COVER_CLIP\nanalysis\" patch makes the cover test fail. The real reason why it fails\nis that the old pixman code was using \"pixman_transform_point_3d()\"\nfunction\n    http://cgit.freedesktop.org/pixman/tree/pixman/pixman-matrix.c?id\u003dpixman-0.28.2#n49\nfor getting the transformed coordinate of the top left corner pixel\nin the image scaling code, but at the same time using a different\n\"pixman_transform_point()\" function\n    http://cgit.freedesktop.org/pixman/tree/pixman/pixman-matrix.c?id\u003dpixman-0.28.2#n82\nin the extents calculation code for setting the cover flag. And these\nfunctions did the intermediate rounding differently. That\u0027s why the 8e\nsafety margin was needed.\n\n** proof ends\n\nHowever, for COVER_CLIP_NEAREST, the actual margins added were not 8e.\nBecause the half-way cases round down, that is, coordinate 0 hits pixel\nindex -1 while coordinate e hits pixel index 0, the extra safety margins\nwere actually 7e to the left and up, and 9e to the right and down. This\npatch removes the 7e and 9e margins and restores the -e adjustment\nrequired for NEAREST sampling in Pixman. For reference, see\npixman/rounding.txt.\n\nFor COVER_CLIP_BILINEAR, the margins were exactly 8e as there are no\nadditional offsets to be restored, so simply removing the 8e additions\nis enough.\n\nProof:\n\nAll implementations must give the same numerical results as\nbits_image_fetch_pixel_nearest() / bits_image_fetch_pixel_bilinear().\n\nThe former does\n    int x0 \u003d pixman_fixed_to_int (x - pixman_fixed_e);\nwhich maps directly to the new test for the nearest flag, when you consider\nthat x0 must fall in the interval [0,width).\n\nThe latter does\n    x1 \u003d x - pixman_fixed_1 / 2;\n    x1 \u003d pixman_fixed_to_int (x1);\n    x2 \u003d x1 + 1;\nWhen you write a COVER path, you take advantage of the assumption that\nboth x1 and x2 fall in the interval [0, width).\n\nAs samplers are allowed to fetch the pixel at x2 unconditionally, we\nrequire\n    x1 \u003e\u003d 0\n    x2 \u003c width\nso\n    x - pixman_fixed_1 / 2 \u003e\u003d 0\n    x - pixman_fixed_1 / 2 + pixman_fixed_1 \u003c width * pixman_fixed_1\nso\n    pixman_fixed_to_int (x - pixman_fixed_1 / 2) \u003e\u003d 0\n    pixman_fixed_to_int (x + pixman_fixed_1 / 2) \u003c width\nwhich matches the source code lines for the bilinear case, once you delete\nthe lines that add the 8e margin.\n\nSigned-off-by: Ben Avison \u003cbavison@riscosopen.org\u003e\n[Pekka: adjusted commit message, left affine-bench changes for another patch]\n[Pekka: add commit message parts from Siarhei]\nSigned-off-by: Pekka Paalanen \u003cpekka.paalanen@collabora.co.uk\u003e\nReviewed-by: Siarhei Siamashka \u003csiarhei.siamashka@gmail.com\u003e\nReviewed-by: Ben Avison \u003cbavison@riscosopen.org\u003e\n"
    },
    {
      "commit": "23525b4ea5bc2dd67f8f65b90d023b6580ecbc36",
      "tree": "66da58146803b075330d44d1151de09a4069eef2",
      "parents": [
        "8b49d4b6b460d0c9299bca4ccddd7cd00d8f8441"
      ],
      "author": {
        "name": "Ben Avison",
        "email": "bavison@riscosopen.org",
        "time": "Tue Sep 22 12:43:25 2015 +0100"
      },
      "committer": {
        "name": "Pekka Paalanen",
        "email": "pekka.paalanen@collabora.co.uk",
        "time": "Fri Sep 25 14:19:15 2015 +0300"
      },
      "message": "pixman-general: Tighten up calculation of temporary buffer sizes\n\nEach of the aligns can only add a maximum of 15 bytes to the space\nrequirement. This permits some edge cases to use the stack buffer where\npreviously it would have deduced that a heap buffer was required.\n\nReviewed-by: Pekka Paalanen \u003cpekka.paalanen@collabora.co.uk\u003e\n"
    },
    {
      "commit": "8b49d4b6b460d0c9299bca4ccddd7cd00d8f8441",
      "tree": "311b374cd4baf19219509dd137dd102b2ba31021",
      "parents": [
        "4297e9058d252cac653723fe0b1bee559fbac3a4"
      ],
      "author": {
        "name": "Siarhei Siamashka",
        "email": "siarhei.siamashka@gmail.com",
        "time": "Tue Sep 22 04:25:40 2015 +0300"
      },
      "committer": {
        "name": "Oded Gabbay",
        "email": "oded.gabbay@gmail.com",
        "time": "Tue Sep 22 13:19:06 2015 +0300"
      },
      "message": "pixman-general: Fix stack related pointer arithmetic overflow\n\nAs https://bugs.freedesktop.org/show_bug.cgi?id\u003d92027#c6 explains,\nthe stack is allocated at the very top of the process address space\nin some configurations (32-bit x86 systems with ASLR disabled).\nAnd the careless computations done with the \u0027dest_buffer\u0027 pointer\nmay overflow, failing the buffer upper limit check.\n\nThe problem can be reproduced using the \u0027stress-test\u0027 program,\nwhich segfaults when executed via setarch:\n\n    export CFLAGS\u003d\"-O2 -m32\" \u0026\u0026 ./autogen.sh\n    ./configure --disable-libpng --disable-gtk \u0026\u0026 make\n    setarch i686 -R test/stress-test\n\nThis patch introduces the required corrections. The extra check\nfor negative \u0027width\u0027 may be redundant (the invalid \u0027width\u0027 value\nis not supposed to reach here), but it\u0027s better to play safe\nwhen dealing with the buffers allocated on stack.\n\nReported-by: Ludovic Courtès \u003cludo@gnu.org\u003e\nSigned-off-by: Siarhei Siamashka \u003csiarhei.siamashka@gmail.com\u003e\nReviewed-by: soren.sandmann@gmail.com\nSigned-off-by: Oded Gabbay \u003coded.gabbay@gmail.com\u003e\n"
    },
    {
      "commit": "4297e9058d252cac653723fe0b1bee559fbac3a4",
      "tree": "ebcdc098b03bd72777fdcae0ce022d98992a9b6a",
      "parents": [
        "8189fad9610981d5b4dcd8f8980ff169110fb33c"
      ],
      "author": {
        "name": "Thomas Petazzoni",
        "email": "thomas.petazzoni@free-electrons.com",
        "time": "Thu Sep 17 15:43:27 2015 +0200"
      },
      "committer": {
        "name": "Oded Gabbay",
        "email": "oded.gabbay@gmail.com",
        "time": "Sun Sep 20 15:50:04 2015 +0300"
      },
      "message": "test: add a check for FE_DIVBYZERO\n\nSome architectures, such as Microblaze and Nios2, currently do not\nimplement FE_DIVBYZERO, even though they have \u003cfenv.h\u003e and\nfeenableexcept(). This commit adds a configure.ac check to verify\nwhether FE_DIVBYZERO is defined or not, and if not, disables the\nproblematic code in test/utils.c.\n\nSigned-off-by: Thomas Petazzoni \u003cthomas.petazzoni@free-electrons.com\u003e\nSigned-off-by: Marek Vasut \u003cmarex@denx.de\u003e\nAcked-by: Siarhei Siamashka \u003csiarhei.siamashka@gmail.com\u003e\nSigned-off-by: Oded Gabbay \u003coded.gabbay@gmail.com\u003e\n"
    },
    {
      "commit": "8189fad9610981d5b4dcd8f8980ff169110fb33c",
      "tree": "ffb96f7d1f5630952410ea7b56498eadff9024ef",
      "parents": [
        "6b1b8b2b90da11bf6101a151786b2a8c9f087338"
      ],
      "author": {
        "name": "Oded Gabbay",
        "email": "oded.gabbay@gmail.com",
        "time": "Sun Sep 06 11:45:20 2015 +0300"
      },
      "committer": {
        "name": "Oded Gabbay",
        "email": "oded.gabbay@gmail.com",
        "time": "Fri Sep 18 10:07:13 2015 +0300"
      },
      "message": "vmx: Remove unused expensive functions\n\nNow that we replaced the expensive functions with better performing\nalternatives, we should remove them so they will not be used again.\n\nRunning Cairo benchmark on trimmed traces gave the following results:\n\nPOWER8, 8 cores, 3.4GHz, RHEL 7.2 ppc64le.\n\nSpeedups\n\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\nt-firefox-scrolling     1232.30 -\u003e 1096.55 :  1.12x\nt-gnome-terminal-vim    613.86  -\u003e 553.10  :  1.11x\nt-evolution             405.54  -\u003e 371.02  :  1.09x\nt-firefox-talos-gfx     919.31  -\u003e 862.27  :  1.07x\nt-gvim                  653.02  -\u003e 616.85  :  1.06x\nt-firefox-canvas-alpha  941.29  -\u003e 890.42  :  1.06x\n\nSigned-off-by: Oded Gabbay \u003coded.gabbay@gmail.com\u003e\nAcked-by: Pekka Paalanen \u003cpekka.paalanen@collabora.co.uk\u003e\nAcked-by: Siarhei Siamashka \u003csiarhei.siamashka@gmail.com\u003e\n"
    },
    {
      "commit": "6b1b8b2b90da11bf6101a151786b2a8c9f087338",
      "tree": "85e59c257fca729c8151a67d6050eb7968584a51",
      "parents": [
        "8d8caa55a38c00351047d24322e23b201b6b29ff"
      ],
      "author": {
        "name": "Oded Gabbay",
        "email": "oded.gabbay@gmail.com",
        "time": "Sun Jun 28 13:17:41 2015 +0300"
      },
      "committer": {
        "name": "Oded Gabbay",
        "email": "oded.gabbay@gmail.com",
        "time": "Fri Sep 18 10:07:08 2015 +0300"
      },
      "message": "vmx: implement fast path vmx_composite_over_n_8_8888\n\nPOWER8, 8 cores, 3.4GHz, RHEL 7.2 ppc64le.\n\nreference memcpy speed \u003d 25008.9MB/s (6252.2MP/s for 32bpp fills)\n\n                Before         After           Change\n              ---------------------------------------------\nL1              91.32          182.84         +100.22%\nL2              94.94          182.83         +92.57%\nM               95.55          181.51         +89.96%\nHT              88.96          162.09         +82.21%\nVT              87.4           168.35         +92.62%\nR               83.37          146.23         +75.40%\nRT              66.4           91.5           +37.80%\nKops/s          683            859            +25.77%\n\nSigned-off-by: Oded Gabbay \u003coded.gabbay@gmail.com\u003e\nAcked-by: Pekka Paalanen \u003cpekka.paalanen@collabora.co.uk\u003e\nAcked-by: Siarhei Siamashka \u003csiarhei.siamashka@gmail.com\u003e\n"
    },
    {
      "commit": "8d8caa55a38c00351047d24322e23b201b6b29ff",
      "tree": "4125f69c85a6f07c4e3d8cb83cde018f3e40ef01",
      "parents": [
        "857880f0e4d1d42a8508ac77be33556cc6f7f546"
      ],
      "author": {
        "name": "Oded Gabbay",
        "email": "oded.gabbay@gmail.com",
        "time": "Sun Sep 06 11:46:15 2015 +0300"
      },
      "committer": {
        "name": "Oded Gabbay",
        "email": "oded.gabbay@gmail.com",
        "time": "Fri Sep 18 10:07:03 2015 +0300"
      },
      "message": "vmx: optimize vmx_composite_over_n_8888_8888_ca\n\nThis patch optimizes vmx_composite_over_n_8888_8888_ca by removing use\nof expand_alpha_1x128, unpack/pack and in_over_2x128 in favor of\nsplat_alpha, in_over and MUL/ADD macros from pixman_combine32.h.\n\nRunning \"lowlevel-blt-bench -n over_8888_8888\" on POWER8, 8 cores,\n3.4GHz, RHEL 7.2 ppc64le gave the following results:\n\nreference memcpy speed \u003d 23475.4MB/s (5868.8MP/s for 32bpp fills)\n\n                Before          After           Change\n              --------------------------------------------\nL1              244.97          474.05         +93.51%\nL2              243.74          473.05         +94.08%\nM               243.29          467.16         +92.02%\nHT              144.03          252.79         +75.51%\nVT              174.24          279.03         +60.14%\nR               109.86          149.98         +36.52%\nRT              47.96           53.18          +10.88%\nKops/s          524             576            +9.92%\n\nSigned-off-by: Oded Gabbay \u003coded.gabbay@gmail.com\u003e\nAcked-by: Pekka Paalanen \u003cpekka.paalanen@collabora.co.uk\u003e\nAcked-by: Siarhei Siamashka \u003csiarhei.siamashka@gmail.com\u003e\n"
    },
    {
      "commit": "857880f0e4d1d42a8508ac77be33556cc6f7f546",
      "tree": "b0b64884dc83ef1a87fee9e1c770b9d434bd49c9",
      "parents": [
        "73e586efb3ee149f76f15d9e549bffa15d8e30ec"
      ],
      "author": {
        "name": "Oded Gabbay",
        "email": "oded.gabbay@gmail.com",
        "time": "Sun Sep 06 10:58:30 2015 +0300"
      },
      "committer": {
        "name": "Oded Gabbay",
        "email": "oded.gabbay@gmail.com",
        "time": "Fri Sep 18 10:06:50 2015 +0300"
      },
      "message": "vmx: optimize scaled_nearest_scanline_vmx_8888_8888_OVER\n\nThis patch optimizes scaled_nearest_scanline_vmx_8888_8888_OVER and all\nthe functions it calls (combine1, combine4 and\ncore_combine_over_u_pixel_vmx).\n\nThe optimization is done by removing use of expand_alpha_1x128 and\nexpand_alpha_2x128 in favor of splat_alpha and MUL/ADD macros from\npixman_combine32.h.\n\nRunning \"lowlevel-blt-bench -n over_8888_8888\" on POWER8, 8 cores,\n3.4GHz, RHEL 7.2 ppc64le gave the following results:\n\nreference memcpy speed \u003d 24847.3MB/s (6211.8MP/s for 32bpp fills)\n\n                Before          After           Change\n              --------------------------------------------\nL1              182.05          210.22         +15.47%\nL2              180.6           208.92         +15.68%\nM               180.52          208.22         +15.34%\nHT              130.17          178.97         +37.49%\nVT              145.82          184.22         +26.33%\nR               104.51          129.38         +23.80%\nRT              48.3            61.54          +27.41%\nKops/s          430             504            +17.21%\n\nv2: Check *pm is not NULL before dereferencing it in combine1()\n\nSigned-off-by: Oded Gabbay \u003coded.gabbay@gmail.com\u003e\nAcked-by: Pekka Paalanen \u003cpekka.paalanen@collabora.co.uk\u003e\nAcked-by: Siarhei Siamashka \u003csiarhei.siamashka@gmail.com\u003e\n"
    },
    {
      "commit": "73e586efb3ee149f76f15d9e549bffa15d8e30ec",
      "tree": "b8e895fcf56d9aed6cdcbf43952490ed4ca387e6",
      "parents": [
        "9eb6889b15a180cc94aad8ac97189af5b3a68b96"
      ],
      "author": {
        "name": "Pekka Paalanen",
        "email": "pekka.paalanen@collabora.co.uk",
        "time": "Mon Sep 07 14:40:49 2015 +0300"
      },
      "committer": {
        "name": "Pekka Paalanen",
        "email": "pekka.paalanen@collabora.co.uk",
        "time": "Thu Sep 17 14:40:39 2015 +0300"
      },
      "message": "armv6: enable over_n_8888\n\nEnable the fast path added in the previous patch by moving the lookup\ntable entries to their proper locations.\n\nLowlevel-blt-bench benchmark statistics with 30 iterations, showing the\neffect of adding this one patch on top of\n\"armv6: Add over_n_8888 fast path (disabled)\", which was applied on\nfd595692941f3d9ddea8934462bd1d18aed07c65.\n\n       Before          After\n      Mean StdDev     Mean StdDev   Confidence   Change\nL1    12.5   0.04     45.2   0.10    100.00%    +263.1%\nL2    11.1   0.02     43.2   0.03    100.00%    +289.3%\nM      9.4   0.00     42.4   0.02    100.00%    +351.7%\nHT     8.5   0.02     25.4   0.10    100.00%    +198.8%\nVT     8.4   0.02     22.3   0.07    100.00%    +167.0%\nR      8.2   0.02     23.1   0.09    100.00%    +183.6%\nRT     5.4   0.05     11.4   0.21    100.00%    +110.3%\n\nAt most 3 outliers rejected per test per set.\n\nIterating here means that lowlevel-blt-bench was executed 30 times, and\nthe statistics above were computed from the output.\n\nSigned-off-by: Pekka Paalanen \u003cpekka.paalanen@collabora.co.uk\u003e\n"
    },
    {
      "commit": "9eb6889b15a180cc94aad8ac97189af5b3a68b96",
      "tree": "939a8ae495caf50da3e4d60cf608e0aaec5ff3e3",
      "parents": [
        "4c71f595e3393be5b922df37d50d71dd83f4f979"
      ],
      "author": {
        "name": "Ben Avison",
        "email": "bavison@riscosopen.org",
        "time": "Mon Sep 07 14:40:48 2015 +0300"
      },
      "committer": {
        "name": "Pekka Paalanen",
        "email": "pekka.paalanen@collabora.co.uk",
        "time": "Thu Sep 17 14:40:39 2015 +0300"
      },
      "message": "armv6: Add over_n_8888 fast path (disabled)\n\nThis new fast path is initially disabled by putting the entries in the\nlookup table after the sentinel. The compiler cannot tell the new code\nis not used, so it cannot eliminate the code. Also the lookup table size\nwill include the new fast path. When the follow-up patch then enables\nthe new fast path, the binary layout (alignments, size, etc.) will stay\nthe same compared to the disabled case.\n\nKeeping the binary layout identical is important for benchmarking on\nRaspberry Pi 1. The addresses at which functions are loaded will have a\nsignificant impact on benchmark results, causing unexpected performance\nchanges. Keeping all function addresses the same across the patch\nenabling a new fast path improves the reliability of benchmarks.\n\nBenchmark results are included in the patch enabling this fast path.\n\n[Pekka: disabled the fast path, commit message]\nSigned-off-by: Pekka Paalanen \u003cpekka.paalanen@collabora.co.uk\u003e\n"
    },
    {
      "commit": "4c71f595e3393be5b922df37d50d71dd83f4f979",
      "tree": "39527520dea508c1fe342ef6a69810bcf1018fc4",
      "parents": [
        "812c9c9758e1503bd1725af9c6fe9ede6a467506"
      ],
      "author": {
        "name": "Ben Avison",
        "email": "bavison@riscosopen.org",
        "time": "Wed Sep 02 20:35:59 2015 +0100"
      },
      "committer": {
        "name": "Pekka Paalanen",
        "email": "pekka.paalanen@collabora.co.uk",
        "time": "Wed Sep 16 15:34:43 2015 +0300"
      },
      "message": "test: Add cover-test v5\n\nThis test aims to verify both numerical correctness and the honouring of\narray bounds for scaled plots (both nearest-neighbour and bilinear) at or\nclose to the boundary conditions for applicability of \"cover\" type fast paths\nand iter fetch routines.\n\nIt has a secondary purpose: by setting the env var EXACT (to any value) it\nwill only test plots that are exactly on the boundary condition. This makes\nit possible to ensure that \"cover\" routines are being used to the maximum,\nalthough this requires the use of a debugger or code instrumentation to\nverify.\n\nChanges in v4:\n\n  Check the fence page size and skip the test if it is too large. Since\n  we need to deal with pixman_fixed_t coordinates that go beyond the\n  real image width, make the page size limit 16 kB. A 32 kB or larger\n  page size would cause an a8 image width to be 32k or more, which is no\n  longer representable in pixman_fixed_t.\n\n  Use a shorthand variable \u0027filter\u0027 in test_cover().\n\n  Whitespace adjustments.\n\nChanges in v5:\n\n  Skip if fenced memory is not supported. Do you know of any such\n  platform?\n\nSigned-off-by: Ben Avison \u003cbavison@riscosopen.org\u003e\n[Pekka: changes in v4 and v5]\nSigned-off-by: Pekka Paalanen \u003cpekka.paalanen@collabora.co.uk\u003e\nReviewed-by: Ben Avison \u003cbavison@riscosopen.org\u003e\nAcked-by: Oded Gabbay \u003coded.gabbay@gmail.com\u003e\n"
    },
    {
      "commit": "812c9c9758e1503bd1725af9c6fe9ede6a467506",
      "tree": "144b361248bd36e58ca50a0c412f95e696ecae67",
      "parents": [
        "e9ef2cc4dea04792a03d604c075c344055765217"
      ],
      "author": {
        "name": "Pekka Paalanen",
        "email": "pekka.paalanen@collabora.co.uk",
        "time": "Tue Sep 08 13:35:33 2015 +0300"
      },
      "committer": {
        "name": "Pekka Paalanen",
        "email": "pekka.paalanen@collabora.co.uk",
        "time": "Wed Sep 09 11:42:55 2015 +0300"
      },
      "message": "implementation: add PIXMAN_DISABLE\u003dwholeops\n\nAdd a new option to PIXMAN_DISABLE: \"wholeops\". This option disables all\nwhole-operation fast paths regardless of implementation level, except\nthe general path (general_composite_rect).\n\nThe purpose is to add a debug option that allows us to test optimized\niterator paths specifically. With this, it is possible to see if:\n- fast paths mask bugs in iterators\n- compare fast paths with iterator paths for performance\n\nThe effect was tested on x86_64 by running:\n$ PIXMAN_DISABLE\u003d\u0027\u0027 ./test/lowlevel-blt-bench over_8888_8888\n$ PIXMAN_DISABLE\u003d\u0027wholeops\u0027 ./test/lowlevel-blt-bench over_8888_8888\n\nIn the first case time is spent in sse2_composite_over_8888_8888(), and\nin the latter in sse2_combine_over_u().\n\nSigned-off-by: Pekka Paalanen \u003cpekka.paalanen@collabora.co.uk\u003e\nReviewed-by: Oded Gabbay \u003coded.gabbay@gmail.com\u003e\n"
    },
    {
      "commit": "e9ef2cc4dea04792a03d604c075c344055765217",
      "tree": "dd3ab9c0bca46e82444a0e257335f79264f5625f",
      "parents": [
        "82f8c997dfd3f60a48134107ecf38663b464bdc9"
      ],
      "author": {
        "name": "Pekka Paalanen",
        "email": "pekka.paalanen@collabora.co.uk",
        "time": "Tue Sep 08 09:36:48 2015 +0300"
      },
      "committer": {
        "name": "Pekka Paalanen",
        "email": "pekka.paalanen@collabora.co.uk",
        "time": "Wed Sep 09 11:30:51 2015 +0300"
      },
      "message": "utils.[ch]: add fence_get_page_size()\n\nAdd a function to get the page size used for memory fence purposes, and\nuse it everywhere where getpagesize() was used.\n\nThis offers a single point in code to override the page size, in case\none wants to experiment how the tests work with a higher page size than\nwhat the developer\u0027s machine has.\n\nThis also offers a clean API, without adding #ifdefs, to tests for\nchecking the page size.\n\nSigned-off-by: Pekka Paalanen \u003cpekka.paalanen@collabora.co.uk\u003e\nReviewed-by: Oded Gabbay \u003coded.gabbay@gmail.com\u003e\nReviewed-by: Ben Avison \u003cbavison@riscosopen.org\u003e\n"
    },
    {
      "commit": "82f8c997dfd3f60a48134107ecf38663b464bdc9",
      "tree": "a2751d2a944e81b8b8536079c319aa9d8025fb24",
      "parents": [
        "07006853828a59b5e0cd7d7d058d03db4e23e6ec"
      ],
      "author": {
        "name": "Pekka Paalanen",
        "email": "pekka.paalanen@collabora.co.uk",
        "time": "Tue Sep 08 09:20:46 2015 +0300"
      },
      "committer": {
        "name": "Pekka Paalanen",
        "email": "pekka.paalanen@collabora.co.uk",
        "time": "Wed Sep 09 11:29:44 2015 +0300"
      },
      "message": "utils.c: fix fallback code for fence_image_create_bits()\n\nUsed a wrong variable name, causing:\n/home/pq/git/pixman/demos/../test/utils.c: In function ‘fence_image_create_bits’:\n/home/pq/git/pixman/demos/../test/utils.c:562:46: error: ‘width’ undeclared (first use in this function)\n\nUse the correct variable.\n\nSigned-off-by: Pekka Paalanen \u003cpekka.paalanen@collabora.co.uk\u003e\nReviewed-by: Oded Gabbay \u003coded.gabbay@gmail.com\u003e\nReviewed-by: Ben Avison \u003cbavison@riscosopen.org\u003e\n"
    },
    {
      "commit": "07006853828a59b5e0cd7d7d058d03db4e23e6ec",
      "tree": "e28907c364cf8794691221592d708951e2fb83d5",
      "parents": [
        "13d93aa12050ce99643d56b0c730404294f46c2f"
      ],
      "author": {
        "name": "Pekka Paalanen",
        "email": "pekka.paalanen@collabora.co.uk",
        "time": "Thu May 07 17:16:05 2015 +0300"
      },
      "committer": {
        "name": "Pekka Paalanen",
        "email": "pekka.paalanen@collabora.co.uk",
        "time": "Thu Sep 03 14:00:32 2015 +0300"
      },
      "message": "test: add fence-image-self-test\n\nTests that fence_malloc and fence_image_create_bits actually work: that\nout-of-bounds and out-of-row (unused stride area) accesses trigger\nSIGSEGV.\n\nIf fence_malloc is a dummy (FENCE_MALLOC_ACTIVE not defined), this test\nis skipped.\n\nChanges in v2:\n\n- check FENCE_MALLOC_ACTIVE value, not whether it is defined\n- test that reading bytes near the fence pages does not cause a\n  segmentation fault\n\nChanges in v3:\n\n- Do not print progress messages unless VERBOSE environment variable is\n  set. Avoid spamming the terminal output of \u0027make check\u0027 on some\n  versions of autotools.\n\nSigned-off-by: Pekka Paalanen \u003cpekka.paalanen@collabora.co.uk\u003e\nReviewed-by: Ben Avison \u003cbavison@riscosopen.org\u003e\n"
    },
    {
      "commit": "13d93aa12050ce99643d56b0c730404294f46c2f",
      "tree": "fecef60c6de03b021d6d6a2f56273eb90a0ecf45",
      "parents": [
        "c70ddd5c9e12d87ff461d73a6f53b00d52925cf5"
      ],
      "author": {
        "name": "Pekka Paalanen",
        "email": "pekka.paalanen@collabora.co.uk",
        "time": "Thu May 07 16:46:01 2015 +0300"
      },
      "committer": {
        "name": "Pekka Paalanen",
        "email": "pekka.paalanen@collabora.co.uk",
        "time": "Tue Sep 01 17:06:46 2015 +0300"
      },
      "message": "utils.[ch]: add fence_image_create_bits ()\n\nUseful for detecting out-of-bounds accesses in composite operations.\n\nThis will be used by follow-up patches adding new tests.\n\nChanges in v2:\n\n- fix style on fence_image_create_bits args\n- add page to stride only if stride_fence\n- add comment on the fallback definition about freeing storage\n\nSigned-off-by: Pekka Paalanen \u003cpekka.paalanen@collabora.co.uk\u003e\nReviewed-by: Ben Avison \u003cbavison@riscosopen.org\u003e\n"
    },
    {
      "commit": "c70ddd5c9e12d87ff461d73a6f53b00d52925cf5",
      "tree": "cda248189ccd42cd42c68fe66f0f271c475554ac",
      "parents": [
        "a82e519944e5d1af41cc94a14d9ae1fe0e430e68"
      ],
      "author": {
        "name": "Pekka Paalanen",
        "email": "pekka.paalanen@collabora.co.uk",
        "time": "Thu May 07 14:21:30 2015 +0300"
      },
      "committer": {
        "name": "Pekka Paalanen",
        "email": "pekka.paalanen@collabora.co.uk",
        "time": "Tue Sep 01 17:05:58 2015 +0300"
      },
      "message": "utils.[ch]: add FENCE_MALLOC_ACTIVE\n\nDefine a new token to simplify checking whether fence_malloc() actually\ncan catch out-of-bounds access.\n\nThis will be used in the future to skip tests that rely on fence_malloc\nchecking functionality.\n\nChanges in v2:\n\n- #define FENCE_MALLOC_ACTIVE always, but change its value to help catch\n  use of it without including utils.h\n\nSigned-off-by: Pekka Paalanen \u003cpekka.paalanen@collabora.co.uk\u003e\nReviewed-by: Ben Avison \u003cbavison@riscosopen.org\u003e\n"
    },
    {
      "commit": "a82e519944e5d1af41cc94a14d9ae1fe0e430e68",
      "tree": "43718b24552644e441c0522f6323a065a0c25b71",
      "parents": [
        "fd595692941f3d9ddea8934462bd1d18aed07c65"
      ],
      "author": {
        "name": "Ben Avison",
        "email": "bavison@riscosopen.org",
        "time": "Thu Aug 20 13:07:48 2015 +0100"
      },
      "committer": {
        "name": "Pekka Paalanen",
        "email": "pekka.paalanen@collabora.co.uk",
        "time": "Fri Aug 28 14:24:28 2015 +0300"
      },
      "message": "scaling-test: list more details when verbose\n\nAdd mask details to the output.\n\n[Pekka: redo whitespace and print src,dst,mask x and y.]\nSigned-off-by: Pekka Paalanen \u003cpekka.paalanen@collabora.co.uk\u003e\nReviewed-by: Ben Avison \u003cbavison@riscosopen.org\u003e\n"
    },
    {
      "commit": "fd595692941f3d9ddea8934462bd1d18aed07c65",
      "tree": "3b2579c6eacc677bb2e6af6554b8a03f93ca92b1",
      "parents": [
        "69611473c5a4e7cc2e6016d82ff4ed28e289484a"
      ],
      "author": {
        "name": "Pekka Paalanen",
        "email": "pekka.paalanen@collabora.co.uk",
        "time": "Tue Jul 07 11:31:20 2015 +0300"
      },
      "committer": {
        "name": "Pekka Paalanen",
        "email": "pekka.paalanen@collabora.co.uk",
        "time": "Tue Aug 18 10:23:27 2015 +0300"
      },
      "message": "lowlevel-blt-bench: make extra arguments an error\n\nIf a user gives multiple patterns or extra arguments, only the last one\nwas used as the pattern while the former were just ignored. This is a\nuser error silently converted to something possibly unexpected.\n\nIn presence of extra arguments, complain and quit.\n\nCc: Ben Avison \u003cbavison@riscosopen.org\u003e\nSigned-off-by: Pekka Paalanen \u003cpekka.paalanen@collabora.co.uk\u003e\n"
    },
    {
      "commit": "69611473c5a4e7cc2e6016d82ff4ed28e289484a",
      "tree": "c479fea82a3b66b2a36e2ac5b1b9f74ecf3a5244",
      "parents": [
        "ee790044b08e3b668e6aa5d9229f46ed7295ebf0"
      ],
      "author": {
        "name": "Oded Gabbay",
        "email": "oded.gabbay@gmail.com",
        "time": "Sat Aug 01 23:01:43 2015 +0300"
      },
      "committer": {
        "name": "Oded Gabbay",
        "email": "oded.gabbay@gmail.com",
        "time": "Sat Aug 01 23:01:43 2015 +0300"
      },
      "message": "Post-release version bump to 0.33.3\n\nSigned-off-by: Oded Gabbay \u003coded.gabbay@gmail.com\u003e\n"
    },
    {
      "commit": "ee790044b08e3b668e6aa5d9229f46ed7295ebf0",
      "tree": "f780b3dd3c871a88151062a9e4924e6984e127e0",
      "parents": [
        "8d9be3619a906855a3e3a1e052317833cb24cabe"
      ],
      "author": {
        "name": "Oded Gabbay",
        "email": "oded.gabbay@gmail.com",
        "time": "Sat Aug 01 22:34:53 2015 +0300"
      },
      "committer": {
        "name": "Oded Gabbay",
        "email": "oded.gabbay@gmail.com",
        "time": "Sat Aug 01 22:34:53 2015 +0300"
      },
      "message": "Pre-release version bump to 0.33.2\n\nSigned-off-by: Oded Gabbay \u003coded.gabbay@gmail.com\u003e\n"
    },
    {
      "commit": "8d9be3619a906855a3e3a1e052317833cb24cabe",
      "tree": "da49f02bb1506d6ecf2b2651189b70ebce555f1e",
      "parents": [
        "47f74ca94637d79ee66c37a81eea0200e453fcc1"
      ],
      "author": {
        "name": "Oded Gabbay",
        "email": "oded.gabbay@gmail.com",
        "time": "Wed Jul 01 14:34:07 2015 +0300"
      },
      "committer": {
        "name": "Oded Gabbay",
        "email": "oded.gabbay@gmail.com",
        "time": "Thu Jul 16 16:13:35 2015 +0300"
      },
      "message": "vmx: implement fast path iterator vmx_fetch_a8\n\nno changes were observed when running cairo trimmed benchmarks.\n\nRunning \"lowlevel-blt-bench src_8_8888\" on POWER8, 8 cores,\n3.4GHz, RHEL 7.1 ppc64le gave the following results:\n\nreference memcpy speed \u003d 25197.2MB/s (6299.3MP/s for 32bpp fills)\n\n                Before          After           Change\n              --------------------------------------------\nL1              965.34          3936           +307.73%\nL2              942.99          3436.29        +264.40%\nM               902.24          2757.77        +205.66%\nHT              448.46          784.99         +75.04%\nVT              430.05          819.78         +90.62%\nR               412.9           717.04         +73.66%\nRT              168.93          220.63         +30.60%\nKops/s          1025            1303           +27.12%\n\nIt was benchmarked against commid id e2d211a from pixman/master\n\nSiarhei Siamashka reported that on playstation3, it shows the following\nresults:\n\n\u003d\u003d before \u003d\u003d\n\n              src_8_8888 \u003d  L1: 194.37  L2: 198.46  M:155.90 (148.35%)\n              HT: 59.18  VT: 36.71  R: 38.93  RT: 12.79 ( 106Kops/s)\n\n\u003d\u003d after \u003d\u003d\n\n              src_8_8888 \u003d  L1: 373.96  L2: 391.10  M:245.81 (233.88%)\n              HT: 80.81  VT: 44.33  R: 48.10  RT: 14.79 ( 122Kops/s)\n\nSigned-off-by: Oded Gabbay \u003coded.gabbay@gmail.com\u003e\nAcked-by: Siarhei Siamashka \u003csiarhei.siamashka@gmail.com\u003e\n"
    },
    {
      "commit": "47f74ca94637d79ee66c37a81eea0200e453fcc1",
      "tree": "6094dca4a6d640d526a66acc7d0f3a256c0bfc01",
      "parents": [
        "fcbb97d4458d717b9c15858aedcbee2d33c8ac5a"
      ],
      "author": {
        "name": "Oded Gabbay",
        "email": "oded.gabbay@gmail.com",
        "time": "Mon Jun 29 15:31:02 2015 +0300"
      },
      "committer": {
        "name": "Oded Gabbay",
        "email": "oded.gabbay@gmail.com",
        "time": "Thu Jul 16 16:13:35 2015 +0300"
      },
      "message": "vmx: implement fast path iterator vmx_fetch_x8r8g8b8\n\nIt was benchmarked against commid id 2be523b from pixman/master\n\nPOWER8, 8 cores, 3.4GHz, RHEL 7.1 ppc64le.\n\ncairo trimmed benchmarks :\n\nSpeedups\n\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\nt-firefox-asteroids  533.92  -\u003e 489.94 :  1.09x\n\nSigned-off-by: Oded Gabbay \u003coded.gabbay@gmail.com\u003e\nAcked-by: Siarhei Siamashka \u003csiarhei.siamashka@gmail.com\u003e\n"
    },
    {
      "commit": "fcbb97d4458d717b9c15858aedcbee2d33c8ac5a",
      "tree": "d5bb2f5a8a12eea2fa3eb2a7d083a1867926952a",
      "parents": [
        "ad612c4205f0ae46fc72a50e0c90ccd05487fcba"
      ],
      "author": {
        "name": "Oded Gabbay",
        "email": "oded.gabbay@gmail.com",
        "time": "Sun Jun 28 23:25:24 2015 +0300"
      },
      "committer": {
        "name": "Oded Gabbay",
        "email": "oded.gabbay@gmail.com",
        "time": "Thu Jul 16 16:13:35 2015 +0300"
      },
      "message": "vmx: implement fast path scaled nearest vmx_8888_8888_OVER\n\nIt was benchmarked against commid id 2be523b from pixman/master\n\nPOWER8, 8 cores, 3.4GHz, RHEL 7.1 ppc64le.\nreference memcpy speed \u003d 24764.8MB/s (6191.2MP/s for 32bpp fills)\n\n                Before           After           Change\n              ---------------------------------------------\nL1              134.36          181.68          +35.22%\nL2              135.07          180.67          +33.76%\nM               134.6           180.51          +34.11%\nHT              121.77          128.79          +5.76%\nVT              120.49          145.07          +20.40%\nR               93.83           102.3           +9.03%\nRT              50.82           46.93           -7.65%\nKops/s          448             422             -5.80%\n\ncairo trimmed benchmarks :\n\nSpeedups\n\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\nt-firefox-asteroids  533.92 -\u003e 497.92 :  1.07x\n    t-midori-zoomed  692.98 -\u003e 651.24 :  1.06x\n\nSigned-off-by: Oded Gabbay \u003coded.gabbay@gmail.com\u003e\nAcked-by: Siarhei Siamashka \u003csiarhei.siamashka@gmail.com\u003e\n"
    },
    {
      "commit": "ad612c4205f0ae46fc72a50e0c90ccd05487fcba",
      "tree": "ccf4432c155752f8ea69e034c4171770a5699ce6",
      "parents": [
        "fafc1d403b8405727d3918bcb605cb98044af90a"
      ],
      "author": {
        "name": "Oded Gabbay",
        "email": "oded.gabbay@gmail.com",
        "time": "Sun Jun 28 22:23:44 2015 +0300"
      },
      "committer": {
        "name": "Oded Gabbay",
        "email": "oded.gabbay@gmail.com",
        "time": "Thu Jul 16 16:13:35 2015 +0300"
      },
      "message": "vmx: implement fast path vmx_composite_src_x888_8888\n\nIt was benchmarked against commid id 2be523b from pixman/master\n\nPOWER8, 8 cores, 3.4GHz, RHEL 7.1 ppc64le.\nreference memcpy speed \u003d 24764.8MB/s (6191.2MP/s for 32bpp fills)\n\n                Before           After           Change\n              ---------------------------------------------\nL1              1115.4          5006.49         +348.85%\nL2              1112.26         4338.01         +290.02%\nM               1110.54         2524.15         +127.29%\nHT              745.41          1140.03         +52.94%\nVT              749.03          1287.13         +71.84%\nR               423.91          547.6           +29.18%\nRT              205.79          194.98          -5.25%\nKops/s          1414            1361            -3.75%\n\ncairo trimmed benchmarks :\n\nSpeedups\n\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\nt-gnome-system-monitor  1402.62  -\u003e 1212.75 :  1.16x\n   t-firefox-asteroids   533.92  -\u003e  474.50 :  1.13x\n\nSigned-off-by: Oded Gabbay \u003coded.gabbay@gmail.com\u003e\nAcked-by: Siarhei Siamashka \u003csiarhei.siamashka@gmail.com\u003e\n"
    },
    {
      "commit": "fafc1d403b8405727d3918bcb605cb98044af90a",
      "tree": "e0002471a86f97d32f59d21cbf30f1255abdb93b",
      "parents": [
        "a3e914407e354df70b9200e263608f1fc2e686cf"
      ],
      "author": {
        "name": "Oded Gabbay",
        "email": "oded.gabbay@gmail.com",
        "time": "Sun Jun 28 10:14:20 2015 +0300"
      },
      "committer": {
        "name": "Oded Gabbay",
        "email": "oded.gabbay@gmail.com",
        "time": "Thu Jul 16 16:13:35 2015 +0300"
      },
      "message": "vmx: implement fast path vmx_composite_over_n_8888_8888_ca\n\nIt was benchmarked against commid id 2be523b from pixman/master\n\nPOWER8, 8 cores, 3.4GHz, RHEL 7.1 ppc64le.\n\nreference memcpy speed \u003d 24764.8MB/s (6191.2MP/s for 32bpp fills)\n\n                Before           After           Change\n              ---------------------------------------------\nL1              61.92            244.91          +295.53%\nL2              62.74            243.3           +287.79%\nM               63.03            241.94          +283.85%\nHT              59.91            144.22          +140.73%\nVT              59.4             174.39          +193.59%\nR               53.6             111.37          +107.78%\nRT              37.99            46.38           +22.08%\nKops/s          436              506             +16.06%\n\ncairo trimmed benchmarks :\n\nSpeedups\n\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\nt-xfce4-terminal-a1  1540.37 -\u003e 1226.14 :  1.26x\nt-firefox-talos-gfx  1488.59 -\u003e 1209.19 :  1.23x\n\nSlowdowns\n\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\n        t-evolution  553.88  -\u003e 581.63  :  1.05x\n          t-poppler  364.99  -\u003e 383.79  :  1.05x\nt-firefox-scrolling  1223.65 -\u003e 1304.34 :  1.07x\n\nThe slowdowns can be explained in cases where the images are small and\nun-aligned to 16-byte boundary. In that case, the function will first\nwork on the un-aligned area, even in operations of 1 byte. In case of\nsmall images, the overhead of such operations can be more than the\nsavings we get from using the vmx instructions that are done on the\naligned part of the image.\n\nIn the C fast-path implementation, there is no special treatment for the\nun-aligned part, as it works in 4 byte quantities on the entire image.\n\nBecause llbb is a synthetic test, I would assume it has much less\nalignment issues than \"real-world\" scenario, such as cairo benchmarks,\nwhich are basically recorded traces of real application activity.\n\nSigned-off-by: Oded Gabbay \u003coded.gabbay@gmail.com\u003e\nAcked-by: Siarhei Siamashka \u003csiarhei.siamashka@gmail.com\u003e\n"
    },
    {
      "commit": "a3e914407e354df70b9200e263608f1fc2e686cf",
      "tree": "b554ef48fffe673c534eaad54feeacb75b2b8942",
      "parents": [
        "d5b5343c7df99082597e0c37aec937dcf5b6602d"
      ],
      "author": {
        "name": "Oded Gabbay",
        "email": "oded.gabbay@gmail.com",
        "time": "Thu Jun 18 15:05:49 2015 +0300"
      },
      "committer": {
        "name": "Oded Gabbay",
        "email": "oded.gabbay@gmail.com",
        "time": "Thu Jul 16 16:13:35 2015 +0300"
      },
      "message": "vmx: implement fast path composite_add_8888_8888\n\nCopied impl. from sse2 file and edited to use vmx functions\n\nIt was benchmarked against commid id 2be523b from pixman/master\n\nPOWER8, 16 cores, 3.4GHz, ppc64le :\n\nreference memcpy speed \u003d 27036.4MB/s (6759.1MP/s for 32bpp fills)\n\n                Before           After           Change\n              ---------------------------------------------\nL1              248.76          3284.48         +1220.34%\nL2              264.09          2826.47         +970.27%\nM               261.24          2405.06         +820.63%\nHT              217.27          857.3           +294.58%\nVT              213.78          980.09          +358.46%\nR               176.61          442.95          +150.81%\nRT              107.54          150.08          +39.56%\nKops/s          917             1125            +22.68%\n\nSigned-off-by: Oded Gabbay \u003coded.gabbay@gmail.com\u003e\nAcked-by: Siarhei Siamashka \u003csiarhei.siamashka@gmail.com\u003e\n"
    },
    {
      "commit": "d5b5343c7df99082597e0c37aec937dcf5b6602d",
      "tree": "a25193a4ab7ae039fb3d6cfa35d10562831831a9",
      "parents": [
        "339eeaf095f949694d7f79a45171ac03a3b06f90"
      ],
      "author": {
        "name": "Oded Gabbay",
        "email": "oded.gabbay@gmail.com",
        "time": "Thu Jun 18 14:56:47 2015 +0300"
      },
      "committer": {
        "name": "Oded Gabbay",
        "email": "oded.gabbay@gmail.com",
        "time": "Thu Jul 16 16:13:35 2015 +0300"
      },
      "message": "vmx: implement fast path composite_add_8_8\n\nCopied impl. from sse2 file and edited to use vmx functions\n\nIt was benchmarked against commid id 2be523b from pixman/master\n\nPOWER8, 16 cores, 3.4GHz, ppc64le :\n\nreference memcpy speed \u003d 27036.4MB/s (6759.1MP/s for 32bpp fills)\n\n                Before           After           Change\n              ---------------------------------------------\nL1              687.63          9140.84         +1229.33%\nL2              715             7495.78         +948.36%\nM               717.39          8460.14         +1079.29%\nHT              569.56          1020.12         +79.11%\nVT              520.3           1215.56         +133.63%\nR               514.81          874.35          +69.84%\nRT              341.28          305.42          -10.51%\nKops/s          1621            1579            -2.59%\n\nSigned-off-by: Oded Gabbay \u003coded.gabbay@gmail.com\u003e\nAcked-by: Siarhei Siamashka \u003csiarhei.siamashka@gmail.com\u003e\n"
    },
    {
      "commit": "339eeaf095f949694d7f79a45171ac03a3b06f90",
      "tree": "603ea090f5652882b5aaf51c72eaa31ef8405e4c",
      "parents": [
        "0cc8a2e9714efcb7cdd7e2a94c9cba49c3e29e00"
      ],
      "author": {
        "name": "Oded Gabbay",
        "email": "oded.gabbay@gmail.com",
        "time": "Thu Jun 18 14:12:05 2015 +0300"
      },
      "committer": {
        "name": "Oded Gabbay",
        "email": "oded.gabbay@gmail.com",
        "time": "Thu Jul 16 16:13:35 2015 +0300"
      },
      "message": "vmx: implement fast path composite_over_8888_8888\n\nCopied impl. from sse2 file and edited to use vmx functions\n\nIt was benchmarked against commid id 2be523b from pixman/master\n\nPOWER8, 16 cores, 3.4GHz, ppc64le :\n\nreference memcpy speed \u003d 27036.4MB/s (6759.1MP/s for 32bpp fills)\n\n                Before           After           Change\n              ---------------------------------------------\nL1              129.47          1054.62         +714.57%\nL2              138.31          1011.02         +630.98%\nM               139.99          1008.65         +620.52%\nHT              122.11          468.45          +283.63%\nVT              121.06          532.21          +339.62%\nR               108.48          240.5           +121.70%\nRT              77.87           116.7           +49.87%\nKops/s          758             981             +29.42%\n\nSigned-off-by: Oded Gabbay \u003coded.gabbay@gmail.com\u003e\nAcked-by: Siarhei Siamashka \u003csiarhei.siamashka@gmail.com\u003e\n"
    },
    {
      "commit": "0cc8a2e9714efcb7cdd7e2a94c9cba49c3e29e00",
      "tree": "82197e7adb8fdecfa9bdded888993cad105649f8",
      "parents": [
        "c12ee95089e7d281a29a24bf56b81f5c16dec6ee"
      ],
      "author": {
        "name": "Oded Gabbay",
        "email": "oded.gabbay@gmail.com",
        "time": "Sun Jun 28 09:42:19 2015 +0300"
      },
      "committer": {
        "name": "Oded Gabbay",
        "email": "oded.gabbay@gmail.com",
        "time": "Thu Jul 16 16:13:35 2015 +0300"
      },
      "message": "vmx: implement fast path vmx_fill\n\nBased on sse2 impl.\n\nIt was benchmarked against commid id e2d211a from pixman/master\n\nTested cairo trimmed benchmarks on POWER8, 8 cores, 3.4GHz,\nRHEL 7.1 ppc64le :\n\nspeedups\n\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\n     t-swfdec-giant-steps  1383.09 -\u003e  718.63  :  1.92x speedup\n   t-gnome-system-monitor  1403.53 -\u003e  918.77  :  1.53x speedup\n              t-evolution  552.34  -\u003e  415.24  :  1.33x speedup\n      t-xfce4-terminal-a1  1573.97 -\u003e  1351.46 :  1.16x speedup\n      t-firefox-paintball  847.87  -\u003e  734.50  :  1.15x speedup\n      t-firefox-asteroids  565.99  -\u003e  492.77  :  1.15x speedup\nt-firefox-canvas-swscroll  1656.87 -\u003e  1447.48 :  1.14x speedup\n          t-midori-zoomed  724.73  -\u003e  642.16  :  1.13x speedup\n   t-firefox-planet-gnome  975.78  -\u003e  911.92  :  1.07x speedup\n          t-chromium-tabs  292.12  -\u003e  274.74  :  1.06x speedup\n     t-firefox-chalkboard  690.78  -\u003e  653.93  :  1.06x speedup\n      t-firefox-talos-gfx  1375.30 -\u003e  1303.74 :  1.05x speedup\n   t-firefox-canvas-alpha  1016.79 -\u003e  967.24  :  1.05x speedup\n\nSigned-off-by: Oded Gabbay \u003coded.gabbay@gmail.com\u003e\nAcked-by: Siarhei Siamashka \u003csiarhei.siamashka@gmail.com\u003e\n"
    },
    {
      "commit": "c12ee95089e7d281a29a24bf56b81f5c16dec6ee",
      "tree": "aab0113df529f3f2860ddb73320194b2e98d7434",
      "parents": [
        "034149537be94862b43fb09699b8c2149bfe948d"
      ],
      "author": {
        "name": "Oded Gabbay",
        "email": "oded.gabbay@gmail.com",
        "time": "Sun Jun 28 09:42:08 2015 +0300"
      },
      "committer": {
        "name": "Oded Gabbay",
        "email": "oded.gabbay@gmail.com",
        "time": "Thu Jul 16 16:13:35 2015 +0300"
      },
      "message": "vmx: add helper functions\n\nThis patch adds the following helper functions for reuse of code,\nhiding BE/LE differences and maintainability.\n\nAll of the functions were defined as static force_inline.\n\nNames were copied from pixman-sse2.c so conversion of fast-paths between\nsse2 and vmx would be easier from now on. Therefore, I tried to keep the\ninput/output of the functions to be as close as possible to the sse2\ndefinitions.\n\nThe functions are:\n\n- load_128_aligned       : load 128-bit from a 16-byte aligned memory\n                           address into a vector\n\n- load_128_unaligned     : load 128-bit from memory into a vector,\n                           without guarantee of alignment for the\n                           source pointer\n\n- save_128_aligned       : save 128-bit vector into a 16-byte aligned\n                           memory address\n\n- create_mask_16_128     : take a 16-bit value and fill with it\n                           a new vector\n\n- create_mask_1x32_128   : take a 32-bit pointer and fill a new\n                           vector with the 32-bit value from that pointer\n\n- create_mask_32_128     : take a 32-bit value and fill with it\n                           a new vector\n\n- unpack_32_1x128        : unpack 32-bit value into a vector\n\n- unpacklo_128_16x8      : unpack the eight low 8-bit values of a vector\n\n- unpackhi_128_16x8      : unpack the eight high 8-bit values of a vector\n\n- unpacklo_128_8x16      : unpack the four low 16-bit values of a vector\n\n- unpackhi_128_8x16      : unpack the four high 16-bit values of a vector\n\n- unpack_128_2x128       : unpack the eight low 8-bit values of a vector\n                           into one vector and the eight high 8-bit\n                           values into another vector\n\n- unpack_128_2x128_16    : unpack the four low 16-bit values of a vector\n                           into one vector and the four high 16-bit\n                           values into another vector\n\n- unpack_565_to_8888     : unpack an RGB_565 vector to 8888 vector\n\n- pack_1x128_32          : pack a vector and return the LSB 32-bit of it\n\n- pack_2x128_128         : pack two vectors into one and return it\n\n- negate_2x128           : xor two vectors with mask_00ff (separately)\n\n- is_opaque              : returns whether all the pixels contained in\n                           the vector are opaque\n\n- is_zero                : returns whether the vector equals 0\n\n- is_transparent         : returns whether all the pixels\n                           contained in the vector are transparent\n\n- expand_pixel_8_1x128   : expand an 8-bit pixel into lower 8 bytes of a\n                           vector\n\n- expand_alpha_1x128     : expand alpha from vector and return the new\n                           vector\n\n- expand_alpha_2x128     : expand alpha from one vector and another alpha\n                           from a second vector\n\n- expand_alpha_rev_2x128 : expand a reversed alpha from one vector and\n                           another reversed alpha from a second vector\n\n- pix_multiply_2x128     : do pix_multiply for two vectors (separately)\n\n- over_2x128             : perform over op. on two vectors\n\n- in_over_2x128          : perform in-over op. on two vectors\n\nv2: removed expand_pixel_32_1x128 as it was not used by any function and\nits implementation was erroneous\n\nSigned-off-by: Oded Gabbay \u003coded.gabbay@gmail.com\u003e\nAcked-by: Siarhei Siamashka \u003csiarhei.siamashka@gmail.com\u003e\n"
    },
    {
      "commit": "034149537be94862b43fb09699b8c2149bfe948d",
      "tree": "162bbb92a8cd818f06b9690332bcfe86a9a7dc6c",
      "parents": [
        "744134025609a0a5805c2d3b4d34856eb75cb711"
      ],
      "author": {
        "name": "Oded Gabbay",
        "email": "oded.gabbay@gmail.com",
        "time": "Thu Jul 02 11:04:20 2015 +0300"
      },
      "committer": {
        "name": "Oded Gabbay",
        "email": "oded.gabbay@gmail.com",
        "time": "Thu Jul 16 16:13:35 2015 +0300"
      },
      "message": "vmx: add LOAD_VECTOR macro\n\nThis patch adds a macro for loading a single vector.\nIt also make the other LOAD_VECTORx macros use this macro as a base so\ncode would be re-used.\n\nIn addition, I fixed minor coding style issues.\n\nSigned-off-by: Oded Gabbay \u003coded.gabbay@gmail.com\u003e\nAcked-by: Siarhei Siamashka \u003csiarhei.siamashka@gmail.com\u003e\n"
    },
    {
      "commit": "744134025609a0a5805c2d3b4d34856eb75cb711",
      "tree": "4c1332974c9b0f1d825427614c27c7b136346c6c",
      "parents": [
        "e2d211ac491cd9884aae7ccaf18e5b3042469cf2"
      ],
      "author": {
        "name": "Nemanja Lukic",
        "email": "nemanja.lukic@rt-rk.com",
        "time": "Fri Jun 27 18:05:39 2014 +0200"
      },
      "committer": {
        "name": "Oded Gabbay",
        "email": "oded.gabbay@gmail.com",
        "time": "Sat Jul 11 23:08:02 2015 +0300"
      },
      "message": "MIPS: update author\u0027s e-mail address\n\nSigned-off-by: Oded Gabbay \u003coded.gabbay@gmail.com\u003e\n"
    },
    {
      "commit": "e2d211ac491cd9884aae7ccaf18e5b3042469cf2",
      "tree": "9ec605e37c6b0b0d38b6f5cc8065b437b8471efc",
      "parents": [
        "31cb0d4267f4f358b62f75fd42c4b1ae625be7ee"
      ],
      "author": {
        "name": "Pekka Paalanen",
        "email": "pekka.paalanen@collabora.co.uk",
        "time": "Wed Jun 10 13:54:01 2015 +0300"
      },
      "committer": {
        "name": "Pekka Paalanen",
        "email": "pekka.paalanen@collabora.co.uk",
        "time": "Mon Jul 06 12:04:50 2015 +0300"
      },
      "message": "lowlevel-blt-bench: add option to skip memcpy measurement\n\nThe memcpy speed measurement takes several seconds. When you are running\nsingle tests in a harness that iterates dozens or hundreds of times, the\nrepeated measurements are redundant and take a lot of time. It is also\nan open question whether the measured speed changes over long test runs\ndue to unidentified platform reasons (Raspberry Pi).\n\nAdd a command line option to set the reference memcpy speed, skipping\nthe measuring.\n\nThe speed is mainly used to compute how many iterations do run inside\nthe bench_*() functions, so for repeated testing on the same hardware,\nit makes sense to lock that number to a constant.\n\nSigned-off-by: Pekka Paalanen \u003cpekka.paalanen@collabora.co.uk\u003e\nReviewed-by: Ben Avison \u003cbavison@riscosopen.org\u003e\n"
    },
    {
      "commit": "31cb0d4267f4f358b62f75fd42c4b1ae625be7ee",
      "tree": "2ea6d21aa71682402fffc47ec784dd6176366238",
      "parents": [
        "9a7e0bc6d08c0324f09d6440270cd07201929f3f"
      ],
      "author": {
        "name": "Pekka Paalanen",
        "email": "pekka.paalanen@collabora.co.uk",
        "time": "Wed Jun 10 13:20:47 2015 +0300"
      },
      "committer": {
        "name": "Pekka Paalanen",
        "email": "pekka.paalanen@collabora.co.uk",
        "time": "Mon Jul 06 12:04:32 2015 +0300"
      },
      "message": "lowlevel-blt-bench: add CSV output mode\n\nAdd a command line option for choosing CSV output mode.\n\nIn CSV mode, only the results in Mpixels/s are printed in an easily\nmachine-parseable format. All user-friendly printing is suppressed.\n\nThis is intended for cases where you benchmark one particular operation\nat a time. Running the \"all\" set of benchmarks will print just fine, but\nyou may have trouble matching rows to operations as you have to look at\nthe tests_tbl[] to see what row is which.\n\nReviewed-by: Ben Avison \u003cbavison@riscosopen.org\u003e\n\nv2: don\u0027t add a space after comma in CSV.\n\nSigned-off-by: Pekka Paalanen \u003cpekka.paalanen@collabora.co.uk\u003e\n"
    },
    {
      "commit": "9a7e0bc6d08c0324f09d6440270cd07201929f3f",
      "tree": "a273ac20bb0b4eb7af93f50def27dff59c044de5",
      "parents": [
        "6e9c48c579e3325506234fa2ee7635f08f2c5a33"
      ],
      "author": {
        "name": "Pekka Paalanen",
        "email": "pekka.paalanen@collabora.co.uk",
        "time": "Wed Jun 10 12:41:57 2015 +0300"
      },
      "committer": {
        "name": "Pekka Paalanen",
        "email": "pekka.paalanen@collabora.co.uk",
        "time": "Mon Jul 06 12:04:27 2015 +0300"
      },
      "message": "lowlevel-blt-bench: refactor to Mpx_per_sec()\n\nRefactor the Mpixels/s computations into a function. Easier to read and\nbetter documents what is being computed.\n\nSigned-off-by: Pekka Paalanen \u003cpekka.paalanen@collabora.co.uk\u003e\nReviewed-by: Ben Avison \u003cbavison@riscosopen.org\u003e\n"
    },
    {
      "commit": "6e9c48c579e3325506234fa2ee7635f08f2c5a33",
      "tree": "4dab8450901059b063f6ac88b5307cb113766b35",
      "parents": [
        "9e8f2bcaf5fabd3729ee0ecc90009fd6cea9e8e9"
      ],
      "author": {
        "name": "Pekka Paalanen",
        "email": "pekka.paalanen@collabora.co.uk",
        "time": "Wed Jun 10 12:53:09 2015 +0300"
      },
      "committer": {
        "name": "Pekka Paalanen",
        "email": "pekka.paalanen@collabora.co.uk",
        "time": "Mon Jul 06 12:04:22 2015 +0300"
      },
      "message": "lowlevel-blt-bench: all bench funcs to return pix_cnt\n\nThe bench_* functions, that did not already do it, are modified to\nreturn the number of pixels processed during the benchmark. This moves\nthe computation to the site that actually determines the number, and\nsimplifies bench_composite() a bit.\n\nSigned-off-by: Pekka Paalanen \u003cpekka.paalanen@collabora.co.uk\u003e\nReviewed-by: Ben Avison \u003cbavison@riscosopen.org\u003e\n"
    },
    {
      "commit": "9e8f2bcaf5fabd3729ee0ecc90009fd6cea9e8e9",
      "tree": "ccef685b07dbdaf2c4135ca6852799e119dcf247",
      "parents": [
        "a33c2e6853fe0a76da42a43ed7ed9095e2dbe6a2"
      ],
      "author": {
        "name": "Pekka Paalanen",
        "email": "pekka.paalanen@collabora.co.uk",
        "time": "Wed Jun 10 12:02:17 2015 +0300"
      },
      "committer": {
        "name": "Pekka Paalanen",
        "email": "pekka.paalanen@collabora.co.uk",
        "time": "Mon Jul 06 12:04:18 2015 +0300"
      },
      "message": "lowlevel-blt-bench: move speed and scaling printing\n\nMove the printing of the memory speed and scaling mode into a new\nfunction. This will help with implementing a machine-readable output\noption.\n\nSigned-off-by: Pekka Paalanen \u003cpekka.paalanen@collabora.co.uk\u003e\nReviewed-by: Ben Avison \u003cbavison@riscosopen.org\u003e\n"
    },
    {
      "commit": "a33c2e6853fe0a76da42a43ed7ed9095e2dbe6a2",
      "tree": "9912e541ef39472897757f22df74b89fb9efd7b5",
      "parents": [
        "3ac7ae201758fe99627fdb2adf783be4063a9b1f"
      ],
      "author": {
        "name": "Pekka Paalanen",
        "email": "pekka.paalanen@collabora.co.uk",
        "time": "Wed Jun 10 11:56:39 2015 +0300"
      },
      "committer": {
        "name": "Pekka Paalanen",
        "email": "pekka.paalanen@collabora.co.uk",
        "time": "Mon Jul 06 12:04:12 2015 +0300"
      },
      "message": "lowlevel-blt-bench: print single pattern details\n\nWhen given just a single test pattern instead of \"all\", print the test\ndetails. This can be used to verify the pattern parser agrees with the\nuser, just like scaling settings are printed.\n\nSigned-off-by: Pekka Paalanen \u003cpekka.paalanen@collabora.co.uk\u003e\nReviewed-by: Ben Avison \u003cbavison@riscosopen.org\u003e\n"
    },
    {
      "commit": "3ac7ae201758fe99627fdb2adf783be4063a9b1f",
      "tree": "7594933ab7aba88980c4a45f8e97f6ca20b5b3c9",
      "parents": [
        "56d8b365f5944bf78a427ac65c5a0d0311e0da5e"
      ],
      "author": {
        "name": "Pekka Paalanen",
        "email": "pekka.paalanen@collabora.co.uk",
        "time": "Wed Jun 10 11:34:45 2015 +0300"
      },
      "committer": {
        "name": "Pekka Paalanen",
        "email": "pekka.paalanen@collabora.co.uk",
        "time": "Mon Jul 06 12:04:07 2015 +0300"
      },
      "message": "lowlevel-blt-bench: make test_entry::testname const\n\nWe assign string literals to it, so it better be const.\n\nSigned-off-by: Pekka Paalanen \u003cpekka.paalanen@collabora.co.uk\u003e\nReviewed-by: Ben Avison \u003cbavison@riscosopen.org\u003e\n"
    },
    {
      "commit": "56d8b365f5944bf78a427ac65c5a0d0311e0da5e",
      "tree": "2240d8b7543445bf615496ed1ac65098bb112525",
      "parents": [
        "bddff993ed734f4b9030c1960bcb3ebe1caca807"
      ],
      "author": {
        "name": "Pekka Paalanen",
        "email": "pekka.paalanen@collabora.co.uk",
        "time": "Wed Jun 10 11:21:14 2015 +0300"
      },
      "committer": {
        "name": "Pekka Paalanen",
        "email": "pekka.paalanen@collabora.co.uk",
        "time": "Mon Jul 06 12:04:03 2015 +0300"
      },
      "message": "lowlevel-blt-bench: move explanation printing\n\nMove explanation printing to a new function. This will help with\nimplementing a machine-readable output option.\n\nSigned-off-by: Pekka Paalanen \u003cpekka.paalanen@collabora.co.uk\u003e\nReviewed-by: Ben Avison \u003cbavison@riscosopen.org\u003e\n"
    },
    {
      "commit": "bddff993ed734f4b9030c1960bcb3ebe1caca807",
      "tree": "2a893678a6ede3b667d90b0a4450d692f7bd963a",
      "parents": [
        "2be523b20402b7c9f548ac33b8c0f0ed00156c64"
      ],
      "author": {
        "name": "Pekka Paalanen",
        "email": "pekka.paalanen@collabora.co.uk",
        "time": "Wed Jun 10 11:14:38 2015 +0300"
      },
      "committer": {
        "name": "Pekka Paalanen",
        "email": "pekka.paalanen@collabora.co.uk",
        "time": "Mon Jul 06 12:03:28 2015 +0300"
      },
      "message": "lowlevel-blt-bench: move usage to a function\n\nMove printing of usage into a new function and use argv[0] as the\nprogram name. This will help printing usage from multiple places.\n\nSigned-off-by: Pekka Paalanen \u003cpekka.paalanen@collabora.co.uk\u003e\nReviewed-by: Ben Avison \u003cbavison@riscosopen.org\u003e\n"
    },
    {
      "commit": "2be523b20402b7c9f548ac33b8c0f0ed00156c64",
      "tree": "8c4d238cb2705266c910ba3b4d4c07bc3b3e712a",
      "parents": [
        "8d379ad88e208bed9697065f6911c9ef83d85276"
      ],
      "author": {
        "name": "Oded Gabbay",
        "email": "oded.gabbay@gmail.com",
        "time": "Thu Jun 25 15:59:57 2015 +0300"
      },
      "committer": {
        "name": "Pekka Paalanen",
        "email": "pekka.paalanen@collabora.co.uk",
        "time": "Thu Jul 02 10:04:41 2015 +0300"
      },
      "message": "vmx: fix pix_multiply for ppc64le\n\nvec_mergeh/l operates differently for BE and LE, because of the order of\nthe vector elements (l-\u003er in BE and r-\u003el in LE).\nTo fix that, we simply need to swap between the input parameters, in case\nwe are working in LE.\n\nv2:\n\n- replace _LITTLE_ENDIAN with WORDS_BIGENDIAN for consistency\n- fixed whitespaces and indentation issues\n\nSigned-off-by: Oded Gabbay \u003coded.gabbay@gmail.com\u003e\nReviewed-by: Adam Jackson \u003cajax@redhat.com\u003e\nAcked-by: Pekka Paalanen \u003cpekka.paalanen@collabora.co.uk\u003e\n"
    },
    {
      "commit": "8d379ad88e208bed9697065f6911c9ef83d85276",
      "tree": "1ce930f9480a0f58a5aff36ba88e96de5a8e1383",
      "parents": [
        "ff66a4a3ce95f2adcbf30b354eac60944596d6a2"
      ],
      "author": {
        "name": "Oded Gabbay",
        "email": "oded.gabbay@gmail.com",
        "time": "Thu Jun 25 15:59:56 2015 +0300"
      },
      "committer": {
        "name": "Pekka Paalanen",
        "email": "pekka.paalanen@collabora.co.uk",
        "time": "Thu Jul 02 10:04:34 2015 +0300"
      },
      "message": "vmx: fix unused var warnings\n\nv2: don\u0027t put \u0027;\u0027 at the end of macro definition. Instead, move it to\n    each line the macro is used.\n\nSigned-off-by: Oded Gabbay \u003coded.gabbay@gmail.com\u003e\nReviewed-by: Adam Jackson \u003cajax@redhat.com\u003e\nAcked-by: Pekka Paalanen \u003cpekka.paalanen@collabora.co.uk\u003e\n"
    },
    {
      "commit": "ff66a4a3ce95f2adcbf30b354eac60944596d6a2",
      "tree": "c5f627e66e049f41a194a6a23982f71785af551b",
      "parents": [
        "f6a26d09257dde9cd41144120543c8b754de515f"
      ],
      "author": {
        "name": "Oded Gabbay",
        "email": "oded.gabbay@gmail.com",
        "time": "Thu Jun 25 15:59:55 2015 +0300"
      },
      "committer": {
        "name": "Pekka Paalanen",
        "email": "pekka.paalanen@collabora.co.uk",
        "time": "Thu Jul 02 10:04:27 2015 +0300"
      },
      "message": "vmx: encapsulate the temporary variables inside the macros\n\nv2: fixed whitespaces and indentation issues\n\nSigned-off-by: Oded Gabbay \u003coded.gabbay@gmail.com\u003e\nReviewed-by: Adam Jackson \u003cajax@redhat.com\u003e\nAcked-by: Pekka Paalanen \u003cpekka.paalanen@collabora.co.uk\u003e\n"
    },
    {
      "commit": "f6a26d09257dde9cd41144120543c8b754de515f",
      "tree": "a7b6e1bfe4d314fddb3320d3cc4c9e4b2df2b698",
      "parents": [
        "b3a61703f41c6b34ba2ec9736030e1df04f53ab4"
      ],
      "author": {
        "name": "Fernando Seiti Furusato",
        "email": "ferseiti@linux.vnet.ibm.com",
        "time": "Thu Jun 25 15:59:54 2015 +0300"
      },
      "committer": {
        "name": "Pekka Paalanen",
        "email": "pekka.paalanen@collabora.co.uk",
        "time": "Thu Jul 02 10:04:15 2015 +0300"
      },
      "message": "vmx: adjust macros when loading vectors on ppc64le\n\nReplaced usage of vec_lvsl to direct unaligned assignment\noperation (\u003d). That is because, according to Power ABI Specification,\nthe usage of lvsl is deprecated on ppc64le.\n\nChanged COMPUTE_SHIFT_{MASK,MASKS,MASKC} macro usage to no-op for powerpc\nlittle endian since unaligned access is supported on ppc64le.\n\nv2:\n\n- replace _LITTLE_ENDIAN with WORDS_BIGENDIAN for consistency\n- fixed whitespaces and indentation issues\n\nSigned-off-by: Fernando Seiti Furusato \u003cferseiti@linux.vnet.ibm.com\u003e\nReviewed-by: Adam Jackson \u003cajax@redhat.com\u003e\nSigned-off-by: Oded Gabbay \u003coded.gabbay@gmail.com\u003e\nAcked-by: Pekka Paalanen \u003cpekka.paalanen@collabora.co.uk\u003e\n"
    },
    {
      "commit": "b3a61703f41c6b34ba2ec9736030e1df04f53ab4",
      "tree": "fbadab3b0249e28d8f509e2ef87badafb270026c",
      "parents": [
        "eebc1b78200aff075dbcae9c8d00edad1f830d91"
      ],
      "author": {
        "name": "Oded Gabbay",
        "email": "oded.gabbay@gmail.com",
        "time": "Thu Jun 25 15:59:53 2015 +0300"
      },
      "committer": {
        "name": "Pekka Paalanen",
        "email": "pekka.paalanen@collabora.co.uk",
        "time": "Thu Jul 02 10:03:54 2015 +0300"
      },
      "message": "vmx: fix splat_alpha for ppc64le\n\nThe permutation vector isn\u0027t correct for LE, so correct its values\nin case we are in LE mode.\n\nv2:\n\n- replace _LITTLE_ENDIAN with WORDS_BIGENDIAN for consistency\n- change #ifndef to #ifdef for readability\n\nSigned-off-by: Oded Gabbay \u003coded.gabbay@gmail.com\u003e\nReviewed-by: Adam Jackson \u003cajax@redhat.com\u003e\nAcked-by: Pekka Paalanen \u003cpekka.paalanen@collabora.co.uk\u003e\n"
    },
    {
      "commit": "eebc1b78200aff075dbcae9c8d00edad1f830d91",
      "tree": "e9c4c56fb4e29a4cd67cc364c4eff4e99365fb28",
      "parents": [
        "7f6692807902b840b81f860fb2196d2fb242d977"
      ],
      "author": {
        "name": "Ben Avison",
        "email": "bavison@riscosopen.org",
        "time": "Tue May 26 23:58:29 2015 +0100"
      },
      "committer": {
        "name": "Pekka Paalanen",
        "email": "pekka.paalanen@collabora.co.uk",
        "time": "Mon Jun 01 13:57:09 2015 +0300"
      },
      "message": "mmx/sse2: Use SIMPLE_NEAREST_SOLID_MASK_FAST_PATH for NORMAL repeat\n\nThese two architectures were the only place where\nSIMPLE_NEAREST_SOLID_MASK_FAST_PATH was used, and in both cases the\nequivalent SIMPLE_NEAREST_SOLID_MASK_FAST_PATH_NORMAL macro was used\nimmediately afterwards, so including the NORMAL case in the main macro\nsimplifies the fast path table.\n\n[Pekka: removed extra comma from the end of\n SIMPLE_NEAREST_SOLID_MASK_FAST_PATH]\n\nReviewed-by: Pekka Paalanen \u003cpekka.paalanen@collabora.co.uk\u003e\nAcked-by: Siarhei Siamashka \u003csiarhei.siamashka@gmail.com\u003e\n"
    },
    {
      "commit": "7f6692807902b840b81f860fb2196d2fb242d977",
      "tree": "f0b64e2a8268b4bfa52bee15c6021f7e37eca26d",
      "parents": [
        "dee5000abbf74d55cefe00243e5a9fff630c16cb"
      ],
      "author": {
        "name": "Ben Avison",
        "email": "bavison@riscosopen.org",
        "time": "Tue May 26 23:58:28 2015 +0100"
      },
      "committer": {
        "name": "Pekka Paalanen",
        "email": "pekka.paalanen@collabora.co.uk",
        "time": "Mon Jun 01 13:57:00 2015 +0300"
      },
      "message": "mmx/sse2: Use SIMPLE_NEAREST_FAST_PATH macro\n\nThere is some reordering, but the only significant thing to ensure that\nthe same routine is chosen is that a COVER fast path for a given\ncombination of operator and source/destination pixel formats must\nprecede all the variants of repeated fast paths for the same\ncombination. This patch (and the other mmx/sse2 one) still follows that\nrule.\n\nI believe that in every other case, the set of operations that match any\npair of fast paths that are reordered in these patches are mutually\nexclusive. While there will be a very subtle timing difference due to\nthe distance through the table we have to search to find a match\n(sometimes faster, sometime slower) there is no evidence that the tables\nhave been carefully ordered by frequency of occurrence - just for ease\nof copy-and-pasting.\n\nReviewed-by: Pekka Paalanen \u003cpekka.paalanen@collabora.co.uk\u003e\nAcked-by: Siarhei Siamashka \u003csiarhei.siamashka@gmail.com\u003e\n"
    },
    {
      "commit": "dee5000abbf74d55cefe00243e5a9fff630c16cb",
      "tree": "132665079d3e9bf11f4c25a152644bb3cd07ad96",
      "parents": [
        "4c70d18acc3a2e20f47a71d9174de9d99244d468"
      ],
      "author": {
        "name": "Ben Avison",
        "email": "bavison@riscosopen.org",
        "time": "Tue May 26 23:58:27 2015 +0100"
      },
      "committer": {
        "name": "Pekka Paalanen",
        "email": "pekka.paalanen@collabora.co.uk",
        "time": "Mon Jun 01 13:56:54 2015 +0300"
      },
      "message": "mips: Retire PIXMAN_MIPS_SIMPLE_NEAREST_A8_MASK_FAST_PATH\n\nThis macro does exactly the same thing as the platform-neutral macro\nSIMPLE_NEAREST_A8_MASK_FAST_PATH.\n\nReviewed-by: Pekka Paalanen \u003cpekka.paalanen@collabora.co.uk\u003e\nAcked-by: Siarhei Siamashka \u003csiarhei.siamashka@gmail.com\u003e\n"
    },
    {
      "commit": "4c70d18acc3a2e20f47a71d9174de9d99244d468",
      "tree": "2b8c11a8f584ef31425f79cfbc7bd04426813aa4",
      "parents": [
        "de255e6a5e3a1364d241d1b23173279c92a9bbe5"
      ],
      "author": {
        "name": "Ben Avison",
        "email": "bavison@riscosopen.org",
        "time": "Tue May 26 23:58:26 2015 +0100"
      },
      "committer": {
        "name": "Pekka Paalanen",
        "email": "pekka.paalanen@collabora.co.uk",
        "time": "Mon Jun 01 13:56:45 2015 +0300"
      },
      "message": "arm: Simplify PIXMAN_ARM_SIMPLE_NEAREST_A8_MASK_FAST_PATH\n\nThis macro is a superset of the platform-neutral macro\nSIMPLE_NEAREST_A8_MASK_FAST_PATH. In other words, in addition to the\n_COVER, _NONE and _PAD suffixes, its expansion includes the _NORMAL suffix.\n\nReviewed-by: Pekka Paalanen \u003cpekka.paalanen@collabora.co.uk\u003e\nAcked-by: Siarhei Siamashka \u003csiarhei.siamashka@gmail.com\u003e\n"
    },
    {
      "commit": "de255e6a5e3a1364d241d1b23173279c92a9bbe5",
      "tree": "939b686646d95530eb1a6ec8298dde1e202c2536",
      "parents": [
        "62a772f2ea9ec14b0240c0cc62e174ffa98ee2cc"
      ],
      "author": {
        "name": "Ben Avison",
        "email": "bavison@riscosopen.org",
        "time": "Wed May 27 12:45:25 2015 +0100"
      },
      "committer": {
        "name": "Pekka Paalanen",
        "email": "pekka.paalanen@collabora.co.uk",
        "time": "Mon Jun 01 13:56:29 2015 +0300"
      },
      "message": "arm: Retire PIXMAN_ARM_SIMPLE_NEAREST_FAST_PATH\n\nThis macro does exactly the same thing as the platform-neutral macro\nSIMPLE_NEAREST_FAST_PATH.\n\nReviewed-by: Pekka Paalanen \u003cpekka.paalanen@collabora.co.uk\u003e\nAcked-by: Siarhei Siamashka \u003csiarhei.siamashka@gmail.com\u003e\n"
    },
    {
      "commit": "62a772f2ea9ec14b0240c0cc62e174ffa98ee2cc",
      "tree": "a9d1f71c969b533421b92b4c96fd3f0199b421af",
      "parents": [
        "82f9b4faaf1aa63ec26b0dfd227f1a8e5e139ae2"
      ],
      "author": {
        "name": "Ben Avison",
        "email": "bavison@riscosopen.org",
        "time": "Fri May 29 16:20:43 2015 +0100"
      },
      "committer": {
        "name": "Pekka Paalanen",
        "email": "pekka.paalanen@collabora.co.uk",
        "time": "Mon Jun 01 13:11:15 2015 +0300"
      },
      "message": "test: Fix solid-test for big-endian targets\n\nWhen generating test data, we need to make sure the interpretation of\nthe data is the same regardless of endianess. That is, the pixel value\nfor each channel is the same on both little and big-endians.\n\nThis fixes a test failure on ppc64 (big-endian).\n\nTested-by: Fernando Seiti Furusato \u003cferseiti@linux.vnet.ibm.com\u003e (ppc64le, ppc64, powerpc)\nTested-by: Ben Avison \u003cbavison@riscosopen.org\u003e (armv6l, armv7l, i686)\n[Pekka: added commit message]\nReviewed-by: Pekka Paalanen \u003cpekka.paalanen@collabora.co.uk\u003e\nTested-by: Pekka Paalanen \u003cpekka.paalanen@collabora.co.uk\u003e (x86_64)\n"
    },
    {
      "commit": "82f9b4faaf1aa63ec26b0dfd227f1a8e5e139ae2",
      "tree": "ab476b42125a1c67ed45d91b2266293663cda43d",
      "parents": [
        "cf086d4949092861dc3729465a3881d229cc1060"
      ],
      "author": {
        "name": "Ben Avison",
        "email": "bavison@riscosopen.org",
        "time": "Thu May 07 19:32:46 2015 +0100"
      },
      "committer": {
        "name": "Pekka Paalanen",
        "email": "pekka.paalanen@collabora.co.uk",
        "time": "Fri May 15 16:30:21 2015 +0300"
      },
      "message": "test: Add new fuzz tester targeting solid images\n\nThis places a heavier emphasis on solid images than the other fuzz testers,\nand tests both single-pixel repeating bitmap images as well as those created\nusing pixman_image_create_solid_fill(). In the former case, it also\nexercises the case where the bitmap contents are written to after the\nimage\u0027s first use, which is not a use-case that any other test has\npreviously covered.\n\n[Pekka: added the default case to the switch in test_solid ().]\n\nReviewed-by: Pekka Paalanen \u003cpekka.paalanen@collabora.co.uk\u003e\n"
    }
  ],
  "next": "cf086d4949092861dc3729465a3881d229cc1060"
}
