[Pixman] Plan to release final development version before stable branch

Oded Gabbay oded.gabbay at gmail.com
Sun Dec 20 05:58:41 PST 2015


On Wed, Dec 16, 2015 at 4:41 AM, Bill Spitzak <spitzak at gmail.com> wrote:
>
>
> On Tue, Dec 15, 2015 at 1:29 AM, Oded Gabbay <oded.gabbay at gmail.com> wrote:
>>
>> On Sat, Dec 12, 2015 at 9:10 PM, Bill Spitzak <spitzak at gmail.com> wrote:
>> >
>> >
>> > On Sat, Dec 12, 2015 at 10:37 AM, Oded Gabbay <oded.gabbay at gmail.com>
>> > wrote:
>> >>
>> >> On Sat, Dec 12, 2015 at 8:34 PM, Bill Spitzak <spitzak at gmail.com>
>> >> wrote:
>> >> > On Fri, Dec 11, 2015 at 4:15 AM, Oded Gabbay <oded.gabbay at gmail.com>
>> >> > wrote:
>> >> >>
>> >> >> On Thu, Dec 10, 2015 at 11:19 PM, Bill Spitzak <spitzak at gmail.com>
>> >> >> wrote:
>> >> >> > Can you include my patches to fix the filtering? They have been
>> >> >> > posted
>> >> >> > for a
>> >> >> > long time now.
>> >> >> >
>> >> >> > The last patch makes GOOD/BEST use filtering for scaling images
>> >> >> > down.
>> >> >> > This
>> >> >> > matches the current Cairo behavior and would allow Cairo to use
>> >> >> > the
>> >> >> > pixman
>> >> >> > backend rather than doing an image fallback for any image scaling
>> >> >> > smaller
>> >> >> > than .75. It also contains a bunch of minor optimizaion and filter
>> >> >> > selection
>> >> >> > tweaks that makes the output somewhat better than current Cairo.
>> >> >> >
>> >> >> Hi Bill,
>> >> >>
>> >> >> Unfortunately, I don't see anyone reviewed your patches, and from
>> >> >> what
>> >> >> I heard, those are quite significant changes.
>> >> >>
>> >> >> It's a shame you didn't bring this up when I did the first
>> >> >> development
>> >> >> release 4 months ago. Then we had enough time to check and test it.
>> >> >> I'm quite hesitant of including such changes right before the final
>> >> >> development version, even with a review.
>> >> >
>> >> >
>> >> > I did send email on May 22, 2015, in response to your comments.
>> >>
>> >> That's strange, because I only started working on pixman during June of
>> >> 2015...
>> >
>> >
>> > You are right. That was just a general email I sent trying to get
>> > somebody
>> > to look at the patches. Searching in the history I found 3 of these.
>> >
>> >>
>> >>
>> >>
>> >> >
>> >> >> I suggest that you try to contact one of pixman's veterans (Soren,
>> >> >> Siarhei, Matt, Pekka, Ben) offline and ask them nicely to at least
>> >> >> skim over the patches and give a high-level opinion about the
>> >> >> series.
>> >> >
>> >> >
>> >> > These were discussed with Soren before. He disagreed with my previous
>> >> > version because I changed to a single filter calculation rather than
>> >> > his
>> >> > pair of filters being convoluted. This version preserves the pair of
>> >> > filters, with some fixes of bugs that caused artifacts in the
>> >> > resulting
>> >> > filters. I'm sending email directly in case they are not reading the
>> >> > pixman
>> >> > list.
>> >>
>> >> Could you send me those emails ?
>> >
>> >
>> > I forwarded the big one from him and my response. The patches I have had
>> > since then I believe address his concerns and preserve the 2-filter
>> > convolution api, they are just bug fixes and some efficiency changes.
>> >>
>> >>
>> >> >>
>> >> >>
>> >> >> Also, check if you need to rebase the patches against current pixman
>> >> >> and if so, maybe send the series again. It might stir up a
>> >> >> discussion.
>> >> >
>> >> >
>> >> > The patches applied to the newest version without any conflicts and
>> >> > my
>> >> > test
>> >> > programs still work. I have resent them to the pixman mailing list.
>> >> >>
>> >>
>> >> Great!
>> >>
>> >> >>
>> >> >> I'm willing to review them in terms of correctness and code style,
>> >> >> but
>> >> >> I'm not veteran enough in pixman to give an opinion on the
>> >> >> underlying
>> >> >> changes (which is the most important issue).
>> >> >
>> >> >
>> >> > Anything would be great.
>> >> >
>> >> > I believe these work well and have been using them for a while. This
>> >> > would
>> >> > allow the removal of redundant code in Cairo, and would allow 2-pass
>> >> > filtering to be done at some point in the future, which would really
>> >> > improve
>> >> > pixman performance.
>> >> >
>> >> ok, I'll try to take a look next week or so.
>> >>
>> >> Oded
>> >
>> >
>>
>> Hi Bill,
>>
>> I read most of the emails you sent me and I cleared time tomorrow to
>> review your patches.
>>
>> Having said that, IMHO, I believe it would be too risky to merge them
>> into the final development release. This is due to a combination of
>> two things:
>>
>> A. This release, although it is a "development release" is used by
>> current distributions (fedora 22,23, ubuntu, debian). That's because
>> there was a big gap in the release schedule earlier this year.
>>
>> B. The changes here affect users of pixman and cairo, by changing the
>> way pixman behaves. So even if your patches are perfect, and the
>> result is a better pixman, we need to give time to users (and to
>> cairo) to adapt to it. This can only be done in master branch, not in
>> stable branches.
>>
>> So, what I intend to do is to:
>>
>> A. Review your patches and if necessary, ask you to fix issues.
>>
>> B. Assuming no objection will be made by other pixman developers
>> during the next couple of weeks, I will merge the patch series into
>> master *after* I branch out the 0.34 release.
>>
>> That way, the patch series will be included in the future development
>> releases that will be packaged inside "testing" distributions, such as
>> fedora rawhide and debian unstable, and thus we will have time to
>> receive feedback from users about the changes.
>>
>> I hope this is accepted by you and by everyone else. If not, please tell
>> me.
>>
>> Thanks,
>>
>>        Oded
>
>
> I am fine with this all being for the next release and will be happy to
> answer any questions.
>
> I would like to know what a compile-time test for whether libpixman is this
> next release or not, and a run-time test to see if X (using both xlib and
> xcb) is using this next release of pixman. This will allow code to be added
> to Cairo to automatically send the filtering to pixman when possible, and
> hopefully get that added at the same time this is supported in the pixman
> release.
>
>
>

For compile time, you can check PIXMAN_VERSION_MAJOR/MINOR/MICRO in
pixman-version.h

For run-time, check pixman_version() in pixman.c:

/**
 * pixman_version:
 *
 * Returns the version of the pixman library encoded in a single
 * integer as per %PIXMAN_VERSION_ENCODE. The encoding ensures that
 * later versions compare greater than earlier versions.
 *
 * A run-time comparison to check that pixman's version is greater than
 * or equal to version X.Y.Z could be performed as follows:
 *
 * <informalexample><programlisting>
 * if (pixman_version() >= PIXMAN_VERSION_ENCODE(X,Y,Z)) {...}
 * </programlisting></informalexample>
 *
 * See also pixman_version_string() as well as the compile-time
 * equivalents %PIXMAN_VERSION and %PIXMAN_VERSION_STRING.
 *
 * Return value: the encoded version.
 **/

I don't know, however, if X server exports this function through its
API. You will need to check with them.

Oded


More information about the Pixman mailing list