[wgsl-reader][wgsl-writer] Support new sampled texture syntax.
This CL updates Tint to support the `texture_1d` format for sampled
textures. This is alongside the old `texture_sampled_1d` to allow
migration time.
The WGSL writer will always output the new form when converting to WGSL.
Bug: tint:286
Change-Id: I96f0308ad3c28ade96bcab7e24aa0b405e3c4f05
Reviewed-on: https://dawn-review.googlesource.com/c/tint/+/31380
Commit-Queue: dan sinclair <dsinclair@chromium.org>
Reviewed-by: Ryan Harrison <rharrison@chromium.org>
diff --git a/Doxyfile b/Doxyfile
index 3fcdc96..0571728 100644
--- a/Doxyfile
+++ b/Doxyfile
@@ -241,12 +241,6 @@
ALIASES =
-# This tag can be used to specify a number of word-keyword mappings (TCL only).
-# A mapping has the form "name=value". For example adding "class=itcl::class"
-# will allow you to use the command class in the itcl::class meaning.
-
-TCL_SUBST =
-
# Set the OPTIMIZE_OUTPUT_FOR_C tag to YES if your project consists of C sources
# only. Doxygen will then generate output that is more tailored for C. For
# instance, some of the names that are used will be different. The list of all
diff --git a/src/reader/wgsl/lexer.cc b/src/reader/wgsl/lexer.cc
index eb29668..a91ff09 100644
--- a/src/reader/wgsl/lexer.cc
+++ b/src/reader/wgsl/lexer.cc
@@ -669,6 +669,22 @@
return {Token::Type::kStruct, source, "struct"};
if (str == "switch")
return {Token::Type::kSwitch, source, "switch"};
+ if (str == "texture_1d")
+ return {Token::Type::kTextureSampled1d, source, "texture_1d"};
+ if (str == "texture_1d_array")
+ return {Token::Type::kTextureSampled1dArray, source, "texture_1d_array"};
+ if (str == "texture_2d")
+ return {Token::Type::kTextureSampled2d, source, "texture_2d"};
+ if (str == "texture_2d_array")
+ return {Token::Type::kTextureSampled2dArray, source, "texture_2d_array"};
+ if (str == "texture_3d")
+ return {Token::Type::kTextureSampled3d, source, "texture_3d"};
+ if (str == "texture_cube")
+ return {Token::Type::kTextureSampledCube, source, "texture_cube"};
+ if (str == "texture_cube_array") {
+ return {Token::Type::kTextureSampledCubeArray, source,
+ "texture_cube_array"};
+ }
if (str == "texture_depth_2d")
return {Token::Type::kTextureDepth2d, source, "texture_depth_2d"};
if (str == "texture_depth_2d_array") {
@@ -687,14 +703,16 @@
}
if (str == "texture_ro_1d")
return {Token::Type::kTextureStorageReadonly1d, source, "texture_ro_1d"};
- if (str == "texture_ro_1d_array")
+ if (str == "texture_ro_1d_array") {
return {Token::Type::kTextureStorageReadonly1dArray, source,
"texture_ro_1d_array"};
+ }
if (str == "texture_ro_2d")
return {Token::Type::kTextureStorageReadonly2d, source, "texture_ro_2d"};
- if (str == "texture_ro_2d_array")
+ if (str == "texture_ro_2d_array") {
return {Token::Type::kTextureStorageReadonly2dArray, source,
"texture_ro_2d_array"};
+ }
if (str == "texture_ro_3d")
return {Token::Type::kTextureStorageReadonly3d, source, "texture_ro_3d"};
if (str == "texture_sampled_1d")
@@ -719,14 +737,16 @@
}
if (str == "texture_wo_1d")
return {Token::Type::kTextureStorageWriteonly1d, source, "texture_wo_1d"};
- if (str == "texture_wo_1d_array")
+ if (str == "texture_wo_1d_array") {
return {Token::Type::kTextureStorageWriteonly1dArray, source,
"texture_wo_1d_array"};
+ }
if (str == "texture_wo_2d")
return {Token::Type::kTextureStorageWriteonly2d, source, "texture_wo_2d"};
- if (str == "texture_wo_2d_array")
+ if (str == "texture_wo_2d_array") {
return {Token::Type::kTextureStorageWriteonly2dArray, source,
"texture_wo_2d_array"};
+ }
if (str == "texture_wo_3d")
return {Token::Type::kTextureStorageWriteonly3d, source, "texture_wo_3d"};
if (str == "true")
diff --git a/src/reader/wgsl/lexer_test.cc b/src/reader/wgsl/lexer_test.cc
index e957cb8..2dcc325 100644
--- a/src/reader/wgsl/lexer_test.cc
+++ b/src/reader/wgsl/lexer_test.cc
@@ -554,6 +554,13 @@
TokenData{"stride", Token::Type::kStride},
TokenData{"struct", Token::Type::kStruct},
TokenData{"switch", Token::Type::kSwitch},
+ TokenData{"texture_1d", Token::Type::kTextureSampled1d},
+ TokenData{"texture_1d_array", Token::Type::kTextureSampled1dArray},
+ TokenData{"texture_2d", Token::Type::kTextureSampled2d},
+ TokenData{"texture_2d_array", Token::Type::kTextureSampled2dArray},
+ TokenData{"texture_3d", Token::Type::kTextureSampled3d},
+ TokenData{"texture_cube", Token::Type::kTextureSampledCube},
+ TokenData{"texture_cube_array", Token::Type::kTextureSampledCubeArray},
TokenData{"texture_depth_2d", Token::Type::kTextureDepth2d},
TokenData{"texture_depth_2d_array", Token::Type::kTextureDepth2dArray},
TokenData{"texture_depth_cube", Token::Type::kTextureDepthCube},
diff --git a/src/reader/wgsl/parser_impl_error_msg_test.cc b/src/reader/wgsl/parser_impl_error_msg_test.cc
index 366f839..dac8e45 100644
--- a/src/reader/wgsl/parser_impl_error_msg_test.cc
+++ b/src/reader/wgsl/parser_impl_error_msg_test.cc
@@ -533,27 +533,48 @@
" ^\n");
}
-TEST_F(ParserImplErrorTest, GlobalDeclSampledTextureMissingLessThan) {
+TEST_F(ParserImplErrorTest, GlobalDeclSampledTextureMissingLessThan_Old) {
EXPECT("var x : texture_sampled_1d;",
"test.wgsl:1:28 error: missing '<' for sampled texture type\n"
"var x : texture_sampled_1d;\n"
" ^\n");
}
-TEST_F(ParserImplErrorTest, GlobalDeclSampledTextureMissingGreaterThan) {
+TEST_F(ParserImplErrorTest, GlobalDeclSampledTextureMissingGreaterThan_Old) {
EXPECT("var x : texture_sampled_1d<f32;",
"test.wgsl:1:32 error: missing '>' for sampled texture type\n"
"var x : texture_sampled_1d<f32;\n"
" ^\n");
}
-TEST_F(ParserImplErrorTest, GlobalDeclSampledTextureInvalidSubtype) {
+TEST_F(ParserImplErrorTest, GlobalDeclSampledTextureInvalidSubtype_Old) {
EXPECT("var x : texture_sampled_1d<1>;",
"test.wgsl:1:28 error: invalid subtype for sampled texture type\n"
"var x : texture_sampled_1d<1>;\n"
" ^\n");
}
+TEST_F(ParserImplErrorTest, GlobalDeclSampledTextureMissingLessThan) {
+ EXPECT("var x : texture_1d;",
+ "test.wgsl:1:20 error: missing '<' for sampled texture type\n"
+ "var x : texture_1d;\n"
+ " ^\n");
+}
+
+TEST_F(ParserImplErrorTest, GlobalDeclSampledTextureMissingGreaterThan) {
+ EXPECT("var x : texture_1d<f32;",
+ "test.wgsl:1:24 error: missing '>' for sampled texture type\n"
+ "var x : texture_1d<f32;\n"
+ " ^\n");
+}
+
+TEST_F(ParserImplErrorTest, GlobalDeclSampledTextureInvalidSubtype) {
+ EXPECT("var x : texture_1d<1>;",
+ "test.wgsl:1:20 error: invalid subtype for sampled texture type\n"
+ "var x : texture_1d<1>;\n"
+ " ^\n");
+}
+
TEST_F(ParserImplErrorTest, GlobalDeclMultisampledTextureMissingLessThan) {
EXPECT("var x : texture_multisampled_2d;",
"test.wgsl:1:33 error: missing '<' for multisampled texture type\n"
diff --git a/src/reader/wgsl/parser_impl_sampled_texture_type_test.cc b/src/reader/wgsl/parser_impl_sampled_texture_type_test.cc
index 6e838a2..c0d6895 100644
--- a/src/reader/wgsl/parser_impl_sampled_texture_type_test.cc
+++ b/src/reader/wgsl/parser_impl_sampled_texture_type_test.cc
@@ -29,55 +29,104 @@
EXPECT_FALSE(p->has_error());
}
-TEST_F(ParserImplTest, SampledTextureType_1d) {
+TEST_F(ParserImplTest, SampledTextureType_1d_Old) {
auto* p = parser("texture_sampled_1d");
auto t = p->sampled_texture_type();
EXPECT_EQ(t, ast::type::TextureDimension::k1d);
EXPECT_FALSE(p->has_error());
}
-TEST_F(ParserImplTest, SampledTextureType_1dArray) {
+TEST_F(ParserImplTest, SampledTextureType_1dArray_Old) {
auto* p = parser("texture_sampled_1d_array");
auto t = p->sampled_texture_type();
EXPECT_EQ(t, ast::type::TextureDimension::k1dArray);
EXPECT_FALSE(p->has_error());
}
-TEST_F(ParserImplTest, SampledTextureType_2d) {
+TEST_F(ParserImplTest, SampledTextureType_2d_Old) {
auto* p = parser("texture_sampled_2d");
auto t = p->sampled_texture_type();
EXPECT_EQ(t, ast::type::TextureDimension::k2d);
EXPECT_FALSE(p->has_error());
}
-TEST_F(ParserImplTest, SampledTextureType_2dArray) {
+TEST_F(ParserImplTest, SampledTextureType_2dArray_Old) {
auto* p = parser("texture_sampled_2d_array");
auto t = p->sampled_texture_type();
EXPECT_EQ(t, ast::type::TextureDimension::k2dArray);
EXPECT_FALSE(p->has_error());
}
-TEST_F(ParserImplTest, SampledTextureType_3d) {
+TEST_F(ParserImplTest, SampledTextureType_3d_Old) {
auto* p = parser("texture_sampled_3d");
auto t = p->sampled_texture_type();
EXPECT_EQ(t, ast::type::TextureDimension::k3d);
EXPECT_FALSE(p->has_error());
}
-TEST_F(ParserImplTest, SampledTextureType_Cube) {
+TEST_F(ParserImplTest, SampledTextureType_Cube_Old) {
auto* p = parser("texture_sampled_cube");
auto t = p->sampled_texture_type();
EXPECT_EQ(t, ast::type::TextureDimension::kCube);
EXPECT_FALSE(p->has_error());
}
-TEST_F(ParserImplTest, SampledTextureType_kCubeArray) {
+TEST_F(ParserImplTest, SampledTextureType_kCubeArray_Old) {
auto* p = parser("texture_sampled_cube_array");
auto t = p->sampled_texture_type();
EXPECT_EQ(t, ast::type::TextureDimension::kCubeArray);
EXPECT_FALSE(p->has_error());
}
+TEST_F(ParserImplTest, SampledTextureType_1d) {
+ auto* p = parser("texture_1d");
+ auto t = p->sampled_texture_type();
+ EXPECT_EQ(t, ast::type::TextureDimension::k1d);
+ EXPECT_FALSE(p->has_error());
+}
+
+TEST_F(ParserImplTest, SampledTextureType_1dArray) {
+ auto* p = parser("texture_1d_array");
+ auto t = p->sampled_texture_type();
+ EXPECT_EQ(t, ast::type::TextureDimension::k1dArray);
+ EXPECT_FALSE(p->has_error());
+}
+
+TEST_F(ParserImplTest, SampledTextureType_2d) {
+ auto* p = parser("texture_2d");
+ auto t = p->sampled_texture_type();
+ EXPECT_EQ(t, ast::type::TextureDimension::k2d);
+ EXPECT_FALSE(p->has_error());
+}
+
+TEST_F(ParserImplTest, SampledTextureType_2dArray) {
+ auto* p = parser("texture_2d_array");
+ auto t = p->sampled_texture_type();
+ EXPECT_EQ(t, ast::type::TextureDimension::k2dArray);
+ EXPECT_FALSE(p->has_error());
+}
+
+TEST_F(ParserImplTest, SampledTextureType_3d) {
+ auto* p = parser("texture_3d");
+ auto t = p->sampled_texture_type();
+ EXPECT_EQ(t, ast::type::TextureDimension::k3d);
+ EXPECT_FALSE(p->has_error());
+}
+
+TEST_F(ParserImplTest, SampledTextureType_Cube) {
+ auto* p = parser("texture_cube");
+ auto t = p->sampled_texture_type();
+ EXPECT_EQ(t, ast::type::TextureDimension::kCube);
+ EXPECT_FALSE(p->has_error());
+}
+
+TEST_F(ParserImplTest, SampledTextureType_kCubeArray) {
+ auto* p = parser("texture_cube_array");
+ auto t = p->sampled_texture_type();
+ EXPECT_EQ(t, ast::type::TextureDimension::kCubeArray);
+ EXPECT_FALSE(p->has_error());
+}
+
} // namespace
} // namespace wgsl
} // namespace reader
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 22c1e6c..00005ad 100644
--- a/src/reader/wgsl/parser_impl_texture_sampler_types_test.cc
+++ b/src/reader/wgsl/parser_impl_texture_sampler_types_test.cc
@@ -59,7 +59,7 @@
EXPECT_EQ(t->AsTexture()->dim(), ast::type::TextureDimension::k2d);
}
-TEST_F(ParserImplTest, TextureSamplerTypes_SampledTexture_F32) {
+TEST_F(ParserImplTest, TextureSamplerTypes_SampledTexture_F32_Old) {
auto* p = parser("texture_sampled_1d<f32>");
auto* t = p->texture_sampler_types();
ASSERT_FALSE(p->has_error()) << p->error();
@@ -70,7 +70,7 @@
EXPECT_EQ(t->AsTexture()->dim(), ast::type::TextureDimension::k1d);
}
-TEST_F(ParserImplTest, TextureSamplerTypes_SampledTexture_I32) {
+TEST_F(ParserImplTest, TextureSamplerTypes_SampledTexture_I32_Old) {
auto* p = parser("texture_sampled_2d<i32>");
auto* t = p->texture_sampler_types();
ASSERT_FALSE(p->has_error()) << p->error();
@@ -81,7 +81,7 @@
EXPECT_EQ(t->AsTexture()->dim(), ast::type::TextureDimension::k2d);
}
-TEST_F(ParserImplTest, TextureSamplerTypes_SampledTexture_U32) {
+TEST_F(ParserImplTest, TextureSamplerTypes_SampledTexture_U32_Old) {
auto* p = parser("texture_sampled_3d<u32>");
auto* t = p->texture_sampler_types();
ASSERT_FALSE(p->has_error()) << p->error();
@@ -92,7 +92,7 @@
EXPECT_EQ(t->AsTexture()->dim(), ast::type::TextureDimension::k3d);
}
-TEST_F(ParserImplTest, TextureSamplerTypes_SampledTexture_Invalid) {
+TEST_F(ParserImplTest, TextureSamplerTypes_SampledTexture_Invalid_Old) {
auto* p = parser("texture_sampled_1d<abc>");
auto* t = p->texture_sampler_types();
ASSERT_TRUE(p->has_error());
@@ -100,7 +100,7 @@
EXPECT_EQ(p->error(), "1:20: unknown constructed type 'abc'");
}
-TEST_F(ParserImplTest, TextureSamplerTypes_SampledTexture_MissingType) {
+TEST_F(ParserImplTest, TextureSamplerTypes_SampledTexture_MissingType_Old) {
auto* p = parser("texture_sampled_1d<>");
auto* t = p->texture_sampler_types();
ASSERT_TRUE(p->has_error());
@@ -108,7 +108,7 @@
EXPECT_EQ(p->error(), "1:20: invalid subtype for sampled texture type");
}
-TEST_F(ParserImplTest, TextureSamplerTypes_SampledTexture_MissingLessThan) {
+TEST_F(ParserImplTest, TextureSamplerTypes_SampledTexture_MissingLessThan_Old) {
auto* p = parser("texture_sampled_1d");
auto* t = p->texture_sampler_types();
ASSERT_TRUE(p->has_error());
@@ -116,7 +116,8 @@
EXPECT_EQ(p->error(), "1:19: missing '<' for sampled texture type");
}
-TEST_F(ParserImplTest, TextureSamplerTypes_SampledTexture_MissingGreaterThan) {
+TEST_F(ParserImplTest,
+ TextureSamplerTypes_SampledTexture_MissingGreaterThan_Old) {
auto* p = parser("texture_sampled_1d<u32");
auto* t = p->texture_sampler_types();
ASSERT_TRUE(p->has_error());
@@ -124,6 +125,71 @@
EXPECT_EQ(p->error(), "1:23: missing '>' for sampled texture type");
}
+TEST_F(ParserImplTest, TextureSamplerTypes_SampledTexture_F32) {
+ auto* p = parser("texture_1d<f32>");
+ auto* t = p->texture_sampler_types();
+ ASSERT_FALSE(p->has_error()) << p->error();
+ ASSERT_NE(t, nullptr);
+ ASSERT_TRUE(t->IsTexture());
+ ASSERT_TRUE(t->AsTexture()->IsSampled());
+ ASSERT_TRUE(t->AsTexture()->AsSampled()->type()->IsF32());
+ EXPECT_EQ(t->AsTexture()->dim(), ast::type::TextureDimension::k1d);
+}
+
+TEST_F(ParserImplTest, TextureSamplerTypes_SampledTexture_I32) {
+ auto* p = parser("texture_2d<i32>");
+ auto* t = p->texture_sampler_types();
+ ASSERT_FALSE(p->has_error()) << p->error();
+ ASSERT_NE(t, nullptr);
+ ASSERT_TRUE(t->IsTexture());
+ ASSERT_TRUE(t->AsTexture()->IsSampled());
+ ASSERT_TRUE(t->AsTexture()->AsSampled()->type()->IsI32());
+ EXPECT_EQ(t->AsTexture()->dim(), ast::type::TextureDimension::k2d);
+}
+
+TEST_F(ParserImplTest, TextureSamplerTypes_SampledTexture_U32) {
+ auto* p = parser("texture_3d<u32>");
+ auto* t = p->texture_sampler_types();
+ ASSERT_FALSE(p->has_error()) << p->error();
+ ASSERT_NE(t, nullptr);
+ ASSERT_TRUE(t->IsTexture());
+ ASSERT_TRUE(t->AsTexture()->IsSampled());
+ ASSERT_TRUE(t->AsTexture()->AsSampled()->type()->IsU32());
+ EXPECT_EQ(t->AsTexture()->dim(), ast::type::TextureDimension::k3d);
+}
+
+TEST_F(ParserImplTest, TextureSamplerTypes_SampledTexture_Invalid) {
+ auto* p = parser("texture_1d<abc>");
+ auto* t = p->texture_sampler_types();
+ ASSERT_TRUE(p->has_error());
+ EXPECT_EQ(t, nullptr);
+ EXPECT_EQ(p->error(), "1:12: unknown constructed type 'abc'");
+}
+
+TEST_F(ParserImplTest, TextureSamplerTypes_SampledTexture_MissingType) {
+ auto* p = parser("texture_1d<>");
+ auto* t = p->texture_sampler_types();
+ ASSERT_TRUE(p->has_error());
+ EXPECT_EQ(t, nullptr);
+ EXPECT_EQ(p->error(), "1:12: invalid subtype for sampled texture type");
+}
+
+TEST_F(ParserImplTest, TextureSamplerTypes_SampledTexture_MissingLessThan) {
+ auto* p = parser("texture_1d");
+ auto* t = p->texture_sampler_types();
+ ASSERT_TRUE(p->has_error());
+ EXPECT_EQ(t, nullptr);
+ EXPECT_EQ(p->error(), "1:11: missing '<' for sampled texture type");
+}
+
+TEST_F(ParserImplTest, TextureSamplerTypes_SampledTexture_MissingGreaterThan) {
+ auto* p = parser("texture_1d<u32");
+ auto* t = p->texture_sampler_types();
+ ASSERT_TRUE(p->has_error());
+ EXPECT_EQ(t, nullptr);
+ EXPECT_EQ(p->error(), "1:15: missing '>' for sampled texture type");
+}
+
TEST_F(ParserImplTest, TextureSamplerTypes_MultisampledTexture_I32) {
auto* p = parser("texture_multisampled_2d<i32>");
auto* t = p->texture_sampler_types();
diff --git a/src/reader/wgsl/parser_impl_type_decl_test.cc b/src/reader/wgsl/parser_impl_type_decl_test.cc
index ce95238..a3c435b 100644
--- a/src/reader/wgsl/parser_impl_type_decl_test.cc
+++ b/src/reader/wgsl/parser_impl_type_decl_test.cc
@@ -650,7 +650,7 @@
ASSERT_FALSE(t->AsSampler()->IsComparison());
}
-TEST_F(ParserImplTest, TypeDecl_Texture) {
+TEST_F(ParserImplTest, TypeDecl_Texture_Old) {
auto* p = parser("texture_sampled_cube<f32>");
ast::type::F32Type f32;
@@ -665,6 +665,21 @@
ASSERT_TRUE(t->AsTexture()->AsSampled()->type()->IsF32());
}
+TEST_F(ParserImplTest, TypeDecl_Texture) {
+ auto* p = parser("texture_cube<f32>");
+
+ ast::type::F32Type f32;
+ auto* type = tm()->Get(std::make_unique<ast::type::SampledTextureType>(
+ ast::type::TextureDimension::kCube, &f32));
+
+ auto* t = p->type_decl();
+ ASSERT_NE(t, nullptr);
+ EXPECT_EQ(t, type);
+ ASSERT_TRUE(t->IsTexture());
+ ASSERT_TRUE(t->AsTexture()->IsSampled());
+ ASSERT_TRUE(t->AsTexture()->AsSampled()->type()->IsF32());
+}
+
} // namespace
} // namespace wgsl
} // namespace reader
diff --git a/src/reader/wgsl/token.cc b/src/reader/wgsl/token.cc
index 76d88e9..7d4b3df 100644
--- a/src/reader/wgsl/token.cc
+++ b/src/reader/wgsl/token.cc
@@ -300,19 +300,19 @@
case Token::Type::kTextureStorageReadonly3d:
return "texture_ro_3d";
case Token::Type::kTextureSampled1d:
- return "texture_sampled_1d";
+ return "texture_1d";
case Token::Type::kTextureSampled1dArray:
- return "texture_sampled_1d_array";
+ return "texture_1d_array";
case Token::Type::kTextureSampled2d:
- return "texture_sampled_2d";
+ return "texture_2d";
case Token::Type::kTextureSampled2dArray:
- return "texture_sampled_2d_array";
+ return "texture_2d_array";
case Token::Type::kTextureSampled3d:
- return "texture_sampled_3d";
+ return "texture_3d";
case Token::Type::kTextureSampledCube:
- return "texture_sampled_cube";
+ return "texture_cube";
case Token::Type::kTextureSampledCubeArray:
- return "texture_sampled_cube_array";
+ return "texture_cube_array";
case Token::Type::kTextureStorageWriteonly1d:
return "texture_wo_1d";
case Token::Type::kTextureStorageWriteonly1dArray:
diff --git a/src/reader/wgsl/token.h b/src/reader/wgsl/token.h
index e6e5b28..3f60c38 100644
--- a/src/reader/wgsl/token.h
+++ b/src/reader/wgsl/token.h
@@ -310,19 +310,19 @@
kTextureStorageReadonly2dArray,
/// A 'texture_ro_3d'
kTextureStorageReadonly3d,
- /// A 'texture_sampled_1d'
+ /// A 'texture_1d'
kTextureSampled1d,
- /// A 'texture_sampled_1d_array'
+ /// A 'texture_1d_array'
kTextureSampled1dArray,
- /// A 'texture_sampled_2d'
+ /// A 'texture_2d'
kTextureSampled2d,
- /// A 'texture_sampled_2d_array'
+ /// A 'texture_2d_array'
kTextureSampled2dArray,
- /// A 'texture_sampled_3d'
+ /// A 'texture_3d'
kTextureSampled3d,
- /// A 'texture_sampled_cube'
+ /// A 'texture_cube'
kTextureSampledCube,
- /// A 'texture_sampled_cube_array'
+ /// A 'texture_cube_array'
kTextureSampledCubeArray,
/// A 'texture_wo_1d'
kTextureStorageWriteonly1d,
@@ -709,25 +709,25 @@
bool IsTextureStorageReadonly3d() const {
return type_ == Type::kTextureStorageReadonly3d;
}
- /// @returns true if token is a 'texture_sampled_1d'
+ /// @returns true if token is a 'texture_1d'
bool IsTextureSampled1d() const { return type_ == Type::kTextureSampled1d; }
- /// @returns true if token is a 'texture_sampled_1d_array'
+ /// @returns true if token is a 'texture_1d_array'
bool IsTextureSampled1dArray() const {
return type_ == Type::kTextureSampled1dArray;
}
- /// @returns true if token is a 'texture_sampled_2d'
+ /// @returns true if token is a 'texture_2d'
bool IsTextureSampled2d() const { return type_ == Type::kTextureSampled2d; }
- /// @returns true if token is a 'texture_sampled_2d_array'
+ /// @returns true if token is a 'texture_2d_array'
bool IsTextureSampled2dArray() const {
return type_ == Type::kTextureSampled2dArray;
}
- /// @returns true if token is a 'texture_sampled_3d'
+ /// @returns true if token is a 'texture_3d'
bool IsTextureSampled3d() const { return type_ == Type::kTextureSampled3d; }
- /// @returns true if token is a 'texture_sampled_cube'
+ /// @returns true if token is a 'texture_cube'
bool IsTextureSampledCube() const {
return type_ == Type::kTextureSampledCube;
}
- /// @returns true if token is a 'texture_sampled_cube_array'
+ /// @returns true if token is a 'texture_cube_array'
bool IsTextureSampledCubeArray() const {
return type_ == Type::kTextureSampledCubeArray;
}
diff --git a/src/writer/wgsl/generator_impl.cc b/src/writer/wgsl/generator_impl.cc
index 50c378b..6e6cdaf 100644
--- a/src/writer/wgsl/generator_impl.cc
+++ b/src/writer/wgsl/generator_impl.cc
@@ -459,7 +459,7 @@
if (texture->IsDepth()) {
out_ << "depth_";
} else if (texture->IsSampled()) {
- out_ << "sampled_";
+ /* nothing to emit */
} else if (texture->IsMultisampled()) {
out_ << "multisampled_";
} else if (texture->IsStorage()) {
diff --git a/src/writer/wgsl/generator_impl_type_test.cc b/src/writer/wgsl/generator_impl_type_test.cc
index 706f332..0566d21 100644
--- a/src/writer/wgsl/generator_impl_type_test.cc
+++ b/src/writer/wgsl/generator_impl_type_test.cc
@@ -318,16 +318,14 @@
WgslGeneratorImplTest,
WgslGenerator_SampledTextureTest,
testing::Values(
- TextureData{ast::type::TextureDimension::k1d, "texture_sampled_1d"},
- TextureData{ast::type::TextureDimension::k1dArray,
- "texture_sampled_1d_array"},
- TextureData{ast::type::TextureDimension::k2d, "texture_sampled_2d"},
- TextureData{ast::type::TextureDimension::k2dArray,
- "texture_sampled_2d_array"},
- TextureData{ast::type::TextureDimension::k3d, "texture_sampled_3d"},
- TextureData{ast::type::TextureDimension::kCube, "texture_sampled_cube"},
+ TextureData{ast::type::TextureDimension::k1d, "texture_1d"},
+ TextureData{ast::type::TextureDimension::k1dArray, "texture_1d_array"},
+ TextureData{ast::type::TextureDimension::k2d, "texture_2d"},
+ TextureData{ast::type::TextureDimension::k2dArray, "texture_2d_array"},
+ TextureData{ast::type::TextureDimension::k3d, "texture_3d"},
+ TextureData{ast::type::TextureDimension::kCube, "texture_cube"},
TextureData{ast::type::TextureDimension::kCubeArray,
- "texture_sampled_cube_array"}));
+ "texture_cube_array"}));
using WgslGenerator_MultiampledTextureTest =
testing::TestWithParam<TextureData>;