One interface for generators and filters
AVVA's renderer synthesises images from uniforms. A CRT filter transforms an image it is given. They differ in whether a pass samples an incoming image, and in nothing else.
inputs: { source?: boolean; feedback?: boolean }
A pass that sets source is a filter and receives
uSrc. A pass that does not is a generator. The chain
feeds each pass's output to the next either way.