As revealed in http://lists.x.org/archives/xorg-devel/2014-August/043624.html
by Keith Packard, there are some accuracy issues in the way how the xrandr
tool is handling projective transformations. Because being off by several
pixels is a bit too much, some xrandr users are not very happy.

The first patch fixes a very trivial and very obvious rounding problem.

The second patch implements matrix rescaling to ensure that the rounding
errors are significantly reduced specifically for the most critical G and
H matrix coefficients.

As a result, now projective transformations should be pixel accurate for
anything sane that can be done with xrandr and modern high resolution
monitors. But only testing can show. I would be very interested to know
if there are still some problematic use cases remaining.

The search for the optimal matrix scaling factors is relatively computationally
intensive and may have a lot of room for improvement. This should not be a
problem for the xrandr command line tool though, because it does not have to
deal with millions of matrices. Only a single matrix is used per run.

    https://github.com/ssvb/xrandr/tree/transform-accuracy

Siarhei Siamashka (2):
  xrandr: Use rounding when converting from float to fixed point matrix
  xrandr: Rescale matrix to improve projective transformations accuracy

 xrandr.c | 185 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++--
 1 file changed, 180 insertions(+), 5 deletions(-)

-- 
1.8.3.2

_______________________________________________
[email protected]: X.Org development
Archives: http://lists.x.org/archives/xorg-devel
Info: http://lists.x.org/mailman/listinfo/xorg-devel

Reply via email to