The seam: a submitted command buffer reaches the GPU

A command stream now produces a running shader. Packets in, register writes out, a shader address among them, the shader fetched from guest memory, decoded, translated, and executed on a real device leaving the value it was supposed to leave. Nothing in that path calls the translator directly - the shader is found because a guest asked for it, which is the only way one is ever found in a real frame.

This was the missing thing, and it had been missing the whole time. Packet walking, register decoding, shader translation and the backend command vocabulary all existed, all had tests, and none of them touched. Everything built in this subsystem so far was verified against shaders its own tests handed it. A translator nothing calls cannot be wrong in a way a test would notice.

Closing it needed three things that were not obvious until the path existed:

Surprises.

What this does not do. A translated shader still writes into an observation window and reads a sixty-four-word placeholder for guest memory, so a real shader could be found, translated and dispatched today and would compute into a debug buffer. The resource model - descriptors, buffers, images, render targets - is what turns that into a frame, and exp is refused for exactly that reason (D104). That is the next structural piece, and unlike this one it cannot be validated without a real submission to check the bindings against.