[Bug 1988796] Re: Incorrect rendering triggered by cairo CAIRO_OPERATOR_SATURATE with subpixel positioning

Benjamin Gilbert 1988796 at bugs.launchpad.net
Wed Oct 12 03:47:17 UTC 2022


[ Impact ]

OpenSlide (libopenslide0 in Ubuntu) uses Cairo as its rendering backend,
always with CAIRO_OPERATOR_SATURATE and sometimes with subpixel
positioning (when reading certain file formats), and Cairo in turn
invokes this code.  As a result, some slides incorrectly render with
large blank spaces and with some pixels rendered on top of other pixels.
This effectively makes OpenSlide unusable for several of the file
formats it supports.  No workaround is believed possible within the
OpenSlide codebase.

[ Test Plan ]

Compile and run the pixman.c test program uploaded to this bug.  It
should report "OK".

[ Where problems could occur ]

Problems would show up as incorrect pixel output from software that
renders via Cairo or pixman.

[ Other Info ]

While I'm not a pixman expert, it appears that the change should only
affect the broken code path, and it seems unlikely that anything else
depends on the incorrect math fixed by this patch.  This bug hasn't
previously been reported in Ubuntu, which may imply that this code path
is not exercised by other packages in the distro.

The affected source file has had no further commits upstream since this
patch was applied in April 2019, and some basic commit grepping didn't
turn up any followup fixes elsewhere in the tree.

-- 
You received this bug notification because you are a member of Ubuntu
Sponsors Team, which is subscribed to the bug report.
https://bugs.launchpad.net/bugs/1988796

Title:
  Incorrect rendering triggered by cairo CAIRO_OPERATOR_SATURATE with
  subpixel positioning

Status in pixman package in Ubuntu:
  New

Bug description:
  pixman 0.38.4-0ubuntu1 in focal (and actually pixman 0.38.x generally)
  has a regression that causes incorrect rendering in some
  circumstances.  This can be triggered by the use of cairo with
  CAIRO_OPERATOR_SATURATE and subpixel positioning, and causes OpenSlide
  <https://openslide.org/> to produce incorrect output.

  The attached test program will print "Failed" if the bug exists, or
  "OK" if it doesn't.

  This is fixed upstream in
  https://gitlab.freedesktop.org/pixman/pixman/-/commit/8256c235, which
  is in pixman 0.40.0.

  See https://github.com/openslide/openslide/issues/278 for more
  context.

To manage notifications about this bug go to:
https://bugs.launchpad.net/ubuntu/+source/pixman/+bug/1988796/+subscriptions




More information about the Ubuntu-sponsors mailing list