Use asynchronous routines to build Metal shaders and pipelines for MacOS.

On Mac, Metal will trigger an xpc to a process to compile shaders and
link pipeline programs. Sometimes that process can crash or hang. By using
an asynchronous call with a timeout we can at least recover in this case.

Bug: chromium:974219
Change-Id: I179daa86979b1217458e7be210fccd5edcbffdd0
Reviewed-by: Christopher Cameron <>
Reviewed-by: Greg Daniel <>
Commit-Queue: Jim Van Verth <>
3 files changed