| Rules for Claiming a Conformant WebGL Implementation |
| ==================================================== |
| |
| The WebGL API is a web standard, and many web browser implementers |
| deliver their browser on multiple operating systems (OSs). WebGL |
| implementations also typically rely on the presence of an OpenGL or |
| OpenGL ES implementation on the OS. It can be appreciated that a WebGL |
| implementation therefore has many dependencies. This document attempts |
| to clarify to potential implementers the rules the Khronos Group uses |
| to judge whether a particular WebGL implementation is conformant. |
| |
| 1. Conformance on a particular operating system |
| |
| On a given OS, a WebGL implementation will be considered to conform to |
| a particular version of the conformance suite if the suite passes with |
| no test failures on at least two GPUs, each from a different |
| vendor. If the OS only supports a GPU from one vendor, the two-GPU |
| requirement is dropped. |
| |
| 2. Conformance across multiple operating systems |
| |
| A WebGL implementation will be considered to conform to a particular |
| version of the conformance suite if it passes rule (1) on all of the |
| OSs on which the WebGL implementation is intended to be supported. |
| |
| Discussion |
| ========== |
| |
| A WebGL implementation might reach conformance on a particular OS, but |
| a subsequent graphics driver release on that OS might introduce a |
| regression causing failures of one or more of the WebGL conformance |
| tests. In this situation it is not required that the browser revoke |
| support for the "webgl" HTML Canvas context type. The browser vendor |
| should work with the GPU vendor to ensure the driver regression is |
| fixed. A situation like this would, however, prevent the WebGL |
| implementer from conforming to a subsequent version of the test suite. |
| |
| A WebGL implementation intended to ship on three OSs may reach |
| conformance on two of them, but due to graphics driver bugs, may be |
| unable to reach conformance on the third. In this situation the |
| implementation is not yet considered to be conformant. |
| |
| A web browser author developing a new WebGL implementation should not |
| support the "webgl" HTML Canvas context type by default in a shipping |
| version of the product until reaching conformance. It is acceptable to |
| give end users an option to turn on WebGL support in a non-conformant |
| implementation as long as the documentation for that option clearly |
| indicates that the implementation is not yet conformant and may have |
| compatibility issues. It is suggested that the Canvas context type |
| "experimental-webgl" may be supported by default in such |
| implementations. |
| |
| An existing WebGL implementation which conformed to an earlier version |
| of the test suite is not required to remove support for the "webgl" |
| HTML Canvas context type while in the process of conforming to a later |
| version of the test suite. However, the implementer must not advertise |
| conformance to the later version until it has been reached. It is |
| acceptable for the implementer to advertise details of their |
| conformance, for example number or percentage of passing or failing |
| tests, or names of passing or failing tests. |
| |
| The WebGL API has strict security requirements. Even one failing test |
| may indicate a serious security issue in the WebGL implementation. For |
| this reason, no exceptions for failing conformance tests will be |
| granted. |
| |
| The Khronos Group determines whether a particular WebGL implementation |
| is conformant based on the implementer's conformance suite |
| submissions, on multiple OSs and on multiple GPUs as necessary, using |
| the rules above. An implementer shall not judge their own |
| implementation conformant simply by applying the above rules. |