SetCommandBuffer sets the Metal command buffer. The MTLCommandBuffer must be provided to perform any rendering commands. It is up to the application to update the command buffer (eg. per frame or scene). The HAL will allocate MTLRenderCommandEncoders from this command buffer.