[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [E-devel] xrender_x11 engine: identity transform workaround

   Tilman writes:

> Hi,
> this is about the FIXME in evas_engine_xrender.c:493.
> If the depth of the surface is 1, we're passing a scaled variant
> of the identity matrix to the picture.
> All scaled variants of the identity should be treated the same
> in the render implementation, but apparently they aren't.
	They should (up to possible accuracy issues) give the same
result, since the [3][3] element would be used as a divisor with
the same value as the coord scale factors.. But I found that it
was actually carrying out the calculations unless the 1<<16 values
were used, so it was much sloooower.. Until this was fixed in the
server, it was thus best to just use the 1<<16 diagonal factors.
	Unfortunately, there also seemed to be a server bug related
to a1-masks that Carsten ran across.

> I just fixed xorg-server so that setting a scaled variant of the
> identity is a no-op, too. That means if you pass the identity to
> XRenderSetPictureTransform(), the function will just exit and not
> use any transform at all.
	Well done :)