]> Cypherpunks repositories - gostls13.git/commit
image/draw: optimize drawFillOver as drawFillSrc for opaque fills.
authorNigel Tao <nigeltao@golang.org>
Thu, 14 Jul 2016 00:51:30 +0000 (10:51 +1000)
committerNigel Tao <nigeltao@golang.org>
Fri, 9 Sep 2016 01:17:26 +0000 (01:17 +0000)
commitf782a7e075d049979c67cdc72b6fb38fac36fdad
tree16c0109b2382a0706997bab87d53ad83d144af4b
parent06eeea210b0fd764cda8d86b555343fcfac6e194
image/draw: optimize drawFillOver as drawFillSrc for opaque fills.

Benchmarks are much better for opaque fills and slightly worse on non
opaque fills. I think that on balance, this is still a win.

When the source is uniform(color.RGBA{0x11, 0x22, 0x33, 0xff}):
name        old time/op  new time/op  delta
FillOver-8   966µs ± 1%    32µs ± 1%  -96.67%  (p=0.000 n=10+10)
FillSrc-8   32.4µs ± 1%  32.2µs ± 1%     ~      (p=0.053 n=9+10)

When the source is uniform(color.RGBA{0x11, 0x22, 0x33, 0x44}):
name        old time/op  new time/op  delta
FillOver-8   962µs ± 0%  1018µs ± 0%  +5.85%   (p=0.000 n=9+10)
FillSrc-8   32.2µs ± 1%  32.1µs ± 0%    ~     (p=0.148 n=10+10)

Change-Id: I52ec6d5fcd0fbc6710cef0e973a21ee7827c0dd9
Reviewed-on: https://go-review.googlesource.com/28790
Reviewed-by: David Crawshaw <crawshaw@golang.org>
src/image/draw/bench_test.go
src/image/draw/draw.go