SkBitmap (in general) is not your friend.
If you can always package your images using SkImage, things will get better (or at least clearer).
- SkImage is always immutable
- Uploaded images are cached (see Ganesh's cache budget)
- You can decide to explicitly convert your image to a gpu-backed image
- this guarantees that it will never get purged, so always draws fastest
- you have to take this into account, as you are now part of the budgeting piece of managing gpu memory
- Images are the natural way to turn an offscreen rendering into a drawing image
- SkSurface -> makeImageSnapshot()
- Surfaces (offscreen drawing contexts) can be explicitly gpu-backed, making it zero-cpu-copy to draw offscreen and turn that into an image/texture