Revision e004572...
Go back to digest for 8th December 2013Bug 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