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") {
|
if (str == "if") {
|
||||||
return {Token::Type::kIf, source, "if"};
|
return {Token::Type::kIf, source, "if"};
|
||||||
}
|
}
|
||||||
if (str == "import") {
|
|
||||||
return {Token::Type::kImport, source, "import"};
|
|
||||||
}
|
|
||||||
if (str == "let") {
|
if (str == "let") {
|
||||||
return {Token::Type::kLet, source, "let"};
|
return {Token::Type::kLet, source, "let"};
|
||||||
}
|
}
|
||||||
|
|
|
@ -1129,7 +1129,6 @@ INSTANTIATE_TEST_SUITE_P(
|
||||||
TokenData{"for", Token::Type::kFor},
|
TokenData{"for", Token::Type::kFor},
|
||||||
TokenData{"i32", Token::Type::kI32},
|
TokenData{"i32", Token::Type::kI32},
|
||||||
TokenData{"if", Token::Type::kIf},
|
TokenData{"if", Token::Type::kIf},
|
||||||
TokenData{"import", Token::Type::kImport},
|
|
||||||
TokenData{"let", Token::Type::kLet},
|
TokenData{"let", Token::Type::kLet},
|
||||||
TokenData{"loop", Token::Type::kLoop},
|
TokenData{"loop", Token::Type::kLoop},
|
||||||
TokenData{"mat2x2", Token::Type::kMat2x2},
|
TokenData{"mat2x2", Token::Type::kMat2x2},
|
||||||
|
|
|
@ -84,10 +84,40 @@ const char kWorkgroupSizeAttribute[] = "workgroup_size";
|
||||||
|
|
||||||
// https://gpuweb.github.io/gpuweb/wgsl.html#reserved-keywords
|
// https://gpuweb.github.io/gpuweb/wgsl.html#reserved-keywords
|
||||||
bool is_reserved(const Token& t) {
|
bool is_reserved(const Token& t) {
|
||||||
return t == "asm" || t == "bf16" || t == "do" || t == "enum" || t == "f64" || t == "handle" ||
|
return t == "CompileShader" || t == "ComputeShader" || t == "DomainShader" ||
|
||||||
t == "i8" || t == "i16" || t == "i64" || t == "mat" || t == "premerge" ||
|
t == "GeometryShader" || t == "Hullshader" || t == "NULL" || t == "Self" ||
|
||||||
t == "regardless" || t == "typedef" || t == "u8" || t == "u16" || t == "u64" ||
|
t == "abstract" || t == "active" || t == "alignas" || t == "alignof" || t == "as" ||
|
||||||
t == "unless" || t == "using" || t == "vec" || t == "void" || t == "while";
|
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.
|
/// Enter-exit counters for block token types.
|
||||||
|
@ -3441,7 +3471,7 @@ Expect<std::string> ParserImpl::expect_ident(std::string_view use) {
|
||||||
next();
|
next();
|
||||||
|
|
||||||
if (is_reserved(t)) {
|
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()};
|
return {t.to_str(), t.source()};
|
||||||
|
|
|
@ -21,88 +21,233 @@ using ParserImplReservedKeywordTest = ParserImplTestWithParam<std::string>;
|
||||||
TEST_P(ParserImplReservedKeywordTest, Function) {
|
TEST_P(ParserImplReservedKeywordTest, Function) {
|
||||||
auto name = GetParam();
|
auto name = GetParam();
|
||||||
auto p = parser("fn " + name + "() {}");
|
auto p = parser("fn " + name + "() {}");
|
||||||
EXPECT_FALSE(p->Parse());
|
EXPECT_TRUE(p->Parse());
|
||||||
EXPECT_TRUE(p->has_error());
|
EXPECT_FALSE(p->has_error());
|
||||||
EXPECT_EQ(p->error(), "1:4: '" + name + "' is a reserved keyword");
|
EXPECT_EQ(p->error(),
|
||||||
|
"1:4: use of deprecated language feature: '" + name + "' is a reserved keyword");
|
||||||
}
|
}
|
||||||
TEST_P(ParserImplReservedKeywordTest, ModuleConst) {
|
TEST_P(ParserImplReservedKeywordTest, ModuleConst) {
|
||||||
auto name = GetParam();
|
auto name = GetParam();
|
||||||
auto p = parser("const " + name + " : i32 = 1;");
|
auto p = parser("const " + name + " : i32 = 1;");
|
||||||
EXPECT_FALSE(p->Parse());
|
EXPECT_TRUE(p->Parse());
|
||||||
EXPECT_TRUE(p->has_error());
|
EXPECT_FALSE(p->has_error());
|
||||||
EXPECT_EQ(p->error(), "1:7: '" + name + "' is a reserved keyword");
|
EXPECT_EQ(p->error(),
|
||||||
|
"1:7: use of deprecated language feature: '" + name + "' is a reserved keyword");
|
||||||
}
|
}
|
||||||
TEST_P(ParserImplReservedKeywordTest, ModuleVar) {
|
TEST_P(ParserImplReservedKeywordTest, ModuleVar) {
|
||||||
auto name = GetParam();
|
auto name = GetParam();
|
||||||
auto p = parser("var " + name + " : i32 = 1;");
|
auto p = parser("var " + name + " : i32 = 1;");
|
||||||
EXPECT_FALSE(p->Parse());
|
EXPECT_TRUE(p->Parse());
|
||||||
EXPECT_TRUE(p->has_error());
|
EXPECT_FALSE(p->has_error());
|
||||||
EXPECT_EQ(p->error(), "1:5: '" + name + "' is a reserved keyword");
|
EXPECT_EQ(p->error(),
|
||||||
|
"1:5: use of deprecated language feature: '" + name + "' is a reserved keyword");
|
||||||
}
|
}
|
||||||
TEST_P(ParserImplReservedKeywordTest, FunctionLet) {
|
TEST_P(ParserImplReservedKeywordTest, FunctionLet) {
|
||||||
auto name = GetParam();
|
auto name = GetParam();
|
||||||
auto p = parser("fn f() { let " + name + " : i32 = 1; }");
|
auto p = parser("fn f() { let " + name + " : i32 = 1; }");
|
||||||
EXPECT_FALSE(p->Parse());
|
EXPECT_TRUE(p->Parse());
|
||||||
EXPECT_TRUE(p->has_error());
|
EXPECT_FALSE(p->has_error());
|
||||||
EXPECT_EQ(p->error(), "1:14: '" + name + "' is a reserved keyword");
|
EXPECT_EQ(p->error(),
|
||||||
|
"1:14: use of deprecated language feature: '" + name + "' is a reserved keyword");
|
||||||
}
|
}
|
||||||
TEST_P(ParserImplReservedKeywordTest, FunctionVar) {
|
TEST_P(ParserImplReservedKeywordTest, FunctionVar) {
|
||||||
auto name = GetParam();
|
auto name = GetParam();
|
||||||
auto p = parser("fn f() { var " + name + " : i32 = 1; }");
|
auto p = parser("fn f() { var " + name + " : i32 = 1; }");
|
||||||
EXPECT_FALSE(p->Parse());
|
EXPECT_TRUE(p->Parse());
|
||||||
EXPECT_TRUE(p->has_error());
|
EXPECT_FALSE(p->has_error());
|
||||||
EXPECT_EQ(p->error(), "1:14: '" + name + "' is a reserved keyword");
|
EXPECT_EQ(p->error(),
|
||||||
|
"1:14: use of deprecated language feature: '" + name + "' is a reserved keyword");
|
||||||
}
|
}
|
||||||
TEST_P(ParserImplReservedKeywordTest, FunctionParam) {
|
TEST_P(ParserImplReservedKeywordTest, FunctionParam) {
|
||||||
auto name = GetParam();
|
auto name = GetParam();
|
||||||
auto p = parser("fn f(" + name + " : i32) {}");
|
auto p = parser("fn f(" + name + " : i32) {}");
|
||||||
EXPECT_FALSE(p->Parse());
|
EXPECT_TRUE(p->Parse());
|
||||||
EXPECT_TRUE(p->has_error());
|
EXPECT_FALSE(p->has_error());
|
||||||
EXPECT_EQ(p->error(), "1:6: '" + name + "' is a reserved keyword");
|
EXPECT_EQ(p->error(),
|
||||||
|
"1:6: use of deprecated language feature: '" + name + "' is a reserved keyword");
|
||||||
}
|
}
|
||||||
TEST_P(ParserImplReservedKeywordTest, Struct) {
|
TEST_P(ParserImplReservedKeywordTest, Struct) {
|
||||||
auto name = GetParam();
|
auto name = GetParam();
|
||||||
auto p = parser("struct " + name + " {};");
|
auto p = parser("struct " + name + " {};");
|
||||||
EXPECT_FALSE(p->Parse());
|
EXPECT_TRUE(p->Parse());
|
||||||
EXPECT_TRUE(p->has_error());
|
EXPECT_FALSE(p->has_error());
|
||||||
EXPECT_EQ(p->error(), "1:8: '" + name + "' is a reserved keyword");
|
EXPECT_EQ(p->error(),
|
||||||
|
"1:8: use of deprecated language feature: '" + name + "' is a reserved keyword");
|
||||||
}
|
}
|
||||||
TEST_P(ParserImplReservedKeywordTest, StructMember) {
|
TEST_P(ParserImplReservedKeywordTest, StructMember) {
|
||||||
auto name = GetParam();
|
auto name = GetParam();
|
||||||
auto p = parser("struct S { " + name + " : i32, };");
|
auto p = parser("struct S { " + name + " : i32, };");
|
||||||
EXPECT_FALSE(p->Parse());
|
EXPECT_TRUE(p->Parse());
|
||||||
EXPECT_TRUE(p->has_error());
|
EXPECT_FALSE(p->has_error());
|
||||||
EXPECT_EQ(p->error(), "1:12: '" + name + "' is a reserved keyword");
|
EXPECT_EQ(p->error(),
|
||||||
|
"1:12: use of deprecated language feature: '" + name + "' is a reserved keyword");
|
||||||
}
|
}
|
||||||
TEST_P(ParserImplReservedKeywordTest, Alias) {
|
TEST_P(ParserImplReservedKeywordTest, Alias) {
|
||||||
auto name = GetParam();
|
auto name = GetParam();
|
||||||
auto p = parser("type " + name + " = i32;");
|
auto p = parser("type " + name + " = i32;");
|
||||||
EXPECT_FALSE(p->Parse());
|
EXPECT_TRUE(p->Parse());
|
||||||
EXPECT_TRUE(p->has_error());
|
EXPECT_FALSE(p->has_error());
|
||||||
EXPECT_EQ(p->error(), "1:6: '" + name + "' is a reserved keyword");
|
EXPECT_EQ(p->error(),
|
||||||
|
"1:6: use of deprecated language feature: '" + name + "' is a reserved keyword");
|
||||||
}
|
}
|
||||||
INSTANTIATE_TEST_SUITE_P(ParserImplReservedKeywordTest,
|
INSTANTIATE_TEST_SUITE_P(ParserImplReservedKeywordTest,
|
||||||
ParserImplReservedKeywordTest,
|
ParserImplReservedKeywordTest,
|
||||||
testing::Values("asm",
|
testing::Values("ComputeShader",
|
||||||
"bf16",
|
"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",
|
"do",
|
||||||
|
"dynamic_cast",
|
||||||
"enum",
|
"enum",
|
||||||
"f64",
|
"explicit",
|
||||||
|
"export",
|
||||||
|
"extends",
|
||||||
|
"extern",
|
||||||
|
"external",
|
||||||
|
"filter",
|
||||||
|
"final",
|
||||||
|
"finally",
|
||||||
|
"friend",
|
||||||
|
"from",
|
||||||
|
"fxgroup",
|
||||||
|
"get",
|
||||||
|
"goto",
|
||||||
|
"groupshared",
|
||||||
"handle",
|
"handle",
|
||||||
"i8",
|
"highp",
|
||||||
"i16",
|
"impl",
|
||||||
"i64",
|
"implements",
|
||||||
"mat",
|
"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",
|
"premerge",
|
||||||
|
"priv",
|
||||||
|
"protected",
|
||||||
|
"pub",
|
||||||
|
"public",
|
||||||
|
"readonly",
|
||||||
|
"ref",
|
||||||
"regardless",
|
"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",
|
"typedef",
|
||||||
"u8",
|
"typeid",
|
||||||
"u16",
|
"typename",
|
||||||
"u64",
|
"typeof",
|
||||||
|
"union",
|
||||||
"unless",
|
"unless",
|
||||||
|
"unorm",
|
||||||
|
"unsafe",
|
||||||
|
"unsized",
|
||||||
|
"use",
|
||||||
"using",
|
"using",
|
||||||
"vec",
|
"varying",
|
||||||
"void"));
|
"virtual",
|
||||||
|
"volatile",
|
||||||
|
"wgsl",
|
||||||
|
"where",
|
||||||
|
"with",
|
||||||
|
"writeonly",
|
||||||
|
"yield"
|
||||||
|
|
||||||
|
));
|
||||||
|
|
||||||
} // namespace
|
} // namespace
|
||||||
} // namespace tint::reader::wgsl
|
} // namespace tint::reader::wgsl
|
||||||
|
|
|
@ -177,8 +177,6 @@ std::string_view Token::TypeToName(Type type) {
|
||||||
return "i32";
|
return "i32";
|
||||||
case Token::Type::kIf:
|
case Token::Type::kIf:
|
||||||
return "if";
|
return "if";
|
||||||
case Token::Type::kImport:
|
|
||||||
return "import";
|
|
||||||
case Token::Type::kLet:
|
case Token::Type::kLet:
|
||||||
return "let";
|
return "let";
|
||||||
case Token::Type::kLoop:
|
case Token::Type::kLoop:
|
||||||
|
|
|
@ -187,8 +187,6 @@ class Token {
|
||||||
kI32,
|
kI32,
|
||||||
/// A 'if'
|
/// A 'if'
|
||||||
kIf,
|
kIf,
|
||||||
/// A 'import'
|
|
||||||
kImport,
|
|
||||||
/// A 'let'
|
/// A 'let'
|
||||||
kLet,
|
kLet,
|
||||||
/// A 'loop'
|
/// A 'loop'
|
||||||
|
|
|
@ -328,10 +328,10 @@ fn frag_main() {
|
||||||
|
|
||||||
INSTANTIATE_TEST_SUITE_P(RenamerTestGlsl,
|
INSTANTIATE_TEST_SUITE_P(RenamerTestGlsl,
|
||||||
RenamerTestGlsl,
|
RenamerTestGlsl,
|
||||||
testing::Values("active",
|
testing::Values( // "active", // Also reserved in WGSL
|
||||||
// "asm", // WGSL keyword
|
// "asm", // WGSL keyword
|
||||||
"atomic_uint",
|
"atomic_uint",
|
||||||
"attribute",
|
// "attribute", // Also reserved in WGSL
|
||||||
// "bool", // WGSL keyword
|
// "bool", // WGSL keyword
|
||||||
// "break", // WGSL keyword
|
// "break", // WGSL keyword
|
||||||
"buffer",
|
"buffer",
|
||||||
|
@ -339,11 +339,11 @@ INSTANTIATE_TEST_SUITE_P(RenamerTestGlsl,
|
||||||
"bvec3",
|
"bvec3",
|
||||||
"bvec4",
|
"bvec4",
|
||||||
// "case", // WGSL keyword
|
// "case", // WGSL keyword
|
||||||
"cast",
|
// "cast", // Also reserved in WGSL
|
||||||
"centroid",
|
"centroid",
|
||||||
"class",
|
// "class", // Also reserved in WGSL
|
||||||
"coherent",
|
// "coherent", // Also reserved in WGSL
|
||||||
"common",
|
// "common", // Also reserved in WGSL
|
||||||
// "const", // WGSL keyword
|
// "const", // WGSL keyword
|
||||||
// "continue", // WGSL keyword
|
// "continue", // WGSL keyword
|
||||||
// "default", // WGSL keyword
|
// "default", // WGSL keyword
|
||||||
|
@ -367,10 +367,10 @@ INSTANTIATE_TEST_SUITE_P(RenamerTestGlsl,
|
||||||
"dvec4",
|
"dvec4",
|
||||||
// "else" // WGSL keyword
|
// "else" // WGSL keyword
|
||||||
// "enum", // WGSL keyword
|
// "enum", // WGSL keyword
|
||||||
"extern",
|
// "extern", // Also reserved in WGSL
|
||||||
"external",
|
// "external", // Also reserved in WGSL
|
||||||
// "false", // WGSL keyword
|
// "false", // WGSL keyword
|
||||||
"filter",
|
// "filter", // Also reserved in WGSL
|
||||||
"fixed",
|
"fixed",
|
||||||
"flat",
|
"flat",
|
||||||
"float",
|
"float",
|
||||||
|
@ -404,9 +404,9 @@ INSTANTIATE_TEST_SUITE_P(RenamerTestGlsl,
|
||||||
"gl_VertexID",
|
"gl_VertexID",
|
||||||
"gl_WorkGroupID",
|
"gl_WorkGroupID",
|
||||||
"gl_WorkGroupSize",
|
"gl_WorkGroupSize",
|
||||||
"goto",
|
// "goto", // Also reserved in WGSL
|
||||||
"half",
|
"half",
|
||||||
"highp",
|
// "highp", // Also reserved in WGSL
|
||||||
"hvec2",
|
"hvec2",
|
||||||
"hvec3",
|
"hvec3",
|
||||||
"hvec4",
|
"hvec4",
|
||||||
|
@ -434,12 +434,12 @@ INSTANTIATE_TEST_SUITE_P(RenamerTestGlsl,
|
||||||
"imageCube",
|
"imageCube",
|
||||||
"imageCubeArray",
|
"imageCubeArray",
|
||||||
"in",
|
"in",
|
||||||
"inline",
|
// "inline", // Also reserved in WGSL
|
||||||
"inout",
|
// "inout", // Also reserved in WGSL
|
||||||
"input",
|
"input",
|
||||||
"int",
|
"int",
|
||||||
"interface",
|
// "interface", // Also reserved in WGSL
|
||||||
"invariant",
|
// "invariant", // Also reserved in WGSL
|
||||||
"isampler1D",
|
"isampler1D",
|
||||||
"isampler1DArray",
|
"isampler1DArray",
|
||||||
"isampler2D",
|
"isampler2D",
|
||||||
|
@ -454,9 +454,9 @@ INSTANTIATE_TEST_SUITE_P(RenamerTestGlsl,
|
||||||
"ivec2",
|
"ivec2",
|
||||||
"ivec3",
|
"ivec3",
|
||||||
"ivec4",
|
"ivec4",
|
||||||
"layout",
|
// "layout", // Also reserved in WGSL
|
||||||
"long",
|
"long",
|
||||||
"lowp",
|
// "lowp", // Also reserved in WGSL
|
||||||
// "mat2x2", // WGSL keyword
|
// "mat2x2", // WGSL keyword
|
||||||
// "mat2x3", // WGSL keyword
|
// "mat2x3", // WGSL keyword
|
||||||
// "mat2x4", // WGSL keyword
|
// "mat2x4", // WGSL keyword
|
||||||
|
@ -469,20 +469,20 @@ INSTANTIATE_TEST_SUITE_P(RenamerTestGlsl,
|
||||||
// "mat4x2", // WGSL keyword
|
// "mat4x2", // WGSL keyword
|
||||||
// "mat4x3", // WGSL keyword
|
// "mat4x3", // WGSL keyword
|
||||||
// "mat4x4", // WGSL keyword
|
// "mat4x4", // WGSL keyword
|
||||||
"mediump",
|
// "mediump", // Also reserved in WGSL
|
||||||
"namespace",
|
// "namespace", // Also reserved in WGSL
|
||||||
"noinline",
|
// "noinline", // Also reserved in WGSL
|
||||||
"noperspective",
|
// "noperspective", // Also reserved in WGSL
|
||||||
"out",
|
"out",
|
||||||
"output",
|
"output",
|
||||||
"partition",
|
// "partition", // Also reserved in WGSL
|
||||||
"patch",
|
// "patch", // Also reserved in WGSL
|
||||||
"precise",
|
// "precise", // Also reserved in WGSL
|
||||||
"precision",
|
// "precision", // Also reserved in WGSL
|
||||||
"public",
|
// "public", // Also reserved in WGSL
|
||||||
"readonly",
|
// "readonly", // Also reserved in WGSL
|
||||||
"resource",
|
// "resource", // Also reserved in WGSL
|
||||||
"restrict",
|
// "restrict", // Also reserved in WGSL
|
||||||
// "return", // WGSL keyword
|
// "return", // WGSL keyword
|
||||||
"sample",
|
"sample",
|
||||||
"sampler1D",
|
"sampler1D",
|
||||||
|
@ -504,17 +504,17 @@ INSTANTIATE_TEST_SUITE_P(RenamerTestGlsl,
|
||||||
"samplerCubeArray",
|
"samplerCubeArray",
|
||||||
"samplerCubeArrayShadow",
|
"samplerCubeArrayShadow",
|
||||||
"samplerCubeShadow",
|
"samplerCubeShadow",
|
||||||
"shared",
|
// "shared" // Also reserved in WGSL,
|
||||||
"short",
|
"short",
|
||||||
"sizeof",
|
// "sizeof", // Also reserved in WGSL
|
||||||
"smooth",
|
// "smooth", // Also reserved in WGSL
|
||||||
"static",
|
// "static", // Also reserved in WGSL
|
||||||
// "struct", // WGSL keyword
|
// "struct", // WGSL keyword
|
||||||
"subroutine",
|
// "subroutine", // Also reserved in WGSL
|
||||||
"superp",
|
"superp",
|
||||||
// "switch", // WGSL keyword
|
// "switch", // WGSL keyword
|
||||||
"template",
|
// "template", // Also reserved in WGSL
|
||||||
"this",
|
// "this", // Also reserved in WGSL
|
||||||
// "true", // WGSL keyword
|
// "true", // WGSL keyword
|
||||||
// "typedef", // WGSL keyword
|
// "typedef", // WGSL keyword
|
||||||
"uimage1D",
|
"uimage1D",
|
||||||
|
@ -530,7 +530,7 @@ INSTANTIATE_TEST_SUITE_P(RenamerTestGlsl,
|
||||||
"uimageCubeArray",
|
"uimageCubeArray",
|
||||||
"uint",
|
"uint",
|
||||||
// "uniform", // WGSL keyword
|
// "uniform", // WGSL keyword
|
||||||
"union",
|
// "union", // Also reserved in WGSL
|
||||||
"unsigned",
|
"unsigned",
|
||||||
"usampler1D",
|
"usampler1D",
|
||||||
"usampler1DArray",
|
"usampler1DArray",
|
||||||
|
@ -547,14 +547,14 @@ INSTANTIATE_TEST_SUITE_P(RenamerTestGlsl,
|
||||||
"uvec2",
|
"uvec2",
|
||||||
"uvec3",
|
"uvec3",
|
||||||
"uvec4",
|
"uvec4",
|
||||||
"varying",
|
// "varying", // Also reserved in WGSL
|
||||||
// "vec2", // WGSL keyword
|
// "vec2", // WGSL keyword
|
||||||
// "vec3", // WGSL keyword
|
// "vec3", // WGSL keyword
|
||||||
// "vec4", // WGSL keyword
|
// "vec4", // WGSL keyword
|
||||||
// "void", // WGSL keyword
|
// "void", // WGSL keyword
|
||||||
"volatile",
|
// "volatile", // Also reserved in WGSL
|
||||||
// "while", // WGSL keyword
|
// "while", // WGSL keyword
|
||||||
"writeonly",
|
// "writeonly", // Also reserved in WGSL
|
||||||
kUnicodeIdentifier));
|
kUnicodeIdentifier));
|
||||||
|
|
||||||
INSTANTIATE_TEST_SUITE_P(RenamerTestHlsl,
|
INSTANTIATE_TEST_SUITE_P(RenamerTestHlsl,
|
||||||
|
@ -575,8 +575,8 @@ INSTANTIATE_TEST_SUITE_P(RenamerTestHlsl,
|
||||||
"COLOR",
|
"COLOR",
|
||||||
"CheckAccessFullyMapped",
|
"CheckAccessFullyMapped",
|
||||||
"ComparisonFunc",
|
"ComparisonFunc",
|
||||||
"CompileShader",
|
// "CompileShader", // Also reserved in WGSL
|
||||||
"ComputeShader",
|
// "ComputeShader", // Also reserved in WGSL
|
||||||
"ConsumeStructuredBuffer",
|
"ConsumeStructuredBuffer",
|
||||||
"D3DCOLORtoUBYTE4",
|
"D3DCOLORtoUBYTE4",
|
||||||
"DEPTH",
|
"DEPTH",
|
||||||
|
@ -584,18 +584,18 @@ INSTANTIATE_TEST_SUITE_P(RenamerTestHlsl,
|
||||||
"DepthStencilView",
|
"DepthStencilView",
|
||||||
"DeviceMemoryBarrier",
|
"DeviceMemoryBarrier",
|
||||||
"DeviceMemroyBarrierWithGroupSync",
|
"DeviceMemroyBarrierWithGroupSync",
|
||||||
"DomainShader",
|
// "DomainShader", // Also reserved in WGSL
|
||||||
"EvaluateAttributeAtCentroid",
|
"EvaluateAttributeAtCentroid",
|
||||||
"EvaluateAttributeAtSample",
|
"EvaluateAttributeAtSample",
|
||||||
"EvaluateAttributeSnapped",
|
"EvaluateAttributeSnapped",
|
||||||
"FOG",
|
"FOG",
|
||||||
"Filter",
|
"Filter",
|
||||||
"GeometryShader",
|
// "GeometryShader", // Also reserved in WGSL
|
||||||
"GetRenderTargetSampleCount",
|
"GetRenderTargetSampleCount",
|
||||||
"GetRenderTargetSamplePosition",
|
"GetRenderTargetSamplePosition",
|
||||||
"GroupMemoryBarrier",
|
"GroupMemoryBarrier",
|
||||||
"GroupMemroyBarrierWithGroupSync",
|
"GroupMemroyBarrierWithGroupSync",
|
||||||
"Hullshader",
|
// "Hullshader", // Also reserved in WGSL
|
||||||
"InputPatch",
|
"InputPatch",
|
||||||
"InterlockedAdd",
|
"InterlockedAdd",
|
||||||
"InterlockedAnd",
|
"InterlockedAnd",
|
||||||
|
@ -612,7 +612,7 @@ INSTANTIATE_TEST_SUITE_P(RenamerTestHlsl,
|
||||||
"MinLOD",
|
"MinLOD",
|
||||||
"MipLODBias",
|
"MipLODBias",
|
||||||
"NORMAL",
|
"NORMAL",
|
||||||
"NULL",
|
// "NULL", // Also reserved in WGSL
|
||||||
"Normal",
|
"Normal",
|
||||||
"OutputPatch",
|
"OutputPatch",
|
||||||
"POSITION",
|
"POSITION",
|
||||||
|
@ -703,11 +703,11 @@ INSTANTIATE_TEST_SUITE_P(RenamerTestHlsl,
|
||||||
// "asin", // WGSL builtin
|
// "asin", // WGSL builtin
|
||||||
"asint",
|
"asint",
|
||||||
// "asm", // WGSL keyword
|
// "asm", // WGSL keyword
|
||||||
"asm_fragment",
|
// "asm_fragment", // Also reserved in WGSL
|
||||||
"asuint",
|
"asuint",
|
||||||
// "atan", // WGSL builtin
|
// "atan", // WGSL builtin
|
||||||
// "atan2", // WGSL builtin
|
// "atan2", // WGSL builtin
|
||||||
"auto",
|
// "auto", // Also reserved in WGSL
|
||||||
// "bool", // WGSL keyword
|
// "bool", // WGSL keyword
|
||||||
"bool1",
|
"bool1",
|
||||||
"bool1x1",
|
"bool1x1",
|
||||||
|
@ -733,19 +733,19 @@ INSTANTIATE_TEST_SUITE_P(RenamerTestHlsl,
|
||||||
// "break", // WGSL keyword
|
// "break", // WGSL keyword
|
||||||
// "call", // WGSL builtin
|
// "call", // WGSL builtin
|
||||||
// "case", // WGSL keyword
|
// "case", // WGSL keyword
|
||||||
"catch",
|
// "catch", // Also reserved in WGSL
|
||||||
"cbuffer",
|
"cbuffer",
|
||||||
// "ceil", // WGSL builtin
|
// "ceil", // WGSL builtin
|
||||||
"centroid",
|
"centroid",
|
||||||
"char",
|
"char",
|
||||||
// "clamp", // WGSL builtin
|
// "clamp", // WGSL builtin
|
||||||
"class",
|
// "class", // Also reserved in WGSL
|
||||||
"clip",
|
"clip",
|
||||||
"column_major",
|
// "column_major", // Also reserved in WGSL
|
||||||
"compile",
|
// "compile", // Also reserved in WGSL
|
||||||
"compile_fragment",
|
// "compile_fragment", // Also reserved in WGSL
|
||||||
// "const", // WGSL keyword
|
// "const", // WGSL keyword
|
||||||
"const_cast",
|
// "const_cast", // Also reserved in WGSL
|
||||||
// "continue", // WGSL keyword
|
// "continue", // WGSL keyword
|
||||||
// "cos", // WGSL builtin
|
// "cos", // WGSL builtin
|
||||||
// "cosh", // WGSL builtin
|
// "cosh", // WGSL builtin
|
||||||
|
@ -759,7 +759,7 @@ INSTANTIATE_TEST_SUITE_P(RenamerTestHlsl,
|
||||||
"ddy_fine",
|
"ddy_fine",
|
||||||
// "default", // WGSL keyword
|
// "default", // WGSL keyword
|
||||||
"degrees",
|
"degrees",
|
||||||
"delete",
|
// "delete", // Also reserved in WGSL
|
||||||
// "determinant", // WGSL builtin
|
// "determinant", // WGSL builtin
|
||||||
// "discard", // WGSL keyword
|
// "discard", // WGSL keyword
|
||||||
// "distance", // WGSL builtin
|
// "distance", // WGSL builtin
|
||||||
|
@ -808,15 +808,15 @@ INSTANTIATE_TEST_SUITE_P(RenamerTestHlsl,
|
||||||
"dword4x2",
|
"dword4x2",
|
||||||
"dword4x3",
|
"dword4x3",
|
||||||
"dword4x4",
|
"dword4x4",
|
||||||
"dynamic_cast",
|
// "dynamic_cast", // Also reserved in WGSL
|
||||||
// "else", // WGSL keyword
|
// "else", // WGSL keyword
|
||||||
// "enum", // WGSL keyword
|
// "enum", // WGSL keyword
|
||||||
"errorf",
|
"errorf",
|
||||||
// "exp", // WGSL builtin
|
// "exp", // WGSL builtin
|
||||||
// "exp2", // WGSL builtin
|
// "exp2", // WGSL builtin
|
||||||
"explicit",
|
// "explicit", // Also reserved in WGSL
|
||||||
"export",
|
// "export", // Also reserved in WGSL
|
||||||
"extern",
|
// "extern", // Also reserved in WGSL
|
||||||
"f16to32",
|
"f16to32",
|
||||||
"f32tof16",
|
"f32tof16",
|
||||||
// "faceforward", // WGSL builtin
|
// "faceforward", // WGSL builtin
|
||||||
|
@ -853,11 +853,11 @@ INSTANTIATE_TEST_SUITE_P(RenamerTestHlsl,
|
||||||
"forcecase",
|
"forcecase",
|
||||||
"frac",
|
"frac",
|
||||||
// "frexp", // WGSL builtin
|
// "frexp", // WGSL builtin
|
||||||
"friend",
|
// "friend", // Also reserved in WGSL
|
||||||
// "fwidth", // WGSL builtin
|
// "fwidth", // WGSL builtin
|
||||||
"fxgroup",
|
// "fxgroup", // Also reserved in WGSL
|
||||||
"goto",
|
// "goto", // Also reserved in WGSL
|
||||||
"groupshared",
|
// "groupshared", // Also reserved in WGSL
|
||||||
"half",
|
"half",
|
||||||
"half1",
|
"half1",
|
||||||
"half1x1",
|
"half1x1",
|
||||||
|
@ -881,8 +881,8 @@ INSTANTIATE_TEST_SUITE_P(RenamerTestHlsl,
|
||||||
"half4x4",
|
"half4x4",
|
||||||
// "if", // WGSL keyword
|
// "if", // WGSL keyword
|
||||||
// "in", // WGSL keyword
|
// "in", // WGSL keyword
|
||||||
"inline",
|
// "inline", // Also reserved in WGSL
|
||||||
"inout",
|
// "inout", // Also reserved in WGSL
|
||||||
"int",
|
"int",
|
||||||
"int1",
|
"int1",
|
||||||
"int1x1",
|
"int1x1",
|
||||||
|
@ -904,15 +904,15 @@ INSTANTIATE_TEST_SUITE_P(RenamerTestHlsl,
|
||||||
"int4x2",
|
"int4x2",
|
||||||
"int4x3",
|
"int4x3",
|
||||||
"int4x4",
|
"int4x4",
|
||||||
"interface",
|
// "interface", // Also reserved in WGSL
|
||||||
"isfinite",
|
"isfinite",
|
||||||
"isinf",
|
"isinf",
|
||||||
"isnan",
|
"isnan",
|
||||||
// "ldexp", // WGSL builtin
|
// "ldexp", // WGSL builtin
|
||||||
// "length", // WGSL builtin
|
// "length", // WGSL builtin
|
||||||
"lerp",
|
"lerp",
|
||||||
"line",
|
// "line", // Also reserved in WGSL
|
||||||
"lineadj",
|
// "lineadj", // Also reserved in WGSL
|
||||||
"linear",
|
"linear",
|
||||||
"lit",
|
"lit",
|
||||||
// "log", // WGSL builtin
|
// "log", // WGSL builtin
|
||||||
|
@ -1032,33 +1032,33 @@ INSTANTIATE_TEST_SUITE_P(RenamerTestHlsl,
|
||||||
// "modf", // WGSL builtin
|
// "modf", // WGSL builtin
|
||||||
"msad4",
|
"msad4",
|
||||||
"mul",
|
"mul",
|
||||||
"mutable",
|
// "mutable", // Also reserved in WGSL
|
||||||
"namespace",
|
// "namespace", // Also reserved in WGSL
|
||||||
"new",
|
// "new", // Also reserved in WGSL
|
||||||
"nointerpolation",
|
// "nointerpolation", // Also reserved in WGSL
|
||||||
"noise",
|
"noise",
|
||||||
"noperspective",
|
// "noperspective", // Also reserved in WGSL
|
||||||
// "normalize", // WGSL builtin
|
// "normalize", // WGSL builtin
|
||||||
"numthreads",
|
"numthreads",
|
||||||
"operator",
|
// "operator", // Also reserved in WGSL
|
||||||
// "out", // WGSL keyword
|
// "out", // WGSL keyword
|
||||||
"packoffset",
|
// "packoffset", // Also reserved in WGSL
|
||||||
"pass",
|
// "pass", // Also reserved in WGSL
|
||||||
"pixelfragment",
|
// "pixelfragment", // Also reserved in WGSL
|
||||||
"pixelshader",
|
"pixelshader",
|
||||||
"point",
|
// "point", // Also reserved in WGSL
|
||||||
// "pow", // WGSL builtin
|
// "pow", // WGSL builtin
|
||||||
"precise",
|
// "precise", // Also reserved in WGSL
|
||||||
"printf",
|
"printf",
|
||||||
// "private", // WGSL keyword
|
// "private", // WGSL keyword
|
||||||
"protected",
|
// "protected", // Also reserved in WGSL
|
||||||
"public",
|
// "public", // Also reserved in WGSL
|
||||||
"radians",
|
"radians",
|
||||||
"rcp",
|
"rcp",
|
||||||
// "reflect", // WGSL builtin
|
// "reflect", // WGSL builtin
|
||||||
"refract",
|
"refract",
|
||||||
"register",
|
// "register", // Also reserved in WGSL
|
||||||
"reinterpret_cast",
|
// "reinterpret_cast", // Also reserved in WGSL
|
||||||
// "return", // WGSL keyword
|
// "return", // WGSL keyword
|
||||||
// "reversebits", // WGSL builtin
|
// "reversebits", // WGSL builtin
|
||||||
// "round", // WGSL builtin
|
// "round", // WGSL builtin
|
||||||
|
@ -1071,21 +1071,21 @@ INSTANTIATE_TEST_SUITE_P(RenamerTestHlsl,
|
||||||
"samplerCUBE",
|
"samplerCUBE",
|
||||||
"sampler_state",
|
"sampler_state",
|
||||||
"saturate",
|
"saturate",
|
||||||
"shared",
|
// "shared", // Also reserved in WGSL
|
||||||
"short",
|
"short",
|
||||||
// "sign", // WGSL builtin
|
// "sign", // WGSL builtin
|
||||||
"signed",
|
// "signed", // Also reserved in WGSL
|
||||||
// "sin", // WGSL builtin
|
// "sin", // WGSL builtin
|
||||||
"sincos",
|
"sincos",
|
||||||
// "sinh", // WGSL builtin
|
// "sinh", // WGSL builtin
|
||||||
"sizeof",
|
// "sizeof", // Also reserved in WGSL
|
||||||
// "smoothstep", // WGSL builtin
|
// "smoothstep", // WGSL builtin
|
||||||
"snorm",
|
// "snorm", // Also reserved in WGSL
|
||||||
// "sqrt", // WGSL builtin
|
// "sqrt", // WGSL builtin
|
||||||
"stateblock",
|
"stateblock",
|
||||||
"stateblock_state",
|
"stateblock_state",
|
||||||
"static",
|
// "static", // Also reserved in WGSL
|
||||||
"static_cast",
|
// "static_cast", // Also reserved in WGSL
|
||||||
// "step", // WGSL builtin
|
// "step", // WGSL builtin
|
||||||
"string",
|
"string",
|
||||||
// "struct", // WGSL keyword
|
// "struct", // WGSL keyword
|
||||||
|
@ -1096,7 +1096,7 @@ INSTANTIATE_TEST_SUITE_P(RenamerTestHlsl,
|
||||||
"technique",
|
"technique",
|
||||||
"technique10",
|
"technique10",
|
||||||
"technique11",
|
"technique11",
|
||||||
"template",
|
// "template", // Also reserved in WGSL
|
||||||
"tex1D",
|
"tex1D",
|
||||||
"tex1Dbias",
|
"tex1Dbias",
|
||||||
"tex1Dgrad",
|
"tex1Dgrad",
|
||||||
|
@ -1127,16 +1127,16 @@ INSTANTIATE_TEST_SUITE_P(RenamerTestHlsl,
|
||||||
"texture3D",
|
"texture3D",
|
||||||
"textureCube",
|
"textureCube",
|
||||||
"textureCubeArray",
|
"textureCubeArray",
|
||||||
"this",
|
// "this", // Also reserved in WGSL
|
||||||
"throw",
|
// "throw", // Also reserved in WGSL
|
||||||
"transpose",
|
"transpose",
|
||||||
"triangle",
|
"triangle",
|
||||||
"triangleadj",
|
"triangleadj",
|
||||||
// "true", // WGSL keyword
|
// "true", // WGSL keyword
|
||||||
// "trunc", // WGSL builtin
|
// "trunc", // WGSL builtin
|
||||||
"try",
|
// "try", // Also reserved in WGSL
|
||||||
// "typedef", // WGSL keyword
|
// "typedef", // WGSL keyword
|
||||||
"typename",
|
// "typename", // Also reserved in WGSL
|
||||||
"uint",
|
"uint",
|
||||||
"uint1",
|
"uint1",
|
||||||
"uint1x1",
|
"uint1x1",
|
||||||
|
@ -1159,17 +1159,17 @@ INSTANTIATE_TEST_SUITE_P(RenamerTestHlsl,
|
||||||
"uint4x3",
|
"uint4x3",
|
||||||
"uint4x4",
|
"uint4x4",
|
||||||
// "uniform", // WGSL keyword
|
// "uniform", // WGSL keyword
|
||||||
"union",
|
// "union", // Also reserved in WGSL
|
||||||
"unorm",
|
// "unorm", // Also reserved in WGSL
|
||||||
"unroll",
|
"unroll",
|
||||||
"unsigned",
|
"unsigned",
|
||||||
// "using", // WGSL reserved keyword
|
// "using", // WGSL reserved keyword
|
||||||
"vector",
|
"vector",
|
||||||
"vertexfragment",
|
"vertexfragment",
|
||||||
"vertexshader",
|
"vertexshader",
|
||||||
"virtual",
|
// "virtual", // Also reserved in WGSL
|
||||||
// "void", // WGSL keyword
|
// "void", // WGSL keyword
|
||||||
"volatile",
|
// "volatile", // Also reserved in WGSL
|
||||||
// "while" // WGSL reserved keyword
|
// "while" // WGSL reserved keyword
|
||||||
kUnicodeIdentifier));
|
kUnicodeIdentifier));
|
||||||
|
|
||||||
|
@ -1178,87 +1178,87 @@ INSTANTIATE_TEST_SUITE_P(
|
||||||
RenamerTestMsl,
|
RenamerTestMsl,
|
||||||
testing::Values(
|
testing::Values(
|
||||||
// c++14 spec
|
// c++14 spec
|
||||||
"alignas",
|
// "alignas", // Also reserved in WGSL
|
||||||
"alignof",
|
// "alignof", // Also reserved in WGSL
|
||||||
"and",
|
"and",
|
||||||
"and_eq",
|
"and_eq",
|
||||||
// "asm", // Also reserved in WGSL
|
// "asm", // Also reserved in WGSL
|
||||||
"auto",
|
// "auto", // Also reserved in WGSL
|
||||||
"bitand",
|
"bitand",
|
||||||
"bitor",
|
"bitor",
|
||||||
// "bool", // Also used in WGSL
|
// "bool", // Also used in WGSL
|
||||||
// "break", // Also used in WGSL
|
// "break", // Also used in WGSL
|
||||||
// "case", // Also used in WGSL
|
// "case", // Also used in WGSL
|
||||||
"catch",
|
// "catch", // Also reserved in WGSL
|
||||||
"char",
|
"char",
|
||||||
"char16_t",
|
"char16_t",
|
||||||
"char32_t",
|
"char32_t",
|
||||||
"class",
|
// "class", // Also reserved in WGSL
|
||||||
"compl",
|
"compl",
|
||||||
// "const", // Also used in WGSL
|
// "const", // Also used in WGSL
|
||||||
"const_cast",
|
// "const_cast", // Also reserved in WGSL
|
||||||
"constexpr",
|
// "constexpr", // Also reserved in WGSL
|
||||||
// "continue", // Also used in WGSL
|
// "continue", // Also used in WGSL
|
||||||
"decltype",
|
// "decltype", // Also reserved in WGSL
|
||||||
// "default", // Also used in WGSL
|
// "default", // Also used in WGSL
|
||||||
"delete",
|
// "delete", // Also reserved in WGSL
|
||||||
// "do", // Also used in WGSL
|
// "do", // Also used in WGSL
|
||||||
"double",
|
"double",
|
||||||
"dynamic_cast",
|
// "dynamic_cast", // Also reserved in WGSL
|
||||||
// "else", // Also used in WGSL
|
// "else", // Also used in WGSL
|
||||||
// "enum", // Also used in WGSL
|
// "enum", // Also used in WGSL
|
||||||
"explicit",
|
// "explicit", // Also reserved in WGSL
|
||||||
"extern",
|
// "extern", // Also reserved in WGSL
|
||||||
// "false", // Also used in WGSL
|
// "false", // Also used in WGSL
|
||||||
"final",
|
// "final", // Also reserved in WGSL
|
||||||
"float",
|
"float",
|
||||||
// "for", // Also used in WGSL
|
// "for", // Also used in WGSL
|
||||||
"friend",
|
// "friend", // Also reserved in WGSL
|
||||||
"goto",
|
// "goto", // Also reserved in WGSL
|
||||||
// "if", // Also used in WGSL
|
// "if", // Also used in WGSL
|
||||||
"inline",
|
// "inline", // Also reserved in WGSL
|
||||||
"int",
|
"int",
|
||||||
"long",
|
"long",
|
||||||
"mutable",
|
// "mutable", // Also reserved in WGSL
|
||||||
"namespace",
|
// "namespace", // Also reserved in WGSL
|
||||||
"new",
|
// "new", // Also reserved in WGSL
|
||||||
"noexcept",
|
// "noexcept", // Also reserved in WGSL
|
||||||
"not",
|
"not",
|
||||||
"not_eq",
|
"not_eq",
|
||||||
"nullptr",
|
// "nullptr", // Also reserved in WGSL
|
||||||
"operator",
|
// "operator", // Also reserved in WGSL
|
||||||
"or",
|
"or",
|
||||||
"or_eq",
|
"or_eq",
|
||||||
// "override", // Also used in WGSL
|
// "override", // Also used in WGSL
|
||||||
// "private", // Also used in WGSL
|
// "private", // Also used in WGSL
|
||||||
"protected",
|
// "protected", // Also reserved in WGSL
|
||||||
"public",
|
// "public", // Also reserved in WGSL
|
||||||
"register",
|
// "register", // Also reserved in WGSL
|
||||||
"reinterpret_cast",
|
// "reinterpret_cast", // Also reserved in WGSL
|
||||||
// "return", // Also used in WGSL
|
// "return", // Also used in WGSL
|
||||||
"short",
|
"short",
|
||||||
"signed",
|
// "signed", // Also reserved in WGSL
|
||||||
"sizeof",
|
// "sizeof", // Also reserved in WGSL
|
||||||
"static",
|
// "static", // Also reserved in WGSL
|
||||||
"static_assert",
|
// "static_assert", // Also reserved in WGSL
|
||||||
"static_cast",
|
// "static_cast", // Also reserved in WGSL
|
||||||
// "struct", // Also used in WGSL
|
// "struct", // Also used in WGSL
|
||||||
// "switch", // Also used in WGSL
|
// "switch", // Also used in WGSL
|
||||||
"template",
|
// "template", // Also reserved in WGSL
|
||||||
"this",
|
// "this", // Also reserved in WGSL
|
||||||
"thread_local",
|
// "thread_local", // Also reserved in WGSL
|
||||||
"throw",
|
// "throw", // Also reserved in WGSL
|
||||||
// "true", // Also used in WGSL
|
// "true", // Also used in WGSL
|
||||||
"try",
|
// "try", // Also reserved in WGSL
|
||||||
// "typedef", // Also used in WGSL
|
// "typedef", // Also used in WGSL
|
||||||
"typeid",
|
// "typeid", // Also reserved in WGSL
|
||||||
"typename",
|
// "typename", // Also reserved in WGSL
|
||||||
"union",
|
// "union", // Also reserved in WGSL
|
||||||
"unsigned",
|
"unsigned",
|
||||||
// "using", // WGSL reserved keyword
|
// "using", // WGSL reserved keyword
|
||||||
"virtual",
|
// "virtual", // Also reserved in WGSL
|
||||||
// "void", // Also used in WGSL
|
// "void", // Also used in WGSL
|
||||||
"volatile",
|
// "volatile", // Also reserved in WGSL
|
||||||
"wchar_t",
|
"wchar_t",
|
||||||
// "while", // WGSL reserved keyword
|
// "while", // WGSL reserved keyword
|
||||||
"xor",
|
"xor",
|
||||||
|
|
|
@ -2,7 +2,7 @@ type ArrayExplicitStride = array<i32, 2>;
|
||||||
type ArrayImplicitStride = array<i32, 2>;
|
type ArrayImplicitStride = array<i32, 2>;
|
||||||
|
|
||||||
fn foo() {
|
fn foo() {
|
||||||
var explicit : ArrayExplicitStride;
|
var explicitStride : ArrayExplicitStride;
|
||||||
var implict : ArrayImplicitStride;
|
var implictStride : ArrayImplicitStride;
|
||||||
implict = explicit;
|
implictStride = explicitStride;
|
||||||
}
|
}
|
||||||
|
|
|
@ -4,7 +4,7 @@ void unused_entry_point() {
|
||||||
}
|
}
|
||||||
|
|
||||||
void foo() {
|
void foo() {
|
||||||
int tint_symbol[2] = (int[2])0;
|
int explicitStride[2] = (int[2])0;
|
||||||
int implict[2] = (int[2])0;
|
int implictStride[2] = (int[2])0;
|
||||||
implict = tint_symbol;
|
implictStride = explicitStride;
|
||||||
}
|
}
|
||||||
|
|
|
@ -4,7 +4,7 @@ void unused_entry_point() {
|
||||||
}
|
}
|
||||||
|
|
||||||
void foo() {
|
void foo() {
|
||||||
int tint_symbol[2] = (int[2])0;
|
int explicitStride[2] = (int[2])0;
|
||||||
int implict[2] = (int[2])0;
|
int implictStride[2] = (int[2])0;
|
||||||
implict = tint_symbol;
|
implictStride = explicitStride;
|
||||||
}
|
}
|
||||||
|
|
|
@ -5,8 +5,8 @@ void unused_entry_point() {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
void foo() {
|
void foo() {
|
||||||
int explicit[2] = int[2](0, 0);
|
int explicitStride[2] = int[2](0, 0);
|
||||||
int implict[2] = int[2](0, 0);
|
int implictStride[2] = int[2](0, 0);
|
||||||
implict = explicit;
|
implictStride = explicitStride;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -15,8 +15,8 @@ struct tint_array {
|
||||||
};
|
};
|
||||||
|
|
||||||
void foo() {
|
void foo() {
|
||||||
tint_array<int, 2> tint_symbol = {};
|
tint_array<int, 2> explicitStride = {};
|
||||||
tint_array<int, 2> implict = {};
|
tint_array<int, 2> implictStride = {};
|
||||||
implict = tint_symbol;
|
implictStride = explicitStride;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -9,8 +9,8 @@
|
||||||
OpExecutionMode %unused_entry_point LocalSize 1 1 1
|
OpExecutionMode %unused_entry_point LocalSize 1 1 1
|
||||||
OpName %unused_entry_point "unused_entry_point"
|
OpName %unused_entry_point "unused_entry_point"
|
||||||
OpName %foo "foo"
|
OpName %foo "foo"
|
||||||
OpName %explicit "explicit"
|
OpName %explicitStride "explicitStride"
|
||||||
OpName %implict "implict"
|
OpName %implictStride "implictStride"
|
||||||
OpDecorate %_arr_int_uint_2 ArrayStride 4
|
OpDecorate %_arr_int_uint_2 ArrayStride 4
|
||||||
%void = OpTypeVoid
|
%void = OpTypeVoid
|
||||||
%1 = OpTypeFunction %void
|
%1 = OpTypeFunction %void
|
||||||
|
@ -26,9 +26,9 @@
|
||||||
OpFunctionEnd
|
OpFunctionEnd
|
||||||
%foo = OpFunction %void None %1
|
%foo = OpFunction %void None %1
|
||||||
%6 = OpLabel
|
%6 = OpLabel
|
||||||
%explicit = OpVariable %_ptr_Function__arr_int_uint_2 Function %13
|
%explicitStride = OpVariable %_ptr_Function__arr_int_uint_2 Function %13
|
||||||
%implict = 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 %explicit
|
%15 = OpLoad %_arr_int_uint_2 %explicitStride
|
||||||
OpStore %implict %15
|
OpStore %implictStride %15
|
||||||
OpReturn
|
OpReturn
|
||||||
OpFunctionEnd
|
OpFunctionEnd
|
||||||
|
|
|
@ -3,7 +3,7 @@ type ArrayExplicitStride = array<i32, 2>;
|
||||||
type ArrayImplicitStride = array<i32, 2>;
|
type ArrayImplicitStride = array<i32, 2>;
|
||||||
|
|
||||||
fn foo() {
|
fn foo() {
|
||||||
var explicit : ArrayExplicitStride;
|
var explicitStride : ArrayExplicitStride;
|
||||||
var implict : ArrayImplicitStride;
|
var implictStride : ArrayImplicitStride;
|
||||||
implict = explicit;
|
implictStride = explicitStride;
|
||||||
}
|
}
|
||||||
|
|
|
@ -3,5 +3,5 @@ var<private> I : i32;
|
||||||
@compute @workgroup_size(1)
|
@compute @workgroup_size(1)
|
||||||
fn main() {
|
fn main() {
|
||||||
let i : i32 = I;
|
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)]
|
[numthreads(1, 1, 1)]
|
||||||
void main() {
|
void main() {
|
||||||
const int use = (I + 1);
|
const int u = (I + 1);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
|
@ -2,6 +2,6 @@ static int I = 0;
|
||||||
|
|
||||||
[numthreads(1, 1, 1)]
|
[numthreads(1, 1, 1)]
|
||||||
void main() {
|
void main() {
|
||||||
const int use = (I + 1);
|
const int u = (I + 1);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
|
@ -2,7 +2,7 @@
|
||||||
|
|
||||||
int I = 0;
|
int I = 0;
|
||||||
void tint_symbol() {
|
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;
|
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() {
|
kernel void tint_symbol() {
|
||||||
thread int tint_symbol_1 = 0;
|
thread int tint_symbol_1 = 0;
|
||||||
int const i = tint_symbol_1;
|
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;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -3,5 +3,5 @@ var<private> I : i32;
|
||||||
@compute @workgroup_size(1)
|
@compute @workgroup_size(1)
|
||||||
fn main() {
|
fn main() {
|
||||||
let i : i32 = I;
|
let i : i32 = I;
|
||||||
let use : i32 = (i + 1);
|
let u : i32 = (i + 1);
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
@compute @workgroup_size(1)
|
@compute @workgroup_size(1)
|
||||||
fn main() {
|
fn main() {
|
||||||
var i : i32 = 123;
|
var i : i32 = 123;
|
||||||
let use : i32 = i + 1;
|
let u : i32 = i + 1;
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
[numthreads(1, 1, 1)]
|
[numthreads(1, 1, 1)]
|
||||||
void main() {
|
void main() {
|
||||||
int i = 123;
|
int i = 123;
|
||||||
const int use = (i + 1);
|
const int u = (i + 1);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
[numthreads(1, 1, 1)]
|
[numthreads(1, 1, 1)]
|
||||||
void main() {
|
void main() {
|
||||||
int i = 123;
|
int i = 123;
|
||||||
const int use = (i + 1);
|
const int u = (i + 1);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
|
@ -2,7 +2,7 @@
|
||||||
|
|
||||||
void tint_symbol() {
|
void tint_symbol() {
|
||||||
int i = 123;
|
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;
|
layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
|
||||||
|
|
|
@ -3,7 +3,7 @@
|
||||||
using namespace metal;
|
using namespace metal;
|
||||||
kernel void tint_symbol() {
|
kernel void tint_symbol() {
|
||||||
int i = 123;
|
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;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
@compute @workgroup_size(1)
|
@compute @workgroup_size(1)
|
||||||
fn main() {
|
fn main() {
|
||||||
var i : i32 = 123;
|
var i : i32 = 123;
|
||||||
let use : i32 = (i + 1);
|
let u : i32 = (i + 1);
|
||||||
}
|
}
|
||||||
|
|
|
@ -2,5 +2,5 @@
|
||||||
fn main() {
|
fn main() {
|
||||||
var i : i32 = 123;
|
var i : i32 = 123;
|
||||||
let p : ptr<function, i32> = &i;
|
let p : ptr<function, i32> = &i;
|
||||||
let use : i32 = *p + 1;
|
let u : i32 = *p + 1;
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
[numthreads(1, 1, 1)]
|
[numthreads(1, 1, 1)]
|
||||||
void main() {
|
void main() {
|
||||||
int i = 123;
|
int i = 123;
|
||||||
const int use = (i + 1);
|
const int u = (i + 1);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
[numthreads(1, 1, 1)]
|
[numthreads(1, 1, 1)]
|
||||||
void main() {
|
void main() {
|
||||||
int i = 123;
|
int i = 123;
|
||||||
const int use = (i + 1);
|
const int u = (i + 1);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
|
@ -2,7 +2,7 @@
|
||||||
|
|
||||||
void tint_symbol() {
|
void tint_symbol() {
|
||||||
int i = 123;
|
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;
|
layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
|
||||||
|
|
|
@ -3,7 +3,7 @@
|
||||||
using namespace metal;
|
using namespace metal;
|
||||||
kernel void tint_symbol() {
|
kernel void tint_symbol() {
|
||||||
int i = 123;
|
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;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -2,5 +2,5 @@
|
||||||
fn main() {
|
fn main() {
|
||||||
var i : i32 = 123;
|
var i : i32 = 123;
|
||||||
let p : ptr<function, i32> = &(i);
|
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)
|
@compute @workgroup_size(1)
|
||||||
fn main() {
|
fn main() {
|
||||||
let p : ptr<private, i32> = &i;
|
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)]
|
[numthreads(1, 1, 1)]
|
||||||
void main() {
|
void main() {
|
||||||
const int use = (i + 1);
|
const int u = (i + 1);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
|
@ -2,6 +2,6 @@ static int i = 123;
|
||||||
|
|
||||||
[numthreads(1, 1, 1)]
|
[numthreads(1, 1, 1)]
|
||||||
void main() {
|
void main() {
|
||||||
const int use = (i + 1);
|
const int u = (i + 1);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
|
@ -2,7 +2,7 @@
|
||||||
|
|
||||||
int i = 123;
|
int i = 123;
|
||||||
void tint_symbol() {
|
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;
|
layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
|
||||||
|
|
|
@ -3,7 +3,7 @@
|
||||||
using namespace metal;
|
using namespace metal;
|
||||||
kernel void tint_symbol() {
|
kernel void tint_symbol() {
|
||||||
thread int tint_symbol_1 = 123;
|
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;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -3,5 +3,5 @@ var<private> i : i32 = 123;
|
||||||
@compute @workgroup_size(1)
|
@compute @workgroup_size(1)
|
||||||
fn main() {
|
fn main() {
|
||||||
let p : ptr<private, i32> = &(i);
|
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)
|
@compute @workgroup_size(1)
|
||||||
fn main() {
|
fn main() {
|
||||||
let p : ptr<storage, i32, read_write> = &v.a;
|
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)]
|
[numthreads(1, 1, 1)]
|
||||||
void main() {
|
void main() {
|
||||||
const int use = (asint(v.Load(0u)) + 1);
|
const int u = (asint(v.Load(0u)) + 1);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
|
@ -2,6 +2,6 @@ RWByteAddressBuffer v : register(u0, space0);
|
||||||
|
|
||||||
[numthreads(1, 1, 1)]
|
[numthreads(1, 1, 1)]
|
||||||
void main() {
|
void main() {
|
||||||
const int use = (asint(v.Load(0u)) + 1);
|
const int u = (asint(v.Load(0u)) + 1);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
|
@ -8,7 +8,7 @@ layout(binding = 0, std430) buffer S_1 {
|
||||||
int a;
|
int a;
|
||||||
} v;
|
} v;
|
||||||
void tint_symbol() {
|
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;
|
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)]]) {
|
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;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -7,5 +7,5 @@ struct S {
|
||||||
@compute @workgroup_size(1)
|
@compute @workgroup_size(1)
|
||||||
fn main() {
|
fn main() {
|
||||||
let p : ptr<storage, i32, read_write> = &(v.a);
|
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)
|
@compute @workgroup_size(1)
|
||||||
fn main() {
|
fn main() {
|
||||||
let p : ptr<uniform, i32> = &v.a;
|
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)]
|
[numthreads(1, 1, 1)]
|
||||||
void main() {
|
void main() {
|
||||||
const int use = (asint(v[0].x) + 1);
|
const int u = (asint(v[0].x) + 1);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
|
@ -4,6 +4,6 @@ cbuffer cbuffer_v : register(b0, space0) {
|
||||||
|
|
||||||
[numthreads(1, 1, 1)]
|
[numthreads(1, 1, 1)]
|
||||||
void main() {
|
void main() {
|
||||||
const int use = (asint(v[0].x) + 1);
|
const int u = (asint(v[0].x) + 1);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
|
@ -9,7 +9,7 @@ layout(binding = 0) uniform S_1 {
|
||||||
} v;
|
} v;
|
||||||
|
|
||||||
void tint_symbol() {
|
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;
|
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)]]) {
|
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;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -7,5 +7,5 @@ struct S {
|
||||||
@compute @workgroup_size(1)
|
@compute @workgroup_size(1)
|
||||||
fn main() {
|
fn main() {
|
||||||
let p : ptr<uniform, i32> = &(v.a);
|
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() {
|
fn main() {
|
||||||
i = 123;
|
i = 123;
|
||||||
let p : ptr<workgroup, i32> = &i;
|
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();
|
GroupMemoryBarrierWithGroupSync();
|
||||||
i = 123;
|
i = 123;
|
||||||
const int use = (i + 1);
|
const int u = (i + 1);
|
||||||
}
|
}
|
||||||
|
|
||||||
[numthreads(1, 1, 1)]
|
[numthreads(1, 1, 1)]
|
||||||
|
|
|
@ -10,7 +10,7 @@ void main_inner(uint local_invocation_index) {
|
||||||
}
|
}
|
||||||
GroupMemoryBarrierWithGroupSync();
|
GroupMemoryBarrierWithGroupSync();
|
||||||
i = 123;
|
i = 123;
|
||||||
const int use = (i + 1);
|
const int u = (i + 1);
|
||||||
}
|
}
|
||||||
|
|
||||||
[numthreads(1, 1, 1)]
|
[numthreads(1, 1, 1)]
|
||||||
|
|
|
@ -7,7 +7,7 @@ void tint_symbol(uint local_invocation_index) {
|
||||||
}
|
}
|
||||||
barrier();
|
barrier();
|
||||||
i = 123;
|
i = 123;
|
||||||
int use = (i + 1);
|
int u = (i + 1);
|
||||||
}
|
}
|
||||||
|
|
||||||
layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
|
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);
|
threadgroup_barrier(mem_flags::mem_threadgroup);
|
||||||
*(tint_symbol_1) = 123;
|
*(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]]) {
|
kernel void tint_symbol(uint local_invocation_index [[thread_index_in_threadgroup]]) {
|
||||||
|
|
|
@ -4,5 +4,5 @@ var<workgroup> i : i32;
|
||||||
fn main() {
|
fn main() {
|
||||||
i = 123;
|
i = 123;
|
||||||
let p : ptr<workgroup, i32> = &(i);
|
let p : ptr<workgroup, i32> = &(i);
|
||||||
let use : i32 = (*(p) + 1);
|
let u : i32 = (*(p) + 1);
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue