title: Is drawing to an MTKView or CAMetalLayer required to take place on the main thread?
body: <p>It's well known that updating the user interface in <code>AppKit</code> or <code>UIKit</code> is required to take place on the main thread. Does Metal have the same requirement when it comes to presenting a <code>drawable</code>? </p>
  
  <p>In a layer-hosted <code>NSView</code> that I've been playing around with, I've noticed that I can call <code>[CAMetalLayer nextDrawable]</code> from a <code>dispatch_queue</code> that is not the <code>main_queue</code>. I can then update that drawable's texture as usual and present it. </p>
  
  <p>This <em>appears</em> to work properly, but I find that rather suspicious. Unless I've overlooked something in the documentation, I can find no mention of Metal's main thread requirements (either for, or against). </p>
  
  <p><em>(I'm testing on macOS 10.13, but I would assume the main thread requirements would be the same for iOS as well...?)</em></p>