dawn-cmake/test/tint/extensions/InternalExtensionForTesting
Zhaoming Jiang 7098d3d692 tint: Add enable directive for extensions
In this CL the enable directive is implemented.
1. Add AST node for enable directive, assign a ExtensionKind (enum) for
each supported extension.
2. Use an unorder_set in ast::Module to record all required extensions'
kind.
3. Provide inspector methods for getting names of used extension, and
getting all used enable directives' extension names and location.
4. For different writer, the extension nodes are handled in different
ways. MSL and HLSL writers will just ignore the extension nodes, while
SPIRV and GLSL writers will emit corresponding code.
5. Implement unittests and end2end test for enable directive and
inspector, using a reserved extension name `InternalExtensionForTesting`.

Bug: tint:1472
Change-Id: I40cb4061554deb477bc2005d7e38c9718385f825
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/86623
Kokoro: Kokoro <noreply+kokoro@google.com>
Reviewed-by: Ben Clayton <bclayton@google.com>
Commit-Queue: Zhaoming Jiang <zhaoming.jiang@intel.com>
2022-04-27 02:27:52 +00:00
..
simple_with_InternalExtensionForTesting.wgsl tint: Add enable directive for extensions 2022-04-27 02:27:52 +00:00
simple_with_InternalExtensionForTesting.wgsl.expected.glsl tint: Add enable directive for extensions 2022-04-27 02:27:52 +00:00
simple_with_InternalExtensionForTesting.wgsl.expected.hlsl tint: Add enable directive for extensions 2022-04-27 02:27:52 +00:00
simple_with_InternalExtensionForTesting.wgsl.expected.msl tint: Add enable directive for extensions 2022-04-27 02:27:52 +00:00
simple_with_InternalExtensionForTesting.wgsl.expected.spvasm tint: Add enable directive for extensions 2022-04-27 02:27:52 +00:00
simple_with_InternalExtensionForTesting.wgsl.expected.wgsl tint: Add enable directive for extensions 2022-04-27 02:27:52 +00:00
simple_with_duplicated_InternalExtensionForTesting.wgsl tint: Add enable directive for extensions 2022-04-27 02:27:52 +00:00
simple_with_duplicated_InternalExtensionForTesting.wgsl.expected.glsl tint: Add enable directive for extensions 2022-04-27 02:27:52 +00:00
simple_with_duplicated_InternalExtensionForTesting.wgsl.expected.hlsl tint: Add enable directive for extensions 2022-04-27 02:27:52 +00:00
simple_with_duplicated_InternalExtensionForTesting.wgsl.expected.msl tint: Add enable directive for extensions 2022-04-27 02:27:52 +00:00
simple_with_duplicated_InternalExtensionForTesting.wgsl.expected.spvasm tint: Add enable directive for extensions 2022-04-27 02:27:52 +00:00
simple_with_duplicated_InternalExtensionForTesting.wgsl.expected.wgsl tint: Add enable directive for extensions 2022-04-27 02:27:52 +00:00