Remove @synchronized from MTLFunction specialization to avoid reentrant hang.

This commit is contained in:
Bill Hollings 2021-02-17 13:56:37 -05:00
parent 0b90a53d76
commit a1e33384c1

View File

@ -470,14 +470,12 @@ id<MTLFunction> MVKFunctionSpecializer::newMTLFunction(id<MTLLibrary> mtlLibrary
unique_lock<mutex> lock(_completionLock);
compile(lock, ^{
@synchronized (_owner->getMTLDevice()) {
[mtlLibrary newFunctionWithName: funcName
constantValues: constantValues
completionHandler: ^(id<MTLFunction> mtlFunc, NSError* error) {
bool isLate = compileComplete(mtlFunc, error);
if (isLate) { destroy(); }
}];
}
[mtlLibrary newFunctionWithName: funcName
constantValues: constantValues
completionHandler: ^(id<MTLFunction> mtlFunc, NSError* error) {
bool isLate = compileComplete(mtlFunc, error);
if (isLate) { destroy(); }
}];
});
return [_mtlFunction retain];