For an entry point in a WGSL program: what objects form the data interface with the outside world?
- user data on input/output for vertex and fragment shaders
- builtin variables
- buffer and image resources
Also, how do those objects combine to form an interface.
This is a needed so we can write interface matching rules between vertex and fragment shaders within a pipeline. (#644)
We also need it to write the rules for when a shader (buffer and image) resource interface matches a pipeline configuration.
This is a blocker for meaningful support of vertex and fragment shaders.