Describe the replay bug:
If an attachment is mutated by a prior-dumped draw and is used by the current draw, then the current draw being dumped reads those mutations, and its attachments are corrupted. For example
// original API calls
CmdBuf
RenderPass
DrawOne // blend
DrawTwo // blend
RenderPass
CmdBuf
becomes
// dump attachments of DrawOne
CmdBuf
RenderPass
DrawOne <- dump attachments
RenderPass
CmdBuf
// dump attachments of DrawTwo
CmdBuf
RenderPass
DrawOne
DrawTwo <- dump attachments
RenderPass
CmdBuf
The execution of "dump attachments of DrawTwo" reads the results of the prior command buffer replay and blends into those results, instead of the original attachment state.
Describe the replay bug:
If an attachment is mutated by a prior-dumped draw and is used by the current draw, then the current draw being dumped reads those mutations, and its attachments are corrupted. For example
becomes
The execution of "dump attachments of DrawTwo" reads the results of the prior command buffer replay and blends into those results, instead of the original attachment state.