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;
+                    }
                 }
             }