Update storage_buffer storage class. This Cl updates the `storage_buffer` storage class to just be `storage`. Change-Id: Ibfaecbb0862bd60d39665eb937c0b6300899e177 Reviewed-on: https://dawn-review.googlesource.com/c/tint/+/38161 Auto-Submit: dan sinclair <dsinclair@chromium.org> Reviewed-by: David Neto <dneto@google.com> Commit-Queue: dan sinclair <dsinclair@chromium.org>
diff --git a/fuzzers/dictionary.txt b/fuzzers/dictionary.txt index 359d58f..08a5059 100644 --- a/fuzzers/dictionary.txt +++ b/fuzzers/dictionary.txt
@@ -76,7 +76,7 @@ "sampler" "sampler_comparison" "set" -"storage_buffer" +"storage" "stage" "stride" "struct"
diff --git a/src/ast/function.cc b/src/ast/function.cc index ebd21d1..822d8cb 100644 --- a/src/ast/function.cc +++ b/src/ast/function.cc
@@ -130,7 +130,7 @@ std::vector<std::pair<Variable*, Function::BindingInfo>> ret; for (auto* var : referenced_module_variables()) { - if (var->storage_class() != StorageClass::kStorageBuffer) { + if (var->storage_class() != StorageClass::kStorage) { continue; }
diff --git a/src/ast/module_clone_test.cc b/src/ast/module_clone_test.cc index 4e61aca..e42cb9a 100644 --- a/src/ast/module_clone_test.cc +++ b/src/ast/module_clone_test.cc
@@ -51,10 +51,10 @@ var<uniform> g6 : [[access(write)]] texture_storage_2d<rg32float>; [[builtin(position)]] var<uniform> g7 : vec3<f32>; -[[group(10), binding(20)]] var<storage_buffer> g7 : S; -[[group(10), binding(20)]] var<storage_buffer> g8 : [[access(read)]] +[[group(10), binding(20)]] var<storage> g7 : S; +[[group(10), binding(20)]] var<storage> g8 : [[access(read)]] S; -[[group(10), binding(20)]] var<storage_buffer> g9 : [[access(read_write)]] +[[group(10), binding(20)]] var<storage> g9 : [[access(read_write)]] S; fn f0(p0 : bool) -> f32 {
diff --git a/src/ast/storage_class.cc b/src/ast/storage_class.cc index add2597..13aa696 100644 --- a/src/ast/storage_class.cc +++ b/src/ast/storage_class.cc
@@ -43,8 +43,8 @@ out << "uniform_constant"; break; } - case StorageClass::kStorageBuffer: { - out << "storage_buffer"; + case StorageClass::kStorage: { + out << "storage"; break; } case StorageClass::kImage: {
diff --git a/src/ast/storage_class.h b/src/ast/storage_class.h index 2fd13cd..09bb41c 100644 --- a/src/ast/storage_class.h +++ b/src/ast/storage_class.h
@@ -28,7 +28,7 @@ kUniform, kWorkgroup, kUniformConstant, - kStorageBuffer, + kStorage, kImage, kPrivate, kFunction
diff --git a/src/ast/type/pointer_type_test.cc b/src/ast/type/pointer_type_test.cc index 0089c43..95a4c87 100644 --- a/src/ast/type/pointer_type_test.cc +++ b/src/ast/type/pointer_type_test.cc
@@ -35,9 +35,9 @@ TEST_F(PointerTest, Creation) { I32 i32; - Pointer p{&i32, StorageClass::kStorageBuffer}; + Pointer p{&i32, StorageClass::kStorage}; EXPECT_EQ(p.type(), &i32); - EXPECT_EQ(p.storage_class(), StorageClass::kStorageBuffer); + EXPECT_EQ(p.storage_class(), StorageClass::kStorage); } TEST_F(PointerTest, Is) {
diff --git a/src/inspector/inspector_test.cc b/src/inspector/inspector_test.cc index 8be535e..0dd9ee0 100644 --- a/src/inspector/inspector_test.cc +++ b/src/inspector/inspector_test.cc
@@ -356,7 +356,7 @@ ast::type::Type* type, uint32_t group, uint32_t binding) { - AddBinding(name, type, ast::StorageClass::kStorageBuffer, group, binding); + AddBinding(name, type, ast::StorageClass::kStorage, group, binding); } /// Generates a function that references a specific struct variable
diff --git a/src/reader/spirv/enum_converter.cc b/src/reader/spirv/enum_converter.cc index fa7cc1e..8719140 100644 --- a/src/reader/spirv/enum_converter.cc +++ b/src/reader/spirv/enum_converter.cc
@@ -51,7 +51,7 @@ case SpvStorageClassUniformConstant: return ast::StorageClass::kUniformConstant; case SpvStorageClassStorageBuffer: - return ast::StorageClass::kStorageBuffer; + return ast::StorageClass::kStorage; case SpvStorageClassImage: return ast::StorageClass::kImage; case SpvStorageClassPrivate:
diff --git a/src/reader/spirv/enum_converter_test.cc b/src/reader/spirv/enum_converter_test.cc index 426b94d..bf4c5c0 100644 --- a/src/reader/spirv/enum_converter_test.cc +++ b/src/reader/spirv/enum_converter_test.cc
@@ -148,7 +148,7 @@ StorageClassCase{SpvStorageClassUniformConstant, true, ast::StorageClass::kUniformConstant}, StorageClassCase{SpvStorageClassStorageBuffer, true, - ast::StorageClass::kStorageBuffer}, + ast::StorageClass::kStorage}, StorageClassCase{SpvStorageClassImage, true, ast::StorageClass::kImage}, StorageClassCase{SpvStorageClassPrivate, true, ast::StorageClass::kPrivate},
diff --git a/src/reader/spirv/function_memory_test.cc b/src/reader/spirv/function_memory_test.cc index 37dede2..29023df 100644 --- a/src/reader/spirv/function_memory_test.cc +++ b/src/reader/spirv/function_memory_test.cc
@@ -811,7 +811,7 @@ } Variable{ myvar - storage_buffer + storage __access_control_read_write__struct_S })")); } @@ -913,7 +913,7 @@ VariableConst{ x_2 none - __ptr_storage_buffer__u32 + __ptr_storage__u32 { ArrayAccessor[not set]{ MemberAccessor[not set]{ @@ -969,7 +969,7 @@ Variable{ x_2 function - __ptr_storage_buffer__u32 + __ptr_storage__u32 } } If{
diff --git a/src/reader/spirv/namer.cc b/src/reader/spirv/namer.cc index 8ba38fa..d23a0c3 100644 --- a/src/reader/spirv/namer.cc +++ b/src/reader/spirv/namer.cc
@@ -26,84 +26,32 @@ const char* kWGSLReservedWords[] = { // Please keep this list sorted - "array", - "as", - "asm", - "bf16", - "binding", - "block", - "bool", - "break", - "builtin", - "case", - "cast", - "compute", - "const", - "constant_id", - "continue", - "default", - "discard", - "do", - "else", - "elseif", - "entry_point", - "enum", - "f16", - "f32", - "fallthrough", - "false", - "fn", - "for", - "fragment", - "i16", - "i32", - "i64", - "i8", - "if", - "image", - "import", - "in", - "let", - "location", - "loop", - "mat2x2", - "mat2x3", - "mat2x4", - "mat3x2", - "mat3x3", - "mat3x4", - "mat4x2", - "mat4x3", - "mat4x4", - "offset", - "out", - "premerge", - "private", - "ptr", - "regardless", - "return", - "set", - "storage_buffer", - "struct", - "switch", - "true", - "type", - "typedef", - "u16", - "u32", - "u64", - "u8", - "uniform", - "uniform_constant", - "unless", - "using", - "var", - "vec2", - "vec3", - "vec4", - "vertex", - "void", - "while", + "array", "as", "asm", + "bf16", "binding", "block", + "bool", "break", "builtin", + "case", "cast", "compute", + "const", "constant_id", "continue", + "default", "discard", "do", + "else", "elseif", "entry_point", + "enum", "f16", "f32", + "fallthrough", "false", "fn", + "for", "fragment", "i16", + "i32", "i64", "i8", + "if", "image", "import", + "in", "let", "location", + "loop", "mat2x2", "mat2x3", + "mat2x4", "mat3x2", "mat3x3", + "mat3x4", "mat4x2", "mat4x3", + "mat4x4", "offset", "out", + "premerge", "private", "ptr", + "regardless", "return", "set", + "storage", "struct", "switch", + "true", "type", "typedef", + "u16", "u32", "u64", + "u8", "uniform", "uniform_constant", + "unless", "using", "var", + "vec2", "vec3", "vec4", + "vertex", "void", "while", "workgroup", };
diff --git a/src/reader/spirv/namer_test.cc b/src/reader/spirv/namer_test.cc index 96dc0e3..9ebc3a7 100644 --- a/src/reader/spirv/namer_test.cc +++ b/src/reader/spirv/namer_test.cc
@@ -324,84 +324,32 @@ SpvNamerReservedWordTest, ::testing::ValuesIn(std::vector<std::string>{ // Please keep this list sorted. - "array", - "as", - "asm", - "bf16", - "binding", - "block", - "bool", - "break", - "builtin", - "case", - "cast", - "compute", - "const", - "constant_id", - "continue", - "default", - "discard", - "do", - "else", - "elseif", - "entry_point", - "enum", - "f16", - "f32", - "fallthrough", - "false", - "fn", - "for", - "fragment", - "i16", - "i32", - "i64", - "i8", - "if", - "image", - "import", - "in", - "let", - "location", - "loop", - "mat2x2", - "mat2x3", - "mat2x4", - "mat3x2", - "mat3x3", - "mat3x4", - "mat4x2", - "mat4x3", - "mat4x4", - "offset", - "out", - "premerge", - "private", - "ptr", - "regardless", - "return", - "set", - "storage_buffer", - "struct", - "switch", - "true", - "type", - "typedef", - "u16", - "u32", - "u64", - "u8", - "uniform", - "uniform_constant", - "unless", - "using", - "var", - "vec2", - "vec3", - "vec4", - "vertex", - "void", - "while", + "array", "as", "asm", + "bf16", "binding", "block", + "bool", "break", "builtin", + "case", "cast", "compute", + "const", "constant_id", "continue", + "default", "discard", "do", + "else", "elseif", "entry_point", + "enum", "f16", "f32", + "fallthrough", "false", "fn", + "for", "fragment", "i16", + "i32", "i64", "i8", + "if", "image", "import", + "in", "let", "location", + "loop", "mat2x2", "mat2x3", + "mat2x4", "mat3x2", "mat3x3", + "mat3x4", "mat4x2", "mat4x3", + "mat4x4", "offset", "out", + "premerge", "private", "ptr", + "regardless", "return", "set", + "storage", "struct", "switch", + "true", "type", "typedef", + "u16", "u32", "u64", + "u8", "uniform", "uniform_constant", + "unless", "using", "var", + "vec2", "vec3", "vec4", + "vertex", "void", "while", "workgroup", }));
diff --git a/src/reader/spirv/parser_impl.cc b/src/reader/spirv/parser_impl.cc index 93c685e..a9b7281 100644 --- a/src/reader/spirv/parser_impl.cc +++ b/src/reader/spirv/parser_impl.cc
@@ -1002,7 +1002,7 @@ } if (ast_storage_class == ast::StorageClass::kUniform && remap_buffer_block_type_.count(pointee_type_id)) { - ast_storage_class = ast::StorageClass::kStorageBuffer; + ast_storage_class = ast::StorageClass::kStorage; remap_buffer_block_type_.insert(type_id); } return ast_module_.create<ast::type::Pointer>(ast_elem_ty, ast_storage_class); @@ -1163,7 +1163,7 @@ case ast::StorageClass::kOutput: case ast::StorageClass::kUniform: case ast::StorageClass::kUniformConstant: - case ast::StorageClass::kStorageBuffer: + case ast::StorageClass::kStorage: case ast::StorageClass::kImage: case ast::StorageClass::kWorkgroup: case ast::StorageClass::kPrivate: @@ -1246,7 +1246,7 @@ return nullptr; } - if (sc == ast::StorageClass::kStorageBuffer) { + if (sc == ast::StorageClass::kStorage) { // Apply the access(read) or access(read_write) modifier. auto access = read_only_struct_types_.count(type) ? ast::AccessControl::kReadOnly
diff --git a/src/reader/spirv/parser_impl_convert_type_test.cc b/src/reader/spirv/parser_impl_convert_type_test.cc index 0e07f20..99bf393 100644 --- a/src/reader/spirv/parser_impl_convert_type_test.cc +++ b/src/reader/spirv/parser_impl_convert_type_test.cc
@@ -742,7 +742,7 @@ auto* ptr_ty = type->As<ast::type::Pointer>(); EXPECT_NE(ptr_ty, nullptr); EXPECT_TRUE(ptr_ty->type()->Is<ast::type::F32>()); - EXPECT_EQ(ptr_ty->storage_class(), ast::StorageClass::kStorageBuffer); + EXPECT_EQ(ptr_ty->storage_class(), ast::StorageClass::kStorage); EXPECT_TRUE(p->error().empty()); }
diff --git a/src/reader/spirv/parser_impl_module_var_test.cc b/src/reader/spirv/parser_impl_module_var_test.cc index 0c50d0d..aca14de 100644 --- a/src/reader/spirv/parser_impl_module_var_test.cc +++ b/src/reader/spirv/parser_impl_module_var_test.cc
@@ -1590,7 +1590,7 @@ GroupDecoration{3} } myvar - storage_buffer + storage __access_control_read_write__struct_S })")) << module_str; @@ -1645,7 +1645,7 @@ BindingDecoration{3} } myvar - storage_buffer + storage __access_control_read_write__struct_S })")) << module_str; @@ -1703,7 +1703,7 @@ } Variable{ myvar - storage_buffer + storage __access_control_read_write__struct_S } )")) << module_str; @@ -1733,7 +1733,7 @@ } Variable{ myvar - storage_buffer + storage __access_control_read_write__struct_S } })")) << module_str; @@ -1763,7 +1763,7 @@ } Variable{ myvar - storage_buffer + storage __access_control_read_write__struct_S } })")) << module_str; @@ -1814,7 +1814,7 @@ } Variable{ myvar - storage_buffer + storage __access_control_read_only__struct_S } })")) << module_str; @@ -1844,7 +1844,7 @@ } Variable{ myvar - storage_buffer + storage __access_control_read_write__struct_S } })")) << module_str; @@ -1877,7 +1877,7 @@ } Variable{ myvar - storage_buffer + storage __access_control_read_write__struct_S } })")) << module_str;
diff --git a/src/reader/wgsl/lexer.cc b/src/reader/wgsl/lexer.cc index c94dba2..8d1b0f4 100644 --- a/src/reader/wgsl/lexer.cc +++ b/src/reader/wgsl/lexer.cc
@@ -640,8 +640,8 @@ return {Token::Type::kSampler, source, "sampler"}; if (str == "sampler_comparison") return {Token::Type::kComparisonSampler, source, "sampler_comparison"}; - if (str == "storage_buffer") - return {Token::Type::kStorageBuffer, source, "storage_buffer"}; + if (str == "storage_buffer" || str == "storage") + return {Token::Type::kStorage, source, "storage"}; if (str == "struct") return {Token::Type::kStruct, source, "struct"}; if (str == "switch") @@ -821,6 +821,8 @@ return {Token::Type::kReservedKeyword, source, "f16"}; if (str == "f64") return {Token::Type::kReservedKeyword, source, "f64"}; + if (str == "handle") + return {Token::Type::kReservedKeyword, source, "handle"}; if (str == "i8") return {Token::Type::kReservedKeyword, source, "i8"}; if (str == "i16")
diff --git a/src/reader/wgsl/lexer_test.cc b/src/reader/wgsl/lexer_test.cc index 36ead45..cdcdf34 100644 --- a/src/reader/wgsl/lexer_test.cc +++ b/src/reader/wgsl/lexer_test.cc
@@ -540,7 +540,8 @@ TokenData{"return", Token::Type::kReturn}, TokenData{"sampler", Token::Type::kSampler}, TokenData{"sampler_comparison", Token::Type::kComparisonSampler}, - TokenData{"storage_buffer", Token::Type::kStorageBuffer}, + TokenData{"storage", Token::Type::kStorage}, + TokenData{"storage_buffer", Token::Type::kStorage}, TokenData{"struct", Token::Type::kStruct}, TokenData{"switch", Token::Type::kSwitch}, TokenData{"texture_1d", Token::Type::kTextureSampled1d}, @@ -638,6 +639,7 @@ "enum", "f16", "f64", + "handle", "i8", "i16", "i64",
diff --git a/src/reader/wgsl/parser_impl.cc b/src/reader/wgsl/parser_impl.cc index b6fe130..2175a46 100644 --- a/src/reader/wgsl/parser_impl.cc +++ b/src/reader/wgsl/parser_impl.cc
@@ -1177,7 +1177,7 @@ // | UNIFORM // | WORKGROUP // | UNIFORM_CONSTANT -// | STORAGE_BUFFER +// | STORAGE // | IMAGE // | PRIVATE // | FUNCTION @@ -1198,8 +1198,8 @@ if (match(Token::Type::kUniformConstant)) return ast::StorageClass::kUniformConstant; - if (match(Token::Type::kStorageBuffer)) - return ast::StorageClass::kStorageBuffer; + if (match(Token::Type::kStorage)) + return ast::StorageClass::kStorage; if (match(Token::Type::kImage)) return ast::StorageClass::kImage;
diff --git a/src/reader/wgsl/parser_impl_storage_class_test.cc b/src/reader/wgsl/parser_impl_storage_class_test.cc index 5e0f0cc..ac37fa8 100644 --- a/src/reader/wgsl/parser_impl_storage_class_test.cc +++ b/src/reader/wgsl/parser_impl_storage_class_test.cc
@@ -55,7 +55,8 @@ StorageClassData{"workgroup", ast::StorageClass::kWorkgroup}, StorageClassData{"uniform_constant", ast::StorageClass::kUniformConstant}, - StorageClassData{"storage_buffer", ast::StorageClass::kStorageBuffer}, + StorageClassData{"storage", ast::StorageClass::kStorage}, + StorageClassData{"storage_buffer", ast::StorageClass::kStorage}, StorageClassData{"image", ast::StorageClass::kImage}, StorageClassData{"private", ast::StorageClass::kPrivate}, StorageClassData{"function", ast::StorageClass::kFunction}));
diff --git a/src/reader/wgsl/parser_impl_variable_storage_decoration_test.cc b/src/reader/wgsl/parser_impl_variable_storage_decoration_test.cc index 5f8c6ca..aebbb96 100644 --- a/src/reader/wgsl/parser_impl_variable_storage_decoration_test.cc +++ b/src/reader/wgsl/parser_impl_variable_storage_decoration_test.cc
@@ -57,8 +57,8 @@ VariableStorageData{"workgroup", ast::StorageClass::kWorkgroup}, VariableStorageData{"uniform_constant", ast::StorageClass::kUniformConstant}, - VariableStorageData{"storage_buffer", - ast::StorageClass::kStorageBuffer}, + VariableStorageData{"storage", ast::StorageClass::kStorage}, + VariableStorageData{"storage_buffer", ast::StorageClass::kStorage}, VariableStorageData{"image", ast::StorageClass::kImage}, VariableStorageData{"private", ast::StorageClass::kPrivate}, VariableStorageData{"function", ast::StorageClass::kFunction}));
diff --git a/src/reader/wgsl/token.cc b/src/reader/wgsl/token.cc index 1ba7385..50ff0d5 100644 --- a/src/reader/wgsl/token.cc +++ b/src/reader/wgsl/token.cc
@@ -251,8 +251,8 @@ return "sampler"; case Token::Type::kComparisonSampler: return "sampler_comparison"; - case Token::Type::kStorageBuffer: - return "storage_buffer"; + case Token::Type::kStorage: + return "storage"; case Token::Type::kStruct: return "struct"; case Token::Type::kSwitch:
diff --git a/src/reader/wgsl/token.h b/src/reader/wgsl/token.h index 58d6b52..79e04ce 100644 --- a/src/reader/wgsl/token.h +++ b/src/reader/wgsl/token.h
@@ -262,8 +262,8 @@ kSampler, /// A 'sampler_comparison' kComparisonSampler, - /// A 'storage_buffer' - kStorageBuffer, + /// A 'storage' + kStorage, /// A 'struct' kStruct, /// A 'switch' @@ -629,8 +629,8 @@ bool IsReturn() const { return type_ == Type::kReturn; } /// @returns true if token is a 'sampler' bool IsSampler() const { return type_ == Type::kSampler; } - /// @returns true if token is a 'storage_buffer' - bool IsStorageBuffer() const { return type_ == Type::kStorageBuffer; } + /// @returns true if token is a 'storage' + bool IsStorage() const { return type_ == Type::kStorage; } /// @returns true if token is a 'struct' bool IsStruct() const { return type_ == Type::kStruct; } /// @returns true if token is a 'switch'
diff --git a/src/transform/vertex_pulling.cc b/src/transform/vertex_pulling.cc index 3ec0ce3..ae121f4 100644 --- a/src/transform/vertex_pulling.cc +++ b/src/transform/vertex_pulling.cc
@@ -288,12 +288,12 @@ // The decorated variable with struct type std::string name = GetVertexBufferName(i); auto* var = out->create<ast::Variable>( - Source{}, // source - out->RegisterSymbol(name), // symbol - ast::StorageClass::kStorageBuffer, // storage_class - struct_type, // type - false, // is_const - nullptr, // constructor + Source{}, // source + out->RegisterSymbol(name), // symbol + ast::StorageClass::kStorage, // storage_class + struct_type, // type + false, // is_const + nullptr, // constructor ast::VariableDecorationList{ // decorations out->create<ast::BindingDecoration>(Source{}, i),
diff --git a/src/transform/vertex_pulling_test.cc b/src/transform/vertex_pulling_test.cc index 4317785..edc8abc 100644 --- a/src/transform/vertex_pulling_test.cc +++ b/src/transform/vertex_pulling_test.cc
@@ -134,7 +134,7 @@ }; [[builtin(vertex_index)]] var<in> _tint_pulling_vertex_index : i32; -[[binding(0), group(4)]] var<storage_buffer> _tint_pulling_vertex_buffer_0 : TintVertexData; +[[binding(0), group(4)]] var<storage> _tint_pulling_vertex_buffer_0 : TintVertexData; var<private> var_a : f32; [[stage(vertex)]] @@ -173,7 +173,7 @@ }; [[builtin(instance_index)]] var<in> _tint_pulling_instance_index : i32; -[[binding(0), group(4)]] var<storage_buffer> _tint_pulling_vertex_buffer_0 : TintVertexData; +[[binding(0), group(4)]] var<storage> _tint_pulling_vertex_buffer_0 : TintVertexData; var<private> var_a : f32; [[stage(vertex)]] @@ -212,7 +212,7 @@ }; [[builtin(vertex_index)]] var<in> _tint_pulling_vertex_index : i32; -[[binding(0), group(5)]] var<storage_buffer> _tint_pulling_vertex_buffer_0 : TintVertexData; +[[binding(0), group(5)]] var<storage> _tint_pulling_vertex_buffer_0 : TintVertexData; var<private> var_a : f32; [[stage(vertex)]] @@ -255,8 +255,8 @@ _tint_vertex_data : [[stride(4)]] array<u32>; }; -[[binding(0), group(4)]] var<storage_buffer> _tint_pulling_vertex_buffer_0 : TintVertexData; -[[binding(1), group(4)]] var<storage_buffer> _tint_pulling_vertex_buffer_1 : TintVertexData; +[[binding(0), group(4)]] var<storage> _tint_pulling_vertex_buffer_0 : TintVertexData; +[[binding(1), group(4)]] var<storage> _tint_pulling_vertex_buffer_1 : TintVertexData; var<private> var_a : f32; var<private> var_b : f32; [[builtin(vertex_index)]] var<in> custom_vertex_index : i32; @@ -302,7 +302,7 @@ }; [[builtin(vertex_index)]] var<in> _tint_pulling_vertex_index : i32; -[[binding(0), group(4)]] var<storage_buffer> _tint_pulling_vertex_buffer_0 : TintVertexData; +[[binding(0), group(4)]] var<storage> _tint_pulling_vertex_buffer_0 : TintVertexData; var<private> var_a : f32; var<private> var_b : array<f32, 4>; @@ -348,9 +348,9 @@ }; [[builtin(vertex_index)]] var<in> _tint_pulling_vertex_index : i32; -[[binding(0), group(4)]] var<storage_buffer> _tint_pulling_vertex_buffer_0 : TintVertexData; -[[binding(1), group(4)]] var<storage_buffer> _tint_pulling_vertex_buffer_1 : TintVertexData; -[[binding(2), group(4)]] var<storage_buffer> _tint_pulling_vertex_buffer_2 : TintVertexData; +[[binding(0), group(4)]] var<storage> _tint_pulling_vertex_buffer_0 : TintVertexData; +[[binding(1), group(4)]] var<storage> _tint_pulling_vertex_buffer_1 : TintVertexData; +[[binding(2), group(4)]] var<storage> _tint_pulling_vertex_buffer_2 : TintVertexData; var<private> var_a : array<f32, 2>; var<private> var_b : array<f32, 3>; var<private> var_c : array<f32, 4>;
diff --git a/src/type_determiner_test.cc b/src/type_determiner_test.cc index b05d2ee..42c9c7a 100644 --- a/src/type_determiner_test.cc +++ b/src/type_determiner_test.cc
@@ -650,7 +650,7 @@ TEST_F(TypeDeterminerTest, Function_RegisterInputOutputVariables) { auto* in_var = Var("in_var", ast::StorageClass::kInput, ty.f32); auto* out_var = Var("out_var", ast::StorageClass::kOutput, ty.f32); - auto* sb_var = Var("sb_var", ast::StorageClass::kStorageBuffer, ty.f32); + auto* sb_var = Var("sb_var", ast::StorageClass::kStorage, ty.f32); auto* wg_var = Var("wg_var", ast::StorageClass::kWorkgroup, ty.f32); auto* priv_var = Var("priv_var", ast::StorageClass::kPrivate, ty.f32); @@ -687,7 +687,7 @@ TEST_F(TypeDeterminerTest, Function_RegisterInputOutputVariables_SubFunction) { auto* in_var = Var("in_var", ast::StorageClass::kInput, ty.f32); auto* out_var = Var("out_var", ast::StorageClass::kOutput, ty.f32); - auto* sb_var = Var("sb_var", ast::StorageClass::kStorageBuffer, ty.f32); + auto* sb_var = Var("sb_var", ast::StorageClass::kStorage, ty.f32); auto* wg_var = Var("wg_var", ast::StorageClass::kWorkgroup, ty.f32); auto* priv_var = Var("priv_var", ast::StorageClass::kPrivate, ty.f32);
diff --git a/src/writer/hlsl/generator_impl.cc b/src/writer/hlsl/generator_impl.cc index 20fc255..e3e53ad 100644 --- a/src/writer/hlsl/generator_impl.cc +++ b/src/writer/hlsl/generator_impl.cc
@@ -2067,7 +2067,7 @@ if (!global_variables_.get(ident->symbol(), &var)) { return false; } - return var->storage_class() == ast::StorageClass::kStorageBuffer; + return var->storage_class() == ast::StorageClass::kStorage; } else if (auto* member = structure->As<ast::MemberAccessorExpression>()) { return is_storage_buffer_access(member); } else if (auto* array = structure->As<ast::ArrayAccessorExpression>()) {
diff --git a/src/writer/hlsl/generator_impl_function_test.cc b/src/writer/hlsl/generator_impl_function_test.cc index 557a35b..70ce1b3 100644 --- a/src/writer/hlsl/generator_impl_function_test.cc +++ b/src/writer/hlsl/generator_impl_function_test.cc
@@ -382,12 +382,11 @@ auto* s = ty.struct_("Data", str); ast::type::AccessControl ac(ast::AccessControl::kReadWrite, s); - auto* coord_var = - Var("coord", ast::StorageClass::kStorageBuffer, &ac, nullptr, - ast::VariableDecorationList{ - create<ast::BindingDecoration>(0), - create<ast::GroupDecoration>(1), - }); + auto* coord_var = Var("coord", ast::StorageClass::kStorage, &ac, nullptr, + ast::VariableDecorationList{ + create<ast::BindingDecoration>(0), + create<ast::GroupDecoration>(1), + }); td.RegisterVariableForTesting(coord_var); mod->AddGlobalVariable(coord_var); @@ -429,13 +428,12 @@ auto* s = ty.struct_("Data", str); ast::type::AccessControl ac(ast::AccessControl::kReadOnly, s); - auto* coord_var = - Var("coord", ast::StorageClass::kStorageBuffer, &ac, nullptr, - ast::VariableDecorationList{ - // decorations - create<ast::BindingDecoration>(0), - create<ast::GroupDecoration>(1), - }); + auto* coord_var = Var("coord", ast::StorageClass::kStorage, &ac, nullptr, + ast::VariableDecorationList{ + // decorations + create<ast::BindingDecoration>(0), + create<ast::GroupDecoration>(1), + }); td.RegisterVariableForTesting(coord_var); mod->AddGlobalVariable(coord_var); @@ -477,12 +475,11 @@ auto* s = ty.struct_("Data", str); ast::type::AccessControl ac(ast::AccessControl::kReadWrite, s); - auto* coord_var = - Var("coord", ast::StorageClass::kStorageBuffer, &ac, nullptr, - ast::VariableDecorationList{ - create<ast::BindingDecoration>(0), - create<ast::GroupDecoration>(1), - }); + auto* coord_var = Var("coord", ast::StorageClass::kStorage, &ac, nullptr, + ast::VariableDecorationList{ + create<ast::BindingDecoration>(0), + create<ast::GroupDecoration>(1), + }); td.RegisterVariableForTesting(coord_var); mod->AddGlobalVariable(coord_var); @@ -777,12 +774,11 @@ TEST_F(HlslGeneratorImplTest_Function, Emit_FunctionDecoration_Called_By_EntryPoint_With_StorageBuffer) { ast::type::AccessControl ac(ast::AccessControl::kReadWrite, ty.vec4<f32>()); - auto* coord_var = - Var("coord", ast::StorageClass::kStorageBuffer, &ac, nullptr, - ast::VariableDecorationList{ - create<ast::BindingDecoration>(0), - create<ast::GroupDecoration>(1), - }); + auto* coord_var = Var("coord", ast::StorageClass::kStorage, &ac, nullptr, + ast::VariableDecorationList{ + create<ast::BindingDecoration>(0), + create<ast::GroupDecoration>(1), + }); td.RegisterVariableForTesting(coord_var); @@ -969,7 +965,7 @@ // [[block]] struct Data { // [[offset(0)]] d : f32; // }; - // [[binding(0), group(0)]] var<storage_buffer> data : Data; + // [[binding(0), group(0)]] var<storage> data : Data; // // [[stage(compute)]] // fn a() -> void { @@ -988,7 +984,7 @@ auto* s = ty.struct_("Data", str); ast::type::AccessControl ac(ast::AccessControl::kReadWrite, s); - auto* data_var = Var("data", ast::StorageClass::kStorageBuffer, &ac, nullptr, + auto* data_var = Var("data", ast::StorageClass::kStorage, &ac, nullptr, ast::VariableDecorationList{ create<ast::BindingDecoration>(0), create<ast::GroupDecoration>(0),
diff --git a/src/writer/hlsl/generator_impl_member_accessor_test.cc b/src/writer/hlsl/generator_impl_member_accessor_test.cc index 4b13271..ee8345a 100644 --- a/src/writer/hlsl/generator_impl_member_accessor_test.cc +++ b/src/writer/hlsl/generator_impl_member_accessor_test.cc
@@ -63,7 +63,7 @@ // [[offset(0)]] a : i32; // [[offset(4)]] b : f32; // }; - // var<storage_buffer> data : Data; + // var<storage> data : Data; // data.b; // // -> asfloat(data.Load(4)); @@ -74,7 +74,7 @@ ast::StructDecorationList{}); auto* s = ty.struct_("Data", str); - auto* coord_var = Var("data", ast::StorageClass::kStorageBuffer, s); + auto* coord_var = Var("data", ast::StorageClass::kStorage, s); auto* expr = MemberAccessor("data", "b"); td.RegisterVariableForTesting(coord_var); @@ -94,7 +94,7 @@ // [[offset(0)]] a : i32; // [[offset(4)]] b : f32; // }; - // var<storage_buffer> data : Data; + // var<storage> data : Data; // data.a; // // -> asint(data.Load(0)); @@ -104,7 +104,7 @@ Member("b", ty.f32, {MemberOffset(4)})}, ast::StructDecorationList{}); auto* s = ty.struct_("Data", str); - auto* coord_var = Var("data", ast::StorageClass::kStorageBuffer, s); + auto* coord_var = Var("data", ast::StorageClass::kStorage, s); auto* expr = MemberAccessor("data", "a"); td.RegisterVariableForTesting(coord_var); @@ -123,7 +123,7 @@ // [[offset(0)]] z : f32; // [[offset(4)]] a : mat2x3<f32>; // }; - // var<storage_buffer> data : Data; + // var<storage> data : Data; // mat2x3<f32> b; // data.a = b; // @@ -138,7 +138,7 @@ auto* s = ty.struct_("Data", str); auto* b_var = Var("b", ast::StorageClass::kPrivate, ty.mat2x3<f32>()); - auto* coord_var = Var("data", ast::StorageClass::kStorageBuffer, s); + auto* coord_var = Var("data", ast::StorageClass::kStorage, s); auto* lhs = MemberAccessor("data", "a"); auto* rhs = Expr("b"); @@ -168,7 +168,7 @@ // [[offset(0)]] z : f32; // [[offset(4)]] a : mat2x3<f32>; // }; - // var<storage_buffer> data : Data; + // var<storage> data : Data; // data.a = mat2x3<f32>(); // // -> float3x2 _tint_tmp = float3x2(0.0f, 0.0f, 0.0f, @@ -182,7 +182,7 @@ ast::StructDecorationList{}); auto* s = ty.struct_("Data", str); - auto* coord_var = Var("data", ast::StorageClass::kStorageBuffer, s); + auto* coord_var = Var("data", ast::StorageClass::kStorage, s); auto* lhs = MemberAccessor("data", "a"); auto* rhs = Construct(ty.mat2x3<f32>(), ast::ExpressionList{}); @@ -211,7 +211,7 @@ // [[offset(0)]] z : f32; // [[offset(4)]] a : mat3x2<f32>; // }; - // var<storage_buffer> data : Data; + // var<storage> data : Data; // data.a; // // -> asfloat(uint2x3(data.Load2(4 + 0), data.Load2(4 + 8), @@ -223,7 +223,7 @@ ast::StructDecorationList{}); auto* s = ty.struct_("Data", str); - auto* coord_var = Var("data", ast::StorageClass::kStorageBuffer, s); + auto* coord_var = Var("data", ast::StorageClass::kStorage, s); auto* expr = MemberAccessor("data", "a"); @@ -250,7 +250,7 @@ // [[offset(0)]] c : f32; // [[offset(4)]] b : Data; // }; - // var<storage_buffer> data : Outer; + // var<storage> data : Outer; // data.b.a; // // -> asfloat(uint3x2(data.Load3(4 + 0), data.Load3(4 + 16))); @@ -263,7 +263,7 @@ ast::StructDecorationList{}); auto* s = ty.struct_("Data", str); - auto* coord_var = Var("data", ast::StorageClass::kStorageBuffer, s); + auto* coord_var = Var("data", ast::StorageClass::kStorage, s); auto* expr = MemberAccessor("data", "a"); td.RegisterVariableForTesting(coord_var); @@ -284,7 +284,7 @@ // struct Data { // [[offset(4)]] a : mat3x3<f32; // }; - // var<storage_buffer> data : Data; + // var<storage> data : Data; // data.a; // // -> asfloat(uint3x3(data.Load3(0), data.Load3(16), @@ -295,7 +295,7 @@ ast::StructDecorationList{}); auto* s = ty.struct_("Data", str); - auto* coord_var = Var("data", ast::StorageClass::kStorageBuffer, s); + auto* coord_var = Var("data", ast::StorageClass::kStorage, s); auto* expr = MemberAccessor("data", "a"); td.RegisterVariableForTesting(coord_var); @@ -317,7 +317,7 @@ // [[offset(0)]] z : f32; // [[offset(16)]] a : mat4x3<f32>; // }; - // var<storage_buffer> data : Data; + // var<storage> data : Data; // data.a[2][1]; // // -> asfloat(data.Load((2 * 16) + (1 * 4) + 16))) @@ -328,7 +328,7 @@ ast::StructDecorationList{}); auto* s = ty.struct_("Data", str); - auto* coord_var = Var("data", ast::StorageClass::kStorageBuffer, s); + auto* coord_var = Var("data", ast::StorageClass::kStorage, s); auto* expr = IndexAccessor( IndexAccessor(MemberAccessor("data", "a"), Expr(2)), Expr(1)); @@ -348,7 +348,7 @@ // struct Data { // [[offset(0)]] a : [[stride(4)]] array<i32, 5>; // }; - // var<storage_buffer> data : Data; + // var<storage> data : Data; // data.a[2]; // // -> asint(data.Load((2 * 4)); @@ -361,7 +361,7 @@ ast::StructMemberList{Member("a", &ary, {MemberOffset(0)})}, ast::StructDecorationList{}); auto* s = ty.struct_("Data", str); - auto* coord_var = Var("data", ast::StorageClass::kStorageBuffer, s); + auto* coord_var = Var("data", ast::StorageClass::kStorage, s); auto* expr = IndexAccessor(MemberAccessor("data", "a"), Expr(2)); td.RegisterVariableForTesting(coord_var); @@ -380,7 +380,7 @@ // struct Data { // [[offset(0)]] a : [[stride(4)]] array<i32, 5>; // }; - // var<storage_buffer> data : Data; + // var<storage> data : Data; // data.a[(2 + 4) - 3]; // // -> asint(data.Load((4 * ((2 + 4) - 3))); @@ -393,7 +393,7 @@ ast::StructMemberList{Member("a", &ary, {MemberOffset(0)})}, ast::StructDecorationList{}); auto* s = ty.struct_("Data", str); - auto* coord_var = Var("data", ast::StorageClass::kStorageBuffer, s); + auto* coord_var = Var("data", ast::StorageClass::kStorage, s); auto* expr = IndexAccessor(MemberAccessor("data", "a"), Sub(Add(Expr(2), Expr(4)), Expr(3))); @@ -414,7 +414,7 @@ // [[offset(0)]] a : i32; // [[offset(4)]] b : f32; // }; - // var<storage_buffer> data : Data; + // var<storage> data : Data; // data.b = 2.3f; // // -> data.Store(0, asuint(2.0f)); @@ -425,7 +425,7 @@ ast::StructDecorationList{}); auto* s = ty.struct_("Data", str); - auto* coord_var = Var("data", ast::StorageClass::kStorageBuffer, s); + auto* coord_var = Var("data", ast::StorageClass::kStorage, s); td.RegisterVariableForTesting(coord_var); gen.register_global(coord_var); @@ -448,7 +448,7 @@ // struct Data { // [[offset(0)]] a : [[stride(4)]] array<i32, 5>; // }; - // var<storage_buffer> data : Data; + // var<storage> data : Data; // data.a[2] = 2; // // -> data.Store((2 * 4), asuint(2.3f)); @@ -463,7 +463,7 @@ ast::StructDecorationList{}); auto* s = ty.struct_("Data", str); - auto* coord_var = Var("data", ast::StorageClass::kStorageBuffer, s); + auto* coord_var = Var("data", ast::StorageClass::kStorage, s); td.RegisterVariableForTesting(coord_var); gen.register_global(coord_var); @@ -487,7 +487,7 @@ // [[offset(0)]] a : i32; // [[offset(4)]] b : f32; // }; - // var<storage_buffer> data : Data; + // var<storage> data : Data; // data.a = 2; // // -> data.Store(0, asuint(2)); @@ -498,7 +498,7 @@ ast::StructDecorationList{}); auto* s = ty.struct_("Data", str); - auto* coord_var = Var("data", ast::StorageClass::kStorageBuffer, s); + auto* coord_var = Var("data", ast::StorageClass::kStorage, s); td.RegisterVariableForTesting(coord_var); gen.register_global(coord_var); @@ -522,7 +522,7 @@ // [[offset(0)]] a : vec3<i32>; // [[offset(16)]] b : vec3<f32>; // }; - // var<storage_buffer> data : Data; + // var<storage> data : Data; // data.b; // // -> asfloat(data.Load(16)); @@ -533,7 +533,7 @@ ast::StructDecorationList{}); auto* s = ty.struct_("Data", str); - auto* coord_var = Var("data", ast::StorageClass::kStorageBuffer, s); + auto* coord_var = Var("data", ast::StorageClass::kStorage, s); td.RegisterVariableForTesting(coord_var); gen.register_global(coord_var); @@ -554,7 +554,7 @@ // [[offset(0)]] a : vec3<i32>; // [[offset(16)]] b : vec3<f32>; // }; - // var<storage_buffer> data : Data; + // var<storage> data : Data; // data.b = vec3<f32>(2.3f, 1.2f, 0.2f); // // -> data.Store(16, asuint(float3(2.3f, 1.2f, 0.2f))); @@ -565,7 +565,7 @@ ast::StructDecorationList{}); auto* s = ty.struct_("Data", str); - auto* coord_var = Var("data", ast::StorageClass::kStorageBuffer, s); + auto* coord_var = Var("data", ast::StorageClass::kStorage, s); td.RegisterVariableForTesting(coord_var); gen.register_global(coord_var); @@ -595,7 +595,7 @@ // var c : [[stride(32)]] array<Data, 4>; // }; // - // var<storage_buffer> data : Pre; + // var<storage> data : Pre; // data.c[2].b // // -> asfloat(data.Load3(16 + (2 * 32))) @@ -618,7 +618,7 @@ ast::StructDecorationList{}); auto* pre_struct = ty.struct_("Pre", pre_str); - auto* coord_var = Var("data", ast::StorageClass::kStorageBuffer, pre_struct); + auto* coord_var = Var("data", ast::StorageClass::kStorage, pre_struct); td.RegisterVariableForTesting(coord_var); gen.register_global(coord_var); @@ -644,7 +644,7 @@ // var c : [[stride(32)]] array<Data, 4>; // }; // - // var<storage_buffer> data : Pre; + // var<storage> data : Pre; // data.c[2].b.xy // // -> asfloat(data.Load3(16 + (2 * 32))).xy @@ -665,7 +665,7 @@ ast::StructDecorationList{}); auto* pre_struct = ty.struct_("Pre", pre_str); - auto* coord_var = Var("data", ast::StorageClass::kStorageBuffer, pre_struct); + auto* coord_var = Var("data", ast::StorageClass::kStorage, pre_struct); td.RegisterVariableForTesting(coord_var); gen.register_global(coord_var); @@ -693,7 +693,7 @@ // var c : [[stride(32)]] array<Data, 4>; // }; // - // var<storage_buffer> data : Pre; + // var<storage> data : Pre; // data.c[2].b.g // // -> asfloat(data.Load((4 * 1) + 16 + (2 * 32) + 0)) @@ -716,7 +716,7 @@ ast::StructDecorationList{}); auto* pre_struct = ty.struct_("Pre", pre_str); - auto* coord_var = Var("data", ast::StorageClass::kStorageBuffer, pre_struct); + auto* coord_var = Var("data", ast::StorageClass::kStorage, pre_struct); td.RegisterVariableForTesting(coord_var); gen.register_global(coord_var); @@ -743,7 +743,7 @@ // var c : [[stride(32)]] array<Data, 4>; // }; // - // var<storage_buffer> data : Pre; + // var<storage> data : Pre; // data.c[2].b[1] // // -> asfloat(data.Load(4 + 16 + (2 * 32))) @@ -766,7 +766,7 @@ ast::StructDecorationList{}); auto* pre_struct = ty.struct_("Pre", pre_str); - auto* coord_var = Var("data", ast::StorageClass::kStorageBuffer, pre_struct); + auto* coord_var = Var("data", ast::StorageClass::kStorage, pre_struct); td.RegisterVariableForTesting(coord_var); gen.register_global(coord_var); @@ -793,7 +793,7 @@ // var c : [[stride(32)]] array<Data, 4>; // }; // - // var<storage_buffer> data : Pre; + // var<storage> data : Pre; // data.c[2].b = vec3<f32>(1.f, 2.f, 3.f); // // -> data.Store3(16 + (2 * 32), asuint(float3(1.0f, 2.0f, 3.0f))); @@ -816,7 +816,7 @@ ast::StructDecorationList{}); auto* pre_struct = ty.struct_("Pre", pre_str); - auto* coord_var = Var("data", ast::StorageClass::kStorageBuffer, pre_struct); + auto* coord_var = Var("data", ast::StorageClass::kStorage, pre_struct); td.RegisterVariableForTesting(coord_var); gen.register_global(coord_var); @@ -847,7 +847,7 @@ // var c : [[stride(32)]] array<Data, 4>; // }; // - // var<storage_buffer> data : Pre; + // var<storage> data : Pre; // data.c[2].b.y = 1.f; // // -> data.Store((4 * 1) + 16 + (2 * 32) + 0, asuint(1.0f)); @@ -870,7 +870,7 @@ ast::StructDecorationList{}); auto* pre_struct = ty.struct_("Pre", pre_str); - auto* coord_var = Var("data", ast::StorageClass::kStorageBuffer, pre_struct); + auto* coord_var = Var("data", ast::StorageClass::kStorage, pre_struct); td.RegisterVariableForTesting(coord_var); gen.register_global(coord_var);
diff --git a/src/writer/msl/generator_impl_function_test.cc b/src/writer/msl/generator_impl_function_test.cc index 0c3cd3b..53b80ec 100644 --- a/src/writer/msl/generator_impl_function_test.cc +++ b/src/writer/msl/generator_impl_function_test.cc
@@ -334,7 +334,7 @@ mod->AddConstructedType(s); auto* coord_var = - Var("coord", ast::StorageClass::kStorageBuffer, &ac, nullptr, + Var("coord", ast::StorageClass::kStorage, &ac, nullptr, ast::VariableDecorationList{create<ast::BindingDecoration>(0), create<ast::GroupDecoration>(1)}); @@ -386,7 +386,7 @@ mod->AddConstructedType(s); auto* coord_var = - Var("coord", ast::StorageClass::kStorageBuffer, &ac, nullptr, + Var("coord", ast::StorageClass::kStorage, &ac, nullptr, ast::VariableDecorationList{create<ast::BindingDecoration>(0), create<ast::GroupDecoration>(1)}); @@ -691,7 +691,7 @@ mod->AddConstructedType(s); auto* coord_var = - Var("coord", ast::StorageClass::kStorageBuffer, &ac, nullptr, + Var("coord", ast::StorageClass::kStorage, &ac, nullptr, ast::VariableDecorationList{create<ast::BindingDecoration>(0), create<ast::GroupDecoration>(1)}); @@ -758,7 +758,7 @@ mod->AddConstructedType(s); auto* coord_var = - Var("coord", ast::StorageClass::kStorageBuffer, &ac, nullptr, + Var("coord", ast::StorageClass::kStorage, &ac, nullptr, ast::VariableDecorationList{create<ast::BindingDecoration>(0), create<ast::GroupDecoration>(1)}); @@ -914,7 +914,7 @@ // [[block]] struct Data { // [[offset(0)]] d : f32; // }; - // [[binding(0), group(0)]] var<storage_buffer> data : Data; + // [[binding(0), group(0)]] var<storage> data : Data; // // [[stage(compute)]] // fn a() -> void { @@ -936,7 +936,7 @@ ast::type::AccessControl ac(ast::AccessControl::kReadWrite, s); auto* data_var = - Var("data", ast::StorageClass::kStorageBuffer, &ac, nullptr, + Var("data", ast::StorageClass::kStorage, &ac, nullptr, ast::VariableDecorationList{create<ast::BindingDecoration>(0), create<ast::GroupDecoration>(0)});
diff --git a/src/writer/spirv/builder.cc b/src/writer/spirv/builder.cc index cf8e5ac..26212e6 100644 --- a/src/writer/spirv/builder.cc +++ b/src/writer/spirv/builder.cc
@@ -3114,7 +3114,7 @@ return SpvStorageClassWorkgroup; case ast::StorageClass::kUniformConstant: return SpvStorageClassUniformConstant; - case ast::StorageClass::kStorageBuffer: + case ast::StorageClass::kStorage: return SpvStorageClassStorageBuffer; case ast::StorageClass::kImage: return SpvStorageClassImage;
diff --git a/src/writer/spirv/builder_function_test.cc b/src/writer/spirv/builder_function_test.cc index 8c19bb3..3c4c00d 100644 --- a/src/writer/spirv/builder_function_test.cc +++ b/src/writer/spirv/builder_function_test.cc
@@ -198,7 +198,7 @@ // [[block]] struct Data { // [[offset(0)]] d : f32; // }; - // [[binding(0), group(0)]] var<storage_buffer> data : Data; + // [[binding(0), group(0)]] var<storage> data : Data; // // [[stage(compute)]] // fn a() -> void { @@ -219,7 +219,7 @@ auto* s = ty.struct_("Data", str); ast::type::AccessControl ac(ast::AccessControl::kReadWrite, s); - auto* data_var = Var("data", ast::StorageClass::kStorageBuffer, &ac, nullptr, + auto* data_var = Var("data", ast::StorageClass::kStorage, &ac, nullptr, ast::VariableDecorationList{ create<ast::BindingDecoration>(0), create<ast::GroupDecoration>(0),
diff --git a/src/writer/spirv/builder_global_variable_test.cc b/src/writer/spirv/builder_global_variable_test.cc index 55b49ec..0a1cc4d 100644 --- a/src/writer/spirv/builder_global_variable_test.cc +++ b/src/writer/spirv/builder_global_variable_test.cc
@@ -386,7 +386,7 @@ ast::StructDecorationList{})); ast::type::AccessControl ac{ast::AccessControl::kReadOnly, A}; - auto* var = Var("b", ast::StorageClass::kStorageBuffer, &ac); + auto* var = Var("b", ast::StorageClass::kStorage, &ac); EXPECT_TRUE(b.GenerateGlobalVariable(var)) << b.error(); EXPECT_EQ(DumpInstructions(b.annots()), R"(OpMemberDecorate %3 0 NonWritable @@ -416,7 +416,7 @@ ast::StructDecorationList{})); auto* B = ty.alias("B", A); ast::type::AccessControl ac{ast::AccessControl::kReadOnly, B}; - auto* var = Var("b", ast::StorageClass::kStorageBuffer, &ac); + auto* var = Var("b", ast::StorageClass::kStorage, &ac); EXPECT_TRUE(b.GenerateGlobalVariable(var)) << b.error(); EXPECT_EQ(DumpInstructions(b.annots()), R"(OpMemberDecorate %3 0 NonWritable @@ -444,7 +444,7 @@ ast::StructDecorationList{})); ast::type::AccessControl ac{ast::AccessControl::kReadOnly, A}; auto* B = ty.alias("B", &ac); - auto* var = Var("b", ast::StorageClass::kStorageBuffer, B); + auto* var = Var("b", ast::StorageClass::kStorage, B); EXPECT_TRUE(b.GenerateGlobalVariable(var)) << b.error(); EXPECT_EQ(DumpInstructions(b.annots()), R"(OpMemberDecorate %3 0 NonWritable @@ -473,8 +473,8 @@ ast::type::AccessControl read{ast::AccessControl::kReadOnly, A}; ast::type::AccessControl rw{ast::AccessControl::kReadWrite, A}; - auto* var_b = Var("b", ast::StorageClass::kStorageBuffer, &read); - auto* var_c = Var("c", ast::StorageClass::kStorageBuffer, &rw); + auto* var_b = Var("b", ast::StorageClass::kStorage, &read); + auto* var_c = Var("c", ast::StorageClass::kStorage, &rw); EXPECT_TRUE(b.GenerateGlobalVariable(var_b)) << b.error(); EXPECT_TRUE(b.GenerateGlobalVariable(var_c)) << b.error();
diff --git a/src/writer/spirv/builder_type_test.cc b/src/writer/spirv/builder_type_test.cc index 9e29ab2..b1cf1c0 100644 --- a/src/writer/spirv/builder_type_test.cc +++ b/src/writer/spirv/builder_type_test.cc
@@ -527,8 +527,7 @@ PtrData{ast::StorageClass::kWorkgroup, SpvStorageClassWorkgroup}, PtrData{ast::StorageClass::kUniformConstant, SpvStorageClassUniformConstant}, - PtrData{ast::StorageClass::kStorageBuffer, - SpvStorageClassStorageBuffer}, + PtrData{ast::StorageClass::kStorage, SpvStorageClassStorageBuffer}, PtrData{ast::StorageClass::kImage, SpvStorageClassImage}, PtrData{ast::StorageClass::kPrivate, SpvStorageClassPrivate}, PtrData{ast::StorageClass::kFunction, SpvStorageClassFunction}));
diff --git a/src/writer/wgsl/generator_impl_function_test.cc b/src/writer/wgsl/generator_impl_function_test.cc index e3cf06e..c8f4b86 100644 --- a/src/writer/wgsl/generator_impl_function_test.cc +++ b/src/writer/wgsl/generator_impl_function_test.cc
@@ -153,7 +153,7 @@ // [[block]] struct Data { // [[offset(0)]] d : f32; // }; - // [[binding(0), group(0)]] var<storage_buffer> data : Data; + // [[binding(0), group(0)]] var<storage> data : Data; // // [[stage(compute)]] // fn a() -> void { @@ -174,7 +174,7 @@ auto* s = ty.struct_("Data", str); ast::type::AccessControl ac(ast::AccessControl::kReadWrite, s); - auto* data_var = Var("data", ast::StorageClass::kStorageBuffer, &ac, nullptr, + auto* data_var = Var("data", ast::StorageClass::kStorage, &ac, nullptr, ast::VariableDecorationList{ // decorations create<ast::BindingDecoration>(0), @@ -233,7 +233,7 @@ d : f32; }; -[[binding(0), group(0)]] var<storage_buffer> data : [[access(read_write)]] +[[binding(0), group(0)]] var<storage> data : [[access(read_write)]] Data; [[stage(compute)]]
diff --git a/test/compute_boids.wgsl b/test/compute_boids.wgsl index db76200..86617a6 100644 --- a/test/compute_boids.wgsl +++ b/test/compute_boids.wgsl
@@ -57,8 +57,8 @@ }; [[binding(0), group(0)]] var<uniform> params : [[access(read)]] SimParams; -[[binding(1), group(0)]] var<storage_buffer> particlesA : [[access(read_write)]] Particles; -[[binding(2), group(0)]] var<storage_buffer> particlesB : [[access(read_write)]] Particles; +[[binding(1), group(0)]] var<storage> particlesA : [[access(read_write)]] Particles; +[[binding(2), group(0)]] var<storage> particlesB : [[access(read_write)]] Particles; [[builtin(global_invocation_id)]] var<in> gl_GlobalInvocationID : vec3<u32>;