From c779e9b5e5aae9bfb2a7e15c40b8f0f408839085 Mon Sep 17 00:00:00 2001
From: Shrek Shao <shrekshao@google.com>
Date: Thu, 13 Mar 2025 10:30:04 -0700
Subject: [PATCH] Update requestDevice:always_return_device

---
 .../api/operation/adapter/requestDevice.spec.ts      | 12 +++---------
 1 file changed, 3 insertions(+), 9 deletions(-)

diff --git a/src/webgpu/api/operation/adapter/requestDevice.spec.ts b/src/webgpu/api/operation/adapter/requestDevice.spec.ts
index eaaefc69bfb..5e1c8af1bec 100644
--- a/src/webgpu/api/operation/adapter/requestDevice.spec.ts
+++ b/src/webgpu/api/operation/adapter/requestDevice.spec.ts
@@ -518,18 +518,12 @@ g.test('always_returns_device')
       const device = await t.requestDeviceTracked(adapter);
       assert(device instanceof GPUDevice, 'requestDevice must return a device or throw');
 
-      if (featureLevel === 'core') {
+      if (featureLevel === 'core' && adapter.features.has('core-features-and-limits')) {
+        // Check if the device supports core, when featureLevel is core and adapter supports core.
         // This check is to make sure something lower-level is not forcing compatibility mode.
 
-        // MAINTENANCE_TODO: Simplify this check (and typecast) once we standardize how to do this.
-        const adapterExtensions = adapter as unknown as {
-          featureLevel?: string;
-        };
         t.expect(
-          // Old version of Compat design.
-          adapterExtensions.featureLevel === 'core' ||
-            // Current version of Compat design.
-            device.features.has('core-features-and-limits'),
+          device.features.has('core-features-and-limits'),
           'must not get a Compatibility adapter if not requested'
         );
       }