How difficult is it to just make the gradients use dithering, so they
produce 8-bit (or whatever) results directly but with the dithering pattern
in them?
What other operations would need dithering (a large blur comes to mind,
also zooming way in on an image in bilinear)?
I think the blue noise
I forgot to mention two things:
- Enabling dithering makes processing much slower, since it forces the
wide pipeline to be used (and some optimisations are disabled). This
could be solved through the use of fast paths where needed (e.g. when
blitting images from an equal or lower
From: Basile Clement
On some screens (typically low quality laptop screens), using Bayer
ordered dithering has been observed to cause color changes depending on
*where the gradient is rendered on the screen*, causing visible
flickering when moving an image on the screen.
To alleviate the issue,
From: Basile Clement
This patch implements dithering in pixman. A "dither" property is added
to BITS images, which is used to:
- Force rendering to the image to go through the floating point
pipeline. Note that this is different from FAST_PATH_NARROW_FORMAT
as it should not enable the
From: Basile Clement
This adds a dither.c which provides a demo of the dithering feature.
This is based on the scale.c demo for scaling and provides a selection
of intermediate formats and dithering operators (currently, only
PIXMAN_DITHER_ORDERED_BAYER_8) to use. Images are first blitted onto
From: Basile Clement
This adds support for testing dithered destinations in tolerance-test.
When dithering is enabled, the pixel checker allows for an additional
quantization error.
---
test/tolerance-test.c | 22 +++-
test/utils.c | 121 ++
I am resubmitting for review and inclusion my series of patches on
dithering from October, which I ended up not having the time to finish
then. There are only a couple changes to make the patches compatible
with the recently added floating point formats, and I have also added a
dithering matrix
From: Basile Clement
The recently introduced wide pipeline for filters has a typo which
causes it to improperly compute bilinear interpolation positions,
causing various glitches when enabled.
This patch uses the proper computation for bilinear interpolation in the
wide pipeline. It also makes