Bug 1873039 - feat(webgpu): expose ASTC texture support r=webgpu-reviewers,webidl,teoxoy,smaug

Differential Revision: https://phabricator.services.mozilla.com/D221197
This commit is contained in:
Erich Gubler 2024-09-07 00:33:53 +00:00
parent c0beed53d7
commit 8cacd8167a
3 changed files with 367 additions and 0 deletions

View File

@ -228,6 +228,146 @@ ffi::WGPUTextureFormat ConvertTextureFormat(
case dom::GPUTextureFormat::Depth32float_stencil8:
result.tag = ffi::WGPUTextureFormat_Depth32FloatStencil8;
break;
case dom::GPUTextureFormat::Astc_4x4_unorm:
result.tag = ffi::WGPUTextureFormat_Astc;
result.astc.block = ffi::WGPUAstcBlock_B4x4;
result.astc.channel = ffi::WGPUAstcChannel_Unorm;
break;
case dom::GPUTextureFormat::Astc_4x4_unorm_srgb:
result.tag = ffi::WGPUTextureFormat_Astc;
result.astc.block = ffi::WGPUAstcBlock_B4x4;
result.astc.channel = ffi::WGPUAstcChannel_UnormSrgb;
break;
case dom::GPUTextureFormat::Astc_5x4_unorm:
result.tag = ffi::WGPUTextureFormat_Astc;
result.astc.block = ffi::WGPUAstcBlock_B5x4;
result.astc.channel = ffi::WGPUAstcChannel_Unorm;
break;
case dom::GPUTextureFormat::Astc_5x4_unorm_srgb:
result.tag = ffi::WGPUTextureFormat_Astc;
result.astc.block = ffi::WGPUAstcBlock_B5x4;
result.astc.channel = ffi::WGPUAstcChannel_UnormSrgb;
break;
case dom::GPUTextureFormat::Astc_5x5_unorm:
result.tag = ffi::WGPUTextureFormat_Astc;
result.astc.block = ffi::WGPUAstcBlock_B5x5;
result.astc.channel = ffi::WGPUAstcChannel_Unorm;
break;
case dom::GPUTextureFormat::Astc_5x5_unorm_srgb:
result.tag = ffi::WGPUTextureFormat_Astc;
result.astc.block = ffi::WGPUAstcBlock_B5x5;
result.astc.channel = ffi::WGPUAstcChannel_UnormSrgb;
break;
case dom::GPUTextureFormat::Astc_6x5_unorm:
result.tag = ffi::WGPUTextureFormat_Astc;
result.astc.block = ffi::WGPUAstcBlock_B6x5;
result.astc.channel = ffi::WGPUAstcChannel_Unorm;
break;
case dom::GPUTextureFormat::Astc_6x5_unorm_srgb:
result.tag = ffi::WGPUTextureFormat_Astc;
result.astc.block = ffi::WGPUAstcBlock_B6x5;
result.astc.channel = ffi::WGPUAstcChannel_UnormSrgb;
break;
case dom::GPUTextureFormat::Astc_6x6_unorm:
result.tag = ffi::WGPUTextureFormat_Astc;
result.astc.block = ffi::WGPUAstcBlock_B6x6;
result.astc.channel = ffi::WGPUAstcChannel_Unorm;
break;
case dom::GPUTextureFormat::Astc_6x6_unorm_srgb:
result.tag = ffi::WGPUTextureFormat_Astc;
result.astc.block = ffi::WGPUAstcBlock_B6x6;
result.astc.channel = ffi::WGPUAstcChannel_UnormSrgb;
break;
case dom::GPUTextureFormat::Astc_8x5_unorm:
result.tag = ffi::WGPUTextureFormat_Astc;
result.astc.block = ffi::WGPUAstcBlock_B8x5;
result.astc.channel = ffi::WGPUAstcChannel_Unorm;
break;
case dom::GPUTextureFormat::Astc_8x5_unorm_srgb:
result.tag = ffi::WGPUTextureFormat_Astc;
result.astc.block = ffi::WGPUAstcBlock_B8x5;
result.astc.channel = ffi::WGPUAstcChannel_UnormSrgb;
break;
case dom::GPUTextureFormat::Astc_8x6_unorm:
result.tag = ffi::WGPUTextureFormat_Astc;
result.astc.block = ffi::WGPUAstcBlock_B8x6;
result.astc.channel = ffi::WGPUAstcChannel_Unorm;
break;
case dom::GPUTextureFormat::Astc_8x6_unorm_srgb:
result.tag = ffi::WGPUTextureFormat_Astc;
result.astc.block = ffi::WGPUAstcBlock_B8x6;
result.astc.channel = ffi::WGPUAstcChannel_UnormSrgb;
break;
case dom::GPUTextureFormat::Astc_8x8_unorm:
result.tag = ffi::WGPUTextureFormat_Astc;
result.astc.block = ffi::WGPUAstcBlock_B8x8;
result.astc.channel = ffi::WGPUAstcChannel_Unorm;
break;
case dom::GPUTextureFormat::Astc_8x8_unorm_srgb:
result.tag = ffi::WGPUTextureFormat_Astc;
result.astc.block = ffi::WGPUAstcBlock_B8x8;
result.astc.channel = ffi::WGPUAstcChannel_UnormSrgb;
break;
case dom::GPUTextureFormat::Astc_10x5_unorm:
result.tag = ffi::WGPUTextureFormat_Astc;
result.astc.block = ffi::WGPUAstcBlock_B10x5;
result.astc.channel = ffi::WGPUAstcChannel_Unorm;
break;
case dom::GPUTextureFormat::Astc_10x5_unorm_srgb:
result.tag = ffi::WGPUTextureFormat_Astc;
result.astc.block = ffi::WGPUAstcBlock_B10x5;
result.astc.channel = ffi::WGPUAstcChannel_UnormSrgb;
break;
case dom::GPUTextureFormat::Astc_10x6_unorm:
result.tag = ffi::WGPUTextureFormat_Astc;
result.astc.block = ffi::WGPUAstcBlock_B10x6;
result.astc.channel = ffi::WGPUAstcChannel_Unorm;
break;
case dom::GPUTextureFormat::Astc_10x6_unorm_srgb:
result.tag = ffi::WGPUTextureFormat_Astc;
result.astc.block = ffi::WGPUAstcBlock_B10x6;
result.astc.channel = ffi::WGPUAstcChannel_UnormSrgb;
break;
case dom::GPUTextureFormat::Astc_10x8_unorm:
result.tag = ffi::WGPUTextureFormat_Astc;
result.astc.block = ffi::WGPUAstcBlock_B10x8;
result.astc.channel = ffi::WGPUAstcChannel_Unorm;
break;
case dom::GPUTextureFormat::Astc_10x8_unorm_srgb:
result.tag = ffi::WGPUTextureFormat_Astc;
result.astc.block = ffi::WGPUAstcBlock_B10x8;
result.astc.channel = ffi::WGPUAstcChannel_UnormSrgb;
break;
case dom::GPUTextureFormat::Astc_10x10_unorm:
result.tag = ffi::WGPUTextureFormat_Astc;
result.astc.block = ffi::WGPUAstcBlock_B10x10;
result.astc.channel = ffi::WGPUAstcChannel_Unorm;
break;
case dom::GPUTextureFormat::Astc_10x10_unorm_srgb:
result.tag = ffi::WGPUTextureFormat_Astc;
result.astc.block = ffi::WGPUAstcBlock_B10x10;
result.astc.channel = ffi::WGPUAstcChannel_UnormSrgb;
break;
case dom::GPUTextureFormat::Astc_12x10_unorm:
result.tag = ffi::WGPUTextureFormat_Astc;
result.astc.block = ffi::WGPUAstcBlock_B12x10;
result.astc.channel = ffi::WGPUAstcChannel_Unorm;
break;
case dom::GPUTextureFormat::Astc_12x10_unorm_srgb:
result.tag = ffi::WGPUTextureFormat_Astc;
result.astc.block = ffi::WGPUAstcBlock_B12x10;
result.astc.channel = ffi::WGPUAstcChannel_UnormSrgb;
break;
case dom::GPUTextureFormat::Astc_12x12_unorm:
result.tag = ffi::WGPUTextureFormat_Astc;
result.astc.block = ffi::WGPUAstcBlock_B12x12;
result.astc.channel = ffi::WGPUAstcChannel_Unorm;
break;
case dom::GPUTextureFormat::Astc_12x12_unorm_srgb:
result.tag = ffi::WGPUTextureFormat_Astc;
result.astc.block = ffi::WGPUAstcBlock_B12x12;
result.astc.channel = ffi::WGPUAstcChannel_UnormSrgb;
break;
}
// Clang will check for us that the switch above is exhaustive,

View File

@ -382,6 +382,37 @@ enum GPUTextureFormat {
"bc6h-rgb-float",
"bc7-rgba-unorm",
"bc7-rgba-unorm-srgb",
// ASTC compressed formats usable if "texture-compression-astc" is both
// supported by the device/user agent and enabled in requestDevice.
"astc-4x4-unorm",
"astc-4x4-unorm-srgb",
"astc-5x4-unorm",
"astc-5x4-unorm-srgb",
"astc-5x5-unorm",
"astc-5x5-unorm-srgb",
"astc-6x5-unorm",
"astc-6x5-unorm-srgb",
"astc-6x6-unorm",
"astc-6x6-unorm-srgb",
"astc-8x5-unorm",
"astc-8x5-unorm-srgb",
"astc-8x6-unorm",
"astc-8x6-unorm-srgb",
"astc-8x8-unorm",
"astc-8x8-unorm-srgb",
"astc-10x5-unorm",
"astc-10x5-unorm-srgb",
"astc-10x6-unorm",
"astc-10x6-unorm-srgb",
"astc-10x8-unorm",
"astc-10x8-unorm-srgb",
"astc-10x10-unorm",
"astc-10x10-unorm-srgb",
"astc-12x10-unorm",
"astc-12x10-unorm-srgb",
"astc-12x12-unorm",
"astc-12x12-unorm-srgb",
};
[Func="mozilla::webgpu::Instance::PrefEnabled",

View File

@ -1,226 +1,282 @@
[cts.https.html?q=webgpu:api,validation,capability_checks,features,texture_formats:canvas_configuration:*]
implementation-status: backlog
[:format="astc-10x10-unorm";canvasType="offscreen";enable_required_feature=false]
expected: FAIL
[:format="astc-10x10-unorm";canvasType="offscreen";enable_required_feature=true]
[:format="astc-10x10-unorm";canvasType="onscreen";enable_required_feature=false]
expected: FAIL
[:format="astc-10x10-unorm";canvasType="onscreen";enable_required_feature=true]
[:format="astc-10x10-unorm-srgb";canvasType="offscreen";enable_required_feature=false]
expected: FAIL
[:format="astc-10x10-unorm-srgb";canvasType="offscreen";enable_required_feature=true]
[:format="astc-10x10-unorm-srgb";canvasType="onscreen";enable_required_feature=false]
expected: FAIL
[:format="astc-10x10-unorm-srgb";canvasType="onscreen";enable_required_feature=true]
[:format="astc-10x5-unorm";canvasType="offscreen";enable_required_feature=false]
expected: FAIL
[:format="astc-10x5-unorm";canvasType="offscreen";enable_required_feature=true]
[:format="astc-10x5-unorm";canvasType="onscreen";enable_required_feature=false]
expected: FAIL
[:format="astc-10x5-unorm";canvasType="onscreen";enable_required_feature=true]
[:format="astc-10x5-unorm-srgb";canvasType="offscreen";enable_required_feature=false]
expected: FAIL
[:format="astc-10x5-unorm-srgb";canvasType="offscreen";enable_required_feature=true]
[:format="astc-10x5-unorm-srgb";canvasType="onscreen";enable_required_feature=false]
expected: FAIL
[:format="astc-10x5-unorm-srgb";canvasType="onscreen";enable_required_feature=true]
[:format="astc-10x6-unorm";canvasType="offscreen";enable_required_feature=false]
expected: FAIL
[:format="astc-10x6-unorm";canvasType="offscreen";enable_required_feature=true]
[:format="astc-10x6-unorm";canvasType="onscreen";enable_required_feature=false]
expected: FAIL
[:format="astc-10x6-unorm";canvasType="onscreen";enable_required_feature=true]
[:format="astc-10x6-unorm-srgb";canvasType="offscreen";enable_required_feature=false]
expected: FAIL
[:format="astc-10x6-unorm-srgb";canvasType="offscreen";enable_required_feature=true]
[:format="astc-10x6-unorm-srgb";canvasType="onscreen";enable_required_feature=false]
expected: FAIL
[:format="astc-10x6-unorm-srgb";canvasType="onscreen";enable_required_feature=true]
[:format="astc-10x8-unorm";canvasType="offscreen";enable_required_feature=false]
expected: FAIL
[:format="astc-10x8-unorm";canvasType="offscreen";enable_required_feature=true]
[:format="astc-10x8-unorm";canvasType="onscreen";enable_required_feature=false]
expected: FAIL
[:format="astc-10x8-unorm";canvasType="onscreen";enable_required_feature=true]
[:format="astc-10x8-unorm-srgb";canvasType="offscreen";enable_required_feature=false]
expected: FAIL
[:format="astc-10x8-unorm-srgb";canvasType="offscreen";enable_required_feature=true]
[:format="astc-10x8-unorm-srgb";canvasType="onscreen";enable_required_feature=false]
expected: FAIL
[:format="astc-10x8-unorm-srgb";canvasType="onscreen";enable_required_feature=true]
[:format="astc-12x10-unorm";canvasType="offscreen";enable_required_feature=false]
expected: FAIL
[:format="astc-12x10-unorm";canvasType="offscreen";enable_required_feature=true]
[:format="astc-12x10-unorm";canvasType="onscreen";enable_required_feature=false]
expected: FAIL
[:format="astc-12x10-unorm";canvasType="onscreen";enable_required_feature=true]
[:format="astc-12x10-unorm-srgb";canvasType="offscreen";enable_required_feature=false]
expected: FAIL
[:format="astc-12x10-unorm-srgb";canvasType="offscreen";enable_required_feature=true]
[:format="astc-12x10-unorm-srgb";canvasType="onscreen";enable_required_feature=false]
expected: FAIL
[:format="astc-12x10-unorm-srgb";canvasType="onscreen";enable_required_feature=true]
[:format="astc-12x12-unorm";canvasType="offscreen";enable_required_feature=false]
expected: FAIL
[:format="astc-12x12-unorm";canvasType="offscreen";enable_required_feature=true]
[:format="astc-12x12-unorm";canvasType="onscreen";enable_required_feature=false]
expected: FAIL
[:format="astc-12x12-unorm";canvasType="onscreen";enable_required_feature=true]
[:format="astc-12x12-unorm-srgb";canvasType="offscreen";enable_required_feature=false]
expected: FAIL
[:format="astc-12x12-unorm-srgb";canvasType="offscreen";enable_required_feature=true]
[:format="astc-12x12-unorm-srgb";canvasType="onscreen";enable_required_feature=false]
expected: FAIL
[:format="astc-12x12-unorm-srgb";canvasType="onscreen";enable_required_feature=true]
[:format="astc-4x4-unorm";canvasType="offscreen";enable_required_feature=false]
expected: FAIL
[:format="astc-4x4-unorm";canvasType="offscreen";enable_required_feature=true]
[:format="astc-4x4-unorm";canvasType="onscreen";enable_required_feature=false]
expected: FAIL
[:format="astc-4x4-unorm";canvasType="onscreen";enable_required_feature=true]
[:format="astc-4x4-unorm-srgb";canvasType="offscreen";enable_required_feature=false]
expected: FAIL
[:format="astc-4x4-unorm-srgb";canvasType="offscreen";enable_required_feature=true]
[:format="astc-4x4-unorm-srgb";canvasType="onscreen";enable_required_feature=false]
expected: FAIL
[:format="astc-4x4-unorm-srgb";canvasType="onscreen";enable_required_feature=true]
[:format="astc-5x4-unorm";canvasType="offscreen";enable_required_feature=false]
expected: FAIL
[:format="astc-5x4-unorm";canvasType="offscreen";enable_required_feature=true]
[:format="astc-5x4-unorm";canvasType="onscreen";enable_required_feature=false]
expected: FAIL
[:format="astc-5x4-unorm";canvasType="onscreen";enable_required_feature=true]
[:format="astc-5x4-unorm-srgb";canvasType="offscreen";enable_required_feature=false]
expected: FAIL
[:format="astc-5x4-unorm-srgb";canvasType="offscreen";enable_required_feature=true]
[:format="astc-5x4-unorm-srgb";canvasType="onscreen";enable_required_feature=false]
expected: FAIL
[:format="astc-5x4-unorm-srgb";canvasType="onscreen";enable_required_feature=true]
[:format="astc-5x5-unorm";canvasType="offscreen";enable_required_feature=false]
expected: FAIL
[:format="astc-5x5-unorm";canvasType="offscreen";enable_required_feature=true]
[:format="astc-5x5-unorm";canvasType="onscreen";enable_required_feature=false]
expected: FAIL
[:format="astc-5x5-unorm";canvasType="onscreen";enable_required_feature=true]
[:format="astc-5x5-unorm-srgb";canvasType="offscreen";enable_required_feature=false]
expected: FAIL
[:format="astc-5x5-unorm-srgb";canvasType="offscreen";enable_required_feature=true]
[:format="astc-5x5-unorm-srgb";canvasType="onscreen";enable_required_feature=false]
expected: FAIL
[:format="astc-5x5-unorm-srgb";canvasType="onscreen";enable_required_feature=true]
[:format="astc-6x5-unorm";canvasType="offscreen";enable_required_feature=false]
expected: FAIL
[:format="astc-6x5-unorm";canvasType="offscreen";enable_required_feature=true]
[:format="astc-6x5-unorm";canvasType="onscreen";enable_required_feature=false]
expected: FAIL
[:format="astc-6x5-unorm";canvasType="onscreen";enable_required_feature=true]
[:format="astc-6x5-unorm-srgb";canvasType="offscreen";enable_required_feature=false]
expected: FAIL
[:format="astc-6x5-unorm-srgb";canvasType="offscreen";enable_required_feature=true]
[:format="astc-6x5-unorm-srgb";canvasType="onscreen";enable_required_feature=false]
expected: FAIL
[:format="astc-6x5-unorm-srgb";canvasType="onscreen";enable_required_feature=true]
[:format="astc-6x6-unorm";canvasType="offscreen";enable_required_feature=false]
expected: FAIL
[:format="astc-6x6-unorm";canvasType="offscreen";enable_required_feature=true]
[:format="astc-6x6-unorm";canvasType="onscreen";enable_required_feature=false]
expected: FAIL
[:format="astc-6x6-unorm";canvasType="onscreen";enable_required_feature=true]
[:format="astc-6x6-unorm-srgb";canvasType="offscreen";enable_required_feature=false]
expected: FAIL
[:format="astc-6x6-unorm-srgb";canvasType="offscreen";enable_required_feature=true]
[:format="astc-6x6-unorm-srgb";canvasType="onscreen";enable_required_feature=false]
expected: FAIL
[:format="astc-6x6-unorm-srgb";canvasType="onscreen";enable_required_feature=true]
[:format="astc-8x5-unorm";canvasType="offscreen";enable_required_feature=false]
expected: FAIL
[:format="astc-8x5-unorm";canvasType="offscreen";enable_required_feature=true]
[:format="astc-8x5-unorm";canvasType="onscreen";enable_required_feature=false]
expected: FAIL
[:format="astc-8x5-unorm";canvasType="onscreen";enable_required_feature=true]
[:format="astc-8x5-unorm-srgb";canvasType="offscreen";enable_required_feature=false]
expected: FAIL
[:format="astc-8x5-unorm-srgb";canvasType="offscreen";enable_required_feature=true]
[:format="astc-8x5-unorm-srgb";canvasType="onscreen";enable_required_feature=false]
expected: FAIL
[:format="astc-8x5-unorm-srgb";canvasType="onscreen";enable_required_feature=true]
[:format="astc-8x6-unorm";canvasType="offscreen";enable_required_feature=false]
expected: FAIL
[:format="astc-8x6-unorm";canvasType="offscreen";enable_required_feature=true]
[:format="astc-8x6-unorm";canvasType="onscreen";enable_required_feature=false]
expected: FAIL
[:format="astc-8x6-unorm";canvasType="onscreen";enable_required_feature=true]
[:format="astc-8x6-unorm-srgb";canvasType="offscreen";enable_required_feature=false]
expected: FAIL
[:format="astc-8x6-unorm-srgb";canvasType="offscreen";enable_required_feature=true]
[:format="astc-8x6-unorm-srgb";canvasType="onscreen";enable_required_feature=false]
expected: FAIL
[:format="astc-8x6-unorm-srgb";canvasType="onscreen";enable_required_feature=true]
[:format="astc-8x8-unorm";canvasType="offscreen";enable_required_feature=false]
expected: FAIL
[:format="astc-8x8-unorm";canvasType="offscreen";enable_required_feature=true]
[:format="astc-8x8-unorm";canvasType="onscreen";enable_required_feature=false]
expected: FAIL
[:format="astc-8x8-unorm";canvasType="onscreen";enable_required_feature=true]
[:format="astc-8x8-unorm-srgb";canvasType="offscreen";enable_required_feature=false]
expected: FAIL
[:format="astc-8x8-unorm-srgb";canvasType="offscreen";enable_required_feature=true]
[:format="astc-8x8-unorm-srgb";canvasType="onscreen";enable_required_feature=false]
expected: FAIL
[:format="astc-8x8-unorm-srgb";canvasType="onscreen";enable_required_feature=true]
@ -488,226 +544,282 @@
[cts.https.html?q=webgpu:api,validation,capability_checks,features,texture_formats:canvas_configuration_view_formats:*]
implementation-status: backlog
[:viewFormats=["astc-10x10-unorm"\];canvasType="offscreen";enable_required_feature=false]
expected: FAIL
[:viewFormats=["astc-10x10-unorm"\];canvasType="offscreen";enable_required_feature=true]
[:viewFormats=["astc-10x10-unorm"\];canvasType="onscreen";enable_required_feature=false]
expected: FAIL
[:viewFormats=["astc-10x10-unorm"\];canvasType="onscreen";enable_required_feature=true]
[:viewFormats=["astc-10x10-unorm-srgb"\];canvasType="offscreen";enable_required_feature=false]
expected: FAIL
[:viewFormats=["astc-10x10-unorm-srgb"\];canvasType="offscreen";enable_required_feature=true]
[:viewFormats=["astc-10x10-unorm-srgb"\];canvasType="onscreen";enable_required_feature=false]
expected: FAIL
[:viewFormats=["astc-10x10-unorm-srgb"\];canvasType="onscreen";enable_required_feature=true]
[:viewFormats=["astc-10x5-unorm"\];canvasType="offscreen";enable_required_feature=false]
expected: FAIL
[:viewFormats=["astc-10x5-unorm"\];canvasType="offscreen";enable_required_feature=true]
[:viewFormats=["astc-10x5-unorm"\];canvasType="onscreen";enable_required_feature=false]
expected: FAIL
[:viewFormats=["astc-10x5-unorm"\];canvasType="onscreen";enable_required_feature=true]
[:viewFormats=["astc-10x5-unorm-srgb"\];canvasType="offscreen";enable_required_feature=false]
expected: FAIL
[:viewFormats=["astc-10x5-unorm-srgb"\];canvasType="offscreen";enable_required_feature=true]
[:viewFormats=["astc-10x5-unorm-srgb"\];canvasType="onscreen";enable_required_feature=false]
expected: FAIL
[:viewFormats=["astc-10x5-unorm-srgb"\];canvasType="onscreen";enable_required_feature=true]
[:viewFormats=["astc-10x6-unorm"\];canvasType="offscreen";enable_required_feature=false]
expected: FAIL
[:viewFormats=["astc-10x6-unorm"\];canvasType="offscreen";enable_required_feature=true]
[:viewFormats=["astc-10x6-unorm"\];canvasType="onscreen";enable_required_feature=false]
expected: FAIL
[:viewFormats=["astc-10x6-unorm"\];canvasType="onscreen";enable_required_feature=true]
[:viewFormats=["astc-10x6-unorm-srgb"\];canvasType="offscreen";enable_required_feature=false]
expected: FAIL
[:viewFormats=["astc-10x6-unorm-srgb"\];canvasType="offscreen";enable_required_feature=true]
[:viewFormats=["astc-10x6-unorm-srgb"\];canvasType="onscreen";enable_required_feature=false]
expected: FAIL
[:viewFormats=["astc-10x6-unorm-srgb"\];canvasType="onscreen";enable_required_feature=true]
[:viewFormats=["astc-10x8-unorm"\];canvasType="offscreen";enable_required_feature=false]
expected: FAIL
[:viewFormats=["astc-10x8-unorm"\];canvasType="offscreen";enable_required_feature=true]
[:viewFormats=["astc-10x8-unorm"\];canvasType="onscreen";enable_required_feature=false]
expected: FAIL
[:viewFormats=["astc-10x8-unorm"\];canvasType="onscreen";enable_required_feature=true]
[:viewFormats=["astc-10x8-unorm-srgb"\];canvasType="offscreen";enable_required_feature=false]
expected: FAIL
[:viewFormats=["astc-10x8-unorm-srgb"\];canvasType="offscreen";enable_required_feature=true]
[:viewFormats=["astc-10x8-unorm-srgb"\];canvasType="onscreen";enable_required_feature=false]
expected: FAIL
[:viewFormats=["astc-10x8-unorm-srgb"\];canvasType="onscreen";enable_required_feature=true]
[:viewFormats=["astc-12x10-unorm"\];canvasType="offscreen";enable_required_feature=false]
expected: FAIL
[:viewFormats=["astc-12x10-unorm"\];canvasType="offscreen";enable_required_feature=true]
[:viewFormats=["astc-12x10-unorm"\];canvasType="onscreen";enable_required_feature=false]
expected: FAIL
[:viewFormats=["astc-12x10-unorm"\];canvasType="onscreen";enable_required_feature=true]
[:viewFormats=["astc-12x10-unorm-srgb"\];canvasType="offscreen";enable_required_feature=false]
expected: FAIL
[:viewFormats=["astc-12x10-unorm-srgb"\];canvasType="offscreen";enable_required_feature=true]
[:viewFormats=["astc-12x10-unorm-srgb"\];canvasType="onscreen";enable_required_feature=false]
expected: FAIL
[:viewFormats=["astc-12x10-unorm-srgb"\];canvasType="onscreen";enable_required_feature=true]
[:viewFormats=["astc-12x12-unorm"\];canvasType="offscreen";enable_required_feature=false]
expected: FAIL
[:viewFormats=["astc-12x12-unorm"\];canvasType="offscreen";enable_required_feature=true]
[:viewFormats=["astc-12x12-unorm"\];canvasType="onscreen";enable_required_feature=false]
expected: FAIL
[:viewFormats=["astc-12x12-unorm"\];canvasType="onscreen";enable_required_feature=true]
[:viewFormats=["astc-12x12-unorm-srgb"\];canvasType="offscreen";enable_required_feature=false]
expected: FAIL
[:viewFormats=["astc-12x12-unorm-srgb"\];canvasType="offscreen";enable_required_feature=true]
[:viewFormats=["astc-12x12-unorm-srgb"\];canvasType="onscreen";enable_required_feature=false]
expected: FAIL
[:viewFormats=["astc-12x12-unorm-srgb"\];canvasType="onscreen";enable_required_feature=true]
[:viewFormats=["astc-4x4-unorm"\];canvasType="offscreen";enable_required_feature=false]
expected: FAIL
[:viewFormats=["astc-4x4-unorm"\];canvasType="offscreen";enable_required_feature=true]
[:viewFormats=["astc-4x4-unorm"\];canvasType="onscreen";enable_required_feature=false]
expected: FAIL
[:viewFormats=["astc-4x4-unorm"\];canvasType="onscreen";enable_required_feature=true]
[:viewFormats=["astc-4x4-unorm-srgb"\];canvasType="offscreen";enable_required_feature=false]
expected: FAIL
[:viewFormats=["astc-4x4-unorm-srgb"\];canvasType="offscreen";enable_required_feature=true]
[:viewFormats=["astc-4x4-unorm-srgb"\];canvasType="onscreen";enable_required_feature=false]
expected: FAIL
[:viewFormats=["astc-4x4-unorm-srgb"\];canvasType="onscreen";enable_required_feature=true]
[:viewFormats=["astc-5x4-unorm"\];canvasType="offscreen";enable_required_feature=false]
expected: FAIL
[:viewFormats=["astc-5x4-unorm"\];canvasType="offscreen";enable_required_feature=true]
[:viewFormats=["astc-5x4-unorm"\];canvasType="onscreen";enable_required_feature=false]
expected: FAIL
[:viewFormats=["astc-5x4-unorm"\];canvasType="onscreen";enable_required_feature=true]
[:viewFormats=["astc-5x4-unorm-srgb"\];canvasType="offscreen";enable_required_feature=false]
expected: FAIL
[:viewFormats=["astc-5x4-unorm-srgb"\];canvasType="offscreen";enable_required_feature=true]
[:viewFormats=["astc-5x4-unorm-srgb"\];canvasType="onscreen";enable_required_feature=false]
expected: FAIL
[:viewFormats=["astc-5x4-unorm-srgb"\];canvasType="onscreen";enable_required_feature=true]
[:viewFormats=["astc-5x5-unorm"\];canvasType="offscreen";enable_required_feature=false]
expected: FAIL
[:viewFormats=["astc-5x5-unorm"\];canvasType="offscreen";enable_required_feature=true]
[:viewFormats=["astc-5x5-unorm"\];canvasType="onscreen";enable_required_feature=false]
expected: FAIL
[:viewFormats=["astc-5x5-unorm"\];canvasType="onscreen";enable_required_feature=true]
[:viewFormats=["astc-5x5-unorm-srgb"\];canvasType="offscreen";enable_required_feature=false]
expected: FAIL
[:viewFormats=["astc-5x5-unorm-srgb"\];canvasType="offscreen";enable_required_feature=true]
[:viewFormats=["astc-5x5-unorm-srgb"\];canvasType="onscreen";enable_required_feature=false]
expected: FAIL
[:viewFormats=["astc-5x5-unorm-srgb"\];canvasType="onscreen";enable_required_feature=true]
[:viewFormats=["astc-6x5-unorm"\];canvasType="offscreen";enable_required_feature=false]
expected: FAIL
[:viewFormats=["astc-6x5-unorm"\];canvasType="offscreen";enable_required_feature=true]
[:viewFormats=["astc-6x5-unorm"\];canvasType="onscreen";enable_required_feature=false]
expected: FAIL
[:viewFormats=["astc-6x5-unorm"\];canvasType="onscreen";enable_required_feature=true]
[:viewFormats=["astc-6x5-unorm-srgb"\];canvasType="offscreen";enable_required_feature=false]
expected: FAIL
[:viewFormats=["astc-6x5-unorm-srgb"\];canvasType="offscreen";enable_required_feature=true]
[:viewFormats=["astc-6x5-unorm-srgb"\];canvasType="onscreen";enable_required_feature=false]
expected: FAIL
[:viewFormats=["astc-6x5-unorm-srgb"\];canvasType="onscreen";enable_required_feature=true]
[:viewFormats=["astc-6x6-unorm"\];canvasType="offscreen";enable_required_feature=false]
expected: FAIL
[:viewFormats=["astc-6x6-unorm"\];canvasType="offscreen";enable_required_feature=true]
[:viewFormats=["astc-6x6-unorm"\];canvasType="onscreen";enable_required_feature=false]
expected: FAIL
[:viewFormats=["astc-6x6-unorm"\];canvasType="onscreen";enable_required_feature=true]
[:viewFormats=["astc-6x6-unorm-srgb"\];canvasType="offscreen";enable_required_feature=false]
expected: FAIL
[:viewFormats=["astc-6x6-unorm-srgb"\];canvasType="offscreen";enable_required_feature=true]
[:viewFormats=["astc-6x6-unorm-srgb"\];canvasType="onscreen";enable_required_feature=false]
expected: FAIL
[:viewFormats=["astc-6x6-unorm-srgb"\];canvasType="onscreen";enable_required_feature=true]
[:viewFormats=["astc-8x5-unorm"\];canvasType="offscreen";enable_required_feature=false]
expected: FAIL
[:viewFormats=["astc-8x5-unorm"\];canvasType="offscreen";enable_required_feature=true]
[:viewFormats=["astc-8x5-unorm"\];canvasType="onscreen";enable_required_feature=false]
expected: FAIL
[:viewFormats=["astc-8x5-unorm"\];canvasType="onscreen";enable_required_feature=true]
[:viewFormats=["astc-8x5-unorm-srgb"\];canvasType="offscreen";enable_required_feature=false]
expected: FAIL
[:viewFormats=["astc-8x5-unorm-srgb"\];canvasType="offscreen";enable_required_feature=true]
[:viewFormats=["astc-8x5-unorm-srgb"\];canvasType="onscreen";enable_required_feature=false]
expected: FAIL
[:viewFormats=["astc-8x5-unorm-srgb"\];canvasType="onscreen";enable_required_feature=true]
[:viewFormats=["astc-8x6-unorm"\];canvasType="offscreen";enable_required_feature=false]
expected: FAIL
[:viewFormats=["astc-8x6-unorm"\];canvasType="offscreen";enable_required_feature=true]
[:viewFormats=["astc-8x6-unorm"\];canvasType="onscreen";enable_required_feature=false]
expected: FAIL
[:viewFormats=["astc-8x6-unorm"\];canvasType="onscreen";enable_required_feature=true]
[:viewFormats=["astc-8x6-unorm-srgb"\];canvasType="offscreen";enable_required_feature=false]
expected: FAIL
[:viewFormats=["astc-8x6-unorm-srgb"\];canvasType="offscreen";enable_required_feature=true]
[:viewFormats=["astc-8x6-unorm-srgb"\];canvasType="onscreen";enable_required_feature=false]
expected: FAIL
[:viewFormats=["astc-8x6-unorm-srgb"\];canvasType="onscreen";enable_required_feature=true]
[:viewFormats=["astc-8x8-unorm"\];canvasType="offscreen";enable_required_feature=false]
expected: FAIL
[:viewFormats=["astc-8x8-unorm"\];canvasType="offscreen";enable_required_feature=true]
[:viewFormats=["astc-8x8-unorm"\];canvasType="onscreen";enable_required_feature=false]
expected: FAIL
[:viewFormats=["astc-8x8-unorm"\];canvasType="onscreen";enable_required_feature=true]
[:viewFormats=["astc-8x8-unorm-srgb"\];canvasType="offscreen";enable_required_feature=false]
expected: FAIL
[:viewFormats=["astc-8x8-unorm-srgb"\];canvasType="offscreen";enable_required_feature=true]
[:viewFormats=["astc-8x8-unorm-srgb"\];canvasType="onscreen";enable_required_feature=false]
expected: FAIL
[:viewFormats=["astc-8x8-unorm-srgb"\];canvasType="onscreen";enable_required_feature=true]
@ -1058,114 +1170,142 @@
[cts.https.html?q=webgpu:api,validation,capability_checks,features,texture_formats:texture_descriptor:*]
implementation-status: backlog
[:format="astc-10x10-unorm";enable_required_feature=false]
expected: FAIL
[:format="astc-10x10-unorm";enable_required_feature=true]
[:format="astc-10x10-unorm-srgb";enable_required_feature=false]
expected: FAIL
[:format="astc-10x10-unorm-srgb";enable_required_feature=true]
[:format="astc-10x5-unorm";enable_required_feature=false]
expected: FAIL
[:format="astc-10x5-unorm";enable_required_feature=true]
[:format="astc-10x5-unorm-srgb";enable_required_feature=false]
expected: FAIL
[:format="astc-10x5-unorm-srgb";enable_required_feature=true]
[:format="astc-10x6-unorm";enable_required_feature=false]
expected: FAIL
[:format="astc-10x6-unorm";enable_required_feature=true]
[:format="astc-10x6-unorm-srgb";enable_required_feature=false]
expected: FAIL
[:format="astc-10x6-unorm-srgb";enable_required_feature=true]
[:format="astc-10x8-unorm";enable_required_feature=false]
expected: FAIL
[:format="astc-10x8-unorm";enable_required_feature=true]
[:format="astc-10x8-unorm-srgb";enable_required_feature=false]
expected: FAIL
[:format="astc-10x8-unorm-srgb";enable_required_feature=true]
[:format="astc-12x10-unorm";enable_required_feature=false]
expected: FAIL
[:format="astc-12x10-unorm";enable_required_feature=true]
[:format="astc-12x10-unorm-srgb";enable_required_feature=false]
expected: FAIL
[:format="astc-12x10-unorm-srgb";enable_required_feature=true]
[:format="astc-12x12-unorm";enable_required_feature=false]
expected: FAIL
[:format="astc-12x12-unorm";enable_required_feature=true]
[:format="astc-12x12-unorm-srgb";enable_required_feature=false]
expected: FAIL
[:format="astc-12x12-unorm-srgb";enable_required_feature=true]
[:format="astc-4x4-unorm";enable_required_feature=false]
expected: FAIL
[:format="astc-4x4-unorm";enable_required_feature=true]
[:format="astc-4x4-unorm-srgb";enable_required_feature=false]
expected: FAIL
[:format="astc-4x4-unorm-srgb";enable_required_feature=true]
[:format="astc-5x4-unorm";enable_required_feature=false]
expected: FAIL
[:format="astc-5x4-unorm";enable_required_feature=true]
[:format="astc-5x4-unorm-srgb";enable_required_feature=false]
expected: FAIL
[:format="astc-5x4-unorm-srgb";enable_required_feature=true]
[:format="astc-5x5-unorm";enable_required_feature=false]
expected: FAIL
[:format="astc-5x5-unorm";enable_required_feature=true]
[:format="astc-5x5-unorm-srgb";enable_required_feature=false]
expected: FAIL
[:format="astc-5x5-unorm-srgb";enable_required_feature=true]
[:format="astc-6x5-unorm";enable_required_feature=false]
expected: FAIL
[:format="astc-6x5-unorm";enable_required_feature=true]
[:format="astc-6x5-unorm-srgb";enable_required_feature=false]
expected: FAIL
[:format="astc-6x5-unorm-srgb";enable_required_feature=true]
[:format="astc-6x6-unorm";enable_required_feature=false]
expected: FAIL
[:format="astc-6x6-unorm";enable_required_feature=true]
[:format="astc-6x6-unorm-srgb";enable_required_feature=false]
expected: FAIL
[:format="astc-6x6-unorm-srgb";enable_required_feature=true]
[:format="astc-8x5-unorm";enable_required_feature=false]
expected: FAIL
[:format="astc-8x5-unorm";enable_required_feature=true]
[:format="astc-8x5-unorm-srgb";enable_required_feature=false]
expected: FAIL
[:format="astc-8x5-unorm-srgb";enable_required_feature=true]
[:format="astc-8x6-unorm";enable_required_feature=false]
expected: FAIL
[:format="astc-8x6-unorm";enable_required_feature=true]
[:format="astc-8x6-unorm-srgb";enable_required_feature=false]
expected: FAIL
[:format="astc-8x6-unorm-srgb";enable_required_feature=true]
[:format="astc-8x8-unorm";enable_required_feature=false]
expected: FAIL
[:format="astc-8x8-unorm";enable_required_feature=true]
[:format="astc-8x8-unorm-srgb";enable_required_feature=false]
expected: FAIL
[:format="astc-8x8-unorm-srgb";enable_required_feature=true]
@ -1288,114 +1428,142 @@
[cts.https.html?q=webgpu:api,validation,capability_checks,features,texture_formats:texture_descriptor_view_formats:*]
implementation-status: backlog
[:format="astc-10x10-unorm";enable_required_feature=false]
expected: FAIL
[:format="astc-10x10-unorm";enable_required_feature=true]
[:format="astc-10x10-unorm-srgb";enable_required_feature=false]
expected: FAIL
[:format="astc-10x10-unorm-srgb";enable_required_feature=true]
[:format="astc-10x5-unorm";enable_required_feature=false]
expected: FAIL
[:format="astc-10x5-unorm";enable_required_feature=true]
[:format="astc-10x5-unorm-srgb";enable_required_feature=false]
expected: FAIL
[:format="astc-10x5-unorm-srgb";enable_required_feature=true]
[:format="astc-10x6-unorm";enable_required_feature=false]
expected: FAIL
[:format="astc-10x6-unorm";enable_required_feature=true]
[:format="astc-10x6-unorm-srgb";enable_required_feature=false]
expected: FAIL
[:format="astc-10x6-unorm-srgb";enable_required_feature=true]
[:format="astc-10x8-unorm";enable_required_feature=false]
expected: FAIL
[:format="astc-10x8-unorm";enable_required_feature=true]
[:format="astc-10x8-unorm-srgb";enable_required_feature=false]
expected: FAIL
[:format="astc-10x8-unorm-srgb";enable_required_feature=true]
[:format="astc-12x10-unorm";enable_required_feature=false]
expected: FAIL
[:format="astc-12x10-unorm";enable_required_feature=true]
[:format="astc-12x10-unorm-srgb";enable_required_feature=false]
expected: FAIL
[:format="astc-12x10-unorm-srgb";enable_required_feature=true]
[:format="astc-12x12-unorm";enable_required_feature=false]
expected: FAIL
[:format="astc-12x12-unorm";enable_required_feature=true]
[:format="astc-12x12-unorm-srgb";enable_required_feature=false]
expected: FAIL
[:format="astc-12x12-unorm-srgb";enable_required_feature=true]
[:format="astc-4x4-unorm";enable_required_feature=false]
expected: FAIL
[:format="astc-4x4-unorm";enable_required_feature=true]
[:format="astc-4x4-unorm-srgb";enable_required_feature=false]
expected: FAIL
[:format="astc-4x4-unorm-srgb";enable_required_feature=true]
[:format="astc-5x4-unorm";enable_required_feature=false]
expected: FAIL
[:format="astc-5x4-unorm";enable_required_feature=true]
[:format="astc-5x4-unorm-srgb";enable_required_feature=false]
expected: FAIL
[:format="astc-5x4-unorm-srgb";enable_required_feature=true]
[:format="astc-5x5-unorm";enable_required_feature=false]
expected: FAIL
[:format="astc-5x5-unorm";enable_required_feature=true]
[:format="astc-5x5-unorm-srgb";enable_required_feature=false]
expected: FAIL
[:format="astc-5x5-unorm-srgb";enable_required_feature=true]
[:format="astc-6x5-unorm";enable_required_feature=false]
expected: FAIL
[:format="astc-6x5-unorm";enable_required_feature=true]
[:format="astc-6x5-unorm-srgb";enable_required_feature=false]
expected: FAIL
[:format="astc-6x5-unorm-srgb";enable_required_feature=true]
[:format="astc-6x6-unorm";enable_required_feature=false]
expected: FAIL
[:format="astc-6x6-unorm";enable_required_feature=true]
[:format="astc-6x6-unorm-srgb";enable_required_feature=false]
expected: FAIL
[:format="astc-6x6-unorm-srgb";enable_required_feature=true]
[:format="astc-8x5-unorm";enable_required_feature=false]
expected: FAIL
[:format="astc-8x5-unorm";enable_required_feature=true]
[:format="astc-8x5-unorm-srgb";enable_required_feature=false]
expected: FAIL
[:format="astc-8x5-unorm-srgb";enable_required_feature=true]
[:format="astc-8x6-unorm";enable_required_feature=false]
expected: FAIL
[:format="astc-8x6-unorm";enable_required_feature=true]
[:format="astc-8x6-unorm-srgb";enable_required_feature=false]
expected: FAIL
[:format="astc-8x6-unorm-srgb";enable_required_feature=true]
[:format="astc-8x8-unorm";enable_required_feature=false]
expected: FAIL
[:format="astc-8x8-unorm";enable_required_feature=true]
[:format="astc-8x8-unorm-srgb";enable_required_feature=false]
expected: FAIL
[:format="astc-8x8-unorm-srgb";enable_required_feature=true]
@ -1518,114 +1686,142 @@
[cts.https.html?q=webgpu:api,validation,capability_checks,features,texture_formats:texture_view_descriptor:*]
implementation-status: backlog
[:format="astc-10x10-unorm";enable_required_feature=false]
expected: FAIL
[:format="astc-10x10-unorm";enable_required_feature=true]
[:format="astc-10x10-unorm-srgb";enable_required_feature=false]
expected: FAIL
[:format="astc-10x10-unorm-srgb";enable_required_feature=true]
[:format="astc-10x5-unorm";enable_required_feature=false]
expected: FAIL
[:format="astc-10x5-unorm";enable_required_feature=true]
[:format="astc-10x5-unorm-srgb";enable_required_feature=false]
expected: FAIL
[:format="astc-10x5-unorm-srgb";enable_required_feature=true]
[:format="astc-10x6-unorm";enable_required_feature=false]
expected: FAIL
[:format="astc-10x6-unorm";enable_required_feature=true]
[:format="astc-10x6-unorm-srgb";enable_required_feature=false]
expected: FAIL
[:format="astc-10x6-unorm-srgb";enable_required_feature=true]
[:format="astc-10x8-unorm";enable_required_feature=false]
expected: FAIL
[:format="astc-10x8-unorm";enable_required_feature=true]
[:format="astc-10x8-unorm-srgb";enable_required_feature=false]
expected: FAIL
[:format="astc-10x8-unorm-srgb";enable_required_feature=true]
[:format="astc-12x10-unorm";enable_required_feature=false]
expected: FAIL
[:format="astc-12x10-unorm";enable_required_feature=true]
[:format="astc-12x10-unorm-srgb";enable_required_feature=false]
expected: FAIL
[:format="astc-12x10-unorm-srgb";enable_required_feature=true]
[:format="astc-12x12-unorm";enable_required_feature=false]
expected: FAIL
[:format="astc-12x12-unorm";enable_required_feature=true]
[:format="astc-12x12-unorm-srgb";enable_required_feature=false]
expected: FAIL
[:format="astc-12x12-unorm-srgb";enable_required_feature=true]
[:format="astc-4x4-unorm";enable_required_feature=false]
expected: FAIL
[:format="astc-4x4-unorm";enable_required_feature=true]
[:format="astc-4x4-unorm-srgb";enable_required_feature=false]
expected: FAIL
[:format="astc-4x4-unorm-srgb";enable_required_feature=true]
[:format="astc-5x4-unorm";enable_required_feature=false]
expected: FAIL
[:format="astc-5x4-unorm";enable_required_feature=true]
[:format="astc-5x4-unorm-srgb";enable_required_feature=false]
expected: FAIL
[:format="astc-5x4-unorm-srgb";enable_required_feature=true]
[:format="astc-5x5-unorm";enable_required_feature=false]
expected: FAIL
[:format="astc-5x5-unorm";enable_required_feature=true]
[:format="astc-5x5-unorm-srgb";enable_required_feature=false]
expected: FAIL
[:format="astc-5x5-unorm-srgb";enable_required_feature=true]
[:format="astc-6x5-unorm";enable_required_feature=false]
expected: FAIL
[:format="astc-6x5-unorm";enable_required_feature=true]
[:format="astc-6x5-unorm-srgb";enable_required_feature=false]
expected: FAIL
[:format="astc-6x5-unorm-srgb";enable_required_feature=true]
[:format="astc-6x6-unorm";enable_required_feature=false]
expected: FAIL
[:format="astc-6x6-unorm";enable_required_feature=true]
[:format="astc-6x6-unorm-srgb";enable_required_feature=false]
expected: FAIL
[:format="astc-6x6-unorm-srgb";enable_required_feature=true]
[:format="astc-8x5-unorm";enable_required_feature=false]
expected: FAIL
[:format="astc-8x5-unorm";enable_required_feature=true]
[:format="astc-8x5-unorm-srgb";enable_required_feature=false]
expected: FAIL
[:format="astc-8x5-unorm-srgb";enable_required_feature=true]
[:format="astc-8x6-unorm";enable_required_feature=false]
expected: FAIL
[:format="astc-8x6-unorm";enable_required_feature=true]
[:format="astc-8x6-unorm-srgb";enable_required_feature=false]
expected: FAIL
[:format="astc-8x6-unorm-srgb";enable_required_feature=true]
[:format="astc-8x8-unorm";enable_required_feature=false]
expected: FAIL
[:format="astc-8x8-unorm";enable_required_feature=true]
[:format="astc-8x8-unorm-srgb";enable_required_feature=false]
expected: FAIL
[:format="astc-8x8-unorm-srgb";enable_required_feature=true]