TheFlash
and the equivalent modern C++: auto x = std::make_shared<x>(); ...
With Vulkan/Dx12 you can record multiple command buffers in parallel. That is not possible in OpenGl/Dx11 (There are 'deferred contexts' that let you do things in parallel but it's really not great).
By 'multiple cores on the GPU', I think you mean the hardware queues ? Usually there are 3 (on PCIe discrete GPUs, that is) a graphics queue to record any commands, a compute queue for compute tasks, and a copy queue for DMA copies across the PCIe bus. I don't know if you can access them independently on older APIs, but on Vulkan/dx12 you certainly can.
[1] https://www.eurogamer.net/articles/digitalfoundry-2019-moder...
[1] https://ec.europa.eu/social/BlobServlet?docId=16676&langId=e...