OLD | NEW |
1 Rules for Claiming a Conformant WebGL Implementation | 1 Rules for Claiming a Conformant WebGL Implementation |
2 ==================================================== | 2 ==================================================== |
3 | 3 |
4 The WebGL API is a web standard, and many web browser implementers | 4 The WebGL API is a web standard, and many web browser implementers |
5 deliver their browser on multiple operating systems (OSs). WebGL | 5 deliver their browser on multiple operating systems (OSs). WebGL |
6 implementations also typically rely on the presence of an OpenGL or | 6 implementations also typically rely on the presence of an OpenGL or |
7 OpenGL ES implementation on the OS. It can be appreciated that a WebGL | 7 OpenGL ES implementation on the OS. It can be appreciated that a WebGL |
8 implementation therefore has many dependencies. This document attempts | 8 implementation therefore has many dependencies. This document attempts |
9 to clarify to potential implementers the rules the Khronos Group uses | 9 to clarify to potential implementers the rules the Khronos Group uses |
10 to judge whether a particular WebGL implementation is conformant. | 10 to judge whether a particular WebGL implementation is conformant. |
11 | 11 |
| 12 There are two primary reasons to submit conformance results: |
| 13 |
| 14 A) A web browser implementer desires to certify their WebGL |
| 15 implementation as conformant. |
| 16 |
| 17 B) A GPU manufacturer delivering an embedded system including web |
| 18 browser with WebGL support desires to certify their WebGL |
| 19 implementation as conformant. |
| 20 |
| 21 Each of these situations carries different constraints, so the |
| 22 conformance rules are phrased differently for each. Typically, a web |
| 23 browser implementer aims to certify that the WebGL "layer" is correct. |
| 24 A GPU vendor typically aims to certify that a given device is |
| 25 physically capable of passing the tests. |
| 26 |
| 27 A newly-developed WebGL implementation should not support the "webgl" |
| 28 HTML Canvas context type by default in a shipping version of the |
| 29 product until reaching conformance. It is acceptable to give end users |
| 30 an option to turn on WebGL support in a non-conformant implementation |
| 31 as long as the documentation for that option clearly indicates that |
| 32 the implementation is not yet conformant and may have compatibility |
| 33 issues. It is suggested that the Canvas context type |
| 34 "experimental-webgl" may be supported by default in such |
| 35 implementations. |
| 36 |
| 37 A WebGL implementation might reach conformance, but a subsequent |
| 38 graphics driver release on a particular OS might introduce a |
| 39 regression causing failures of one or more of the WebGL conformance |
| 40 tests. In this situation it is not required to revoke support for the |
| 41 "webgl" HTML Canvas context type. The WebGL implementer should work |
| 42 with the GPU vendor to ensure the driver regression is fixed. A |
| 43 situation like this would, however, prevent the WebGL implementer from |
| 44 conforming to a subsequent version of the test suite. |
| 45 |
| 46 (A) Conformance Rules for a Web Browser Implementer |
| 47 =================================================== |
| 48 |
12 1. Conformance on a particular operating system | 49 1. Conformance on a particular operating system |
13 | 50 |
14 On a given OS, a WebGL implementation will be considered to conform to | 51 On a given OS, a WebGL implementation will be considered to conform to |
15 a particular version of the conformance suite if the suite passes with | 52 a particular version of the conformance suite if the suite passes with |
16 no test failures on at least two GPUs, each from a different | 53 no test failures on at least two GPUs, each from a different |
17 vendor. If the OS only supports a GPU from one vendor, the two-GPU | 54 vendor. If the OS only supports a GPU from one vendor, the two-GPU |
18 requirement is dropped. | 55 requirement is dropped. |
19 | 56 |
20 2. Conformance across multiple operating systems | 57 2. Conformance across multiple operating systems |
21 | 58 |
22 A WebGL implementation will be considered to conform to a particular | 59 A WebGL implementation will be considered to conform to a particular |
23 version of the conformance suite if it passes rule (1) on all of the | 60 version of the conformance suite if it passes rule (1) on all of the |
24 OSs on which the WebGL implementation is intended to be supported. | 61 OSs on which the WebGL implementation is intended to be supported. |
25 | 62 |
| 63 3. Conformance as the web browser is upgraded |
| 64 |
| 65 WebGL conformance results submitted for an earlier version of the |
| 66 browser carry forward to later versions of the browser, unless the |
| 67 WebGL implementation changes substantially enough that it is expected |
| 68 that conformance may have been affected. In that case, the browser |
| 69 implementer should submit new conformance results. |
| 70 |
| 71 4. Conformance as the operating system is upgraded |
| 72 |
| 73 If a new version is released of one of the OSs on which a WebGL |
| 74 implementation is intended to run, then WebGL conformance results |
| 75 submitted for earlier versions of that OS carry forward. Future |
| 76 conformance results must be submitted against the new version of the |
| 77 OS. If it is anticipated that the older OS version will be supported |
| 78 for some time, then future conformance results must be submitted |
| 79 separately for both the old and new versions of the OS. |
| 80 |
| 81 (B) Conformance Rules for a GPU Vendor |
| 82 ====================================== |
| 83 |
| 84 A GPU vendor submitting conformance results for a WebGL implementation |
| 85 typically does so because the device containing the GPU includes a |
| 86 built-in web browser. In this case the following rules apply: |
| 87 |
| 88 1. Conformance results must be submitted for each GPU and operating |
| 89 system combination to be certified. It is not required to submit |
| 90 results for different devices containing the same GPU and running the |
| 91 same operating system. |
| 92 |
| 93 2. Conformance results may be submitted up to three months in advance |
| 94 of the product reaching initial shipment. |
| 95 |
| 96 3. Conformance results carry forward for a given GPU as the operating |
| 97 system and graphics driver are upgraded, unless there is an |
| 98 expectation that conformance may have been affected. In that case, the |
| 99 GPU vendor should submit new conformance results. |
| 100 |
26 Discussion | 101 Discussion |
27 ========== | 102 ========== |
28 | 103 |
29 A WebGL implementation might reach conformance on a particular OS, but | |
30 a subsequent graphics driver release on that OS might introduce a | |
31 regression causing failures of one or more of the WebGL conformance | |
32 tests. In this situation it is not required that the browser revoke | |
33 support for the "webgl" HTML Canvas context type. The browser vendor | |
34 should work with the GPU vendor to ensure the driver regression is | |
35 fixed. A situation like this would, however, prevent the WebGL | |
36 implementer from conforming to a subsequent version of the test suite. | |
37 | |
38 A WebGL implementation intended to ship on three OSs may reach | 104 A WebGL implementation intended to ship on three OSs may reach |
39 conformance on two of them, but due to graphics driver bugs, may be | 105 conformance on two of them, but due to graphics driver bugs, may be |
40 unable to reach conformance on the third. In this situation the | 106 unable to reach conformance on the third. In this situation the |
41 implementation is not yet considered to be conformant. | 107 implementation is not yet considered to be conformant. |
42 | 108 |
43 A web browser author developing a new WebGL implementation should not | |
44 support the "webgl" HTML Canvas context type by default in a shipping | |
45 version of the product until reaching conformance. It is acceptable to | |
46 give end users an option to turn on WebGL support in a non-conformant | |
47 implementation as long as the documentation for that option clearly | |
48 indicates that the implementation is not yet conformant and may have | |
49 compatibility issues. It is suggested that the Canvas context type | |
50 "experimental-webgl" may be supported by default in such | |
51 implementations. | |
52 | |
53 An existing WebGL implementation which conformed to an earlier version | 109 An existing WebGL implementation which conformed to an earlier version |
54 of the test suite is not required to remove support for the "webgl" | 110 of the test suite is not required to remove support for the "webgl" |
55 HTML Canvas context type while in the process of conforming to a later | 111 HTML Canvas context type while in the process of conforming to a later |
56 version of the test suite. However, the implementer must not advertise | 112 version of the test suite. However, the implementer must not advertise |
57 conformance to the later version until it has been reached. It is | 113 conformance to the later version until it has been reached. It is |
58 acceptable for the implementer to advertise details of their | 114 acceptable for the implementer to advertise details of their |
59 conformance, for example number or percentage of passing or failing | 115 conformance, for example number or percentage of passing or failing |
60 tests, or names of passing or failing tests. | 116 tests, or names of passing or failing tests. |
61 | 117 |
| 118 A GPU vendor might submit conformance results in order to use the |
| 119 WebGL logo in a marketing campaign. In this situation, results may be |
| 120 submitted in advance of the product becoming available through sales |
| 121 channels, per the rules above. |
| 122 |
62 The WebGL API has strict security requirements. Even one failing test | 123 The WebGL API has strict security requirements. Even one failing test |
63 may indicate a serious security issue in the WebGL implementation. For | 124 may indicate a serious security issue in the WebGL implementation. For |
64 this reason, no exceptions for failing conformance tests will be | 125 this reason, no exceptions for failing conformance tests will be |
65 granted. | 126 granted. |
66 | 127 |
67 The Khronos Group determines whether a particular WebGL implementation | 128 The Khronos Group determines whether a particular WebGL implementation |
68 is conformant based on the implementer's conformance suite | 129 is conformant based on the implementer's conformance suite |
69 submissions, on multiple OSs and on multiple GPUs as necessary, using | 130 submissions, on multiple OSs and on multiple GPUs as necessary, using |
70 the rules above. An implementer shall not judge their own | 131 the rules above. An implementer shall not judge their own |
71 implementation conformant simply by applying the above rules. | 132 implementation conformant simply by applying the above rules. |
OLD | NEW |