Cycles: stop Metal rendering on command buffer error
If there is an error we should stop rendering, instead of finishing with a wrong render result or reporting a wrong benchmark time. Ref T96519 Differential Revision: https://developer.blender.org/D15287
This commit is contained in:
parent
29755e1df8
commit
9b6e86ace1
|
@ -550,7 +550,7 @@ bool MetalDeviceQueue::enqueue(DeviceKernel kernel,
|
|||
/* Enhanced command buffer errors are only available in 11.0+ */
|
||||
if (@available(macos 11.0, *)) {
|
||||
if (command_buffer.status == MTLCommandBufferStatusError && command_buffer.error != nil) {
|
||||
printf("CommandBuffer Failed: %s\n", [kernel_name UTF8String]);
|
||||
metal_device_->set_error(string("CommandBuffer Failed: ") + [kernel_name UTF8String]);
|
||||
NSArray<id<MTLCommandBufferEncoderInfo>> *encoderInfos = [command_buffer.error.userInfo
|
||||
valueForKey:MTLCommandBufferEncoderInfoErrorKey];
|
||||
if (encoderInfos != nil) {
|
||||
|
@ -564,7 +564,7 @@ bool MetalDeviceQueue::enqueue(DeviceKernel kernel,
|
|||
}
|
||||
}
|
||||
else if (command_buffer.error) {
|
||||
printf("CommandBuffer Failed: %s\n", [kernel_name UTF8String]);
|
||||
metal_device_->set_error(string("CommandBuffer Failed: ") + [kernel_name UTF8String]);
|
||||
}
|
||||
}
|
||||
}];
|
||||
|
|
Loading…
Reference in New Issue