Reland "Adds ETC2 and ASTC types to enable testing when relevant." (#835)
diff --git a/src/webgpu/examples.spec.ts b/src/webgpu/examples.spec.ts
index 63d83fb..d8774df 100644
--- a/src/webgpu/examples.spec.ts
+++ b/src/webgpu/examples.spec.ts
@@ -249,19 +249,29 @@
);
});
-g.test('gpu,with_texture_compression,etc')
+g.test('gpu,with_texture_compression,etc2')
.desc(
`Example of a test using a device descriptor.
-
-TODO: Test that an ETC format passes validation iff the feature is enabled.`
+Tests that an ETC2 format passes validation iff the feature is enabled.`
)
- .params(u => u.combine('textureCompressionETC', [false, true]))
+ .params(u => u.combine('textureCompressionETC2', [false, true]))
.fn(async t => {
- const { textureCompressionETC } = t.params;
+ const { textureCompressionETC2 } = t.params;
- if (textureCompressionETC) {
- await t.selectDeviceOrSkipTestCase('texture-compression-etc' as GPUFeatureName);
+ if (textureCompressionETC2) {
+ await t.selectDeviceOrSkipTestCase('texture-compression-etc2' as GPUFeatureName);
}
- // TODO: Should actually test createTexture with an ETC format here.
+ const shouldError = !textureCompressionETC2;
+ t.expectGPUError(
+ 'validation',
+ () => {
+ t.device.createTexture({
+ format: 'etc2-rgb8unorm',
+ size: [4, 4, 1],
+ usage: GPUTextureUsage.TEXTURE_BINDING,
+ });
+ },
+ shouldError
+ );
});