Opacity values on groups gets applied twice while drawing (as seen in the masking-opacity-01-b.svg test). In KRenderingPaintServerSolidQuartz::draw CGContextSetAlpha() is called in applyStyleToContext(), after that the same alpha is used in CGColorCreateCopyWithAlpha().
I'll try and come up with a good solution to this.
Created attachment 3444 [details] fix opacity handling Group opacity was being applied twice for fills and strokes. Also remove opacity() method on KRenderingPaintServerSolid that wasn't useful. Colors in svg are always rgb only, opacity is specified separately.
Created attachment 3445 [details] before patch rendering of masking-opacity-01-b before patch
Created attachment 3446 [details] after patch rendering of masking-opacity-01-b after patch
Created attachment 3447 [details] reference png reference rendering from w3c
Comment on attachment 3444 [details] fix opacity handling Looks good.