Add validation tests on the access of the alpha channel of Src1 (#3886)

* Add validation tests on the access of the alpha channel of Src1

This patch adds validation tests on the use of `src1-alpha` in the
blend factor. When the blend factor uses the alpha channel of src1,
the fragment output must be vec4.

This patch also implements function `IsDualSourceBlendingFactor()`
to check if a blend factor needs the extension "dual-source-blending".

This patch also adds the support of dual source blending in the helper
function `getFragmentShaderCodeWithOutput()` to simplify the shaders
used in dual source blending tests.

* Fix `IsDualSourceBlendingFactor()`

* Allow `IsDualSourceBlendingFactor()` accepts null value as parameter

* More fixes
4 files changed
tree: c6eef4ea76af040d2dc2ec6377e5a799f00abb06
  1. .github/
  2. .vscode/
  3. docs/
  4. src/
  5. standalone/
  6. tools/
  7. .eslint-resolver.js
  8. .eslintignore
  9. .eslintrc.json
  10. .gitattributes
  11. .gitignore
  12. babel.config.js
  13. CONTRIBUTING.md
  14. cts.code-workspace
  15. deploy_key.enc
  16. Gruntfile.js
  17. LICENSE.txt
  18. node.tsconfig.json
  19. package-lock.json
  20. package.json
  21. prettier.config.js
  22. README.md
  23. tsconfig.json
  24. w3c.json
README.md

WebGPU Conformance Test Suite

This is the conformance test suite for WebGPU. It tests the behaviors defined by the WebGPU specification.

The contents of this test suite are considered normative; implementations must pass them to be WebGPU-conformant. Mismatches between the specification and tests are bugs.

This test suite can be embedded inside WPT or run in standalone.

Launch the standalone CTS runner / test plan viewer

Contributing

Please read the introductory guidelines before contributing. Other documentation may be found in docs/ and in the helper index (source).

Read CONTRIBUTING.md on licensing.

For realtime communication about WebGPU spec and test, join the #WebGPU:matrix.org room on Matrix.