Repository navigation
WebCL Conformance Rules [DRAFT]
The WebCL API is a web standard, and many web browser implementers deliver their browser on multiple operating systems (OSs). WebCL implementations also typically rely on the presence of an OpenCL 1.1 or OpenCL 1.2 on the OS. It can be appreciated that a WebCL implementation therefore has many dependencies. This document attempts to clarify to potential implementers the rules the Khronos Group uses to judge whether a particular WebCL implementation is conformant.
There are two primary reasons to submit conformance results:
- A web browser implementer desires to certify their WebCL implementation as conformant.
- A compute device manufacturer delivering an embedded system including web browser with WebCL support desires to certify their WebCL implementation as conformant.
Each of these situations carries different constraints, so the conformance rules are phrased differently for each. Typically, a web browser implementer aims to certify that the WebCL "layer" is correct. A compute device vendor typically aims to certify that a given device is physically capable of passing the tests.
A newly-developed WebCL implementation should not support the "webcl" HTML Window object by default in a shipping version of the product until reaching conformance. It is acceptable to give end users an option to turn on WebCL 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.
A WebCL implementation might reach conformance, but a subsequent compute device driver release on a particular OS might introduce a regression causing failures of one or more of the WebCL conformance tests. In this situation it is not required to revoke support for the "webcl" HTML Window object. The WebCL implementer should work with the compute device vendor to ensure the driver regression is fixed. A situation like this would, however, prevent the WebCL implementer from conforming to a subsequent version of the test suite.
On a given OS, a WebCL 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 compute devices, each from a different vendor. If the OS only supports a compute device from one vendor, the two-compute-device requirement is dropped.
A WebCL 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 WebCL implementation is intended to be supported.
WebCL conformance results submitted for an earlier version of the browser carry forward to later versions of the browser, unless the WebCL implementation changes substantially enough that it is expected that conformance may have been affected. In that case, the browser implementer should submit new conformance results.
If a new version is released of one of the OSs on which a WebCL implementation is intended to run, then WebCL conformance results submitted for earlier versions of that OS carry forward. Future conformance results must be submitted against the new version of the OS. If it is anticipated that the older OS version will be supported for some time, then future conformance results must be submitted separately for both the old and new versions of the OS.
A compute device vendor submitting conformance results for a WebCL implementation typically does so because the device containing the compute device includes a built-in web browser. In this case the following rules apply:
-
Conformance results must be submitted for each compute device and operating system combination to be certified. It is not required to submit results for different devices containing the same compute device and running the same operating system.
-
Conformance results may be submitted up to three months in advance of the product reaching initial shipment.
-
Conformance results carry forward for a given compute device as the operating system and compute device driver are upgraded, unless there is an expectation that conformance may have been affected. In that case, the compute device vendor should submit new conformance results.
A WebCL implementation intended to ship on three OSs may reach conformance on two of them, but due to compute device driver bugs, may be unable to reach conformance on the third. In this situation the implementation is not yet considered to be conformant.
An existing WebGL implementation which conformed to an earlier version of the test suite is not required to remove support for the "webcl" HTML Windows object 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.
A compute device vendor might submit conformance results in order to use the WebGL logo in a marketing campaign. In this situation, results may be submitted in advance of the product becoming available through sales channels, per the rules above.
The WebCL API has strict security requirements. Even one failing test may indicate a serious security issue in the WebCL implementation. For this reason, no exceptions for failing conformance tests will be granted.
The Khronos Group determines whether a particular WebCL implementation is conformant based on the implementer's conformance suite submissions, on multiple OSs and on multiple compute devices as necessary, using the rules above. An implementer shall not judge their own implementation conformant simply by applying the above rules.