Sync reserved token list to WGSL spec.
This CL updates the list of reserved words to match the WGSL spec. The use of a reserved word is changed from an error to a deprecation at the moment be cause the majority of the list would be new errors. Bug: tint:1633 tint:1624 Change-Id: I498db41689cdd666dfb291b1a6761a1182c87ec8 Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/98042 Reviewed-by: David Neto <dneto@google.com> Reviewed-by: Ben Clayton <bclayton@chromium.org> Commit-Queue: Dan Sinclair <dsinclair@chromium.org> Kokoro: Kokoro <noreply+kokoro@google.com>
This commit is contained in:
parent
cc5dc15304
commit
6f8d945dd6
|
@ -1195,9 +1195,6 @@ Token Lexer::check_keyword(const Source& source, std::string_view str) {
|
|||
if (str == "if") {
|
||||
return {Token::Type::kIf, source, "if"};
|
||||
}
|
||||
if (str == "import") {
|
||||
return {Token::Type::kImport, source, "import"};
|
||||
}
|
||||
if (str == "let") {
|
||||
return {Token::Type::kLet, source, "let"};
|
||||
}
|
||||
|
|
|
@ -1129,7 +1129,6 @@ INSTANTIATE_TEST_SUITE_P(
|
|||
TokenData{"for", Token::Type::kFor},
|
||||
TokenData{"i32", Token::Type::kI32},
|
||||
TokenData{"if", Token::Type::kIf},
|
||||
TokenData{"import", Token::Type::kImport},
|
||||
TokenData{"let", Token::Type::kLet},
|
||||
TokenData{"loop", Token::Type::kLoop},
|
||||
TokenData{"mat2x2", Token::Type::kMat2x2},
|
||||
|
|
|
@ -84,10 +84,40 @@ const char kWorkgroupSizeAttribute[] = "workgroup_size";
|
|||
|
||||
// https://gpuweb.github.io/gpuweb/wgsl.html#reserved-keywords
|
||||
bool is_reserved(const Token& t) {
|
||||
return t == "asm" || t == "bf16" || t == "do" || t == "enum" || t == "f64" || t == "handle" ||
|
||||
t == "i8" || t == "i16" || t == "i64" || t == "mat" || t == "premerge" ||
|
||||
t == "regardless" || t == "typedef" || t == "u8" || t == "u16" || t == "u64" ||
|
||||
t == "unless" || t == "using" || t == "vec" || t == "void" || t == "while";
|
||||
return t == "CompileShader" || t == "ComputeShader" || t == "DomainShader" ||
|
||||
t == "GeometryShader" || t == "Hullshader" || t == "NULL" || t == "Self" ||
|
||||
t == "abstract" || t == "active" || t == "alignas" || t == "alignof" || t == "as" ||
|
||||
t == "asm" || t == "asm_fragment" || t == "async" || t == "attribute" || t == "auto" ||
|
||||
t == "await" || t == "become" || t == "binding_array" || t == "cast" || t == "catch" ||
|
||||
t == "class" || t == "co_await" || t == "co_return" || t == "co_yield" ||
|
||||
t == "coherent" || t == "column_major" || t == "common" || t == "compile" ||
|
||||
t == "compile_fragment" || t == "concept" || t == "const_cast" || t == "consteval" ||
|
||||
t == "constexpr" || t == "constinit" || t == "crate" || t == "debugger" ||
|
||||
t == "decltype" || t == "delete" || t == "demote" || t == "demote_to_helper" ||
|
||||
t == "do" || t == "dynamic_cast" || t == "enum" || t == "explicit" || t == "export" ||
|
||||
t == "extends" || t == "extern" || t == "external" || t == "filter" || t == "final" ||
|
||||
t == "finally" || t == "friend" || t == "from" || t == "fxgroup" || t == "get" ||
|
||||
t == "goto" || t == "groupshared" || t == "handle" || t == "highp" || t == "impl" ||
|
||||
t == "implements" || t == "import" || t == "inline" || t == "inout" ||
|
||||
t == "instanceof" || t == "interface" || t == "invariant" || t == "layout" ||
|
||||
t == "line" || t == "lineadj" || t == "lowp" || t == "macro" || t == "macro_rules" ||
|
||||
t == "match" || t == "mediump" || t == "meta" || t == "mod" || t == "module" ||
|
||||
t == "move" || t == "mut" || t == "mutable" || t == "namespace" || t == "new" ||
|
||||
t == "nil" || t == "noexcept" || t == "noinline" || t == "nointerpolation" ||
|
||||
t == "noperspective" || t == "null" || t == "nullptr" || t == "of" || t == "operator" ||
|
||||
t == "package" || t == "packoffset" || t == "partition" || t == "pass" || t == "patch" ||
|
||||
t == "pixelfragment" || t == "point" || t == "precise" || t == "precision" ||
|
||||
t == "premerge" || t == "priv" || t == "protected" || t == "pub" || t == "public" ||
|
||||
t == "readonly" || t == "ref" || t == "regardless" || t == "register" ||
|
||||
t == "reinterpret_cast" || t == "requires" || t == "resource" || t == "restrict" ||
|
||||
t == "self" || t == "set" || t == "shared" || t == "signed" || t == "sizeof" ||
|
||||
t == "smooth" || t == "snorm" || t == "static" || t == "static_assert" ||
|
||||
t == "static_cast" || t == "std" || t == "subroutine" || t == "super" || t == "target" ||
|
||||
t == "template" || t == "this" || t == "thread_local" || t == "throw" || t == "trait" ||
|
||||
t == "try" || t == "typedef" || t == "typeid" || t == "typename" || t == "typeof" ||
|
||||
t == "union" || t == "unless" || t == "unorm" || t == "unsafe" || t == "unsized" ||
|
||||
t == "use" || t == "using" || t == "varying" || t == "virtual" || t == "volatile" ||
|
||||
t == "wgsl" || t == "where" || t == "with" || t == "writeonly" || t == "yield";
|
||||
}
|
||||
|
||||
/// Enter-exit counters for block token types.
|
||||
|
@ -3441,7 +3471,7 @@ Expect<std::string> ParserImpl::expect_ident(std::string_view use) {
|
|||
next();
|
||||
|
||||
if (is_reserved(t)) {
|
||||
return add_error(t.source(), "'" + t.to_str() + "' is a reserved keyword");
|
||||
deprecated(t.source(), "'" + t.to_str() + "' is a reserved keyword");
|
||||
}
|
||||
|
||||
return {t.to_str(), t.source()};
|
||||
|
|
|
@ -21,88 +21,233 @@ using ParserImplReservedKeywordTest = ParserImplTestWithParam<std::string>;
|
|||
TEST_P(ParserImplReservedKeywordTest, Function) {
|
||||
auto name = GetParam();
|
||||
auto p = parser("fn " + name + "() {}");
|
||||
EXPECT_FALSE(p->Parse());
|
||||
EXPECT_TRUE(p->has_error());
|
||||
EXPECT_EQ(p->error(), "1:4: '" + name + "' is a reserved keyword");
|
||||
EXPECT_TRUE(p->Parse());
|
||||
EXPECT_FALSE(p->has_error());
|
||||
EXPECT_EQ(p->error(),
|
||||
"1:4: use of deprecated language feature: '" + name + "' is a reserved keyword");
|
||||
}
|
||||
TEST_P(ParserImplReservedKeywordTest, ModuleConst) {
|
||||
auto name = GetParam();
|
||||
auto p = parser("const " + name + " : i32 = 1;");
|
||||
EXPECT_FALSE(p->Parse());
|
||||
EXPECT_TRUE(p->has_error());
|
||||
EXPECT_EQ(p->error(), "1:7: '" + name + "' is a reserved keyword");
|
||||
EXPECT_TRUE(p->Parse());
|
||||
EXPECT_FALSE(p->has_error());
|
||||
EXPECT_EQ(p->error(),
|
||||
"1:7: use of deprecated language feature: '" + name + "' is a reserved keyword");
|
||||
}
|
||||
TEST_P(ParserImplReservedKeywordTest, ModuleVar) {
|
||||
auto name = GetParam();
|
||||
auto p = parser("var " + name + " : i32 = 1;");
|
||||
EXPECT_FALSE(p->Parse());
|
||||
EXPECT_TRUE(p->has_error());
|
||||
EXPECT_EQ(p->error(), "1:5: '" + name + "' is a reserved keyword");
|
||||
EXPECT_TRUE(p->Parse());
|
||||
EXPECT_FALSE(p->has_error());
|
||||
EXPECT_EQ(p->error(),
|
||||
"1:5: use of deprecated language feature: '" + name + "' is a reserved keyword");
|
||||
}
|
||||
TEST_P(ParserImplReservedKeywordTest, FunctionLet) {
|
||||
auto name = GetParam();
|
||||
auto p = parser("fn f() { let " + name + " : i32 = 1; }");
|
||||
EXPECT_FALSE(p->Parse());
|
||||
EXPECT_TRUE(p->has_error());
|
||||
EXPECT_EQ(p->error(), "1:14: '" + name + "' is a reserved keyword");
|
||||
EXPECT_TRUE(p->Parse());
|
||||
EXPECT_FALSE(p->has_error());
|
||||
EXPECT_EQ(p->error(),
|
||||
"1:14: use of deprecated language feature: '" + name + "' is a reserved keyword");
|
||||
}
|
||||
TEST_P(ParserImplReservedKeywordTest, FunctionVar) {
|
||||
auto name = GetParam();
|
||||
auto p = parser("fn f() { var " + name + " : i32 = 1; }");
|
||||
EXPECT_FALSE(p->Parse());
|
||||
EXPECT_TRUE(p->has_error());
|
||||
EXPECT_EQ(p->error(), "1:14: '" + name + "' is a reserved keyword");
|
||||
EXPECT_TRUE(p->Parse());
|
||||
EXPECT_FALSE(p->has_error());
|
||||
EXPECT_EQ(p->error(),
|
||||
"1:14: use of deprecated language feature: '" + name + "' is a reserved keyword");
|
||||
}
|
||||
TEST_P(ParserImplReservedKeywordTest, FunctionParam) {
|
||||
auto name = GetParam();
|
||||
auto p = parser("fn f(" + name + " : i32) {}");
|
||||
EXPECT_FALSE(p->Parse());
|
||||
EXPECT_TRUE(p->has_error());
|
||||
EXPECT_EQ(p->error(), "1:6: '" + name + "' is a reserved keyword");
|
||||
EXPECT_TRUE(p->Parse());
|
||||
EXPECT_FALSE(p->has_error());
|
||||
EXPECT_EQ(p->error(),
|
||||
"1:6: use of deprecated language feature: '" + name + "' is a reserved keyword");
|
||||
}
|
||||
TEST_P(ParserImplReservedKeywordTest, Struct) {
|
||||
auto name = GetParam();
|
||||
auto p = parser("struct " + name + " {};");
|
||||
EXPECT_FALSE(p->Parse());
|
||||
EXPECT_TRUE(p->has_error());
|
||||
EXPECT_EQ(p->error(), "1:8: '" + name + "' is a reserved keyword");
|
||||
EXPECT_TRUE(p->Parse());
|
||||
EXPECT_FALSE(p->has_error());
|
||||
EXPECT_EQ(p->error(),
|
||||
"1:8: use of deprecated language feature: '" + name + "' is a reserved keyword");
|
||||
}
|
||||
TEST_P(ParserImplReservedKeywordTest, StructMember) {
|
||||
auto name = GetParam();
|
||||
auto p = parser("struct S { " + name + " : i32, };");
|
||||
EXPECT_FALSE(p->Parse());
|
||||
EXPECT_TRUE(p->has_error());
|
||||
EXPECT_EQ(p->error(), "1:12: '" + name + "' is a reserved keyword");
|
||||
EXPECT_TRUE(p->Parse());
|
||||
EXPECT_FALSE(p->has_error());
|
||||
EXPECT_EQ(p->error(),
|
||||
"1:12: use of deprecated language feature: '" + name + "' is a reserved keyword");
|
||||
}
|
||||
TEST_P(ParserImplReservedKeywordTest, Alias) {
|
||||
auto name = GetParam();
|
||||
auto p = parser("type " + name + " = i32;");
|
||||
EXPECT_FALSE(p->Parse());
|
||||
EXPECT_TRUE(p->has_error());
|
||||
EXPECT_EQ(p->error(), "1:6: '" + name + "' is a reserved keyword");
|
||||
EXPECT_TRUE(p->Parse());
|
||||
EXPECT_FALSE(p->has_error());
|
||||
EXPECT_EQ(p->error(),
|
||||
"1:6: use of deprecated language feature: '" + name + "' is a reserved keyword");
|
||||
}
|
||||
INSTANTIATE_TEST_SUITE_P(ParserImplReservedKeywordTest,
|
||||
ParserImplReservedKeywordTest,
|
||||
testing::Values("asm",
|
||||
"bf16",
|
||||
testing::Values("ComputeShader",
|
||||
"DomainShader",
|
||||
"GeometryShader",
|
||||
"Hullshader",
|
||||
"NULL",
|
||||
"Self",
|
||||
"abstract",
|
||||
"active",
|
||||
"alignas",
|
||||
"alignof",
|
||||
"as",
|
||||
"asm",
|
||||
"asm_fragment",
|
||||
"async",
|
||||
"attribute",
|
||||
"auto",
|
||||
"await",
|
||||
"become",
|
||||
"binding_array",
|
||||
"cast",
|
||||
"catch",
|
||||
"class",
|
||||
"co_await",
|
||||
"co_return",
|
||||
"co_yield",
|
||||
"coherent",
|
||||
"column_major",
|
||||
"common",
|
||||
"compile",
|
||||
"compile_fragment",
|
||||
"concept",
|
||||
"const_cast",
|
||||
"consteval",
|
||||
"constexpr",
|
||||
"constinit",
|
||||
"crate",
|
||||
"debugger",
|
||||
"decltype",
|
||||
"delete",
|
||||
"demote",
|
||||
"demote_to_helper",
|
||||
"do",
|
||||
"dynamic_cast",
|
||||
"enum",
|
||||
"f64",
|
||||
"explicit",
|
||||
"export",
|
||||
"extends",
|
||||
"extern",
|
||||
"external",
|
||||
"filter",
|
||||
"final",
|
||||
"finally",
|
||||
"friend",
|
||||
"from",
|
||||
"fxgroup",
|
||||
"get",
|
||||
"goto",
|
||||
"groupshared",
|
||||
"handle",
|
||||
"i8",
|
||||
"i16",
|
||||
"i64",
|
||||
"mat",
|
||||
"highp",
|
||||
"impl",
|
||||
"implements",
|
||||
"import",
|
||||
"inline",
|
||||
"inout",
|
||||
"instanceof",
|
||||
"interface",
|
||||
"invariant",
|
||||
"layout",
|
||||
"line",
|
||||
"lineadj",
|
||||
"lowp",
|
||||
"macro",
|
||||
"macro_rules",
|
||||
"match",
|
||||
"mediump",
|
||||
"meta",
|
||||
"mod",
|
||||
"module",
|
||||
"move",
|
||||
"mut",
|
||||
"mutable",
|
||||
"namespace",
|
||||
"new",
|
||||
"nil",
|
||||
"noexcept",
|
||||
"noinline",
|
||||
"nointerpolation",
|
||||
"noperspective",
|
||||
"null",
|
||||
"nullptr",
|
||||
"of",
|
||||
"operator",
|
||||
"package",
|
||||
"packoffset",
|
||||
"partition",
|
||||
"pass",
|
||||
"patch",
|
||||
"pixelfragment",
|
||||
"point",
|
||||
"precise",
|
||||
"precision",
|
||||
"premerge",
|
||||
"priv",
|
||||
"protected",
|
||||
"pub",
|
||||
"public",
|
||||
"readonly",
|
||||
"ref",
|
||||
"regardless",
|
||||
"register",
|
||||
"reinterpret_cast",
|
||||
"requires",
|
||||
"resource",
|
||||
"restrict",
|
||||
"self",
|
||||
"set",
|
||||
"shared",
|
||||
"signed",
|
||||
"sizeof",
|
||||
"smooth",
|
||||
"snorm",
|
||||
"static",
|
||||
"static_assert",
|
||||
"static_cast",
|
||||
"std",
|
||||
"subroutine",
|
||||
"super",
|
||||
"target",
|
||||
"template",
|
||||
"this",
|
||||
"thread_local",
|
||||
"throw",
|
||||
"trait",
|
||||
"try",
|
||||
"typedef",
|
||||
"u8",
|
||||
"u16",
|
||||
"u64",
|
||||
"typeid",
|
||||
"typename",
|
||||
"typeof",
|
||||
"union",
|
||||
"unless",
|
||||
"unorm",
|
||||
"unsafe",
|
||||
"unsized",
|
||||
"use",
|
||||
"using",
|
||||
"vec",
|
||||
"void"));
|
||||
"varying",
|
||||
"virtual",
|
||||
"volatile",
|
||||
"wgsl",
|
||||
"where",
|
||||
"with",
|
||||
"writeonly",
|
||||
"yield"
|
||||
|
||||
));
|
||||
|
||||
} // namespace
|
||||
} // namespace tint::reader::wgsl
|
||||
|
|
|
@ -177,8 +177,6 @@ std::string_view Token::TypeToName(Type type) {
|
|||
return "i32";
|
||||
case Token::Type::kIf:
|
||||
return "if";
|
||||
case Token::Type::kImport:
|
||||
return "import";
|
||||
case Token::Type::kLet:
|
||||
return "let";
|
||||
case Token::Type::kLoop:
|
||||
|
|
|
@ -187,8 +187,6 @@ class Token {
|
|||
kI32,
|
||||
/// A 'if'
|
||||
kIf,
|
||||
/// A 'import'
|
||||
kImport,
|
||||
/// A 'let'
|
||||
kLet,
|
||||
/// A 'loop'
|
||||
|
|
|
@ -328,234 +328,234 @@ fn frag_main() {
|
|||
|
||||
INSTANTIATE_TEST_SUITE_P(RenamerTestGlsl,
|
||||
RenamerTestGlsl,
|
||||
testing::Values("active",
|
||||
// "asm", // WGSL keyword
|
||||
"atomic_uint",
|
||||
"attribute",
|
||||
// "bool", // WGSL keyword
|
||||
// "break", // WGSL keyword
|
||||
"buffer",
|
||||
"bvec2",
|
||||
"bvec3",
|
||||
"bvec4",
|
||||
// "case", // WGSL keyword
|
||||
"cast",
|
||||
"centroid",
|
||||
"class",
|
||||
"coherent",
|
||||
"common",
|
||||
// "const", // WGSL keyword
|
||||
// "continue", // WGSL keyword
|
||||
// "default", // WGSL keyword
|
||||
// "discard", // WGSL keyword
|
||||
"dmat2",
|
||||
"dmat2x2",
|
||||
"dmat2x3",
|
||||
"dmat2x4",
|
||||
"dmat3",
|
||||
"dmat3x2",
|
||||
"dmat3x3",
|
||||
"dmat3x4",
|
||||
"dmat4",
|
||||
"dmat4x2",
|
||||
"dmat4x3",
|
||||
"dmat4x4",
|
||||
// "do", // WGSL keyword
|
||||
"double",
|
||||
"dvec2",
|
||||
"dvec3",
|
||||
"dvec4",
|
||||
// "else" // WGSL keyword
|
||||
// "enum", // WGSL keyword
|
||||
"extern",
|
||||
"external",
|
||||
// "false", // WGSL keyword
|
||||
"filter",
|
||||
"fixed",
|
||||
"flat",
|
||||
"float",
|
||||
// "for", // WGSL keyword
|
||||
"fvec2",
|
||||
"fvec3",
|
||||
"fvec4",
|
||||
"gl_BaseInstance",
|
||||
"gl_BaseVertex",
|
||||
"gl_ClipDistance",
|
||||
"gl_DepthRangeParameters",
|
||||
"gl_DrawID",
|
||||
"gl_FragCoord",
|
||||
"gl_FragDepth",
|
||||
"gl_FrontFacing",
|
||||
"gl_GlobalInvocationID",
|
||||
"gl_InstanceID",
|
||||
"gl_LocalInvocationID",
|
||||
"gl_LocalInvocationIndex",
|
||||
"gl_NumSamples",
|
||||
"gl_NumWorkGroups",
|
||||
"gl_PerVertex",
|
||||
"gl_PointCoord",
|
||||
"gl_PointSize",
|
||||
"gl_Position",
|
||||
"gl_PrimitiveID",
|
||||
"gl_SampleID",
|
||||
"gl_SampleMask",
|
||||
"gl_SampleMaskIn",
|
||||
"gl_SamplePosition",
|
||||
"gl_VertexID",
|
||||
"gl_WorkGroupID",
|
||||
"gl_WorkGroupSize",
|
||||
"goto",
|
||||
"half",
|
||||
"highp",
|
||||
"hvec2",
|
||||
"hvec3",
|
||||
"hvec4",
|
||||
// "if", // WGSL keyword
|
||||
"iimage1D",
|
||||
"iimage1DArray",
|
||||
"iimage2D",
|
||||
"iimage2DArray",
|
||||
"iimage2DMS",
|
||||
"iimage2DMSArray",
|
||||
"iimage2DRect",
|
||||
"iimage3D",
|
||||
"iimageBuffer",
|
||||
"iimageCube",
|
||||
"iimageCubeArray",
|
||||
"image1D",
|
||||
"image1DArray",
|
||||
"image2D",
|
||||
"image2DArray",
|
||||
"image2DMS",
|
||||
"image2DMSArray",
|
||||
"image2DRect",
|
||||
"image3D",
|
||||
"imageBuffer",
|
||||
"imageCube",
|
||||
"imageCubeArray",
|
||||
"in",
|
||||
"inline",
|
||||
"inout",
|
||||
"input",
|
||||
"int",
|
||||
"interface",
|
||||
"invariant",
|
||||
"isampler1D",
|
||||
"isampler1DArray",
|
||||
"isampler2D",
|
||||
"isampler2DArray",
|
||||
"isampler2DMS",
|
||||
"isampler2DMSArray",
|
||||
"isampler2DRect",
|
||||
"isampler3D",
|
||||
"isamplerBuffer",
|
||||
"isamplerCube",
|
||||
"isamplerCubeArray",
|
||||
"ivec2",
|
||||
"ivec3",
|
||||
"ivec4",
|
||||
"layout",
|
||||
"long",
|
||||
"lowp",
|
||||
// "mat2x2", // WGSL keyword
|
||||
// "mat2x3", // WGSL keyword
|
||||
// "mat2x4", // WGSL keyword
|
||||
// "mat2",
|
||||
"mat3",
|
||||
// "mat3x2", // WGSL keyword
|
||||
// "mat3x3", // WGSL keyword
|
||||
// "mat3x4", // WGSL keyword
|
||||
"mat4",
|
||||
// "mat4x2", // WGSL keyword
|
||||
// "mat4x3", // WGSL keyword
|
||||
// "mat4x4", // WGSL keyword
|
||||
"mediump",
|
||||
"namespace",
|
||||
"noinline",
|
||||
"noperspective",
|
||||
"out",
|
||||
"output",
|
||||
"partition",
|
||||
"patch",
|
||||
"precise",
|
||||
"precision",
|
||||
"public",
|
||||
"readonly",
|
||||
"resource",
|
||||
"restrict",
|
||||
// "return", // WGSL keyword
|
||||
"sample",
|
||||
"sampler1D",
|
||||
"sampler1DArray",
|
||||
"sampler1DArrayShadow",
|
||||
"sampler1DShadow",
|
||||
"sampler2D",
|
||||
"sampler2DArray",
|
||||
"sampler2DArrayShadow",
|
||||
"sampler2DMS",
|
||||
"sampler2DMSArray",
|
||||
"sampler2DRect",
|
||||
"sampler2DRectShadow",
|
||||
"sampler2DShadow",
|
||||
"sampler3D",
|
||||
"sampler3DRect",
|
||||
"samplerBuffer",
|
||||
"samplerCube",
|
||||
"samplerCubeArray",
|
||||
"samplerCubeArrayShadow",
|
||||
"samplerCubeShadow",
|
||||
"shared",
|
||||
"short",
|
||||
"sizeof",
|
||||
"smooth",
|
||||
"static",
|
||||
// "struct", // WGSL keyword
|
||||
"subroutine",
|
||||
"superp",
|
||||
// "switch", // WGSL keyword
|
||||
"template",
|
||||
"this",
|
||||
// "true", // WGSL keyword
|
||||
// "typedef", // WGSL keyword
|
||||
"uimage1D",
|
||||
"uimage1DArray",
|
||||
"uimage2D",
|
||||
"uimage2DArray",
|
||||
"uimage2DMS",
|
||||
"uimage2DMSArray",
|
||||
"uimage2DRect",
|
||||
"uimage3D",
|
||||
"uimageBuffer",
|
||||
"uimageCube",
|
||||
"uimageCubeArray",
|
||||
"uint",
|
||||
// "uniform", // WGSL keyword
|
||||
"union",
|
||||
"unsigned",
|
||||
"usampler1D",
|
||||
"usampler1DArray",
|
||||
"usampler2D",
|
||||
"usampler2DArray",
|
||||
"usampler2DMS",
|
||||
"usampler2DMSArray",
|
||||
"usampler2DRect",
|
||||
"usampler3D",
|
||||
"usamplerBuffer",
|
||||
"usamplerCube",
|
||||
"usamplerCubeArray",
|
||||
// "using", // WGSL keyword
|
||||
"uvec2",
|
||||
"uvec3",
|
||||
"uvec4",
|
||||
"varying",
|
||||
// "vec2", // WGSL keyword
|
||||
// "vec3", // WGSL keyword
|
||||
// "vec4", // WGSL keyword
|
||||
// "void", // WGSL keyword
|
||||
"volatile",
|
||||
// "while", // WGSL keyword
|
||||
"writeonly",
|
||||
kUnicodeIdentifier));
|
||||
testing::Values( // "active", // Also reserved in WGSL
|
||||
// "asm", // WGSL keyword
|
||||
"atomic_uint",
|
||||
// "attribute", // Also reserved in WGSL
|
||||
// "bool", // WGSL keyword
|
||||
// "break", // WGSL keyword
|
||||
"buffer",
|
||||
"bvec2",
|
||||
"bvec3",
|
||||
"bvec4",
|
||||
// "case", // WGSL keyword
|
||||
// "cast", // Also reserved in WGSL
|
||||
"centroid",
|
||||
// "class", // Also reserved in WGSL
|
||||
// "coherent", // Also reserved in WGSL
|
||||
// "common", // Also reserved in WGSL
|
||||
// "const", // WGSL keyword
|
||||
// "continue", // WGSL keyword
|
||||
// "default", // WGSL keyword
|
||||
// "discard", // WGSL keyword
|
||||
"dmat2",
|
||||
"dmat2x2",
|
||||
"dmat2x3",
|
||||
"dmat2x4",
|
||||
"dmat3",
|
||||
"dmat3x2",
|
||||
"dmat3x3",
|
||||
"dmat3x4",
|
||||
"dmat4",
|
||||
"dmat4x2",
|
||||
"dmat4x3",
|
||||
"dmat4x4",
|
||||
// "do", // WGSL keyword
|
||||
"double",
|
||||
"dvec2",
|
||||
"dvec3",
|
||||
"dvec4",
|
||||
// "else" // WGSL keyword
|
||||
// "enum", // WGSL keyword
|
||||
// "extern", // Also reserved in WGSL
|
||||
// "external", // Also reserved in WGSL
|
||||
// "false", // WGSL keyword
|
||||
// "filter", // Also reserved in WGSL
|
||||
"fixed",
|
||||
"flat",
|
||||
"float",
|
||||
// "for", // WGSL keyword
|
||||
"fvec2",
|
||||
"fvec3",
|
||||
"fvec4",
|
||||
"gl_BaseInstance",
|
||||
"gl_BaseVertex",
|
||||
"gl_ClipDistance",
|
||||
"gl_DepthRangeParameters",
|
||||
"gl_DrawID",
|
||||
"gl_FragCoord",
|
||||
"gl_FragDepth",
|
||||
"gl_FrontFacing",
|
||||
"gl_GlobalInvocationID",
|
||||
"gl_InstanceID",
|
||||
"gl_LocalInvocationID",
|
||||
"gl_LocalInvocationIndex",
|
||||
"gl_NumSamples",
|
||||
"gl_NumWorkGroups",
|
||||
"gl_PerVertex",
|
||||
"gl_PointCoord",
|
||||
"gl_PointSize",
|
||||
"gl_Position",
|
||||
"gl_PrimitiveID",
|
||||
"gl_SampleID",
|
||||
"gl_SampleMask",
|
||||
"gl_SampleMaskIn",
|
||||
"gl_SamplePosition",
|
||||
"gl_VertexID",
|
||||
"gl_WorkGroupID",
|
||||
"gl_WorkGroupSize",
|
||||
// "goto", // Also reserved in WGSL
|
||||
"half",
|
||||
// "highp", // Also reserved in WGSL
|
||||
"hvec2",
|
||||
"hvec3",
|
||||
"hvec4",
|
||||
// "if", // WGSL keyword
|
||||
"iimage1D",
|
||||
"iimage1DArray",
|
||||
"iimage2D",
|
||||
"iimage2DArray",
|
||||
"iimage2DMS",
|
||||
"iimage2DMSArray",
|
||||
"iimage2DRect",
|
||||
"iimage3D",
|
||||
"iimageBuffer",
|
||||
"iimageCube",
|
||||
"iimageCubeArray",
|
||||
"image1D",
|
||||
"image1DArray",
|
||||
"image2D",
|
||||
"image2DArray",
|
||||
"image2DMS",
|
||||
"image2DMSArray",
|
||||
"image2DRect",
|
||||
"image3D",
|
||||
"imageBuffer",
|
||||
"imageCube",
|
||||
"imageCubeArray",
|
||||
"in",
|
||||
// "inline", // Also reserved in WGSL
|
||||
// "inout", // Also reserved in WGSL
|
||||
"input",
|
||||
"int",
|
||||
// "interface", // Also reserved in WGSL
|
||||
// "invariant", // Also reserved in WGSL
|
||||
"isampler1D",
|
||||
"isampler1DArray",
|
||||
"isampler2D",
|
||||
"isampler2DArray",
|
||||
"isampler2DMS",
|
||||
"isampler2DMSArray",
|
||||
"isampler2DRect",
|
||||
"isampler3D",
|
||||
"isamplerBuffer",
|
||||
"isamplerCube",
|
||||
"isamplerCubeArray",
|
||||
"ivec2",
|
||||
"ivec3",
|
||||
"ivec4",
|
||||
// "layout", // Also reserved in WGSL
|
||||
"long",
|
||||
// "lowp", // Also reserved in WGSL
|
||||
// "mat2x2", // WGSL keyword
|
||||
// "mat2x3", // WGSL keyword
|
||||
// "mat2x4", // WGSL keyword
|
||||
// "mat2",
|
||||
"mat3",
|
||||
// "mat3x2", // WGSL keyword
|
||||
// "mat3x3", // WGSL keyword
|
||||
// "mat3x4", // WGSL keyword
|
||||
"mat4",
|
||||
// "mat4x2", // WGSL keyword
|
||||
// "mat4x3", // WGSL keyword
|
||||
// "mat4x4", // WGSL keyword
|
||||
// "mediump", // Also reserved in WGSL
|
||||
// "namespace", // Also reserved in WGSL
|
||||
// "noinline", // Also reserved in WGSL
|
||||
// "noperspective", // Also reserved in WGSL
|
||||
"out",
|
||||
"output",
|
||||
// "partition", // Also reserved in WGSL
|
||||
// "patch", // Also reserved in WGSL
|
||||
// "precise", // Also reserved in WGSL
|
||||
// "precision", // Also reserved in WGSL
|
||||
// "public", // Also reserved in WGSL
|
||||
// "readonly", // Also reserved in WGSL
|
||||
// "resource", // Also reserved in WGSL
|
||||
// "restrict", // Also reserved in WGSL
|
||||
// "return", // WGSL keyword
|
||||
"sample",
|
||||
"sampler1D",
|
||||
"sampler1DArray",
|
||||
"sampler1DArrayShadow",
|
||||
"sampler1DShadow",
|
||||
"sampler2D",
|
||||
"sampler2DArray",
|
||||
"sampler2DArrayShadow",
|
||||
"sampler2DMS",
|
||||
"sampler2DMSArray",
|
||||
"sampler2DRect",
|
||||
"sampler2DRectShadow",
|
||||
"sampler2DShadow",
|
||||
"sampler3D",
|
||||
"sampler3DRect",
|
||||
"samplerBuffer",
|
||||
"samplerCube",
|
||||
"samplerCubeArray",
|
||||
"samplerCubeArrayShadow",
|
||||
"samplerCubeShadow",
|
||||
// "shared" // Also reserved in WGSL,
|
||||
"short",
|
||||
// "sizeof", // Also reserved in WGSL
|
||||
// "smooth", // Also reserved in WGSL
|
||||
// "static", // Also reserved in WGSL
|
||||
// "struct", // WGSL keyword
|
||||
// "subroutine", // Also reserved in WGSL
|
||||
"superp",
|
||||
// "switch", // WGSL keyword
|
||||
// "template", // Also reserved in WGSL
|
||||
// "this", // Also reserved in WGSL
|
||||
// "true", // WGSL keyword
|
||||
// "typedef", // WGSL keyword
|
||||
"uimage1D",
|
||||
"uimage1DArray",
|
||||
"uimage2D",
|
||||
"uimage2DArray",
|
||||
"uimage2DMS",
|
||||
"uimage2DMSArray",
|
||||
"uimage2DRect",
|
||||
"uimage3D",
|
||||
"uimageBuffer",
|
||||
"uimageCube",
|
||||
"uimageCubeArray",
|
||||
"uint",
|
||||
// "uniform", // WGSL keyword
|
||||
// "union", // Also reserved in WGSL
|
||||
"unsigned",
|
||||
"usampler1D",
|
||||
"usampler1DArray",
|
||||
"usampler2D",
|
||||
"usampler2DArray",
|
||||
"usampler2DMS",
|
||||
"usampler2DMSArray",
|
||||
"usampler2DRect",
|
||||
"usampler3D",
|
||||
"usamplerBuffer",
|
||||
"usamplerCube",
|
||||
"usamplerCubeArray",
|
||||
// "using", // WGSL keyword
|
||||
"uvec2",
|
||||
"uvec3",
|
||||
"uvec4",
|
||||
// "varying", // Also reserved in WGSL
|
||||
// "vec2", // WGSL keyword
|
||||
// "vec3", // WGSL keyword
|
||||
// "vec4", // WGSL keyword
|
||||
// "void", // WGSL keyword
|
||||
// "volatile", // Also reserved in WGSL
|
||||
// "while", // WGSL keyword
|
||||
// "writeonly", // Also reserved in WGSL
|
||||
kUnicodeIdentifier));
|
||||
|
||||
INSTANTIATE_TEST_SUITE_P(RenamerTestHlsl,
|
||||
RenamerTestHlsl,
|
||||
|
@ -575,8 +575,8 @@ INSTANTIATE_TEST_SUITE_P(RenamerTestHlsl,
|
|||
"COLOR",
|
||||
"CheckAccessFullyMapped",
|
||||
"ComparisonFunc",
|
||||
"CompileShader",
|
||||
"ComputeShader",
|
||||
// "CompileShader", // Also reserved in WGSL
|
||||
// "ComputeShader", // Also reserved in WGSL
|
||||
"ConsumeStructuredBuffer",
|
||||
"D3DCOLORtoUBYTE4",
|
||||
"DEPTH",
|
||||
|
@ -584,18 +584,18 @@ INSTANTIATE_TEST_SUITE_P(RenamerTestHlsl,
|
|||
"DepthStencilView",
|
||||
"DeviceMemoryBarrier",
|
||||
"DeviceMemroyBarrierWithGroupSync",
|
||||
"DomainShader",
|
||||
// "DomainShader", // Also reserved in WGSL
|
||||
"EvaluateAttributeAtCentroid",
|
||||
"EvaluateAttributeAtSample",
|
||||
"EvaluateAttributeSnapped",
|
||||
"FOG",
|
||||
"Filter",
|
||||
"GeometryShader",
|
||||
// "GeometryShader", // Also reserved in WGSL
|
||||
"GetRenderTargetSampleCount",
|
||||
"GetRenderTargetSamplePosition",
|
||||
"GroupMemoryBarrier",
|
||||
"GroupMemroyBarrierWithGroupSync",
|
||||
"Hullshader",
|
||||
// "Hullshader", // Also reserved in WGSL
|
||||
"InputPatch",
|
||||
"InterlockedAdd",
|
||||
"InterlockedAnd",
|
||||
|
@ -612,7 +612,7 @@ INSTANTIATE_TEST_SUITE_P(RenamerTestHlsl,
|
|||
"MinLOD",
|
||||
"MipLODBias",
|
||||
"NORMAL",
|
||||
"NULL",
|
||||
// "NULL", // Also reserved in WGSL
|
||||
"Normal",
|
||||
"OutputPatch",
|
||||
"POSITION",
|
||||
|
@ -703,11 +703,11 @@ INSTANTIATE_TEST_SUITE_P(RenamerTestHlsl,
|
|||
// "asin", // WGSL builtin
|
||||
"asint",
|
||||
// "asm", // WGSL keyword
|
||||
"asm_fragment",
|
||||
// "asm_fragment", // Also reserved in WGSL
|
||||
"asuint",
|
||||
// "atan", // WGSL builtin
|
||||
// "atan2", // WGSL builtin
|
||||
"auto",
|
||||
// "auto", // Also reserved in WGSL
|
||||
// "bool", // WGSL keyword
|
||||
"bool1",
|
||||
"bool1x1",
|
||||
|
@ -733,19 +733,19 @@ INSTANTIATE_TEST_SUITE_P(RenamerTestHlsl,
|
|||
// "break", // WGSL keyword
|
||||
// "call", // WGSL builtin
|
||||
// "case", // WGSL keyword
|
||||
"catch",
|
||||
// "catch", // Also reserved in WGSL
|
||||
"cbuffer",
|
||||
// "ceil", // WGSL builtin
|
||||
"centroid",
|
||||
"char",
|
||||
// "clamp", // WGSL builtin
|
||||
"class",
|
||||
// "class", // Also reserved in WGSL
|
||||
"clip",
|
||||
"column_major",
|
||||
"compile",
|
||||
"compile_fragment",
|
||||
// "column_major", // Also reserved in WGSL
|
||||
// "compile", // Also reserved in WGSL
|
||||
// "compile_fragment", // Also reserved in WGSL
|
||||
// "const", // WGSL keyword
|
||||
"const_cast",
|
||||
// "const_cast", // Also reserved in WGSL
|
||||
// "continue", // WGSL keyword
|
||||
// "cos", // WGSL builtin
|
||||
// "cosh", // WGSL builtin
|
||||
|
@ -759,7 +759,7 @@ INSTANTIATE_TEST_SUITE_P(RenamerTestHlsl,
|
|||
"ddy_fine",
|
||||
// "default", // WGSL keyword
|
||||
"degrees",
|
||||
"delete",
|
||||
// "delete", // Also reserved in WGSL
|
||||
// "determinant", // WGSL builtin
|
||||
// "discard", // WGSL keyword
|
||||
// "distance", // WGSL builtin
|
||||
|
@ -808,15 +808,15 @@ INSTANTIATE_TEST_SUITE_P(RenamerTestHlsl,
|
|||
"dword4x2",
|
||||
"dword4x3",
|
||||
"dword4x4",
|
||||
"dynamic_cast",
|
||||
// "dynamic_cast", // Also reserved in WGSL
|
||||
// "else", // WGSL keyword
|
||||
// "enum", // WGSL keyword
|
||||
"errorf",
|
||||
// "exp", // WGSL builtin
|
||||
// "exp2", // WGSL builtin
|
||||
"explicit",
|
||||
"export",
|
||||
"extern",
|
||||
// "explicit", // Also reserved in WGSL
|
||||
// "export", // Also reserved in WGSL
|
||||
// "extern", // Also reserved in WGSL
|
||||
"f16to32",
|
||||
"f32tof16",
|
||||
// "faceforward", // WGSL builtin
|
||||
|
@ -853,11 +853,11 @@ INSTANTIATE_TEST_SUITE_P(RenamerTestHlsl,
|
|||
"forcecase",
|
||||
"frac",
|
||||
// "frexp", // WGSL builtin
|
||||
"friend",
|
||||
// "friend", // Also reserved in WGSL
|
||||
// "fwidth", // WGSL builtin
|
||||
"fxgroup",
|
||||
"goto",
|
||||
"groupshared",
|
||||
// "fxgroup", // Also reserved in WGSL
|
||||
// "goto", // Also reserved in WGSL
|
||||
// "groupshared", // Also reserved in WGSL
|
||||
"half",
|
||||
"half1",
|
||||
"half1x1",
|
||||
|
@ -881,8 +881,8 @@ INSTANTIATE_TEST_SUITE_P(RenamerTestHlsl,
|
|||
"half4x4",
|
||||
// "if", // WGSL keyword
|
||||
// "in", // WGSL keyword
|
||||
"inline",
|
||||
"inout",
|
||||
// "inline", // Also reserved in WGSL
|
||||
// "inout", // Also reserved in WGSL
|
||||
"int",
|
||||
"int1",
|
||||
"int1x1",
|
||||
|
@ -904,15 +904,15 @@ INSTANTIATE_TEST_SUITE_P(RenamerTestHlsl,
|
|||
"int4x2",
|
||||
"int4x3",
|
||||
"int4x4",
|
||||
"interface",
|
||||
// "interface", // Also reserved in WGSL
|
||||
"isfinite",
|
||||
"isinf",
|
||||
"isnan",
|
||||
// "ldexp", // WGSL builtin
|
||||
// "length", // WGSL builtin
|
||||
"lerp",
|
||||
"line",
|
||||
"lineadj",
|
||||
// "line", // Also reserved in WGSL
|
||||
// "lineadj", // Also reserved in WGSL
|
||||
"linear",
|
||||
"lit",
|
||||
// "log", // WGSL builtin
|
||||
|
@ -1032,33 +1032,33 @@ INSTANTIATE_TEST_SUITE_P(RenamerTestHlsl,
|
|||
// "modf", // WGSL builtin
|
||||
"msad4",
|
||||
"mul",
|
||||
"mutable",
|
||||
"namespace",
|
||||
"new",
|
||||
"nointerpolation",
|
||||
// "mutable", // Also reserved in WGSL
|
||||
// "namespace", // Also reserved in WGSL
|
||||
// "new", // Also reserved in WGSL
|
||||
// "nointerpolation", // Also reserved in WGSL
|
||||
"noise",
|
||||
"noperspective",
|
||||
// "noperspective", // Also reserved in WGSL
|
||||
// "normalize", // WGSL builtin
|
||||
"numthreads",
|
||||
"operator",
|
||||
// "operator", // Also reserved in WGSL
|
||||
// "out", // WGSL keyword
|
||||
"packoffset",
|
||||
"pass",
|
||||
"pixelfragment",
|
||||
// "packoffset", // Also reserved in WGSL
|
||||
// "pass", // Also reserved in WGSL
|
||||
// "pixelfragment", // Also reserved in WGSL
|
||||
"pixelshader",
|
||||
"point",
|
||||
// "point", // Also reserved in WGSL
|
||||
// "pow", // WGSL builtin
|
||||
"precise",
|
||||
// "precise", // Also reserved in WGSL
|
||||
"printf",
|
||||
// "private", // WGSL keyword
|
||||
"protected",
|
||||
"public",
|
||||
// "protected", // Also reserved in WGSL
|
||||
// "public", // Also reserved in WGSL
|
||||
"radians",
|
||||
"rcp",
|
||||
// "reflect", // WGSL builtin
|
||||
"refract",
|
||||
"register",
|
||||
"reinterpret_cast",
|
||||
// "register", // Also reserved in WGSL
|
||||
// "reinterpret_cast", // Also reserved in WGSL
|
||||
// "return", // WGSL keyword
|
||||
// "reversebits", // WGSL builtin
|
||||
// "round", // WGSL builtin
|
||||
|
@ -1071,21 +1071,21 @@ INSTANTIATE_TEST_SUITE_P(RenamerTestHlsl,
|
|||
"samplerCUBE",
|
||||
"sampler_state",
|
||||
"saturate",
|
||||
"shared",
|
||||
// "shared", // Also reserved in WGSL
|
||||
"short",
|
||||
// "sign", // WGSL builtin
|
||||
"signed",
|
||||
// "signed", // Also reserved in WGSL
|
||||
// "sin", // WGSL builtin
|
||||
"sincos",
|
||||
// "sinh", // WGSL builtin
|
||||
"sizeof",
|
||||
// "sizeof", // Also reserved in WGSL
|
||||
// "smoothstep", // WGSL builtin
|
||||
"snorm",
|
||||
// "snorm", // Also reserved in WGSL
|
||||
// "sqrt", // WGSL builtin
|
||||
"stateblock",
|
||||
"stateblock_state",
|
||||
"static",
|
||||
"static_cast",
|
||||
// "static", // Also reserved in WGSL
|
||||
// "static_cast", // Also reserved in WGSL
|
||||
// "step", // WGSL builtin
|
||||
"string",
|
||||
// "struct", // WGSL keyword
|
||||
|
@ -1096,7 +1096,7 @@ INSTANTIATE_TEST_SUITE_P(RenamerTestHlsl,
|
|||
"technique",
|
||||
"technique10",
|
||||
"technique11",
|
||||
"template",
|
||||
// "template", // Also reserved in WGSL
|
||||
"tex1D",
|
||||
"tex1Dbias",
|
||||
"tex1Dgrad",
|
||||
|
@ -1127,16 +1127,16 @@ INSTANTIATE_TEST_SUITE_P(RenamerTestHlsl,
|
|||
"texture3D",
|
||||
"textureCube",
|
||||
"textureCubeArray",
|
||||
"this",
|
||||
"throw",
|
||||
// "this", // Also reserved in WGSL
|
||||
// "throw", // Also reserved in WGSL
|
||||
"transpose",
|
||||
"triangle",
|
||||
"triangleadj",
|
||||
// "true", // WGSL keyword
|
||||
// "trunc", // WGSL builtin
|
||||
"try",
|
||||
// "try", // Also reserved in WGSL
|
||||
// "typedef", // WGSL keyword
|
||||
"typename",
|
||||
// "typename", // Also reserved in WGSL
|
||||
"uint",
|
||||
"uint1",
|
||||
"uint1x1",
|
||||
|
@ -1159,17 +1159,17 @@ INSTANTIATE_TEST_SUITE_P(RenamerTestHlsl,
|
|||
"uint4x3",
|
||||
"uint4x4",
|
||||
// "uniform", // WGSL keyword
|
||||
"union",
|
||||
"unorm",
|
||||
// "union", // Also reserved in WGSL
|
||||
// "unorm", // Also reserved in WGSL
|
||||
"unroll",
|
||||
"unsigned",
|
||||
// "using", // WGSL reserved keyword
|
||||
"vector",
|
||||
"vertexfragment",
|
||||
"vertexshader",
|
||||
"virtual",
|
||||
// "virtual", // Also reserved in WGSL
|
||||
// "void", // WGSL keyword
|
||||
"volatile",
|
||||
// "volatile", // Also reserved in WGSL
|
||||
// "while" // WGSL reserved keyword
|
||||
kUnicodeIdentifier));
|
||||
|
||||
|
@ -1178,87 +1178,87 @@ INSTANTIATE_TEST_SUITE_P(
|
|||
RenamerTestMsl,
|
||||
testing::Values(
|
||||
// c++14 spec
|
||||
"alignas",
|
||||
"alignof",
|
||||
// "alignas", // Also reserved in WGSL
|
||||
// "alignof", // Also reserved in WGSL
|
||||
"and",
|
||||
"and_eq",
|
||||
// "asm", // Also reserved in WGSL
|
||||
"auto",
|
||||
// "auto", // Also reserved in WGSL
|
||||
"bitand",
|
||||
"bitor",
|
||||
// "bool", // Also used in WGSL
|
||||
// "break", // Also used in WGSL
|
||||
// "case", // Also used in WGSL
|
||||
"catch",
|
||||
// "catch", // Also reserved in WGSL
|
||||
"char",
|
||||
"char16_t",
|
||||
"char32_t",
|
||||
"class",
|
||||
// "class", // Also reserved in WGSL
|
||||
"compl",
|
||||
// "const", // Also used in WGSL
|
||||
"const_cast",
|
||||
"constexpr",
|
||||
// "const_cast", // Also reserved in WGSL
|
||||
// "constexpr", // Also reserved in WGSL
|
||||
// "continue", // Also used in WGSL
|
||||
"decltype",
|
||||
// "decltype", // Also reserved in WGSL
|
||||
// "default", // Also used in WGSL
|
||||
"delete",
|
||||
// "delete", // Also reserved in WGSL
|
||||
// "do", // Also used in WGSL
|
||||
"double",
|
||||
"dynamic_cast",
|
||||
// "dynamic_cast", // Also reserved in WGSL
|
||||
// "else", // Also used in WGSL
|
||||
// "enum", // Also used in WGSL
|
||||
"explicit",
|
||||
"extern",
|
||||
// "explicit", // Also reserved in WGSL
|
||||
// "extern", // Also reserved in WGSL
|
||||
// "false", // Also used in WGSL
|
||||
"final",
|
||||
// "final", // Also reserved in WGSL
|
||||
"float",
|
||||
// "for", // Also used in WGSL
|
||||
"friend",
|
||||
"goto",
|
||||
// "friend", // Also reserved in WGSL
|
||||
// "goto", // Also reserved in WGSL
|
||||
// "if", // Also used in WGSL
|
||||
"inline",
|
||||
// "inline", // Also reserved in WGSL
|
||||
"int",
|
||||
"long",
|
||||
"mutable",
|
||||
"namespace",
|
||||
"new",
|
||||
"noexcept",
|
||||
// "mutable", // Also reserved in WGSL
|
||||
// "namespace", // Also reserved in WGSL
|
||||
// "new", // Also reserved in WGSL
|
||||
// "noexcept", // Also reserved in WGSL
|
||||
"not",
|
||||
"not_eq",
|
||||
"nullptr",
|
||||
"operator",
|
||||
// "nullptr", // Also reserved in WGSL
|
||||
// "operator", // Also reserved in WGSL
|
||||
"or",
|
||||
"or_eq",
|
||||
// "override", // Also used in WGSL
|
||||
// "private", // Also used in WGSL
|
||||
"protected",
|
||||
"public",
|
||||
"register",
|
||||
"reinterpret_cast",
|
||||
// "protected", // Also reserved in WGSL
|
||||
// "public", // Also reserved in WGSL
|
||||
// "register", // Also reserved in WGSL
|
||||
// "reinterpret_cast", // Also reserved in WGSL
|
||||
// "return", // Also used in WGSL
|
||||
"short",
|
||||
"signed",
|
||||
"sizeof",
|
||||
"static",
|
||||
"static_assert",
|
||||
"static_cast",
|
||||
// "signed", // Also reserved in WGSL
|
||||
// "sizeof", // Also reserved in WGSL
|
||||
// "static", // Also reserved in WGSL
|
||||
// "static_assert", // Also reserved in WGSL
|
||||
// "static_cast", // Also reserved in WGSL
|
||||
// "struct", // Also used in WGSL
|
||||
// "switch", // Also used in WGSL
|
||||
"template",
|
||||
"this",
|
||||
"thread_local",
|
||||
"throw",
|
||||
// "template", // Also reserved in WGSL
|
||||
// "this", // Also reserved in WGSL
|
||||
// "thread_local", // Also reserved in WGSL
|
||||
// "throw", // Also reserved in WGSL
|
||||
// "true", // Also used in WGSL
|
||||
"try",
|
||||
// "try", // Also reserved in WGSL
|
||||
// "typedef", // Also used in WGSL
|
||||
"typeid",
|
||||
"typename",
|
||||
"union",
|
||||
// "typeid", // Also reserved in WGSL
|
||||
// "typename", // Also reserved in WGSL
|
||||
// "union", // Also reserved in WGSL
|
||||
"unsigned",
|
||||
// "using", // WGSL reserved keyword
|
||||
"virtual",
|
||||
// "virtual", // Also reserved in WGSL
|
||||
// "void", // Also used in WGSL
|
||||
"volatile",
|
||||
// "volatile", // Also reserved in WGSL
|
||||
"wchar_t",
|
||||
// "while", // WGSL reserved keyword
|
||||
"xor",
|
||||
|
|
|
@ -2,7 +2,7 @@ type ArrayExplicitStride = array<i32, 2>;
|
|||
type ArrayImplicitStride = array<i32, 2>;
|
||||
|
||||
fn foo() {
|
||||
var explicit : ArrayExplicitStride;
|
||||
var implict : ArrayImplicitStride;
|
||||
implict = explicit;
|
||||
var explicitStride : ArrayExplicitStride;
|
||||
var implictStride : ArrayImplicitStride;
|
||||
implictStride = explicitStride;
|
||||
}
|
||||
|
|
|
@ -4,7 +4,7 @@ void unused_entry_point() {
|
|||
}
|
||||
|
||||
void foo() {
|
||||
int tint_symbol[2] = (int[2])0;
|
||||
int implict[2] = (int[2])0;
|
||||
implict = tint_symbol;
|
||||
int explicitStride[2] = (int[2])0;
|
||||
int implictStride[2] = (int[2])0;
|
||||
implictStride = explicitStride;
|
||||
}
|
||||
|
|
|
@ -4,7 +4,7 @@ void unused_entry_point() {
|
|||
}
|
||||
|
||||
void foo() {
|
||||
int tint_symbol[2] = (int[2])0;
|
||||
int implict[2] = (int[2])0;
|
||||
implict = tint_symbol;
|
||||
int explicitStride[2] = (int[2])0;
|
||||
int implictStride[2] = (int[2])0;
|
||||
implictStride = explicitStride;
|
||||
}
|
||||
|
|
|
@ -5,8 +5,8 @@ void unused_entry_point() {
|
|||
return;
|
||||
}
|
||||
void foo() {
|
||||
int explicit[2] = int[2](0, 0);
|
||||
int implict[2] = int[2](0, 0);
|
||||
implict = explicit;
|
||||
int explicitStride[2] = int[2](0, 0);
|
||||
int implictStride[2] = int[2](0, 0);
|
||||
implictStride = explicitStride;
|
||||
}
|
||||
|
||||
|
|
|
@ -15,8 +15,8 @@ struct tint_array {
|
|||
};
|
||||
|
||||
void foo() {
|
||||
tint_array<int, 2> tint_symbol = {};
|
||||
tint_array<int, 2> implict = {};
|
||||
implict = tint_symbol;
|
||||
tint_array<int, 2> explicitStride = {};
|
||||
tint_array<int, 2> implictStride = {};
|
||||
implictStride = explicitStride;
|
||||
}
|
||||
|
||||
|
|
|
@ -9,8 +9,8 @@
|
|||
OpExecutionMode %unused_entry_point LocalSize 1 1 1
|
||||
OpName %unused_entry_point "unused_entry_point"
|
||||
OpName %foo "foo"
|
||||
OpName %explicit "explicit"
|
||||
OpName %implict "implict"
|
||||
OpName %explicitStride "explicitStride"
|
||||
OpName %implictStride "implictStride"
|
||||
OpDecorate %_arr_int_uint_2 ArrayStride 4
|
||||
%void = OpTypeVoid
|
||||
%1 = OpTypeFunction %void
|
||||
|
@ -26,9 +26,9 @@
|
|||
OpFunctionEnd
|
||||
%foo = OpFunction %void None %1
|
||||
%6 = OpLabel
|
||||
%explicit = OpVariable %_ptr_Function__arr_int_uint_2 Function %13
|
||||
%implict = OpVariable %_ptr_Function__arr_int_uint_2 Function %13
|
||||
%15 = OpLoad %_arr_int_uint_2 %explicit
|
||||
OpStore %implict %15
|
||||
%explicitStride = OpVariable %_ptr_Function__arr_int_uint_2 Function %13
|
||||
%implictStride = OpVariable %_ptr_Function__arr_int_uint_2 Function %13
|
||||
%15 = OpLoad %_arr_int_uint_2 %explicitStride
|
||||
OpStore %implictStride %15
|
||||
OpReturn
|
||||
OpFunctionEnd
|
||||
|
|
|
@ -3,7 +3,7 @@ type ArrayExplicitStride = array<i32, 2>;
|
|||
type ArrayImplicitStride = array<i32, 2>;
|
||||
|
||||
fn foo() {
|
||||
var explicit : ArrayExplicitStride;
|
||||
var implict : ArrayImplicitStride;
|
||||
implict = explicit;
|
||||
var explicitStride : ArrayExplicitStride;
|
||||
var implictStride : ArrayImplicitStride;
|
||||
implictStride = explicitStride;
|
||||
}
|
||||
|
|
|
@ -3,5 +3,5 @@ var<private> I : i32;
|
|||
@compute @workgroup_size(1)
|
||||
fn main() {
|
||||
let i : i32 = I;
|
||||
let use : i32 = i + 1;
|
||||
let u : i32 = i + 1;
|
||||
}
|
||||
|
|
|
@ -2,6 +2,6 @@ static int I = 0;
|
|||
|
||||
[numthreads(1, 1, 1)]
|
||||
void main() {
|
||||
const int use = (I + 1);
|
||||
const int u = (I + 1);
|
||||
return;
|
||||
}
|
||||
|
|
|
@ -2,6 +2,6 @@ static int I = 0;
|
|||
|
||||
[numthreads(1, 1, 1)]
|
||||
void main() {
|
||||
const int use = (I + 1);
|
||||
const int u = (I + 1);
|
||||
return;
|
||||
}
|
||||
|
|
|
@ -2,7 +2,7 @@
|
|||
|
||||
int I = 0;
|
||||
void tint_symbol() {
|
||||
int use = (I + 1);
|
||||
int u = (I + 1);
|
||||
}
|
||||
|
||||
layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
|
||||
|
|
|
@ -4,7 +4,7 @@ using namespace metal;
|
|||
kernel void tint_symbol() {
|
||||
thread int tint_symbol_1 = 0;
|
||||
int const i = tint_symbol_1;
|
||||
int const use = as_type<int>((as_type<uint>(i) + as_type<uint>(1)));
|
||||
int const u = as_type<int>((as_type<uint>(i) + as_type<uint>(1)));
|
||||
return;
|
||||
}
|
||||
|
||||
|
|
|
@ -3,5 +3,5 @@ var<private> I : i32;
|
|||
@compute @workgroup_size(1)
|
||||
fn main() {
|
||||
let i : i32 = I;
|
||||
let use : i32 = (i + 1);
|
||||
let u : i32 = (i + 1);
|
||||
}
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
@compute @workgroup_size(1)
|
||||
fn main() {
|
||||
var i : i32 = 123;
|
||||
let use : i32 = i + 1;
|
||||
let u : i32 = i + 1;
|
||||
}
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
[numthreads(1, 1, 1)]
|
||||
void main() {
|
||||
int i = 123;
|
||||
const int use = (i + 1);
|
||||
const int u = (i + 1);
|
||||
return;
|
||||
}
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
[numthreads(1, 1, 1)]
|
||||
void main() {
|
||||
int i = 123;
|
||||
const int use = (i + 1);
|
||||
const int u = (i + 1);
|
||||
return;
|
||||
}
|
||||
|
|
|
@ -2,7 +2,7 @@
|
|||
|
||||
void tint_symbol() {
|
||||
int i = 123;
|
||||
int use = (i + 1);
|
||||
int u = (i + 1);
|
||||
}
|
||||
|
||||
layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
|
||||
|
|
|
@ -3,7 +3,7 @@
|
|||
using namespace metal;
|
||||
kernel void tint_symbol() {
|
||||
int i = 123;
|
||||
int const use = as_type<int>((as_type<uint>(i) + as_type<uint>(1)));
|
||||
int const u = as_type<int>((as_type<uint>(i) + as_type<uint>(1)));
|
||||
return;
|
||||
}
|
||||
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
@compute @workgroup_size(1)
|
||||
fn main() {
|
||||
var i : i32 = 123;
|
||||
let use : i32 = (i + 1);
|
||||
let u : i32 = (i + 1);
|
||||
}
|
||||
|
|
|
@ -2,5 +2,5 @@
|
|||
fn main() {
|
||||
var i : i32 = 123;
|
||||
let p : ptr<function, i32> = &i;
|
||||
let use : i32 = *p + 1;
|
||||
let u : i32 = *p + 1;
|
||||
}
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
[numthreads(1, 1, 1)]
|
||||
void main() {
|
||||
int i = 123;
|
||||
const int use = (i + 1);
|
||||
const int u = (i + 1);
|
||||
return;
|
||||
}
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
[numthreads(1, 1, 1)]
|
||||
void main() {
|
||||
int i = 123;
|
||||
const int use = (i + 1);
|
||||
const int u = (i + 1);
|
||||
return;
|
||||
}
|
||||
|
|
|
@ -2,7 +2,7 @@
|
|||
|
||||
void tint_symbol() {
|
||||
int i = 123;
|
||||
int use = (i + 1);
|
||||
int u = (i + 1);
|
||||
}
|
||||
|
||||
layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
|
||||
|
|
|
@ -3,7 +3,7 @@
|
|||
using namespace metal;
|
||||
kernel void tint_symbol() {
|
||||
int i = 123;
|
||||
int const use = as_type<int>((as_type<uint>(i) + as_type<uint>(1)));
|
||||
int const u = as_type<int>((as_type<uint>(i) + as_type<uint>(1)));
|
||||
return;
|
||||
}
|
||||
|
||||
|
|
|
@ -2,5 +2,5 @@
|
|||
fn main() {
|
||||
var i : i32 = 123;
|
||||
let p : ptr<function, i32> = &(i);
|
||||
let use : i32 = (*(p) + 1);
|
||||
let u : i32 = (*(p) + 1);
|
||||
}
|
||||
|
|
|
@ -3,5 +3,5 @@ var<private> i : i32 = 123;
|
|||
@compute @workgroup_size(1)
|
||||
fn main() {
|
||||
let p : ptr<private, i32> = &i;
|
||||
let use : i32 = *p + 1;
|
||||
let u : i32 = *p + 1;
|
||||
}
|
||||
|
|
|
@ -2,6 +2,6 @@ static int i = 123;
|
|||
|
||||
[numthreads(1, 1, 1)]
|
||||
void main() {
|
||||
const int use = (i + 1);
|
||||
const int u = (i + 1);
|
||||
return;
|
||||
}
|
||||
|
|
|
@ -2,6 +2,6 @@ static int i = 123;
|
|||
|
||||
[numthreads(1, 1, 1)]
|
||||
void main() {
|
||||
const int use = (i + 1);
|
||||
const int u = (i + 1);
|
||||
return;
|
||||
}
|
||||
|
|
|
@ -2,7 +2,7 @@
|
|||
|
||||
int i = 123;
|
||||
void tint_symbol() {
|
||||
int use = (i + 1);
|
||||
int u = (i + 1);
|
||||
}
|
||||
|
||||
layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
|
||||
|
|
|
@ -3,7 +3,7 @@
|
|||
using namespace metal;
|
||||
kernel void tint_symbol() {
|
||||
thread int tint_symbol_1 = 123;
|
||||
int const use = as_type<int>((as_type<uint>(tint_symbol_1) + as_type<uint>(1)));
|
||||
int const u = as_type<int>((as_type<uint>(tint_symbol_1) + as_type<uint>(1)));
|
||||
return;
|
||||
}
|
||||
|
||||
|
|
|
@ -3,5 +3,5 @@ var<private> i : i32 = 123;
|
|||
@compute @workgroup_size(1)
|
||||
fn main() {
|
||||
let p : ptr<private, i32> = &(i);
|
||||
let use : i32 = (*(p) + 1);
|
||||
let u : i32 = (*(p) + 1);
|
||||
}
|
||||
|
|
|
@ -8,5 +8,5 @@ var<storage, read_write> v : S;
|
|||
@compute @workgroup_size(1)
|
||||
fn main() {
|
||||
let p : ptr<storage, i32, read_write> = &v.a;
|
||||
let use : i32 = *p + 1;
|
||||
let u : i32 = *p + 1;
|
||||
}
|
||||
|
|
|
@ -2,6 +2,6 @@ RWByteAddressBuffer v : register(u0, space0);
|
|||
|
||||
[numthreads(1, 1, 1)]
|
||||
void main() {
|
||||
const int use = (asint(v.Load(0u)) + 1);
|
||||
const int u = (asint(v.Load(0u)) + 1);
|
||||
return;
|
||||
}
|
||||
|
|
|
@ -2,6 +2,6 @@ RWByteAddressBuffer v : register(u0, space0);
|
|||
|
||||
[numthreads(1, 1, 1)]
|
||||
void main() {
|
||||
const int use = (asint(v.Load(0u)) + 1);
|
||||
const int u = (asint(v.Load(0u)) + 1);
|
||||
return;
|
||||
}
|
||||
|
|
|
@ -8,7 +8,7 @@ layout(binding = 0, std430) buffer S_1 {
|
|||
int a;
|
||||
} v;
|
||||
void tint_symbol() {
|
||||
int use = (v.a + 1);
|
||||
int u = (v.a + 1);
|
||||
}
|
||||
|
||||
layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
|
||||
|
|
|
@ -6,7 +6,7 @@ struct S {
|
|||
};
|
||||
|
||||
kernel void tint_symbol(device S* tint_symbol_1 [[buffer(0)]]) {
|
||||
int const use = as_type<int>((as_type<uint>((*(tint_symbol_1)).a) + as_type<uint>(1)));
|
||||
int const u = as_type<int>((as_type<uint>((*(tint_symbol_1)).a) + as_type<uint>(1)));
|
||||
return;
|
||||
}
|
||||
|
||||
|
|
|
@ -7,5 +7,5 @@ struct S {
|
|||
@compute @workgroup_size(1)
|
||||
fn main() {
|
||||
let p : ptr<storage, i32, read_write> = &(v.a);
|
||||
let use : i32 = (*(p) + 1);
|
||||
let u : i32 = (*(p) + 1);
|
||||
}
|
||||
|
|
|
@ -8,5 +8,5 @@ var<uniform> v : S;
|
|||
@compute @workgroup_size(1)
|
||||
fn main() {
|
||||
let p : ptr<uniform, i32> = &v.a;
|
||||
let use : i32 = *p + 1;
|
||||
let u : i32 = *p + 1;
|
||||
}
|
||||
|
|
|
@ -4,6 +4,6 @@ cbuffer cbuffer_v : register(b0, space0) {
|
|||
|
||||
[numthreads(1, 1, 1)]
|
||||
void main() {
|
||||
const int use = (asint(v[0].x) + 1);
|
||||
const int u = (asint(v[0].x) + 1);
|
||||
return;
|
||||
}
|
||||
|
|
|
@ -4,6 +4,6 @@ cbuffer cbuffer_v : register(b0, space0) {
|
|||
|
||||
[numthreads(1, 1, 1)]
|
||||
void main() {
|
||||
const int use = (asint(v[0].x) + 1);
|
||||
const int u = (asint(v[0].x) + 1);
|
||||
return;
|
||||
}
|
||||
|
|
|
@ -9,7 +9,7 @@ layout(binding = 0) uniform S_1 {
|
|||
} v;
|
||||
|
||||
void tint_symbol() {
|
||||
int use = (v.a + 1);
|
||||
int u = (v.a + 1);
|
||||
}
|
||||
|
||||
layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
|
||||
|
|
|
@ -6,7 +6,7 @@ struct S {
|
|||
};
|
||||
|
||||
kernel void tint_symbol(const constant S* tint_symbol_1 [[buffer(0)]]) {
|
||||
int const use = as_type<int>((as_type<uint>((*(tint_symbol_1)).a) + as_type<uint>(1)));
|
||||
int const u = as_type<int>((as_type<uint>((*(tint_symbol_1)).a) + as_type<uint>(1)));
|
||||
return;
|
||||
}
|
||||
|
||||
|
|
|
@ -7,5 +7,5 @@ struct S {
|
|||
@compute @workgroup_size(1)
|
||||
fn main() {
|
||||
let p : ptr<uniform, i32> = &(v.a);
|
||||
let use : i32 = (*(p) + 1);
|
||||
let u : i32 = (*(p) + 1);
|
||||
}
|
||||
|
|
|
@ -4,5 +4,5 @@ var<workgroup> i : i32;
|
|||
fn main() {
|
||||
i = 123;
|
||||
let p : ptr<workgroup, i32> = &i;
|
||||
let use : i32 = *p + 1;
|
||||
let u : i32 = *p + 1;
|
||||
}
|
||||
|
|
|
@ -10,7 +10,7 @@ void main_inner(uint local_invocation_index) {
|
|||
}
|
||||
GroupMemoryBarrierWithGroupSync();
|
||||
i = 123;
|
||||
const int use = (i + 1);
|
||||
const int u = (i + 1);
|
||||
}
|
||||
|
||||
[numthreads(1, 1, 1)]
|
||||
|
|
|
@ -10,7 +10,7 @@ void main_inner(uint local_invocation_index) {
|
|||
}
|
||||
GroupMemoryBarrierWithGroupSync();
|
||||
i = 123;
|
||||
const int use = (i + 1);
|
||||
const int u = (i + 1);
|
||||
}
|
||||
|
||||
[numthreads(1, 1, 1)]
|
||||
|
|
|
@ -7,7 +7,7 @@ void tint_symbol(uint local_invocation_index) {
|
|||
}
|
||||
barrier();
|
||||
i = 123;
|
||||
int use = (i + 1);
|
||||
int u = (i + 1);
|
||||
}
|
||||
|
||||
layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
|
||||
|
|
|
@ -7,7 +7,7 @@ void tint_symbol_inner(uint local_invocation_index, threadgroup int* const tint_
|
|||
}
|
||||
threadgroup_barrier(mem_flags::mem_threadgroup);
|
||||
*(tint_symbol_1) = 123;
|
||||
int const use = as_type<int>((as_type<uint>(*(tint_symbol_1)) + as_type<uint>(1)));
|
||||
int const u = as_type<int>((as_type<uint>(*(tint_symbol_1)) + as_type<uint>(1)));
|
||||
}
|
||||
|
||||
kernel void tint_symbol(uint local_invocation_index [[thread_index_in_threadgroup]]) {
|
||||
|
|
|
@ -4,5 +4,5 @@ var<workgroup> i : i32;
|
|||
fn main() {
|
||||
i = 123;
|
||||
let p : ptr<workgroup, i32> = &(i);
|
||||
let use : i32 = (*(p) + 1);
|
||||
let u : i32 = (*(p) + 1);
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue