[cairo] regression in text rendering when not using Render xlib

Carl Worth cworth at cworth.org
Mon Mar 19 14:00:49 PDT 2007


Behdad asked me to take a look at this patch so we could get it in
place for the cairo 1.4.2 release happening today.

On Tue, 06 Mar 2007 09:47:01 +0100, Frederic Crozat wrote:
> I wanted git to give me a combined patch with changelog but I'm still a
> newbie for that ;)

For future reference, you could have most easily done this by not
making a second commit, but instead doing "git commit -a --amend" to
replace the first commit with the final desired state.

But even after you had made two commits, you could merge them by first
resetting the current branch pointer back to the previous commit while
leaving the working-tree content unchanged, then doing the --amend
commit. That is:

	git reset HEAD~1
	git commit -a --amend

As is, I could fabricate a commit message, ("Use union instead of cast
for __m54 conversion to allow compilation without
-fno-strict-aliasing" ? Is that accurate?).

But meanwhile:

> -		__m64 vdest = in_over(vsrc, vsrca, expand_alpha_rev (M64(m)), expand565(vd, 0));
> +		__m64 vdest = in_over(vsrc, vsrca, expand_alpha_rev (to_m64(m)), expand565(vd, 0));

So the patch only touches up one occurrence of M64 while leaving the
M64 macro and 14 other callers to it in place. That can't be right,
can it?

-Carl

$ grep M64 fbmmx.c
#define M64(x) (*(__m64*)(void*)(&x))
                __m64 vdest = in_over(vsrc, vsrca, expand_alpha_rev (M64(m)), load8888(*dst));
                dest0 = in_over(vsrc, vsrca, expand_alpha_rev (M64(m0)), expand8888(vdest, 0));
                dest1 = in_over(vsrc, vsrca, expand_alpha_rev (M64(m1)), expand8888(vdest, 1));
                vdest = in_over(vsrc, vsrca, expand_alpha_rev (M64(m)), vdest);
                  __m64 vdest = in(vsrc, expand_alpha_rev (M64(m)));
                dest0 = in(vsrc, expand_alpha_rev (M64(m0)));
                dest1 = in(vsrc, expand_alpha_rev (M64(m1)));
                vdest = in(vsrc, expand_alpha_rev (M64(m)));
                __m64 vdest = in_over(vsrc, vsrca, expand_alpha_rev (M64(m)), expand565(vd, 0));
                vm0 = M64(m0);
                vm1 = M64(m1);
                vm2 = M64(m2);
                vm3 = M64(m3);
                __m64 vdest = in_over(vsrc, vsrca, expand_alpha_rev (M64(m)), expand565(vd, 0));
    vfill = M64(fill);
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 189 bytes
Desc: not available
Url : http://lists.freedesktop.org/archives/cairo/attachments/20070319/bd942c74/attachment.pgp


More information about the cairo mailing list