Re: [Pixman] [PATCH 08/15] pixman-filter: Don't recurse unnecessarily.
On Tue, Dec 22, 2015 at 9:38 PM, Bill Spitzakwrote: > On Tue, Dec 22, 2015 at 1:38 AM, Oded Gabbay wrote: >> >> On Sat, Dec 12, 2015 at 8:06 PM, wrote: >> > From: Bill Spitzak >> > >> > Only LINEAR is not differentiable at zero, >> >> I'm sorry, I don't understand this sentence. Could you please give me >> a more detailed explanation + reference ? > > > All the other filter functions have a continuous first derivative over their > entire range. > > The LINEAR function is a triangle and the first derivative changes from +1 > to -1 at 0.0. ok, so add it to the commit msg and this patch is: Acked-by: Oded Gabbay > > I believe Søren was concerned that the Simpson's integration would not work > at this point. He solved this by splitting the integral into 2 or 3 at the > zeros, so the integration is not done across these points. > > I figured I should keep this, though I suspect the error is really invisibly > tiny. Apparently Simpsons integration will have some error for any function > where the third derivative is not constant, which is true for all the > filters here except box. But the error is really really tiny and was being > ignored for all the other filters, and it may be ok to ignore it here too. > >> Thanks, >> >> Oded >> >> > so only do the recursive split of the integral for it. >> > --- >> > pixman/pixman-filter.c | 34 +- >> > 1 file changed, 17 insertions(+), 17 deletions(-) >> > >> > diff --git a/pixman/pixman-filter.c b/pixman/pixman-filter.c >> > index 782f73d..0cd4a68 100644 >> > --- a/pixman/pixman-filter.c >> > +++ b/pixman/pixman-filter.c >> > @@ -160,38 +160,38 @@ integral (pixman_kernel_t reconstruct, double x1, >> > pixman_kernel_t sample, double scale, double x2, >> > double width) >> > { >> > +if (reconstruct == PIXMAN_KERNEL_IMPULSE) >> > +{ >> > + assert (width == 0.0); >> > + return filters[sample].func (x2 / scale); >> > +} >> > +else if (reconstruct == PIXMAN_KERNEL_BOX && sample == >> > PIXMAN_KERNEL_BOX) >> > +{ >> > + assert (width <= 1.0); >> > + return width; >> > +} >> > +else if (sample == PIXMAN_KERNEL_IMPULSE) >> > +{ >> > + assert (width == 0.0); >> > + return filters[reconstruct].func (x1); >> > +} >> > /* If the integration interval crosses zero, break it into >> > * two separate integrals. This ensures that filters such >> > * as LINEAR that are not differentiable at 0 will still >> > * integrate properly. >> > */ >> > -if (x1 < 0 && x1 + width > 0) >> > +else if (reconstruct == PIXMAN_KERNEL_LINEAR && x1 < 0 && x1 + >> > width > 0) >> > { >> > return >> > integral (reconstruct, x1, sample, scale, x2, - x1) + >> > integral (reconstruct, 0, sample, scale, x2 - x1, width + >> > x1); >> > } >> > -else if (x2 < 0 && x2 + width > 0) >> > +else if (sample == PIXMAN_KERNEL_LINEAR && x2 < 0 && x2 + width > >> > 0) >> > { >> > return >> > integral (reconstruct, x1, sample, scale, x2, - x2) + >> > integral (reconstruct, x1 - x2, sample, scale, 0, width + >> > x2); >> > } >> > -else if (reconstruct == PIXMAN_KERNEL_IMPULSE) >> > -{ >> > - assert (width == 0.0); >> > - return filters[sample].func (x2 / scale); >> > -} >> > -else if (reconstruct == PIXMAN_KERNEL_BOX && sample == >> > PIXMAN_KERNEL_BOX) >> > -{ >> > - assert (width <= 1.0); >> > - return width; >> > -} >> > -else if (sample == PIXMAN_KERNEL_IMPULSE) >> > -{ >> > - assert (width == 0.0); >> > - return filters[reconstruct].func (x1); >> > -} >> > else >> > { >> > /* Integration via Simpson's rule */ >> > -- >> > 1.9.1 >> > >> > ___ >> > Pixman mailing list >> > Pixman@lists.freedesktop.org >> > http://lists.freedesktop.org/mailman/listinfo/pixman > > ___ Pixman mailing list Pixman@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/pixman
Re: [Pixman] [PATCH 09/15] pixman-filter: put filter error on center pixel
On Tue, Dec 22, 2015 at 9:23 PM, Bill Spitzakwrote: > This is forcing the filter to be normalized (sum to 1.0) despite any math > errors. > > p is a post-increment pointer used to store the filter values, so it now > points after the last filter value. The filter is summed and the difference > from 1.0 is then added to the middle pixel with this code. > > If the width is an odd number such as 5, the filter is stored in f[0]..f[4], > and p points at f[5]. The old code would add the extra error value to f[3], > which is not the center sample. The new code adds it to f[2]. (If the width > is even such as 4, then both the old and new code add the error to the f[2] > which is the pixel to the right of the center.) > > The mistake was only visible in the width==1 case. Some combinations of > filters produced a sample of 0, and then calculated the error as 1.0. The > old code would put the error on f[1] (past the end). The new code puts it on > f[0], thus producing a value of 1.0. > ok, so please add this to the commit msg and this patch is: Acked-by: Oded Gabbay > On Tue, Dec 22, 2015 at 2:41 AM, Oded Gabbay wrote: >> >> On Sat, Dec 12, 2015 at 8:06 PM, wrote: >> > From: Bill Spitzak >> > >> > Any error in filter normalization is placed on the center of odd-sized >> > filters, >> > rather than 1 pixel to the right. >> > >> > In particular this fixes the 1-wide filters produced by impulse sampling >> > so they are 1.0 rather than 0.0. >> > --- >> > pixman/pixman-filter.c | 2 +- >> > 1 file changed, 1 insertion(+), 1 deletion(-) >> > >> > diff --git a/pixman/pixman-filter.c b/pixman/pixman-filter.c >> > index 0cd4a68..fbc657d 100644 >> > --- a/pixman/pixman-filter.c >> > +++ b/pixman/pixman-filter.c >> > @@ -299,7 +299,7 @@ create_1d_filter (int width, >> > } >> > >> > if (new_total != pixman_fixed_1) >> > - *(p - width / 2) += (pixman_fixed_1 - new_total); >> > + *(p - (width + 1) / 2) += (pixman_fixed_1 - new_total); >> > } >> > } >> > >> > -- >> > 1.9.1 >> > >> > ___ >> > Pixman mailing list >> > Pixman@lists.freedesktop.org >> > http://lists.freedesktop.org/mailman/listinfo/pixman >> >> >> I see that the result is indeed better (in the scale demo), but do you >> mind explaining a bit more about the underlying of this patch ? >> I indeed see that the width is 1, so without your patch, the new value >> is written to *p and with your patch, it is written to *(p-1). But I >> have no idea what that means :( >> >> Oded > > ___ Pixman mailing list Pixman@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/pixman
[Pixman] [PATCH 4/4] build: Use `del` instead of `rm` on `cmd.exe` shells
From: Simon RichterThe `rm` command is not usually available when running on Win32 in a `cmd.exe` shell. Instead the shell provides the `del` builtin, which has somewhat more limited wildcars expansion and error handling. This makes all of the Makefile targets work on Win32 both using `cmd.exe` and using the MSYS environment. Signed-off-by: Simon Richter Signed-off-by: Andrea Canciani --- Makefile.win32.common | 8 ++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/Makefile.win32.common b/Makefile.win32.common index a759ddc..756fc94 100644 --- a/Makefile.win32.common +++ b/Makefile.win32.common @@ -5,6 +5,10 @@ LD = link AR = lib PERL = perl +ifneq ($(shell echo ""),) +RM = del +endif + ifeq ($(top_builddir),) top_builddir = $(top_srcdir) endif @@ -51,7 +55,7 @@ $(CFG_VAR): $(CFG_VAR)/%.obj: %.c $(libpixman_headers) | $(CFG_VAR) @$(CC) -c $(PIXMAN_CFLAGS) -Fo"$@" $< -clean: inform - @$(RM) $(CFG_VAR)/*.{exe,ilk,lib,obj,pdb} || exit 0 +clean: inform $(CFG_VAR) + @cd $(CFG_VAR) && echo > silence_error.exe && $(RM) *.exe *.ilk *.lib *.obj *.pdb .PHONY: inform clean -- 2.5.4 (Apple Git-61) ___ Pixman mailing list Pixman@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/pixman
[Pixman] [PATCH 3/4] build: Do not use `mkdir -p` on Windows
When the build is performed using `cmd.exe` as shell, the `mkdir` command does not support the `-p` flag. The ability to create multiple netsted folder is not used, hence it can be easily replaced by only creating the directory if it does not exist. This makes the build work on the `cmd.exe` shell, except for the `clean` targets. Signed-off-by: Andrea Canciani--- Makefile.win32.common | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/Makefile.win32.common b/Makefile.win32.common index b498c2f..a759ddc 100644 --- a/Makefile.win32.common +++ b/Makefile.win32.common @@ -45,9 +45,10 @@ endif endif endif +$(CFG_VAR): + @mkdir $@ -$(CFG_VAR)/%.obj: %.c $(libpixman_headers) - @mkdir -p $(CFG_VAR) +$(CFG_VAR)/%.obj: %.c $(libpixman_headers) | $(CFG_VAR) @$(CC) -c $(PIXMAN_CFLAGS) -Fo"$@" $< clean: inform -- 2.5.4 (Apple Git-61) ___ Pixman mailing list Pixman@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/pixman
[Pixman] [PATCH 1/4] build: Remove use of BUILT_SOURCES from Makefile.win32
Since 3d81d89c292058522cce91338028d9b4c4a23c24 BUILT_SOURCES is not used anymore, but it was unintentionally left in Win32 Makefiles. Signed-off-by: Andrea Canciani--- Makefile.win32.common | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Makefile.win32.common b/Makefile.win32.common index 777f94c..b498c2f 100644 --- a/Makefile.win32.common +++ b/Makefile.win32.common @@ -51,6 +51,6 @@ $(CFG_VAR)/%.obj: %.c $(libpixman_headers) @$(CC) -c $(PIXMAN_CFLAGS) -Fo"$@" $< clean: inform - @$(RM) $(CFG_VAR)/*.{exe,ilk,lib,obj,pdb} $(BUILT_SOURCES) || exit 0 + @$(RM) $(CFG_VAR)/*.{exe,ilk,lib,obj,pdb} || exit 0 .PHONY: inform clean -- 2.5.4 (Apple Git-61) ___ Pixman mailing list Pixman@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/pixman
[Pixman] [PATCH 2/4] build: Avoid phony `pixman` target in test/Makefile.win32
Instead of explicitly depending on "pixman" for the "all" and "check" targets, rely on the dependency to the .lib file Signed-off-by: Andrea Canciani--- test/Makefile.win32 | 10 -- 1 file changed, 4 insertions(+), 6 deletions(-) diff --git a/test/Makefile.win32 b/test/Makefile.win32 index 6cfb4a7..bdd9b7f 100644 --- a/test/Makefile.win32 +++ b/test/Makefile.win32 @@ -16,9 +16,9 @@ OBJECTS = $(patsubst %.c, $(CFG_VAR)/%.obj, $(SOURCES)) TESTS = $(patsubst %, $(CFG_VAR)/%.exe, $(TESTPROGRAMS)) OTHERS = $(patsubst %, $(CFG_VAR)/%.exe, $(OTHERPROGRAMS)) -all: pixman inform $(TESTS) $(OTHERS) +all: inform $(TESTS) $(OTHERS) -check: pixman inform $(TESTS) +check: inform $(TESTS) @failures=0 ; \ total=0 ; \ for test in $(TESTS) ; \ @@ -46,9 +46,7 @@ $(CFG_VAR)/libutils.lib: $(libutils_OBJECTS) $(CFG_VAR)/%.exe: $(CFG_VAR)/%.obj $(TEST_LDADD) @$(LD) $(PIXMAN_LDFLAGS) -OUT:$@ $^ -$(top_builddir)/pixman/$(CFG_VAR)/$(LIBRARY).lib: pixman - -pixman: +$(top_builddir)/pixman/$(CFG_VAR)/$(LIBRARY).lib: @$(MAKE) -C $(top_builddir)/pixman -f Makefile.win32 -.PHONY: all check pixman +.PHONY: all check -- 2.5.4 (Apple Git-61) ___ Pixman mailing list Pixman@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/pixman
Re: [Pixman] [PATCH 2/4] build: Avoid phony `pixman` target in test/Makefile.win32
On Wed, Dec 23, 2015 at 1:24 PM, Andrea Cancianiwrote: > Instead of explicitly depending on "pixman" for the "all" and "check" > targets, rely on the dependency to the .lib file > > Signed-off-by: Andrea Canciani > --- > test/Makefile.win32 | 10 -- > 1 file changed, 4 insertions(+), 6 deletions(-) > > diff --git a/test/Makefile.win32 b/test/Makefile.win32 > index 6cfb4a7..bdd9b7f 100644 > --- a/test/Makefile.win32 > +++ b/test/Makefile.win32 > @@ -16,9 +16,9 @@ OBJECTS = $(patsubst %.c, $(CFG_VAR)/%.obj, $(SOURCES)) > TESTS = $(patsubst %, $(CFG_VAR)/%.exe, $(TESTPROGRAMS)) > OTHERS = $(patsubst %, $(CFG_VAR)/%.exe, $(OTHERPROGRAMS)) > > -all: pixman inform $(TESTS) $(OTHERS) > +all: inform $(TESTS) $(OTHERS) > > -check: pixman inform $(TESTS) > +check: inform $(TESTS) > @failures=0 ; \ > total=0 ; \ > for test in $(TESTS) ; \ > @@ -46,9 +46,7 @@ $(CFG_VAR)/libutils.lib: $(libutils_OBJECTS) > $(CFG_VAR)/%.exe: $(CFG_VAR)/%.obj $(TEST_LDADD) > @$(LD) $(PIXMAN_LDFLAGS) -OUT:$@ $^ > > -$(top_builddir)/pixman/$(CFG_VAR)/$(LIBRARY).lib: pixman > - > -pixman: > +$(top_builddir)/pixman/$(CFG_VAR)/$(LIBRARY).lib: > @$(MAKE) -C $(top_builddir)/pixman -f Makefile.win32 > > -.PHONY: all check pixman > +.PHONY: all check > -- > 2.5.4 (Apple Git-61) > > ___ > Pixman mailing list > Pixman@lists.freedesktop.org > http://lists.freedesktop.org/mailman/listinfo/pixman This patch is Reviewed-by: Oded Gabbay ___ Pixman mailing list Pixman@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/pixman
Re: [Pixman] [PATCH 3/4] build: Do not use `mkdir -p` on Windows
On Wed, Dec 23, 2015 at 1:24 PM, Andrea Cancianiwrote: > When the build is performed using `cmd.exe` as shell, the `mkdir` > command does not support the `-p` flag. The ability to create multiple > netsted folder is not used, hence it can be easily replaced by only > creating the directory if it does not exist. > > This makes the build work on the `cmd.exe` shell, except for the > `clean` targets. > > Signed-off-by: Andrea Canciani > --- > Makefile.win32.common | 5 +++-- > 1 file changed, 3 insertions(+), 2 deletions(-) > > diff --git a/Makefile.win32.common b/Makefile.win32.common > index b498c2f..a759ddc 100644 > --- a/Makefile.win32.common > +++ b/Makefile.win32.common > @@ -45,9 +45,10 @@ endif > endif > endif > > +$(CFG_VAR): > + @mkdir $@ > > -$(CFG_VAR)/%.obj: %.c $(libpixman_headers) > - @mkdir -p $(CFG_VAR) > +$(CFG_VAR)/%.obj: %.c $(libpixman_headers) | $(CFG_VAR) > @$(CC) -c $(PIXMAN_CFLAGS) -Fo"$@" $< > > clean: inform > -- > 2.5.4 (Apple Git-61) > > ___ > Pixman mailing list > Pixman@lists.freedesktop.org > http://lists.freedesktop.org/mailman/listinfo/pixman Acked-by: Oded Gabbay ___ Pixman mailing list Pixman@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/pixman
Re: [Pixman] [PATCH 4/4] build: Use `del` instead of `rm` on `cmd.exe` shells
On Wed, Dec 23, 2015 at 1:24 PM, Andrea Cancianiwrote: > From: Simon Richter > > The `rm` command is not usually available when running on Win32 in a > `cmd.exe` shell. Instead the shell provides the `del` builtin, which > has somewhat more limited wildcars expansion and error handling. > > This makes all of the Makefile targets work on Win32 both using > `cmd.exe` and using the MSYS environment. > > Signed-off-by: Simon Richter > Signed-off-by: Andrea Canciani > --- > Makefile.win32.common | 8 ++-- > 1 file changed, 6 insertions(+), 2 deletions(-) > > diff --git a/Makefile.win32.common b/Makefile.win32.common > index a759ddc..756fc94 100644 > --- a/Makefile.win32.common > +++ b/Makefile.win32.common > @@ -5,6 +5,10 @@ LD = link > AR = lib > PERL = perl > > +ifneq ($(shell echo ""),) > +RM = del > +endif > + > ifeq ($(top_builddir),) > top_builddir = $(top_srcdir) > endif > @@ -51,7 +55,7 @@ $(CFG_VAR): > $(CFG_VAR)/%.obj: %.c $(libpixman_headers) | $(CFG_VAR) > @$(CC) -c $(PIXMAN_CFLAGS) -Fo"$@" $< > > -clean: inform > - @$(RM) $(CFG_VAR)/*.{exe,ilk,lib,obj,pdb} || exit 0 > +clean: inform $(CFG_VAR) > + @cd $(CFG_VAR) && echo > silence_error.exe && $(RM) *.exe *.ilk *.lib > *.obj *.pdb > > .PHONY: inform clean > -- > 2.5.4 (Apple Git-61) > > ___ > Pixman mailing list > Pixman@lists.freedesktop.org > http://lists.freedesktop.org/mailman/listinfo/pixman Acked-by: Oded Gabbay ___ Pixman mailing list Pixman@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/pixman
Re: [Pixman] [PATCH] Allow building on Windows with cmd.exe
On Tue, Dec 22, 2015 at 2:19 PM, Oded Gabbaywrote: > On Thu, Jun 4, 2015 at 12:02 PM, Andrea Canciani > wrote: > > The patch does not regress the mingw-based build (basically that used in > > http://cairographics.org/end_to_end_build_for_win32/ ) > > I did not manage to get the build working on the cmd.exe shell. Do you > have > > any instructions (or possibly indications about what is the correct > > environment) for that? > > > > AFAICT the change still relies on a Unix-like make command. > > A bigger (but possibly even more interesting) change would be an > NMAKE-based > > build, so that the command-line tools available in Visual Studio are > > sufficient for building the whole project. > > > > Andrea > > > > Hi Andrea, > > I know it has been almost 6 months since you last looked at this > patch, but I would like to ask if you can give it an r-b and then I > will push it to master. > Actually, this is a good time for me to work on pixman, as I have some more free time :) > If not, what needs to be done to give it an r-b ? > The main thing blocking me from an r-b tag originally was that I had been unable to get it working. I set up an environment to test it and found that it mostly behaves as intended, with the main glitch being that the "clean" target can spit out undesired error logs. I pushed a branch which is based on Simon's patch here: http://cgit.freedesktop.org/~ranma42/pixman/log/?h=win32-build The commits include: - cleanup of the win32 build system (mostly unrelated to the original patch) ea8a070 build: Remove use of BUILT_SOURCES from Makefile.win32 8989759 build: Avoid phony `pixman` target in test/Makefile.win32 - shell-generic compatibility db72f26 build: Do not use `mkdir -p` on Windows - cmd.exe compatibility 6223be5 build: Use `del` instead of `rm` on `cmd.exe` shells The last commit is based on the original patch, with some minor differences to avoid path separator handling (instead I changed the current directory) and to avoid error messages from `del` (when it finds no file to delete, it logs a warning that apparently cannot be silenced by any of the flags). While doing this I discovered that on Win32 fence-image-self-test and cover-test are currently failing (regardless of these patches and apparently also with any combination of MMX, SSE2, SSSE3). I will try to investigate ASAP. I believe that the first two commits should be "obviously" ok, while the other two are not as trivial. The whole patchset has been tested on Win32, both in an MSYS environment and on cmd.exe (in both cases, using GNU make). Andrea PS: it looks like pixman has adopted Reviewed-by, Signed-off-by, etc. I assume that the first three patches should be marked signed off by me, while I am unsure about the tagging for the last patch (I guess it should be credited to Simon). Unfortunately, I don't have a Windows machine to check this. > > Thanks, > > Oded > > > > > On Mon, Jun 1, 2015 at 8:44 AM, Andrea Canciani > wrote: > >> > >> The ping was good and the changes make sense. Currently I am replying > from > >> the phone and I will not have access to my computer until the 3rd, but > I am > >> flagging this mail so that I will test and review the patch asap. > >> > >> Sorry for the delay > >> Andrea > >> > >> On Jun 1, 2015 8:09 AM, "Siarhei Siamashka" < > siarhei.siamas...@gmail.com> > >> wrote: > >>> > >>> On Wed, 22 Apr 2015 04:01:31 +0200 > >>> Simon Richter wrote: > >>> > >>> > This finds out whether the standard shell for make is cmd.exe, and > >>> > adjusts > >>> > the build process accordingly. > >>> > --- > >>> > Makefile.win32.common | 14 -- > >>> > 1 file changed, 12 insertions(+), 2 deletions(-) > >>> > >>> Thanks for the patch. > >>> > >>> But it is a bit difficult for non-Windows folks to see if > >>> it makes any sense or not. So it would be best if some other > >>> Windows user could review and confirm that it works. > >>> > >>> I have added Andrea Canciani (the author of the win32 makefiles) > >>> to CC. > >>> > >>> > diff --git a/Makefile.win32.common b/Makefile.win32.common > >>> > index 777f94c..335886f 100644 > >>> > --- a/Makefile.win32.common > >>> > +++ b/Makefile.win32.common > >>> > @@ -1,5 +1,15 @@ > >>> > LIBRARY = pixman-1 > >>> > > >>> > +ifeq ($(shell echo ""),) > >>> > +# POSIX style shell > >>> > +mkdir_p = mkdir -p $1 > >>> > +rm = $(RM) $1 > >>> > +else > >>> > +# DOS/Windows style shell > >>> > +mkdir_p = if not exist $(subst /,\,$1) md $(subst /,\,$1) > >>> > +rm = del $(subst /,\,$1) > >>> > +endif > >>> > + > >>> > CC = cl > >>> > LD = link > >>> > AR = lib > >>> > @@ -47,10 +57,10 @@ endif > >>> > > >>> > > >>> > $(CFG_VAR)/%.obj: %.c $(libpixman_headers) > >>> > - @mkdir -p $(CFG_VAR) > >>> > + @$(call mkdir_p,$(@D)) > >>> > @$(CC) -c $(PIXMAN_CFLAGS) -Fo"$@" $< > >>> > > >>> > clean: inform > >>> > - @$(RM)
Re: [Pixman] [PATCH] Allow building on Windows with cmd.exe
On Wed, Dec 23, 2015 at 1:05 PM, Andrea Cancianiwrote: > On Tue, Dec 22, 2015 at 2:19 PM, Oded Gabbay wrote: >> >> On Thu, Jun 4, 2015 at 12:02 PM, Andrea Canciani >> wrote: >> > The patch does not regress the mingw-based build (basically that used in >> > http://cairographics.org/end_to_end_build_for_win32/ ) >> > I did not manage to get the build working on the cmd.exe shell. Do you >> > have >> > any instructions (or possibly indications about what is the correct >> > environment) for that? >> > >> > AFAICT the change still relies on a Unix-like make command. >> > A bigger (but possibly even more interesting) change would be an >> > NMAKE-based >> > build, so that the command-line tools available in Visual Studio are >> > sufficient for building the whole project. >> > >> > Andrea >> > >> >> Hi Andrea, >> >> I know it has been almost 6 months since you last looked at this >> patch, but I would like to ask if you can give it an r-b and then I >> will push it to master. > > > Actually, this is a good time for me to work on pixman, as I have some more > free time :) Thanks Andrea, much appreciated. > >> >> If not, what needs to be done to give it an r-b ? > > > The main thing blocking me from an r-b tag originally was that I had been > unable to get it working. > I set up an environment to test it and found that it mostly behaves as > intended, with the main glitch being that the "clean" target can spit out > undesired error logs. > > I pushed a branch which is based on Simon's patch here: > http://cgit.freedesktop.org/~ranma42/pixman/log/?h=win32-build > > The commits include: > - cleanup of the win32 build system (mostly unrelated to the original > patch) >ea8a070 build: Remove use of BUILT_SOURCES from Makefile.win32 >8989759 build: Avoid phony `pixman` target in test/Makefile.win32 > - shell-generic compatibility >db72f26 build: Do not use `mkdir -p` on Windows > - cmd.exe compatibility >6223be5 build: Use `del` instead of `rm` on `cmd.exe` shells > > The last commit is based on the original patch, with some minor differences > to avoid path separator handling (instead I changed the current directory) > and to avoid error messages from `del` (when it finds no file to delete, it > logs a warning that apparently cannot be silenced by any of the flags). > > While doing this I discovered that on Win32 fence-image-self-test and > cover-test are currently failing (regardless of these patches and apparently > also with any combination of MMX, SSE2, SSSE3). > I will try to investigate ASAP. Thanks. > > I believe that the first two commits should be "obviously" ok, while the > other two are not as trivial. > The whole patchset has been tested on Win32, both in an MSYS environment and > on cmd.exe (in both cases, using GNU make). > > Andrea > > PS: it looks like pixman has adopted Reviewed-by, Signed-off-by, etc. > I assume that the first three patches should be marked signed off by me, > while I am unsure about the tagging for the last patch (I guess it should be > credited to Simon). Yes, you are correct. Could you please send the patches as a patch series to the pixman ML, so we could do a quick review process and merge it ? If you want to credit the last patch to Simon, just make sure he is the author of the patch (you can change the author git commit --amend --author). Then, send it as part of your series. Thanks, Oded > > >> Unfortunately, I don't have a Windows machine to check this. >> >> Thanks, >> >> Oded >> >> > >> > On Mon, Jun 1, 2015 at 8:44 AM, Andrea Canciani >> > wrote: >> >> >> >> The ping was good and the changes make sense. Currently I am replying >> >> from >> >> the phone and I will not have access to my computer until the 3rd, but >> >> I am >> >> flagging this mail so that I will test and review the patch asap. >> >> >> >> Sorry for the delay >> >> Andrea >> >> >> >> On Jun 1, 2015 8:09 AM, "Siarhei Siamashka" >> >> >> >> wrote: >> >>> >> >>> On Wed, 22 Apr 2015 04:01:31 +0200 >> >>> Simon Richter wrote: >> >>> >> >>> > This finds out whether the standard shell for make is cmd.exe, and >> >>> > adjusts >> >>> > the build process accordingly. >> >>> > --- >> >>> > Makefile.win32.common | 14 -- >> >>> > 1 file changed, 12 insertions(+), 2 deletions(-) >> >>> >> >>> Thanks for the patch. >> >>> >> >>> But it is a bit difficult for non-Windows folks to see if >> >>> it makes any sense or not. So it would be best if some other >> >>> Windows user could review and confirm that it works. >> >>> >> >>> I have added Andrea Canciani (the author of the win32 makefiles) >> >>> to CC. >> >>> >> >>> > diff --git a/Makefile.win32.common b/Makefile.win32.common >> >>> > index 777f94c..335886f 100644 >> >>> > --- a/Makefile.win32.common >> >>> > +++ b/Makefile.win32.common >> >>> > @@ -1,5 +1,15 @@ >> >>> >
Re: [Pixman] [PATCH 10/15] pixman-filter: don't range-check impulse filter
On Tue, Dec 22, 2015 at 10:51 PM, Bill Spitzakwrote: > The problem is that *Cairo* does not call this function. This is because > Cairo already has my patches which work around the broken filtering by > generating it's own filtering. The whole point of this series of patches is > so that this work-around can be removed from Cairo. > So my response here is at the same I wrote about patch 7/15 (defer until cairo will actually use this function), only here we are talking about showing results of cairo test suite and not benchmarking. Thanks, Oded > > On Tue, Dec 22, 2015 at 12:12 PM, Oded Gabbay wrote: >> >> On Tue, Dec 22, 2015 at 9:25 PM, Bill Spitzak wrote: >> > >> > >> > On Tue, Dec 22, 2015 at 2:32 AM, Oded Gabbay >> > wrote: >> >> >> >> On Sat, Dec 12, 2015 at 8:06 PM, wrote: >> >> > From: Bill Spitzak >> >> > >> >> > The other filters don't range-check, so there is no need for this >> >> > one to either. It is only called with x==0. >> >> >> >> Actually, I tried to stop at this function in gdb and didn't manage to >> >> do it (using the scale demo). I then looked at the code and it seems >> >> to me that the only way to reach this function is when both >> >> reconstruction and sample kernels are IMPLUSE. That's because: >> >> >> >> 1. If both reconstruction and sample are *not* IMPLUSE, then of course >> >> we won't reach it. >> >> 2. If only one of them is IMPLUSE, than the code will immediately >> >> return the value of the function of the other kernel, which is *not* >> >> IMPLUSE. >> >> >> >> However, when I put both of them to IMPLUSE in the scale demo, the >> >> picture simply disappears *and* the impluse_kernel is still not >> >> reached. Actually, in that case, the integral() func is never reached >> >> as well. >> >> >> >> What am I missing ? >> > >> > >> > I believe at this point the calling code calculated a width of zero for >> > the >> > filter, and this caused all kinds of problems. >> > >> > I think you are correct that in most or all versions of this code, that >> > impulse function is never called, and it could be a null pointer >> > instead. >> >> Well, I wouldn't go that far, but what I'm implying is maybe we can >> defer this patch until a time when pixman's code will actually call >> this function. Then, we can re-evaluate the patch based on the inputs >> we will see. >> >>Oded >> >> >> >> >> >> >>Oded >> >> >> >> > --- >> >> > pixman/pixman-filter.c | 2 +- >> >> > 1 file changed, 1 insertion(+), 1 deletion(-) >> >> > >> >> > diff --git a/pixman/pixman-filter.c b/pixman/pixman-filter.c >> >> > index fbc657d..00126cd 100644 >> >> > --- a/pixman/pixman-filter.c >> >> > +++ b/pixman/pixman-filter.c >> >> > @@ -45,7 +45,7 @@ typedef struct >> >> > static double >> >> > impulse_kernel (double x) >> >> > { >> >> > -return (x == 0.0)? 1.0 : 0.0; >> >> > +return 1; >> >> > } >> >> > >> >> > static double >> >> > -- >> >> > 1.9.1 >> >> > >> >> > ___ >> >> > Pixman mailing list >> >> > Pixman@lists.freedesktop.org >> >> > http://lists.freedesktop.org/mailman/listinfo/pixman >> > >> > > > ___ Pixman mailing list Pixman@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/pixman