[PATCH renderproto] Add floating point transforms
Alexander E. Patrakov
patrakov at gmail.com
Mon Aug 18 21:50:08 PDT 2014
19.08.2014 03:02, Keith Packard wrote:
> Siarhei Siamashka <siarhei.siamashka at gmail.com> writes:
>
>> Do you have a reproducible testcase for this problem? Being off by
>> several pixels seems to be very wrong. Especially if this happens
>> often.
>
> Non-affine transforms cause problems. I noticed this with RandR when
> doing keystone correction.
>
> Here's a simple example:
>
> Desired matrix:
>
> 33.13915858 15.17037037 -16384.00000000
> 0.00000000 23.73634938 0.00000000
> -0.00057170 -0.00182142 25.70348287
>
> Rounded to 16.16 fixed matrix:
>
> 33.13916016 15.17036438 -16384.00000000
> 0.00000000 23.73634338 0.00000000
> -0.00056458 -0.00181580 25.70347595
>
> Actual bits:
>
> { 0x00014dba, 0x000098c6, 0xfd7b7d45 },
> { 0x00000000, 0x0000ef09, 0x00000000 },
> { 0xffffffff, 0xfffffffb, 0x000102d9 },
>
> Take the point 2560,1600 and transform:
>
> desired: 4348.04, 1780.87
> actual: 4342.50, 1778.60
>
> error: 5.99
Sorry, but I think that we have bigger problems. Please look at
https://bugs.freedesktop.org/show_bug.cgi?id=39949 (which was a blocker
for xserver-1.12 and makes mouse input on scaled displays unusable in
some cases). Since there was no manpower to review that bug for years, I
think that the best course for now is to prohibit all transforms that do
not amount to mere translation. You can change my opinion by reviewing
the patch in the bug.
>
>> Floating point format supports a wider range of values (unnecessary
>> if the rest of XRENDER remains restricted to 16-bit coordinates) but
>> has much worse accuracy in corner cases and is poorly predictable.
>> The 32-bit floating point format does not look like an obvious
>> upgrade over 16.16 fixed point.
>
> Transforms are different than specifying geometry though; they actually
> need the wide dynamic range offered by floating point.
>
>
>
> _______________________________________________
> xorg-devel at lists.x.org: X.Org development
> Archives: http://lists.x.org/archives/xorg-devel
> Info: http://lists.x.org/mailman/listinfo/xorg-devel
>
--
Alexander E. Patrakov
More information about the xorg-devel
mailing list