From cc3ccf0cdf8b72a8edd69b4a57893565d7ccd57f Mon Sep 17 00:00:00 2001 From: Natalie Chouinard Date: Tue, 6 Oct 2026 15:44:24 -0400 Subject: [PATCH] Fix configure:invalid_usage for bgra8unorm storage bgra8unorm with STORAGE_BINDING is a validation error unless "bgra8unorm-storage" is enabled. Update the test to check this condition. Spec: https://gpuweb.github.io/gpuweb/#bgra8unorm-storage Chrome bug: https://crbug.com/565366976 --- src/webgpu/web_platform/canvas/configure.spec.ts | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/src/webgpu/web_platform/canvas/configure.spec.ts b/src/webgpu/web_platform/canvas/configure.spec.ts index 11a97ef7d689..3a80fd3f3f8d 100644 --- a/src/webgpu/web_platform/canvas/configure.spec.ts +++ b/src/webgpu/web_platform/canvas/configure.spec.ts @@ -7,7 +7,7 @@ TODO: `; import { makeTestGroup } from '../../../common/framework/test_group.js'; -import { assert } from '../../../common/util/util.js'; +import { assert, hasFeature } from '../../../common/util/util.js'; import { isValidTextureUsageCombination, kCanvasTextureFormats, @@ -377,7 +377,12 @@ g.test('invalid_usage') }); } else { // Otherwise just the normal createTexture() usage validation applies. - const invalidUsage = !isValidTextureUsageCombination(usage); + const hasStorageUsage = (usage & GPUConst.TextureUsage.STORAGE_BINDING) !== 0; + const isUnsupportedBgra8unormStorage = + format === 'bgra8unorm' && + hasStorageUsage && + !hasFeature(t.device.features, 'bgra8unorm-storage'); + const invalidUsage = !isValidTextureUsageCombination(usage) || isUnsupportedBgra8unormStorage; t.expectValidationError(() => { ctx.configure({ device: t.device, format, usage }); }, invalidUsage);