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' ); }