mirror of
https://github.com/encounter/dawn-cmake.git
synced 2025-12-08 13:14:56 +00:00
transform: API cleanup
Transforms are meant to be reusable. Those that hold state cannot be used concurrently. State leakage between runs is dangerous. To fix this: * Add transform::Data - A new base class for extra information emitted by transforms. * Add transform::DataMap - A container of Data, keyed by type. * Add a transform::DataMap field to Transform::Output. * Have FirstIndexOffset emit a FirstIndexOffset::Data. * Deprecate the getters on the transform. Mutability of the transform config is also dangerous as setters can be called while a transform is actively running on another thread. To fix: * Expose a VertexPulling::Config structure and add a constructor that accepts this. * Deprecate the setters on VertexPulling. Also deprecate Transform::Output::diagnostics. Put all the transform diagnostics into the returned Program. Reduces error handling of the client. Change-Id: Ibd228dc2fbf004ede4720e2d6019c024bc5934d1 Reviewed-on: https://dawn-review.googlesource.com/c/tint/+/42264 Reviewed-by: dan sinclair <dsinclair@chromium.org> Reviewed-by: Ryan Harrison <rharrison@chromium.org> Commit-Queue: Ben Clayton <bclayton@google.com>
This commit is contained in:
committed by
Commit Bot service account
parent
94b36c3e86
commit
eb496d0a4d
@@ -144,7 +144,7 @@ int CommonFuzzer::Run(const uint8_t* data, size_t size) {
|
||||
|
||||
if (transform_manager_) {
|
||||
auto out = transform_manager_->Run(&program);
|
||||
if (out.diagnostics.contains_errors()) {
|
||||
if (!out.program.IsValid()) {
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user