mirror of
https://github.com/encounter/dawn-cmake.git
synced 2025-12-12 06:45:16 +00:00
writer/msl: Handle private and workgroup variables
Add a transform that pushes these into the entry point and then passes them by pointer to any functions that need them. Since WGSL does not allow non-function storage class at function-scope, add a DisableValidation attribute to bypass this check. Fixed: tint/726 Change-Id: Ic1f4cd691a54c19e77a60e8ba178508e4249bfd9 Reviewed-on: https://dawn-review.googlesource.com/c/tint/+/51962 Kokoro: Kokoro <noreply+kokoro@google.com> Commit-Queue: James Price <jrprice@google.com> Auto-Submit: James Price <jrprice@google.com> Reviewed-by: Ben Clayton <bclayton@google.com>
This commit is contained in:
committed by
Tint LUCI CQ
parent
61e573663d
commit
7a47fa8495
@@ -34,6 +34,8 @@ std::string DisableValidationDecoration::Name() const {
|
||||
return "disable_validation__function_has_no_body";
|
||||
case DisabledValidation::kBindingPointCollision:
|
||||
return "disable_validation__binding_point_collision";
|
||||
case DisabledValidation::kFunctionVarStorageClass:
|
||||
return "disable_validation__function_var_storage_class";
|
||||
}
|
||||
return "<invalid>";
|
||||
}
|
||||
|
||||
@@ -31,6 +31,9 @@ enum class DisabledValidation {
|
||||
/// When applied to a module-scoped variable, the validator will not complain
|
||||
/// if two resource variables have the same binding points.
|
||||
kBindingPointCollision,
|
||||
/// When applied to a function-scoped variable, the validator will not
|
||||
/// complain if the storage class is not `function`.
|
||||
kFunctionVarStorageClass,
|
||||
};
|
||||
|
||||
/// An internal decoration used to tell the validator to ignore specific
|
||||
|
||||
Reference in New Issue
Block a user