rsSample() seems intended for sampling from mipmapped textures across multiple levels of detail to avoid aliasing. The fisheye example would be a good use case.
The implementation simply samples 8 pixels from the underlying mipmap and does a linear blend of them.
It seems I can only get 15 Mpixels/second on a Google Pixel with this simple kernel:
uchar4 __attribute__((kernel)) rescaletest(uint32_t x, uint32_t y) {
float2 location = {x,y};
return convert_uchar4(rsSample(gInput8888, gWrapLinearMipLinear, location/2000.f, 1.5f)*255.f);
}
Considering all composited graphics presumably use mipmaps, and to composite even one texture at 60fps needs 120Mpixels/sec, what am I doing wrong?