depends on #2. Needs layers to be able to apply arbitrary matrix transformation to the rendering. Note that this requires reading and writing HVAs.