I'm not sure it makes a difference, but I'm also not sure loading that pointer from the command buffer instead is necessarily better/faster than loading it from a fixed table.
We would need to load the id from the command buffer, so loading the function pointer directly from there is certainly faster, though the difference may not be much. It depends mostly on whether the lookup table ends up uncached by the time Vulkan has handled the command. Also, I would like to avoid an unnecessary extra step, even if the result is not quite consistent with other code. Are there other reasons for doing this? Making that kind of change to all 34 commits is very time-consuming.
Is that patch in this series?
It will come later. This series flushes the commands when passed to `ExecuteCommandLists()`, but to be strictly correct we should really flush when the resulting `CS_OP_EXECUTE` is flushed from our virtual queue. Virtual queue ops may benefit from threaded dispatch, yes.