Enable Metal validation layers

BUG=dawn:150

Change-Id: Id3e9dd7a99e8a195fddb98026ddf256d82a4b1ba
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/7300
Reviewed-by: Kai Ninomiya <kainino@chromium.org>
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
Commit-Queue: Hao Li <hao.x.li@intel.com>
diff --git a/src/dawn_native/metal/BackendMTL.mm b/src/dawn_native/metal/BackendMTL.mm
index a605b1d..7e1be79 100644
--- a/src/dawn_native/metal/BackendMTL.mm
+++ b/src/dawn_native/metal/BackendMTL.mm
@@ -14,6 +14,7 @@
 
 #include "dawn_native/metal/BackendMTL.h"
 
+#include "dawn_native/Instance.h"
 #include "dawn_native/MetalBackend.h"
 #include "dawn_native/metal/DeviceMTL.h"
 
@@ -152,6 +153,9 @@
     // Implementation of the Metal backend's BackendConnection
 
     Backend::Backend(InstanceBase* instance) : BackendConnection(instance, BackendType::Metal) {
+        if (GetInstance()->IsBackendValidationEnabled()) {
+            setenv("METAL_DEVICE_WRAPPER_TYPE", "1", 1);
+        }
     }
 
     std::vector<std::unique_ptr<AdapterBase>> Backend::DiscoverDefaultAdapters() {