Description
The TIME of commands execute is the time we submit them to queue. So we can record commands with more than one command lists. But we record the current resource layout of resource with CPU. It is fine if we record two command lists one by one. But if we record them at same time, the layout of resource will be wrong.
For example, if you have a texture with layout A. And you have two command lists B, C.
Step 0 : transform layout A to D with command list B.
Step 1 : transform layout A to E with command list C.
Step 2 : transform layout D back to A with command list B.
Step 3 : transform layout E back to A with command list C.
It is fine when GPU execute these commands. But it is wrong when command lists record this commands. Because at Step1 the layout of resource is D, so we will transform it from D to E.