| # Experimental extensions |
| |
| Sometimes a language feature proposed for WGSL requires experiementation |
| to prove its worth. Tint needs to support these, in general to enable |
| that experimentation. |
| |
| The steps for doing so are: |
| |
| 1. Choose a name for the feature, to be used in an `enable` directive. |
| An experimental extension should use prefix of `google_experimental_` |
| Example: |
| |
| enable google_experimental_f16; |
| |
| 2. Write down what the feature is supposed to mean. |
| This informs the Tint implementation, and tells shader authors what |
| has changed. |
| Ideally, this will take the form of one of the following: |
| |
| - A PR against the WGSL spec. |
| |
| - A description of what the contents of that PR would be, committed |
| as a document in this Tint repository. |
| |
| 3. File a tracking bug for adding the feature. |
| Note: Should the Tint repo have a label for experimental features? |
| |
| 4. File a tracking bug for removing the feature or converting it to |
| non-experimental. |
| |
| 5. Write a plan for removal of the experiment. |
| - Ideally, this plan is committed to this repository, especially the |
| description of public activities and commitments. However, we recognize |
| that some internal goals or metrics may be sensitive, and can be hidden. |
| - The plan is about process, not technical details. It should include: |
| - Who is the point of contact for this feature? The point of contact |
| is responsible when the feature causes an issue or gets in the way. |
| - What is your target date for declaring the experiment a success or |
| failure. In Chrome an experiment must be shipped or removed, in |
| finite time. |
| - What experience are you hoping to gain? Do you have target metrics? |
| - What approvals, if any, do you need from W3C? What is your plan to |
| present your case to W3C? |
| - The bug tracking removal of the experiment. |