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.