<?xml version="1.0" encoding="UTF-8"?>
<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns="http://purl.org/rss/1.0/" xmlns:taxo="http://purl.org/rss/1.0/modules/taxonomy/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:syn="http://purl.org/rss/1.0/modules/syndication/" xmlns:admin="http://webns.net/mvcb/">
  <channel rdf:about="http://permalink.gmane.org/gmane.comp.graphics.pixman">
    <title>gmane.comp.graphics.pixman</title>
    <link>http://permalink.gmane.org/gmane.comp.graphics.pixman</link>
    <description/>
    <syn:updatePeriod>hourly</syn:updatePeriod>
    <syn:updateFrequency>1</syn:updateFrequency>
    <syn:updateBase>1901-01-01T00:00+00:00</syn:updateBase>
    <items>
      <rdf:Seq>
        <rdf:li rdf:resource="http://permalink.gmane.org/gmane.comp.graphics.pixman/2718"/>
        <rdf:li rdf:resource="http://permalink.gmane.org/gmane.comp.graphics.pixman/2717"/>
        <rdf:li rdf:resource="http://permalink.gmane.org/gmane.comp.graphics.pixman/2716"/>
        <rdf:li rdf:resource="http://permalink.gmane.org/gmane.comp.graphics.pixman/2715"/>
        <rdf:li rdf:resource="http://permalink.gmane.org/gmane.comp.graphics.pixman/2714"/>
        <rdf:li rdf:resource="http://permalink.gmane.org/gmane.comp.graphics.pixman/2713"/>
        <rdf:li rdf:resource="http://permalink.gmane.org/gmane.comp.graphics.pixman/2712"/>
        <rdf:li rdf:resource="http://permalink.gmane.org/gmane.comp.graphics.pixman/2711"/>
        <rdf:li rdf:resource="http://permalink.gmane.org/gmane.comp.graphics.pixman/2710"/>
        <rdf:li rdf:resource="http://permalink.gmane.org/gmane.comp.graphics.pixman/2709"/>
        <rdf:li rdf:resource="http://permalink.gmane.org/gmane.comp.graphics.pixman/2708"/>
        <rdf:li rdf:resource="http://permalink.gmane.org/gmane.comp.graphics.pixman/2707"/>
        <rdf:li rdf:resource="http://permalink.gmane.org/gmane.comp.graphics.pixman/2706"/>
        <rdf:li rdf:resource="http://permalink.gmane.org/gmane.comp.graphics.pixman/2705"/>
        <rdf:li rdf:resource="http://permalink.gmane.org/gmane.comp.graphics.pixman/2704"/>
        <rdf:li rdf:resource="http://permalink.gmane.org/gmane.comp.graphics.pixman/2703"/>
        <rdf:li rdf:resource="http://permalink.gmane.org/gmane.comp.graphics.pixman/2702"/>
        <rdf:li rdf:resource="http://permalink.gmane.org/gmane.comp.graphics.pixman/2701"/>
        <rdf:li rdf:resource="http://permalink.gmane.org/gmane.comp.graphics.pixman/2700"/>
        <rdf:li rdf:resource="http://permalink.gmane.org/gmane.comp.graphics.pixman/2699"/>
      </rdf:Seq>
    </items>
    <image rdf:resource="http://gmane.org/img/gmane-25t.png"/>
    <textinput rdf:resource=""/>
  </channel>
  <image rdf:about="http://gmane.org/img/gmane-25t.png">
    <title>Gmane</title>
    <url>http://gmane.org/img/gmane-25t.png</url>
    <link>http://gmane.org</link>
  </image>
  <item rdf:about="http://permalink.gmane.org/gmane.comp.graphics.pixman/2718">
    <title>[PATCH 11/11] Consolidate all the iter_init_bits_stridefunctions</title>
    <link>http://permalink.gmane.org/gmane.comp.graphics.pixman/2718</link>
    <description>&lt;pre&gt;The SSE2, MMX, and fast implementations all have a copy of the
function iter_init_bits_stride that computes an image buffer and
stride.

Move that function to pixman-utils.c and share it among all the
implementations.
---
 pixman/pixman-fast-path.c | 19 +++++--------------
 pixman/pixman-mmx.c       | 17 +++--------------
 pixman/pixman-private.h   |  3 +++
 pixman/pixman-sse2.c      | 17 +++--------------
 pixman/pixman-utils.c     | 11 +++++++++++
 5 files changed, 25 insertions(+), 42 deletions(-)

diff --git a/pixman/pixman-fast-path.c b/pixman/pixman-fast-path.c
index 9af26af..3982dce 100644
--- a/pixman/pixman-fast-path.c
+++ b/pixman/pixman-fast-path.c
&amp;lt; at &amp;gt;&amp;lt; at &amp;gt; -2261,17 +2261,6 &amp;lt; at &amp;gt;&amp;lt; at &amp;gt; fast_write_back_r5g6b5 (pixman_iter_t *iter)
     }
 }
 
-static void
-iter_init_bits_stride (pixman_iter_t *iter, const pixman_iter_info_t *info)
-{
-    pixman_image_t *image = iter-&amp;gt;image;
-    uint8_t *b = (uint8_t *)image-&amp;gt;bits.bits;
-    int s = image-&amp;gt;bits.rowstride * 4;
-
-    iter-&amp;gt;bits = b + s * iter-&amp;gt;y + iter-&amp;gt;x * PIXMA&lt;/pre&gt;</description>
    <dc:creator>Søren Sandmann Pedersen</dc:creator>
    <dc:date>2013-05-22T13:45:20</dc:date>
  </item>
  <item rdf:about="http://permalink.gmane.org/gmane.comp.graphics.pixman/2717">
    <title>[PATCH 09/11] Add _pixman_implementation_iter_init() anduse instead of _src/_dest_init()</title>
    <link>http://permalink.gmane.org/gmane.comp.graphics.pixman/2717</link>
    <description>&lt;pre&gt;A new field, 'iter_info', is added to the implementation struct, and
all the implementations store a pointer to their iterator tables in
it. A new function, _pixman_implementation_iter_init(), is then added
that searches those tables, and the new function is called in
pixman-general.c and pixman-image.c instead of the old
_pixman_implementation_src_init() and _pixman_implementation_dest_init().
---
 pixman/pixman-fast-path.c      |  1 +
 pixman/pixman-general.c        | 12 ++++----
 pixman/pixman-image.c          |  2 +-
 pixman/pixman-implementation.c | 63 ++++++++++++++++++++++++++++++++++++++++++
 pixman/pixman-mmx.c            |  1 +
 pixman/pixman-noop.c           |  1 +
 pixman/pixman-private.h        | 13 +++++++++
 pixman/pixman-sse2.c           |  1 +
 8 files changed, 88 insertions(+), 6 deletions(-)

diff --git a/pixman/pixman-fast-path.c b/pixman/pixman-fast-path.c
index 047675c..d5f707f 100644
--- a/pixman/pixman-fast-path.c
+++ b/pixman/pixman-fast-path.c
&amp;lt; at &amp;gt;&amp;lt; at &amp;gt; -2336,6 +2336,7 &amp;lt; at &amp;gt;&amp;lt; at &amp;gt; _pixman_implement&lt;/pre&gt;</description>
    <dc:creator>Søren Sandmann Pedersen</dc:creator>
    <dc:date>2013-05-22T13:45:18</dc:date>
  </item>
  <item rdf:about="http://permalink.gmane.org/gmane.comp.graphics.pixman/2716">
    <title>[PATCH 10/11] Delete the old src/dest_iter_init() functions</title>
    <link>http://permalink.gmane.org/gmane.comp.graphics.pixman/2716</link>
    <description>&lt;pre&gt;Now that we are using the new _pixman_implementation_iter_init(), the
old _src/_dest_iter_init() functions are no longer needed, so they can
be deleted, and the corresponding fields in pixman_implementation_t
can be removed.
---
 pixman/pixman-fast-path.c      | 38 -------------------------
 pixman/pixman-general.c        | 38 -------------------------
 pixman/pixman-implementation.c | 64 ------------------------------------------
 pixman/pixman-mmx.c            | 25 -----------------
 pixman/pixman-noop.c           | 62 ++++------------------------------------
 pixman/pixman-private.h        | 28 ------------------
 pixman/pixman-sse2.c           | 25 -----------------
 7 files changed, 6 insertions(+), 274 deletions(-)

diff --git a/pixman/pixman-fast-path.c b/pixman/pixman-fast-path.c
index d5f707f..9af26af 100644
--- a/pixman/pixman-fast-path.c
+++ b/pixman/pixman-fast-path.c
&amp;lt; at &amp;gt;&amp;lt; at &amp;gt; -2292,50 +2292,12 &amp;lt; at &amp;gt;&amp;lt; at &amp;gt; static const pixman_iter_info_t fast_iters[] =
     { PIXMAN_null },
 };
 
-static pixman_bool_t
-fast_ite&lt;/pre&gt;</description>
    <dc:creator>Søren Sandmann Pedersen</dc:creator>
    <dc:date>2013-05-22T13:45:19</dc:date>
  </item>
  <item rdf:about="http://permalink.gmane.org/gmane.comp.graphics.pixman/2715">
    <title>[PATCH 08/11] general: Store the iter initializer in aone-entry pixman_iter_info_t table</title>
    <link>http://permalink.gmane.org/gmane.comp.graphics.pixman/2715</link>
    <description>&lt;pre&gt;In preparation for sharing all iterator initialization code from all
the implementations, move the general implementation to use a table of
pixman_iter_info_t.

The existing src_iter_init and dest_iter_init functions are
consolidated into one general_iter_init() function that checks the
iter_flags for whether it is dealing with a source or destination
iterator.

Unlike in the other implementations, the general_iter_init() function
stores its own get_scanline() and write_back() functions in the
iterator, so it relies on the initializer being called after
get_scanline and write_back being copied from the struct to the
iterator.
---
 pixman/pixman-general.c | 84 ++++++++++++++++++++++++++++++++++++-------------
 1 file changed, 62 insertions(+), 22 deletions(-)

diff --git a/pixman/pixman-general.c b/pixman/pixman-general.c
index c674ffa..91e33c4 100644
--- a/pixman/pixman-general.c
+++ b/pixman/pixman-general.c
&amp;lt; at &amp;gt;&amp;lt; at &amp;gt; -37,42 +37,82 &amp;lt; at &amp;gt;&amp;lt; at &amp;gt;
 #include &amp;lt;string.h&amp;gt;
 #include "pixman-private.h"
 
-static pixman_bool_t
-gener&lt;/pre&gt;</description>
    <dc:creator>Søren Sandmann Pedersen</dc:creator>
    <dc:date>2013-05-22T13:45:17</dc:date>
  </item>
  <item rdf:about="http://permalink.gmane.org/gmane.comp.graphics.pixman/2714">
    <title>[PATCH 07/11] fast: Replace the fetcher_info_t table witha pixman_iter_info_t table</title>
    <link>http://permalink.gmane.org/gmane.comp.graphics.pixman/2714</link>
    <description>&lt;pre&gt;Similar to the SSE2 and MMX patches, this commit replaces a table of
fetcher_info_t with a table of pixman_iter_info_t, and similar to the
noop patch, both fast_src_iter_init() and fast_dest_iter_init() are
now doing exactly the same thing, so their code can be shared in a new
function called fast_iter_init_common().
---
 pixman/pixman-fast-path.c | 107 +++++++++++++++++++---------------------------
 1 file changed, 45 insertions(+), 62 deletions(-)

diff --git a/pixman/pixman-fast-path.c b/pixman/pixman-fast-path.c
index 247aea6..047675c 100644
--- a/pixman/pixman-fast-path.c
+++ b/pixman/pixman-fast-path.c
&amp;lt; at &amp;gt;&amp;lt; at &amp;gt; -2261,46 +2261,55 &amp;lt; at &amp;gt;&amp;lt; at &amp;gt; fast_write_back_r5g6b5 (pixman_iter_t *iter)
     }
 }
 
-typedef struct
+static void
+iter_init_bits_stride (pixman_iter_t *iter, const pixman_iter_info_t *info)
 {
-    pixman_format_code_tformat;
-    pixman_iter_get_scanline_tget_scanline;
-    pixman_iter_write_back_twrite_back;
-} fetcher_info_t;
+    pixman_image_t *image = iter-&amp;gt;image;
+    uint8_t *b = (uint8_t *)image&lt;/pre&gt;</description>
    <dc:creator>Søren Sandmann Pedersen</dc:creator>
    <dc:date>2013-05-22T13:45:16</dc:date>
  </item>
  <item rdf:about="http://permalink.gmane.org/gmane.comp.graphics.pixman/2713">
    <title>[PATCH 06/11] mmx: Replace the fetcher_info_t table with apixman_iter_info_t table</title>
    <link>http://permalink.gmane.org/gmane.comp.graphics.pixman/2713</link>
    <description>&lt;pre&gt;Similar to the SSE2 commit, information about the iterators is stored
in a table of pixman_iter_info_t.
---
 pixman/pixman-mmx.c | 64 +++++++++++++++++++++++++++++------------------------
 1 file changed, 35 insertions(+), 29 deletions(-)

diff --git a/pixman/pixman-mmx.c b/pixman/pixman-mmx.c
index 746ecd6..02ec998 100644
--- a/pixman/pixman-mmx.c
+++ b/pixman/pixman-mmx.c
&amp;lt; at &amp;gt;&amp;lt; at &amp;gt; -3922,47 +3922,53 &amp;lt; at &amp;gt;&amp;lt; at &amp;gt; mmx_fetch_a8 (pixman_iter_t *iter, const uint32_t *mask)
     return iter-&amp;gt;buffer;
 }
 
-typedef struct
+static void
+iter_init_bits_stride (pixman_iter_t *iter, const pixman_iter_info_t *info)
 {
-    pixman_format_code_tformat;
-    pixman_iter_get_scanline_tget_scanline;
-} fetcher_info_t;
+    pixman_image_t *image = iter-&amp;gt;image;
+    uint8_t *b = (uint8_t *)image-&amp;gt;bits.bits;
+    int s = image-&amp;gt;bits.rowstride * 4;
+
+    iter-&amp;gt;bits = b + s * iter-&amp;gt;y + iter-&amp;gt;x * PIXMAN_FORMAT_BPP (info-&amp;gt;format) / 8;
+    iter-&amp;gt;stride = s;
+}
+
+#define IMAGE_FLAGS\
+    (FAST_PATH_STANDARD_FLAGS | FAST_PATH_ID_TRANSFOR&lt;/pre&gt;</description>
    <dc:creator>Søren Sandmann Pedersen</dc:creator>
    <dc:date>2013-05-22T13:45:15</dc:date>
  </item>
  <item rdf:about="http://permalink.gmane.org/gmane.comp.graphics.pixman/2712">
    <title>[PATCH 05/11] sse2: Replace the fetcher_info_t table witha pixman_iter_info_t table</title>
    <link>http://permalink.gmane.org/gmane.comp.graphics.pixman/2712</link>
    <description>&lt;pre&gt;Similar to the changes to noop, put all the iterators into a table of
pixman_iter_info_t and then do a generic search of that table during
iterator initialization.
---
 pixman/pixman-sse2.c | 64 ++++++++++++++++++++++++++++------------------------
 1 file changed, 35 insertions(+), 29 deletions(-)

diff --git a/pixman/pixman-sse2.c b/pixman/pixman-sse2.c
index 863bc18..344cc46 100644
--- a/pixman/pixman-sse2.c
+++ b/pixman/pixman-sse2.c
&amp;lt; at &amp;gt;&amp;lt; at &amp;gt; -6340,47 +6340,53 &amp;lt; at &amp;gt;&amp;lt; at &amp;gt; sse2_fetch_a8 (pixman_iter_t *iter, const uint32_t *mask)
     return iter-&amp;gt;buffer;
 }
 
-typedef struct
+static void
+iter_init_bits_stride (pixman_iter_t *iter, const pixman_iter_info_t *info)
 {
-    pixman_format_code_tformat;
-    pixman_iter_get_scanline_tget_scanline;
-} fetcher_info_t;
+    pixman_image_t *image = iter-&amp;gt;image;
+    uint8_t *b = (uint8_t *)image-&amp;gt;bits.bits;
+    int s = image-&amp;gt;bits.rowstride * 4;
+
+    iter-&amp;gt;bits = b + s * iter-&amp;gt;y + iter-&amp;gt;x * PIXMAN_FORMAT_BPP (info-&amp;gt;format) / 8;
+    iter-&amp;gt;stride = s;
+}
 
-static const fetc&lt;/pre&gt;</description>
    <dc:creator>Søren Sandmann Pedersen</dc:creator>
    <dc:date>2013-05-22T13:45:14</dc:date>
  </item>
  <item rdf:about="http://permalink.gmane.org/gmane.comp.graphics.pixman/2711">
    <title>[PATCH 04/11] noop: Keep information about iterators in anarray of pixman_iter_info_t</title>
    <link>http://permalink.gmane.org/gmane.comp.graphics.pixman/2711</link>
    <description>&lt;pre&gt;Instead of having a nest of if statements, store the information about
iterators in a table of a new struct type, pixman_iter_info_t, and
then walk that table when initializing iterators.

The new struct contains a format, a set of image flags, and a set of
iter flags, plus a pixman_iter_get_scanline_t, a
pixman_iter_write_back_t, and a new function type
pixman_iter_initializer_t.

If the iterator matches an entry, it is first initialized with the
given get_scanline and write_back functions, and then the provided
iter_initializer (if present) is run. Running the iter_initializer
after setting get_scanline and write_back allows the initializer to
override those fields if it wishes.

The table contains both source and destination iterators,
distinguished based on the recently-added ITER_SRC and ITER_DEST;
similarly, wide iterators are recognized with the ITER_WIDE
flag. Having both source and destination iterators in the table means
the noop_src_iter_init() and noop_dest_iter_init() functions become
identical,&lt;/pre&gt;</description>
    <dc:creator>Søren Sandmann Pedersen</dc:creator>
    <dc:date>2013-05-22T13:45:13</dc:date>
  </item>
  <item rdf:about="http://permalink.gmane.org/gmane.comp.graphics.pixman/2710">
    <title>[PATCH 03/11] Always set the FAST_PATH_NO_ALPHA_MAP flagfor non-BITS images</title>
    <link>http://permalink.gmane.org/gmane.comp.graphics.pixman/2710</link>
    <description>&lt;pre&gt;We only support alpha maps for BITS images, so it's always to ignore
the alpha map for non-BITS image. This makes it possible get rid of
the check for SOLID images since it will now be subsumed by the check
for FAST_PATH_NO_ALPHA_MAP.

Opaque masks are reduced to NULL images in pixman.c, and those can
also safely be treated as not having an alpha map, so set the
FAST_PATH_NO_ALPHA_MAP bit for those as well.
---
 pixman/pixman-image.c | 6 ++++--
 pixman/pixman-noop.c  | 3 +--
 pixman/pixman.c       | 2 +-
 3 files changed, 6 insertions(+), 5 deletions(-)

diff --git a/pixman/pixman-image.c b/pixman/pixman-image.c
index ebf55cd..78c8610 100644
--- a/pixman/pixman-image.c
+++ b/pixman/pixman-image.c
&amp;lt; at &amp;gt;&amp;lt; at &amp;gt; -502,8 +502,10 &amp;lt; at &amp;gt;&amp;lt; at &amp;gt; compute_image_info (pixman_image_t *image)
 break;
     }
 
-    /* Alpha map */
-    if (!image-&amp;gt;common.alpha_map)
+    /* Alpha maps are only supported for BITS images, so it's always
+     * safe to ignore their presense for non-BITS images
+     */
+    if (!image-&amp;gt;common.alpha_map || image&lt;/pre&gt;</description>
    <dc:creator>Søren Sandmann Pedersen</dc:creator>
    <dc:date>2013-05-22T13:45:12</dc:date>
  </item>
  <item rdf:about="http://permalink.gmane.org/gmane.comp.graphics.pixman/2709">
    <title>[PATCH 02/11] Add ITER_WIDE iter flag</title>
    <link>http://permalink.gmane.org/gmane.comp.graphics.pixman/2709</link>
    <description>&lt;pre&gt;This will be useful for putting iterators into tables where they can
be looked up by iterator flags. Without this flag, wide iterators can
only be recognized by the absence of ITER_NARROW, which makes testing
for a match difficult.
---
 pixman/pixman-general.c | 20 +++++++++-----------
 pixman/pixman-private.h | 13 +++++++------
 2 files changed, 16 insertions(+), 17 deletions(-)

diff --git a/pixman/pixman-general.c b/pixman/pixman-general.c
index a4935c7..c674ffa 100644
--- a/pixman/pixman-general.c
+++ b/pixman/pixman-general.c
&amp;lt; at &amp;gt;&amp;lt; at &amp;gt; -116,7 +116,7 &amp;lt; at &amp;gt;&amp;lt; at &amp;gt; general_composite_rect  (pixman_implementation_t *imp,
     pixman_iter_t src_iter, mask_iter, dest_iter;
     pixman_combine_32_func_t compose;
     pixman_bool_t component_alpha;
-    iter_flags_t narrow, src_iter_flags;
+    iter_flags_t width_flag, src_iter_flags;
     int Bpp;
     int i;
 
&amp;lt; at &amp;gt;&amp;lt; at &amp;gt; -124,12 +124,12 &amp;lt; at &amp;gt;&amp;lt; at &amp;gt; general_composite_rect  (pixman_implementation_t *imp,
 (!mask_image || mask_image-&amp;gt;common.flags &amp;amp; FAST_PATH_NARROW_FORMAT) &amp;amp;&amp;amp;
 (dest_image-&amp;gt;comm&lt;/pre&gt;</description>
    <dc:creator>Søren Sandmann Pedersen</dc:creator>
    <dc:date>2013-05-22T13:45:11</dc:date>
  </item>
  <item rdf:about="http://permalink.gmane.org/gmane.comp.graphics.pixman/2708">
    <title>[PATCH 01/11] Add ITER_SRC and ITER_DEST iter flags</title>
    <link>http://permalink.gmane.org/gmane.comp.graphics.pixman/2708</link>
    <description>&lt;pre&gt;These indicate whether the iterator is for a source or a destination
image. Note iterator initializers are allowed to rely on one of these
being set, so they can't be left out the way it's generally harmless
(aside from potentil performance degradation) to leave out a
particular fast path flag.
---
 pixman/pixman-general.c | 14 +++++++++-----
 pixman/pixman-image.c   |  2 +-
 pixman/pixman-private.h |  8 +++++++-
 3 files changed, 17 insertions(+), 7 deletions(-)

diff --git a/pixman/pixman-general.c b/pixman/pixman-general.c
index 93a1b9a..a4935c7 100644
--- a/pixman/pixman-general.c
+++ b/pixman/pixman-general.c
&amp;lt; at &amp;gt;&amp;lt; at &amp;gt; -154,7 +154,7 &amp;lt; at &amp;gt;&amp;lt; at &amp;gt; general_composite_rect  (pixman_implementation_t *imp,
     }
     
     /* src iter */
-    src_iter_flags = narrow | op_flags[op].src;
+    src_iter_flags = narrow | op_flags[op].src | ITER_SRC;
 
     _pixman_implementation_src_iter_init (imp-&amp;gt;toplevel, &amp;amp;src_iter, src_image,
   src_x, src_y, width, height,
&amp;lt; at &amp;gt;&amp;lt; at &amp;gt; -177,13 +177,17 &amp;lt; at &amp;gt;&amp;lt; at &amp;gt; general_composite_rect  (pixman_implementat&lt;/pre&gt;</description>
    <dc:creator>Søren Sandmann Pedersen</dc:creator>
    <dc:date>2013-05-22T13:45:10</dc:date>
  </item>
  <item rdf:about="http://permalink.gmane.org/gmane.comp.graphics.pixman/2707">
    <title>[PATCH 00/11] Table based iterator initialization</title>
    <link>http://permalink.gmane.org/gmane.comp.graphics.pixman/2707</link>
    <description>&lt;pre&gt;Hi,

This patch series changes the way iterator initialization works to be
similar in spirit to the fast paths. That is, each implemenation
exports a table of records containing a format, a set of image flags,
and a set of iterator flags, and a function that is used for
initializing the iterator.

Aside from sharing a bunch of code, another potential benefit of this
patch is that it would allow a cache to be added similar to the fast
path cache. But my personal motivations was that I could find a good
way to rebase the separable bilinear scaler on top of the existing 565
iterators in the fast path implementation.


Søren

 pixman-fast-path.c      |   99 ++++----------------------
 pixman-general.c        |   92 ++++++++++++------------
 pixman-image.c          |   10 +-
 pixman-implementation.c |   89 +++++++++++------------
 pixman-mmx.c            |   59 +++------------
 pixman-noop.c           |  181 ++++++++++++++++++++++--------------------------
 pixman-private.h        |   70 ++++++++++--------
 pixm&lt;/pre&gt;</description>
    <dc:creator>Søren Sandmann Pedersen</dc:creator>
    <dc:date>2013-05-22T13:45:09</dc:date>
  </item>
  <item rdf:about="http://permalink.gmane.org/gmane.comp.graphics.pixman/2706">
    <title>[PATCH] Make use of image flag in noop iterators</title>
    <link>http://permalink.gmane.org/gmane.comp.graphics.pixman/2706</link>
    <description>&lt;pre&gt;From: Søren Sandmann Pedersen &amp;lt;ssp&amp;lt; at &amp;gt;redhat.com&amp;gt;

Similar to c2230fe2aff, simply check against SAMPLES_COVER_CLIP_NEAREST
instead of comparing all the x/y/width/height parameters.
---
 pixman/pixman-noop.c | 10 ++++------
 1 file changed, 4 insertions(+), 6 deletions(-)

diff --git a/pixman/pixman-noop.c b/pixman/pixman-noop.c
index e39996d..955e9c8 100644
--- a/pixman/pixman-noop.c
+++ b/pixman/pixman-noop.c
&amp;lt; at &amp;gt;&amp;lt; at &amp;gt; -64,8 +64,9 &amp;lt; at &amp;gt;&amp;lt; at &amp;gt; noop_src_iter_init (pixman_implementation_t *imp, pixman_iter_t *iter)
 {
     pixman_image_t *image = iter-&amp;gt;image;
 
-#define FLAGS\
-    (FAST_PATH_STANDARD_FLAGS | FAST_PATH_ID_TRANSFORM)
+#define FLAGS\
+    (FAST_PATH_STANDARD_FLAGS | FAST_PATH_ID_TRANSFORM |\
+     FAST_PATH_BITS_IMAGE | FAST_PATH_SAMPLES_COVER_CLIP_NEAREST)
 
     if (!image)
     {
&amp;lt; at &amp;gt;&amp;lt; at &amp;gt; -113,10 +114,7 &amp;lt; at &amp;gt;&amp;lt; at &amp;gt; noop_src_iter_init (pixman_implementation_t *imp, pixman_iter_t *iter)
     }
     else if (image-&amp;gt;common.extended_format_code == PIXMAN_a8r8g8b8&amp;amp;&amp;amp;
      (iter-&amp;gt;iter_flags &amp;amp; ITER_NARROW)&amp;amp;&amp;amp;
-&lt;/pre&gt;</description>
    <dc:creator>Søren Sandmann</dc:creator>
    <dc:date>2013-05-20T11:40:30</dc:date>
  </item>
  <item rdf:about="http://permalink.gmane.org/gmane.comp.graphics.pixman/2705">
    <title>[PATCH] Use AC_LINK_IFELSE to check if the Loongson MMIcode can link</title>
    <link>http://permalink.gmane.org/gmane.comp.graphics.pixman/2705</link>
    <description>&lt;pre&gt;From: Markos Chandras &amp;lt;markos.chandras-1AXoQHu6uovQT0dZR+AlfA&amp;lt; at &amp;gt;public.gmane.org&amp;gt;

The Loongson code is compiled with -march=loongson2f to enable the MMI
instructions, but binutils refuses to link object code compiled with
different -march settings, leading to link failures later in the
compile. This avoids that problem by checking if we can link code
compiled for Loongson.

Signed-off-by: Markos Chandras &amp;lt;markos.chandras-1AXoQHu6uovQT0dZR+AlfA&amp;lt; at &amp;gt;public.gmane.org&amp;gt;
---
 configure.ac | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/configure.ac b/configure.ac
index c43a0d2..221179f 100644
--- a/configure.ac
+++ b/configure.ac
&amp;lt; at &amp;gt;&amp;lt; at &amp;gt; -279,7 +279,7 &amp;lt; at &amp;gt;&amp;lt; at &amp;gt; AC_MSG_CHECKING(whether to use Loongson MMI assembler)
 
 xserver_save_CFLAGS=$CFLAGS
 CFLAGS=" $LS_CFLAGS $CFLAGS -I$srcdir"
-AC_COMPILE_IFELSE([AC_LANG_SOURCE([[
+AC_LINK_IFELSE([AC_LANG_SOURCE([[
 #ifndef __mips_loongson_vector_rev
 #error "Loongson Multimedia Instructions are only available on Loongson"
 #endif
&lt;/pre&gt;</description>
    <dc:creator>Matt Turner</dc:creator>
    <dc:date>2013-05-15T16:58:03</dc:date>
  </item>
  <item rdf:about="http://permalink.gmane.org/gmane.comp.graphics.pixman/2704">
    <title>[PATCH] mmx: Document implementation(s) of pix_multiply().</title>
    <link>http://permalink.gmane.org/gmane.comp.graphics.pixman/2704</link>
    <description>&lt;pre&gt;---
I look at that function and can never remember what it does or how it
manages to do it.

 pixman/pixman-mmx.c | 23 +++++++++++++++++++++++
 1 file changed, 23 insertions(+)

diff --git a/pixman/pixman-mmx.c b/pixman/pixman-mmx.c
index 14790c0..746ecd6 100644
--- a/pixman/pixman-mmx.c
+++ b/pixman/pixman-mmx.c
&amp;lt; at &amp;gt;&amp;lt; at &amp;gt; -301,6 +301,29 &amp;lt; at &amp;gt;&amp;lt; at &amp;gt; negate (__m64 mask)
     return _mm_xor_si64 (mask, MC (4x00ff));
 }
 
+/* Computes the product of two unsigned fixed-point 8-bit values from 0 to 1
+ * and maps its result to the same range.
+ *
+ * Jim Blinn gives multiple ways to compute this in "Jim Blinn's Corner:
+ * Notation, Notation, Notation", the first of which is
+ *
+ *   prod(a, b) = (a * b + 128) / 255.
+ *
+ * By approximating the division by 255 as 257/65536 it can be replaced by a
+ * multiply and a right shift. This is the implementation that we use in
+ * pix_multiply(), but we _mm_mulhi_pu16() by 257 (part of SSE1 or Extended
+ * 3DNow!, and unavailable at the time of the book's publication) to perform
+ * t&lt;/pre&gt;</description>
    <dc:creator>Matt Turner</dc:creator>
    <dc:date>2013-05-15T16:58:02</dc:date>
  </item>
  <item rdf:about="http://permalink.gmane.org/gmane.comp.graphics.pixman/2703">
    <title>Re: [ANNOUNCE] pixman major release 0.30.0 now available</title>
    <link>http://permalink.gmane.org/gmane.comp.graphics.pixman/2703</link>
    <description>&lt;pre&gt;
In case this saves someone else some time: this commit changes
lowlevel-blit-bench results significantly. Comparisons of benchmark
results taken before and after this commit cannot be made.
&lt;/pre&gt;</description>
    <dc:creator>Matt Turner</dc:creator>
    <dc:date>2013-05-12T03:41:51</dc:date>
  </item>
  <item rdf:about="http://permalink.gmane.org/gmane.comp.graphics.pixman/2702">
    <title>[PATCH] Fix broken build when HAVE_CONFIG_H is undefined,e.g. on Win32.</title>
    <link>http://permalink.gmane.org/gmane.comp.graphics.pixman/2702</link>
    <description>&lt;pre&gt;Build fix for platforms without a generated config.h, for example Win32.

---
 pixman/pixman-filter.c | 2 ++
 pixman/pixman-vmx.c    | 2 ++
 2 files changed, 4 insertions(+)

diff --git a/pixman/pixman-filter.c b/pixman/pixman-filter.c
index 26b39d5..5ff7b6e 100644
--- a/pixman/pixman-filter.c
+++ b/pixman/pixman-filter.c
&amp;lt; at &amp;gt;&amp;lt; at &amp;gt; -28,7 +28,9 &amp;lt; at &amp;gt;&amp;lt; at &amp;gt;
 #include &amp;lt;stdio.h&amp;gt;
 #include &amp;lt;math.h&amp;gt;
 #include &amp;lt;assert.h&amp;gt;
+#ifdef HAVE_CONFIG_H
 #include &amp;lt;config.h&amp;gt;
+#endif
 #include "pixman-private.h"
 
 typedef double (* kernel_func_t) (double x);
diff --git a/pixman/pixman-vmx.c b/pixman/pixman-vmx.c
index 6868704..f629003 100644
--- a/pixman/pixman-vmx.c
+++ b/pixman/pixman-vmx.c
&amp;lt; at &amp;gt;&amp;lt; at &amp;gt; -25,7 +25,9 &amp;lt; at &amp;gt;&amp;lt; at &amp;gt;
  * Based on fbmmx.c by Owen Taylor, Søren Sandmann and Nicholas Miell
  */
 
+#ifdef HAVE_CONFIG_H
 #include &amp;lt;config.h&amp;gt;
+#endif
 #include "pixman-private.h"
 #include "pixman-combine32.h"
 #include &amp;lt;altivec.h&amp;gt;
&lt;/pre&gt;</description>
    <dc:creator>ingmar-JRZMYEl3qlizQB+pC5nmwQ&lt; at &gt;public.gmane.org</dc:creator>
    <dc:date>2013-05-11T09:55:04</dc:date>
  </item>
  <item rdf:about="http://permalink.gmane.org/gmane.comp.graphics.pixman/2701">
    <title>Re: [PATCH] Fix broken build when HAVE_CONFIG_H isundefined, e.g. on Win32.</title>
    <link>http://permalink.gmane.org/gmane.comp.graphics.pixman/2701</link>
    <description>&lt;pre&gt;

Thanks. The patch looks fine to me, but I don't think "Greetings
everyone, the latest pixman requires a miniscule patch to successfully
build on Windows." will work as a commit message.

If you want to add a comment to a patch in addition from the commit
message, convention is to put it below the --- separator line. You can
do that with the --annotate option to 'git send-email'.


Søren
_______________________________________________
Pixman mailing list
Pixman&amp;lt; at &amp;gt;lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/pixman
&lt;/pre&gt;</description>
    <dc:creator>Søren Sandmann</dc:creator>
    <dc:date>2013-05-10T17:07:40</dc:date>
  </item>
  <item rdf:about="http://permalink.gmane.org/gmane.comp.graphics.pixman/2700">
    <title>[PATCH] Fix broken build when HAVE_CONFIG_H is undefined, e.g. on Win32.</title>
    <link>http://permalink.gmane.org/gmane.comp.graphics.pixman/2700</link>
    <description>&lt;pre&gt;Greetings everyone, the latest pixman requires a miniscule patch to successfully build on Windows.

---
 pixman/pixman-filter.c |    2 ++
 pixman/pixman-vmx.c    |    2 ++
 2 files changed, 4 insertions(+), 0 deletions(-)

diff --git a/pixman/pixman-filter.c b/pixman/pixman-filter.c
index 26b39d5..5ff7b6e 100644
--- a/pixman/pixman-filter.c
+++ b/pixman/pixman-filter.c
&amp;lt; at &amp;gt;&amp;lt; at &amp;gt; -28,7 +28,9 &amp;lt; at &amp;gt;&amp;lt; at &amp;gt;
 #include &amp;lt;stdio.h&amp;gt;
 #include &amp;lt;math.h&amp;gt;
 #include &amp;lt;assert.h&amp;gt;
+#ifdef HAVE_CONFIG_H
 #include &amp;lt;config.h&amp;gt;
+#endif
 #include "pixman-private.h"
 
 typedef double (* kernel_func_t) (double x);
diff --git a/pixman/pixman-vmx.c b/pixman/pixman-vmx.c
index 6868704..f629003 100644
--- a/pixman/pixman-vmx.c
+++ b/pixman/pixman-vmx.c
&amp;lt; at &amp;gt;&amp;lt; at &amp;gt; -25,7 +25,9 &amp;lt; at &amp;gt;&amp;lt; at &amp;gt;
  * Based on fbmmx.c by Owen Taylor, Søren Sandmann and Nicholas Miell
  */
 
+#ifdef HAVE_CONFIG_H
 #include &amp;lt;config.h&amp;gt;
+#endif
 #include "pixman-private.h"
 #include "pixman-combine32.h"
 #include &amp;lt;altivec.h&amp;gt;
&lt;/pre&gt;</description>
    <dc:creator>ingmar-JRZMYEl3qlizQB+pC5nmwQ&lt; at &gt;public.gmane.org</dc:creator>
    <dc:date>2013-05-09T08:55:06</dc:date>
  </item>
  <item rdf:about="http://permalink.gmane.org/gmane.comp.graphics.pixman/2699">
    <title>[ANNOUNCE] pixman major release 0.30.0 now available</title>
    <link>http://permalink.gmane.org/gmane.comp.graphics.pixman/2699</link>
    <description>&lt;pre&gt;A new major release 0.30.0 of the pixman rendering library is now
available. Highlights of this release:

- Support for high-quality image downscaling [Søren]
- Much improved ARMv6 assembly [Ben Avison]
- Improved rendering quality for gradients [Søren]
- Improvements to the SSE2 backend [Chris Wilson, Siarhei Siamashka]
- Improvements to MIPS DSPr2 backend [Nemanja Lukic]
- Improvements to test suite [Siarhei, Søren Sandmann]

Please send bug reports to pixman&amp;lt; at &amp;gt;lists.freedesktop.org or file them
at

    https://bugs.freedesktop.org/enter_bug.cgi?product=pixman

Thanks,
Søren


tar.gz:
http://cairographics.org/releases/pixman-0.30.0.tar.gz
http://xorg.freedesktop.org/archive/individual/lib/pixman-0.30.0.tar.gz

tar.bz2:
http://xorg.freedesktop.org/archive/individual/lib/pixman-0.30.0.tar.bz2

Hashes:
MD5:  ae7ac97921dfa59086ca2231621a79c7  pixman-0.30.0.tar.gz
MD5:  11b7e062e20ae40e49c2871dd9f82b0b  pixman-0.30.0.tar.bz2
SHA1: 9c25dd0efa2023216e82033b71fcfe1bae9ebaac  pixman-0.30.0.tar.gz
SHA1: 7ef&lt;/pre&gt;</description>
    <dc:creator>Søren Sandmann</dc:creator>
    <dc:date>2013-05-08T23:56:34</dc:date>
  </item>
  <item rdf:about="http://permalink.gmane.org/gmane.comp.graphics.pixman/2698">
    <title>[ANNOUNCE] pixman 0.29.4 now available</title>
    <link>http://permalink.gmane.org/gmane.comp.graphics.pixman/2698</link>
    <description>&lt;pre&gt;A new pixman release 0.29.4 is now available. This is a release
candidate for a stable 0.30.0 release.

News in this release:

     - More fast paths in the MIPS DSP r2 backend [Nemanja Lukic]
     - Better-looking gradients [Søren Sandmann]

Plus bug fixes and improvements to the test suite. Please test, and
report bugs to pixman&amp;lt; at &amp;gt;lists.freedesktop.org or file them at

    https://bugs.freedesktop.org/enter_bug.cgi?product=pixman

Thanks,
Søren


tar.gz:
http://cairographics.org/snapshots/pixman-0.29.4.tar.gz
http://xorg.freedesktop.org/archive/individual/lib/pixman-0.29.4.tar.gz

tar.bz2:
http://xorg.freedesktop.org/archive/individual/lib/pixman-0.29.4.tar.bz2

Hashes:
MD5:  93fdd35186eb34836971803123c4986c  pixman-0.29.4.tar.gz
MD5:  7ae4104aa9fcd46c4fb7fe01080b8b56  pixman-0.29.4.tar.bz2
SHA1: de11c690f2aa0ffb4d98db9d8735888a72a510d2  pixman-0.29.4.tar.gz
SHA1: 7dd50a0f89cb3745c40a0a05b4034367976b8a9f  pixman-0.29.4.tar.bz2

GPG signature:
http://cairographics.org/snapshots/pixman-0.29.4.tar.gz.&lt;/pre&gt;</description>
    <dc:creator>Søren Sandmann</dc:creator>
    <dc:date>2013-04-30T23:08:19</dc:date>
  </item>
  <textinput rdf:about="http://search.gmane.org/?group=$group=gmane.comp.graphics.pixman">
    <title>Search Engine</title>
    <description>Search the mailing list at Gmane</description>
    <name>query</name>
    <link>http://search.gmane.org/?group=$group=gmane.comp.graphics.pixman</link>
  </textinput>
</rdf:RDF>
