Draft: panvk: add pointer relocations based secondary command buffers support
The initial commits add a CPU-only BO to panfrost. A secondary command doesn't allocate a normal BO but a CPU-only BO.
This BO will store the descriptors for all the commands recorded to the secondary command buffer.
When CmdExecuteCommands
is called on a secondary command buffer, all jobs in this BO are copy-pasted into the primary command buffer, while adjusting all the address
fields according to the base address of the primary command buffer's BO. We also take care of address fields that point out of the BO and set them explicitly so they are valid.