Currently, we are hitting a problem with DX12 backend whenever we use render passes: it doesn't support more than a single command buffer in a recording state at a time per command pool. We keep the root command buffer open while the pass command buffer is recorded, so that we can append necessary resource transitions at the end of that root command buffer.
We need a mode, in which we'd be closing the root command buffer, then recording the pass command buffer, and only afterwards record an additional command buffer for transitions. Not sure if that one will even be needed in general case, since:
- metal backend doesn't need transitions
- dx12 backend has implicit conversion to/from general state
Note: the problem currently results in validation warnings, but will turn into a crash with gfx-rs/gfx#2667
Currently, we are hitting a problem with DX12 backend whenever we use render passes: it doesn't support more than a single command buffer in a recording state at a time per command pool. We keep the root command buffer open while the pass command buffer is recorded, so that we can append necessary resource transitions at the end of that root command buffer.
We need a mode, in which we'd be closing the root command buffer, then recording the pass command buffer, and only afterwards record an additional command buffer for transitions. Not sure if that one will even be needed in general case, since:
Note: the problem currently results in validation warnings, but will turn into a crash with gfx-rs/gfx#2667