Hi,
Just want to clarify what you mean in a couple spots:
"I am creating the SkCanvas from this Metal Texture directly (so I avoid the SkImage conversion + drawImage(...) call)" -- What does this mean, exactly? SkCanvas is an interface to an SkSurface (usually), and can't be directly constructed from a texture/image. Are you wrapping the texture in an SkSurface (with `MakeFromBackend...`, and then getting the canvas from that surface?).
Ultimately, the runtime shader/effect will require an SkShader as input, which means something that can be sampled. This could be a simple RGB texture (wrapped in an SkImage), or it could be a planar SkImage, with multiple underlying textures, per your other email. But it should still be possible to make that work while keeping everything on the GPU. Let us know which types you're using to import the camera feed, and I suspect we can make it work. (I'm assuming that if the YUV image stuff works out, then you'd be all set?)