validation: add an internal decoration to allow atomic function parameters
Bug: tint: 927
Change-Id: Ia6f31bdbfa51c92b742faa89089649865bb45ad5
Reviewed-on: https://dawn-review.googlesource.com/c/tint/+/56020
Kokoro: Kokoro <noreply+kokoro@google.com>
Reviewed-by: Ben Clayton <bclayton@google.com>
diff --git a/src/ast/disable_validation_decoration.cc b/src/ast/disable_validation_decoration.cc
index 28adae4..0a7fda3 100644
--- a/src/ast/disable_validation_decoration.cc
+++ b/src/ast/disable_validation_decoration.cc
@@ -38,6 +38,8 @@
return "disable_validation__ignore_storage_class";
case DisabledValidation::kEntryPointParameter:
return "disable_validation__entry_point_parameter";
+ case DisabledValidation::kIgnoreAtomicFunctionParameter:
+ return "disable_validation__ignore_atomic_function_parameter";
}
return "<invalid>";
}
diff --git a/src/ast/disable_validation_decoration.h b/src/ast/disable_validation_decoration.h
index e2b7bb9..d1c33c6 100644
--- a/src/ast/disable_validation_decoration.h
+++ b/src/ast/disable_validation_decoration.h
@@ -37,6 +37,9 @@
/// When applied to an entry-point function parameter, the validator will not
/// check for entry IO decorations.
kEntryPointParameter,
+ /// When applied to a function parameter, the validator will not
+ /// check if parameter type is atomic-free
+ kIgnoreAtomicFunctionParameter,
};
/// An internal decoration used to tell the validator to ignore specific
diff --git a/src/resolver/resolver.cc b/src/resolver/resolver.cc
index 0a083b0..d16c958 100644
--- a/src/resolver/resolver.cc
+++ b/src/resolver/resolver.cc
@@ -932,8 +932,12 @@
if (!ValidateVariable(info)) {
return false;
}
+
for (auto* deco : info->declaration->decorations()) {
- if (!func->IsEntryPoint()) {
+ if (!func->IsEntryPoint() &&
+ !IsValidationDisabled(
+ info->declaration->decorations(),
+ ast::DisabledValidation::kIgnoreAtomicFunctionParameter)) {
AddError("decoration is not valid for function parameters",
deco->source());
return false;
@@ -945,9 +949,12 @@
}
} else if (!deco->IsAnyOf<ast::LocationDecoration,
ast::InternalDecoration>() &&
- !IsValidationDisabled(
- info->declaration->decorations(),
- ast::DisabledValidation::kEntryPointParameter)) {
+ !(IsValidationDisabled(
+ info->declaration->decorations(),
+ ast::DisabledValidation::kEntryPointParameter) ||
+ IsValidationDisabled(info->declaration->decorations(),
+ ast::DisabledValidation::
+ kIgnoreAtomicFunctionParameter))) {
AddError("decoration is not valid for function parameters",
deco->source());
return false;
diff --git a/src/transform/decompose_memory_access.cc b/src/transform/decompose_memory_access.cc
index 7f81894..7be526a 100644
--- a/src/transform/decompose_memory_access.cc
+++ b/src/transform/decompose_memory_access.cc
@@ -475,6 +475,10 @@
return utils::GetOrCreate(
load_funcs, LoadStoreKey{storage_class, buf_ty, el_ty}, [&] {
auto* buf_ast_ty = CreateASTTypeFor(&ctx, buf_ty);
+ auto* disable_validation =
+ ctx.dst->ASTNodes().Create<ast::DisableValidationDecoration>(
+ ctx.dst->ID(),
+ ast::DisabledValidation::kIgnoreAtomicFunctionParameter);
ast::VariableList params = {
// Note: The buffer parameter requires the StorageClass in
@@ -483,7 +487,7 @@
ctx.dst->create<ast::Variable>(
ctx.dst->Sym("buffer"), storage_class,
var_user->Variable()->Access(), buf_ast_ty, true, nullptr,
- ast::DecorationList{}),
+ ast::DecorationList{disable_validation}),
ctx.dst->Param("offset", ctx.dst->ty.u32()),
};
@@ -560,13 +564,18 @@
store_funcs, LoadStoreKey{storage_class, buf_ty, el_ty}, [&] {
auto* buf_ast_ty = CreateASTTypeFor(&ctx, buf_ty);
auto* el_ast_ty = CreateASTTypeFor(&ctx, el_ty);
+ auto* disable_validation =
+ ctx.dst->ASTNodes().Create<ast::DisableValidationDecoration>(
+ ctx.dst->ID(),
+ ast::DisabledValidation::kIgnoreAtomicFunctionParameter);
ast::VariableList params{
// Note: The buffer parameter requires the StorageClass in
// order for HLSL to emit this as a ByteAddressBuffer.
+
ctx.dst->create<ast::Variable>(
ctx.dst->Sym("buffer"), storage_class,
var_user->Variable()->Access(), buf_ast_ty, true, nullptr,
- ast::DecorationList{}),
+ ast::DecorationList{disable_validation}),
ctx.dst->Param("offset", ctx.dst->ty.u32()),
ctx.dst->Param("value", el_ast_ty),
};
@@ -650,7 +659,10 @@
auto op = intrinsic->Type();
return utils::GetOrCreate(atomic_funcs, AtomicKey{buf_ty, el_ty, op}, [&] {
auto* buf_ast_ty = CreateASTTypeFor(&ctx, buf_ty);
-
+ auto* disable_validation =
+ ctx.dst->ASTNodes().Create<ast::DisableValidationDecoration>(
+ ctx.dst->ID(),
+ ast::DisabledValidation::kIgnoreAtomicFunctionParameter);
// The first parameter to all WGSL atomics is the expression to the
// atomic. This is replaced with two parameters: the buffer and offset.
@@ -660,7 +672,7 @@
ctx.dst->create<ast::Variable>(
ctx.dst->Sym("buffer"), ast::StorageClass::kStorage,
var_user->Variable()->Access(), buf_ast_ty, true, nullptr,
- ast::DecorationList{}),
+ ast::DecorationList{disable_validation}),
ctx.dst->Param("offset", ctx.dst->ty.u32()),
};
diff --git a/src/transform/decompose_memory_access_test.cc b/src/transform/decompose_memory_access_test.cc
index 5d5d91b..a3c7113 100644
--- a/src/transform/decompose_memory_access_test.cc
+++ b/src/transform/decompose_memory_access_test.cc
@@ -107,78 +107,78 @@
};
[[internal(intrinsic_load_storage_i32), internal(disable_validation__function_has_no_body)]]
-fn tint_symbol(buffer : SB, offset : u32) -> i32
+fn tint_symbol([[internal(disable_validation__ignore_atomic_function_parameter)]] buffer : SB, offset : u32) -> i32
[[internal(intrinsic_load_storage_u32), internal(disable_validation__function_has_no_body)]]
-fn tint_symbol_1(buffer : SB, offset : u32) -> u32
+fn tint_symbol_1([[internal(disable_validation__ignore_atomic_function_parameter)]] buffer : SB, offset : u32) -> u32
[[internal(intrinsic_load_storage_f32), internal(disable_validation__function_has_no_body)]]
-fn tint_symbol_2(buffer : SB, offset : u32) -> f32
+fn tint_symbol_2([[internal(disable_validation__ignore_atomic_function_parameter)]] buffer : SB, offset : u32) -> f32
[[internal(intrinsic_load_storage_vec2_i32), internal(disable_validation__function_has_no_body)]]
-fn tint_symbol_3(buffer : SB, offset : u32) -> vec2<i32>
+fn tint_symbol_3([[internal(disable_validation__ignore_atomic_function_parameter)]] buffer : SB, offset : u32) -> vec2<i32>
[[internal(intrinsic_load_storage_vec2_u32), internal(disable_validation__function_has_no_body)]]
-fn tint_symbol_4(buffer : SB, offset : u32) -> vec2<u32>
+fn tint_symbol_4([[internal(disable_validation__ignore_atomic_function_parameter)]] buffer : SB, offset : u32) -> vec2<u32>
[[internal(intrinsic_load_storage_vec2_f32), internal(disable_validation__function_has_no_body)]]
-fn tint_symbol_5(buffer : SB, offset : u32) -> vec2<f32>
+fn tint_symbol_5([[internal(disable_validation__ignore_atomic_function_parameter)]] buffer : SB, offset : u32) -> vec2<f32>
[[internal(intrinsic_load_storage_vec3_i32), internal(disable_validation__function_has_no_body)]]
-fn tint_symbol_6(buffer : SB, offset : u32) -> vec3<i32>
+fn tint_symbol_6([[internal(disable_validation__ignore_atomic_function_parameter)]] buffer : SB, offset : u32) -> vec3<i32>
[[internal(intrinsic_load_storage_vec3_u32), internal(disable_validation__function_has_no_body)]]
-fn tint_symbol_7(buffer : SB, offset : u32) -> vec3<u32>
+fn tint_symbol_7([[internal(disable_validation__ignore_atomic_function_parameter)]] buffer : SB, offset : u32) -> vec3<u32>
[[internal(intrinsic_load_storage_vec3_f32), internal(disable_validation__function_has_no_body)]]
-fn tint_symbol_8(buffer : SB, offset : u32) -> vec3<f32>
+fn tint_symbol_8([[internal(disable_validation__ignore_atomic_function_parameter)]] buffer : SB, offset : u32) -> vec3<f32>
[[internal(intrinsic_load_storage_vec4_i32), internal(disable_validation__function_has_no_body)]]
-fn tint_symbol_9(buffer : SB, offset : u32) -> vec4<i32>
+fn tint_symbol_9([[internal(disable_validation__ignore_atomic_function_parameter)]] buffer : SB, offset : u32) -> vec4<i32>
[[internal(intrinsic_load_storage_vec4_u32), internal(disable_validation__function_has_no_body)]]
-fn tint_symbol_10(buffer : SB, offset : u32) -> vec4<u32>
+fn tint_symbol_10([[internal(disable_validation__ignore_atomic_function_parameter)]] buffer : SB, offset : u32) -> vec4<u32>
[[internal(intrinsic_load_storage_vec4_f32), internal(disable_validation__function_has_no_body)]]
-fn tint_symbol_11(buffer : SB, offset : u32) -> vec4<f32>
+fn tint_symbol_11([[internal(disable_validation__ignore_atomic_function_parameter)]] buffer : SB, offset : u32) -> vec4<f32>
-fn tint_symbol_12(buffer : SB, offset : u32) -> mat2x2<f32> {
+fn tint_symbol_12([[internal(disable_validation__ignore_atomic_function_parameter)]] buffer : SB, offset : u32) -> mat2x2<f32> {
return mat2x2<f32>(tint_symbol_5(buffer, (offset + 0u)), tint_symbol_5(buffer, (offset + 8u)));
}
-fn tint_symbol_13(buffer : SB, offset : u32) -> mat2x3<f32> {
+fn tint_symbol_13([[internal(disable_validation__ignore_atomic_function_parameter)]] buffer : SB, offset : u32) -> mat2x3<f32> {
return mat2x3<f32>(tint_symbol_8(buffer, (offset + 0u)), tint_symbol_8(buffer, (offset + 16u)));
}
-fn tint_symbol_14(buffer : SB, offset : u32) -> mat2x4<f32> {
+fn tint_symbol_14([[internal(disable_validation__ignore_atomic_function_parameter)]] buffer : SB, offset : u32) -> mat2x4<f32> {
return mat2x4<f32>(tint_symbol_11(buffer, (offset + 0u)), tint_symbol_11(buffer, (offset + 16u)));
}
-fn tint_symbol_15(buffer : SB, offset : u32) -> mat3x2<f32> {
+fn tint_symbol_15([[internal(disable_validation__ignore_atomic_function_parameter)]] buffer : SB, offset : u32) -> mat3x2<f32> {
return mat3x2<f32>(tint_symbol_5(buffer, (offset + 0u)), tint_symbol_5(buffer, (offset + 8u)), tint_symbol_5(buffer, (offset + 16u)));
}
-fn tint_symbol_16(buffer : SB, offset : u32) -> mat3x3<f32> {
+fn tint_symbol_16([[internal(disable_validation__ignore_atomic_function_parameter)]] buffer : SB, offset : u32) -> mat3x3<f32> {
return mat3x3<f32>(tint_symbol_8(buffer, (offset + 0u)), tint_symbol_8(buffer, (offset + 16u)), tint_symbol_8(buffer, (offset + 32u)));
}
-fn tint_symbol_17(buffer : SB, offset : u32) -> mat3x4<f32> {
+fn tint_symbol_17([[internal(disable_validation__ignore_atomic_function_parameter)]] buffer : SB, offset : u32) -> mat3x4<f32> {
return mat3x4<f32>(tint_symbol_11(buffer, (offset + 0u)), tint_symbol_11(buffer, (offset + 16u)), tint_symbol_11(buffer, (offset + 32u)));
}
-fn tint_symbol_18(buffer : SB, offset : u32) -> mat4x2<f32> {
+fn tint_symbol_18([[internal(disable_validation__ignore_atomic_function_parameter)]] buffer : SB, offset : u32) -> mat4x2<f32> {
return mat4x2<f32>(tint_symbol_5(buffer, (offset + 0u)), tint_symbol_5(buffer, (offset + 8u)), tint_symbol_5(buffer, (offset + 16u)), tint_symbol_5(buffer, (offset + 24u)));
}
-fn tint_symbol_19(buffer : SB, offset : u32) -> mat4x3<f32> {
+fn tint_symbol_19([[internal(disable_validation__ignore_atomic_function_parameter)]] buffer : SB, offset : u32) -> mat4x3<f32> {
return mat4x3<f32>(tint_symbol_8(buffer, (offset + 0u)), tint_symbol_8(buffer, (offset + 16u)), tint_symbol_8(buffer, (offset + 32u)), tint_symbol_8(buffer, (offset + 48u)));
}
-fn tint_symbol_20(buffer : SB, offset : u32) -> mat4x4<f32> {
+fn tint_symbol_20([[internal(disable_validation__ignore_atomic_function_parameter)]] buffer : SB, offset : u32) -> mat4x4<f32> {
return mat4x4<f32>(tint_symbol_11(buffer, (offset + 0u)), tint_symbol_11(buffer, (offset + 16u)), tint_symbol_11(buffer, (offset + 32u)), tint_symbol_11(buffer, (offset + 48u)));
}
-fn tint_symbol_21(buffer : SB, offset : u32) -> array<vec3<f32>, 2> {
+fn tint_symbol_21([[internal(disable_validation__ignore_atomic_function_parameter)]] buffer : SB, offset : u32) -> array<vec3<f32>, 2> {
return array<vec3<f32>, 2>(tint_symbol_8(buffer, (offset + 0u)), tint_symbol_8(buffer, (offset + 16u)));
}
@@ -301,78 +301,78 @@
};
[[internal(intrinsic_load_uniform_i32), internal(disable_validation__function_has_no_body)]]
-fn tint_symbol(buffer : UB, offset : u32) -> i32
+fn tint_symbol([[internal(disable_validation__ignore_atomic_function_parameter)]] buffer : UB, offset : u32) -> i32
[[internal(intrinsic_load_uniform_u32), internal(disable_validation__function_has_no_body)]]
-fn tint_symbol_1(buffer : UB, offset : u32) -> u32
+fn tint_symbol_1([[internal(disable_validation__ignore_atomic_function_parameter)]] buffer : UB, offset : u32) -> u32
[[internal(intrinsic_load_uniform_f32), internal(disable_validation__function_has_no_body)]]
-fn tint_symbol_2(buffer : UB, offset : u32) -> f32
+fn tint_symbol_2([[internal(disable_validation__ignore_atomic_function_parameter)]] buffer : UB, offset : u32) -> f32
[[internal(intrinsic_load_uniform_vec2_i32), internal(disable_validation__function_has_no_body)]]
-fn tint_symbol_3(buffer : UB, offset : u32) -> vec2<i32>
+fn tint_symbol_3([[internal(disable_validation__ignore_atomic_function_parameter)]] buffer : UB, offset : u32) -> vec2<i32>
[[internal(intrinsic_load_uniform_vec2_u32), internal(disable_validation__function_has_no_body)]]
-fn tint_symbol_4(buffer : UB, offset : u32) -> vec2<u32>
+fn tint_symbol_4([[internal(disable_validation__ignore_atomic_function_parameter)]] buffer : UB, offset : u32) -> vec2<u32>
[[internal(intrinsic_load_uniform_vec2_f32), internal(disable_validation__function_has_no_body)]]
-fn tint_symbol_5(buffer : UB, offset : u32) -> vec2<f32>
+fn tint_symbol_5([[internal(disable_validation__ignore_atomic_function_parameter)]] buffer : UB, offset : u32) -> vec2<f32>
[[internal(intrinsic_load_uniform_vec3_i32), internal(disable_validation__function_has_no_body)]]
-fn tint_symbol_6(buffer : UB, offset : u32) -> vec3<i32>
+fn tint_symbol_6([[internal(disable_validation__ignore_atomic_function_parameter)]] buffer : UB, offset : u32) -> vec3<i32>
[[internal(intrinsic_load_uniform_vec3_u32), internal(disable_validation__function_has_no_body)]]
-fn tint_symbol_7(buffer : UB, offset : u32) -> vec3<u32>
+fn tint_symbol_7([[internal(disable_validation__ignore_atomic_function_parameter)]] buffer : UB, offset : u32) -> vec3<u32>
[[internal(intrinsic_load_uniform_vec3_f32), internal(disable_validation__function_has_no_body)]]
-fn tint_symbol_8(buffer : UB, offset : u32) -> vec3<f32>
+fn tint_symbol_8([[internal(disable_validation__ignore_atomic_function_parameter)]] buffer : UB, offset : u32) -> vec3<f32>
[[internal(intrinsic_load_uniform_vec4_i32), internal(disable_validation__function_has_no_body)]]
-fn tint_symbol_9(buffer : UB, offset : u32) -> vec4<i32>
+fn tint_symbol_9([[internal(disable_validation__ignore_atomic_function_parameter)]] buffer : UB, offset : u32) -> vec4<i32>
[[internal(intrinsic_load_uniform_vec4_u32), internal(disable_validation__function_has_no_body)]]
-fn tint_symbol_10(buffer : UB, offset : u32) -> vec4<u32>
+fn tint_symbol_10([[internal(disable_validation__ignore_atomic_function_parameter)]] buffer : UB, offset : u32) -> vec4<u32>
[[internal(intrinsic_load_uniform_vec4_f32), internal(disable_validation__function_has_no_body)]]
-fn tint_symbol_11(buffer : UB, offset : u32) -> vec4<f32>
+fn tint_symbol_11([[internal(disable_validation__ignore_atomic_function_parameter)]] buffer : UB, offset : u32) -> vec4<f32>
-fn tint_symbol_12(buffer : UB, offset : u32) -> mat2x2<f32> {
+fn tint_symbol_12([[internal(disable_validation__ignore_atomic_function_parameter)]] buffer : UB, offset : u32) -> mat2x2<f32> {
return mat2x2<f32>(tint_symbol_5(buffer, (offset + 0u)), tint_symbol_5(buffer, (offset + 8u)));
}
-fn tint_symbol_13(buffer : UB, offset : u32) -> mat2x3<f32> {
+fn tint_symbol_13([[internal(disable_validation__ignore_atomic_function_parameter)]] buffer : UB, offset : u32) -> mat2x3<f32> {
return mat2x3<f32>(tint_symbol_8(buffer, (offset + 0u)), tint_symbol_8(buffer, (offset + 16u)));
}
-fn tint_symbol_14(buffer : UB, offset : u32) -> mat2x4<f32> {
+fn tint_symbol_14([[internal(disable_validation__ignore_atomic_function_parameter)]] buffer : UB, offset : u32) -> mat2x4<f32> {
return mat2x4<f32>(tint_symbol_11(buffer, (offset + 0u)), tint_symbol_11(buffer, (offset + 16u)));
}
-fn tint_symbol_15(buffer : UB, offset : u32) -> mat3x2<f32> {
+fn tint_symbol_15([[internal(disable_validation__ignore_atomic_function_parameter)]] buffer : UB, offset : u32) -> mat3x2<f32> {
return mat3x2<f32>(tint_symbol_5(buffer, (offset + 0u)), tint_symbol_5(buffer, (offset + 8u)), tint_symbol_5(buffer, (offset + 16u)));
}
-fn tint_symbol_16(buffer : UB, offset : u32) -> mat3x3<f32> {
+fn tint_symbol_16([[internal(disable_validation__ignore_atomic_function_parameter)]] buffer : UB, offset : u32) -> mat3x3<f32> {
return mat3x3<f32>(tint_symbol_8(buffer, (offset + 0u)), tint_symbol_8(buffer, (offset + 16u)), tint_symbol_8(buffer, (offset + 32u)));
}
-fn tint_symbol_17(buffer : UB, offset : u32) -> mat3x4<f32> {
+fn tint_symbol_17([[internal(disable_validation__ignore_atomic_function_parameter)]] buffer : UB, offset : u32) -> mat3x4<f32> {
return mat3x4<f32>(tint_symbol_11(buffer, (offset + 0u)), tint_symbol_11(buffer, (offset + 16u)), tint_symbol_11(buffer, (offset + 32u)));
}
-fn tint_symbol_18(buffer : UB, offset : u32) -> mat4x2<f32> {
+fn tint_symbol_18([[internal(disable_validation__ignore_atomic_function_parameter)]] buffer : UB, offset : u32) -> mat4x2<f32> {
return mat4x2<f32>(tint_symbol_5(buffer, (offset + 0u)), tint_symbol_5(buffer, (offset + 8u)), tint_symbol_5(buffer, (offset + 16u)), tint_symbol_5(buffer, (offset + 24u)));
}
-fn tint_symbol_19(buffer : UB, offset : u32) -> mat4x3<f32> {
+fn tint_symbol_19([[internal(disable_validation__ignore_atomic_function_parameter)]] buffer : UB, offset : u32) -> mat4x3<f32> {
return mat4x3<f32>(tint_symbol_8(buffer, (offset + 0u)), tint_symbol_8(buffer, (offset + 16u)), tint_symbol_8(buffer, (offset + 32u)), tint_symbol_8(buffer, (offset + 48u)));
}
-fn tint_symbol_20(buffer : UB, offset : u32) -> mat4x4<f32> {
+fn tint_symbol_20([[internal(disable_validation__ignore_atomic_function_parameter)]] buffer : UB, offset : u32) -> mat4x4<f32> {
return mat4x4<f32>(tint_symbol_11(buffer, (offset + 0u)), tint_symbol_11(buffer, (offset + 16u)), tint_symbol_11(buffer, (offset + 32u)), tint_symbol_11(buffer, (offset + 48u)));
}
-fn tint_symbol_21(buffer : UB, offset : u32) -> array<vec3<f32>, 2> {
+fn tint_symbol_21([[internal(disable_validation__ignore_atomic_function_parameter)]] buffer : UB, offset : u32) -> array<vec3<f32>, 2> {
return array<vec3<f32>, 2>(tint_symbol_8(buffer, (offset + 0u)), tint_symbol_8(buffer, (offset + 16u)));
}
@@ -495,96 +495,96 @@
};
[[internal(intrinsic_store_storage_i32), internal(disable_validation__function_has_no_body)]]
-fn tint_symbol(buffer : SB, offset : u32, value : i32)
+fn tint_symbol([[internal(disable_validation__ignore_atomic_function_parameter)]] buffer : SB, offset : u32, value : i32)
[[internal(intrinsic_store_storage_u32), internal(disable_validation__function_has_no_body)]]
-fn tint_symbol_1(buffer : SB, offset : u32, value : u32)
+fn tint_symbol_1([[internal(disable_validation__ignore_atomic_function_parameter)]] buffer : SB, offset : u32, value : u32)
[[internal(intrinsic_store_storage_f32), internal(disable_validation__function_has_no_body)]]
-fn tint_symbol_2(buffer : SB, offset : u32, value : f32)
+fn tint_symbol_2([[internal(disable_validation__ignore_atomic_function_parameter)]] buffer : SB, offset : u32, value : f32)
[[internal(intrinsic_store_storage_vec2_i32), internal(disable_validation__function_has_no_body)]]
-fn tint_symbol_3(buffer : SB, offset : u32, value : vec2<i32>)
+fn tint_symbol_3([[internal(disable_validation__ignore_atomic_function_parameter)]] buffer : SB, offset : u32, value : vec2<i32>)
[[internal(intrinsic_store_storage_vec2_u32), internal(disable_validation__function_has_no_body)]]
-fn tint_symbol_4(buffer : SB, offset : u32, value : vec2<u32>)
+fn tint_symbol_4([[internal(disable_validation__ignore_atomic_function_parameter)]] buffer : SB, offset : u32, value : vec2<u32>)
[[internal(intrinsic_store_storage_vec2_f32), internal(disable_validation__function_has_no_body)]]
-fn tint_symbol_5(buffer : SB, offset : u32, value : vec2<f32>)
+fn tint_symbol_5([[internal(disable_validation__ignore_atomic_function_parameter)]] buffer : SB, offset : u32, value : vec2<f32>)
[[internal(intrinsic_store_storage_vec3_i32), internal(disable_validation__function_has_no_body)]]
-fn tint_symbol_6(buffer : SB, offset : u32, value : vec3<i32>)
+fn tint_symbol_6([[internal(disable_validation__ignore_atomic_function_parameter)]] buffer : SB, offset : u32, value : vec3<i32>)
[[internal(intrinsic_store_storage_vec3_u32), internal(disable_validation__function_has_no_body)]]
-fn tint_symbol_7(buffer : SB, offset : u32, value : vec3<u32>)
+fn tint_symbol_7([[internal(disable_validation__ignore_atomic_function_parameter)]] buffer : SB, offset : u32, value : vec3<u32>)
[[internal(intrinsic_store_storage_vec3_f32), internal(disable_validation__function_has_no_body)]]
-fn tint_symbol_8(buffer : SB, offset : u32, value : vec3<f32>)
+fn tint_symbol_8([[internal(disable_validation__ignore_atomic_function_parameter)]] buffer : SB, offset : u32, value : vec3<f32>)
[[internal(intrinsic_store_storage_vec4_i32), internal(disable_validation__function_has_no_body)]]
-fn tint_symbol_9(buffer : SB, offset : u32, value : vec4<i32>)
+fn tint_symbol_9([[internal(disable_validation__ignore_atomic_function_parameter)]] buffer : SB, offset : u32, value : vec4<i32>)
[[internal(intrinsic_store_storage_vec4_u32), internal(disable_validation__function_has_no_body)]]
-fn tint_symbol_10(buffer : SB, offset : u32, value : vec4<u32>)
+fn tint_symbol_10([[internal(disable_validation__ignore_atomic_function_parameter)]] buffer : SB, offset : u32, value : vec4<u32>)
[[internal(intrinsic_store_storage_vec4_f32), internal(disable_validation__function_has_no_body)]]
-fn tint_symbol_11(buffer : SB, offset : u32, value : vec4<f32>)
+fn tint_symbol_11([[internal(disable_validation__ignore_atomic_function_parameter)]] buffer : SB, offset : u32, value : vec4<f32>)
-fn tint_symbol_12(buffer : SB, offset : u32, value : mat2x2<f32>) {
+fn tint_symbol_12([[internal(disable_validation__ignore_atomic_function_parameter)]] buffer : SB, offset : u32, value : mat2x2<f32>) {
tint_symbol_5(buffer, (offset + 0u), value[0u]);
tint_symbol_5(buffer, (offset + 8u), value[1u]);
}
-fn tint_symbol_13(buffer : SB, offset : u32, value : mat2x3<f32>) {
+fn tint_symbol_13([[internal(disable_validation__ignore_atomic_function_parameter)]] buffer : SB, offset : u32, value : mat2x3<f32>) {
tint_symbol_8(buffer, (offset + 0u), value[0u]);
tint_symbol_8(buffer, (offset + 16u), value[1u]);
}
-fn tint_symbol_14(buffer : SB, offset : u32, value : mat2x4<f32>) {
+fn tint_symbol_14([[internal(disable_validation__ignore_atomic_function_parameter)]] buffer : SB, offset : u32, value : mat2x4<f32>) {
tint_symbol_11(buffer, (offset + 0u), value[0u]);
tint_symbol_11(buffer, (offset + 16u), value[1u]);
}
-fn tint_symbol_15(buffer : SB, offset : u32, value : mat3x2<f32>) {
+fn tint_symbol_15([[internal(disable_validation__ignore_atomic_function_parameter)]] buffer : SB, offset : u32, value : mat3x2<f32>) {
tint_symbol_5(buffer, (offset + 0u), value[0u]);
tint_symbol_5(buffer, (offset + 8u), value[1u]);
tint_symbol_5(buffer, (offset + 16u), value[2u]);
}
-fn tint_symbol_16(buffer : SB, offset : u32, value : mat3x3<f32>) {
+fn tint_symbol_16([[internal(disable_validation__ignore_atomic_function_parameter)]] buffer : SB, offset : u32, value : mat3x3<f32>) {
tint_symbol_8(buffer, (offset + 0u), value[0u]);
tint_symbol_8(buffer, (offset + 16u), value[1u]);
tint_symbol_8(buffer, (offset + 32u), value[2u]);
}
-fn tint_symbol_17(buffer : SB, offset : u32, value : mat3x4<f32>) {
+fn tint_symbol_17([[internal(disable_validation__ignore_atomic_function_parameter)]] buffer : SB, offset : u32, value : mat3x4<f32>) {
tint_symbol_11(buffer, (offset + 0u), value[0u]);
tint_symbol_11(buffer, (offset + 16u), value[1u]);
tint_symbol_11(buffer, (offset + 32u), value[2u]);
}
-fn tint_symbol_18(buffer : SB, offset : u32, value : mat4x2<f32>) {
+fn tint_symbol_18([[internal(disable_validation__ignore_atomic_function_parameter)]] buffer : SB, offset : u32, value : mat4x2<f32>) {
tint_symbol_5(buffer, (offset + 0u), value[0u]);
tint_symbol_5(buffer, (offset + 8u), value[1u]);
tint_symbol_5(buffer, (offset + 16u), value[2u]);
tint_symbol_5(buffer, (offset + 24u), value[3u]);
}
-fn tint_symbol_19(buffer : SB, offset : u32, value : mat4x3<f32>) {
+fn tint_symbol_19([[internal(disable_validation__ignore_atomic_function_parameter)]] buffer : SB, offset : u32, value : mat4x3<f32>) {
tint_symbol_8(buffer, (offset + 0u), value[0u]);
tint_symbol_8(buffer, (offset + 16u), value[1u]);
tint_symbol_8(buffer, (offset + 32u), value[2u]);
tint_symbol_8(buffer, (offset + 48u), value[3u]);
}
-fn tint_symbol_20(buffer : SB, offset : u32, value : mat4x4<f32>) {
+fn tint_symbol_20([[internal(disable_validation__ignore_atomic_function_parameter)]] buffer : SB, offset : u32, value : mat4x4<f32>) {
tint_symbol_11(buffer, (offset + 0u), value[0u]);
tint_symbol_11(buffer, (offset + 16u), value[1u]);
tint_symbol_11(buffer, (offset + 32u), value[2u]);
tint_symbol_11(buffer, (offset + 48u), value[3u]);
}
-fn tint_symbol_21(buffer : SB, offset : u32, value : array<vec3<f32>, 2>) {
+fn tint_symbol_21([[internal(disable_validation__ignore_atomic_function_parameter)]] buffer : SB, offset : u32, value : array<vec3<f32>, 2>) {
tint_symbol_8(buffer, (offset + 0u), value[0u]);
tint_symbol_8(buffer, (offset + 16u), value[1u]);
}
@@ -687,82 +687,82 @@
};
[[internal(intrinsic_load_storage_i32), internal(disable_validation__function_has_no_body)]]
-fn tint_symbol(buffer : SB, offset : u32) -> i32
+fn tint_symbol([[internal(disable_validation__ignore_atomic_function_parameter)]] buffer : SB, offset : u32) -> i32
[[internal(intrinsic_load_storage_u32), internal(disable_validation__function_has_no_body)]]
-fn tint_symbol_1(buffer : SB, offset : u32) -> u32
+fn tint_symbol_1([[internal(disable_validation__ignore_atomic_function_parameter)]] buffer : SB, offset : u32) -> u32
[[internal(intrinsic_load_storage_f32), internal(disable_validation__function_has_no_body)]]
-fn tint_symbol_2(buffer : SB, offset : u32) -> f32
+fn tint_symbol_2([[internal(disable_validation__ignore_atomic_function_parameter)]] buffer : SB, offset : u32) -> f32
[[internal(intrinsic_load_storage_vec2_i32), internal(disable_validation__function_has_no_body)]]
-fn tint_symbol_3(buffer : SB, offset : u32) -> vec2<i32>
+fn tint_symbol_3([[internal(disable_validation__ignore_atomic_function_parameter)]] buffer : SB, offset : u32) -> vec2<i32>
[[internal(intrinsic_load_storage_vec2_u32), internal(disable_validation__function_has_no_body)]]
-fn tint_symbol_4(buffer : SB, offset : u32) -> vec2<u32>
+fn tint_symbol_4([[internal(disable_validation__ignore_atomic_function_parameter)]] buffer : SB, offset : u32) -> vec2<u32>
[[internal(intrinsic_load_storage_vec2_f32), internal(disable_validation__function_has_no_body)]]
-fn tint_symbol_5(buffer : SB, offset : u32) -> vec2<f32>
+fn tint_symbol_5([[internal(disable_validation__ignore_atomic_function_parameter)]] buffer : SB, offset : u32) -> vec2<f32>
[[internal(intrinsic_load_storage_vec3_i32), internal(disable_validation__function_has_no_body)]]
-fn tint_symbol_6(buffer : SB, offset : u32) -> vec3<i32>
+fn tint_symbol_6([[internal(disable_validation__ignore_atomic_function_parameter)]] buffer : SB, offset : u32) -> vec3<i32>
[[internal(intrinsic_load_storage_vec3_u32), internal(disable_validation__function_has_no_body)]]
-fn tint_symbol_7(buffer : SB, offset : u32) -> vec3<u32>
+fn tint_symbol_7([[internal(disable_validation__ignore_atomic_function_parameter)]] buffer : SB, offset : u32) -> vec3<u32>
[[internal(intrinsic_load_storage_vec3_f32), internal(disable_validation__function_has_no_body)]]
-fn tint_symbol_8(buffer : SB, offset : u32) -> vec3<f32>
+fn tint_symbol_8([[internal(disable_validation__ignore_atomic_function_parameter)]] buffer : SB, offset : u32) -> vec3<f32>
[[internal(intrinsic_load_storage_vec4_i32), internal(disable_validation__function_has_no_body)]]
-fn tint_symbol_9(buffer : SB, offset : u32) -> vec4<i32>
+fn tint_symbol_9([[internal(disable_validation__ignore_atomic_function_parameter)]] buffer : SB, offset : u32) -> vec4<i32>
[[internal(intrinsic_load_storage_vec4_u32), internal(disable_validation__function_has_no_body)]]
-fn tint_symbol_10(buffer : SB, offset : u32) -> vec4<u32>
+fn tint_symbol_10([[internal(disable_validation__ignore_atomic_function_parameter)]] buffer : SB, offset : u32) -> vec4<u32>
[[internal(intrinsic_load_storage_vec4_f32), internal(disable_validation__function_has_no_body)]]
-fn tint_symbol_11(buffer : SB, offset : u32) -> vec4<f32>
+fn tint_symbol_11([[internal(disable_validation__ignore_atomic_function_parameter)]] buffer : SB, offset : u32) -> vec4<f32>
-fn tint_symbol_12(buffer : SB, offset : u32) -> mat2x2<f32> {
+fn tint_symbol_12([[internal(disable_validation__ignore_atomic_function_parameter)]] buffer : SB, offset : u32) -> mat2x2<f32> {
return mat2x2<f32>(tint_symbol_5(buffer, (offset + 0u)), tint_symbol_5(buffer, (offset + 8u)));
}
-fn tint_symbol_13(buffer : SB, offset : u32) -> mat2x3<f32> {
+fn tint_symbol_13([[internal(disable_validation__ignore_atomic_function_parameter)]] buffer : SB, offset : u32) -> mat2x3<f32> {
return mat2x3<f32>(tint_symbol_8(buffer, (offset + 0u)), tint_symbol_8(buffer, (offset + 16u)));
}
-fn tint_symbol_14(buffer : SB, offset : u32) -> mat2x4<f32> {
+fn tint_symbol_14([[internal(disable_validation__ignore_atomic_function_parameter)]] buffer : SB, offset : u32) -> mat2x4<f32> {
return mat2x4<f32>(tint_symbol_11(buffer, (offset + 0u)), tint_symbol_11(buffer, (offset + 16u)));
}
-fn tint_symbol_15(buffer : SB, offset : u32) -> mat3x2<f32> {
+fn tint_symbol_15([[internal(disable_validation__ignore_atomic_function_parameter)]] buffer : SB, offset : u32) -> mat3x2<f32> {
return mat3x2<f32>(tint_symbol_5(buffer, (offset + 0u)), tint_symbol_5(buffer, (offset + 8u)), tint_symbol_5(buffer, (offset + 16u)));
}
-fn tint_symbol_16(buffer : SB, offset : u32) -> mat3x3<f32> {
+fn tint_symbol_16([[internal(disable_validation__ignore_atomic_function_parameter)]] buffer : SB, offset : u32) -> mat3x3<f32> {
return mat3x3<f32>(tint_symbol_8(buffer, (offset + 0u)), tint_symbol_8(buffer, (offset + 16u)), tint_symbol_8(buffer, (offset + 32u)));
}
-fn tint_symbol_17(buffer : SB, offset : u32) -> mat3x4<f32> {
+fn tint_symbol_17([[internal(disable_validation__ignore_atomic_function_parameter)]] buffer : SB, offset : u32) -> mat3x4<f32> {
return mat3x4<f32>(tint_symbol_11(buffer, (offset + 0u)), tint_symbol_11(buffer, (offset + 16u)), tint_symbol_11(buffer, (offset + 32u)));
}
-fn tint_symbol_18(buffer : SB, offset : u32) -> mat4x2<f32> {
+fn tint_symbol_18([[internal(disable_validation__ignore_atomic_function_parameter)]] buffer : SB, offset : u32) -> mat4x2<f32> {
return mat4x2<f32>(tint_symbol_5(buffer, (offset + 0u)), tint_symbol_5(buffer, (offset + 8u)), tint_symbol_5(buffer, (offset + 16u)), tint_symbol_5(buffer, (offset + 24u)));
}
-fn tint_symbol_19(buffer : SB, offset : u32) -> mat4x3<f32> {
+fn tint_symbol_19([[internal(disable_validation__ignore_atomic_function_parameter)]] buffer : SB, offset : u32) -> mat4x3<f32> {
return mat4x3<f32>(tint_symbol_8(buffer, (offset + 0u)), tint_symbol_8(buffer, (offset + 16u)), tint_symbol_8(buffer, (offset + 32u)), tint_symbol_8(buffer, (offset + 48u)));
}
-fn tint_symbol_20(buffer : SB, offset : u32) -> mat4x4<f32> {
+fn tint_symbol_20([[internal(disable_validation__ignore_atomic_function_parameter)]] buffer : SB, offset : u32) -> mat4x4<f32> {
return mat4x4<f32>(tint_symbol_11(buffer, (offset + 0u)), tint_symbol_11(buffer, (offset + 16u)), tint_symbol_11(buffer, (offset + 32u)), tint_symbol_11(buffer, (offset + 48u)));
}
-fn tint_symbol_21(buffer : SB, offset : u32) -> array<vec3<f32>, 2> {
+fn tint_symbol_21([[internal(disable_validation__ignore_atomic_function_parameter)]] buffer : SB, offset : u32) -> array<vec3<f32>, 2> {
return array<vec3<f32>, 2>(tint_symbol_8(buffer, (offset + 0u)), tint_symbol_8(buffer, (offset + 16u)));
}
-fn tint_symbol_22(buffer : SB, offset : u32) -> SB {
+fn tint_symbol_22([[internal(disable_validation__ignore_atomic_function_parameter)]] buffer : SB, offset : u32) -> SB {
return SB(tint_symbol(buffer, (offset + 0u)), tint_symbol_1(buffer, (offset + 4u)), tint_symbol_2(buffer, (offset + 8u)), tint_symbol_3(buffer, (offset + 16u)), tint_symbol_4(buffer, (offset + 24u)), tint_symbol_5(buffer, (offset + 32u)), tint_symbol_6(buffer, (offset + 48u)), tint_symbol_7(buffer, (offset + 64u)), tint_symbol_8(buffer, (offset + 80u)), tint_symbol_9(buffer, (offset + 96u)), tint_symbol_10(buffer, (offset + 112u)), tint_symbol_11(buffer, (offset + 128u)), tint_symbol_12(buffer, (offset + 144u)), tint_symbol_13(buffer, (offset + 160u)), tint_symbol_14(buffer, (offset + 192u)), tint_symbol_15(buffer, (offset + 224u)), tint_symbol_16(buffer, (offset + 256u)), tint_symbol_17(buffer, (offset + 304u)), tint_symbol_18(buffer, (offset + 352u)), tint_symbol_19(buffer, (offset + 384u)), tint_symbol_20(buffer, (offset + 448u)), tint_symbol_21(buffer, (offset + 512u)));
}
@@ -843,101 +843,101 @@
};
[[internal(intrinsic_store_storage_i32), internal(disable_validation__function_has_no_body)]]
-fn tint_symbol(buffer : SB, offset : u32, value : i32)
+fn tint_symbol([[internal(disable_validation__ignore_atomic_function_parameter)]] buffer : SB, offset : u32, value : i32)
[[internal(intrinsic_store_storage_u32), internal(disable_validation__function_has_no_body)]]
-fn tint_symbol_1(buffer : SB, offset : u32, value : u32)
+fn tint_symbol_1([[internal(disable_validation__ignore_atomic_function_parameter)]] buffer : SB, offset : u32, value : u32)
[[internal(intrinsic_store_storage_f32), internal(disable_validation__function_has_no_body)]]
-fn tint_symbol_2(buffer : SB, offset : u32, value : f32)
+fn tint_symbol_2([[internal(disable_validation__ignore_atomic_function_parameter)]] buffer : SB, offset : u32, value : f32)
[[internal(intrinsic_store_storage_vec2_i32), internal(disable_validation__function_has_no_body)]]
-fn tint_symbol_3(buffer : SB, offset : u32, value : vec2<i32>)
+fn tint_symbol_3([[internal(disable_validation__ignore_atomic_function_parameter)]] buffer : SB, offset : u32, value : vec2<i32>)
[[internal(intrinsic_store_storage_vec2_u32), internal(disable_validation__function_has_no_body)]]
-fn tint_symbol_4(buffer : SB, offset : u32, value : vec2<u32>)
+fn tint_symbol_4([[internal(disable_validation__ignore_atomic_function_parameter)]] buffer : SB, offset : u32, value : vec2<u32>)
[[internal(intrinsic_store_storage_vec2_f32), internal(disable_validation__function_has_no_body)]]
-fn tint_symbol_5(buffer : SB, offset : u32, value : vec2<f32>)
+fn tint_symbol_5([[internal(disable_validation__ignore_atomic_function_parameter)]] buffer : SB, offset : u32, value : vec2<f32>)
[[internal(intrinsic_store_storage_vec3_i32), internal(disable_validation__function_has_no_body)]]
-fn tint_symbol_6(buffer : SB, offset : u32, value : vec3<i32>)
+fn tint_symbol_6([[internal(disable_validation__ignore_atomic_function_parameter)]] buffer : SB, offset : u32, value : vec3<i32>)
[[internal(intrinsic_store_storage_vec3_u32), internal(disable_validation__function_has_no_body)]]
-fn tint_symbol_7(buffer : SB, offset : u32, value : vec3<u32>)
+fn tint_symbol_7([[internal(disable_validation__ignore_atomic_function_parameter)]] buffer : SB, offset : u32, value : vec3<u32>)
[[internal(intrinsic_store_storage_vec3_f32), internal(disable_validation__function_has_no_body)]]
-fn tint_symbol_8(buffer : SB, offset : u32, value : vec3<f32>)
+fn tint_symbol_8([[internal(disable_validation__ignore_atomic_function_parameter)]] buffer : SB, offset : u32, value : vec3<f32>)
[[internal(intrinsic_store_storage_vec4_i32), internal(disable_validation__function_has_no_body)]]
-fn tint_symbol_9(buffer : SB, offset : u32, value : vec4<i32>)
+fn tint_symbol_9([[internal(disable_validation__ignore_atomic_function_parameter)]] buffer : SB, offset : u32, value : vec4<i32>)
[[internal(intrinsic_store_storage_vec4_u32), internal(disable_validation__function_has_no_body)]]
-fn tint_symbol_10(buffer : SB, offset : u32, value : vec4<u32>)
+fn tint_symbol_10([[internal(disable_validation__ignore_atomic_function_parameter)]] buffer : SB, offset : u32, value : vec4<u32>)
[[internal(intrinsic_store_storage_vec4_f32), internal(disable_validation__function_has_no_body)]]
-fn tint_symbol_11(buffer : SB, offset : u32, value : vec4<f32>)
+fn tint_symbol_11([[internal(disable_validation__ignore_atomic_function_parameter)]] buffer : SB, offset : u32, value : vec4<f32>)
-fn tint_symbol_12(buffer : SB, offset : u32, value : mat2x2<f32>) {
+fn tint_symbol_12([[internal(disable_validation__ignore_atomic_function_parameter)]] buffer : SB, offset : u32, value : mat2x2<f32>) {
tint_symbol_5(buffer, (offset + 0u), value[0u]);
tint_symbol_5(buffer, (offset + 8u), value[1u]);
}
-fn tint_symbol_13(buffer : SB, offset : u32, value : mat2x3<f32>) {
+fn tint_symbol_13([[internal(disable_validation__ignore_atomic_function_parameter)]] buffer : SB, offset : u32, value : mat2x3<f32>) {
tint_symbol_8(buffer, (offset + 0u), value[0u]);
tint_symbol_8(buffer, (offset + 16u), value[1u]);
}
-fn tint_symbol_14(buffer : SB, offset : u32, value : mat2x4<f32>) {
+fn tint_symbol_14([[internal(disable_validation__ignore_atomic_function_parameter)]] buffer : SB, offset : u32, value : mat2x4<f32>) {
tint_symbol_11(buffer, (offset + 0u), value[0u]);
tint_symbol_11(buffer, (offset + 16u), value[1u]);
}
-fn tint_symbol_15(buffer : SB, offset : u32, value : mat3x2<f32>) {
+fn tint_symbol_15([[internal(disable_validation__ignore_atomic_function_parameter)]] buffer : SB, offset : u32, value : mat3x2<f32>) {
tint_symbol_5(buffer, (offset + 0u), value[0u]);
tint_symbol_5(buffer, (offset + 8u), value[1u]);
tint_symbol_5(buffer, (offset + 16u), value[2u]);
}
-fn tint_symbol_16(buffer : SB, offset : u32, value : mat3x3<f32>) {
+fn tint_symbol_16([[internal(disable_validation__ignore_atomic_function_parameter)]] buffer : SB, offset : u32, value : mat3x3<f32>) {
tint_symbol_8(buffer, (offset + 0u), value[0u]);
tint_symbol_8(buffer, (offset + 16u), value[1u]);
tint_symbol_8(buffer, (offset + 32u), value[2u]);
}
-fn tint_symbol_17(buffer : SB, offset : u32, value : mat3x4<f32>) {
+fn tint_symbol_17([[internal(disable_validation__ignore_atomic_function_parameter)]] buffer : SB, offset : u32, value : mat3x4<f32>) {
tint_symbol_11(buffer, (offset + 0u), value[0u]);
tint_symbol_11(buffer, (offset + 16u), value[1u]);
tint_symbol_11(buffer, (offset + 32u), value[2u]);
}
-fn tint_symbol_18(buffer : SB, offset : u32, value : mat4x2<f32>) {
+fn tint_symbol_18([[internal(disable_validation__ignore_atomic_function_parameter)]] buffer : SB, offset : u32, value : mat4x2<f32>) {
tint_symbol_5(buffer, (offset + 0u), value[0u]);
tint_symbol_5(buffer, (offset + 8u), value[1u]);
tint_symbol_5(buffer, (offset + 16u), value[2u]);
tint_symbol_5(buffer, (offset + 24u), value[3u]);
}
-fn tint_symbol_19(buffer : SB, offset : u32, value : mat4x3<f32>) {
+fn tint_symbol_19([[internal(disable_validation__ignore_atomic_function_parameter)]] buffer : SB, offset : u32, value : mat4x3<f32>) {
tint_symbol_8(buffer, (offset + 0u), value[0u]);
tint_symbol_8(buffer, (offset + 16u), value[1u]);
tint_symbol_8(buffer, (offset + 32u), value[2u]);
tint_symbol_8(buffer, (offset + 48u), value[3u]);
}
-fn tint_symbol_20(buffer : SB, offset : u32, value : mat4x4<f32>) {
+fn tint_symbol_20([[internal(disable_validation__ignore_atomic_function_parameter)]] buffer : SB, offset : u32, value : mat4x4<f32>) {
tint_symbol_11(buffer, (offset + 0u), value[0u]);
tint_symbol_11(buffer, (offset + 16u), value[1u]);
tint_symbol_11(buffer, (offset + 32u), value[2u]);
tint_symbol_11(buffer, (offset + 48u), value[3u]);
}
-fn tint_symbol_21(buffer : SB, offset : u32, value : array<vec3<f32>, 2>) {
+fn tint_symbol_21([[internal(disable_validation__ignore_atomic_function_parameter)]] buffer : SB, offset : u32, value : array<vec3<f32>, 2>) {
tint_symbol_8(buffer, (offset + 0u), value[0u]);
tint_symbol_8(buffer, (offset + 16u), value[1u]);
}
-fn tint_symbol_22(buffer : SB, offset : u32, value : SB) {
+fn tint_symbol_22([[internal(disable_validation__ignore_atomic_function_parameter)]] buffer : SB, offset : u32, value : SB) {
tint_symbol(buffer, (offset + 0u), value.a);
tint_symbol_1(buffer, (offset + 4u), value.b);
tint_symbol_2(buffer, (offset + 8u), value.c);
@@ -1032,7 +1032,7 @@
};
[[internal(intrinsic_load_storage_f32), internal(disable_validation__function_has_no_body)]]
-fn tint_symbol(buffer : SB, offset : u32) -> f32
+fn tint_symbol([[internal(disable_validation__ignore_atomic_function_parameter)]] buffer : SB, offset : u32) -> f32
[[group(0), binding(0)]] var<storage, read_write> sb : SB;
@@ -1100,7 +1100,7 @@
};
[[internal(intrinsic_load_storage_f32), internal(disable_validation__function_has_no_body)]]
-fn tint_symbol(buffer : SB, offset : u32) -> f32
+fn tint_symbol([[internal(disable_validation__ignore_atomic_function_parameter)]] buffer : SB, offset : u32) -> f32
[[group(0), binding(0)]] var<storage, read_write> sb : SB;
@@ -1187,7 +1187,7 @@
};
[[internal(intrinsic_load_storage_f32), internal(disable_validation__function_has_no_body)]]
-fn tint_symbol(buffer : SB, offset : u32) -> f32
+fn tint_symbol([[internal(disable_validation__ignore_atomic_function_parameter)]] buffer : SB, offset : u32) -> f32
[[group(0), binding(0)]] var<storage, read_write> sb : SB;
@@ -1251,64 +1251,64 @@
};
[[internal(intrinsic_atomic_store_storage_i32), internal(disable_validation__function_has_no_body)]]
-fn tint_symbol(buffer : SB, offset : u32, param_1 : i32)
+fn tint_symbol([[internal(disable_validation__ignore_atomic_function_parameter)]] buffer : SB, offset : u32, param_1 : i32)
[[internal(intrinsic_atomic_load_storage_i32), internal(disable_validation__function_has_no_body)]]
-fn tint_symbol_1(buffer : SB, offset : u32) -> i32
+fn tint_symbol_1([[internal(disable_validation__ignore_atomic_function_parameter)]] buffer : SB, offset : u32) -> i32
[[internal(intrinsic_atomic_add_storage_i32), internal(disable_validation__function_has_no_body)]]
-fn tint_symbol_2(buffer : SB, offset : u32, param_1 : i32) -> i32
+fn tint_symbol_2([[internal(disable_validation__ignore_atomic_function_parameter)]] buffer : SB, offset : u32, param_1 : i32) -> i32
[[internal(intrinsic_atomic_max_storage_i32), internal(disable_validation__function_has_no_body)]]
-fn tint_symbol_3(buffer : SB, offset : u32, param_1 : i32) -> i32
+fn tint_symbol_3([[internal(disable_validation__ignore_atomic_function_parameter)]] buffer : SB, offset : u32, param_1 : i32) -> i32
[[internal(intrinsic_atomic_min_storage_i32), internal(disable_validation__function_has_no_body)]]
-fn tint_symbol_4(buffer : SB, offset : u32, param_1 : i32) -> i32
+fn tint_symbol_4([[internal(disable_validation__ignore_atomic_function_parameter)]] buffer : SB, offset : u32, param_1 : i32) -> i32
[[internal(intrinsic_atomic_and_storage_i32), internal(disable_validation__function_has_no_body)]]
-fn tint_symbol_5(buffer : SB, offset : u32, param_1 : i32) -> i32
+fn tint_symbol_5([[internal(disable_validation__ignore_atomic_function_parameter)]] buffer : SB, offset : u32, param_1 : i32) -> i32
[[internal(intrinsic_atomic_or_storage_i32), internal(disable_validation__function_has_no_body)]]
-fn tint_symbol_6(buffer : SB, offset : u32, param_1 : i32) -> i32
+fn tint_symbol_6([[internal(disable_validation__ignore_atomic_function_parameter)]] buffer : SB, offset : u32, param_1 : i32) -> i32
[[internal(intrinsic_atomic_xor_storage_i32), internal(disable_validation__function_has_no_body)]]
-fn tint_symbol_7(buffer : SB, offset : u32, param_1 : i32) -> i32
+fn tint_symbol_7([[internal(disable_validation__ignore_atomic_function_parameter)]] buffer : SB, offset : u32, param_1 : i32) -> i32
[[internal(intrinsic_atomic_exchange_storage_i32), internal(disable_validation__function_has_no_body)]]
-fn tint_symbol_8(buffer : SB, offset : u32, param_1 : i32) -> i32
+fn tint_symbol_8([[internal(disable_validation__ignore_atomic_function_parameter)]] buffer : SB, offset : u32, param_1 : i32) -> i32
[[internal(intrinsic_atomic_compare_exchange_weak_storage_i32), internal(disable_validation__function_has_no_body)]]
-fn tint_symbol_9(buffer : SB, offset : u32, param_1 : i32, param_2 : i32) -> vec2<i32>
+fn tint_symbol_9([[internal(disable_validation__ignore_atomic_function_parameter)]] buffer : SB, offset : u32, param_1 : i32, param_2 : i32) -> vec2<i32>
[[internal(intrinsic_atomic_store_storage_u32), internal(disable_validation__function_has_no_body)]]
-fn tint_symbol_10(buffer : SB, offset : u32, param_1 : u32)
+fn tint_symbol_10([[internal(disable_validation__ignore_atomic_function_parameter)]] buffer : SB, offset : u32, param_1 : u32)
[[internal(intrinsic_atomic_load_storage_u32), internal(disable_validation__function_has_no_body)]]
-fn tint_symbol_11(buffer : SB, offset : u32) -> u32
+fn tint_symbol_11([[internal(disable_validation__ignore_atomic_function_parameter)]] buffer : SB, offset : u32) -> u32
[[internal(intrinsic_atomic_add_storage_u32), internal(disable_validation__function_has_no_body)]]
-fn tint_symbol_12(buffer : SB, offset : u32, param_1 : u32) -> u32
+fn tint_symbol_12([[internal(disable_validation__ignore_atomic_function_parameter)]] buffer : SB, offset : u32, param_1 : u32) -> u32
[[internal(intrinsic_atomic_max_storage_u32), internal(disable_validation__function_has_no_body)]]
-fn tint_symbol_13(buffer : SB, offset : u32, param_1 : u32) -> u32
+fn tint_symbol_13([[internal(disable_validation__ignore_atomic_function_parameter)]] buffer : SB, offset : u32, param_1 : u32) -> u32
[[internal(intrinsic_atomic_min_storage_u32), internal(disable_validation__function_has_no_body)]]
-fn tint_symbol_14(buffer : SB, offset : u32, param_1 : u32) -> u32
+fn tint_symbol_14([[internal(disable_validation__ignore_atomic_function_parameter)]] buffer : SB, offset : u32, param_1 : u32) -> u32
[[internal(intrinsic_atomic_and_storage_u32), internal(disable_validation__function_has_no_body)]]
-fn tint_symbol_15(buffer : SB, offset : u32, param_1 : u32) -> u32
+fn tint_symbol_15([[internal(disable_validation__ignore_atomic_function_parameter)]] buffer : SB, offset : u32, param_1 : u32) -> u32
[[internal(intrinsic_atomic_or_storage_u32), internal(disable_validation__function_has_no_body)]]
-fn tint_symbol_16(buffer : SB, offset : u32, param_1 : u32) -> u32
+fn tint_symbol_16([[internal(disable_validation__ignore_atomic_function_parameter)]] buffer : SB, offset : u32, param_1 : u32) -> u32
[[internal(intrinsic_atomic_xor_storage_u32), internal(disable_validation__function_has_no_body)]]
-fn tint_symbol_17(buffer : SB, offset : u32, param_1 : u32) -> u32
+fn tint_symbol_17([[internal(disable_validation__ignore_atomic_function_parameter)]] buffer : SB, offset : u32, param_1 : u32) -> u32
[[internal(intrinsic_atomic_exchange_storage_u32), internal(disable_validation__function_has_no_body)]]
-fn tint_symbol_18(buffer : SB, offset : u32, param_1 : u32) -> u32
+fn tint_symbol_18([[internal(disable_validation__ignore_atomic_function_parameter)]] buffer : SB, offset : u32, param_1 : u32) -> u32
[[internal(intrinsic_atomic_compare_exchange_weak_storage_u32), internal(disable_validation__function_has_no_body)]]
-fn tint_symbol_19(buffer : SB, offset : u32, param_1 : u32, param_2 : u32) -> vec2<u32>
+fn tint_symbol_19([[internal(disable_validation__ignore_atomic_function_parameter)]] buffer : SB, offset : u32, param_1 : u32, param_2 : u32) -> vec2<u32>
[[group(0), binding(0)]] var<storage, read_write> sb : SB;