Tangentially related to #4593 (just because that added an extra rule to submit).
Say you have two command buffers cb_valid and cb_invalid:
queue.submit([cb_valid, cb_invalid]); // Invalid. cb_valid does not execute.
queue.submit([cb_valid]); // Is cb_valid still valid at this point? Spec says yes.
Currently, the spec says it is still valid. It so happens that Dawn incorrectly implements this and makes cb invalid even if the submit doesn't happen (so there's no breaking change potential for anything that currently works on Chrome). It probably isn't actually useful for it to be valid, so being more conservative might be good.
Tangentially related to #4593 (just because that added an extra rule to submit).
Say you have two command buffers
cb_validandcb_invalid:Currently, the spec says it is still valid. It so happens that Dawn incorrectly implements this and makes
cbinvalid even if the submit doesn't happen (so there's no breaking change potential for anything that currently works on Chrome). It probably isn't actually useful for it to be valid, so being more conservative might be good.