1.8X speedup on the Blurs sample, and 2.3X on the BigBlur sample.
We don't need to clear while downsampling, since each step reads only the pixels
written in the previous step. We can avoid destination clears before
convolution by disabling blending. We also don't need to clear when upsampling,
since the upsample step also only reads pixels written by the convolution. The
only clears we then need to do are on each side of the srcRect used for
convolution, and a 1-pixel border for bilinear upsampling. Since our srcRect is
always offset to (0, 0), we only need to clear on the right and bottom.
Review URL: http://codereview.appspot.com/4803048/
git-svn-id: http://skia.googlecode.com/svn/trunk@1941 2bbb7eff-a529-9590-31e7-b0007b416f81
1.8X speedup on the Blurs sample, and 2.3X on the BigBlur sample.
We don't need to clear while downsampling, since each step reads only the pixels
written in the previous step. We can avoid destination clears before
convolution by disabling blending. We also don't need to clear when upsampling,
since the upsample step also only reads pixels written by the convolution. The
only clears we then need to do are on each side of the srcRect used for
convolution. Since our srcRect is always offset to (0, 0), we only need to
clear on the right and bottom.
Review URL: http://codereview.appspot.com/4803048/
git-svn-id: http://skia.googlecode.com/svn/trunk@1937 2bbb7eff-a529-9590-31e7-b0007b416f81
There are a lot of small pieces to make this change work:
- SkPDFDocument (and SkPDFCatalog) take flags to disable compression (and font embedding - not implemented yet, can disable font subsetting for now).
- SkPDFStream now defers compression until the size/emit step.
- Classes that *had* a stream (because they didn't know the stream size at construction time) now *are* streams to make the substitution work correctly.
- The SkPDFShader implementation got pulled apart into two classes, one that is a SkPDFDict, and one that is a SkPDFStream (making the common ancestor SkPDFObject).
- Added helper methods in SkPDFObject for children that have simple resource lists.
- Added an iterator to SkPDFDict so that a substitute SkPDFStream can get a copy of the stream dictionary.
- Change SkPDFDocument to have a pointer to an SkPDFCatalog to remove a new circular header reference.
Review URL: http://codereview.appspot.com/4700045
git-svn-id: http://skia.googlecode.com/svn/trunk@1911 2bbb7eff-a529-9590-31e7-b0007b416f81
different sizes for srcTexture and dstTexture (this is fair; they're supposed
to be approximate). Code was assuming otherwise while downsampling; fix is to
reapply the scale on each downsample. (Yes, I could cache these reciprocals
if and when they prove to be a hot spot).
Also, use setIDiv(w,h) everywhere for conciseness.
Review URL: http://codereview.appspot.com/4798041/
git-svn-id: http://skia.googlecode.com/svn/trunk@1907 2bbb7eff-a529-9590-31e7-b0007b416f81
settings. can be fixed if we programmatically jam in some setting.
If these are gone, gm will complain, but will not return failure to the
bot.
git-svn-id: http://skia.googlecode.com/svn/trunk@1906 2bbb7eff-a529-9590-31e7-b0007b416f81
we're writing to it, then restore the onscreen clip when copying it back
to screen. Speeds up rendering of web pages with paths >> tile size.
git-svn-id: http://skia.googlecode.com/svn/trunk@1899 2bbb7eff-a529-9590-31e7-b0007b416f81
sigma value to a kernel width, it should be rounded up. Otherwise, for small
sigmas, the edge pixels of the kernel may be missing.
git-svn-id: http://skia.googlecode.com/svn/trunk@1891 2bbb7eff-a529-9590-31e7-b0007b416f81