| // Copyright 2021 The Tint Authors. |
| // |
| // Licensed under the Apache License, Version 2.0 (the "License"); |
| // you may not use this file except in compliance with the License. |
| // You may obtain a copy of the License at |
| // |
| // http://www.apache.org/licenses/LICENSE-2.0 |
| // |
| // Unless required by applicable law or agreed to in writing, software |
| // distributed under the License is distributed on an "AS IS" BASIS, |
| // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
| // See the License for the specific language governing permissions and |
| // limitations under the License. |
| |
| //////////////////////////////////////////////////////////////////////////////// |
| // WGSL builtin definition file // |
| // // |
| // This file is used to generate parts of the Tint BuiltinTable, various // |
| // enum definition files, as well as test .wgsl files. // |
| // // |
| // After modifying this file, run: // |
| // tools/run gen // |
| // from the Dawn source directory. // |
| //////////////////////////////////////////////////////////////////////////////// |
| |
| //////////////////////////////////////////////////////////////////////////////// |
| // Enumerators // |
| //////////////////////////////////////////////////////////////////////////////// |
| |
| // https://gpuweb.github.io/gpuweb/wgsl/#filterable-triggering-rules |
| enum core_diagnostic_rule { |
| // Rules defined in the spec. |
| derivative_uniformity |
| } |
| |
| // chromium-specific diagnostics |
| enum chromium_diagnostic_rule { |
| // Chromium specific rules not defined in the spec. |
| unreachable_code |
| } |
| |
| // https://gpuweb.github.io/gpuweb/wgsl/#syntax-severity_control_name |
| enum diagnostic_severity { |
| error |
| warning |
| info |
| off |
| } |
| |
| // https://gpuweb.github.io/gpuweb/wgsl/#extension |
| enum extension { |
| // WGSL Extension "f16" |
| f16 |
| // An extension for the experimental feature "chromium_experimental_dp4a". |
| // See crbug.com/tint/1497 for more details |
| chromium_experimental_dp4a |
| // A Chromium-specific extension for disabling uniformity analysis. |
| chromium_disable_uniformity_analysis |
| // A Chromium-specific extension for push constants |
| chromium_experimental_push_constant |
| // A Chromium-specific extension that enables passing of uniform, storage and workgroup |
| // address-spaced pointers as parameters, as well as pointers into sub-objects. |
| chromium_experimental_full_ptr_parameters |
| // A Chromium-specific extension that adds support for read-write storage textures. |
| chromium_experimental_read_write_storage_texture |
| // A Chromium-specific extension that adds basic subgroup functionality. |
| chromium_experimental_subgroups |
| // A Chromium-specific extension that relaxes memory layout requirements for uniform storage. |
| chromium_internal_relaxed_uniform_layout |
| // A Chromium-specific extension that enables dual source blending. |
| chromium_internal_dual_source_blending |
| // A Chromium-specific extension that enables pixel local storage. |
| chromium_experimental_pixel_local |
| } |