D149 - An address that resolves is evidence, not just a precondition
Status: decided
Every address in a command stream is a GPU virtual address; guest memory is indexed by a guest one. This crate reads the first as the second and nobody has confirmed they are the same number - the open half of D101.
That assumption was tested on every submission and the result thrown away. An address that resolved was a precondition met; one that did not was a shader failure. Neither was recorded as what it actually is: a data point about the address space.
SubmissionReport now counts both, apart from the
shader outcome. The two are different questions with different
answers - an address can resolve perfectly and its shader still be
refused - and folding them together loses the only measurement available
for the assumption. Weak evidence per address, strong in aggregate: a
run where every address resolves is a run where the assumption held
every time it was tested.
The failure path had to be split to do it. prepare used
to return a string; it returns which kind of failure now,
because "guest memory has nothing there" and "the shader behind it is
not translatable" are evidence about different things.