Revision e004572...

Go back to digest for 8th December 2013

Bug Fixes in Office

Dmitry Kazakov committed changes in [calligra] /pigment/compositeops:

Fixed the rounding bug in Optimized Composite Ops

The vector and single-pixel versions of the op must generate absolutely
the same pixel values and with absolutely the same rounding rules.

This patch implements not-the-best way of rounding, because Vc doesn't
support single instruction round-and-convert-to-int opcodes (which are
present in the Intel architecture). Ideally, we should implement
Vc::iRount() method to do this.

Right now, using a separate-opcode rounding makes CompositeOver about
5-10% slower.

TODO: Implement Vc::iRound()

File Changes

Modified 3 files
  • /pigment/compositeops
  •   libs/KoOptimizedCompositeOpAlphaDarken32.h
  •   libs/KoOptimizedCompositeOpOver32.h
  •   libs/KoStreamedMath.h
3 files changed in total