127 lines
5.9 KiB
Text
127 lines
5.9 KiB
Text
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.
|
|
|
|
There are two primary reasons to submit conformance results:
|
|
|
|
A) A web browser implementer desires to certify their WebGL
|
|
implementation as conformant.
|
|
|
|
B) A GPU manufacturer delivering an embedded system including web
|
|
browser with WebGL support desires to certify their WebGL
|
|
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 WebGL "layer" is correct.
|
|
A GPU vendor typically aims to certify that a given device is
|
|
physically capable of passing the tests.
|
|
|
|
A newly-developed 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.
|
|
|
|
A WebGL implementation might reach conformance, but a subsequent
|
|
graphics driver release on a particular OS might introduce a
|
|
regression causing failures of one or more of the WebGL conformance
|
|
tests. In this situation it is not required to revoke support for the
|
|
"webgl" HTML Canvas context type. The WebGL implementer 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) Conformance Rules for a Web Browser Implementer
|
|
===================================================
|
|
|
|
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.
|
|
|
|
3. Conformance as the web browser is upgraded
|
|
|
|
WebGL conformance results submitted for an earlier version of the
|
|
browser carry forward to later versions of the browser that do not
|
|
cause any previously passing test to fail.
|
|
|
|
4. Conformance as the operating system is upgraded
|
|
|
|
If a new version is released of one of the OSs on which a WebGL
|
|
implementation is intended to run, then WebGL 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.
|
|
|
|
(B) Conformance Rules for a GPU Vendor
|
|
======================================
|
|
|
|
A GPU vendor submitting conformance results for a WebGL implementation
|
|
typically does so because the device containing the GPU includes a
|
|
built-in web browser. In this case the following rules apply:
|
|
|
|
1. Conformance results must be submitted for each GPU and operating
|
|
system combination to be certified. It is not required to submit
|
|
results for different devices containing the same GPU and running the
|
|
same operating system that do not cause any previously passing test to
|
|
fail.
|
|
|
|
2. Conformance results carry forward for a given GPU as the operating
|
|
system and graphics driver are upgraded but do not cause any previously
|
|
passing test to fail.
|
|
|
|
Discussion
|
|
==========
|
|
|
|
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.
|
|
|
|
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.
|
|
|
|
A GPU 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 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.
|