The clipped-bitmap-shaders-* family of tests draw quite differently in GPU and CPU backends

Issue description

The GPU images are fuzzier while the CPU images have hard boundaries within the rendered bitmap. I'm not sure which is more correct. The CPU images jitter when zooming (using up/down arrow in SampleApp) while the GPU ones of smooth.

Hi Brian, are you still look at this issue? I simply investigated it. Found that:
1) Only images with high-quality filters show difference.
2) Only repeat tilemode(clipped-bitmap-shaders-tile-hq.png) show biggest difference both in pixels and perception in cpu and gpu backends. The other 2 tile modes(clamp and mirror) are different in pixels in raster vs gpu, while the perceptual difference is insignificant.
According to my observation, the perceptual difference is that: clipped-bitmap-shaders-tile-hq_8888.png has hard boundries, but clipped-bitmap-shaders-tile-hq_gpu.png is blurred. It is the same with yours.
I simply revised the gm cases, added low-quality filters, medium-quality filters, compared with the original images of no filters and high-quality filters. The images indicate that the cpu image is wrong. you can see these images below.

CPU images of low-quality filters, medium-quality filters are both fuzzier, while CPU image of high-quality filter has hard boundaries between each tile. GPU images of low-quality, medium-quality and high-quality filters are all fuzzier.
I will continue to investigate this issue if you are not work on it.

Seems that SkResizeFilter::computeFilter written by @humper introduces the visual difference. This function resample the image for high-quality filter to improve the performance, but it confines interpolation within the src tile, making boundaries of dst tiles quite clear. As a result, the rendering result of raster for high-quality filter is not aligned with low-quality and middle-quality filters. Maybe Greg can fix this.