Guard for [MTLDevice counterSets] being null.
Bug: dawn:1102
Change-Id: I1c8fffba65cba0b04ef72018013f027f0a814f90
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/79361
Reviewed-by: Austin Eng <enga@chromium.org>
Commit-Queue: Corentin Wallez <cwallez@chromium.org>
Auto-Submit: Corentin Wallez <cwallez@chromium.org>
diff --git a/src/dawn/native/metal/BackendMTL.mm b/src/dawn/native/metal/BackendMTL.mm
index 52bcda7..21515a7 100644
--- a/src/dawn/native/metal/BackendMTL.mm
+++ b/src/dawn/native/metal/BackendMTL.mm
@@ -193,6 +193,12 @@
API_AVAILABLE(macos(10.15), ios(14.0)) {
// MTLDevice’s counterSets property declares which counter sets it supports. Check
// whether it's available on the device before requesting a counter set.
+
+ // On some systems, [device counterSets] is null and not an empty array.
+ if ([device counterSets] == nil) {
+ return false;
+ }
+
id<MTLCounterSet> counterSet = nil;
for (id<MTLCounterSet> set in [device counterSets]) {
if ([set.name caseInsensitiveCompare:counterSetName] == NSOrderedSame) {