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