Created attachment 227417 [details] Sample for 'difference' mode results According to the spec[1], the 'difference' blend mode should be computed using this formula: B(Cb, Cs) = | Cb - Cs |. For example: Fuchsia difference Aqua = Yellow The result in webkit is different than Yellow. On retina display it's a pale yellow rgb(204, 214, 0), but on non-retina displays, the result is a pale green rgb(0, 190, 0). The behaviour is the same for both accelerated and non-accelerated blending. I did not test for other blend modes than difference (TBD). [1] http://dev.w3.org/fxtf/compositing-1/#blendingdifference
(In reply to comment #0) > Created an attachment (id=227417) [details] > Sample for 'difference' mode results > > According to the spec[1], the 'difference' blend mode should be computed using this formula: B(Cb, Cs) = | Cb - Cs |. > For example: Fuchsia difference Aqua = Yellow > > The result in webkit is different than Yellow. On retina display it's a pale yellow rgb(204, 214, 0), but on non-retina displays, the result is a pale green rgb(0, 190, 0). > > The behaviour is the same for both accelerated and non-accelerated blending. I did not test for other blend modes than difference (TBD). > > [1] http://dev.w3.org/fxtf/compositing-1/#blendingdifference There are also problems with other blend modes. The biggest differences are with soft-light. In fact, when validating canvas blend modes, the tests submitted https://bugs.webkit.org/show_bug.cgi?id=119082 entirely skip soft-light since the differences between the formula and the result are consistent. Imho, this is rather a CG/CA bug.
<rdar://problem/16626421>
This doesn't appear to be failing on bots any more, will remove the expectation.