Previously, each GHOST Context instantiated its own Metal device queue. Commands are only synchronized within a queue, this was the root cause of a number of flickering issues which had previously been worked-around with synchronization primitives. New solution uses a shared queue to simplify dependencies and alleviate possibility of stalls and bugs when resources are modified or shared across separate GPU command queues. Authored by Apple: Michael Parkin-White Pull Request: https://projects.blender.org/blender/blender/pulls/108223