D200 - The submission entry point takes an address, because a guest has one
Status: decided
Pipeline::submit takes bytes, which is what a test has.
A guest has a pointer and a length: it builds a command buffer in its
own memory and calls the vendor's submit function with an address.
submit_at is that shape.
Nothing calls it, and that is a statement about the loader rather than about this crate - no guest has yet reached a submission. It exists so that when one does, the work is wiring a shim to a function rather than designing an interface under time pressure, and so the address arrives measured (D149) rather than assumed.
An unreadable command buffer answers None rather than an
empty submission. The pointer came from the guest's own CPU-side code,
so a failure there is the shim's arguments rather than any GPU-address
assumption - a different thing to suspect - and an empty submission
would read as "there was nothing to do".
One progress vocabulary. A submission converts into the same summary the shader corpus reports (D148), because it is the same question asked of shaders that arrived from a guest rather than from a directory. Given its own format it would drift immediately, and a reader would have to learn which numbers meant what depending on where the shaders came from.