Add a guard for MTLDevice.counterSets being null.
This is a tentative fix for a segfault that's happening on
metal::Adapter initialization on some systems.
Bug: dawn:1102
Change-Id: Iff31e46420e60cd76ecbbfa92bd5b5906ca89cf4
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/69340
Auto-Submit: Corentin Wallez <cwallez@chromium.org>
Commit-Queue: Austin Eng <enga@chromium.org>
Reviewed-by: Austin Eng <enga@chromium.org>
diff --git a/src/dawn_native/metal/BackendMTL.mm b/src/dawn_native/metal/BackendMTL.mm
index ccbc467..9475020 100644
--- a/src/dawn_native/metal/BackendMTL.mm
+++ b/src/dawn_native/metal/BackendMTL.mm
@@ -194,10 +194,12 @@
// MTLDevice’s counterSets property declares which counter sets it supports. Check
// whether it's available on the device before requesting a counter set.
id<MTLCounterSet> counterSet = nil;
- for (id<MTLCounterSet> set in device.counterSets) {
- if ([set.name caseInsensitiveCompare:counterSetName] == NSOrderedSame) {
- counterSet = set;
- break;
+ if (device.counterSets != nil) {
+ for (id<MTLCounterSet> set in device.counterSets) {
+ if ([set.name caseInsensitiveCompare:counterSetName] == NSOrderedSame) {
+ counterSet = set;
+ break;
+ }
}
}