Metal: renderCommandEncoderWithDescriptor() crash (multithreaded)

We have observed renderCommandEncoderWithDescriptor() crashing when multiple threads are executing this method at the same time. The MTLCommandBuffer is different for each thread so we would expect no threading issues, as the documentation states that 'Command queues are thread-safe and allow multiple outstanding commandbuffers to be encoded simultaneously'.

The callstack showed something very curious: the driver (AMDRadeonX5000MTLDriver on a iMac Pro) attempted to do a 'fast color clear' at that point and it seems to use blit operations to do that. This is unexpected, actual GPU work should never been done prior to committing the command buffer.

Does anyone have insights into this? Could this be a driver bug?

Metal: renderCommandEncoderWithDescriptor() crash (multithreaded)
 
 
Q