dawn-cmake/src/transform
Ben Clayton eb496d0a4d 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>
2021-02-24 15:55:24 +00:00
..
bound_array_accessors.cc transform: API cleanup 2021-02-24 15:55:24 +00:00
bound_array_accessors.h transform: API cleanup 2021-02-24 15:55:24 +00:00
bound_array_accessors_test.cc transform: API cleanup 2021-02-24 15:55:24 +00:00
emit_vertex_point_size.cc Add semantic::Variable, use it. 2021-02-03 17:51:09 +00:00
emit_vertex_point_size.h src/transform: Remove @notes that are no longer true 2021-02-24 15:08:54 +00:00
emit_vertex_point_size_test.cc transform: API cleanup 2021-02-24 15:55:24 +00:00
first_index_offset.cc transform: API cleanup 2021-02-24 15:55:24 +00:00
first_index_offset.h transform: API cleanup 2021-02-24 15:55:24 +00:00
first_index_offset_test.cc transform: API cleanup 2021-02-24 15:55:24 +00:00
hlsl.cc ICE macros: Use '<<' for error message 2021-02-18 16:33:38 +00:00
hlsl.h src/transform: Remove @notes that are no longer true 2021-02-24 15:08:54 +00:00
hlsl_test.cc transform: API cleanup 2021-02-24 15:55:24 +00:00
manager.cc transform: API cleanup 2021-02-24 15:55:24 +00:00
manager.h src/transform: Remove @notes that are no longer true 2021-02-24 15:08:54 +00:00
msl.cc Stub sanitizer transforms for the hlsl, msl & spirv writers 2021-02-10 21:22:03 +00:00
msl.h src/transform: Remove @notes that are no longer true 2021-02-24 15:08:54 +00:00
spirv.cc ProgramBuilder: Swap parameter order for Var and Const 2021-02-16 23:57:01 +00:00
spirv.h src/transform: Remove @notes that are no longer true 2021-02-24 15:08:54 +00:00
spirv_test.cc transform: API cleanup 2021-02-24 15:55:24 +00:00
test_helper.h transform: API cleanup 2021-02-24 15:55:24 +00:00
transform.cc transform: API cleanup 2021-02-24 15:55:24 +00:00
transform.h transform: API cleanup 2021-02-24 15:55:24 +00:00
vertex_pulling.cc transform: API cleanup 2021-02-24 15:55:24 +00:00
vertex_pulling.h transform: API cleanup 2021-02-24 15:55:24 +00:00
vertex_pulling_test.cc transform: API cleanup 2021-02-24 15:55:24 +00:00