>>vlovic+(OP)
I wouldn't put Metal next to DX12/Vulkan. I'd put Vulkan as the most low-level API, DX12 slightly above Vulkan (because of convenience features like commited resources, slightly simpler memory model), but Metal I'd put somewhere in the middle between OGL/DX11 and VK/DX12. Metal introduces many optimizations such as pipeline objects, but it requires much less micromanagement around memory and synchronization as VK/DX12 do.