From 4d245d9a36a8aae5e22405dc76f920dca9ef4631 Mon Sep 17 00:00:00 2001 From: Ben Clayton Date: Thu, 6 Jan 2022 18:37:01 +0000 Subject: [PATCH] ast: Remove unsupported texel formats Fixed: tint:1361 Change-Id: Idcf98713d9a380e56811bea6419913714d602103 Reviewed-on: https://dawn-review.googlesource.com/c/tint/+/75582 Reviewed-by: David Neto Kokoro: Kokoro Commit-Queue: Ben Clayton --- src/ast/storage_texture.cc | 76 ------- src/ast/storage_texture.h | 31 +-- src/inspector/resource_binding.cc | 38 ---- src/inspector/resource_binding.h | 36 ++-- src/reader/spirv/parser_impl.cc | 38 ---- src/reader/spirv/parser_type_test.cc | 14 +- src/reader/wgsl/parser_impl.cc | 188 ++++++------------ src/reader/wgsl/parser_impl_error_msg_test.cc | 8 +- .../wgsl/parser_impl_texel_format_test.cc | 152 -------------- .../parser_impl_texture_sampler_types_test.cc | 20 +- src/resolver/dependency_graph_test.cc | 2 +- src/resolver/intrinsic_test.cc | 2 +- src/resolver/type_validation_test.cc | 21 +- src/sem/storage_texture_type.cc | 19 -- src/transform/renamer_test.cc | 10 +- src/writer/spirv/builder.cc | 54 ----- .../spirv/builder_format_conversion_test.cc | 41 ++-- src/writer/wgsl/generator_impl_type_test.cc | 19 -- 18 files changed, 132 insertions(+), 637 deletions(-) diff --git a/src/ast/storage_texture.cc b/src/ast/storage_texture.cc index b074f5d319..82105ce44e 100644 --- a/src/ast/storage_texture.cc +++ b/src/ast/storage_texture.cc @@ -31,39 +31,6 @@ std::ostream& operator<<(std::ostream& out, TexelFormat format) { case TexelFormat::kNone: out << "none"; break; - case TexelFormat::kR8Unorm: - out << "r8unorm"; - break; - case TexelFormat::kR8Snorm: - out << "r8snorm"; - break; - case TexelFormat::kR8Uint: - out << "r8uint"; - break; - case TexelFormat::kR8Sint: - out << "r8sint"; - break; - case TexelFormat::kR16Uint: - out << "r16uint"; - break; - case TexelFormat::kR16Sint: - out << "r16sint"; - break; - case TexelFormat::kR16Float: - out << "r16float"; - break; - case TexelFormat::kRg8Unorm: - out << "rg8unorm"; - break; - case TexelFormat::kRg8Snorm: - out << "rg8snorm"; - break; - case TexelFormat::kRg8Uint: - out << "rg8uint"; - break; - case TexelFormat::kRg8Sint: - out << "rg8sint"; - break; case TexelFormat::kR32Uint: out << "r32uint"; break; @@ -73,21 +40,9 @@ std::ostream& operator<<(std::ostream& out, TexelFormat format) { case TexelFormat::kR32Float: out << "r32float"; break; - case TexelFormat::kRg16Uint: - out << "rg16uint"; - break; - case TexelFormat::kRg16Sint: - out << "rg16sint"; - break; - case TexelFormat::kRg16Float: - out << "rg16float"; - break; case TexelFormat::kRgba8Unorm: out << "rgba8unorm"; break; - case TexelFormat::kRgba8UnormSrgb: - out << "rgba8unorm_srgb"; - break; case TexelFormat::kRgba8Snorm: out << "rgba8snorm"; break; @@ -97,18 +52,6 @@ std::ostream& operator<<(std::ostream& out, TexelFormat format) { case TexelFormat::kRgba8Sint: out << "rgba8sint"; break; - case TexelFormat::kBgra8Unorm: - out << "bgra8unorm"; - break; - case TexelFormat::kBgra8UnormSrgb: - out << "bgra8unorm_srgb"; - break; - case TexelFormat::kRgb10A2Unorm: - out << "rgb10a2unorm"; - break; - case TexelFormat::kRg11B10Float: - out << "rg11b10float"; - break; case TexelFormat::kRg32Uint: out << "rg32uint"; break; @@ -167,11 +110,7 @@ const StorageTexture* StorageTexture::Clone(CloneContext* ctx) const { Type* StorageTexture::SubtypeFor(TexelFormat format, ProgramBuilder& builder) { switch (format) { - case TexelFormat::kR8Uint: - case TexelFormat::kR16Uint: - case TexelFormat::kRg8Uint: case TexelFormat::kR32Uint: - case TexelFormat::kRg16Uint: case TexelFormat::kRgba8Uint: case TexelFormat::kRg32Uint: case TexelFormat::kRgba16Uint: @@ -179,11 +118,7 @@ Type* StorageTexture::SubtypeFor(TexelFormat format, ProgramBuilder& builder) { return builder.create(); } - case TexelFormat::kR8Sint: - case TexelFormat::kR16Sint: - case TexelFormat::kRg8Sint: case TexelFormat::kR32Sint: - case TexelFormat::kRg16Sint: case TexelFormat::kRgba8Sint: case TexelFormat::kRg32Sint: case TexelFormat::kRgba16Sint: @@ -191,20 +126,9 @@ Type* StorageTexture::SubtypeFor(TexelFormat format, ProgramBuilder& builder) { return builder.create(); } - case TexelFormat::kR8Unorm: - case TexelFormat::kRg8Unorm: case TexelFormat::kRgba8Unorm: - case TexelFormat::kRgba8UnormSrgb: - case TexelFormat::kBgra8Unorm: - case TexelFormat::kBgra8UnormSrgb: - case TexelFormat::kRgb10A2Unorm: - case TexelFormat::kR8Snorm: - case TexelFormat::kRg8Snorm: case TexelFormat::kRgba8Snorm: - case TexelFormat::kR16Float: case TexelFormat::kR32Float: - case TexelFormat::kRg16Float: - case TexelFormat::kRg11B10Float: case TexelFormat::kRg32Float: case TexelFormat::kRgba16Float: case TexelFormat::kRgba32Float: { diff --git a/src/ast/storage_texture.h b/src/ast/storage_texture.h index 46cd2c8137..30078ca0fd 100644 --- a/src/ast/storage_texture.h +++ b/src/ast/storage_texture.h @@ -26,38 +26,19 @@ namespace ast { /// The texel format in the storage texture enum class TexelFormat { kNone = -1, - kR8Unorm, - kR8Snorm, - kR8Uint, - kR8Sint, - kR16Uint, - kR16Sint, - kR16Float, - kRg8Unorm, - kRg8Snorm, - kRg8Uint, - kRg8Sint, - kR32Uint, - kR32Sint, - kR32Float, - kRg16Uint, - kRg16Sint, - kRg16Float, kRgba8Unorm, - kRgba8UnormSrgb, kRgba8Snorm, kRgba8Uint, kRgba8Sint, - kBgra8Unorm, - kBgra8UnormSrgb, - kRgb10A2Unorm, - kRg11B10Float, - kRg32Uint, - kRg32Sint, - kRg32Float, kRgba16Uint, kRgba16Sint, kRgba16Float, + kR32Uint, + kR32Sint, + kR32Float, + kRg32Uint, + kRg32Sint, + kRg32Float, kRgba32Uint, kRgba32Sint, kRgba32Float, diff --git a/src/inspector/resource_binding.cc b/src/inspector/resource_binding.cc index e0862ba178..4589ea02b0 100644 --- a/src/inspector/resource_binding.cc +++ b/src/inspector/resource_binding.cc @@ -74,58 +74,20 @@ ResourceBinding::SampledKind BaseTypeToSampledKind(const sem::Type* base_type) { ResourceBinding::TexelFormat TypeTexelFormatToResourceBindingTexelFormat( const ast::TexelFormat& image_format) { switch (image_format) { - case ast::TexelFormat::kR8Unorm: - return ResourceBinding::TexelFormat::kR8Unorm; - case ast::TexelFormat::kR8Snorm: - return ResourceBinding::TexelFormat::kR8Snorm; - case ast::TexelFormat::kR8Uint: - return ResourceBinding::TexelFormat::kR8Uint; - case ast::TexelFormat::kR8Sint: - return ResourceBinding::TexelFormat::kR8Sint; - case ast::TexelFormat::kR16Uint: - return ResourceBinding::TexelFormat::kR16Uint; - case ast::TexelFormat::kR16Sint: - return ResourceBinding::TexelFormat::kR16Sint; - case ast::TexelFormat::kR16Float: - return ResourceBinding::TexelFormat::kR16Float; - case ast::TexelFormat::kRg8Unorm: - return ResourceBinding::TexelFormat::kRg8Unorm; - case ast::TexelFormat::kRg8Snorm: - return ResourceBinding::TexelFormat::kRg8Snorm; - case ast::TexelFormat::kRg8Uint: - return ResourceBinding::TexelFormat::kRg8Uint; - case ast::TexelFormat::kRg8Sint: - return ResourceBinding::TexelFormat::kRg8Sint; case ast::TexelFormat::kR32Uint: return ResourceBinding::TexelFormat::kR32Uint; case ast::TexelFormat::kR32Sint: return ResourceBinding::TexelFormat::kR32Sint; case ast::TexelFormat::kR32Float: return ResourceBinding::TexelFormat::kR32Float; - case ast::TexelFormat::kRg16Uint: - return ResourceBinding::TexelFormat::kRg16Uint; - case ast::TexelFormat::kRg16Sint: - return ResourceBinding::TexelFormat::kRg16Sint; - case ast::TexelFormat::kRg16Float: - return ResourceBinding::TexelFormat::kRg16Float; case ast::TexelFormat::kRgba8Unorm: return ResourceBinding::TexelFormat::kRgba8Unorm; - case ast::TexelFormat::kRgba8UnormSrgb: - return ResourceBinding::TexelFormat::kRgba8UnormSrgb; case ast::TexelFormat::kRgba8Snorm: return ResourceBinding::TexelFormat::kRgba8Snorm; case ast::TexelFormat::kRgba8Uint: return ResourceBinding::TexelFormat::kRgba8Uint; case ast::TexelFormat::kRgba8Sint: return ResourceBinding::TexelFormat::kRgba8Sint; - case ast::TexelFormat::kBgra8Unorm: - return ResourceBinding::TexelFormat::kBgra8Unorm; - case ast::TexelFormat::kBgra8UnormSrgb: - return ResourceBinding::TexelFormat::kBgra8UnormSrgb; - case ast::TexelFormat::kRgb10A2Unorm: - return ResourceBinding::TexelFormat::kRgb10A2Unorm; - case ast::TexelFormat::kRg11B10Float: - return ResourceBinding::TexelFormat::kRg11B10Float; case ast::TexelFormat::kRg32Uint: return ResourceBinding::TexelFormat::kRg32Uint; case ast::TexelFormat::kRg32Sint: diff --git a/src/inspector/resource_binding.h b/src/inspector/resource_binding.h index cb84917a8a..8f62cacf4c 100644 --- a/src/inspector/resource_binding.h +++ b/src/inspector/resource_binding.h @@ -50,6 +50,26 @@ struct ResourceBinding { /// Enumerator of texel image formats enum class TexelFormat { kNone = -1, + + kRgba8Unorm, + kRgba8Snorm, + kRgba8Uint, + kRgba8Sint, + kRgba16Uint, + kRgba16Sint, + kRgba16Float, + kR32Uint, + kR32Sint, + kR32Float, + kRg32Uint, + kRg32Sint, + kRg32Float, + kRgba32Uint, + kRgba32Sint, + kRgba32Float, + + // [DEPRECATED] + // The below are all deprecated, and will be removed. kR8Unorm, kR8Snorm, kR8Uint, @@ -61,30 +81,14 @@ struct ResourceBinding { kRg8Snorm, kRg8Uint, kRg8Sint, - kR32Uint, - kR32Sint, - kR32Float, kRg16Uint, kRg16Sint, kRg16Float, - kRgba8Unorm, kRgba8UnormSrgb, - kRgba8Snorm, - kRgba8Uint, - kRgba8Sint, kBgra8Unorm, kBgra8UnormSrgb, kRgb10A2Unorm, kRg11B10Float, - kRg32Uint, - kRg32Sint, - kRg32Float, - kRgba16Uint, - kRgba16Sint, - kRgba16Float, - kRgba32Uint, - kRgba32Sint, - kRgba32Float, }; /// Renamed field [DEPRECATED] diff --git a/src/reader/spirv/parser_impl.cc b/src/reader/spirv/parser_impl.cc index 8a5f48bf15..287b0a8e2a 100644 --- a/src/reader/spirv/parser_impl.cc +++ b/src/reader/spirv/parser_impl.cc @@ -2528,42 +2528,23 @@ const Pointer* ParserImpl::GetTypeForHandleVar( const Type* ParserImpl::GetComponentTypeForFormat(ast::TexelFormat format) { switch (format) { - case ast::TexelFormat::kR8Uint: - case ast::TexelFormat::kR16Uint: - case ast::TexelFormat::kRg8Uint: case ast::TexelFormat::kR32Uint: - case ast::TexelFormat::kRg16Uint: case ast::TexelFormat::kRgba8Uint: case ast::TexelFormat::kRg32Uint: case ast::TexelFormat::kRgba16Uint: case ast::TexelFormat::kRgba32Uint: return ty_.U32(); - case ast::TexelFormat::kR8Sint: - case ast::TexelFormat::kR16Sint: - case ast::TexelFormat::kRg8Sint: case ast::TexelFormat::kR32Sint: - case ast::TexelFormat::kRg16Sint: case ast::TexelFormat::kRgba8Sint: case ast::TexelFormat::kRg32Sint: case ast::TexelFormat::kRgba16Sint: case ast::TexelFormat::kRgba32Sint: return ty_.I32(); - case ast::TexelFormat::kR8Unorm: - case ast::TexelFormat::kRg8Unorm: case ast::TexelFormat::kRgba8Unorm: - case ast::TexelFormat::kRgba8UnormSrgb: - case ast::TexelFormat::kBgra8Unorm: - case ast::TexelFormat::kBgra8UnormSrgb: - case ast::TexelFormat::kRgb10A2Unorm: - case ast::TexelFormat::kR8Snorm: - case ast::TexelFormat::kRg8Snorm: case ast::TexelFormat::kRgba8Snorm: - case ast::TexelFormat::kR16Float: case ast::TexelFormat::kR32Float: - case ast::TexelFormat::kRg16Float: - case ast::TexelFormat::kRg11B10Float: case ast::TexelFormat::kRg32Float: case ast::TexelFormat::kRgba16Float: case ast::TexelFormat::kRgba32Float: @@ -2577,36 +2558,18 @@ const Type* ParserImpl::GetComponentTypeForFormat(ast::TexelFormat format) { unsigned ParserImpl::GetChannelCountForFormat(ast::TexelFormat format) { switch (format) { - case ast::TexelFormat::kR16Float: - case ast::TexelFormat::kR16Sint: - case ast::TexelFormat::kR16Uint: case ast::TexelFormat::kR32Float: case ast::TexelFormat::kR32Sint: case ast::TexelFormat::kR32Uint: - case ast::TexelFormat::kR8Sint: - case ast::TexelFormat::kR8Snorm: - case ast::TexelFormat::kR8Uint: - case ast::TexelFormat::kR8Unorm: // One channel return 1; - case ast::TexelFormat::kRg11B10Float: - case ast::TexelFormat::kRg16Float: - case ast::TexelFormat::kRg16Sint: - case ast::TexelFormat::kRg16Uint: case ast::TexelFormat::kRg32Float: case ast::TexelFormat::kRg32Sint: case ast::TexelFormat::kRg32Uint: - case ast::TexelFormat::kRg8Sint: - case ast::TexelFormat::kRg8Snorm: - case ast::TexelFormat::kRg8Uint: - case ast::TexelFormat::kRg8Unorm: // Two channels return 2; - case ast::TexelFormat::kBgra8Unorm: - case ast::TexelFormat::kBgra8UnormSrgb: - case ast::TexelFormat::kRgb10A2Unorm: case ast::TexelFormat::kRgba16Float: case ast::TexelFormat::kRgba16Sint: case ast::TexelFormat::kRgba16Uint: @@ -2617,7 +2580,6 @@ unsigned ParserImpl::GetChannelCountForFormat(ast::TexelFormat format) { case ast::TexelFormat::kRgba8Snorm: case ast::TexelFormat::kRgba8Uint: case ast::TexelFormat::kRgba8Unorm: - case ast::TexelFormat::kRgba8UnormSrgb: // Four channels return 4; diff --git a/src/reader/spirv/parser_type_test.cc b/src/reader/spirv/parser_type_test.cc index c683cdd9bc..dde9a01305 100644 --- a/src/reader/spirv/parser_type_test.cc +++ b/src/reader/spirv/parser_type_test.cc @@ -46,9 +46,9 @@ TEST(SpvParserTypeTest, SameArgumentsGivesSamePointer) { EXPECT_EQ(ty.SampledTexture(ast::TextureDimension::k2d, ty.I32()), ty.SampledTexture(ast::TextureDimension::k2d, ty.I32())); EXPECT_EQ(ty.StorageTexture(ast::TextureDimension::k2d, - ast::TexelFormat::kR16Sint, ast::Access::kRead), + ast::TexelFormat::kR32Uint, ast::Access::kRead), ty.StorageTexture(ast::TextureDimension::k2d, - ast::TexelFormat::kR16Sint, ast::Access::kRead)); + ast::TexelFormat::kR32Uint, ast::Access::kRead)); } TEST(SpvParserTypeTest, DifferentArgumentsGivesDifferentPointer) { @@ -83,17 +83,17 @@ TEST(SpvParserTypeTest, DifferentArgumentsGivesDifferentPointer) { EXPECT_NE(ty.SampledTexture(ast::TextureDimension::k2d, ty.I32()), ty.SampledTexture(ast::TextureDimension::k2d, ty.U32())); EXPECT_NE(ty.StorageTexture(ast::TextureDimension::k2d, - ast::TexelFormat::kR16Sint, ast::Access::kRead), + ast::TexelFormat::kR32Uint, ast::Access::kRead), ty.StorageTexture(ast::TextureDimension::k3d, - ast::TexelFormat::kR16Sint, ast::Access::kRead)); + ast::TexelFormat::kR32Uint, ast::Access::kRead)); EXPECT_NE(ty.StorageTexture(ast::TextureDimension::k2d, - ast::TexelFormat::kR16Sint, ast::Access::kRead), + ast::TexelFormat::kR32Uint, ast::Access::kRead), ty.StorageTexture(ast::TextureDimension::k2d, ast::TexelFormat::kR32Sint, ast::Access::kRead)); EXPECT_NE(ty.StorageTexture(ast::TextureDimension::k2d, - ast::TexelFormat::kR16Sint, ast::Access::kRead), + ast::TexelFormat::kR32Uint, ast::Access::kRead), ty.StorageTexture(ast::TextureDimension::k2d, - ast::TexelFormat::kR16Sint, ast::Access::kWrite)); + ast::TexelFormat::kR32Uint, ast::Access::kWrite)); } } // namespace diff --git a/src/reader/wgsl/parser_impl.cc b/src/reader/wgsl/parser_impl.cc index adb259b2fa..719e1b942c 100644 --- a/src/reader/wgsl/parser_impl.cc +++ b/src/reader/wgsl/parser_impl.cc @@ -745,139 +745,30 @@ Maybe ParserImpl::depth_texture_type() { return Failure::kNoMatch; } -// image_storage_type -// : R8UNORM -// | R8SNORM -// | R8UINT -// | R8SINT -// | R16UINT -// | R16SINT -// | R16FLOAT -// | RG8UNORM -// | RG8SNORM -// | RG8UINT -// | RG8SINT -// | R32UINT -// | R32SINT -// | R32FLOAT -// | RG16UINT -// | RG16SINT -// | RG16FLOAT -// | RGBA8UNORM -/// | RGBA8UNORM-SRGB -// | RGBA8SNORM -// | RGBA8UINT -// | RGBA8SINT -// | BGRA8UNORM -// | BGRA8UNORM-SRGB -// | RGB10A2UNORM -// | RG11B10FLOAT -// | RG32UINT -// | RG32SINT -// | RG32FLOAT -// | RGBA16UINT -// | RGBA16SINT -// | RGBA16FLOAT -// | RGBA32UINT -// | RGBA32SINT -// | RGBA32FLOAT +// texel_format +// : 'rgba8unorm' +// | 'rgba8snorm' +// | 'rgba8uint' +// | 'rgba8sint' +// | 'rgba16uint' +// | 'rgba16sint' +// | 'rgba16float' +// | 'r32uint' +// | 'r32sint' +// | 'r32float' +// | 'rg32uint' +// | 'rg32sint' +// | 'rg32float' +// | 'rgba32uint' +// | 'rgba32sint' +// | 'rgba32float' Expect ParserImpl::expect_texel_format( const std::string& use) { auto tok = next(); if (tok.IsIdentifier()) { auto s = tok.to_str(); - if (s == "bgra8unorm") { - return ast::TexelFormat::kBgra8Unorm; - } - if (s == "bgra8unorm_srgb") { - return ast::TexelFormat::kBgra8UnormSrgb; - } - if (s == "r16float") { - return ast::TexelFormat::kR16Float; - } - if (s == "r16sint") { - return ast::TexelFormat::kR16Sint; - } - if (s == "r16uint") { - return ast::TexelFormat::kR16Uint; - } - if (s == "r32float") { - return ast::TexelFormat::kR32Float; - } - if (s == "r32sint") { - return ast::TexelFormat::kR32Sint; - } - if (s == "r32uint") { - return ast::TexelFormat::kR32Uint; - } - if (s == "r8sint") { - return ast::TexelFormat::kR8Sint; - } - if (s == "r8snorm") { - return ast::TexelFormat::kR8Snorm; - } - if (s == "r8uint") { - return ast::TexelFormat::kR8Uint; - } - if (s == "r8unorm") { - return ast::TexelFormat::kR8Unorm; - } - if (s == "rg11b10float") { - return ast::TexelFormat::kRg11B10Float; - } - if (s == "rg16float") { - return ast::TexelFormat::kRg16Float; - } - if (s == "rg16sint") { - return ast::TexelFormat::kRg16Sint; - } - if (s == "rg16uint") { - return ast::TexelFormat::kRg16Uint; - } - if (s == "rg32float") { - return ast::TexelFormat::kRg32Float; - } - if (s == "rg32sint") { - return ast::TexelFormat::kRg32Sint; - } - if (s == "rg32uint") { - return ast::TexelFormat::kRg32Uint; - } - if (s == "rg8sint") { - return ast::TexelFormat::kRg8Sint; - } - if (s == "rg8snorm") { - return ast::TexelFormat::kRg8Snorm; - } - if (s == "rg8uint") { - return ast::TexelFormat::kRg8Uint; - } - if (s == "rg8unorm") { - return ast::TexelFormat::kRg8Unorm; - } - if (s == "rgb10a2unorm") { - return ast::TexelFormat::kRgb10A2Unorm; - } - if (s == "rgba16float") { - return ast::TexelFormat::kRgba16Float; - } - if (s == "rgba16sint") { - return ast::TexelFormat::kRgba16Sint; - } - if (s == "rgba16uint") { - return ast::TexelFormat::kRgba16Uint; - } - if (s == "rgba32float") { - return ast::TexelFormat::kRgba32Float; - } - if (s == "rgba32sint") { - return ast::TexelFormat::kRgba32Sint; - } - if (s == "rgba32uint") { - return ast::TexelFormat::kRgba32Uint; - } - if (s == "rgba8sint") { - return ast::TexelFormat::kRgba8Sint; + if (s == "rgba8unorm") { + return ast::TexelFormat::kRgba8Unorm; } if (s == "rgba8snorm") { return ast::TexelFormat::kRgba8Snorm; @@ -885,11 +776,44 @@ Expect ParserImpl::expect_texel_format( if (s == "rgba8uint") { return ast::TexelFormat::kRgba8Uint; } - if (s == "rgba8unorm") { - return ast::TexelFormat::kRgba8Unorm; + if (s == "rgba8sint") { + return ast::TexelFormat::kRgba8Sint; } - if (s == "rgba8unorm_srgb") { - return ast::TexelFormat::kRgba8UnormSrgb; + if (s == "rgba16uint") { + return ast::TexelFormat::kRgba16Uint; + } + if (s == "rgba16sint") { + return ast::TexelFormat::kRgba16Sint; + } + if (s == "rgba16float") { + return ast::TexelFormat::kRgba16Float; + } + if (s == "r32uint") { + return ast::TexelFormat::kR32Uint; + } + if (s == "r32sint") { + return ast::TexelFormat::kR32Sint; + } + if (s == "r32float") { + return ast::TexelFormat::kR32Float; + } + if (s == "rg32uint") { + return ast::TexelFormat::kRg32Uint; + } + if (s == "rg32sint") { + return ast::TexelFormat::kRg32Sint; + } + if (s == "rg32float") { + return ast::TexelFormat::kRg32Float; + } + if (s == "rgba32uint") { + return ast::TexelFormat::kRgba32Uint; + } + if (s == "rgba32sint") { + return ast::TexelFormat::kRgba32Sint; + } + if (s == "rgba32float") { + return ast::TexelFormat::kRgba32Float; } } return add_error(tok.source(), "invalid format", use); diff --git a/src/reader/wgsl/parser_impl_error_msg_test.cc b/src/reader/wgsl/parser_impl_error_msg_test.cc index 7c1d391630..6d1ff74977 100644 --- a/src/reader/wgsl/parser_impl_error_msg_test.cc +++ b/src/reader/wgsl/parser_impl_error_msg_test.cc @@ -585,10 +585,10 @@ TEST_F(ParserImplErrorTest, GlobalDeclStorageTextureMissingLessThan) { } TEST_F(ParserImplErrorTest, GlobalDeclStorageTextureMissingGreaterThan) { - EXPECT("var x : texture_storage_2d' for storage texture type\n" - "var x : texture_storage_2d' for storage texture type\n" + "var x : texture_storage_2derror(), "1:1: invalid format for test"); } -TEST_F(ParserImplTest, ImageStorageType_R8Unorm) { - auto p = parser("r8unorm"); - auto t = p->expect_texel_format("test"); - EXPECT_FALSE(t.errored); - EXPECT_EQ(t.value, ast::TexelFormat::kR8Unorm); - EXPECT_FALSE(p->has_error()); -} - -TEST_F(ParserImplTest, ImageStorageType_R8Snorm) { - auto p = parser("r8snorm"); - auto t = p->expect_texel_format("test"); - EXPECT_FALSE(t.errored); - EXPECT_EQ(t.value, ast::TexelFormat::kR8Snorm); - EXPECT_FALSE(p->has_error()); -} - -TEST_F(ParserImplTest, ImageStorageType_R8Uint) { - auto p = parser("r8uint"); - auto t = p->expect_texel_format("test"); - EXPECT_FALSE(t.errored); - EXPECT_EQ(t.value, ast::TexelFormat::kR8Uint); - EXPECT_FALSE(p->has_error()); -} - -TEST_F(ParserImplTest, ImageStorageType_R8Sint) { - auto p = parser("r8sint"); - auto t = p->expect_texel_format("test"); - EXPECT_FALSE(t.errored); - EXPECT_EQ(t.value, ast::TexelFormat::kR8Sint); - EXPECT_FALSE(p->has_error()); -} - -TEST_F(ParserImplTest, ImageStorageType_R16Uint) { - auto p = parser("r16uint"); - auto t = p->expect_texel_format("test"); - EXPECT_FALSE(t.errored); - EXPECT_EQ(t.value, ast::TexelFormat::kR16Uint); - EXPECT_FALSE(p->has_error()); -} - -TEST_F(ParserImplTest, ImageStorageType_R16Sint) { - auto p = parser("r16sint"); - auto t = p->expect_texel_format("test"); - EXPECT_FALSE(t.errored); - EXPECT_EQ(t.value, ast::TexelFormat::kR16Sint); - EXPECT_FALSE(p->has_error()); -} - -TEST_F(ParserImplTest, ImageStorageType_R16Float) { - auto p = parser("r16float"); - auto t = p->expect_texel_format("test"); - EXPECT_FALSE(t.errored); - EXPECT_EQ(t.value, ast::TexelFormat::kR16Float); - EXPECT_FALSE(p->has_error()); -} - -TEST_F(ParserImplTest, ImageStorageType_Rg8Unorm) { - auto p = parser("rg8unorm"); - auto t = p->expect_texel_format("test"); - EXPECT_FALSE(t.errored); - EXPECT_EQ(t.value, ast::TexelFormat::kRg8Unorm); - EXPECT_FALSE(p->has_error()); -} - -TEST_F(ParserImplTest, ImageStorageType_Rg8Snorm) { - auto p = parser("rg8snorm"); - auto t = p->expect_texel_format("test"); - EXPECT_FALSE(t.errored); - EXPECT_EQ(t.value, ast::TexelFormat::kRg8Snorm); - EXPECT_FALSE(p->has_error()); -} - -TEST_F(ParserImplTest, ImageStorageType_Rg8Uint) { - auto p = parser("rg8uint"); - auto t = p->expect_texel_format("test"); - EXPECT_FALSE(t.errored); - EXPECT_EQ(t.value, ast::TexelFormat::kRg8Uint); - EXPECT_FALSE(p->has_error()); -} - -TEST_F(ParserImplTest, ImageStorageType_Rg8Sint) { - auto p = parser("rg8sint"); - auto t = p->expect_texel_format("test"); - EXPECT_FALSE(t.errored); - EXPECT_EQ(t.value, ast::TexelFormat::kRg8Sint); - EXPECT_FALSE(p->has_error()); -} - TEST_F(ParserImplTest, ImageStorageType_R32Uint) { auto p = parser("r32uint"); auto t = p->expect_texel_format("test"); @@ -139,30 +51,6 @@ TEST_F(ParserImplTest, ImageStorageType_R32Float) { EXPECT_FALSE(p->has_error()); } -TEST_F(ParserImplTest, ImageStorageType_Rg16Uint) { - auto p = parser("rg16uint"); - auto t = p->expect_texel_format("test"); - EXPECT_FALSE(t.errored); - EXPECT_EQ(t.value, ast::TexelFormat::kRg16Uint); - EXPECT_FALSE(p->has_error()); -} - -TEST_F(ParserImplTest, ImageStorageType_Rg16Sint) { - auto p = parser("rg16sint"); - auto t = p->expect_texel_format("test"); - EXPECT_FALSE(t.errored); - EXPECT_EQ(t.value, ast::TexelFormat::kRg16Sint); - EXPECT_FALSE(p->has_error()); -} - -TEST_F(ParserImplTest, ImageStorageType_Rg16Float) { - auto p = parser("rg16float"); - auto t = p->expect_texel_format("test"); - EXPECT_FALSE(t.errored); - EXPECT_EQ(t.value, ast::TexelFormat::kRg16Float); - EXPECT_FALSE(p->has_error()); -} - TEST_F(ParserImplTest, ImageStorageType_Rgba8Unorm) { auto p = parser("rgba8unorm"); auto t = p->expect_texel_format("test"); @@ -171,14 +59,6 @@ TEST_F(ParserImplTest, ImageStorageType_Rgba8Unorm) { EXPECT_FALSE(p->has_error()); } -TEST_F(ParserImplTest, ImageStorageType_Rgba8UnormSrgb) { - auto p = parser("rgba8unorm_srgb"); - auto t = p->expect_texel_format("test"); - EXPECT_FALSE(t.errored); - EXPECT_EQ(t.value, ast::TexelFormat::kRgba8UnormSrgb); - EXPECT_FALSE(p->has_error()); -} - TEST_F(ParserImplTest, ImageStorageType_Rgba8Snorm) { auto p = parser("rgba8snorm"); auto t = p->expect_texel_format("test"); @@ -203,38 +83,6 @@ TEST_F(ParserImplTest, ImageStorageType_Rgba8Sint) { EXPECT_FALSE(p->has_error()); } -TEST_F(ParserImplTest, ImageStorageType_Bgra8Unorm) { - auto p = parser("bgra8unorm"); - auto t = p->expect_texel_format("test"); - EXPECT_FALSE(t.errored); - EXPECT_EQ(t.value, ast::TexelFormat::kBgra8Unorm); - EXPECT_FALSE(p->has_error()); -} - -TEST_F(ParserImplTest, ImageStorageType_Bgra8UnormSrgb) { - auto p = parser("bgra8unorm_srgb"); - auto t = p->expect_texel_format("test"); - EXPECT_FALSE(t.errored); - EXPECT_EQ(t.value, ast::TexelFormat::kBgra8UnormSrgb); - EXPECT_FALSE(p->has_error()); -} - -TEST_F(ParserImplTest, ImageStorageType_Rgb10A2Unorm) { - auto p = parser("rgb10a2unorm"); - auto t = p->expect_texel_format("test"); - EXPECT_FALSE(t.errored); - EXPECT_EQ(t.value, ast::TexelFormat::kRgb10A2Unorm); - EXPECT_FALSE(p->has_error()); -} - -TEST_F(ParserImplTest, ImageStorageType_Rg11B10Float) { - auto p = parser("rg11b10float"); - auto t = p->expect_texel_format("test"); - EXPECT_FALSE(t.errored); - EXPECT_EQ(t.value, ast::TexelFormat::kRg11B10Float); - EXPECT_FALSE(p->has_error()); -} - TEST_F(ParserImplTest, ImageStorageType_Rg32Uint) { auto p = parser("rg32uint"); auto t = p->expect_texel_format("test"); diff --git a/src/reader/wgsl/parser_impl_texture_sampler_types_test.cc b/src/reader/wgsl/parser_impl_texture_sampler_types_test.cc index 0b4af5caa6..214bd7221d 100644 --- a/src/reader/wgsl/parser_impl_texture_sampler_types_test.cc +++ b/src/reader/wgsl/parser_impl_texture_sampler_types_test.cc @@ -184,8 +184,8 @@ TEST_F(ParserImplTest, EXPECT_EQ(p->error(), "1:28: expected '>' for multisampled texture type"); } -TEST_F(ParserImplTest, TextureSamplerTypes_StorageTexture_Readonly1dR8Unorm) { - auto p = parser("texture_storage_1d"); +TEST_F(ParserImplTest, TextureSamplerTypes_StorageTexture_Readonly1dRg32Float) { + auto p = parser("texture_storage_1d"); auto t = p->texture_sampler_types(); ASSERT_FALSE(p->has_error()) << p->error(); EXPECT_TRUE(t.matched); @@ -194,14 +194,14 @@ TEST_F(ParserImplTest, TextureSamplerTypes_StorageTexture_Readonly1dR8Unorm) { ASSERT_TRUE(t->Is()); ASSERT_TRUE(t->Is()); - EXPECT_EQ(t->As()->format, ast::TexelFormat::kR8Unorm); + EXPECT_EQ(t->As()->format, ast::TexelFormat::kRg32Float); EXPECT_EQ(t->As()->access, ast::Access::kRead); EXPECT_EQ(t->As()->dim, ast::TextureDimension::k1d); - EXPECT_EQ(t->source.range, (Source::Range{{1u, 1u}, {1u, 34u}})); + EXPECT_EQ(t->source.range, (Source::Range{{1u, 1u}, {1u, 36u}})); } -TEST_F(ParserImplTest, TextureSamplerTypes_StorageTexture_Writeonly2dR16Float) { - auto p = parser("texture_storage_2d"); +TEST_F(ParserImplTest, TextureSamplerTypes_StorageTexture_Writeonly2dR32Uint) { + auto p = parser("texture_storage_2d"); auto t = p->texture_sampler_types(); ASSERT_FALSE(p->has_error()) << p->error(); EXPECT_TRUE(t.matched); @@ -210,10 +210,10 @@ TEST_F(ParserImplTest, TextureSamplerTypes_StorageTexture_Writeonly2dR16Float) { ASSERT_TRUE(t->Is()); ASSERT_TRUE(t->Is()); - EXPECT_EQ(t->As()->format, ast::TexelFormat::kR16Float); + EXPECT_EQ(t->As()->format, ast::TexelFormat::kR32Uint); EXPECT_EQ(t->As()->access, ast::Access::kWrite); EXPECT_EQ(t->As()->dim, ast::TextureDimension::k2d); - EXPECT_EQ(t->source.range, (Source::Range{{1u, 1u}, {1u, 36u}})); + EXPECT_EQ(t->source.range, (Source::Range{{1u, 1u}, {1u, 35u}})); } TEST_F(ParserImplTest, TextureSamplerTypes_StorageTexture_InvalidType) { @@ -226,7 +226,7 @@ TEST_F(ParserImplTest, TextureSamplerTypes_StorageTexture_InvalidType) { } TEST_F(ParserImplTest, TextureSamplerTypes_StorageTexture_InvalidAccess) { - auto p = parser("texture_storage_1d"); + auto p = parser("texture_storage_1d"); auto t = p->texture_sampler_types(); EXPECT_EQ(t.value, nullptr); EXPECT_FALSE(t.matched); @@ -253,7 +253,7 @@ TEST_F(ParserImplTest, TextureSamplerTypes_StorageTexture_MissingLessThan) { } TEST_F(ParserImplTest, TextureSamplerTypes_StorageTexture_MissingGreaterThan) { - auto p = parser("texture_storage_1dtexture_sampler_types(); EXPECT_EQ(t.value, nullptr); EXPECT_FALSE(t.matched); diff --git a/src/resolver/dependency_graph_test.cc b/src/resolver/dependency_graph_test.cc index 7186ef9cff..17364e6a0b 100644 --- a/src/resolver/dependency_graph_test.cc +++ b/src/resolver/dependency_graph_test.cc @@ -1316,7 +1316,7 @@ TEST_F(ResolverDependencyGraphTraversalTest, SymbolsReached) { Global(Sym(), ty.external_texture()); Global(Sym(), ty.multisampled_texture(ast::TextureDimension::k2d, T)); Global(Sym(), ty.storage_texture(ast::TextureDimension::k2d, - ast::TexelFormat::kR16Float, + ast::TexelFormat::kR32Float, ast::Access::kRead)); // Global(Sym(), ty.sampler(ast::SamplerKind::kSampler)); Func(Sym(), {}, ty.void_(), {}); diff --git a/src/resolver/intrinsic_test.cc b/src/resolver/intrinsic_test.cc index ffe9388430..57b0342137 100644 --- a/src/resolver/intrinsic_test.cc +++ b/src/resolver/intrinsic_test.cc @@ -222,7 +222,7 @@ inline std::ostream& operator<<(std::ostream& out, Texture data) { struct TextureTestParams { ast::TextureDimension dim; Texture type = Texture::kF32; - ast::TexelFormat format = ast::TexelFormat::kR16Float; + ast::TexelFormat format = ast::TexelFormat::kR32Float; }; inline std::ostream& operator<<(std::ostream& out, TextureTestParams data) { out << data.dim << "_" << data.type; diff --git a/src/resolver/type_validation_test.cc b/src/resolver/type_validation_test.cc index 9da7dfa7cc..25922468bc 100644 --- a/src/resolver/type_validation_test.cc +++ b/src/resolver/type_validation_test.cc @@ -861,30 +861,12 @@ struct FormatParams { }; static constexpr FormatParams format_cases[] = { - FormatParams{ast::TexelFormat::kBgra8Unorm, false}, - FormatParams{ast::TexelFormat::kBgra8UnormSrgb, false}, - FormatParams{ast::TexelFormat::kR16Float, false}, - FormatParams{ast::TexelFormat::kR16Sint, false}, - FormatParams{ast::TexelFormat::kR16Uint, false}, FormatParams{ast::TexelFormat::kR32Float, true}, FormatParams{ast::TexelFormat::kR32Sint, true}, FormatParams{ast::TexelFormat::kR32Uint, true}, - FormatParams{ast::TexelFormat::kR8Sint, false}, - FormatParams{ast::TexelFormat::kR8Snorm, false}, - FormatParams{ast::TexelFormat::kR8Uint, false}, - FormatParams{ast::TexelFormat::kR8Unorm, false}, - FormatParams{ast::TexelFormat::kRg11B10Float, false}, - FormatParams{ast::TexelFormat::kRg16Float, false}, - FormatParams{ast::TexelFormat::kRg16Sint, false}, - FormatParams{ast::TexelFormat::kRg16Uint, false}, FormatParams{ast::TexelFormat::kRg32Float, true}, FormatParams{ast::TexelFormat::kRg32Sint, true}, FormatParams{ast::TexelFormat::kRg32Uint, true}, - FormatParams{ast::TexelFormat::kRg8Sint, false}, - FormatParams{ast::TexelFormat::kRg8Snorm, false}, - FormatParams{ast::TexelFormat::kRg8Uint, false}, - FormatParams{ast::TexelFormat::kRg8Unorm, false}, - FormatParams{ast::TexelFormat::kRgb10A2Unorm, false}, FormatParams{ast::TexelFormat::kRgba16Float, true}, FormatParams{ast::TexelFormat::kRgba16Sint, true}, FormatParams{ast::TexelFormat::kRgba16Uint, true}, @@ -894,8 +876,7 @@ static constexpr FormatParams format_cases[] = { FormatParams{ast::TexelFormat::kRgba8Sint, true}, FormatParams{ast::TexelFormat::kRgba8Snorm, true}, FormatParams{ast::TexelFormat::kRgba8Uint, true}, - FormatParams{ast::TexelFormat::kRgba8Unorm, true}, - FormatParams{ast::TexelFormat::kRgba8UnormSrgb, false}}; + FormatParams{ast::TexelFormat::kRgba8Unorm, true}}; using StorageTextureFormatTest = ResolverTestWithParam; TEST_P(StorageTextureFormatTest, All) { diff --git a/src/sem/storage_texture_type.cc b/src/sem/storage_texture_type.cc index 8f796dbdd4..6492afd62a 100644 --- a/src/sem/storage_texture_type.cc +++ b/src/sem/storage_texture_type.cc @@ -48,11 +48,7 @@ std::string StorageTexture::FriendlyName(const SymbolTable&) const { sem::Type* StorageTexture::SubtypeFor(ast::TexelFormat format, sem::Manager& type_mgr) { switch (format) { - case ast::TexelFormat::kR8Uint: - case ast::TexelFormat::kR16Uint: - case ast::TexelFormat::kRg8Uint: case ast::TexelFormat::kR32Uint: - case ast::TexelFormat::kRg16Uint: case ast::TexelFormat::kRgba8Uint: case ast::TexelFormat::kRg32Uint: case ast::TexelFormat::kRgba16Uint: @@ -60,11 +56,7 @@ sem::Type* StorageTexture::SubtypeFor(ast::TexelFormat format, return type_mgr.Get(); } - case ast::TexelFormat::kR8Sint: - case ast::TexelFormat::kR16Sint: - case ast::TexelFormat::kRg8Sint: case ast::TexelFormat::kR32Sint: - case ast::TexelFormat::kRg16Sint: case ast::TexelFormat::kRgba8Sint: case ast::TexelFormat::kRg32Sint: case ast::TexelFormat::kRgba16Sint: @@ -72,20 +64,9 @@ sem::Type* StorageTexture::SubtypeFor(ast::TexelFormat format, return type_mgr.Get(); } - case ast::TexelFormat::kR8Unorm: - case ast::TexelFormat::kRg8Unorm: case ast::TexelFormat::kRgba8Unorm: - case ast::TexelFormat::kRgba8UnormSrgb: - case ast::TexelFormat::kBgra8Unorm: - case ast::TexelFormat::kBgra8UnormSrgb: - case ast::TexelFormat::kRgb10A2Unorm: - case ast::TexelFormat::kR8Snorm: - case ast::TexelFormat::kRg8Snorm: case ast::TexelFormat::kRgba8Snorm: - case ast::TexelFormat::kR16Float: case ast::TexelFormat::kR32Float: - case ast::TexelFormat::kRg16Float: - case ast::TexelFormat::kRg11B10Float: case ast::TexelFormat::kRg32Float: case ast::TexelFormat::kRgba16Float: case ast::TexelFormat::kRgba32Float: { diff --git a/src/transform/renamer_test.cc b/src/transform/renamer_test.cc index d32c9f3c5c..7f830430cd 100644 --- a/src/transform/renamer_test.cc +++ b/src/transform/renamer_test.cc @@ -1334,19 +1334,19 @@ INSTANTIATE_TEST_SUITE_P( "ptrdiff_t", "r16snorm", "r16unorm", - // "r8unorm", // Also used in WGSL + "r8unorm", "reference", "rg11b10f", "rg16snorm", "rg16unorm", - // "rg8snorm", // Also used in WGSL - // "rg8unorm", // Also used in WGSL + "rg8snorm", + "rg8unorm", "rgb10a2", "rgb9e5", "rgba16snorm", "rgba16unorm", - // "rgba8snorm", // Also used in WGSL - // "rgba8unorm", // Also used in WGSL + "rgba8snorm", + "rgba8unorm", // "sampler", // Also used in WGSL "short2", "short3", diff --git a/src/writer/spirv/builder.cc b/src/writer/spirv/builder.cc index cec7b773dc..f7f354f1c9 100644 --- a/src/writer/spirv/builder.cc +++ b/src/writer/spirv/builder.cc @@ -4304,74 +4304,20 @@ void Builder::AddInterpolationDecorations(uint32_t id, SpvImageFormat Builder::convert_texel_format_to_spv( const ast::TexelFormat format) { switch (format) { - case ast::TexelFormat::kR8Unorm: - push_capability(SpvCapabilityStorageImageExtendedFormats); - return SpvImageFormatR8; - case ast::TexelFormat::kR8Snorm: - push_capability(SpvCapabilityStorageImageExtendedFormats); - return SpvImageFormatR8Snorm; - case ast::TexelFormat::kR8Uint: - push_capability(SpvCapabilityStorageImageExtendedFormats); - return SpvImageFormatR8ui; - case ast::TexelFormat::kR8Sint: - push_capability(SpvCapabilityStorageImageExtendedFormats); - return SpvImageFormatR8i; - case ast::TexelFormat::kR16Uint: - push_capability(SpvCapabilityStorageImageExtendedFormats); - return SpvImageFormatR16ui; - case ast::TexelFormat::kR16Sint: - push_capability(SpvCapabilityStorageImageExtendedFormats); - return SpvImageFormatR16i; - case ast::TexelFormat::kR16Float: - push_capability(SpvCapabilityStorageImageExtendedFormats); - return SpvImageFormatR16f; - case ast::TexelFormat::kRg8Unorm: - push_capability(SpvCapabilityStorageImageExtendedFormats); - return SpvImageFormatRg8; - case ast::TexelFormat::kRg8Snorm: - push_capability(SpvCapabilityStorageImageExtendedFormats); - return SpvImageFormatRg8Snorm; - case ast::TexelFormat::kRg8Uint: - push_capability(SpvCapabilityStorageImageExtendedFormats); - return SpvImageFormatRg8ui; - case ast::TexelFormat::kRg8Sint: - push_capability(SpvCapabilityStorageImageExtendedFormats); - return SpvImageFormatRg8i; case ast::TexelFormat::kR32Uint: return SpvImageFormatR32ui; case ast::TexelFormat::kR32Sint: return SpvImageFormatR32i; case ast::TexelFormat::kR32Float: return SpvImageFormatR32f; - case ast::TexelFormat::kRg16Uint: - push_capability(SpvCapabilityStorageImageExtendedFormats); - return SpvImageFormatRg16ui; - case ast::TexelFormat::kRg16Sint: - push_capability(SpvCapabilityStorageImageExtendedFormats); - return SpvImageFormatRg16i; - case ast::TexelFormat::kRg16Float: - push_capability(SpvCapabilityStorageImageExtendedFormats); - return SpvImageFormatRg16f; case ast::TexelFormat::kRgba8Unorm: return SpvImageFormatRgba8; - case ast::TexelFormat::kRgba8UnormSrgb: - return SpvImageFormatUnknown; case ast::TexelFormat::kRgba8Snorm: return SpvImageFormatRgba8Snorm; case ast::TexelFormat::kRgba8Uint: return SpvImageFormatRgba8ui; case ast::TexelFormat::kRgba8Sint: return SpvImageFormatRgba8i; - case ast::TexelFormat::kBgra8Unorm: - return SpvImageFormatUnknown; - case ast::TexelFormat::kBgra8UnormSrgb: - return SpvImageFormatUnknown; - case ast::TexelFormat::kRgb10A2Unorm: - push_capability(SpvCapabilityStorageImageExtendedFormats); - return SpvImageFormatRgb10A2; - case ast::TexelFormat::kRg11B10Float: - push_capability(SpvCapabilityStorageImageExtendedFormats); - return SpvImageFormatR11fG11fB10f; case ast::TexelFormat::kRg32Uint: push_capability(SpvCapabilityStorageImageExtendedFormats); return SpvImageFormatRg32ui; diff --git a/src/writer/spirv/builder_format_conversion_test.cc b/src/writer/spirv/builder_format_conversion_test.cc index c7ec41fbfd..0c4b67b65a 100644 --- a/src/writer/spirv/builder_format_conversion_test.cc +++ b/src/writer/spirv/builder_format_conversion_test.cc @@ -51,33 +51,34 @@ INSTANTIATE_TEST_SUITE_P( BuilderTest, ImageFormatConversionTest, testing::Values( - TestData{ast::TexelFormat::kR8Unorm, SpvImageFormatR8, true}, - TestData{ast::TexelFormat::kR8Snorm, SpvImageFormatR8Snorm, true}, - TestData{ast::TexelFormat::kR8Uint, SpvImageFormatR8ui, true}, - TestData{ast::TexelFormat::kR8Sint, SpvImageFormatR8i, true}, - TestData{ast::TexelFormat::kR16Uint, SpvImageFormatR16ui, true}, - TestData{ast::TexelFormat::kR16Sint, SpvImageFormatR16i, true}, - TestData{ast::TexelFormat::kR16Float, SpvImageFormatR16f, true}, - TestData{ast::TexelFormat::kRg8Unorm, SpvImageFormatRg8, true}, - TestData{ast::TexelFormat::kRg8Snorm, SpvImageFormatRg8Snorm, true}, - TestData{ast::TexelFormat::kRg8Uint, SpvImageFormatRg8ui, true}, - TestData{ast::TexelFormat::kRg8Sint, SpvImageFormatRg8i, true}, + /* WGSL unsupported formats + TestData{ast::TexelFormat::kR8Unorm, SpvImageFormatR8, true}, + TestData{ast::TexelFormat::kR8Snorm, SpvImageFormatR8Snorm, true}, + TestData{ast::TexelFormat::kR8Uint, SpvImageFormatR8ui, true}, + TestData{ast::TexelFormat::kR8Sint, SpvImageFormatR8i, true}, + TestData{ast::TexelFormat::kR16Uint, SpvImageFormatR16ui, true}, + TestData{ast::TexelFormat::kR16Sint, SpvImageFormatR16i, true}, + TestData{ast::TexelFormat::kR16Float, SpvImageFormatR16f, true}, + TestData{ast::TexelFormat::kRg8Unorm, SpvImageFormatRg8, true}, + TestData{ast::TexelFormat::kRg8Snorm, SpvImageFormatRg8Snorm, true}, + TestData{ast::TexelFormat::kRg8Uint, SpvImageFormatRg8ui, true}, + TestData{ast::TexelFormat::kRg8Sint, SpvImageFormatRg8i, true}, + TestData{ast::TexelFormat::kRg16Uint, SpvImageFormatRg16ui, true}, + TestData{ast::TexelFormat::kRg16Sint, SpvImageFormatRg16i, true}, + TestData{ast::TexelFormat::kRg16Float, SpvImageFormatRg16f, true}, + TestData{ast::TexelFormat::kRgba8UnormSrgb, SpvImageFormatUnknown}, + TestData{ast::TexelFormat::kBgra8Unorm, SpvImageFormatUnknown}, + TestData{ast::TexelFormat::kBgra8UnormSrgb, SpvImageFormatUnknown}, + TestData{ast::TexelFormat::kRgb10A2Unorm, SpvImageFormatRgb10A2, true}, + TestData{ast::TexelFormat::kRg11B10Float, SpvImageFormatR11fG11fB10f, true}, +*/ TestData{ast::TexelFormat::kR32Uint, SpvImageFormatR32ui}, TestData{ast::TexelFormat::kR32Sint, SpvImageFormatR32i}, TestData{ast::TexelFormat::kR32Float, SpvImageFormatR32f}, - TestData{ast::TexelFormat::kRg16Uint, SpvImageFormatRg16ui, true}, - TestData{ast::TexelFormat::kRg16Sint, SpvImageFormatRg16i, true}, - TestData{ast::TexelFormat::kRg16Float, SpvImageFormatRg16f, true}, TestData{ast::TexelFormat::kRgba8Unorm, SpvImageFormatRgba8}, - TestData{ast::TexelFormat::kRgba8UnormSrgb, SpvImageFormatUnknown}, TestData{ast::TexelFormat::kRgba8Snorm, SpvImageFormatRgba8Snorm}, TestData{ast::TexelFormat::kRgba8Uint, SpvImageFormatRgba8ui}, TestData{ast::TexelFormat::kRgba8Sint, SpvImageFormatRgba8i}, - TestData{ast::TexelFormat::kBgra8Unorm, SpvImageFormatUnknown}, - TestData{ast::TexelFormat::kBgra8UnormSrgb, SpvImageFormatUnknown}, - TestData{ast::TexelFormat::kRgb10A2Unorm, SpvImageFormatRgb10A2, true}, - TestData{ast::TexelFormat::kRg11B10Float, SpvImageFormatR11fG11fB10f, - true}, TestData{ast::TexelFormat::kRg32Uint, SpvImageFormatRg32ui, true}, TestData{ast::TexelFormat::kRg32Sint, SpvImageFormatRg32i, true}, TestData{ast::TexelFormat::kRg32Float, SpvImageFormatRg32f, true}, diff --git a/src/writer/wgsl/generator_impl_type_test.cc b/src/writer/wgsl/generator_impl_type_test.cc index 2b8482606a..236c1b1276 100644 --- a/src/writer/wgsl/generator_impl_type_test.cc +++ b/src/writer/wgsl/generator_impl_type_test.cc @@ -489,32 +489,13 @@ INSTANTIATE_TEST_SUITE_P( WgslGeneratorImplTest, WgslGenerator_ImageFormatTest, testing::Values( - ImageFormatData{ast::TexelFormat::kR8Unorm, "r8unorm"}, - ImageFormatData{ast::TexelFormat::kR8Snorm, "r8snorm"}, - ImageFormatData{ast::TexelFormat::kR8Uint, "r8uint"}, - ImageFormatData{ast::TexelFormat::kR8Sint, "r8sint"}, - ImageFormatData{ast::TexelFormat::kR16Uint, "r16uint"}, - ImageFormatData{ast::TexelFormat::kR16Sint, "r16sint"}, - ImageFormatData{ast::TexelFormat::kR16Float, "r16float"}, - ImageFormatData{ast::TexelFormat::kRg8Unorm, "rg8unorm"}, - ImageFormatData{ast::TexelFormat::kRg8Snorm, "rg8snorm"}, - ImageFormatData{ast::TexelFormat::kRg8Uint, "rg8uint"}, - ImageFormatData{ast::TexelFormat::kRg8Sint, "rg8sint"}, ImageFormatData{ast::TexelFormat::kR32Uint, "r32uint"}, ImageFormatData{ast::TexelFormat::kR32Sint, "r32sint"}, ImageFormatData{ast::TexelFormat::kR32Float, "r32float"}, - ImageFormatData{ast::TexelFormat::kRg16Uint, "rg16uint"}, - ImageFormatData{ast::TexelFormat::kRg16Sint, "rg16sint"}, - ImageFormatData{ast::TexelFormat::kRg16Float, "rg16float"}, ImageFormatData{ast::TexelFormat::kRgba8Unorm, "rgba8unorm"}, - ImageFormatData{ast::TexelFormat::kRgba8UnormSrgb, "rgba8unorm_srgb"}, ImageFormatData{ast::TexelFormat::kRgba8Snorm, "rgba8snorm"}, ImageFormatData{ast::TexelFormat::kRgba8Uint, "rgba8uint"}, ImageFormatData{ast::TexelFormat::kRgba8Sint, "rgba8sint"}, - ImageFormatData{ast::TexelFormat::kBgra8Unorm, "bgra8unorm"}, - ImageFormatData{ast::TexelFormat::kBgra8UnormSrgb, "bgra8unorm_srgb"}, - ImageFormatData{ast::TexelFormat::kRgb10A2Unorm, "rgb10a2unorm"}, - ImageFormatData{ast::TexelFormat::kRg11B10Float, "rg11b10float"}, ImageFormatData{ast::TexelFormat::kRg32Uint, "rg32uint"}, ImageFormatData{ast::TexelFormat::kRg32Sint, "rg32sint"}, ImageFormatData{ast::TexelFormat::kRg32Float, "rg32float"},